学习vi编辑器5

系统 1849 0

第五章 介绍ex编辑器

可以用空格来分隔行地址、模式、命令

首先利用ex打开文件

ex filename

查看文件的第一行:

1p 或者 1

打印文件的1到3行:

1,3

替换命令:(将当前行中的a全部替换成为A)

s/a/A/g

如果当前行是第9行,那么如下的命令可以达到同样的效果

9s/a/A/g

命令 :vi 可以从ex转换到vi中

在vi命令模式下, Q 命令可调用ex,在ex中的任何时刻,命令 vi 可使你返回到vi编辑器

:10,16d[elete]     删除10到16行的内容

定义行的范围

使用明确数字的地址称为绝对行地址

:3,18d         删除3~18行

:160,224m23     移动160~224行到23行的下面(如同vi中的delete和put)

:23,29co100     复制23~29行并把它们粘贴到100行的后面(如同vi中的yank和put)

:set nu 是 :set number的缩写,相反的命令是:

:set nonu 和:set nonumber

:1,10#     暂时的显示部分行的行号

:=     显示总行数

:.=     显示当前行的行号

:/pattern/=     显示第一个与模式相匹配的行的行号

行地址符     点(.) 代表当前行; $ 代表文件的最后一行; % 代表文件中的每一行,等同于 1,$

:.,$d         删除从当前行(包括)到最后一行(包括)之间的文本

:20,.m$     把从20行到当前行的文本移动到文件的结尾

:%d         删除文件中的所有行

:%t$         复制所有行并把它们粘贴到文件的尾部(成为连续的副本)

使用 +- 指定一个相对当前行的地址

;.,.+20d     删除从当前行开始向下的20行

:226,$m.-2     把226行到文件末尾的文本移动到当前行上面的第二行

:,+20#         显示从当前行到下面20行的行号

:-,+t0         复制前后,当前三行到文章的开头(就是虚构的第0行的后面)

搜索模式

ex定位行的另一种方法是使用搜索模式

:/pattern/d     删除下一个(从当前行开始搜索)包含模式pattern的行

:/pattern/+d     删除下一个(从当前行开始搜索)包含模式pattern的下一行

:/pattern1/,/pattern2/d     将从 第一个 包含模式1的行到 第一个 包含模式2的行之间的内容删除(有可能这个范围是负的)

:.,/pattern/m23         将从当前行(.)到第一个包含模式pattern的行之间的文本移动到23行的后面

:100;+5 p         从100行到105行 (注意分号)

全局搜索

:g/pattern         寻找 所有的 pattern模式,并停止到最后一个

:g/pattern/p     寻找并显示文件中所有包含模式pattern的行

:g!/pattern/nu         寻找并显示文件中所有不包含模式pattern的行,同时还显示这些行的行号

:60,124g/pattern/p     寻找并显示第60到124行之间所有包含模式pattern的行

组合ex命令

:1,3 d | s/their/their/         把一到三行删除;然后再当前行(该行是调用ex提示符以前的第4行)进行替换

:1,5 m 10 | g/pattern/nu     把第一行到第五行移动到第10行的后面,然后显示所有包含模式pattern的行(和行号)

保存和退出文件

vi保存退出命令 ZZ

:w     把缓冲区写到文件中

:q     退出编辑器

:wq     写文件并退出编辑器,即使没有修改文件,写操作也会无条件的进行

:x     如果修改了文件就写文件,退出,如果没有修改文件就直接退出

加上感叹号就强制执行前面的操作(前提是能够有办法执行)

重命名缓冲区

可以使用 :w 将整个缓冲区保存到新文件中

:w filename.new

保存部分文件

:230,$w newfile     将从第230行到文件末尾的文本保存到newfile中

:.,600w newfile     将从当前行到第600行的文本保存到newfile中

添加到现有文件中

:340,$w >>newfile     将缓冲区从340到尾部的内容保存到newfile的尾部

把文件复制到另一个文件中

:r[ead] filename     将filename文件的内容插入到本文件中光标位置的后面

:185r /xxx/filename         将filename文件插入到本文件中第185行后面,另外还有

:$r data

:0r data

:/pattern/r data

编辑多个文件

调用vi打开多个文件

vi file1 file2     打开两个文件,并显示出第一个文件

:ar[gs]         查看当前打开文件,方括号括起当前选择的文件

:rew[ind]         把当前文件重新设置为命令行上指定的第一个文件

:last             把当前文件设置为命令行上指定的最后一个文件

:e file         可以在vi中新打开file文件

在打开两个文件的时候%代表当前文件名字符串,#代表备用文件名字符串

:e!     放弃编辑操作并返回到当前文件上次保存过的版本

^^ 等同于 :e#

在文件之间进行编辑

方法一跟单文件相同,仅仅是切换文件的区别,方法二

:160,224ya a     将第160行到224行复制到缓冲区a中,接下来使用:e移动到想放置的文件,输入 :pu a 就复制过去了,注意这个a缓冲区就是"a缓冲区

学习vi编辑器5


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论