程序员人生 网站导航

学习vi和vim编辑器(13):vi同类品的功能总览

栏目:服务器时间:2015-01-22 08:47:09

本章将学习vi同类品提供的相干功能。

它们都是我兄弟:

有许多可以自由获得的vi编辑器同类品。《vi和vim编辑器》重点介绍了vim编辑器,也扼要地介绍了另外3种经常使用的同类品:nvi,elvis,vile。这些同类品都提供了vi以外的许多扩大功能,虽然方式可能不同,但这些同类品通常会提供相同的扩大功能。本篇文章将整体介绍这些同类品提供的扩大功能。

多窗口编辑:可以将屏幕分割成多个“窗口”,从而在每一个窗口编辑不同的文件,或视察同1文件的不同部份。这使得同时在多个文件中工作更加容易,在文件间剪贴文本也更加方便。

图形用户界面:除nvi以外,所有同类品都可以编译成支持X Window界面。

扩大的正则表达式:之前已学习过了vi编辑器中可用于搜索和替换模式正则表达式元字符。每种同类品都提供了某种情势的扩大正则表达式,但每种扩大方式的“风味”都与众不同。

增强的标签:"Exuberant ctags"程序是ctags的同类品。比UNIX上的ctags功能更强大。可以产生扩大的tags文件格式,让标签的搜索与匹配处理更加灵活,更加强大。以下是"Exuberant ctags"的特点功能:

  • 支持C与C++代码,另外还支持29种程序设计语言,包括C#和java;
  • 能够产生所有类型的C与C++语言标签;
  • 在解析代码时非常可靠;
  • 列出供人浏览用的源文件中的被选择对象的列表;
  • 支持产生GNU Emacs样式的标签文件;

传统的tags文件有3个以制表符分隔的字段:标签名称(1般是标识符),包括标签的源文件,和何处可找到标识符的唆使符。唆使符可以是简单的行号,或是以斜线或问号括起的nomagic搜索模式。新的格式向下兼容传统格式。前面3个字段依然相同:标签,文件名称与搜索模式。Exuberant ctags只会产生搜索模式,而不是任意的命令。扩大的属性会放在用于分隔的 " ;" "分隔符后面。属性间以tab字符分隔,每一个属性均由以冒号分隔的两个子字段组成,第1个子字段是描写属性的关键字,默许为kind(此时可以省略),第2个则是实际的值。扩大的ctags关键字可以参考《vi和vim编辑器》p144。以下图所示,为扩大tags文件的1个示例:

位于该tags文件前面的以" !_TAG_ "开头的初始化标签,对辨别创建文件的程序很有帮助。而且编辑器也可能会用这些特殊标签来实现特殊的功能。以后便是相应的标签定义。

标签栈:每种vi同类品都扩充了保护标签栈的功能。每次通过" :tag "命令或vi中的" ^] "命令搜索某个标签时,编辑器会先保存当前的位置。这样以后就能够使用vi编辑器的"CTRL + T"命令或ex命令回到保存起来的位置。vim的标签栈功能将在后续文章进1步学习。

改进的编辑工具:所有的同类品都提供了编辑ex命令行,不限次数的撤消,任意长度的行与8位数据,增量搜索,将屏幕从左往右转动以代替绕排太长的行,可视模式,和模式唆使器等其它特性。

编程辅助:

vi是为编程者开发的编辑器,它提供了1些功能,使得传统的UNIX编程者(编写C程序和troff文档的人)工作起来更容易。vi的同类品在此基础上,提供了更多功能:

编辑-编译的加速:在编译期间,完全不需要离开编辑器,而且可以获得编译器的输出,并自动跳到包括毛病的行上。

语法高亮:将代码中的不同语法元素用不同的色彩与字体来显示。


本章vi命令总结:

本章主要介绍了部份vi同类品(vim,nvi,elvis,vile)提供的扩大功能。后续文章将重点学习vim编辑器的各种扩大功能细节。


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