一、Unix编辑器概述
编辑器是使用计算机的重要工具之一,是各种操作系统中必不可少的组件。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简介
(1)进入vi
在系统提示下输入vi <文件名>(如$,#),VI可以自动帮你加载要编辑的文件或者打开一个新文件(如果文件不存在或者缺少文件名)。进入vi后,屏幕左侧会出现一个波浪符号。列首的任何符号表示该列当前为空。
(2)两种模式
如上所述,vi有两种模式:指令模式和输入模式。在命令模式下输入的键将被视为命令:如果输入A,vi将被视为在当前位置插入字符。在输入模式下,vi将输入键视为插入字符。要从指令模式切换到输入模式,只需键入相应的输入命令(如A,A)。要从输入模式切换到指令模式,您需要在输入模式下键入ESC键。如果不知道现在是什么模式,可以多按几次[ESC]键。如果系统发出蜂鸣声,这意味着您处于指令模式。
支付:在指令模式下进入输入模式的指令:
添加(追加)
a:从光标位置后面开始添加数据,光标后面的数据随着新添加的数据向后移动。
答:从游标列的后面添加数据。
插入(插入)
I:从光标位置的前面插入数据,光标后面的数据随着新添加的数据向后移动。
I:从光标所在行的第一个非空白字符的前面插入数据。
开始(打开)
o:在光标所在列下增加一个新列,进入输入模式。
o:在光标所在列的上方增加一个新列,进入输入模式。
(3)退出vi
类型:q,q!wq或者:X(注:符号),就会退出vi。其中:wq和:x是保存退出,而:q是直接退出。如果文件中有新的更改,vi将提示您保存文件,并且:q命令也将无效。此时,您可以使用:w命令保存文件,然后使用:q退出,或者:wq或:x命令退出。如果不想保存更改后的文件,需要使用:q!命令,这个命令不会保存文件,直接退出vi。
(4)基本编辑
有了通用键盘上的功能键,比如箭头键、[插入]、[删除]等等,现在应该可以用vi编辑文件了。当然,vi还提供了许多其他功能,使文本处理更加方便。
什么是剪辑?一般认为是字符的添加、修改和删除,甚至包括文本块的移动和复制等。下面介绍如何删除和修改vi。(注:在vi最初的概念里,输入和编辑是两回事。编辑在指令模式下操作。首先用指令移动光标定位要编辑的地方,然后给出编辑的指令。)
删除和修改文件的命令:
x:删除光标所在的字符。
删除光标所在的列。
r:修改光标所在的字符,后面跟着要修改的字符。
r:进入替换状态,新文本会覆盖原文本,直到你按[ESC]键返回命令模式。
s:删除光标字符,进入输入模式。
s:删除光标所在的列,进入输入模式。
其实PC上没有这个麻烦!输入和编辑都可以在输入模式下完成。例如,要删除一个字符,只需按[删除]。插入状态和替换状态可以通过【插入】直接切换,所以不需要使用任何指令模式的编辑指令。然而,如前所述,这些指令可以被几乎每个终端使用,而不仅仅是在PC上。在指令模式下移动光标的基本指令是H,J,K,l,你现在应该能猜到,直接用PC的方向键就可以了,无论是命令模式还是输入模式都可以。有多简单?不会。当然,PC键盘也有一些缺点。有一个非常有用的命令u可以恢复删除的文本,而u命令可以恢复光标列的所有更改。这与某些电脑上的[撤销]键功能相同。
三。附件:六详细说明清单
进入vi的命令
Vi filename:打开或创建一个新文件,并将光标放在第一行的开头。
Vifilename:打开文件,将光标放在第n行的开头。
Vi filename:打开文件,将光标放在最后一行的开头。
Vi /pattern filename:打开文件,将光标放在与模式匹配的第一个字符串上。
Vi -r文件名:上次用Vi编辑时系统崩溃。恢复文件名。
Vi文件名.文件名:打开多个文件,依次编辑。
移动光标类命令
h:将光标向左移动一个字符。
l:将光标向右移动一个字符。
空格:将光标向右移动一个字符。
退格:将光标向左移动一个字符。
或者k Ctrl p:将光标上移一行。
或者j Ctrl n:将光标下移一行。
回车:光标下移一行。
或w:光标向前缀右侧移动一个单词。
或者b:将光标向左移动一个单词到前缀。
或者e:将光标向右移动一个单词到单词的末尾。
):光标移动到句尾。
(:光标移动到句首。
}:将光标移到段落的开头。
{:光标移动到段落末尾。
NG:光标移动到第n行的开头。
N:将光标向下移动N行。
N-:将光标向上移动N行。
N$:光标移动到第n行的末尾。
h:将光标移到屏幕的顶行。
m:把光标移到屏幕的中间一行。
l:将光标移到屏幕的最后一行。
0:光标移动到当前行的开头。
$:光标移动到当前行的末尾
屏幕翻转命令
Ctrl u:将屏幕转到文件开头的一半。
Ctrl:将屏幕转到文件末尾的一半
Ctrl:将一个屏幕翻转到文件的末尾
Ctrl+B:转到文件的第一个屏幕
Nz:将第n行滚动到屏幕顶部,如果没有指定n,则将当前行滚动到屏幕顶部。
插入文本类命令
I:在光标前面
I:在当前行的开头
答:光标后面
答:在当前行的末尾
o:在当前行下创建一个新行。
o:在当前行之上创建一个新行。
r:替换当前字符
r:替换当前字符和后续字符,直到按下ESC键。
s:从当前光标位置开始,用输入文本替换指定数量的字符。
s:删除指定数量的行并用输入的文本替换它们。
Ncw或nCW:修改指定的字数。
NCC:修改指定的行数。
删除
Ndw或ndW:删除光标前后的n-1个单词。
Do:删除到行首
D$:删除到行尾
Nd:删除当前行和后面的n-1行。
或者x:删除一个字符,光标后x,光标前x。
Ctrl u:删除在输入模式下输入的文本。
搜索和替换命令
/pattern:从开始处搜索模式
:n1,n2s/p1/p2/g:用p2替换n1到n2行中的所有p1。
:g/p1/s//p2/g:用p2替换文件中的所有p1。
选项设置
全部:列出所有选项设置。
术语:设置终端类型
无知:搜索时忽略大小写
列表:显示制表位(ctrl i)和行尾标记($)
编号:显示行号
报告:显示由面向行的命令修改的数字。
简洁:显示一条简短的警告消息。
警告:如果在更改到另一个文件时没有保存当前文件,将显示禁止写入消息。
Nomagic:在搜索模式中允许使用前面不带“/”的特殊字符。
Nowrapscan:当搜索到达文件的两端时,禁止vi从另一端开始。
Mesg:允许vi用write在自己的终端上显示其他用户写的信息。
最后一行模式命令
:n1,n2 co n3:将n1和n2行之间的内容复制到n3行下面。
:n1,n2 m n3:将n1和n2行之间的内容移动到n3行。
:n1,n2 d:删除n1和n2行之间的内容。
:w:保存当前文件。
:e filename:打开文件文件名进行编辑。
:x:保存当前文件并退出。
:问:六号出口
:q!退出vi,不保存文件。
:命令:执行shell命令命令
:n1,n2 w!命令:将文件中从n1到n2的内容作为命令的输入并执行,如果