vi编辑器是所有Unix及Linux系统下标准的编辑器
vi的三种模式
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式、底行模式下。
2) 插入模式(Insert mode)
只有在插入模式下,才可以做文字输入,按ESC键可回到命令模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令模式。
vi 的基本操作
a) 进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
$ vi myfile
不过有一点要特别注意,就是您进入vi之后,是处于命令行模式,您要切换到插入模式才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到插入模式再说吧!
b) 切换至插入模式编辑文件
在命令模式下按一下字母 i 就可以进入插入模式,这时候你就可以开始输入文字了。
c) 从插入模式切换至命令模式
处于插入模式时只能一直输入文字,按下ESC键可转到命令模式。
d) 退出vi及保存文件
在命令行模式下,按一下冒号键进入底行模式,例如:
:w (保存当前文件)
:w filename (将文件以指定的文件名“filename”保存)
:wq (保存并退出vi)
:wq filename(将正在编辑的文件保存为“filename”文件退出vi)
:q (退出vi)
:q! (不存盘强制退出vi)
:x (相当于 :wq 的功能)
vi命令模式下的操作
1). 插入模式
按 i 切换进入插入模式后,是从光标当前位置开始输入文件;
按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。
2). 从插入模式切换为命令行模式
按 ESC 键。
3). 移动光标
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母 h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。
按 Ctrl+b :屏幕往后移动一页。
按 Ctrl+f :屏幕往前移动一页。
按 Ctrl+u :屏幕往后移动半页。
按 Ctrl+d :屏幕往前移动半页。
按数字 0 :移到当前行的开头。
按 G :移动到文章的最后。
按 $ :移动到光标所在行的行尾。
按 ^ :移动到光标所在行的行首。
按 w :光标跳到下个字的开头。
按 e :光标跳到下个字的字尾。
按 b :光标回到上个字的开头。
按 #l :光标往后移的第#个位置,如:5l,56l .
4). 删除文字
x :每按一次,删除光标所在位置的后面一个字符。
#x :删除光标所在位置的后面#个字符,例如, 6x 表示删除光标所在位置的后面6个字符。
X :每按一次,删除光标所在位置的前面一个字符。
#X :删除光标所在位置的前面#个字符,例如, 20X 表示删除光标所在位置的前面20个字符。
dd :删除光标所在行。
#dd :从光标所在行开始删除#行。
5). 复制
yw :将光标所在之处到字尾的字符复制到缓冲区中。
#yw :复制#个字到缓冲区。
yy :复制光标所在行到缓冲区。
#yy :复制从光标所在行往下#行文字,例如, 6yy 表示复制从光标所在行往下6行文字。
p :将缓冲区内的字符贴到光标所在位置。
注意:所有与 y 有关的复制命令都必须与 p 配合才能完成复制与粘贴功能。
6). 替换
r :替换光标所在处的字符。
R :替换光标所到之处的字符,直到按下 ESC 键为止。
7). 回复上一次操作
u :如果您误执行一个命令,可以马上按下 u ,回到上一个操作。按多次 u 可以执行多次恢复。
8). 更改
cw :更改光标所在处的字到字尾处
#cw :例如,「3cw」表示更改3个字
9). 跳至指定的行
Ctrl+g 列出光标所在行的行号。
#G :移动光标至文件的第#行行首,例如, 15G 表示移动光标至文件的第15行行首。
vi的底行操作模式
在使用底行模式之前,请记住先按 ESC 键确定您已经处于命令行模式下后,再按冒号 : 即可进入底行模式。
A) 列出行号
set nu :在文件中的每一行前面列出行号。
B) 跳到文件中的某一行
# : # 号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
C) 查找字符
/关键字 :先按 / 键,再输入您想寻找的字符,可以按 n 寻找下一个关键字。
?关键字 :先按 ? 键,再输入您想寻找的字符,可以按 n 寻找上一个关键字。