1.vim的三种模式
命令行模式:默认模式,所有的输入被解释成vi命令,可执行复制、粘贴、移动、删除等命令,也可以进行光标移动、搜索字符串和退出vi等操作
编辑模式:在这一模式下,所有的输入被解释为文件的正文
扩展模式:可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器
2.三种模式的转换(编辑模式和扩展模式不能直接转换)
命令行模式→编辑模式:a、i、o、A、I、O
i:在当前光标所在字符前面,转为输入模式
I:在当前光标所在行的行首,转换为输入模式
a:在当前光标所在字符后面,转为输入模式
A:在光标所在行的行尾,转换为输入模式
o:在当前光标所在行的下方,新建一行并转为输入模式
O:在当前光标所在行的上方,新建一行并转为输入模式
编辑模式→命令行模式:ESC
命令行模式→扩展模式:冒号:
扩展模式→命令行模式:ESC
命令行模式 |
dd |
dd删除光标所在行 |
ndd |
ndd删除包括光标所在行向下的n行 |
|
yy |
复制光标所在行 |
|
nyy |
复制包括光标所在行向下的n行 |
|
p(小写) |
将已复制的内容粘贴在光标所在行的下一行 |
|
P(大写) |
将已复制的内容粘贴在光标所在行的上一行 |
|
np |
将已复制的内容粘贴在光标所在行的下一行,粘贴n次 |
|
nP |
将已复制的内容粘贴在光标所在行的上一行,粘贴n次 |
|
u |
撤销上一步操作 |
|
ctrl+r |
恢复上一步操作 |
|
n↑↓← → |
向上、下、左、右移动,前面加n的话表示移动n个字符或行 |
|
数字0,$ |
移动到当前行首、行尾 |
|
nG |
移动到文件的第n行 |
|
G,gg(1G) |
移动到文件的最后一行、第一行 |
|
:set nu |
显示行号 |
|
/word |
向下查找 |
|
?word |
向上查找 |
|
:n1,n2s/word1/word2/g |
将n1行和n2行之间的word1替换成word2,g表示替换所有符合条件,否则只替换第一个 |