VI使用手册

来源:互联网 发布:java分布式事务 编辑:程序博客网 时间:2024/06/11 21:54

a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。

A: 从光标所在列最後面的地方开始新增资料。

插入 (insert)

i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。

I :从光标所在列的第一个非空白字元前面开始插入资料。

开始 (open)

o :在光标所在列下新增一列并进入输入模式。

O: 在光标所在列上方新增一列并进入输入模式。


x: 删除光标所在字符。

dd :删除光标所在的列。

r :修改光标所在字元,r 後接著要修正的字符。

R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。

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 子命令可以在 vi 编辑器中使用。vedit 命令启动适用于初学者的 vi 编辑器版本。在 vedit 编辑器中,报告选项设置为 1,设置了 showmode 选项和 novice 选项,使其成为一个行编辑器。

通过指定被编辑文件名,可以启动 vi 编辑器。如果在命令行上提供多个 File 参数,vi 编辑器按指定的顺序编辑每一个文件。现有文件的 vi 编辑器在屏幕底部显示文件名、行数和字符数。在多字节语言环境的情况下,字符数必须解释成字节数。

由于 vi 编辑器是全屏编辑器,所以可以逐屏编辑文本。vi 编辑器在编辑缓冲区为编辑的文件制作副本,并且直到保存更改文件内容才会更改。光标在显示屏幕上的位置表明它在文件中的位置,并且子命令在光标位置影响该文件。

vi 编辑器的局限性
以下列表提供了 vi 编辑器的最大限度。这些计数采用单字节字符集。

每行 {LINE_MAX} 个字符
每全局命令列表 256 个字符
128 个字符在以前被插入和删除的文本中
128 个字符在外壳程序转义命令中
128 个字符在一个字符串值的选项中
30 个字符在一个标记名中
128 个映射宏,总共 2048 个字符
1,048,560 行,每行强制不能超过 {LINE_MAX} 个字符
宏名和宏文本被限制在 100 个字符内。
注:
对大于 64MB 的文件运行 vi 编辑器可能会显示以下的错误信息:
0602-103 file too large to place in /tmp
vi 编辑方式
vi 编辑器按以下方式操作:

命令方式 当启动 vi 编辑器时,它处于命令方式。您可以输入任何子命令,除了那些指定仅用于文本输入方式的子命令。当子命令和其它方式结束时,vi 编辑器返回命令方式。按 Esc 键取消子命令。
文本输入方式 按这种方式使用 vi 编辑器来添加文本。用以下任意子命令进入文本输入方式: a 子命令、A 子命令、i 子命令、I 子命令、o子命令、O 子命令、cx 子命令(其中 x 代表子命令的范围)、C 子命令、s 子命令、S 子命令和 R 子命令。输入这些子命令中的一个后,即可输入文本到编辑缓冲区中。要返回到命令方式,按 ESC 键以正常退出或按“中断”(Ctrl-C 按键顺序)以非正常方式结束。
最后行方式 带前缀 :(冒号)、/(斜杠)、?(问号)、!(感叹号)或 !!(两个感叹号)的子命令在屏幕底部的显示行上读取输入。当输入初始字符时,vi 编辑器将光标置于屏幕底部,在该处可以输入命令中剩余的字符。按 Enter 键运行子命令,或按“中断”(Ctrl-C 按键顺序)取消它。当 使用 !! 前缀时,光标只在两个感叹号都输入后才移动。当使用 : 前缀进入最后行方式时,如果在指定计数的命令之前使用以下字符,vi 编辑器赋予它们特定含义:
%
所有行,而不管光标的位置
$
最后行
.
当前行 

定制 vi 编辑器
可以根据以下方式定制 vi 编辑器:

设置编辑选项
定义宏
映射键
设置缩写
设置 vi 编辑器选项
以下列表描述可以使用 set 命令更改的 vi 编辑器选项。这些选项的缺省设置是 off。如果打开了这些开关选项中的一个,在选项之前输入 no 即可重新关闭它。如果想中断 autowrite vi 选项,则输入 noaw,其中 no 关闭选项,aw 指定 autowrite 选项。

