UNIX 新手指南,第 2 部分: vi 文本编辑器( 四 )


替换文本
既然已经向 tutorial.txt 文件中输入了一些内容,您可能发现其中存在一些错误,或者可能希望更改其中的一些单词 。在学习如何删除文本之前,您应该学习如何替换文本 。为什么呢? 因为如果您学习了如何添加新的文本和删除旧的文本,您可能会养成使用删除命令的习惯,而在某些情况下 replace 命令可能更加有效 。与先删除一个单词,然后在该处添加一个新单词的方法相比,使用单步处理对单词进行替换更加便捷 。
vi 使用了两种重要的替换命令 。第一种是 r 键,它将删除光标位置的字符,并进入到插入模式以便输入单个替换的字符 。换句话说,您可以在按了 r 之后输入一个字符 。因此,vi 自动地返回到命令模式(不需要按 Esc 键) 。要尝试该命令,可以使用 k 键和 l 键导航到第二行的末尾 。您的光标应该位于句号处 。要将句号更改为感叹号,可以按 r 键,然后按 ! 键 。请参见图 11 。
图 11. 要替换单个字符,可以按 r 键,然后输入文档中需要的字符
还有一种更有价值的 replacement 命令,可以按 c 键,然后按 w 键,它们组合在一起表示 change Word 。这个命令删除当前的单词,并进入到插入模式,以便您可以立即输入替换的单词 。在这种情况下,输入完新的单词后,您需要按 Esc 键以通知 vi 完成了替换任务 。将光标向下移动到单词 great,按 c 和 w 键,输入 cool,然后按 Esc 键 。请参见图 12 。
图 12. 要替换单词,可以按 c 和 w 键,然后输入新的单词
如果您希望删除文本,而不是对其进行替换,那么您需要使用 delete 命令 。与 vi 中其他的操作一样,您有多种方法可供选择,这取决于您希望一次删除多少数据 。最基本的 delete 命令是 x 键,它一次删除一个字符 。要尝试使用该命令,可以返回到文本文件的开头,按 Ctrl-u (page-up) 键 。按 $ 键定位到该行的末尾,然后按五次 x 键,以删除 test. 。请参见图 13 。
删除文本
图 13. 要逐个地删除字符,可以使用 x 键
按五次 x 键可以完成这项任务,但是您可能希望 vi 能够为各种操作提供更简单的方法 。按 d 键和 w 键,您可以一次删除一个单词,这两个键组合在一起表示 delete Word 。按三次 b 键,返回到单词 This 。要删除这个单词,按 d 键和 w 键 。请参见图 14 。
图 14. 要删除单词,可以使用 dw 命令
现在第一行中包含一个半截的、不完整的句子 。要删除这一行中光标位置之后所有的内容,您可以使用 d 键加上 $ 键,前面曾经介绍过,后者用来表示到一行末尾的操作 。按 d 键和 $ 键,以便删除该行末尾的 is a 。请参见图 15 。
图 15. 要删除光标到一行末尾的文本,可以使用 d$
vi 中最后一个常用的删除命令是 delete-line 命令,可以按两次 d 键来完成该操作 。它会删除一行文本,并将下面一行内容上移,这样一来,文档中就不会出现空行 。要删除文件中的第一行,可以按 d 键,然后再按一次该键 。请参见图 16 。
图 16. 要删除整行文本,可以按 dd
谈到向上移动一行文本,您可以按 J 键以使用 join 命令,该命令将光标所在行的下面一行文本向上移动到光标所在行,而不会删除任何文本 。您的光标应该位于文档的新行(第一行) 。按 J 键将第二行上移至第一行 。请参见图 17 。
图 17. 要在 vi 中将两行文本合并在一起,可以按 J 键
更好地完成其他操作
现在,您应该已经掌握了在 vi 中创建、导航和编辑文本文件的一些基本技能 。在熟练掌握了这些基本的命令之后,您可以像在其他更加常规的文本编辑器中那样创建和编辑文件 。但是您的指令表中还缺少了一些内容 。本部分内容将向您介绍如何剪切、复制和粘贴 。您可以一次反复地执行命令、再次执行命令、搜索文档、并使用撤销 (undo) 和重做 (redo) 命令 。这个编辑器提供了其他文本编辑器中主要的功能,并且使用了快速访问的键盘命令方式 。

推荐阅读