vi notes

@draft

vi 是 Linux 上的经典文本编辑器,差不多是所有发行版的缺省装备。vi 的衍生物有:vim, gvim等。

vi HelloWorld.java 编辑一个文件 HelloWorld.java,如果文件不存在,则创建一个空文件进行编辑。如果 HelloWorld.java 不存在,直接执行 :wq 是不能保存退出的,但可以先执行 :w 保存,然后执行 :q 退出。

三种模式

vi 有所谓的三种模式:命令模式,末行模式,文本输入模式。这是与现在常用的文本编辑器 Notepad, Notepad++, gedit 等有很大不同,后者并没有「模式」这个概念。

【命令模式】vi 启动后,默认进入的模式是「命令模式」,在该模式下,可以输入和执行一些 vi 内置的命令,但这些输入不会显示在屏幕上,如果输入的字串不匹配,系统会响铃报错。

【文本输入模式】在「命令模式」下,输入 i 或 o 将以插入(insert)或附加(append)的方式进入「文本输入模式」,在「文本输入模式」下,任何输入都将记录到文本中。在该模式下,无论何时,敲 ESC 键会转到「命令模式」。

【末行模式】在「命令模式」下,输入冒号即进入「末行模式」,在「末行模式」下,可以输入和执行该模式下的指令。在该模式下,无论何时,敲 ESC 键会转到「命令模式」。

以上三种模式的跳转关系如下图所示:

常用指令