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

本章将学习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编辑器的各种扩展功能细节。

时间: 2024-10-08 01:38:15

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

学习vi和vim编辑器(9):全局替换(2)

上一篇文章已经学习了如何通过vi编辑器中" :s "命令进行全局替换,而且可以在替换命令中使用正则表达式以进行强大的模式匹配.这一篇文章将学习模式匹配的更多范例,以进一步熟悉正则表达式. 模式匹配的范例: (1)匹配一个完整的单词:如下图所示,如果需要将文本里所有的child单词替换成为children,可能最先想到的就是下图所示的替换命令: 但是这个命令会把childrendish,Fabrichild这两个单词中的child都做替换,这不是我们想要的.替换的关键就是child要是一

学习vi和vim编辑器(16):vim的多窗口功能(1)

vim默认是在一个窗口中编辑所有文件,在文件间移动或者移动到文件的不同部分时只显示一个缓冲区.但vim也提供了多窗口编辑功能,可以简化复合的编辑任务.这篇文章将学习如何在一个运行的vim进程里使用多窗口,包括多窗口编辑工作的初始化与启动,在窗口间移动光标,在显示区中移动窗口等. 启动多窗口编辑: 可以在打开vim时启动多窗口编辑,也可以在编辑会话中分割窗口. 从命令行(shell)启动多窗口: 默认情况下,vim为一个会话只打开一个窗口,即使打开时已经指定多个文件.如果想从命令行中打开多个窗口,

学习vi和vim编辑器(15):vim对vi的主要改进

vim对vi做了大量改进,本章将讨论在vim中添加的主要功能:包括内置帮助功能.启动与初始化选项.新的移动命令.扩展的正则表达式.扩展的撤销.自定义可执行文件等. 内置帮助功能: vim的说明文档超过10万行,几乎所有的说明都可以通过vim内置的帮助工具取得,使用它最简单的形式就是调用" :help "命令.使用内置的帮助功能需要了解vi的导航技巧,知道如何在标签间前进与后退.当光标处于某个标签上时,按下" CTRL+] "前往该标签,按下" CTRL+T

学习vi和vim编辑器(11):高级编辑方法(2)

本章学习在vi编辑器中如何保存命令. 保存命令: vi和ex中提供了许多方法来保存一长串命令序列,这样当调用已保存的序列时,只需要输入几个字符即可. 单词缩写: 可以定义缩写,让vi在处于插入模式时替你自动将输入展开成原文.定义缩写的命令为:"  ab abbr phrase ",其中abbr就是给phrase指定的缩写.注意,在插入模式中,只有将缩写当成单个单词输入时,缩写才会被展开,单词内的abbr不会被展开.如下图所示,将"vi"定义为"visual

学习vi和vim编辑器(8):全局替换(1)

本章学习vi编辑器中的全局替换命令.通过全局替换命令,可以自动替换文件中所有出现过的某个单词.全局替换一般会用到两个ex命令:":g"(global),":s"(substitute). 替换命令: 替换命令的语法如下: " :s/old/new/ ",该命令会将当前这一行中第一个出现的old模式替换为new.其中斜线用来分隔命令的各部分(如果斜线位于该命令的最后一个字符,则该斜线可以省略). " :s/old/new/g "

【Linux基础 11】vi和vim编辑器的使用

vi -- 终端中的编辑器 目标 vi 简介 打开和新建文件 三种工作模式 常用命令 分屏命令 常用命令速查图 01. vi 简介 1.1 学习 vi 的目的 在工作中,要对 服务器 上的文件进行 简单 的修改,可以使用 ssh 远程登录到服务器上,并且使用 vi 进行快速的编辑即可 常见需要修改的文件包括: 源程序 配置文件,例如 ssh 的配置文件 ~/.ssh/config 在没有图形界面的环境下,要编辑文件,vi 是最佳选择! 每一个要使用 Linux 的程序员,都应该或多或少的学习一些

vi,vim编辑器

# `vi` —— 终端中的编辑器 ## 目标 * `vi` 简介* 打开和新建文件* 三种工作模式* 常用命令* 分屏命令* 常用命令速查图 ## 01. `vi` 简介 ### 1.1 学习 `vi` 的目的 * 在工作中,要对 **服务器** 上的文件进行 **简单** 的修改,可以使用 `ssh` 远程登录到服务器上,并且使用 `vi` 进行快速的编辑即可* 常见需要修改的文件包括: * **源程序** * **配置文件**,例如 `ssh` 的配置文件 `~/.ssh/config`

vi和vim编辑器中上下左右变成了ABCD

[问题] 一次在使用普通用户在redhat中使用vi和vim编辑器时,发现在vi和vim编辑器中:在命令行模式下能够正常使用上下左右键,但是在非命令行模式下不能正常使用上下左右方向键 [网上解决办法] 1)在/etc/vim/vimrc 中加入以下内容: set nocompatible  //支持方向键 set backspace=2   //支持backsapce前删键 2)在vi和vim的命令行模式下输入:set nocompatible [最后没办法的办法(不是最好)] 由于当前是普通用

学习vi和vim编辑器(17):vim的多窗口功能(2)

接着上一篇文章,继续学习vim编辑器的多窗口功能.本篇文章主要学习调整窗口尺寸.缓冲区及其与窗口的交互.分页编辑.关闭与离开窗口. 调整窗口尺寸: 在gvim中,可以使用鼠标调整窗口尺寸,只需要用鼠标点击及拖动窗口边界即可.如果是在vim中,只要开启mouse选型(" :set mouse=a "),也能够用鼠标调整窗口尺寸. 窗口尺寸调整命令: ^W=:试图调整所有窗口至相同尺寸(此命令受当前的winwidth和winheight选项值的影响).如果可用的屏幕块不能平均划分,vim也