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