vi是大多数UNIX操作系统都支持的全屏文本编辑器(vim是Linux支持的vi的增强版)。
【vi的工作模式】
vi有两种基本的工作模式:命令模式和文本输入模式
命令模式
vi初始启动时进入命令模式。在命令模式下,键的输入(用户按下的任何键和键序列)都被解释为命令,并不会在屏幕上显示,但会执行。 在命令模式下,用户通过按键可以删除几行、查找某个字、在屏幕上移动光标以及执行一些其他有用的操作。
在命令模式下可以使用ex命令。 按下冒号”:“,用户输入的命令显示在编辑器屏幕的最后一行上,按[enter]键结束命令行。
文本输入模式
在文本输入模式下,键盘输入文本字符,屏幕显示用户的输入。按键不被解释成命令行,只是作为文本写入到用户的文件中。
【基本的vi编辑器命令】
启动vi
vi [file]
模式切换
启动vi后,vi处于命令模式,为了输入文本,用户需将vi切换至文本输入模式。
命令键 | 功能 |
---|---|
i | 在光标左侧输入正文 |
I | 在光标所在行的开头输入正文 |
a | 在光标的右侧输入正文 |
A | 在光标所在行的末尾输入正文 |
o | 在光标所在行的下一行增添新行,并且光标位于新行的开头 |
O | 在光标所在行的上一行增添新行,并且光标位于新行的开头 |
在文本模式下想要切换到命令模式需按下[Esc]键,在命令模式下按下[Esc]键,则仍处于命令模式。
移动光标键
按键 | 功能 |
---|---|
h或[⬅] | 将光标向左移动一格 |
j或[⬇] | 将光标向下移动一格 |
k或[⬆] | 将光标向上移动一格 |
l或[➡] | 将光标向右移动一格 |
$ | 将光标移到当前行的行尾 |
w | 将光标向右移动一个字 |
b | 将光标向左移动一个字 |
e | 将光标移到字尾 |
0(零) | 将光标移到当前行的行首 |
[Enter] | 将光标移到下一行的行首 |
[Spacebar] | 将光标向右移动一格 |
[Backspace] | 将光标向左移动一格 |
注意:键盘上方向键在两个模式下都可以使用,但是想要使用其他键移动光标必须在命令模式下。
文本修改
命令模式下的文本修改键。
按键 | 功能 |
---|---|
x | 删除光标位置指定的字符 |
dd | 删除光标所在行 |
u | 撤销最近的修改 |
U | 撤销对当前行做的所有修改 |
r | 替换光标位置上的一个字符 |
R | 替换从光标位置开始的字符,同时改变vi到文本输入模式 |
.(点) | 重复上一次的修改 |
搜索字符串
vi编辑器提供操作符,在文件中搜索指定的字符串。
按键 | 功能 |
---|---|
/ | 在文件中向前搜索 |
? | 在文件中向后搜索 |
搜索到匹配的字符串后,会高亮显示。
n和N分别是移动光标到下一个查找到的字符串和移动光标到上一个查找到的字符串。
退出vi
按键 | 功能 |
---|---|
:wq | 保存文件,退出vi编辑器 |
:w | 保存文件,但不退出vi编辑器 |
:q | 退出vi编辑器 |
:q! | 强制退出vi编辑器 |
ZZ | 保存文件,退出vi编辑器 |
:q: 用户若仅查看文件的内容而未作修改,可以用:q命令退出vi编辑器。
:q!: 如果用户改变了文件的某些地方,但又不想保存,就可以用:q!命令退出vi编辑器,这样所做的修改就会被放弃。
【存储缓冲区】
vi编辑器为用户所要创建或修改的文件建立一个临时的工作区。如果用户创建新文件,则vi为新文件打开一个临时的工作区。如果指定的文件已存在,则vi将源文件复制到临时工作区,用户对文件所做的修改只作用于工作区中文件的副本而不是源文件。这种临时的工作区称为缓冲区或工作缓冲区。在编辑会话过程中,vi编辑器使用几个不同的缓冲区来管理文件。如果用户希望保存所做的修改,必须用保存的已修改文件(缓冲区中的副本)替换源文件。
【操作技巧】
大部分的命令都可以配合数字按键来使用。比如,
2dd: 就是删除当前行和下一行两行。
2h: 就是将光标向左移动两格。