DOC文库 - 千万精品文档,你想要的都能搜到,下载即用。

Vi编辑器完全使用手册.doc

∠?oq╄uetry┆10 页 43.5 KB下载文档
Vi编辑器完全使用手册.docVi编辑器完全使用手册.docVi编辑器完全使用手册.docVi编辑器完全使用手册.docVi编辑器完全使用手册.docVi编辑器完全使用手册.doc
当前文档共10页 2.88
下载后继续阅读

Vi编辑器完全使用手册.doc

编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix 及其相似的 ix 操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列 的 ex 编辑器, 包括 ex, edit,ed 和 vi.其中 ex,edit,ed 都是行编辑器, 现在已很少有人使用, Unix 提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。 值得庆幸的是,Unix 提供了全屏幕的 Vi 编辑器,这使我们的工作轻松不少。不少 DOS 用户抱怨 Vi 编辑器不象 DOS 下的编辑器如 edit 那么好用,这是因为 Vi 考虑到各种用户的 需要,没有使用某些通用的编辑键(在各个不同的终端机上他们的定义是不同的,在某些终 端机上甚至没有这些键)。而是采用状态切换的方法,但这只是习惯的问题,一旦你熟练的 使用上了 vi 你就会觉得它其实也很好用。 虽然 Vi 采用了状态切换的方法,但电脑的硬件及操作系统多种多样,某些电脑的键盘 上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系统上也一 样,几乎各大电脑厂商都有自己的 Unix 系统,而 vi 的操作方法也会随之有点出入。这里我们采用 PC 的键盘来说明 vi 的操作,但在具体的环境中还要参考相应的资料,这一点是值得注意的。 二、Vi 入门 (一) 、进入 vi 在系统提示字符(如$、#)下敲入 vi <档案名称>,vi 可以自动帮你载入所要编辑的文 件或是开启一个新文件(如果该文件不存在或缺少文件名)。进入 vi 后萤幕左方会出现波 浪符号,凡是列首有该符号就代表此列目前是空的。 (二)、两种模式 如上所述,vi 存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指 令来处理:如输入 a,vi 即认为是在当前位置插入字符。而在输入模式下,vi 则把输入的按 键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如 a,A),而要从输入模式切换到指令模式,则需在输入模式下键入 ESC 键,如果不晓得现在 是处於什麽模式,可以多按几次 [ESC],系统如发出哔哔声就表示已处于指令模式下了。 附:有指令模式进入输入模式的指令: 新增 (append) a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。 A: 从光标所在列最後面的地方开始新增资料。 插入 (insert) i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 I :从光标所在列的第一个非空白字元前面开始插入资料。 开始 (open) o :在光标所在列下新增一列并进入输入模式。 O: 在光标所在列上方新增一列并进入输入模式。 (三) 、退出 vi 在指令模式下键入:q,:q!,:wq 或:x(注意:号) ,就会退出 vi。其中:wq 和:x 是存盘退出,而:q 是直接退出, 如果文件已有新的变化,vi 会提示你保存文件而:q 命令也会失效,这时你可以用:w 命 令保存文件后再用:q 退出,或用:wq 或:x 命令退出,如果你不想保存改变后的文件,你就需 要用:q!命令,这个命令将不保存文件而直接退出 vi。 (四) 、基本编辑 配合一般键盘上的功能键,像是方向键、[Insert] 、[Delete] 等等,现在你应该已经可 以利用 vi 来编辑文件了。当然 vi 还提供其他许许多多功能让文字的处理更为方便。何谓 编辑?一般认为是文字的新增、修改以及删除,甚至包括文字区块的搬移、复制等等。先这 里介绍 vi 的如何做删除与修改。 (注意:在 vi 的原始观念里,输入跟编辑是两码子事。编 辑是在指令模式下操作的,先利用指令移动光标来定位要进行编辑的地方,然後才下指令做 编辑。 )删除与修改文件的命令: x: 删除光标所在字符。 dd :删除光标所在的列。 r :修改光标所在字元,r 後接著要修正的字符。 R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为 止。 s: 删除光标所在字元,并进入输入模式。 S: 删除光标所在的列,并进入输入模式。 其实呢,在 PC 上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删 除字元,直接按 [Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换,犯 不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能 用,而不是仅仅在 PC 上。在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在 也应该能猜到只要直接用 PC 的方向键就可以了,而且无论在指令模式或输入模式下都可 以。多容易不是。当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的 文字,而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功 能相同。 三、附件:vi 详细指令表 (一) 、基本编辑指令: 新增 (append) a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。 A: 从光标所在列最後面的地方开始新增资料。 插入 (insert) i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 I :从光标所在列的第一个非空白字元前面开始插入资料。 开始 (open) o :在光标所在列下新增一列并进入输入模式。 O: 在光标所在列上方新增一列并进入输入模式。 x: 删除光标所在字符。 dd :删除光标所在的列。 r :修改光标所在字元,r 後接著要修正的字符。 R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为 止。 s: 删除光标所在字元,并进入输入模式。 S: 删除光标所在的列,并进入输入模式。 (二) 、光标移动指令: 由於许多编辑工作是藉由光标来定位,所以 vi 提供许多移动光标的方式,这个我们列 几张简表来说明(这些当然是指令模式下的指令): 指令?nbsp;?得?nbsp; ??? 功能键 0 移动到光标所在列的最前面 [Home]?nbsp; $ ?nbsp;移动到光标所在列的最後面 [End] [CTRL][d] 向下半页 ?nbsp;[PageDown] [CTRL][f] 向下一页 [CTRL][u] 向上半页?nbsp; [CTRL][b] 向上一页 [PageUp] 指令 说明 H 移动到视窗的第一列 M 移动到视窗的中间列 L 移动到视窗的最後列 b 移动到下个字的第一个字母 w 移动到上个字的第一个字母 ? e 移动到下个字的最後一个字母 ^ 移动到光标所在列的第一个非空白字元 指令 说明 ??nbsp; n- 减号移动到上一列的第一个非空白字元前面加上数字可以指定移动到以上 n 列 n+ 加号移动到下一列的第一个非空白字元前面加上数字可以指定移动到以下 n 列 nG 直接用数字 n 加上大写 G 移动到第 n 列 指令 说明 fx 往右移动到 x 字元上 Fx 往左移动到 x 字元上 ?nbsp; tx 往右移动到 x 字元前??nbsp; Tx 往左移动到 x 字元前 ; 配合 f&t 使用,重复一次? ,? 配合 f&t 使用,反方向重复一次 /string 往右移动到有 string 的地方 ?string 往左移动到有 string 的地方 n ?nbsp;配合 /&? 使用,重复一次 N ?nbsp;配合 /&? 使用,反方向重复一次 指令 说明 ?缸?nbsp; n( 左括号移动到句子的最前面句子是以前面加上数字可以指定往前移动 n 个句子 ! . ? 三种符号来界定 n)?nbsp;右括号移动到下个句子的最前面前面加上数字可以指定往後移动 n 个句子 ! . ? 三种符号来界定 n{ ? 左括弧移动到段落的最前面 段落是以段落间的空白列界定 n} 前面加上数字可以指定往前移动 n 个段落右括弧移动到下个段落的最前面前面加 上数字可以指定往後移动 n 个段落 段落是以段落间的空白列界定 (三) 、更多的编辑指令 这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除 指令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。 指令列表如下: d 删除(delete) y 复制(yank) p 放置(put) c 修改(change) 范围可以是下列几个: e 光标所在位置到该字的最後一个字母 w 光标所在位置到下个字的第一个字母 b 光标所在位置到上个字的第一个字母 $ 光标所在位置到该列的最後一个字母 0 光标所在位置到该列的第一个字母 ) 光标所在位置到下个句子的第一个字母 ( 光标所在位置到该句子的第一个字母 } 光标所在位置到该段落的最後一个字母 { 光标所在位置到该段落的第一个字母 说实在的,组合这些指令来编辑文件有一点点艺术气息。不管怎麽样,它们提供更多编 辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然後就 可以用指令 p 贴到其它地方去,这是 vi 用来处理区段拷贝与搬移的办法。 某些 vi 版本,例如 Linux 所用的 elvis 可以大幅简化这一坨指令。如果稍微观察一 下这些编辑指令就会发现问题其实是定范围的方式有点杂,实际上只有四个指令罢了。指令 v 非常好用,只要按下 v 键,光标所在的位置就会反白,然後就可以移动光标来设定范围, 接著再直接下指令进行编辑即可。对於整列操作, vi 另外提供了更方便的编辑指令。前面 曾经提到过删除整列文字的指令 dd 就是其中一个;cc 可以修改整列文字;而 yy 则是复 制整列文字;指令 D 则可以删除光标到该列结束为止所有的文字。 (四) 、文件操作指令 文件操作指令多以 : 开头,这跟编辑指令有点区别。 :q 结束编辑(quit) :q! 不存档而要放弃编辑过的文件。 :w 保存文件(write)其後可加所要存档的档名。 :wq 即存档後离开。 zz 功能与 :wq 相同。 :x 与:wq 相同 一、vi 的工作模式 vi 有两种工作模式: 编辑模式:用来输入和编辑文件的模式,屏幕上会显示用户的键入,按键不是被解释为命 令执行,而是作为文本写到用户的文件中。 指令模式:用来编辑、存盘和退出文件的模式。 运行 vi 后,首先进入指令模式。此时输入的任何字符都被视为指令,键入的命令不会 在屏幕上显示。 从指令模式切换到编辑模式,则可以按“Insert”键或“i”键,从编辑模式切换到指令 模式,可按“Esc”键。 状态行是屏幕底部一行,被 vi 编辑器用来反馈编辑操作结果。错误消息或提供信息的 消息会在状态行中显示出来。 二、vi 的启动和退出 1.启动 vi 在系统图示字符下键入“vi”+“空格”+“文件名”,如:vi test.txt vi 可以自动载入所要编辑的文件或是开启一个新文件。 2.退出 vi 在指令模式下键入如下命令可以退出 vi: :q 如果用户只是读文件的内容而未对文件进行修改,可以在命令模式下输入“:q”退出 vi。 :q! 如果用户对文件的内容作了修改,又决定放弃对文件的修改,则用“:q!”命令。 :w! 强行保存一个 vi 文件,如果该文件已存在,则进行覆盖。 :wq 保存文件并退出 vi。 ZZ 快速保存文件的内容,然后退出 vi。功能和“:wq”相同。 :w filename 相当于“另存为”。 :n,mw filename 将第 n-m 行的文本保存到指定的文件 filename 中。 三、vi 长指令和短指令 长指令:以冒号开头,键入冒号后,在屏幕的最末尾一行会出现冒号提示符,等待用户键 入指令,输入完指令后回车,vi 会执行该指令。 段指令:与快捷键相似,键入短指令后,vi 不会给任何提示就直接执行。 1.输入输出命令 a 在光标后输入文本 A 在当前行末尾输入文本 i 在光标前输入文本 I 在当前行开始输入文本 o 在当前行后输入新一行 O 在当前行前输入新一行 2.光标移动命令 b 移动到当前单词的开始 e 移动到当前单词的结尾 w 向后移动一个单词 h 向前移动一个字符 l 向后移动一个字符 j 向下移动一行 k 向上移动一行 3.删除操作命令 x 删除光标所在的字符 dw 删除光标所在的单词 dd 删除当前行 d$ 删除光标至行尾的所有字符 D 与“d$”命令相同 4.替换操作命令 r 替换光标所在的字符 R 替换字符序列 cw 替换一个单词 ce 与“cw”命令相同 cb 替换光标所在的前一字符 c$ 替换自光标位置至行尾的所有字符 C 与“c$”命令相同 cc 替换当前行 5.查询操作命令 /abc 向后查询字符串“abc” ?abc 想前查询字符串“abc” n 重复前一次查询 N 重复前一次查询,但方向相反 6.拷贝粘贴命令 yw 将光标所在单词拷入剪贴板 y$ 将光标至行尾的字符拷入剪贴板 Y 与“y$”命令相同 yy 将当前行拷入剪贴板 y 将选取的内容拷入剪贴板 p 将剪贴板中的内容粘贴在光标后 P 将剪贴板中的内容粘贴在光标前 7.其他操作命令 v 选取文本内容 u 取消上一次的操作 U 可以恢复对光标所在行的所有改变 J 把两行文本链接到一起 :set 用来设置或浏览 vi 系统当前的选项(加参数“all”后查看所有选项的列表) :X 对所编辑的文件进行简单加密 四、vi 的高级应用 1.设置 vi 环境 vi 编辑器的行为可以通过设置编辑参数来定义。 使用 vi 的 set 命令进行设置。vi 在进行设置前必须处于指令模式,但选项的改变是临时 的,只在用户当前编辑回话下有效,当用户退出 vi 编 辑器时,设置会被丢弃。 autoindent 选项 将新行与前一行的开始对准,缩写:ai 该选项将用户键入的每个新行与前一行的开始对齐。该选项对于使用程序语言编程时十 分有用。本选项的默认值是 noai。 ignorecase 选项 在搜索命令下忽略大小写,缩写:ic vi 编辑器提供大小写敏感的搜索,要使 vi 忽略大小写,键入“:set ignorecase”,要返回 大小写敏感状态,键入“:set noignorecase”. magic 选项 在搜索时,允许使用特殊字符。 某些符号在用于搜索时有特殊的含义。当用户将这些符号开头置为 nomagic 时,这些符 号不再有特殊含义。 number 选项 显示行号,缩写:nu vi 编辑器一般情况下不显示每行的行号。可以改变 number 选项来显示行号。 report 选项 告知用户最后一个命令作用行的行号。 vi 编辑器对用户的编辑工作并不给予任何反馈,如果希望在屏幕上看到自己编辑的反馈 信息,用户可以通过编辑 report 选项来实现。 scroll 选项 设定在指令模式下使用“Ctrl+d”命令翻滚的行数。 shiftwidth 选项 设定缩进空格数,一般与 autoindent 一同使用,缩写:sw showmode 选项 在屏幕右角显示 vi 编辑器模式,缩写:smd terse 选项 缩短错误信息。 wrapmargin 选项 将右边界设定为一定的字符个数,缩写:wm 用户的终端屏幕通常为 80 列,当键入到行的末尾时,屏幕即开始一个新行,这就是行 回绕。在用户按回车键时,屏幕同样开始一个新行。 因此,屏幕上一行的长度可以为 1-80 个字符之间的任何长度。但是,vi 编辑器只在用户按 回车时,才在用户文件中生成一个新行。如果用户在 按回车前键入了 120 个字符,这时键入的文本看起来是在 2 行,但实际在文件中,这 120 个 字符只在 1 行中。如果要限制行长度,一是在到达屏幕 行末尾前按回车换行,另一种是设定 wrapmargin 选项使 vi 编辑器自动插入回车。 2.缩写操作符 缩写操作符“:ab”命令使得用户给任何字符串指定缩写,该功能可以帮主用户提高输 入速度。用户可以为自己经常输入的文本选择一个易 输入的缩写。 例如:键入“:ab uox Unix Operating System”命令,当 vi 处于文本输入模式时,用户键 入“uox”接着键入一个空格时,vi 自动将键入的 “uox”变为“Unix Operating System”。 取消缩写“:unab”命令可以取消一个缩写,例如:键入“:unab uox”命令即可。 想列出已经设置了的所有缩写,键入“:ab”命令即可。 3.宏操作符 宏操作符“:map”命令使用户能将一系列按键指定给某一按键。给用户一个在指令模式 下的快捷按键。 例如:键入“:map q dd”命令,此后处于指令模式时,每当用户键入 q 时,vi 编辑器自 动执行“dd”命令。 取消宏操作“:unmap”命令。 用户也可以使用 map 指令指定功能键,例如:键入“:map #n dd”命令,其中“#n”代表 以 n 为功能键号的功能键。 4.“.exrc”文件 用户在 vi 编辑器中所设置的所有选项都是临时的,当用户退出时,它们都会失效。要 使这些设置永久保存,可以将选项的设置保存到文件 “.exrc”中。 当用户打开 vi 编辑器时,它自动查看用户当前的工作目录中的“.exrc”文件,并根据 在文件中的内容设置编辑环境。如果 vi 没有在当前目 录中发现“.exrc”文件,则将查找用户的主目录,并根据在哪里发现的“.exrc”文件设置编 辑环境。如果 vi 一个“.exrc”文件也没找到,则 对选项使用默认值。 “.exrc”文件属于启动文件。 例如:建立一个“.exrc”文件。 在终端中键入“vi .exrc” ,回车。 在 vi 编辑器中键入: set autoindent set shiftwidth=2 set nomagic set number set scroll=20 set showmode 保存退出即可 5.运行 Shell 命令 用户可以在 vi 的命令行运行 Linux Shell 命令,使得用户可以临时抛开 vi 来运行 Shell 命令。 vi 编辑器用“!”来通知 vi 其后面是一个 Shell 命令。例如:键入“:!date”命令,vi 编 辑器将清除屏幕,输出当前系统时间,后按任意键 返回 vi 编辑器,并可以继续编辑。 如果用户系统将 Shell 命令执行的结果加到文件文本中,可以使用“:r!”和相应的 Shell 命令来将命令结果写到用户文件文本中。

相关文章