vim常用命令
vim是在linux环境使用的编辑器,功能强大但是不方便使用,但在开发环境往往需要远程登陆修改配置和脚本等操作,所以是程序员必须掌握的技能。
这里将常用的操作记录下来,以便学习回顾。
进入插入模式
命令 |
当前模式 |
说明 |
i |
普通模式 |
进入插入模式,从当前光标所在字符的前面开始输入 |
I |
普通模式 |
进入插入模式,从行首开始输入 |
a |
普通模式 |
进入插入模式,从当前光标所在字符的后面开始输入 |
A |
普通模式 |
进入插入模式,从行尾开始输入 |
移动光标
命令 |
当前模式 |
说明 |
0 |
普通模式 |
将光标移动到行首 |
$ |
普通模式 |
将光标移动到行尾 |
gg |
普通模式 |
将光标移动到第一行 |
G |
普通模式 |
将光标移动到最后一行 |
nG |
普通模式 |
n为数字,将光标移动到第n |
行,经常搭配:set nu 使用 |
|
|
Ctrl+f |
普通模式 |
向下翻页(foreward) |
Ctrl+b |
普通模式 |
向上翻页(backward) |
删除,复制和粘贴
命令 |
当前模式 |
说明 |
x |
普通模式 |
向后删除一个字符 |
X |
普通模式 |
向前删除一个字符,相当于退格键 |
nx |
普通模式 |
n为数字,向后删除n个字符 |
nX |
普通模式 |
n为数字,向前删除n个字符 |
dd |
普通模式 |
删除当前行 |
ndd |
普通模式 |
n为数字,删除当前光标向下n行 |
dgg |
普通模式 |
删除当前行到第一行 |
dG |
普通模式 |
删除当前行到最后一行 |
yy |
普通模式 |
复制当前行 |
p |
普通模式 |
将当前复制的数据粘贴到光标后面或者下面 |
. |
普通模式 |
小数点,意思是重复前一个动作的意思,支持重复删除、重复粘贴等动作 |
undo和redo
命令 |
当前模式 |
说明 |
u |
普通模式 |
取消上一个动作 |
Ctrl+r |
普通模式 |
重做上一个取消的动作 |
查找单词
查找支持正则表达式。
命令 |
当前模式 |
说明 |
:/word |
命令模式 |
向光标之下寻找一个名称为 word 的字符串 |
n |
普通模式 |
重复前一个搜寻的动作,对于:/word 来说就是继续向下寻找 |
N |
普通模式 |
向相反方向进行前一个搜寻的动作,对于:/word 来说就是向上寻找 |
:set ic |
命令模式 |
查找的时候忽略大小写(ignorecase) |
:set noic |
命令模式 |
取消查找的时候忽略大小写 |
替换字符串
替换支持正则表达式。
命令 |
当前模式 |
说明 |
:n1,n2s/word1/word2/g |
命令模式 |
将第n1行到第n2行每一行中的所有word1替换为word2,数字n为1表示第一行,为. 表示当前行,为$ 表示最后一行 |
:n1,n2s/word1/word2/gc |
命令模式 |
最后加上c 表示每次替换都需要手动确认,可以中途退出替换 |
:%s/word1/word2/g |
命令模式 |
替换所有行,等价于:1,$s/word1/word2/g |
:s/word1/word2/g |
命令模式 |
替换当前行所有的word1为word2 |
显示行号
命令 |
当前模式 |
说明 |
:set nu |
命令模式 |
显示行号(number) |
:set nonu |
命令模式 |
取消显示行号 |
显示隐藏字符
命令 |
当前模式 |
说明 |
:set list |
命令模式 |
显示隐藏字符 |
:set nolist |
命令模式 |
取消显示隐藏字符 |
设置文本格式
也可以使用:%s/\r$//g
来替换:set ff=unix
命令(fileformat)。
命令 |
当前模式 |
说明 |
:set ff=unix |
命令模式 |
windows上的文本上传到linux机器,会出现换行多出一个\r 回车字符,可以设置为unix 格式,然后:wq 保存即可进行转换 |
:set ff=dos |
命令模式 |
转换为dos 格式,每个换行都是\r\n 的组合 |
保存退出
命令 |
当前模式 |
说明 |
:wq |
命令模式 |
保存并退出 |
:w |
命令模式 |
只保存 |
:q! |
命令模式 |
强制退出不保存(放弃本次所有修改) |
参考资料