vim命令

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