摘要:vi编辑器是所有Unix及Linux系统下标准的编辑器,功能非常强大,丝毫不逊色于其他任何最新的文本编辑器。

Unix及Linux系统的任何版本,vi编辑器是完全相同的,vi也是Linux中最基本的文本编辑器,认真学习领会,就可以在Linux的世界里畅行无阻。

本文只是简单地介绍一下vi的常用用法和一小部分操作指令,辅以实践检验。详细内容请参考下文。

一、VI基础概念

1、查看本本# vi -version

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(1)

2、两种模式:命令行模式和插入模式

命令行模式(command mode):控制屏幕光标的移动,字符、字或行的删除、移动复制某区段、文件的保存或退出vi及进入插入模式(Insert mode)。

插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(2)

二、VI基本操作

1、使用vi编辑文件# vi filename

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(3)

注意:打开vi编辑文件后,一开始是处于【命令行模式(command mode)】,需要切换到【插入模式(Insert mode)】才能够输入文字。

2、切换插入模式(Insert mode)编辑文件

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(4)

注意:在【命令行模式(command mode)】下按一下字母【i】就可以进入【插入模式(Insert mode)】,这时就可以开始输入文字。

3、插入模式与命令行模式之间的切换

说明:处于【插入模式(Insert mode)】,只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,就要先按一下【ESC】键转到【命令行模式(command mode)】再删除文字。

4、退出VI及保存文件

说明:在【命令行模式(command mode)】下,按一下【:】冒号键进入【命令行模式(command mode)】。比如:

: w filename (输入 【w filename】将文章以指定的文件名filename保存)

: wq (输入【wq】,存盘并退出vi)

: q! (输入【q!】, 不存盘强制退出vi)

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(5)

三、命令行模式(command mode)功能键

1、插入字符

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(6)

备注:按【i】切换进入插入模式,是从光标当前位置开始输入文件;

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(7)

备注:按【a】进入插入模式后,是从目前光标所在位置下一个位置开始输入文字;

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(8)

备注:按【o】进入插入模式后,是插入新的一行,从行首开始输入文字。

2、切换模式

按【ESC】键可以从插入模式切换为命令行模式

3、命令行删除字符的使用说明

【x】:每按一次,删除光标所在位置的"后面"一个字符。

【#x】:比如输入【8x】表示删除光标所在位置的"后面"8个字符。

【X】:大写的X,每按一次,删除光标所在位置"前面"一个字符。

【#X】:比如输入【8X】表示删除光标所在位置"前面"8个字符。

【dd】:删除光标所在行。

【#dd】:比如输入【8dd】从光标所在行开始删除8行。

4、命令行复制字符的使用说明

【yw】:将光标所在之处到字尾的字符复制到缓冲区中。

【#yw】:比如输入【8yw】复制光标所在之处后面的8个字符到缓冲区。

【yy】:复制光标所在行到缓冲区。

【#yy】:比如输入【8yy】表示拷贝从光标所在的该行"往下数"6行文字。

【p】:将缓冲区内的字符贴到光标所在位置。

注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

5、命令行替换字符的使用说明

【r】:替换光标所在处的字符。

【R】:替换光标所到之处的字符,直到按下【ESC】键为止。

linux的vi用法(Linux系统文件编辑实用常用命令VI详解)(9)

6、回退操作

【u】:如果您误执行一个命令,可以马上按下【u】,回退上一个操作。按多次"u"可以执行多次回退。

四、其他VI命令列表

除了上述介绍的常用功能键外,下表再整理出命令行模式下的一些其他功能键的使用说明。详细内容如下:

常用键

使用说明

h

左移光标一个字符

l

右移光标一个字符

k

光标上移一行

j

光标下移一行

^

光标移动至行首

$

光标移动至行尾

Ctrl f

向前翻屏

Ctrl b

向后翻屏

/或?

查找,在/后输入要查找的内容

n

与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。

Set nu

显示行号

,