vim 基本使用
1、一般模式
通过 vim + 文件名
,进入 vim 环境(test.txt 可以是当前目录已存在的文件,也可以是当前目录不存在的文件。):
bash
vim text.txt
- j 下移光标
- k 上移光标
- h 左移光标
- l 右移光标
或者使用上下左右方向键控制移动光标
2、编辑模式
在一般模式下,通过输入a、i、o 可以进入编辑模式,在编辑模式下我们可以输入文本修改文本内容
a i o 的区别如下:
- a:在当前光标下一位插入
- i:当前光标处插入
- o:换行并创建全新空白行,并在行首插入
在编辑模式下,我们点击 esc 键即可回到一般模式。
3、命令行模式
在一般模式下,输入分号,可以进入命令行模式。在命令行模式下可以通过输入不同指令或者字符串实现不同的功能,其中涉及常用的功能包括了两大类:
- 退出 vim
- 在当前文本中搜索字符串
进入命令行模式后,可以通过以下三种方式退出 vim:
- 在当前文本下输入 q 指令,退出 vim,适用于当前文本文件无修改
- 在当前文本输入 q! 指令,退出 vim,适用于当前文本文件有修改,并放弃当前修改内容
- 在当前文本输入 wq 指令,退出 vim,适用于当前文本文件有修改,并要保存当前修改内容
进入命令行模式后,可以输入 / + 字符串,点击回车键,进入搜索模式,点击 N 键,光标就会在匹配的文本依次跳动。
在一般模式下,也可以通过输入 / + 字符串进行搜索。
4、ctags + vim
进行源码阅读
在阅读Android源码时,由于源码工程量庞大,借助 VS Code 或者 Android Studio导入源码阅读,会索引很长时间,这个时候就可以通过 vim 来阅读源码。
-
首先在 Ubuntu 下需要下载 ctags
bashsudo apt-get install ctags
-
在要阅读的源码根目录下生成 tag 索引
arduino// 比如在 aosp/frameworks/下 ctags -R
-
通过 vim + 源码文件 打开源码
bashvim ./base/services/core/java/com/android/server/pm/PackageManagerService.java

- 当光标落在要跳转的类名上,可以通过
ctrl + ]
进行跳转 -
ctrl + t
返回上一级 - 搜索类文件:
ctrl + f
进入搜索指令行,输入对应的类文件名 - 通过
shift + : + bp
返回上一级 - 通过
shift + : + bn
返回下一级 - 通过
F9
按键 打开和关闭 当前工程目录