vim 多文件编辑(偶的linux笔记)

在linux下,假若需要对多个文件的内容进行相互对照和参考,或需要将一个文件的某部分内容复制或粘贴到另一个文件中,可通过vim同时打开这些相关文件进行编辑。

通过vim打开的每个文件都对应着一个buffer(buffer是系统为打开的文件分配的内存空间),每个buffer都有一个id。

 

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

命令: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来恢复高亮。

2.分割窗口,显示多个文件

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

命令:vim  -o filename1 filename2  水平分割窗口

       vim  -O  filename1 filename2 垂直分割窗口

说明:

 

                                        图 1

图1中使用命令同时打开文件BiTree.c和operateBiTree(使用水平分割),得到如下图2效果:

                                         图 2

如果我们使用垂直分割,将得到如下图3的效果

                                                     图 3

我们可按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中进行处理,不改变当前编辑文件的内容

转载于:https://www.cnblogs.com/zkl106/archive/2013/04/30/3051790.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值