一般编辑
输入或取代
i:从目前光标所在处输入I:在目前所在行的第一个非空格符处开始输入a:为光标所在的下一个字符处开始插入A:行尾插入o:在目前光标所在的下一行处输入新的一行O:在目前光标所在处的上一行输入新的一行>:缩进>n:缩进n行
<:反缩进Esc:退出编辑模式,回到一般模式中
取代或删除输入
r:只会取代光标所在的那一个字符一次R:会一直取代光标所在的文字,直到按下ESC为止s:删字符插入S:删行插入c:和d一样,但是进入编辑模式
其他
crtl+a:光标所在处数字+1~:转换光标所在字符的大小写J:将光标所在行与下一行的数据结合成一行
光标移动
行内移动
h或←:向左移动一个字符2←:向左移动2个字符
l或→:向右移动一个字符0或Home或|或^:行首$或End:行尾
词间移动
w:下一个符号分隔的单词词首- 结合其他指令处理下一个词,比如
dw,可以删除单词,yw可以复制单词
- 结合其他指令处理下一个词,比如
e:下一个符号分隔的单词词尾b:上一个符号分隔的单词词首W:下一个空格分隔的单词词首E:下一个空格分隔的单词词尾B:上一个空格分隔的单词词首
行间移动
space:向右移动一个字符n+space,移动n个字符,不限于行内
k或↑:向上移动一个字符j或↓:向下移动一个字符30↓或30j:向下移动30行
-:上一行行首enter或+:向下移动至行首30enter或30+,向下移动30行行首
H:光标移动到该页首行行首M:光标移动到该页中间行行首L:光标移动到该页末行行首G:移动到文件最后一行(常用)20G,移动到文件的第20行gg,移动到第一行=1G
段间移动
(:上一段首):下一段首{:上一段首空行}:下一段首空行
翻页
ctrl+f或pagedown:屏幕向下移动一页ctrl+b或pageup:屏幕向上移动一页ctrk+d:屏幕向下移动半页ctrl+u:屏幕向上移动半页
搜索替换
/word:向下寻找word?word:向上寻找n:重复查找N:反向查找:n1,n2s/word1/word2/g:在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2- n2用
$代表结尾,则:1,$s/word1/word2/g代表全文中替换,也可以用:1,%s/word1/word2/g g用gc时可以确认是否取代
- n2用
同时查找多个关键词
1
2
3
4
5?\<Ce\>\|\<C.f1\>\|\<Sc\>
/string1 \| string2
查找同一行包含两个关键词的内容
1
/keyword1.*keyword2
删除d
x或者delete:向后删除2x:向后删除2个字符
X或backspace:向前删除d:dd:删除一行。20dd:删除20行d$:删除至行尾=Dd0:删除至行首d1G: 删除光标所在到第一行的所有数据dG:删除光标所在到最后一行的所有数据: 1,10d:删除第一行到第十行dfc:删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容daw:删除光标所在的一个单词
可视化
v:可视V:行可视ctrl+v:块可视
复制粘贴
复制y
yy或Y:复制游标所在的那一行(常用)20yy:向下复制20行
y$:复制光标所在的那个字符到该行行尾的所有数据y0:复制光标所在的那个字符到该行行首的所有数据y1G:复制游标所在行到第一行的所有数据yG:复制游标所在行到最后一行的所有数据
粘贴p
p:将已复制的数据贴在光标下一行P:贴在游标上一行
其他动作
u:撤销命令U:撤销行内命令ctrl+r重做上一个动作。【与撤销相反】.:重复前一个动作的意思。 比如重复删除、重复贴上等等动作
退出Vim
:w:保存:w!:强制保存:q:退出:q!:强制退出:wq储存后离开:wq!为强制储存后离开ZQ:不保存退出ZZ:保存退出:w [filename]:另存为:r [filename]:读取另一个文档的内容,内容追加到光标所在行之后:n1,n2 w [filename]:将 n1 到 n2 的内容储存成 filename 这个档案:! command:暂时离开 vi 到指令行模式下执行 command 的显示结果
vim 环境的变更境的变更
:set nu:显示行号,设定之后,会在每一行的前缀显示该行的行号:set nonu:与 set nu 相反,为取消行号
可以直接vim ~/.vimrc,然后添加set nu,默认是有行号的
管理命令
:vs 路径/文件名:同时再打开另外的一个文件,通过ctrl ww使得光标在两个文件间切换;两个文件是左右并排显示的。:sp 路径/文件名:同时再打开另外的一个文件,通过ctrl ww使得光标在两个文件间切换;两个文件是上下并排显示的。
