三种模式,一般指令模式、编辑模式(i,I,o,O,a,A,ESC退出)、指令列命令模式(:/?)
一般指令模式下:
向上下左右移动n个字符 |
|
ctrl+f |
向下移动一页 |
ctrl+b |
向上移动一页 |
ctrl+d |
向下移动半页 |
ctrl+u |
向上移动半页 |
n+空格 |
向右移动n个字符 |
0 |
移动到该行最前边的字符处 |
$ |
移动到该行最后边的字符处 |
H |
光标移动到这个屏幕最上方那一列的第一个字符处 |
M |
光标移动到这个屏幕中央那一列的第一个字符处 |
L |
光标移动到这个屏幕最下方那一列的第一个字符处 |
G |
移动到这个文件的最后一列 |
n+G |
移动到这个文件的第n列 |
gg |
移动到文件的第一列,相当于1G |
n+<Enter> |
光标向下移动n列 |
搜索与替换 |
|
/word |
从光标处向下搜索 |
?word |
从光标处向上搜索 |
n |
|
N |
|
:n1,n2s/word1/word2/g |
n1,n2为数字,表示第n1与n2列之间查找字符串word1,并将该字符串替换成word2 |
:1,$s/word1/word2/g |
从第1列到最后一列替换word1为word2 |
:1,$s/word1/word2/gc |
|
删除,复制粘贴 |
|
x,n+x |
向后删除n个字符 |
X,n+X |
向前删除n个字符 |
dd |
删除光标所在的那一列 |
ndd |
删除光标及向下的n行 |
d1G |
删除光标到第一列的所有数据 |
dG |
删除光标所在到最后一列的所有数据 |
d$ |
删除光标所在处到该列尾的字符 |
d0 |
|
nyy |
复制光标及向下n列的数据 |
y1G |
复制光标所在列到第一列的数据 |
yG |
复制光标所在列到最后一列的数据 |
y0 |
复制光标所在字符到该列行首的所有字符 |
y$ |
复制光标所在字符到该列行尾的所有字符 |
p,P |
p将已复制的数据在光标下一列粘贴上,P将已复制的数据粘贴在光标在的上一列 |
J |
将光标所在列与下一列数据合为同一列,中间有空格 |
u |
复原前一个动作 |
ctrl+r |
重做前一个动作,与u相反 |
. |
重复前一个动作 |
:e! |
在vim下进行多种编辑行为后,恢复到原始状态 |
编辑模式下: o:从下一行开始写,a:从当前字符后开始写,i:从当前字符前开始写
i/I |
i为从当前光标所在处插入,I为从目前所在列的第一个非空格处开始插入 |
a/A |
|
o/O |
o在光标所在列的下一列插入新的一列,O为在上一列插入新的一列 |
r/R |
进入取代模式,r只会取代光标所在处的字符,R从光标所在处开始取代,直到按下ESC为止 |
退出与保存 |
|
:w :q :wq :q! |
:w保存,:q离开,:q!强制退出 |
ZZ |
|
:w filename |
|
:n1,n2 w filename |
|
:r filename |
|
:! command |
暂时离开vim到命令行模式下执行command并显示结果,例如:! ls -l |
:set nu |
显示行号 |
:set nonu |
取消行号 |
区域块的选择:
v |
字符选择,将光标经过的地方反白选择 |
V |
行选择,将光标经过的行反白选择 |
ctrl+v |
区域块选择,可以用长方形的方式选择字符 |
y |
将反白的地方复制 |
d |
将反白的地方删除掉 |
p |
将复制的区域块,粘贴在光标所在处 |
多文件编辑
:files |
|
:N |
|
:n |
多窗口功能
打开一个文件后,通过:sp [文件名]在新窗口打开另一个文件,文件名缺失时,出现在新窗口中的是同一个文件
:sp [filename] |
在新窗口中打开文件 |
ctrl+w后加方向键 |
切换当前所在窗口 |
:q |
关闭当前窗口 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。