作者:Gakki
vi / vim 的基本概念
- 什么是 vi,vi 即终端中的一款编辑器。
- 在很多 Linux 发行版中,直接把 vi 做成 vim 的软链接。vim 即 vi improved,是从 vi 发展来的一个文本编辑器。支持代码补全、编译、错误跳转等多项功能,被称之为 " 编辑器之神 "。
- vi / vim 没有图形界面,只能编辑文本内容,不支持鼠标操作,没有菜单,只有命令。
- 基本上 vi / vim 共分为三种模式,分别为命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
命令模式(Command mode)
命令模式(Command mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入输入模式(Insert mode)或底线命令模式(Last line mode)。
- 当我们启动 vi/vim 命令时,如
vim test.txt
,便进入命令模式。在此状态下,敲击键盘动作会被 Vim 识别为命令,而非输入字符。如当我们按下i
,并不要输入 i 字符,而是会被当作命令。在命令模式中,常用的几个命令有:- i:切换到输入模式,以输入字符。
- x:删除当前光标所在处的字符。
-
:
(英文冒号):切换到底线命令模式,在最底一行输入命令。
输入模式(Insert mode)
输入模式(Insert mode):只有在输入模式(Insert mode)下,才可以进行文字输入。在命令模式中按下 i
就进入输入模式;按 [ ESC ] 键可回到命令行模式。在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合:输入字符
- ENTER:回车键,换行
- BACK SPACE:退格键,删除光标前一个字符
- DEL:删除键,删除光标后一个字符
- 方向键:在文本中移动光标
- HOME/END:移动光标到行首/行尾
- Page Up/Page Down:上/下翻页
- Insert:切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC:退出输入模式,切换到命令模式
底线命令模式(Last line mode)
底线命令模式(Last line mode):在命令模式下按下 :
(英文冒号)就进入底线命令模式;按 [ ESC ] 键可回到命令行模式。在底线命令模式中,基本命令有:
命令 | 功能 |
---|---|
w | (write)保存文件 |
q | (quit)退出程序 |
q! | (quit)不保存强制退出 vi |
wq | (write&quit)保存并退出 vi |
vi / vim 使用实例
1. 进入命令模式
- 输入 vi 文件名称,就进入 vi 全屏编辑画面
- 如:
vi test.txt
注:
- 如果没有 text.txt 文件,会自动创建一个 text.txt 文件。
- 现在是处于命令模式。需要按下
i
或者a
或者o
等字符切换到输入模式才可以输入文字。
2. 进入输入模式
- 进入命令模式之后,按下
i
或者a
或者o
等字符即可进入输入模式。在输入模式中,你可以发现在左下角有个 --INSERT--,这表示当前可输入字符了。
注: - 按下 [ESC] 建可回到命令模式。
3. 进入底线命令模式
- 当我们写完之后需要保存或者是不保存退出 vi。只需要先在输入模式中按下[ESC] 建回到命令模式,然后输入
:
切换到底线命令模式。最后在输入命令即可。 - 如:输入
wq
(保存并退出 vi)或q
(不保存直接退出 vi)或q!
(不保存强制退出 vi)
4. 其他
- 底线命令模式中可用的命令说明
命令 | 功能 |
---|---|
w | (write)保存文件(常用) |
w! | 若文件属性为 [只读] 时,强制写入该文档。但具体能否写入,需要看该文档的权限。 |
q | (quit)退出程序 |
q! | (quit)不保存强制退出 vi |
wq | (write&quit)保存并退出 vi |
w [file1] | 将编辑的数据另存为 file1 |
r [file1 | 在编辑的数据中,读取 file1 的数据。也就是将 file1 文档里的内容加到游标所在行后面 |
n1,n2 w [file1] | 将 n1 到 n2 的内存存储到 file1 文件里。 |
:! command | 暂时离开 vi 到底线命令模式下执行 command 的显示结果。如::! ls /home 即在 vi 模式中察看 /home 中执行 ls
|
注: !
在 vi 当中,常常具有 [强制] 的意思。