Linux之vim学习

vim 分三种模式:一般模式、编辑模式、命令模式

1.一般模式

一般模式下可以进行移动光标、删除、粘贴复制等操作
移动光标操作

h或向左箭头:光标左移动一个字符
j或向下箭头:光标下移动一个字符
k或向上箭头:光标上移动一个字符
l或向右箭头:光标右移动一个字符
30j:光标下移动30个字符
ctrl+f:屏幕向下移动一页,相当于Page Down(常用)
ctrl+b:屏幕向上移动一页,相当于Page Down(常用)
ctrl+d:屏幕向下移动半页
ctrl+u:屏幕向上移动半页
n<space>右移动n个字符
0或home键:移动到最前面字符处(常用)
H:移动到屏幕的最上方那一行的第一个字符
M:移动到屏幕的中央那一行的第一个字符
L:移动到屏幕的最下方的第一个字符
G:移动到文件的最后一行(常用)
nG:移动到文件的第n行
gg:移动到文件的第一行,相当于1G(常用)
n[Enter]:向下移动n行(常用)

搜索与取代

/word:向光标之下搜索word的字符串
?word:向光标之上搜索word的字符串
n:继续向下搜索
N:继续想上搜索
n1,n2s/word1/word2/g:在n1到n2行搜索word1这个字符串并将字符串替代为word2(常用)
1,$s/word1/word2/g:在1到最后一行搜索word1这个字符串并将字符串替代为word2(常用)
1,$s/word1/word2/gc:在1到最后一行搜索word1这个字符串并将字符串替代为word2!且在取代之前显示提示字符给用户确认是够需要取代(常用)

删除、复制与贴上

x,X:在第一行当中,x为向后删除一个字符,X为向前删除一个字符(常用)
nx:向后删除n个字符
dd:删除光标所在一行
ndd:删除光标所在n行
d1G:删除光标所在到第一行的所有数据
dG:删除光标所在到最后一行的所有数据
d$:删除光标所在到该行的最后一个字符
d0:删除光标所在到该行的最前面的一个字符
yy:复制光标所在的那一行(常用)
nyy:复制光标向下的n行(常用)
y1G:复制光标所在列到第一行的所有数据
yG:复制光标所在列到最后一行的所有数据
y0:复制光标所在字符到该行行首的所有数据
y$:复制光标所在字符到该行行首的所有数据
p,P:p将已复制的数据在光标下一行贴上,P贴在光标上一行
J:将光标所在行与下一行的数据结合成同一行
u:撤销上一个动作(常用)
ctrl+r:重做上一个动作(常用)
.:(小数点)重做前一个动作(常用)

2.编辑模式

一般模式切换到编辑模式

i,I:i为从目前光标所在处插入,I为目前所在行的第一个非空格处开始插入
a,Aa为进入目前光标所在处的下一个字符处开始插入,A为光标所在行的最后一个字符处开始插入
o,O:a为进入目前光标所在处的下一行开始插入,A为光标所在行的上一行开始插入
r,R:进入取代模式,r会取代所在的那一个字符一次;R会一直取代光标所在的文字,直到按下ESC为止

3.命令行模式

w:写入
wq:保存后离开
q!:不存储离开
w [filename]:另存为filename
r [filename]:将filename这个文件的内容加到光标所在行的后面
n1,n2 w [filename]:将n1行到n2行的内容另存为filename文件
!command:暂时离开vim到指令下查看commmad执行的显示结果,如!ls /home 即可在vim下查看/home下的输出信息
set nu:设置数字
set nonu:与上向反

4. vim的额外功能

1.区块选择见下图

这里写图片描述
这里写图片描述

2.多文件编辑

vim 可以同时打开好几个文件,可以将一个文件的内容有效赋值到另一个文件中去

n:编辑下一个文件
N:编辑上一个文件
files:列出目前这个vim的开启文件

3.多窗口功能

sp {fielname}:开启一个新窗口,如果有加filename,表示在新窗口中加入一个新文件;否则表示两个窗口为同一个档案显示(同步显示)
其中filename要是不填写的话,则同一个文件出现在两个窗口
ctrl+w+↓(j):窗口向下移动,先按下ctrl+w,然后按下j即可
ctrl+w+↑(k):...

这样复制、查阅就真的很方便呀

4.vim环境设定与记录:~/.vimrc,~/.viminfo

~/.viminfo 文件自动产生并记录你在vim里的行为

vim常见环境设定见下图
这里写图片描述
这里写图片描述
这里写图片描述
常用配置文件来规定vim操作环境,整体的vim设定值是在/etc/vimrc文件中,不过不建议修改,可以修改~/.vimrc这个文件(如不存在,可自行建立)

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
1.DispatchAction-分派Action 1.1 为什么需要DispatchAction 如果每个请求都对应一个Action,就会造成action过多,程序显得比较臃肿,所以可以把一类请求写到一个action中处理,即DispatchAction 在没有使用框架之前,当我们通过一个控制器处理多个请求的时候,我们是通过在URL后面跟上参数来区别不同的操作,比如,下述链接: http://localhost:8080/UserManager/main?operateId=adduid=123 htt

