转自:http://blog.csdn.net/lcj_cjfykx/article/details/18805721shell
经过vim打开的每一个文件都对应着一个buffer(buffer是系统为打开的文件分配的内存空间),每一个buffer都有一个id。vim
1.在同一窗口下显示多个文件.net
命令:vim filename1 filename2插件
说明:上述命令同时打开了filename1,filename2两个文件,不过文件filename1的内容将占据整个vim窗口,要想在各个文件之间进行切换,咱们可经过以下命令blog
:n 切换到下一个文件内存
:N 切换到上一个文件it
:n filename2 切换到文件filename2class
咱们提到每一个打开的文件都对应着一个buffer,故可经过切换buffer来达到切换文件的目的,以下后台
:ls 列出vim打开的全部文件的信息,包括文件名,buffer id等file
:b2 切换到buffer id为2的buffer
:bn 切换到当前buffer的下一个buffer
:bp 切换当前buffer的前一个buffer
:bd 关闭当前buffer,对应文件也随之关闭
:bd2 关闭buffer id为2的buffer,对应文件也随之关闭
咱们可经过安装miniBufExplorer插件来简化buffer的切换。不过该插件有时会致使语法高亮显示失效,咱们可经过命令:syntax on来恢复高亮。
2.分割窗口,显示多个文件
对于在同一个窗口下打开多个文件,对于各文件之间内容的复制,剪切操做终究不方便,咱们可以使用命令对窗口进行分割,每一个子窗口显示一个文件
命令: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: 重作操做
提示:
a.倘若咱们经过vim打开了多个文件后,想在不关闭vim的状况下继续打开其余文件,如文件file,可在vim中使用以下命令:
:e file 不会分割窗口
:sp file 将会水平分割窗口
:vsp file 将会垂直分割窗口
b. vim和shell之间切换
:shell 切换到shell,此时vim在后台运行,在shell中输入命令exit,切换回vim
c. 在vim中执行shell命令(不切换到shell)
:!command 在执行的命令前加上!,如!ls ,!ls -a
: r !command 将command命令的执行结果插入到文本当前行的下一行
: 3 !command 将文本中第三行的内容输入到命令command中进行处理,并将第三行的内容替换为命令的执行结果
:1,3 !command 将文本中第一行到第三行的内容输入到命令command中进行处理,并将第一行到第三行的内容替换为命令的执行结果
: 3 w !command 将文本中第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容.
:1,3 w !command 将文本中第一行到第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容