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


您可能注意到了,w 键和 b 键将光标定位于每个单词的开头 。您还可以使用 e 键向前移动光标,导航到单词的末尾,或按 g 键 。按 g 向后移动 。请参见图 6 。
图 6. 使用 w 和 b 键逐个单词地移动光标,这是一种快速导航到拼写错误或需要更改的单词的好方法
从一行移动到另一行
现在,您可以在一行中快速地进行移动,但是如果正在处理一个较大的文件,还需要快速地从一行移动到另一行 。在 vi 中,有许多方法可以用来完成这项任务 。您可以使用向下或向上的移动命令(k 和 j),或者您可以使用 page-up 和 page-down 命令 。vi 中的大多数命令不需要按 Ctrl 键,但是 page-up 和 page-down 这对命令是这条规则的例外:
按 Ctrl-u 向上翻一页 。
按 Ctrl-d 向下翻一页 。
要快速地导航到文件的开头或末尾,您可以按 gg 或 G:
按 gg 可以将光标移动到文档中的第一行 。
按 G 可以将光标移动到文档中的最后一行 。
还可以在附加方法中指定行数,这些内容将在在 vi 命令前面加上数字部分中讨论 。
在 vi 中进行插入和编辑
在导航文档的过程中,您仍然处于命令模式,并且使用键盘作为界面交互工具来移动光标 。下一组命令模式按键提供了各种进入插入模式的方法,可以用来向文件中输入新的文本 。在本教程开始处输入初始文本时,您使用了最基本的方式进入到插入模式:按 i 键,它表示 insert 。按 i 可以在当前光标位置的前面进入到插入模式 。
例如,如果您按 gg 导航到文件的开头,那么您可以按 i 键,这将使得您输入的任何文本都出现在当前行文本之前 。按 gg、i,然后输入 I am inserting new text with i 。在完成输入后,按 Esc 键返回到命令模式 。请记住,在输入完新的文本之后,您必须返回到命令模式,否则无法对文档进行导航 。请参见图 7 。
图 7. 添加新文本的最简单的方法是使用 i 键进入到插入模式
添加新文本的另一个基本方法是使用 a 键,它表示 append 。使用 a 键可以进入到插入模式,但它将在光标当前位置之后添加文本,而不是在光标当前位置之前 。要测试该命令,定位到文档的最后一行,按 G 和 $ 键定位到该行的末尾 。然后按 a 键,输入 Pressing a appends text,并按 Esc 键返回到命令模式 。请参见图 8 。
图 8. 另一种插入文本的方法是使用 a 键,它表示 append
现在您的光标位于文件最后一行的句号处 。如果您现在按 i 键,那么会将文本插入到句号之前 。如果您按 a 键,则会将文本插入到句号之后 。通过按 I 键(大写字母),您可以在一行的开头进行输入,即使您的光标位于该行的末尾 。与之类似,如果您按大写 A 键,那么您可以在该行的末尾输入文本,无论光标当前处于什么位置 。要测试这个命令,可以按 I,输入 I think,然后按 Esc 键 。请参见图 9 。
图 9. 要在一行的开头插入文本(无论光标当前处于什么位置),可以按 I 键
插入新文本的另一种有用的方法是,在进入到插入模式的同时,向您的文本文件添加新的一行 。与普通的文本插入一样,新的一行可以插入到光标位置之前或之后:
要在当前光标位置之前插入新的一行,可以按 O 键 。
要在当前光标位置之后插入新的一行,可以按 o 键 。
要尝试使用这个命令,可以按 O,输入 I inserted this line by pressing O,然后按 Esc 键以返回到命令模式 。请参见图 10 。
图 10. 要在光标之前插入新的文本行,可以按 O 键
您现在已经使用了一些主要的方法来插入新的文本 。回顾一下,这些键分别是 a、i、A、I、o 和 O 。您能记住其中每个字母表示什么操作吗? 即使现在没有记住,请不要担心,在使用一段时间之后您就会记住了 。

推荐阅读