1.输入方式
1.通过输入vi的插入命令( i )、附加命令( a )、打开命令(o )、
替换命令( s )、修改命令( c )或取代命令( r )可以从命令方式进入到输入方式
2.由输入方式回到命令方式的办法是按下<Esc>键(通常在键盘的左上角)
2.ex转义方式
1.vi和ex编辑器功能是相同的,二者主要区别是用户界面。
2.在vi 中,命令通常是单个字母,例如a , x , R等。 在ex中,
命令是以<Enter>键结束的正文行 为了使用ex转义方式,可输入一个冒号(:)
例如, : 1 , $ s / I / i / g <Enter> 则从文件第一行至文件末尾($)将大写I全部替换成小写 i
3.进入和退出vi
1.在系统提示符($ )下输入命令vi和想要编辑(建立)的文件名,便可进入vi。
例如: $vi example.c
2.退出vi
:wq 把编辑缓冲区的内容写到你编辑的文件中,退出编 辑器,回到 shell下。
(其操作过程是,先键入冒号“:”,再键入命令wq。以下命令操作相同。)
:ZZ 仅当作过修改时才将缓冲区内容写到文件上。
:x 与 :ZZ相同。
:q! 强行退出vi。感叹号(! )告诉vi,无条件退出,丢弃缓冲区内容
4.文本输入
1.插入命令
(1)在i命令之后输入的内容都插在光标位置之前,光标后的文本相应向右移动。
如按下Enter键,就插入新的一行或者换行。
(2)输入I命令后在当前行(即光标所在行)的行首插入新增文本,行首是该行的第一个非空白字符。
当输入I命令时,光标就移到行首。
2.附加命令
(1)a 在光标之后插入,光标可在一行的任何位置。
(2)A 在光标所在行的行尾添加文本。
3.打开命令
(1)o 在光标所在行的下面插入一行。
(2)O 在光标所在行的上面插入一行。
4.输入方式下光标移动
(1)四个表示方向的箭头键: ← ↓ ↑ →
(2)<Bksp>(退格键)
(3) <Ctrl>U 将光标回退到刚插入字符串的第一个字符,并重新开始插入。
(4) <Ctrl>W 将光标移到最后插入单词的首字符。
(5) <Ctrl>T 在插入正文时,如果光标在当前行的开头,并
且设置了自动缩进选项,那么这个命令就插入缩进所对应的空格。如果光
标在新插入词的中间,设从该词开头至光标位的位移为k,缩进空格为n,那么这个命令就在光标前
插入( n-k)个空格;如果k大于n,则n 扩大一倍。
5.文本修改
1.文本删除
删除字符的命令(键):
x 删除光标所在的字符
X 删除光标前面的那个字符
删除文本对象的命令(键):
dd 删除光标所在的整行
D 从光标位置开始删除到行尾
d<光标移动命令> 从光标位置开始删到由光标移动限定的文本对象的末尾
2.复原命令
u 如果插入后用u命令,就删除刚插入的正文;如果删除后用它,就相当于又插入刚删除的正文。
U 把当前行恢复成它被编辑之前的状态,不管你把光标移到该行后对它编辑了多少次。
3.重复命令
. 重复实现刚才的插入命令或删除命令
4.修改命令
命令c、C和 cc修改文本对象,并用新输入的文本代替老文本。
c命令的一般使用方式是:
c后面紧接着光标移动命令(限定删除文本的范围),之后是新的文本,
最后键击< Esc >
C命令修改从光标位置到该行末尾的文本。一般方式是:
C后面紧接着是输入新的文本,最后是< Esc >
cc命令除影响到整行(不是行的一部分)外,其余作用与C命令相同。
5. 取代命令
r命令用随后打入的单个字符取代光标所在的字符
R命令用随后打入的文本取代光标位及其右面的若干字符,每打入一个字符就替代原有的一个字符。
6.替换命令
s(小写)命令用随后打入的的正文替换光标所在的字符
S(大写)命令用新打入的正文替换当前行(整行)
7. 行结合命令
行结合命令J(大写字母)把光标所在行与下面一行结合成一行
8.文本位移命令
> 命令将限定正文行向右移动,通常是8个空格。
文本右移命令的一般格式是:>光标移动命令 < 命令将限定正文行向左移动。使用方式同上。
>> 命令将光标所在行右移8个空格。 << 命令将光标所在行左移8个空格。
9.过滤命令
过滤命令的格式是: ! <光标移动命令> <Linux命令> <Enter> 其功
能是把光标所在行和光标移动命令指定行之间的所有行,由给定的Linux命令
进行加工,替换原来的那部分正文。
6.编辑文件
1. 编辑已存文件的最常用方式是:
$ vi 文件名 从某一指定行进入vi。
其格式是: $ vi +行号 文件名 从某一指定词进入vi。
其格式是: $ vi +/词 文件名
2.编辑多个文件
可以同时调入多个文件,依次对它们进行编辑。
其命令格式是: $ vi 文件1 文件2…
当完成对第一个文件的编辑及存盘(用:w命令)后,输入命令:n就进入第二个文件。
7.常用ex命令
1.e命令
利用e命令可以在编辑当前文件之时编辑另外的文件。
当前文件名总是由vi记住,并用百分号(%)表示,而编辑缓冲区中的上一个文件名是用#号表示的。
e命令常用形式如下:
e 文件名 它编辑由文件名指定的文件
e! 文件名 它不把修改过的当前文件从编辑缓冲区中写出去
e +n 文件名 它从第n行开始编辑指定的文件
2.w命令
w(写)命令可把编辑缓冲区中全部或者部分内容写到当前文件或者另外某个文件中。
它有以下几种常用形式 :
w文件名——它把所做的修改写回到指定的文件,并显示所写的行数和字符数
w>>文件名——它把缓冲区内容附加到现有文件的末尾,先前文件内容并不被破坏
w! 文件名——它可跳过通常写命令对文件的检查,将缓冲区内容写到系统允许的任何文件上
w !命令——它将指定的各行写入指定命令中
3.r命令
r(读)命令把文本读入编辑缓冲区的任意指定位置。
所读入文本必须至少有一行长,可以是一个文件或者命令的输出。
常用形式如下:
r文件名——它将指定文件的文本副本放入缓冲区中指定行之后
r !命令——它把命令的输出读到缓冲区指定行之后
4.q命令
q(退出)命令可从vi 中退出来。
它有下述五种使用方式:
q——它的功能是退出vi
q!——它的功能是立即从vi 中退出,不保留所做的修改,也不显示任何提示信息
wq文件名——它的功能等价于执行w命令后又执行q命令
wq !文件名——它的功能是忽略执行w命令之前所做的检查
x文件名——如果该文件做过修改,并且尚未写出去,那么这个命令就把缓冲区内容写出去,
然后退出vi;否则,只是退出vi。