命令 |
功能 |
:w |
保存文件 |
:q |
退出vim |
:q! |
强制退出vim,不保存文件 |
:wq |
保存并退出 |
gg |
跳到文件的第一行 |
:10 |
跳到文件的第10行 |
shift + g |
跳到文件的最后一行 |
shift + d |
删除当前光标到行尾的内容 |
gd |
跳到光标所在变量的定义(函数内) |
gD |
跳到光标所在变量第一次出现的地方 |
gf |
编辑光标所在位置对应的文件 |
gF |
编辑光标所在位置对应的文件,并跳到文件名后的行号 |
dd |
删除当前行 |
:10,20d |
删除文件的第10行到第20行的内容 |
:%d |
清空文件内容 |
yy |
复制当前行 |
p |
粘贴复制的内容到下一行 |
shift + P |
粘贴复制的内容到下一行 |
u |
回退修改 |
ctrl + r |
撤销回退 |
i |
光标位置插入 |
a |
光标位置追加 |
o |
向下换行 |
shift + o |
向上换行 |
ctrl + o, ctrl + o |
打开最近一次编辑的文件 |
:e xxx |
edit,编辑文件xxx |
:f |
file,查看当前文件的文件名 |
:pwd |
查看当前文件的绝对路径 |
:shell |
进入控制台界面执行shell命令,exit返回vim |
/xxx |
向下匹配xxx字符,N向下查找,shift + N向上查找 |
?xxx |
向上匹配xxx字符,N向上查找,shift + N向下查找 |
:set hls |
设置高亮搜索 |
:set nohls |
取消高亮搜索 |
:set nu |
设置显示行号 |
:set nonu |
取消显示行号 |
:set paste |
粘贴模式,不格式化拷贝的内容 |
:%s/xxx/yyy/g |
全局匹配替换,将xxx全部替换为yyy |
:bro ol |
browse oldfiles,查看最近打开的文件 |
:set ff |
fileformat,查看文件格式 |
:set ff=unix |
设置文件格式为unix |
:sp |
上下分屏 |
:vsp |
左右分屏 |
ctrl + w |
切换分屏 |
ctrl + e |
向下滚屏 |
ctrl + y |
向上滚屏 |
ctrl + x, ctrl + i |
关键字补全,只匹配当前文件中的关键字及include指定头文件中的关键字 |
ctrl + x, ctrl + f |
文件名补全 |
ctrl + x, ctrl + ] |
关键字补全,匹配ctags文件中的关键字 |
:!ctags -R . |
当前目录下递归生成tags文件 |
:set tags=xxx |
使用xxx作为vim使用tag文件 |
ctrl + ] |
跳转到第一个匹配的tag |
:tn |
tag next,多个tag匹配中时,跳转到下一个tag |
:ts |
tag select,列出匹配中的tag列表 |
#NAME? |
自动缩进当前行至文件最后一行的内容 |
#ERROR! |
自动缩进当前行 |
10== |
自动缩进当前行后面的10行(包括当前行) |
h/j/k/l |
左/下/上/右 |
w |
行内跳字(跳到字首)(从左往右) |
shift + w |
行内跳字(跳到字首)(从左往右),只以空格为分隔符 |
b |
行内跳字(跳到字首)(从右往左) |
shift + b |
行内跳字(跳到字首)(从右往左),只以空格为分隔符 |