[置顶] 逐步深入TCP/IP协议栈 - 2016-07-25 18:07:17

一、关于应用层用户数据的历程,见下图:                                                                             TCP/IP数据包的封装 过程: 应用层将数据通过协议栈逐层向下传递,其下的每层接到来自上层的数据时,根据每层的协议都要在其数据 的前端添加首部信息进行封装。不同的协议层对数据包有不同 的称谓,在传输层叫做数据段,在网络层叫做数据报, 在链路层叫做数据帧。在经过链路层时,数据已经封装成帧并递交给物理层的传输介质上,到

Linux命令应用大词典 目录 - 2016-07-25 18:07:40

【作者】 於岳 【编辑】 李永涛 【ISBN】 978-7-115-40151-9 【日期】 2015-12 【页数】 703页 【字数】 1123千字 【开本】 16 【定价】 89元 【总数】 本书包含46大类729个命令 按章节分 第1章 登录、退出、关机和重启 章节-页码 命令 介绍 备注 1.1-P1 login 用户登录系统 1.2-P1 logout 退出登录Shell 1.3-P1 nologin 限制用户登录 1.4-P2 exit 退出Shell 1.5-P2 sulogin 单用户登

Dubbo--生态系统安装 - 2016-07-25 18:07:33

dubbo的整套环境主要有几个系统: Zookeeper注册中心安装 管理控制台安装 简易监控中心安装       在 Dubbo官网 中已经讲的很详细。本文主要是为了记录一下自己在安装过程遇到的问题,同时也把安装完成之后的文件包记录 下。       运行环境: tate@ubuntu:~$ uname -aLinux ubuntu 3.19.0-65-generic #73~14.04.1-Ubuntu SMP Wed Jun 29 21:05:22 UTC 2016 x86_64 x86_64 x8
1.使用者与群组以及其他人的概念 假设有一家人,家裡只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,『王大毛家有三个人,分别是王大毛、王二毛与王三毛』, 而且这三个人都有自己的房间,并且共同拥有一个客厅! 使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉! 因为抽屉里面面可能有三毛自己私人的东西,例如日记等等的,这是『私人的空间』,所以当然不能让二毛拿!  群组的概念:由于共同拥有客厅,所以王家三兄弟可

理解 glibc malloc - 2016-07-25 17:07:29

本篇文章主要完成了对 《Understanding glibc malloc》 的翻译工作。限于本人翻译水平与专业技术水平(纯粹为了了解内存分配而翻),本文章必定会有很多不足之处,请大家见谅,也欢迎大家的指正! 联系邮箱: 974985526@qq.com 。 堆内存是一个很有意思的领域,这样的问题: 堆内存是如何从内核中分配的? 内存管理效率怎样? 它是由内核、库函数还是应用本身管理的? 堆内存可以开发吗? 我也困惑了很久,但是直到最近我才有时间去了解它。下面就让我来谈谈我的研究成果。开源社区提供了很多
一、别人记得流水账 MAC上装东西总是遇到些问题,这里做个流水帐。希望能对别人有点帮助哈   1、先下载需要的软件包        OCR工具:   Tesseract-OCR3.0.1  source code      tesseract-ocr-3.01.eng.tar.gz  破验证码用英文就够了。        图像处理工具:   Leptonica   1.68        png识别工具:   libpng         jpeg 识别工具 : libjpeg         tif 识
自动化测试框架UFT BASED 自动化测试,一个现在被炒的火热的词;各大公司都在嚷嚷着要上自动化测试的项目,都在招聘各种自动化测试人员。。。 本材料对于编程基础较低初学者,在编写和学习过程中可以接触到很多旁枝侧节的知识,这些都是做好自动化所有需要的知识;对于有一定技术储备。 本框架不能帮你成为高大上的编程大牛,或者自动化测试的行家。但是,它可以引领你迈入自动化测试的领域。 师傅领进门,修行靠个人;一切的一切都还是要靠你自己去多多实践,不是有一句名言么?实践是检验真理的唯一标准! 一、自动化测试基础 手工

springmvc SSM后台框架源码 - 2016-07-25 17:07:55

获取【下载地址】    QQ: 313596790   【免费支持更新】 三大数据库 mysql  oracle  sqlsever    更专业、更强悍、适合不同用户群体 【 新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统 】 A 集成代码生成器 [ 正反双向 (单表、主表、明细表、树形表, 开发利器 ) +快速构建表单 ; QQ:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本,处理类,service等完整模块 B 集成阿里巴

ip报头分片 - 2016-07-25 17:07:06

分片介绍:          IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组         在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素。 为什么需要分片:          每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU(Maximum Transmission Unit).IP协议在传输数据包