《linux下vi使用手册》由会员分享,可在线阅读,更多相关《linux下vi使用手册(19页珍藏版)》请在金锄头文库上搜索。
1、Linux 下 vi 使用手册a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。 A: 从光标所在列最後面的地方开始新增资料。 插入 (insert) i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 I :从光标所在列的第一个非空白字元前面开始插入资料。 开始 (open) o :在光标所在列下新增一列并进入输入模式。 O: 在光标所在列上方新增一列并进入输入模式。 x: 删除光标所在字符。 dd :删除光标所在的列。 r :修改光标所在字元,r 後接著要修正的字符。 R: 进入取替换状态,新增文字会覆盖原先文字,直到按 ESC 回到指令模式下为止。
2、 s: 删除光标所在字元,并进入输入模式。 S: 删除光标所在的列,并进入输入模式。 文件操作指令多以 : 开头,这跟编辑指令有点区别。 :q 结束编辑(quit) :q! 不存档而要放弃编辑过的文件。 :w 保存文件(write)其後可加所要存档的档名。 :wq 即存档後离开。 zz 功能与 :wq 相同。vi 或 vedit 命令 用途 用全屏显示编辑文件。 语法 vi | vedit -l -R -tTag -v -wNumber -yNumber -r File + | -c Subcommand File . 描述 vi 命令基于基础 ex 编辑器启动全屏编辑器。因此,ex 子命令可
3、以在 vi 编辑器中使用。vedit 命令启动适用于初学者的 vi 编辑器版本。在 vedit 编辑器中,报告选项设置为 1,设置了 showmode 选项和 novice 选项,使其成为一个行编辑器。 通过指定被编辑文件名,可以启动 vi 编辑器。如果在命令行上提供多个 File 参数,vi 编辑器按指定的顺序编辑每一个文件。现有文件的 vi 编辑器在屏幕底部显示文件名、行数和字符数。在多字节语言环境的情况下,字符数必须解释成字节数。 由于 vi 编辑器是全屏编辑器,所以可以逐屏编辑文本。vi 编辑器在编辑缓冲区为编辑的文件制作副本,并且直到保存更改文件内容才会更改。光标在显示屏幕上的位置表
4、明它在文件中的位置,并且子命令在光标位置影响该文件。 vi 编辑器的局限性 以下列表提供了 vi 编辑器的最大限度。这些计数采用单字节字符集。 每行 LINE_MAX 个字符 每全局命令列表 256 个字符 128 个字符在以前被插入和删除的文本中 128 个字符在外壳程序转义命令中 128 个字符在一个字符串值的选项中 30 个字符在一个标记名中 128 个映射宏,总共 2048 个字符 1,048,560 行,每行强制不能超过 LINE_MAX 个字符 宏名和宏文本被限制在 100 个字符内。 注: 对大于 64MB 的文件运行 vi 编辑器可能会显示以下的错误信息: 0602-103 f
5、ile too large to place in /tmp vi 编辑方式 vi 编辑器按以下方式操作: 命令方式 当启动 vi 编辑器时,它处于命令方式。您可以输入任何子命令,除了那些指定仅用于文本输入方式的子命令。当子命令和其它方式结束时,vi 编辑器返回命令方式。按 Esc 键取消子命令。 文 本输入方式 按这种方式使用 vi 编辑器来添加文本。用以下任意子命令进入文本输入方式:a 子命令、A 子命令、i 子命令、I 子命令、o 子命令、O 子命令、cx 子命令(其中 x 代表子命令的范围)、C 子命令、s 子命令、S 子命令和 R 子命令。输入这些子命令中的一个后,即可输入文本到编辑
6、缓冲区中。要返回到命令方式,按 ESC 键以正常退出或按“中断”(Ctrl-C 按键顺序)以非正常方式结束。 最后行方式 带前缀 :(冒号)、/(斜杠)、?(问号)、!(感叹号)或 !(两个感叹号)的子命令在屏幕底部的显示行上读取输入。当输入初始字符时,vi 编辑器将光标置于屏幕底部,在该处可以输入命令中剩余的字符。按 Enter 键运行子命令,或按“中断”(Ctrl-C 按键顺序)取消它。当 使用 ! 前缀时,光标只在两个感叹号都输入后才移动。当使用 : 前缀进入最后行方式时,如果在指定计数的命令之前使用以下字符,vi 编辑器赋予它们特定含义: % 所有行,而不管光标的位置 $ 最后行 .
7、当前行 定制 vi 编辑器 可以根据以下方式定制 vi 编辑器: 设置编辑选项 定义宏 映射键 设置缩写 设置 vi 编辑器选项 以 下列表描述可以使用 set 命令更改的 vi 编辑器选项。这些选项的缺省设置是 off。如果打开了这些开关选项中的一个,在选项之前输入 no 即可重新关闭它。如果想中断 autowrite vi 选项,则输入 noaw,其中 no 关闭选项,aw 指定 autowrite 选项。 注: 当输入 vi 选项时不要包含圆括号。 vi 选项(缩写) 描述 autoindent(ai) 通过使用 shiftwidth 选项指定的制表符停止位之间的间隔,在文本输入方式中自
8、动缩排为前行的缩排格式。缺省是 noai。将光标退回到前面的制表符停止位,按 Ctrl-D 快捷键。这个选项对于全局命令不起作用。 autoprin(ap) 在任何更改编辑缓冲区的命令后面打印当前行。缺省是 ap。这个选项只应用于单行上一系列命令中的最后一个命令,并且对全局命令不起作用。 autowrite(aw) 如果编辑缓冲区自上次 write 子命令以来发生更改,则在 :n 子命令、:ta 子命令、Ctrl-A 按键顺序和 ! 子命令之前,将编辑缓冲区自动写入到文件。缺省是 noaw。 beautifying text(bf) 在文本输入(除了制表符、换行符和换页指示符)的过程中,防止用
9、户在编辑缓冲区中输入控制字符。缺省是 nobf。此选项应用于命令输入。 closepunct(cp=) 处理结束标点列表,特别当文本自动换行(wraptype 选项)时。在多字符标点前指出字数数,例如 cp=3.;) 。当自动换行时,vi 命令不分割关闭的标点。 directory(dir=) 显示包含编辑缓冲区的目录。缺省为 dir = /var/tmp。 edcompatible(ed) 在多重替换过程中,保留 g(全局)和 c(确认)子命令后缀,并使 r(读取)后缀像 r 子命令一样运作。缺省值是 noed。 exrc(exrc) 如果未设置,则在初始化过程中忽略当前目录下任何 .exr
10、c 文件,除非当前目录是 HOME 环境变量指定的。缺省是 noexrc。 hardtabs(ht=) 告诉 vi 编辑器显示屏幕上硬件制表符停止位之间的距离。(这个选项必须与基础的终端或终端仿真器的制表符设置相匹配。)缺省值为 ht=8。 ignorecase(ic) 当搜索正则表达式时,忽略大写和小写之间的区别。缺省值是 noic。 linelimit(ll=) 设置最大行数,如 -y 命令行选项。该选项只有和 .exrc 文件或 EXINIT 环境变量一起使用时有效。 lisp(lisp) 除去 ( ), , 和 的特殊意义,并为 s 表达式启用 =(格式打印)运算符,以便能够编辑行处理
11、(LISP)程序。缺省是 nolisp。 list(list) 显示文本和制表符 (I) 和行的标记端($)。缺省值是 nolist。 magic(magic) 当搜索一种模式时,将 .(句号)、(左括号)和 *(星号)字符当成特殊字符。在关闭方式中,只有 ( )(圆括号)和 $(美元符)保持特殊意义。但是,可以通过在其它字符前面加上 (反斜杠)来激活其它字符的特殊意义。缺省是 magic。 mesg(mesg) 如果以可视方式设置,打开终端的写入许可权。该选项只有和 .exrc 文件或 EXINIT 环境变量一起使用时有效。缺省值是 on。 modeline(modeline) 如果在文件开
12、始五行或最后五行找到,则运行 vi 编辑器命令行。一行 vi 编辑器命令可以位于行中的任意位置。为了便于 vi 编辑器能辨认命令行,这一行必须包含一个空格或制表符,后跟 ex: 或 vi: 字符串。命令行以第二个 :(冒号)结束。vi 编辑器尝试将第一个和第二个冒号之间的任意数据解释为 vi 编辑器命令。缺省为 nomodeline。 novice 指明是否处于 novice 方式。不能用 set 命令更改值。 number(nu) 显示以行号作为前缀的行。缺省是 nonu。 optimize(opt) 加速缺少光标寻址的终端的操作。缺省为 noopt。 paragraphs(para=) 定
13、义开始段落的 vi 宏名。缺省为 para=IPLPPPQPP LIpplpipnpbp。如果指定了一个段落,单字母 nroff 宏,如 .P 宏,必须以加引号字符包含空格。 partialchar(pc=) 出现在最后的显示列,该列中双宽字符不完全显示。缺省字符为 -(减号)。 prompt 当处于命令方式时,通过打印 :(冒号)提示输入新的编辑器命令。缺省值为 on。 readonly(ro) 设置永久的只读方式。缺省为 noreadonly。 redraw(redraw) 在低能工作站上模仿智能工作站。缺省为 nore。 remap 允许根据其它宏来定义宏。缺省值是 on。 report
14、(re=) 设置在消息显示之前命令能重复的次数。对于产生许多消息的子命令,例如全局子命令,完成命令序列后显示消息。缺省值为 report=5。 scroll(scr=) 设置在编辑器中上下滚动时滚动的行数。缺省值为窗口大小的 1/2,四舍五入。sections(sect=) 定义开始段落的 vi 宏名。缺省为 sect=NHSHHH HUuhsh+c。如果指定段落,单字母 nroff 宏,如 .P 宏必须以加引号字符包含空格。 shell(sh=) 为 ! 子命令或 :! 子命令定义外壳程序。缺省为登录外壳程序。 shiftwidth(sw=) 为 autoindent 选项、shift 命令
15、( 和 cwMAP 前 面的示例指导 vi 编辑器定位下一个 map 的出现(/map),将 map 更改为 MAP(cwMAP),结束 change-word 子命令(),输入命令()。 注: 为了防止 vi 编辑器解释 Enter 键,当被映射时,必须在前面输入 Ctrl-V 按键顺序。此情况对 Esc、Backspace 和 Delete 键也成立。 要映射控制字符 Ctrl-A、Ctrl-K 和 Ctrl-O,同时按 Ctrl 键和相应的字母。例如,要将 Ctrl-A 按键顺序映射到保存文件和编辑系列中下一个文件命令序列,输入以下命令: :map :w:n 要将映射控制字符 Ctrl-
16、T、Ctrl-W 和 Ctrl-X,必须首先用 Ctrl-V 按键顺序序为它们转义。 要映射 |(管道符),首先必须用两个 Ctrl-V 按键顺序为它转义,这通过以下示例说明:将字符 g 映射到命令序列,该命令序列转义到外壳程序,连接文件 /etc/motd 并输出到 wc 命令: :map g :!cat /etc/motd | wc 如果终端允许映射功能键,必须用 #number 按键顺序引用它们,以指定想映射的功能键的号码。在以下示例中,F1 功能键映射到删除单词和将光标下移三个单词的命令序列: :map #1 dwwww 为 了使功能键映射起作用,功能键给终端类型的输出必须和 terminfo 文件中定义的输出相匹配。这些定义由 kfnumber 条目标志,其中,kf1 代表 F1 功能键,kf2 代表 F2 功能键,等等。如果当按功能键时所获取的输出与这个条目不匹配,在任何映射