vim 常用命令
三种工作模式
vim 有三种工作模式:
- 命令模式
- 编辑模式(输入模式)
- 底线模式
相互切换:
- a 光标后插入
- i 当前位置插入
- o 下一行插入
光标移动
h(左) j(下) k(上) l(右)
10j : 向下10行
0 : 行首 $ : 行尾
gg : 移动到文档首 G : 移动到文档尾 5G : 移动到文档的第 5 行
ctrl + f : 下一页 ctrl + b : 上一页
ctrl+o, ctrl+i 光标导航前进后退
删除、复制、粘贴
x : 相当于 del,删除光标
X : 相当于 backspace,删除光标之前的内容(不包含光标)【大写之前,小写之后】
dd : 删除整行
10dd : 删除 10 行
D: 删除该行光标后边内容
d0: 删除该行光标前面内容
dw: 删除单词
yy : 复制整行
2yy : 复制 2 行
p : 粘贴到光标之后
P : 粘贴到光标之前
撤销、重做
u : 撤销
ctrl + r : 重做
重复上一个命令
. : 重复上一个命令
显示行号
:set nu 显示行号
:set nonu 取消行号
批量注释
批量注释:
Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。
取消注释:
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。
vim 寄存器
vim 有 12 个寄存器,记录用户复制和删除的内容,分别是:
"
: 未命名寄存器(默认寄存器),记录上一次复制、删除内容- 0 : 记录上一次复制内容
- 1 : 记录上一次删除内容
- …
- 9
+
: 系统剪贴板- :dis 查看寄存器
使用方法:
p # 粘贴默认剪贴板中的内容
y # 复制到默认剪贴板
""y # 同上
"0p # 粘贴 0 号寄存器中的内容
"+p # 粘贴系统剪贴板中的内容
查看 vim 是否支持系统剪贴板,vim --version | grep clipboard
, 显示有 +clipboard
,则支持,否则不支持,需要重装 vim,
sudo apt install vim-gtk
设置默认剪贴板为系统剪贴板,vim ~/.vimrc
, 添加内容 set clipboard=unnamed
分屏
:sp xxx
:vsp xxx
ctrl+w+[h,l] # 左右切换
ctrl+ww # 循环切换
ctrl+w+c # 关闭分栏
:vsp | bn # 分屏显示第n个buffer
执行外部命令
:!ls
打开多个文件和切换
:open xxx
- 最近两个切换 Ctrl+6
- 切换到下一个 :bn
- 切换到上一个 :bp
- 查看已打开的文件 :ls
- 切换到第n个文件 :bn, :b xxx (tab 自动补全)
- 关闭第n个 :bdn
到第n行
:n 或者 nG (n是具体数字)
查找 word
- /word
*
查找光标所在 word- 下一个 n
- 上一个 N
自动补全
在编辑模式下 ctrl+n, ctrl+p
查找文件
:find train*
文件列表
:edit .