vi (Visual Interface) 是所有 *nux 系统下标准的文本编辑器,相当于 Windows 系统中的记事本
它有三种模式,命令模式 (Command Mode)、行末模式 (LastLine Mode)、编辑模式 (Insert Mode)
命令模式是打开编辑器时的默认模式,编辑模式常用于编辑文本,行末模式常用于执行命令,下面逐一介绍
1、命令模式
无论当前处于任何模式,按
Esc
键即可切换到 Command Mode
(1)移动
操作 | 描述 |
---|---|
j / 方向键下 | 向下移动一个字符 |
k / 方向键上 | 向上移动一个字符 |
h / 方向键左 | 向左移动一个字符 |
l / 方向键右 | 向右移动一个字符 |
0 | 移动到该行行首 |
$ | 移动到该行行末 |
数字 + g | 移动到指定行数 |
{ | 向上卷动一个段落 |
} | 向下卷动一个段落 |
ctrl + y | 向上卷动一行 |
ctrl + e | 向下卷动一行 |
ctrl + u | 向上卷动半个屏幕 |
ctrl + d | 向下卷动半个屏幕 |
ctrl + b | 向上卷动一个屏幕 |
ctrl + f | 向下卷动一个屏幕 |
(2)复制与粘贴
操作 | 描述 |
---|---|
(数字 + ) y + w | 复制指定字数,如果不指定数字,默认为 1 字 |
(数字 + ) y + y | 复制指定行数,如果不指定数字,默认为 1 行 |
p | 粘贴到当前光标所在字符或所在行后 |
P | 粘贴到当前光标所在字符或所在行前 |
(3)删除与撤销
操作 | 描述 |
---|---|
d + d | 删除光标所在行 |
数字 + d + 方向键上 / 方向键下 | 删除从光标所在处开始的指定方向上的指定行数 |
数字 + x | 删除光标所在位置及其后指定个字符 |
数字 + X | 删除光标所在位置及其前指定个字符 |
u | 撤销 |
2、行末模式
当处于 Command Mode 下,按
:
可切换到 LastLine Mode
(1)打开与关闭
操作 | 描述 |
---|---|
e + 文件 | 新建文件 |
n + 文件 | 打开文件 |
w | 保存当前文件内容 |
q | 退出文件编辑 |
wq | 保存文件之后退出文件编辑 |
qa | 退出所有文件编辑 |
q! | 强制退出文件编辑,不保存 |
(2)查找与替换
操作 | 描述 |
---|---|
?字符串 | 从当前位置向前查找特定字符串(按 n 查找下一个,按 N 查找上一个) |
/字符串 | 从当前位置向后查找特定字符串(按 n 查找下一个,按 N 查找上一个) |
g | 全局替换 |
(3)编辑设置
操作 | 描述 |
---|---|
set n / set nonu | 显示行号 / 取消显示行号 |
set ai / set noai | 自动缩进 / 取消自动缩进 |
syntax on / syntax off | 语法高亮 / 取消语法高亮 |
(4)操作多个文件
操作 | 描述 |
---|---|
prev | 切换到上一个文件 |
next | 切换到下一个文件 |
first | 切换到第一个文件 |
last | 切换到最后一个文件 |
3、编辑模式
当处于 Command Mode 下,按
i / I / a / A / o / O
均可切换到 Insert Mode
i
:在当前光标所在字符前面,切换为输入模式I
:在当前光标所在行的行首,切换为输入模式a
:在当前光标所在字符后面,切换为输入模式A
:在当前光标所在行的行末,切换为输入模式o
:在当前光标所在行的下方插入一行,切换为输入模式O
:在当前光标所在行的上方插入一行,切换为输入模式
该模式主要用于编辑文本