文档介绍:Vi 手册 万年编辑器: vi vi 的工作模式编辑模式插入模式命令模式 shell 切换选项设置 vim 和 gvim 的高级特色 vi 的工作模式 Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键, k 是向下移动光标, 相当于向下箭头键。在编辑模式下, 用户还可以利用一些特殊按键选定文字,然后再进行删除、或复制等操作。当用户在编辑模式下键入 i, a,o 等命令之后,可进入插入模式; 键入: 可进入命名模式。在插入模式下, 用户随后输入的,除 Esc 之外的任何字符均将被看成是插入到编辑缓冲区中的字符。按 Esc 之后,从插入模式切换到编辑模式。在命令模式, Vi 将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个: (冒号) 。这时,用户就可以键入一些命令。这些命令可用来保存文件、读取文件内容、执行 Shell 命令、设置 Vi 参数、以正则表达式的方式查找字符串或替换字符串等。 编辑模式 1. 移动光标要对正文内容进行修改, 首先必须把光标移动到指定位置。移动光标的最简单的方式是按键盘的上、下、左、右箭头键。除了这种最原始的方法之外, 用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅速到达指定的行或列,实现定位。例如: k、j、h、l 功能分别等同于上、下、左、右箭头键 Ctrl+b 在文件中向上移动一页(相当于 PageUp 键) Ctrl+f 在文件中向下移动一页(相当于 PageDown 键) H 将光标移到屏幕的最上行( Highest ) nH 将光标移到屏幕的第 n行 2H 将光标移到屏幕的第 2行 M 将光标移到屏幕的中间( Middle ) L 将光标移到屏幕的最下行( Lowest ) nL 将光标移到屏幕的倒数第 n行 3L 将光标移到屏幕的倒数第 3行 w 在指定行内右移光标,到下一个字的开头 e 在指定行内右移光标,到一个字的末尾 b 在指定行内左移光标,到前一个字的开头 0 数字 0 ,左移光标,到本行的开头$ 右移光标,到本行的末尾^ 移动光标,到本行的第一个非空字符 2. 替换和删除将光标定位于文件内指定位置后, 可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符。例如: rc用c 替换光标所指向的当前字符 nrc 用c 替换光标所指向的前 n 个字符 5rc 用c 替换光标所指向的前 5 个字符 x 删除光标所指向的当前字符 nx 删除光标所指向的前 n 个字符 3x 删除光标所指向的前 3 个字符 dw 删除光标右侧的字 ndw 删除光标右侧的 n 个字 3dw 删除光标右侧的 3 个字 db 删除光标左侧的字 ndb 删除光标左侧的 n 个字 5db 删除光标左侧的 5 个字 dd 删除光标所在行,并去除空隙 ndd 删除 n 行内容,并去除空隙 3dd 删除 3 行内容,并去除空隙 3. 粘贴和复制从正文中删除的内容( 如字符、字或行) 并没有真正丢失, 而是被剪切并复制到了一个内存缓冲区中。用户可将其粘贴到正文中的指定位置。完成这一操作的命令是: p 小写字母 p ,将缓冲区的内容粘贴到光标的后面 P 大写字母 P ,将缓冲区的内容粘贴到光标的前面如果缓冲区的内容是字符或字, 直接粘贴在光标的前面或后面; 如果缓冲区的内容为整行正文,则粘贴在当前光标所在行的上一行或下一行。注意上述两个命令中字母的大小写。 vi 编辑器经常以一对大、小写字母(如 p和P )来提供一对相似的功能。通常, 小写命令在光标的后面进行操作, 大写命令在光标的前面进行操作。有时需要复制一段正文到新位置, 同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是剪切)到内存缓冲区。完成这一操作的命令是: yy 复制当前行到内存缓冲区 nyy 复制 n 行内容到内存缓冲区 5yy 复制 5 行内容到内存缓冲区 4. 搜索字符串和许多先进的编辑器一样, vi 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以用 vi 直接进行搜索, 而不必以手工方式进行。搜索方法是: 键入字符/ ,后面跟以要搜索的字符串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向) ,并在找到指定字符串后,将光标停到该字符串的开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符? 取代/ ,可以实现反向搜索(朝文件开头方向) 。例如: /str1 正向搜索字符串 str1 n 继续搜索,找出 str1 字符串下次出现的位置?str2 反向搜索字符串 str2 无论搜索方向如何, 当到达