学习vi编辑器7(上)

系统 1665 0

第七章 高级编辑

定制vi

vi的设置选项影响它的操作方式,可以在vi中使用ex的 :set 命令修改这些选项. 而且,无论vi什么时候启动,它都要读取 主目录 下的 .exrc文件 以获得进一步的操作指令。通过在文件中放置:set命令,就可以在使用vi的任何时候改变它的操作方式。vi首先执行主目录下的.exrc文件,然后才执行当前目录下的.exrc文件,储存在shell变量 EXINIT 中的任何命令都将在vi启动时执行并覆盖主目录.exrc文件的设置。

:set命令

有两种类型的选项可以使用:set命令进行修改:不是开就是关的 触发选项 带数字或字符串 值的选项(如页边距的位置和文件名)。开启触发选项的命令为:

:set option

关闭触发选项的命令为:

:set no option

:set ic     指定模式搜索忽略大小写

:set noic     搜索时不忽略大小写

:set window= n     设置"窗口大小"就是active的buffer,在使用^F和^B的时候起效,向前(后)移动max(n-2, 1)行

:set all 查看所有的选项设置情况,可以使用:h[elp] ' option '来寻求帮助

:set option ?     查看命令当前值

:set     显示在.exrc文件或当前会话期间明确修改和设置过的选项

.exrc文件

控制vi环境的.exrc位于主目录下,把将在使用vi或ex时产生影响的 set ab和map命令 输入到该文件中,命令前面 不需要有冒号

替换环境

除了读取主目录下的.exrc文件外,还可以让vi读取当前目录下名为.exrc的文件

可以读取另外名字的文件设置vi环境,例如

:so[urce] .progoptions

一些有用的选项

:set textwidth=10     让每行的宽度不超过10,但是只能在空白处断行

:set wrapmargin=10     让每行到右边界上的宽度不少于10,但是只能在空白处断行

:set magic     让正则表达式中.和*有特殊意义 /\v 更厉害名曰:very magic就和egrep使用一样了

:set wrapscan     让模式搜索的时候不要一圈一圈的找,找不到了就不要绕圈子

:set autoindent         让下一行和这一行的缩进相同

:set tabstop=4         设置Tab键在vim中移动量为4,默认为8

:set shiftwidth=4     设置自动缩进量为4,可以和tab不一样,最好一样

:set showmatch     找到匹配的括号,给出闪烁提示

:set list             列出tab键^I和回车键$

:set autowrite         在调用:n命令移动到下个文件进行编辑时和使用:!运行shell命令之前将自动写出已修改的缓冲区内容

执行UNIX命令

在vi中进行编辑时,可以显示或读取任何UNIX命令的执行结果.感叹号!可以指定vi创建一个shell并把它后面的内容看成UNIX命令:

:! command

通过 :sh命令 可以创建一个shell,跟 :!sh 命令创建的shell不一样,后者功能很弱,不知道为什么会这样

:r !date 可以将date得到的结果插入到当前行以下

:r !sort phone 会读取"phone"排序后的内容

使用命令过滤文本

把( 缓冲区中 )文本块作为标准输入发送给UNIX命令,该命令的输出将取代缓冲区中( 对应 )的文本.可以使用ex或vi的命令对文本进行过滤,区别在于:ex使用 行地址 指示文本块,vi使用 文本目标(移动命令) 指示文本块.

使用ex过滤文本

:28,34!sort     使用sort对第28行到第34行进行过滤,并用sort的输出取代这些行

使用vi过滤文本

在vi中,依次输入 感叹号 任何指示文本块的 vi移动键 和所要执行的 UNIX命令 ,即可使用该UNIX命令对文本进行过滤,例如:

!) command      表示过滤该句

由于都是 行过滤 ,因此需要选择的范围 >1才会有效果,实际上都是将你选择的范围转换为行后通过 n !! command 命令转发的

重复前面命令的语法是: !object!

学习vi编辑器7(上)


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

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

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

【本文对您有帮助就好】

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

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