学习vi和vim编辑器(13):vi同类品的功能总览
来源:互联网 发布:js如何遍历json数据 编辑:程序博客网 时间:2024/05/19 02:41
本章将学习vi同类品提供的相关功能。
它们都是我兄弟:
有许多可以自由取得的vi编辑器同类品。《vi和vim编辑器》重点介绍了vim编辑器,也简要地介绍了另外三种常用的同类品:nvi,elvis,vile。这些同类品都提供了vi之外的许多扩展功能,尽管方式可能不同,但这些同类品通常会提供相同的扩展功能。本篇文章将总体介绍这些同类品提供的扩展功能。
多窗口编辑:可以将屏幕分割成多个“窗口”,从而在每个窗口编辑不同的文件,或者观察同一文件的不同部分。这使得同时在多个文件中工作更加容易,在文件间剪贴文本也更加方便。
图形用户界面:除了nvi之外,所有同类品都可以编译成支持X Window界面。
扩展的正则表达式:之前已经学习过了vi编辑器中可用于搜索和替换模式的正则表达式元字符。每种同类品都提供了某种形式的扩展正则表达式,但每一种扩展方式的“风味”都与众不同。
增强的标签:"Exuberant ctags"程序是ctags的同类品。比UNIX上的ctags功能更强大。可以产生扩展的tags文件格式,让标签的搜索与匹配处理更加灵活,更加强大。以下是"Exuberant ctags"的特色功能:
- 支持C与C++代码,另外还支持29种程序设计语言,包括C#和java;
- 能够产生所有类型的C与C++语言标签;
- 在解析代码时非常可靠;
- 列出供人阅读用的源文件中的被选择对象的列表;
- 支持产生GNU Emacs样式的标签文件;
传统的tags文件有三个以制表符分隔的字段:标签名称(一般是标识符),包含标签的源文件,以及何处可找到标识符的指示符。指示符可以是简单的行号,或者是以斜线或问号括起的nomagic搜索模式。新的格式向下兼容传统格式。前面三个字段仍然相同:标签,文件名称与搜索模式。Exuberant ctags只会产生搜索模式,而不是任意的命令。扩展的属性会放在用于分隔的 " ;" "分隔符后面。属性间以tab字符分隔,每个属性均由以冒号分隔的两个子字段组成,第一个子字段是描述属性的关键字,默认为kind(此时可以省略),第二个则是实际的值。扩展的ctags关键字可以参考《vi和vim编辑器》p144。如下图所示,为扩展tags文件的一个示例:
位于该tags文件前面的以" !_TAG_ "开头的初始化标签,对于辨别创建文件的程序很有帮助。而且编辑器也可能会用这些特殊标签来实现特殊的功能。之后便是相应的标签定义。
标签栈:每一种vi同类品都扩充了维护标签栈的功能。每次通过" :tag "命令或者vi中的" ^] "命令搜索某个标签时,编辑器会先保存当前的位置。这样以后就可以使用vi编辑器的"CTRL + T"命令或者ex命令回到保存起来的位置。vim的标签栈功能将在后续文章进一步学习。改进的编辑工具:所有的同类品都提供了编辑ex命令行,不限次数的撤销,任意长度的行与八位数据,增量搜索,将屏幕从左往右滚动以代替绕排过长的行,可视模式,以及模式指示器等其它特性。
编程辅助:
vi是为编程者开发的编辑器,它提供了一些功能,使得传统的UNIX编程者(编写C程序和troff文档的人)工作起来更容易。vi的同类品在此基础上,提供了更多功能:
编辑-编译的加速:在编译期间,完全不需要离开编辑器,而且可以取得编译器的输出,并自动跳到包含错误的行上。语法高亮:将代码中的不同语法元素用不同的颜色与字体来显示。
本章vi命令总结:
本章主要介绍了部分vi同类品(vim,nvi,elvis,vile)提供的扩展功能。后续文章将重点学习vim编辑器的各种扩展功能细节。
- 学习vi和vim编辑器(13):vi同类品的功能总览
- 学习vi和vim编辑器(1):vi文本编辑器
- 学习vi和vim编辑器(16):vim的多窗口功能(1)
- 学习vi和vim编辑器(17):vim的多窗口功能(2)
- 学习vi和vim编辑器(15):vim对vi的主要改进
- 学习vi和vim编辑器(14):vim概述
- vi和vim编辑器
- vi和vim编辑器
- vi和vim编辑器
- vi和vim编辑器
- vi和vim编辑器
- vi和vim编辑器
- 4、 VI、VIM编辑器:VI、VIM编辑器的介绍、VI、VIM扥使用和常用快捷键
- 学习vi和vim编辑器2
- 学习vi和Vim编辑器笔记(一)
- 学习vi和vim编辑器(4):快速移动位置
- Linux下的编辑器:vi和vim
- vi 和 vim 编辑器的使用
- 返回指针的函数
- Python标准库06 子进程 (subprocess包)
- neerc-2013-Green Energy
- 【网络安全】Snort中文查询手册
- 3d015期于海滨专家
- 学习vi和vim编辑器(13):vi同类品的功能总览
- C语言学习笔记1——
- JAVA 输入一个字符串,将大写字母改成小写,小写字母改成大写
- poj 3984 迷宫问题
- C#中类和结构体的区别
- Android获取手机屏幕分辨率
- ClassLoader
- wxpython GUI之一个小小计算器
- 数据结构体模版---循环单链表