vi 编辑器的许多选项可以控制编辑会话的外观和感觉。使用 :set 命令修改vi 中的会话设置。按 Escape 键进入命令模式之后,可以使用 :set all 命令显示选项和设置的列表。可以设置的选项之一是 number,它的作用是打开和关闭行号
#
# Internet host table
#
::1 localhost
127.0.0.1 localhost loghost
192.168.0.6 centos5
192.168.0.10 appserv
192.168.0.11 webserv
192.168.0.12 test
192.168.0.5 solaris10 # Added by DHCP
~
~
~
:set number
这个vi命令 在当前编辑的文件中的每个记录上显示行号。让vi 进入命令模式之后,可以输入 :set number 并按回车来打开行号
#
# Internet host table
#
::1 localhost
127.0.0.1 localhost loghost
192.168.0.6 centos5
192.168.0.10 appserv
192.168.0.11 webserv
192.168.0.12 test
192.168.0.5 solaris10 # Added by DHCP
可以使用 :set nonumber 命令关闭行号。还可以使用这个命令和 :set number 命令的简写,即 :set nu 和 :set nonu。如果需要快速计算要用vi 函数处理的行数,显示行号会非常有帮助。当行数很多,可能跨多个屏幕时,行号尤其有用。另外,有时候您知道要处理的行范围,但是需要查明要在vi 命令中使用的初始和结束行号。如果希望每次进入vi 会话时都显示行号,那么在主目录中的.exrc 文件中添加 set number 行。
worked on UNIX systems for over 15 years. Martin also
worked for many years before that on mainframes.
Mr Martin Wicks lives in London.
~
~
~
~
:%s/^\(Martin\)/Mr \1 Wicks/g
书签
可以让vi 在文件中的特定位置放上书签。方法是按 Escape 键,再按 M 键,然后输入另一个表示书签引用的字母表字符。因此,最多可以有 26 个书签,分别名为 a 到z。要返回到上一书签,按 Escape 键,再按反撇号(`),然后输入书签引用字符。
例如,按 Escape 之后按 M 和 A 键,就会把当前游标位置保存在书签 a 中。在编辑会话中,以后希望返回到这个游标位置时,只需按 Escape,然后输入 `A。可以使用双反撇号(“)命令在当前书签和前一个书签之间切换。
查找、更新、查找下一个、重复
在vi 编辑器中,最有用的搜索/替换特性之一是查找与某个模式匹配的字符串,更新它,然后继续搜索下一个匹配的字符串,然后选择是否以相同方式更新它。这与 Microsoft® Word 中的查找下一个/替换功能很相似。您可能已经知道可以在vi 中搜索字符串模式,方法是进入命令模式,输入/search_pattern(其中的 search_pattern 是字符串或正则表达式),然后按回车。这样做就会找到与指定的模式匹配的第一个字符串。在此之后,可以在找到的文本上执行任何操作。例如,按 Escape,再按 C 和 W 键,再输入更多文本,就会把找到的字符串替换为另一个单词。
要想快速地找到与模式匹配的下一个地方,应该按 Escape,然后按 N 键。在找到下一个匹配时,可以使用点号键(.)在这个位置重复最近的文本操作,比如前一个示例中使用的修改单词(cw)操作。然后,可以使用这些键继续寻找其他匹配(n)并选择重复文本操作(.),操作方式与使用 Word 中的查找下一个/替换功能很相似。