行首: shift + 6 = ^
行尾:shift + 4 = $
章首:gg
章尾:G
页首:shift + H
页中:shift + M
页尾:shift + L
选中/取消 一行:shift + v
选中目标:按一下 v,然后左右移动光标
复制一行:yy
粘贴:p
撤销操作:u
撤销撤销:ctrl + R
删除一行:dd
删除光标字符:x
查找:/{word}
向上匹配:N
向下匹配:n
------------------------------------------------------
常规操作
**vim + cscope + ctags**
ctags -R 产生标记文件以帮助在源文件中定位对象。
Ctrl + ] -- 进入函数的实现
Ctrl + o
Tab键回到“Ctrl + o”上一个光标处;
1、z+shift+o 可以打开所有的"+"部分的代码;
2、Ctrl + ] -- 进入函数的实现;Ctrl + o -- 反回上一个光标位置;
3、连续多次“Ctrl + o”操作后,可以通过Tab键回到“Ctrl + o”上一个光标处;
4、“Shift + *” 可以高亮光标处的字符串,并可以通过" n "跳到下一个高亮处,或"N"跳到上一个高亮处。
5、命令模式下":cs f t "find_text_name" 在vim中查找某一个函数或者变量引用的地方。" :cs "可以查看用法。
6、临时保存修改不退出" :w ";
7、" :set tags=/PATH/TO/tags" 当在跳转时,跳转不成功时,且知道接口实现的代码仓库的话,可以动态设置tags文件,设定当前vim需要使用的"tags"文件。
8、":sp" 实现当前vim分上下屏操作,可以通过"Ctrl + j"和"Ctrl + k"实现上下窗口切换操作。
9、"e: /woke/code/xxx.c" 可以打开一个新的文件。8和9可以组合用于对比或合并修改。因为两个vim终端间拷贝文件的操作是不方便的。
10、拆分中断下的窗口的命令:tmux 上面窗口用于代码修改下面窗口用于修改后的编译,还是挺方便的。具体请百度get到。
11、单个文件对比或合并差异的工具:vimdiff (vimdiff ../display.c ./display.c):
dp 将当前窗口光标位置处的内容复制到另一窗口
do 将另一窗口光标位置处的内容复制到当前窗口
12、两个文件夹的差异对比或合并:meld directory1 directory2