Vim编辑器基本操作学习(一)

 
最近在服务端编辑文件总不可避免要使用vim编辑器,下面就对学习到的常用命令进行总结,以便自己以后查看。
 

基本编辑命令

 
删除字符:x
删除一行:dd
删除换行符:J,同时将两行合并成一行
撤销上一次的操作:u
重做,反转撤销:Ctrl+R
 
一些基本编辑命令可以使用命令计数,比如向下移动3行,可以直接使用3j,代替jjj;另比如dd操作等。
 

其他编辑命令

 
i: 当前光标之前插入文本
a: 当前光标之后插入文本
o: 另起一行,在当前行的下一行开始编辑
O: 另起一行,在当前行的上一行开始编辑
 

光标移动命令

 
h, j, k, l就不说了,左,上,下,右
w(word): 移动光标到下一个word的开头;
b(backward):移动光标到上一个word的开头;
e(end of word): 移动光标到下一个word的末尾;
ge: 移动光标到上一个word的末尾;
上述所有都是小写,如果将w, b, e 设置成大写,那么就将按照空格分隔移动;
:set iskeyword
 
$ 将光标移动到当前行行尾;
0 将光标移动到当前行行首;
 
fx可以在当前行查找第一个x并移动到该位置,停留在被搜索字符的下一个位置,这种用法称为单字符查找;
而使用Fx就会反向查找x字符;
tx命令比较类似,但是会停留在被搜索字符上;
Tx反向查找;
这四个命令都不会跳到下一行上去,都可以使用”;"来重复,“,”也是重复,但是方向相反
 

匹配括号

 
编写程序的时候,容易被括号弄糊涂,但是使用”%”可以非常方便地与当前光标下的括号匹配,比如()[]{};
如果当前光标并不在括号上,”%”同样可以向前匹配到第一个遇到的括号;
可以通过命令:set matchpairs查看匹配的括号类型
 

移动到指定行

 
G命令可以移动到文件的最后一行;
使用“行数”+G可以将当前光标移动到该指定行数的位置;
gg命令是定位到第一行的快捷方法,等同于1G;
另外一种方式就是移动到指定的百分比,使用“百分比”+%即可;
如果只想让光标定位到当前显示屏幕中的上,中,下,那么可以使用H(Home), M(Middle), L(Last)
 
有三种方法可以得到当前光标的位置:
  1. 使用Ctrl+G命令,可以得到类似下面的提示:"map任务分析趋势图.numbers" 1116 lines --2%--
  2. 使用:set number(nonumber)命令,可以查看/取消查看当前文件所在行;
  3. 设置ruler选项,可以在Vim的右下角窗口显示当前光标的位置;
 
当执行G跳转到指定的行后,vim会记住起跳的位置,这个位置是一个标记,使用命令”``"可以帮助跳转到刚才的出发点。
 
 

滚屏

 

Ctrl+U(Up) 会使窗口向上滚动半屏;
Ctrl+D(Down) 会使窗口向下滚动半屏;
Ctrl+E 可以使窗口向上滚动一行;
Ctrl+Y 可以使窗口向下滚动一行;
Ctrl+F(Forward) 可以使窗口向上滚动一整屏;
Ctrl+B(Backward) 可以使窗口向下滚动一整屏;
zz命令可以将光标当前所在行置于屏幕中央;
zt(top)命令可以将光标当前所在行置于屏幕顶端;
zb(bottom)命令可以将光标当前所在行置于屏幕底端;
 

搜索与查找

 
"/搜索字符串” 可以从当前光标位置处开始向下搜索该字符串,使用n,N可以匹配下一个找到的字符串;
“?搜索字符串” 与/的使用方式正好相反,向前搜索,而此时使用n,N也会相反;
注意搜索时的一些特殊字符: “.*[]^%/?~$”,如果要查找的内容包括这些字符,请使用\进行转义;
 
incsearch:使得键入目标字符串时vim就开始字符串搜索工作,可以在未完全键入字符串时就能找到目标,可选择回车跳转到当前匹配的位置或继续输入以进行搜索;
nowrapscan/wrapscan:打开wrapscan会在搜索到达文件头或者末尾时会从新开始搜索,关闭此开关(nowrapscan)可以在文件结束时停止;
 
 
 

退出vim

 
ZZ: 可以保存当前的数据,然后退出
:q!: 放弃编辑,退出vim,命令之后加回车
:q:退出,但是如果已经对文件进行了编辑,vim会拒绝不负责任的退出
:e!:如果想放弃当前所有的修改,并重新打开编辑器,用该文件的初始内容作为开始继续编辑,使用此命令
:help 显示vim的帮助文件,也可以使用F1显示
 

一些其他的常用命令

 
在编辑文件的时候按照行对文件内容进行删除时,可以使用G转到文件末尾,然后使用:1,.d命令;
如果想要删除某行到当前行的内容,直接替换1即可;
如果想要显示当前文件的行号,可以使用set nu!
如果想要删除整个文件(变成空白文件),先gg跳转到首行,再执行dG清空整个文件。
 

Vim的搜索模式

 

^字符匹配一行的开头;
$字符匹配一行的末尾;
如果同时加上^和$,那么将只会匹配到单行文本就是^和$之间的字符串;
.可以匹配到任何字符,比如”c.m"可以匹配任何前一个字符是c后一个字符是m的情况,不管中间字符是什么;
对于特殊字符,可以加上反斜杠进行处理。
 

搜索后的跳转命令

 

使用``可以在两点之间反复跳转。
Ctrl+O, 跳转到更早些时间停留光标的位置; 
Ctrl+I, 跳转到后来停置光标的位置;
什么是跳转?只要你执行一个命令使得光标定位于当前行之外的某行上,都叫做一个跳转,包括/和n这些搜索命令。但是字符搜索命令f,F不算是跳转,h,i,j,k这些也都算是字符操作,不算是跳转。
 
posted @ 2014-11-30 15:26  clamaa  阅读(180)  评论(0编辑  收藏  举报