- [vi 编辑器的初级用法](#vi 编辑器的初级用法)
-
- [vi 编辑器的工作模式](#vi 编辑器的工作模式)
-
- [1. 命令模式](#1. 命令模式)
- [2. 文本输入模式](#2. 文本输入模式)
- [3. 状态行](#3. 状态行)
- [vi 工作模式切换](#vi 工作模式切换)
- 存储缓冲区
- [vi 编辑器命令](#vi 编辑器命令)
-
- [1. 启动 vi](#1. 启动 vi)
- [2. 文本输入](#2. 文本输入)
- [3. 退出 vi](#3. 退出 vi)
- [4. 命令模式下的 光标移动](#4. 命令模式下的 光标移动)
- [5. 命令模式下的 文本修改](#5. 命令模式下的 文本修改)
- [6. 从 命令模式 进入 文本输入模式](#6. 从 命令模式 进入 文本输入模式)
- [7. 搜索字符串](#7. 搜索字符串)
- [8. vi 在线帮助文档](#8. vi 在线帮助文档)
- [vi 编辑器的高级用法](#vi 编辑器的高级用法)
-
- [vi 启动选项](#vi 启动选项)
vi 编辑器的初级用法
UNIX 中的编辑器(文本编辑器)分为两类:行编辑器、全屏编辑器。
vi 编辑器的工作模式
1. 命令模式
- 这是启动后默认的模式;
- 所有输入都被解释为命令,不显示但是被执行。
- 通过按键删除字、行、段,移动光标以及执行其他操作。
ex
命令:按下冒号,在编辑器最后一行(状态行)输入命令,回车结束命令输入,执行命令。
2. 文本输入模式
- 键盘输入文本字符,屏幕显示用户输入。
3. 状态行
屏幕最底部的一行叫做 状态行,
- 用于反馈用户操作结果,错误/其他信息在状态行显示;
ex
命令也是在状态行实现。
vi 工作模式切换
- 用户启动 vi 时,默认是命令模式;
- 在命令模式下,输入
i
、I
、a
、A
、o
、O
中的任意一个字母,即可进入文本输入模式; - 在文本输入模式下编辑文本信息 ,编辑完后,按下 esc 即可回到命令模式;
- 在命令模式下,输入 :,就可以在状态行输入相应
ex
命令;如果是一般命令,命令执行后返回到命令模式,如果是wq
、q
、q!
则退出 vi。
存储缓冲区
vi 编辑器命令
1. 启动 vi
- 直接在命令行
$ vi
,打开一个空白文件,处于命令模式,当输入完文本退出时必须保存到指定文件,否则不允许退出。 :w myfile
,将输入的文本(缓冲区内容)保存到 myfile 中。:wq myfile
,保存文件并退出 vi。
- 另一种
$ vi myfirst
,如果文件 myfirst 不存在,则创建一个空白文件,状态行显示[New File]
。如果 myfirst 已经存在,则显示文件文本信息,显示光标位置行,列
。
2. 文本输入
3. 退出 vi
在文本输入模式下,按下 ESC 进入命令模式,按 :wq
或者 :x
或者 ZZ
并 Enter,表示 保存文件后退出。
【总结】命令模式下退出 vi 的方式如下:
4. 命令模式下的 光标移动
5. 命令模式下的 文本修改
dd 是删除光标所在行,数字 + dd 是删除多行,dw 是删除光标所在的单词。
6. 从 命令模式 进入 文本输入模式
【理解】i
是 insert
(插入,"插队"),a
是 append
(紧跟着),所以 i
在光标左侧,a
在光标右侧。
7. 搜索字符串
- 可以用 / 后跟要找的字符串,如
/Linux
,表示向后查找; - 之后 n 命令表示将光标移动到下一个 与命令搜索方向相同 的匹配字符串 N 命令表示将光标移动到下一个 与搜索方向相反 的匹配字符串。
- 也可以使用 ?,表示向前查找;
- n 和 N 同上。
8. vi 在线帮助文档
命令模式下,:help
,即可调出 vi 的在线帮助文档。
vi 编辑器的高级用法
$ vimdiff file1 file2
:对比两个文件的标准格式。
vi 启动选项
只读选项
命令格式:$ vi -R filename
或 $ vi -view filename
,只读形式打开,可阅读不可修改。
退出 vi 用 :q
。