vi编辑器是任何Unix及Linux系统下标准的编辑器,他的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下他的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您能够在其他任何介绍vi的地方进一步了解他。Vi也是Linux中最基本的文本编辑器,学会他后,您将在Linux的世界里畅行无阻。
一、vi的基本概念
基本上vi能够分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:
1)命令行模式(commandmode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段。
一、vi的基本概念
基本上vi能够分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:
1)命令行模式(commandmode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段。
在该模式可以通过[shift]+[:]键进入底行模式。在该模式可以通过字母[i]键或[insert]键进入插入模式。
2)插入模式(Insertmode)
一般是在该模式下,进行文字的输入。在该模式可以通过[ESC]键可回到命令行模式。
「q」:按「q」就是退出,假如无法离开vi,能够在「q」后跟一个「!」强制离开vi。
一般是在该模式下,进行文字的输入。在该模式可以通过[ESC]键可回到命令行模式。
3)底行模式(lastlinemode)
将文档保存或退出vi,也能够配置编辑环境,如寻找字符串、列出行号……等。 另外在该模式也可以通过i和a命令来插入一行或多行文字。
将文档保存或退出vi,也能够配置编辑环境,如寻找字符串、列出行号……等。 另外在该模式也可以通过i和a命令来插入一行或多行文字。
在该模式,可以通过[ESC]键可回到命令行模式。
有些文章喜欢将底行模式也算入命令行模式。但是本文会对它进行明确区分,即命令行模式不包括底行模式。
二、vi的基本操作
2.1、 进入vi
在系统提示符号输入vi及文档名称后,就进入vi全屏幕编辑画面:
$vimyfile
如果是打开一个已有文件的话,vi是处于命令行模式;如果文件还不存在而属于新建的话,这时vi处于插入模式。
2.1、 进入vi
在系统提示符号输入vi及文档名称后,就进入vi全屏幕编辑画面:
$vimyfile
如果是打开一个已有文件的话,vi是处于命令行模式;如果文件还不存在而属于新建的话,这时vi处于插入模式。
2.2、进入底行模式
在命令行模式模式可以通过[shift]+[:]键进入底行模式。
2.3、进入插入模式
在命令行模式下按一下字母[i]键或[insert]键就能够进入插入模式(Insertmode),这时候您就能够开始输入文字了。
2.4、 从插入模式返回命令行模式
您处于插入模式,您就只能一直输入文字。假如您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到命令行模式再删除文字。
2.5、退出vi及保存文档
在「命令行模式(commandmode)」下,按下[shift]+[:]键进入底行模式,然后采用以下的一些命令来退出vi及保存文档:
2.3、进入插入模式
在命令行模式下按一下字母[i]键或[insert]键就能够进入插入模式(Insertmode),这时候您就能够开始输入文字了。
2.4、 从插入模式返回命令行模式
您处于插入模式,您就只能一直输入文字。假如您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到命令行模式再删除文字。
2.5、退出vi及保存文档
在「命令行模式(commandmode)」下,按下[shift]+[:]键进入底行模式,然后采用以下的一些命令来退出vi及保存文档:
:wfilename(输入「wfilename」将文章以指定的文档名filename保存)
:wq(输入「wq」,存盘并退出vi)
:q!(输入q!,不存盘强制退出vi)
三、命令行模式命令
3.1、转入插入模式
按字母i键进入插入模式,从光标当前位置开始输入文字;
按字母a键进入插入模式,从现在光标所在位置的下一个位置开始输入文字;
按字母o键进入插入模式,插入新的一行,从行首开始输入文字。
3.2.移动光标
vi能够直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
按「ctrl」+「b」:屏幕往"后"移动一页。
按「ctrl」+「f」:屏幕往"前"移动一页。
按「ctrl」+「u」:屏幕往"后"移动半页。
按「ctrl」+「d」:屏幕往"前"移动半页。
按数字「0」:移到文章的开头。
按[shift] +「G」:移动到文章的最后。
按「$」:移动到光标所在行的"行尾"
按「^」:移动到光标所在行的"行首"
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:先按下一个数字键#,然后按下字母键l,光标移到该行的第#个位置,如:5l,56l。
3.3、 删除文字
「x」:每按一次,删除光标所在位置的"后面"一个字符。
「#x」:先按下一个数字键#,然后按下字母键x.例如,「6x」表示删除光标所在位置的"后面"6个字符。
:wq(输入「wq」,存盘并退出vi)
:q!(输入q!,不存盘强制退出vi)
三、命令行模式命令
3.1、转入插入模式
按字母i键进入插入模式,从光标当前位置开始输入文字;
按字母a键进入插入模式,从现在光标所在位置的下一个位置开始输入文字;
按字母o键进入插入模式,插入新的一行,从行首开始输入文字。
3.2.移动光标
vi能够直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
按「ctrl」+「b」:屏幕往"后"移动一页。
按「ctrl」+「f」:屏幕往"前"移动一页。
按「ctrl」+「u」:屏幕往"后"移动半页。
按「ctrl」+「d」:屏幕往"前"移动半页。
按数字「0」:移到文章的开头。
按[shift] +「G」:移动到文章的最后。
按「$」:移动到光标所在行的"行尾"
按「^」:移动到光标所在行的"行首"
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:先按下一个数字键#,然后按下字母键l,光标移到该行的第#个位置,如:5l,56l。
3.3、 删除文字
「x」:每按一次,删除光标所在位置的"后面"一个字符。
「#x」:先按下一个数字键#,然后按下字母键x.例如,「6x」表示删除光标所在位置的"后面"6个字符。
「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。
「dd」:删除光标所在行。
「#dd」:从光标所在行开始删除#行
3.4、 复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:任何和"y"有关的复制命令都必须和"p"配合才能完成复制和粘贴功能。
3.5、 替换
「r」:替换光标所在处的字符。 比如,我们先按下r键,再按下m键,那么光标处的字符进被贴换为m
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
3.6、 撤销上一次操作
「u」:假如您误执行一个命令,能够马上按下「u」,将撤销上一个操作。按多次"u"能够执行多次回复。
3.7、 更改
「cw」:删除光标所在处的字到字尾处的字符,然后进入插入模式。
「c#w」:例如,「c3w」表示删除光标所在处的字到字尾处的字符,再删除2个字,然后进入插入模式。
3.8、行跳转
「ctrl」+「g」列出光标所在行的行号及该在整个文件中的位置情况。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。
「dd」:删除光标所在行。
「#dd」:从光标所在行开始删除#行
3.4、 复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:任何和"y"有关的复制命令都必须和"p"配合才能完成复制和粘贴功能。
3.5、 替换
「r」:替换光标所在处的字符。 比如,我们先按下r键,再按下m键,那么光标处的字符进被贴换为m
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
3.6、 撤销上一次操作
「u」:假如您误执行一个命令,能够马上按下「u」,将撤销上一个操作。按多次"u"能够执行多次回复。
3.7、 更改
「cw」:删除光标所在处的字到字尾处的字符,然后进入插入模式。
「c#w」:例如,「c3w」表示删除光标所在处的字到字尾处的字符,再删除2个字,然后进入插入模式。
3.8、行跳转
「ctrl」+「g」列出光标所在行的行号及该在整个文件中的位置情况。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
四、底行模式命令
在命令行模式模式可以通过[shift]+[:]键进入底行模式。在底行模式,可以通过「ESC」键返回命令行模式。
4.1、列出行号
「setnu」:输入「setnu」后,会在文档中的每一行前面列出行号。
4.2、 跳到文档中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
4.3、 查找字符
「/关键字」:先按「/」键,再输入您想寻找的字符,表示往后开始查找关键字。假如第一次找的关键字不是您想要的,能够一直按「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,表示往前开始查找关键字。假如第一次找的关键字不是您想要的,能够一直按「n」会往前寻找到您要的关键字为止。
「setnu」:输入「setnu」后,会在文档中的每一行前面列出行号。
4.2、 跳到文档中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
4.3、 查找字符
「/关键字」:先按「/」键,再输入您想寻找的字符,表示往后开始查找关键字。假如第一次找的关键字不是您想要的,能够一直按「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,表示往前开始查找关键字。假如第一次找的关键字不是您想要的,能够一直按「n」会往前寻找到您要的关键字为止。
4.4、保存文档
「w」:在冒号输入字母「w」就能够将文档保存起来。
「w」:在冒号输入字母「w」就能够将文档保存起来。
wfilename将文章以filename为名进行存档
4.5、退出vi程序 「q」:按「q」就是退出,假如无法离开vi,能够在「q」后跟一个「!」强制离开vi。
q!不存盘强制退出vi
「qw」:存盘并退出vi 。一般建议离开时,搭配「w」一起使用,这样在退出的时候还能够保存文档。
wqfilename 将文章以filename为名进行存档,并退出vi
4.6、输入文字
i从当前光标所在行的前一行开始输入文字; 按[enter]键,提交一行,按[Esc]或[Backspace]键,退出该命令
a是从当前光标所在行的下一行开始输入文字;按[enter]键,提交一行,按[Esc]或[Backspace]键,退出该命令
五、插入模式命令
在命令行模式,下按一下字母[i]键或[insert]键就能够进入插入模式(Insertmode),这时候您就能够开始输入文字了。
在插入模式,除了可以通过「ESC」键返回命令行模式,就没别的什么命令了。