Linux 用户经常需要对系统配置文件进行文本编辑,所以至少掌握一种文本编辑器,首选编辑器是 vi/vim。几乎任何一个发行版都有 vi 或者 vim 编辑器,在嵌入式 Linux 通常也会集成 vi 编辑器。
Vi 编辑器是 Linux 和 Unix 上最基本的文本编辑器,工作在字符模式下,支持众多的命令,是一款功能强大,效率很高的文本编辑器。Vi 编辑器可以对文本进行编辑、删除、查找和替换、文本块操作等,全部操作都是在命令模式下进行的。Vi 有两种工作模式:命令模式和输入模式。嵌入式 Linux 系统中集成的 vi 编辑器通常是由 Busybox 构建的,只支持了部分 Vi 命令,很多完整版 Vi 中的命令在嵌入式中将不可用。
Vim 是 Vi 的加强版,比 Vi 更容易使用。vi 的命令几乎全部都可以在 vim 上使用,安装了 Vim 的系统,在命令行输入 vi,实际启动的是 Vim 编辑器。下面的介绍不对 Vi 和 Vim加以区分。
Vi 的工作模式可分为命令模式和输入模式,两者之间可以任意切换。
命令模式
从键盘上输入的任何字符都被作为编辑命令来解释,vi 下很多操作如配置编辑器、文本查找和替换、选择文本等都是在命令模式下进行的。
输入模式
从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当作正文。启动Vi后处于命令模式,在命令模式下,输入编辑命令,将进入输入模式;在输入模式下,按 ESC 键将进入命令模式,Vi 的关系转换如下图所示。这里指的编辑命令是指:插入(i 或者 I)、附加(a 或者 A)以及打开(o 或者 O)命令。
启动Vi
在 Linux Shell 终端,输入 vi 或者“vi 文件名”即可启动 Vi 编辑器,默认进入命令模式。刚启动的 Vi 界面如下图所示。
退出Vi
在命令模式下输入如下表所示的命令都可以退出 Vi 编辑器,回到 Shell 界面。
:q 退出未被编辑过的文件
:q! 强行退出 vi,丢弃所做改动
:x 存盘退出 vi
:wq 存盘退出 vi
ZZ 等同于:wq
光标移动
Vi 编辑器的整个文本编辑都用键盘而非鼠标来完成,传统的光标移动方式是在命令模式下输入 h、j、k、l 完成光标的移动,后来也支持键盘的方向键以及 Page Up 和 Page Down翻页键了,并且这些键可在命令模式和输入模式下使用。光标移动示意图如下图所示。
总结一下,在命令模式下光标移动的方法:
上:k、Ctrl+P、
下:j、Ctrl+N、
左:h、Backspace、
右:l、Space、
无论在输入模式下还是命令模式下,都支持 Page Up 和 Page Down 翻页。另外,vi 支持命令快速光标定位。
G 将光标定位到最后一行
nG 将光标定位到第 n 行
gg 将光标定位到第 1 行
ngg 将光标定位到第 n 行
:n 将光标定位到第 n 行
特别说明:用户关于vi的使用,会使用vi打开文件,会模式切换,会光标移动,会i插入文字,会保存退出,基本可以满足ROS机器人操作要求。