接触 Linux 系统,免不了要编辑文件,所以也就免不了要使用 vim 编辑器。
Vim 是一个类似于 Vi 的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM 是自由软件。
vim状态转换图
vim状态转换图
命令模式下常见的命令
1. dnd 或 ndd 删除行
使用时的形式:
- dd # 删除光标所在的单行,即 d1d 或 1dd,这种情况下 1 可以省略。
- d5d # 删除从当前光标所在行向下数 5 行(即包括光标所在的行)的内容。
- 5dd # 和 d5d 一样的效果。
2. u (undo) 撤销
撤销前面做的操作。比如,你前面执行了一个删除的操作,那么在命令行模式下按 u ,就会撤销之前的删除操作,还原删除的内容。
3. yny 或 nyy 行复制
使用时的形式:
- yy # 复制光标所在的单行内容到剪贴板,即 y1y 或 1yy,这种情况下 1 可以省略。
- y2y # 复制从当前光标所在行向下数 2 行(即包括光标所在的行)的内容到剪贴板。
- 2yy # 和 y2y 一样的效果
4. p 粘贴
将剪贴板中的内容粘贴到当前光标所在行的下一行。即剪贴板中的内容会出现在当前光标所在行的下一行。如果剪贴板中复制了多行内容,则会从光标所在行下一行开始粘贴,一直到粘贴完毕,原来的下一行跟在后面。
5. / 文本搜索
使用时的形式:
- /搜索的文本 # 例如:/ss 在当前文件中搜索文本 ss 出现的位置;/帅 在当前文件中搜索文本“帅”出现的位置。
- n # 向下寻找; N #向上寻找
6. ngg 光标行定位
使用时的形式:
- 3gg # 将光标定位到第 3 行。
- 30gg # 将光标定位到第 30 行(如果文件有 30 行的话),如果文件行数小于要定位的行数,才光标会定位到文件最后一行。
- gg # 将光标定位到首行,即 1gg, 1 可以省略。
7. shift + g 光标定位到文件末尾
使用时,先按住 shift 按键,然后按下 g 键,光标就会直接定位到文件末尾。
末行模式下的常用命令
末行模式下执行命令要加冒号 : 。
1. :set nu / :set number 显示行号
- :set nu # 可以在文本的左边栏显示出行号,方便定位。
2. :n 光标行定位
- :1 # 将光标定位到文件首行。
- :5 # 将光标定位到第 5 行。
- :30 # 将光标定位到第 30 行,如果文件的行数不足 30 行,则定位到文件的最后一行。
3. :w 保存文件
- :w # 保存当前编辑的文件内容。
3. :q 退出当前文件
- :q # 退出当前编辑的文件。如果退出时没有保存文件,会提示 E37: No write since last change (add ! to override) 。要求使用 ! 。
4. ! 强制操作符,不能单独使用
使用时的形式:
- :q! # 强制退出。
- :w! # 强制保存。
- :wq! # 强制保存并退出。
上面这些已经可以满足绝大多数的需求了。更多关于vim的用法请参考 vim官网 或 vim中文社区 或 github 上的说明。