首页 > 代码库 > VI打开和编辑多个文件的命令

VI打开和编辑多个文件的命令

http://www.05112.org/school/xtrm/linux/2013/0625/4280.htmlVI打开和编辑多个文件的命令

可分两种情况:

1、在同一窗口中打开多个文件:
 
vi file1 file2 file3
:n  切换到下一个文件 (n=next)
:N  切换到上一个文件
 
2、在不同窗口中打开多个文件:
 
如果已经打开一个了一个文件,
则在vi的命令输入状态下输入 :sp 另外一个文件的路径及文件名,
如此就可以在一个窗口打开多个文件了。
或者用 vi -o file1 file2 file3....用分割屏幕窗口方式同时打开多个文件。
可以使用 ctrl + 两次按 w 或者ctrl + w 然后按上下键在上下窗口间切换。

窗口分割实现编辑多文件

*先使用vi打开一个文件,例如vi actinia_proenrule.sh
 
*分割窗口打开另外的文件
 
命令行模式下输入  sp 另外一个文件 就可以水平分割继续打开第二个文件,如果想纵向分割,可以使用vsp 文件名
 
注:sp=split,vsp=vsplit. 上面的写法是vi支持的简略写法,v实际就是vertical,从中我们可以看出改命令的含义,另外vi不仅仅支持两个文件,还支持更多个文件同时在一个 大的窗口中显示编辑,同时还支持同时打开的两个文件是同一个文件。

*窗口切换

可以使用 ctrl +两次按 w,这样就可以在各个文件中切换
 
之前觉得vi的多文档编辑用着很不方便,现在接触了几个,用过了MiniBufExplorer,发现看着不是很舒服。还是使用ls比较好看一些。
 
:ls  展示全部的打开文档
 
:xn  切换到向下的第x个文档
 
n ctrl+6 : 切换到第n个buffer
 
ctrl+6  或 :e#   回到前一个编辑文件

分屏

:new xxx
 
ctrl+w s   对当前文档内容分屏显示
 
ctrl+w q   关闭所处分屏
 
ctrl+w o   仅显示当前分屏内容
 
ctrl+w j k  上下选择分屏

个人觉得最值得用的命令就是ctrl+w  w 快速在分屏的两个屏幕中切换

下面写的还没用过~看了大家的分享觉得这几个还不错

:n1,n2 co n3: 将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2 d: 将 n1行到n2行之间的内容删除

:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之,

若不指定n1,n2,则表示将整个文件内容作为command的输入

方式2的优点在可以直接使用nyy和pp命令在各个窗口的文件之间进行拷贝和粘贴,操作比较方便。
 
 
基础命令总结:
:ls或:args  显示编辑名单中的各个文件名
:n 读入编辑名单中的下一个文件
:N 读入编辑名单中的上一个文件
:rew  读入编辑名单中的第一个文件
:e# 读入上一次编辑的文件
:bd 关闭当前编辑的文件,在多个文件编辑中使用。:q是关闭vi窗口,:bd是关闭当前编辑的窗口,相当于子窗口。
:e file   读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则应先以:w存档。
:e! file   强迫读入另一个文件进入vi,原文件不作存档动作。
 
 
PS(Postscript):
 
:ls结果列表解释,如图:
 
 
1~8,多个文件的顺序
%a,当前正在编辑的文件
#,上一次编辑的文件
 
 
更多文章:
vi中编辑多个文件的切换问题-http://hi.baidu.com/xiaoma/item/1cba3e177fbaf308d0d66ddd
vi同时编辑多个文件-http://linux.chinaunix.net/techdoc/system/2006/03/17/929269.shtml
vi如何关闭打开的多个文件中的一个-http://bbs.chinaunix.net/thread-1926376-1-1.html

VI打开和编辑多个文件的命令