当前位置:K88软件开发文章中心网站服务器框架UNIX → 文章内容

UNIX vi 编辑器使用向导

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-23 14:42:18

由 youj 创建, 最后一次修改 2016-08-12 vi 编辑器使用向导在 UNIX 操作系统中,文档编辑器有很多种,其中最友好的工具就是 vi. 该文档编辑器可以让用户在文件中基于上下文执行编辑操作。 现在,用户可以使用 vi 文档编辑器的升级版 VIM.这里的 VIM 中的 M 就是源自改善的意思。 vi 通常会被认为是 UNIX 编辑器的实施标准,原因如下:几乎在所有 UNIX 系列操作系统中都有效。 它的具体实现都非常的类似。 仅仅占用非常少的资源。 与其他编辑器相比,用户界面更加友好。 用户可以使用 vi 编辑器来编辑已经存在的文件,当然也可以使用它创建一个新的文件。此外,用户也可以使用它来浏览一个文本文件。 开始使用 vi 编辑器用户可以通过下面几种方法来开启 vi 编辑器: 指令描述vi filename 如果文件不存在,则创建这个文件,否则打开这个文件 vi -R filename 以只读的方式打开一个已存在的文件 view filename 以只读的方式打开一个已存在的文件 下面是一个创建新文件 testfile 的例子,当然,前提是该文件在当前目录内不存在。 $vi testfile然后用户会在屏幕上看到如下显示: | ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "testfile" [New File] 此时,应该注意到的是在每一行都的开头都会有一个波浪号(~),这个波浪号代表该行并没有被使用。如果某一行没有以波浪号开头,那么这就意味着有空格存在,也可能是换行符或其他的不易看见的符号。 所以,在我们正式使用 vi 编辑器之前,让我们理解一些微小但是很重要的。操作模式使用 vi 编辑器时通常会在下面两个模式之间来回切换:指令模式:该模式下,用户可以完成一些诸如保存文件、执行指令、移动光标、剪切或粘贴某行(字符)、查找或替代的管理功能。在该模式下,用户键入的所有内容都会被系统当做指令来执行。插入模式:该模式下,用户可以往文件内,键入文本。在该模式下,用户键入的所有内容都会被当做是文件输入而最后保存在文本中。 vi 编辑器通常会以指令模式打开。如果用户希望键入文本的话,用户必须把当前模式切换为插入模式。切换模式到插入模式时,用户可以简单的按 i 键。离开插入模式,可以按 Esc 键。 值得注意的是,如果用户不清楚当前处于哪种模式,用户可以按两次 Esc 键,编辑器就会回到指令模式。用户可以使用 vi 编辑器打开一个文本,并且键入一些字符,然后切换到指令模式,体验一下这前后的差别。 离开 vi 编辑器离开 vi 编辑器的指令是 :q 。在指令模式下,一旦键入冒号后跟字母 q,再单击回车。如果文档有修改的话,编辑器会报出提示。如果不想看到这样的提示信息,用户可以使用 :q!。这个指令可以在不保存更改的情况下离开 vi 编辑器。保存文档的指令时 :w。用户可以将其与上述的离开指令融合在一起使用,比如 :wq,然后单击回车。 保存文件更新且退出的最快捷的方法就是 ZZ 指令。当用户在指令模式下键入 zz 指令后,效果等同于 :wq。用户也可以通过再 :w 后指定特定的文件名来指定不同的文件名来保存。比如,如果用户希望将文件保存为 filename2,用户可以键入:w filename2, 然后点击回车。 在文件内移动光标为了在文件内不影响文本内容的情况下移动光标,用户必须在指令模式(连续两次按下 Esc 键)下来操作。下面是文件内移动光标的相关指令:指令描述k 向上移动一行 j 向下移动一行 h 将光标往左移动一个字符 l 将光标往右移动一个字符 下面是两个需要注意的重点:vi 编译器是大小写敏感的,所以用户在指令模式下进行操作时要注意大小写。大部分 vi 编辑器中的指令都可以通过在动作行为前加个数字来表明希望发生的次数。比如,2j 意味着希望光标往下移动两行。还有其他一些在文件内移动光标的方法。需要格外注意的是必须在指令模式下来操作。下面是其他在文件内移动光标的方法。 指令描述0 或 l 光标回到行首 $ 光标回到行末尾 w 光标移动到下一个字 b 光标移动到前一个字 ( 光标移动到当前句子的开头 ) 光标移动到下个句子的开头 E 光标移动空白分割单词的末尾 { 光标往后移动一段 } 光标往前移动一段 [[ 光标往后移动一节 ]] 光标往前移动一节 n| 光标移动到当前行的n列 1G 光标移动到文件的第一行 G 光标移动到文件的最后一行 nG 光标移动到文件的第 n 行 :n 光标移动到文件的第 n 行 fc 光标往前移动到 c Fc 光标往后移动到 c H 光标移动到屏幕的首部 nH 光标移动到屏幕从顶部查第 n 行 M 光标移动到屏幕的中间 L 光标移动到屏幕的底部 nL 光标移动到从屏幕底部往上第 n 行 :x 光标移动到行号为 x 的行 Control指令下面是一些和 Control 键配合使用的指令: 指令描述CTRL+d 向前移动半个屏幕 CTRL+f 向前移动整个屏幕 CTRL+u 向后移动半个屏幕 CTRL+b 向后移动整个屏幕 CTRL+e 屏幕往上移动一行 CTRL+y 屏幕往下移动一行 CTRL+u 屏幕往上移动半个页面 CTRL+f 屏幕往下移动一个页面 CTRL+l 重绘屏幕 编辑文件只有在插入模式下才可以对文本进行编辑。从指令模式切换为插入模式可以有很多种方法:指令描述i 当前位置前插入文本 I 当前行首插入文本 a 当前位置后插入文本 A 当前行末尾插入文本 o 在光标位置下方新建一行来输入文本 a 在光标位置上方新建一行来输入文本 删除字符下面是关于用来在打开的文件中删除字符或行的指令列表:指令描述x 删除光标位置下的字符 X 删除光标位置前的字符 dw 删除光标位置到下一个字间的所有字符 d^ 删除光标位置到行首间的所有字符 d$ 删除光标位置到行末尾间的所有字符 D 删除光标位置到当前行末尾间的所有字符 dd 删除一整行 正如前面所述,vi 中的大部分指令都可以在前面加数字来表示希望执行的次数。比如,2x 意味着会删除当前光标位置下的两个字符,2dd 意味着删除两行。 本教程建议在学习后面相关内容前可以多多练习以上内容。更改指令用户可以在不删除文本的情况下对字符、字和行进行更改。下面是相关指令:指令描述cc 删除当前行,仅留下用户键入的文本 cw 删除光标所在的单词,并进入插入模式 r 替换掉光标下的字符,vi 在替换结束后回到指令模式 R 覆写当前光标处的多个字符,只有使用 Esc 才可以停止覆写 s 将当前字符替换为用户键入的字符

[1] [2]  下一页


UNIX vi 编辑器使用向导