VIM常用快捷键
移动光标
命令 |
说明 |
h j k l |
上下左右 |
ctrl + e |
移动页面 |
ctrl + f |
forward 往前翻一页 |
ctrl + b |
back 往后翻一页 |
ctrl + d |
往前翻半页 |
ctrl + u |
往后翻半页 |
|
|
w |
word 跳到下一个字首,按标点或单词分割 |
W |
Word 跳到下一个字首,长跳,如 end-of-line 被认为是一个字 |
e |
end 跳到下一个字尾 |
E |
end 跳到下一个字尾,长跳 |
b |
begin 跳到上一个字首 |
B |
Begin 跳到上一个字首,长跳 |
eg |
跳到上一个字尾 |
|
|
0 |
跳至行首,不管有无缩进,就是跳到第0个字符 |
^ |
跳至行首的第一个字符 |
$ |
跳至行尾 |
gg |
跳至文首 |
G |
跳至文尾 |
5gg/5G |
跳至第5行 |
gd |
跳至当前光标所在的变量的声明处 |
fx |
在当前行中找x字符,找到了就跳转至 |
; |
重复上一个命令,而不用重复输入 fx |
* |
查找光标所在处的单词,向上查找 |
# |
查找光标所在处的单词,向下查找 |
删除复制
命令 |
说明 |
dd |
删除光标所在行 |
dw |
删除一个字(word) |
D |
删除到行末 |
x |
删除当前字符 |
X |
删除前一个字符 |
yy |
复制一行 |
yw |
复制一个字 |
Y |
复到到行末 |
插入模式
命令 |
说明 |
i |
从当前光标出进入插入模式 |
I |
进入插入模式,并置光标于行首 |
a |
追加模式,置光标于当前光标之后 |
A |
追加模式,置光标于行末 |
o |
在当前行之下新加一行,并进入插入模式 |
O |
在当前行之上新加一行,并进入插入模式 |
Esc |
退出插入模式 |
编辑
命令 |
说明 |
J |
将下一行和当前行连接为一行 |
cc |
删除当前行并进入编辑模式 |
cw |
删除当前自并进入编辑模式 |
c$ |
擦除从当前位置至行末的内容,并进入编辑模式 |
s |
删除当前字符 并进入编辑模式 |
S |
删除光标所在行 并进入编辑模式 |
xp |
交换当前字符和下一个字符 |
u |
撤销 |
ctrl + r |
重做 |
~ |
切换大小写,当前字符 |
>> |
将当前行右移一个单位(一个tab符) |
<< |
将当前行左移一个单位 |
== |
自动缩进当前行 |
编辑
命令 |
说明 |
:w |
将缓冲区写入文件,即保存修改 |
:wq |
保存修改并退出 |
:x |
保存修改并退出 |
:q |
退出,如果对缓冲区进行过修改,则会提示 |
:q! |
强制退出,放弃修改 |
多文件编辑
命令 |
说明 |
vim file1 file2 |
同时打开多个文件 |
:args |
显示当前编辑文件 |
:next |
切换到下个文件 |
:prev |
切换到前个文件 |
:next! |
不保存当前编辑文件并切换到下个文件 |
:prev! |
不保存当前编辑文件并切换到上个文件 |
:wnext |
保存当前编辑文件并切换到下个文件 |
:wprev |
保存当前文件并切换到上个文件 |
:first |
定位首文件 |
:last |
定位尾文件 |
ctrl + ^ |
快速在最近打卡窗两个文件间切换 |
:split[sp] |
把当前文件水平分割 |
:split file |
把当前窗口是水平分割,file |
:vsplit[vsp] |
把当前文件垂直分割 |
:vsplit file |
把当前窗口垂直分割,file |
:new file |
同 split file |
close |
关闭当前窗口 |
:only |
只显示当前窗口,关闭所有其他的窗口 |
:all |
打开所有的窗口 |
:vertical all |
打开所有的窗口,垂直打开 |
:qall |
对所有窗口执行: q操作 |
:qall! |
对所有窗口执行: q!操作 |
:wall |
对所有窗口执行: w操作 |
:wqall |
对所有窗口执行: wq 操作 |
ctrl-w h |
跳转到左边的窗口 |
ctrl-w j |
跳转到下面的窗口 |
ctrl-w k |
跳转到上面的窗口 |
ctrl-w l |
跳转到右面的窗口 |
ctrl-w t |
条撞到最顶上的窗口 |
ctrl-w b |
跳转到最底下的窗口 |
多标签编辑
命令 |
说明 |
:tabedit file |
在新标签中打开文件 file |
:tab split file |
在新标签中打开文件 file |
:tabp |
切换到前一个标签 |
:tabn |
切换到后一个标签 |
:tabc |
关闭当前标签 |
:tabo |
关闭其他标签 |
gt |
到下一个 tab |
gT |
到上一个 tab |
0gt |
跳到第一个tab |
5gt |
跳到第五个 tab |
执行 shell 命令
命令 |
说明 |
命令模式下输入 :sh |
可以运行相当于在字符模式下,到输入结束想要回到 vim 编辑器中用 exit,ctrl+D 返回 vim 编辑器 |
!command |
运行结束后自动回到 vim 编辑器中 |
ctrl+z |
回到 shell,用 fg 返回编辑 |
:!make -> |
直接在当前目录下运行 make 指令 |
vim 启动项
命令 |
说明 |
-o[n] |
以水平分屏的方式打开多个文件 |
-O[n] |
以垂直分屏的方式打开多个文件 |
自动排版
命令 |
说明 |
gg=G |
在黏贴了一些代码后,vim 变得比较乱,只要执行 gg=G 就能搞定 |
如何在 vim 中编译程序
命令 |
说明 |
:copen :make |
在 vim 藏爱过你可以完成 make,并且可以将编译的结果也显示在 vim 里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make 编译后的结果就显示在了 copen 打开的小窗口里了,而且用鼠标双击错误信息,就会跳转到错误发生的行 |
buffer 操作
符号 |
buffer 状态 |
- |
非活动的缓冲区 |
a |
当前被集火缓冲区 |
h |
隐藏的缓冲区 |
% |
当前的缓冲区 |
# |
交换缓冲区 |
= |
只读缓冲区 |
+ |
已经更改的缓冲区 |
vim 操作目录
1.打开目录
vim .
vim a-path/
2.以下操作在操作目录时生效
p,P,t,u,U,x,v,o,r,s
c 使当前打开的目录成为当前目录
d 创建目录
% 创建文件
D 删除文件/目录
- 转到上层目录
gb 转到上一个 bookmarked directory
i 改变目录文件列表方式
l 刷新当前打开的目录
mf - 标记文件
mu - unmark all marked files
mz - Compress/decompress marked files
gh 显示/不显示隐藏文件( dot-files)
h 编辑隐藏文件列表
a 转换显示模式, all - hide - unhide
qf diplay infomation about file
qb list the bookmarked directories and directory traversal history
gi Display information on file
mb
mc
md - 将标记的文件(mf标记文件)使用 diff 模式
me - 编辑标记的文件,只显示一个,其余放入 buffer 中
mh
mm - move marked files to marked-file target directory
mc - copy
mp
mr
mt
vim 中复制,移动文件
1, mt - 移动到的目录
2, mf - 标记要移动的文件
3, mc - 移动/复制
R 移动文件
打开当前编辑文件的目录
:Explore
:Hexplore
:Nexplore
:Pexplore
:Sexplore
:Texplore
:Vexplore