vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 令。由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻。
vi的基本概念
基本上vi可以分为三种状态,分别是:
- 命令模式(command mode)
- 插入模式(Insert mode)
- 底行模式(last line mode)
各模式的功能区别如下:
命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。
插入模式(Insert mode)
只有在插入模式下,才可以做文字输入,按ESC键可回到命令行模式。
底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令行模式。
vi的基本操作
进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
|
|
不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式」,您要切换到「插入模式」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到 「插入模式」再说吧!
切换至插入模式 编辑文件
在「命令行模式」下按一下字母 i 就可以进入「插入模式」,这时候你就可以开始输入文字了。
切换至命令行模式
您目前处于「插入模式」,您就只能一直输入文字。回到「命令行模式」,按一下 ESC 键就行啦。
切换至底行模式 退出vi及保存文件
在「命令行模式」下,按一下 : 冒号键进入「底行模式」,输入下面的命令:
|
|
命令行模式(command mode)功能键
插入模式
按i 进入插入模式后,是从光标当前位置开始输入文件;
按a进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按o进入插入模式后,是插入新的一行,从行首开始输入文字。
从插入模式切换为命令行模式
按ESC键
移动光标
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母h(左)、j(下)、k(上)、l(右),分别控制光标左、下、上、右移一格。
| key | command |
|---|---|
Ctrl+B |
屏幕往”后”移动一页 |
Ctrl+F |
屏幕往”前”移动一页 |
Ctrl+U |
屏幕往”后”移动半页 |
Ctrl+D |
屏幕往”前”移动半页 |
0 |
移到文章的开头 |
g |
移动到文章的最后 |
$ |
移动到光标所在行的”行尾” |
^ |
移动到光标所在行的”行首” |
w |
光标跳到下个字的开头 |
e |
光标跳到下个字的字尾 |
b |
光标回到上个字的开头 |
#l |
光标移到该行的第#个位置,如:5l,56l |
删除文字
| key | command |
|---|---|
x |
每按一次,删除光标所在位置的”后面”一个字符 |
#x |
例如,6x表示删除光标所在位置的”后面” 6 个字符 |
X |
大写的 X ,每按一次,删除光标所在位置的”前面”一个字符 |
#X |
例如,20X表示删除光标所在位置的”前面” 20 个字符 |
dd |
删除光标所在行 |
#dd |
从光标所在行开始删除#行 |
复制
| key | command |
|---|---|
yw |
将光标所在之处到字尾的字符复制到缓冲区中 |
#yw |
复制#个字到缓冲区 |
yy |
复制光标所在行到缓冲区 |
#yy |
例如,6yy表示拷贝从光标所在的该行”往下数”6行文字 |
p |
将缓冲区内的字符贴到光标所在位置。注意:所有与”y”有关的复制命令都必须与”p”配合才能完成复制与粘贴功能 |
替换
| key | command |
|---|---|
r |
替换光标所在处的字符 |
R |
替换光标所到之处的字符,直到按下ESC键为止 |
回复上一次操作
| key | command |
|---|---|
u |
如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次”u”可以执行多次回复 |
更改
| key | command |
|---|---|
cw |
更改光标所在处的字到字尾处 |
c#w |
例如,c3w表示更改3个字 |
跳至指定的行
| key | command |
|---|---|
Ctrl+G |
列出光标所在行的行号 |
#G |
例如,15G,表示移动光标至文章的第15行行首 |
底行模式(last line mode)下命令简介
在使用「底行模式」之前,请记住先按ESC键确定您已经处于「命令行模式」下后,再按:冒号即可进入「底行模式」。
列出行号
| key | command |
|---|---|
set nu |
输入「set nu」后,会在文件中的每一行前面列出行号。 |
跳到文件中的某一行
| key | command |
|---|---|
# |
「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。 |
查找字符
| key | command |
|---|---|
/关键字 |
先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。 |
?关键字 |
先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。 |
保存文件
| key | command |
|---|---|
w |
在冒号输入字母「w」就可以将文件保存起来。 |
离开vi
| key | command |
|---|---|
q |
按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。 |
qw |
一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。 |
参考地址
http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html