VIM常用指令
1、光标移动
上:k
下:j
左:l 『字母L小写』
右:h
上一行行首:- 『减号』
下一行行首:+
行首:0 『数字0』
行尾:$
单词词尾或后一个单词词尾:e
后一个单词词首:w
单词词首或前一个单词词首:b
跳转到特定行::行号 ( :5 :跳转到第5行 )
上一屏:ctrl + b
下一屏:ctrl + f
上半屏:ctrl + u
下半屏:ctrl + d
向上滚屏:ctr + y
向下滚屏:ctr + e
跳到文件头:gg
跳到文件尾:G
2、搜索
向后模式搜索:/ + 搜索模式
向前模式搜索:?+ 搜索模式
退出查找模式:nohl 或者 搜索一个不存在的字符
注意:结合n和N向前向后查找
3、追加或插入
光标右侧追加:a
光标行尾追加:A
光标左侧追加:i
光标行首追加:I 『i 的大写』
光标下方插入行:o 【字母o】
光标上方插入行:O 【字母o的大写】
n到m行行首插入#: :n,m s/^/#/g 『1到5行,行首插入wow :1,3 s/^/wow/g 』
n到m+l行行首插入#: :n,+l s/^/#/g『1到6行,行首插入# :1,+5 s/^/#/g 』
4、删除
删除光标:x
删除光标左侧:X
删除光标所在的单词:dw
删除当前行:dd
删除光标至行尾:d$或D
删除当前行及以下n-1行:ndd 『n是数字,是要删除的行数』
删除n到m行: :n,m d 『删除1到3行 :1,3 d』 当m 用$ 时,表示到文档尾
5、复制粘贴
复制光标所在的单词:yw
复制光标至行尾:y$ 或Y
复制当前行:yy
复制行n次:yyn
复制当前行及以下n-1行:nyy『n是数字,是要复制的行数』
复制n到m行,粘贴到k+1行: :n,m co k 『复制1到3行,粘贴到第5行 :1,3 co 4』
剪切n到m行,粘贴到k+1行: :n,m m k 『剪切1到3行,粘贴到第5行 :1,3 m 4』
粘贴到光标下:p
粘贴到光标上:P
6、撤销回复
撤销:u
恢复:ctrl + r
7、替换
替换光标所在的字符:r
替换一个单词:cw
替换光标所在的前一个字符:cb
替换光标至行尾的所有字符:c$
替换当前行:cc
替换当前行的第一个old为new: :s/old/new
替换当前行的所有的old为new::s/old/new/g
替换当前行到最后行的第一个old为new::.,$s/old/new
替换当前行到最后行的所有old为new::.,$s/old/new/g
替换第n行到第m行的第一个old为new::n,m s/old/new
替换第n行到第m行的所有old为new::n,m s/old/new/g
替换所有行的第一个old为new: :%s/old/new
替换所有行的所有old为new: :%s/old/new/g
8、其他
查看当前设置::set all
显示行号::set nu
隐藏行号::set nonu
不保存退出::q
不保存强制退出::q!
保存编辑::w
保存并退出::wq
把两行连接在一起:J
把n行连接在一起:nJ 光标所在行及其下n-1行
执行shell命令::! shell 例如:查看到当前时间::! date
读取shell执行的结果,并把结果放在光标的后面::r!shell 例如:列出目录中的文件::r!ls
简单加密文件::X
vim +n filename 打开文件filename,并且把光标置于第n行行首
vim + filename 打开文件filename,并把光标置于最后一行行首
vim +/pattern filename 打开文件,并把光标置于第一个与pattern匹配的串行
vim -r filename 在上次vim崩溃处恢复filename