Vim实用命令

2016/3/26 posted in  Linux

提高效率的几个vim常用命令

在同一窗口下显示多个文件

命令:vim filename1 filename2

说明:上述命令同时打开了filename1,filename2两个文件,不过文件filename1的内容将占据整个vim窗口,要想在各个文件之间进行切换,我们可通过如下命令

:n #切换到下一个文件
:N #切换到上一个文件
:n filename2 #切换到文件filename2

我们提到每个打开的文件都对应着一个buffer,故可通过切换buffer来达到切换文件的目的,如下

:ls  列出vim打开的所有文件的信息,包括文件名,buffer id等
:b2  切换到buffer id为2的buffer
:bn   切换到当前buffer的下一个buffer
:bp   切换当前buffer的前一个buffer
:bd 关闭当前buffer,对应文件也随之关闭
:bd2 关闭buffer id为2的buffer,对应文件也随之关闭

我们可通过安装miniBufExplorer插件来简化buffer的切换。不过该插件有时会导致语法高亮显示失效,我们可通过命令:syntax on来恢复高亮。

分割窗口,显示多个文件(这个方便实用)

对于在同一个窗口下打开多个文件,对于各文件之间内容的复制,剪切操作终究不方便,我们可使用命令对窗口进行分割,每个子窗口显示一个文件

命令:

vim  -o filename1 filename2  # 水平分割窗口
vim  -O filename1 filename2  # 垂直分割窗口

我们可按ctrl ww在各窗口之间进行切换

复制,剪切与粘贴操作命令

通过该种方式可非常方便各文件内容之间的复制与剪切操作,这里顺便简单提一下复制,剪切与粘贴操作命令

  • yy : 复制光标所在行
  • dd : 剪切光标所在行
  • 5yy : 复制从光标所在行开始计数的下五行文本
  • 5dd : 剪切从光标所在行开始计数的下五行文本
  • v(小写): visual模式,通过上下左右键选择光标“扫过”的所有字符
  • V (大写): visual line 模式,通过上下键选择光标“扫过”的所有行
  • ctrl + v : visual block 模式,通过上下左右键选择一个矩形文本
  • y : 复制在visual模式, visual line模式和visual block 模式下选择的文本
  • d : 剪切在visual模式, visual line模式和visual block 模式下 选择的文本
  • p(小写): 粘贴, 粘贴位置为光标所在行的下一行
  • P(大写): 粘贴, 粘贴位置为光标所在行的上一行
  • u : 撤销操作
  • r : 重做操作

在不关闭vim的情况下继续打开其他文件(实用)

可在vim中使用如下命令:
```
:e file #不会分割窗口

:sp file #将会水平分割窗口

:vsp file #将会垂直分割窗口
```

vim和shell之间切换(实用+1)

:shell   # 切换到shell,此时vim在后台运行,在shell中输入命令exit,切换回vim