首页 > 代码库 > vim常见操作命令

vim常见操作命令

打开多文件
vim file1 file2
:open/:e 不关闭vim打开文件

分帧窗口
:new 新窗口
:sp 横向
:vsp 纵向
ctrl+w窗口切换
:tabc 关闭当前窗口
:tabo 关闭所有窗口
:ctrl+w + 纵向扩大(行数增加)
:ctrl+w - 纵向缩小 (行数减少)

文件间切换
Ctrl+6—下一个文件
:bn—下一个文件
:bp—上一个文件

在多个个文件之间复制
ctrl+v进入可视模式
"+y/"*y复制
"+p/"*p粘贴

复制
yy 复制行
nyy 复制n行
yw 复制字
:10,100 copy 200 复制第10行到第100行的内容并粘贴到200行
打开一个文件,在该文件下复制几行到另一个文件(如到test.txt),会覆盖test.txt中的内容
10,100w!test.txt, 注:复制第10行到100行的内容到test.txt中,并覆盖test.txt中的内容
在该文件下复制几行到另一个文件,但不会覆盖原内容,即追加
10,100w!>>test.txt, 注:复制10行到100行的内容追加到test.txt的结尾。

粘贴
p/P 粘贴

剪切/删除
dd 删除行
dw删除字
d$当前到行尾
d^当前到行首
3dd ,即从当前行+下两行被剪切了
1,10 m 20 剪切1-10行到20行

查找
/key 从当前光标位置开始向后查找key
?key 从当前光标位置开始向前查找key
/\<key\>,?\<key\> 精确匹配查找key
n,N 查找到key后,n跳到后一个位置,N跳到前一个位置

替换
s/要被取代的字串/新的字串/ 只替换一次
s/要被取代的字串/新的字串/g 替换当前行
%s/要被取代的字串/新的字串/g 批量替换
n,/要被取代的字串/新的字串/g 替换n行到最后一行
n,ms/要被取代的字串/新的字串/g 从n行替换到m行
注意:/可以用#表示,这样字符串中的/就不需要转义了

文件浏览
:Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
:files/:ls 显示当前buffer情况
:qa 或 qa! 在打开多文档的情况下离开 vim。a 即 all 的意思。

vim与shell切换
:sh/:shell 可以在不关闭vi的情况下切换到shell命令行
ctrl+d/:exit 从shell回到vi

多标签
tabnew filename 增加一个标签
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 前一个
:tabn 后一个

光标定位快捷键
到指定行 :行号,行号G
到文件头 1G
到文件尾 G
左下上右 h,j,k,l
下一个字 w,上一个字 b
到行首 ^
到行尾 $
行尾插入 A,添加空行 o

保存,退出
保存文件 :w
关闭文件 :q
保存并关闭文件 :wq
不保存强制关闭文件 :q!
关闭所有文件退出 :qa

移屏
下翻页 Ctrl-f
上翻页 Ctrl-b
下翻行 Ctrl-e
上翻行 Ctrl-y

vim常见操作命令