红联Linux门户
Linux帮助

Linux vi命令用法

发布时间:2014-11-06 09:32:19来源:linux网站作者:eastson

本文归纳vi命令常见用法,随操作系统版本不同,可能有所差异,vi命令还是太过个性化了,编辑键、功能键等几乎都用自己的约定,如果不是长期使用Unix/Linux,根本记不住,每次用每次查,本文只归纳常用几个按键,能vi进入,能vi保存,能vi退出就够用的了。


一、vi打开编辑文件

vi <filePathAndName>

示例:vi test.conf,vi /tmp/test.conf,...

如果指定的filePathAndName存在则会自动载入该文件内容,如果不存在则会自动创建。

注:每行前显示波浪符号的表示该行为空行。


二、vi进入输入模式

vi工作于两种模式:指令模式和输入模式。指令模式是打开文件后的默认模式模式,此时输入任何字符均被视为控制指令。输入模式就是普通的编辑模式,此时输入字符默认为输入内容。


三、vi编辑指令
1、屏幕翻页

Ctrl+u: 向上翻半屏
Ctrl+f: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+b: 向下翻一屏

2、移动光标指令

移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):

space: 光标右移一个字符
Backspace: 光标左移一个字符
Enter: 光标下移一行
nG: 光标移至第n行首
n+: 光标下移n行
n-: 光标上移n行
n$: 光标移至第n行尾
0: 光标移至当前行首
$: 光标移至当前行尾

3、插入删除指令

常用插入、删除指令如下:

i:在当前光标前插入,光标后文本向后移
a:从当前光标后插入,光标后文本后移
I:在光标所在行首插入(第一个非空白字符前)
A:从光标所在行末插入
o: 在光标所在行下面新增一行(并进入输入模式)
O: 在光标所在行上方新增一行(并进入输入模式)
x: 删除光标所在字符,等同于[Delete]功能键
X: 删除光标前字符,相当与[Backspace]
dd: 删除光标所在的行
r: 修改光标所在字符
R: 替换当前字符及其后的字符,直到按 [ESC]
s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
S: 删除指定数目的行,并以所输入文本代替之
do: 删至行首
d$: 删至行尾


四、vi退出

退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:

:w ——保存当前文件
:wq —— 存盘退出(与指令 :x 功能相同)
:q —— 直接退出,如已修改会提示是否保存
:q! ——不保存直接退出


更多vi命令:

除了上文罗列指令外,还有搜索及替换命令、内容拷贝命令等命令,有兴趣读者可自行搜索。