Vim 编辑器
1.移动光标
h或者向左方向键 | 光标向左移动一个字符 |
l或者向右方向键 | 光标向右移动一个字符 |
k或者向上方向键 | 光标向上移动一个字符 |
j或者向下方向键 | 光标向下移动一个字符 |
【Ctrl】+f | 屏幕“向下”移动一页,相当于【PageDown】 |
【Ctrl】+b | 屏幕“向上”移动一页,相当于【PageUp】 |
0 | 数字0,移动到这一行的最前面一个字符处 |
$ | 移动到这一行的最后一个字符处 |
G | 移动到这个文件的最后一行 |
gg | 移动到这个文件的第一行 |
n【Enter】 | n是一个数字,光标向下移动n行 |
2.搜索与替换
/str | 从光标开始,向下寻找一个名为str的字符串 |
?str | 从光标开始,向上寻找一个名为str的字符串 |
:n1,n2s/str1/str2/g | n1与n2为数字,在第n1行与n2行之间寻找str1这个字符串,并将该字符串替换成str2 |
:1,$s/str1/str2/g | 从第一行到最后一行寻找str1字符串,并将该字符串替换为str2 |
:1,$s/str1/str2/gc | 从第一行到最后一行寻找str1字符串,并将该字符串替换为str2,且在替换前提示符给用户确认 是否需要替换 |
3.删除、复制与黏贴
x,X | x为向后删除一个字符,X为向前删除一个字符 |
nx | n为数字,为连续向后删除n个字符 |
dd | 删除光标所在的那一整行 |
ndd | 为数字,从光标位置开始,删除向下n列,如20dd则是删除20列。 |
yy | 复制光标所在的那一行 复制当前光标所在的位置到行尾:y$ 复制当前光标所在的位置到行首:y^ |
nyy | n为数字,复制光标所在的向下n行,如20yy则是复制20行(包括光标所在行) |
p,P | p为将复制的数据粘贴到光标的下一行,P则为粘在光标的上一行。 |
u | 复原前一个操作 |
【Ctrl】+r | 重做上一个操作 |
. | 小数点,重复前一个动作,常用在重复删除、重复粘贴。 |
4.插入模式
i,I | 插入:在当前光标所在处插入输入文字,已存在的文字会向后退,其中i为从当前光标所在位置前开始插入,I将光标移到当前 行的行首,然后开始插入。 |
a,A | a为从当前光标所在的下一个字符开始插入,A为从光标所在行的 最后一个字符处开始插入 |
o,O | 这是英文字母o的大小写,o为在当前光标所在的下一行插入新的 一行,O为在当前光标所在处的上一行插入新的一行。 |
r,R | r为替换光标所在的那一个字符;R会一直替换光标所在的 文字,直到安下【Esc】键为止。 |
5.文件操作相关
在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;
若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。
:w | 保存文件 |
:w filename | 另存为filename |
:wq! | 保存并退出 |
:wq! filename | 以filename为文件名保存后退出 |
:q! | 不保存退出 |
:x | 保存并退出,功能和:wq!相同 |
:n1,n2 w filename! | 将n1行到n2行的内容保存到filename中 |
:n w filename | 将第n行保存到filename中 |
:l,. w filename | 将从第一行起到光标当前位置的内容保存到 filename中 |
:.,$ w filename | 将从光标当前位置到文件结束的内容保存到 filename中 |
:r filename | 打开另外一个文件filename |
:e filename | 编辑新文件filename代替原有内容 |
:f filename | 把当前文件改名为filename |
set nu | 列出行号 |
如有转载请标注原文地址,谢谢。