首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
amh (72)
nizhigang2000 (8)
superyan (27)
iiprogram (83)
hongbo781202 (81)
Kendiv (113)
TechnoFantasy (52)
feifei1018 (19)
coofucoo (108)
qingrun (67)
CSDN - 文档中心 - 其他 阅读:856   评论: 0    参与评论
标题   Vi 操作多文件的N 中解决方法     选择自 guipei 的 Blog
关键字   Vi 操作多文件的N 中解决方法
出处  

Vi 操作多文件的N 中解决方法

 

 

By guipei 2005-3-21

 

 

学习linux,总是少不了学习vi编辑器的使用。vi 的作用如果同视窗系统作对比的话,我觉得实现的功能应该和记事本一样。但是作为linux的特殊性,vi 的复杂程度却远远高于记事本的操作。

最近,学习了一些vi操作多个文件的操作方法,再这里总结一下,因为以前看过很多书,或者资料,大都是泛泛的介绍一下vi的基本功能,没有深入将下去,本文基本参考了两本书:Linux in a Nutshell以及O'Reilly - Learning The Vi Editor ,也算是对vi操作多文件的一个总结。

先提一个问题,为什么要进行多文件操作?很多linux的配置文件都是以属性文件保存在/etc目录或者软件的目录里面,这样,我们修改配置前,大多都会copy一个备份出来,如果发现问题,我们可以还原老的配置,或者依据老的配置,修改新的配置。这样,很多情况下面我们是需要操作多个文件。当然还有等等其他情况。

以前老的办法:

1、  使用X系统,打开多个控制台。

2、  使用远程操作,例如 ssh、或者telnet 多个登陆,打开多个控制台。

 

 

这些情况虽然可以容易的解决这个问题,但是在一些特殊情况下面,例如单用户模式下面,这些方式就显得无能为力了,即使在多用户模式下,打开多个控制台,也不可以在多个vi中进行复制、拷贝等操作。我只好打开旧文件,拿一只笔,记录下来文件内容,然后,关闭文件,打开需要修改的文件,编辑上去。

这真是一个痛苦的经历,如果你不想重蹈我的覆辙,看看有什么方法可以使用单个vi来操作多个文件,在他们之间互相操作,复制、粘贴等。

 

 

好了,我们先准备两个文件:

File fstab:

------------------------------------------------------------------------------------------------------------------

LABEL=/                 /                       ext3    defaults        1 1

none                    /dev/pts                devpts  gid=5,mode=620  0 0

none                    /dev/shm                tmpfs   defaults        0 0

none                    /proc                   proc    defaults        0 0

none                    /sys                    sysfs   defaults        0 0

LABEL=SWAP-hda4         swap                    swap    defaults        0 0

/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0

 

 

 

 

File fstab.bak:

------------------------------------------------------------------------------------------------------------------

/dev/hdd                /media/cdrom            auto    pamconsole,ro,exec,noauto,managed 0 0

文件fstablinux系统的标准分区加载配置文件,这里我们要操作的是把 fstab.bak 文件加入到文件 fstab中,让我们采用几种方法来加以处理:

 

 

方法一: 多文件打开方法:

我们可以使用命令:vi fstab fstab.bak vi本身支持打开多个文件。

使用vi 命令 :buffers 列出当前打开的文件,以及编号,

使用:buffer I 来切换当前文件,可以使用 yy pp 来复制文件了。

操作顺序:

1、  输入命令,我们可以看到输出一下结果:

:buffers

  1 %a + "fstab"                        line 12

  2 # =  "fstab.bak"                    line 1

2、  切换到第二个附近,复制其中的内容:

:buffer 2

"fstab.bak" [readonly] 2L, 95C

3、  复制文件中的第一行内容:

yy

4、  切换回第一个文件:

:buffer 2

"fstab" 12L, 808C

5、  粘贴复制内容,在插入点录入 y复制命令:

p

 

 

我们可以看到已经完成了操作。

 

 

方法二: 多窗口方法:

Vi本身也是支持多窗口操作,你知道么,看我们如何操作:

操作顺序:

1、  打开第一个文件 fstab

vi fstab

2、  vi里面打开第二个文件:

:new fstab.bak

是否看到vi把窗口切分为上下两个编辑窗?

3、  复制 fstab.bak中的内容,目前活动窗口为fstab.bak,我们输入命令 yy 复制当前行。

yy

4、  切换到fstab窗口,这个需要使用符合命令:

Ctrl + w j

命令的操作方法是同时按下 ctrl 控制键 w 键,松手后再按下 j键,是否已经看到光标移动到了下面的窗口。

5、  粘贴所选内容:

p

Ok,如何,文件复制完成了吧?

 

 

方法三:插入方法:

使用word,我们大多都使用过插入一个文件的方法,vi 也很cool,同样存在这个方法。

操作顺序:

1、  打开第一个文件 fstab

vi fstab

2、  把光标放置到插入点,录入命令:

:r fstab.bak

3、  已经可以看到fstab.bak中的内容已经插入到了fstab

 

 

 

 

Vi 的功能是否没有你想的那么简单,关于多文件的操作,更详细的操作可以参考上面提到的两本书。多掌握一些vi的操作,会让你在linux的管理上面更加方便。


相关文章
对该文的评论