注:
当输入 vi 选项时不要包含圆括号。
vi 选项(缩写) 描述
autoindent(ai) 通过使用 shiftwidth 选项指定的制表符停止位之间的间隔,在文本输入方式中自动缩排为前行的缩排格式。缺省是 noai。将光标退回到前面的制表符停止位,按 Ctrl-D 快捷键。这个选项对于全局命令不起作用。
autoprin(ap) 在任何更改编辑缓冲区的命令后面打印当前行。缺省是 ap。这个选项只应用于单行上一系列命令中的最后一个命令,并且对全局命令不起作用。
autowrite(aw) 如果编辑缓冲区自上次 write 子命令以来发生更改,则在 :n 子命令、:ta 子命令、Ctrl-A 按键顺序和 ! 子命令之前,将编辑缓冲区自动写入到文件。缺省是 noaw。
beautifying text(bf) 在文本输入(除了制表符、换行符和换页指示符)的过程中,防止用户在编辑缓冲区中输入控制字符。缺省是 nobf。此选项应用于命令输入。
closepunct(cp=) 处理结束标点列表,特别当文本自动换行(wraptype 选项)时。在多字符标点前指出字数数,例如 cp=3..;)} 。当自动换行时,vi 命令不分割关闭的标点。
directory(dir=) 显示包含编辑缓冲区的目录。缺省为 dir = /var/tmp。
edcompatible(ed) 在多重替换过程中,保留 g(全局)和 c(确认)子命令后缀,并使 r(读取)后缀像 r 子命令一样运作。缺省值是 noed。
exrc(exrc) 如果未设置,则在初始化过程中忽略当前目录下任何 .exrc 文件,除非当前目录是 HOME 环境变量指定的。缺省是 noexrc。
hardtabs(ht=) 告诉 vi 编辑器显示屏幕上硬件制表符停止位之间的距离。(这个选项必须与基础的终端或终端仿真器的制表符设置相匹配。)缺省值为 ht=8。
ignorecase(ic) 当搜索正则表达式时,忽略大写和小写之间的区别。缺省值是 noic。
linelimit(ll=) 设置最大行数,如 -y 命令行选项。该选项只有和 .exrc 文件或 EXINIT 环境变量一起使用时有效。
lisp(lisp) 除去 ( ), { }, [ [ 和 ] ] 的特殊意义,并为 s 表达式启用 =(格式打印)运算符,以便能够编辑行处理(LISP)程序。缺省是 nolisp。
list(list) 显示文本和制表符 (^I) 和行的标记端($)。缺省值是 nolist。
magic(magic) 当搜索一种模式时,将 .(句号)、[(左括号)和 *(星号)字符当成特殊字符。在关闭方式中,只有 ( )(圆括号)和 $(美元符)保持特殊意义。但是,可以通过在其它字符前面加上 / (反斜杠)来激活其它字符的特殊意义。缺省是 magic。
mesg(mesg) 如果以可视方式设置,打开终端的写入许可权。该选项只有和 .exrc 文件或 EXINIT 环境变量一起使用时有效。缺省值是 on。
modeline(modeline) 如果在文件开始五行或最后五行找到,则运行 vi 编辑器命令行。一行 vi 编辑器命令可以位于行中的任意位置。为了便于 vi 编辑器能辨认命令行,这一行必须包含一个空格或制表符,后跟 ex: 或 vi: 字符串。命令行以第二个 :(冒号)结束。vi 编辑器尝试将第一个和第二个冒号之间的任意数据解释为 vi 编辑器命令。缺省为 nomodeline。
novice 指明是否处于 novice 方式。不能用 set 命令更改值。
number(nu) 显示以行号作为前缀的行。缺省是 nonu。
optimize(opt) 加速缺少光标寻址的终端的操作。缺省为 noopt。
paragraphs(para=) 定义开始段落的 vi 宏名。缺省为 para=IPLPPPQPP/ LIpplpipnpbp。如果指定了一个段落,单字母 nroff 宏,如 .P 宏,必须以加引号字符包含空格。
partialchar(pc=) 出现在最后的显示列,该列中双宽字符不完全显示。缺省字符为 -(减号)。
prompt 当处于命令方式时,通过打印 :(冒号)提示输入新的编辑器命令。缺省值为 on。
readonly(ro) 设置永久的只读方式。缺省为 noreadonly。
redraw(redraw) 在低能工作站上模仿智能工作站。缺省为 nore。
remap 允许根据其它宏来定义宏。缺省值是 on。
report(re=) 设置在消息显示之前命令能重复的次数。对于产生许多消息的子命令,例如全局子命令,完成命令序列后显示消息。缺省值为 report=5。
scroll(scr=) 设置在编辑器中上下滚动时滚动的行数。缺省值为窗口大小的 1/2,四舍五入。
sections(sect=) 定义开始段落的 vi 宏名。缺省为 sect=NHSHHH/ HUuhsh+c。如果指定段落,单字母 nroff 宏,如 .P 宏必须以加引号字符包含空格。
shell(sh=) 为 ! 子命令或 :! 子命令定义外壳程序。缺省为登录外壳程序。
shiftwidth(sw=) 为 autoindent 选项、shift 命令(> 和 <)和文本输入命令(Ctrl-D 和 Ctrl-T 按键顺序)使用的软件制表符停止位设置间距。vi 选项只影响行开始的缩排。缺省值为 sw=8。
showmatch(sm) 当如输入 )(右圆括号)或 } (右花括号)时显示 ((匹配的左圆括号)或 { (左花括号)。缺省为 nosm。
showmode(smd) 当 vi 编辑器处于输入方式时显示消息加以指明。缺省为 nosmd。
slowopen(slow) 在插入期间,延迟更新显示屏幕。缺省值为 noslow。
tabstop(ts=) 在一个显示的文件中设置制表符停止位之
本文来自: 乘风原创程序(http://www.qqcf.com) 详细出处参考:http://study.qqcf.com/web/534/136561.htm

原创粉丝点击