主要是总结一些常用的vim快捷键和方式
先来看一张图
vim快捷键
选定鼠标所在的字符串,然后搜索
只要设置了hlsearch,就能使用’*’符合进行搜索,选定之后,然后再使用’*’切换到下一个,作用类似n键;
vim 查看函数原型可以分为系统函数和自定义函数
系统函数:用shift+K
如何进行批处理:
比如:将10行代码全部注释掉;
V之后,选择10行,如何在你每一行前加入#符号?
批处理替换:
:%s/A/B/g----将本文档中的A全部替换成B
:%s/^/$(VCOM)$(VHDDIR)/g
:x,ys/^/$(VCOM) $(VHDDIR)/g
x,y代表行数,说明从x行到y行都执行操作,最前面加入$(VCOM) $(VHDDIR)字符;
% 括号匹配,匹配大括号
[[ 跳往上一个函式
]] 跳往下一个函式
gd:选中光标当前的词,并搜索;
shift+{ 段首
shift+} 段尾
0 将光标指向行首;
* 向下匹配光标处的词
gf 进入光标指定的文件(注意:头文件的是相对路径还是绝对路径)
ctrl+o 跳向之前的文件
ctrl+l 跳向之后的文件
shift+v > 向右移动一个tab
shift+v <向左移动一个tab(要移动多个tab,就使用多个"<"或">")
:f 查看文件名
Ctrl+G: 查看文件名
!pwd 查看详细路径
:set fileencoding 查看文件编码方式
o O 在光标的下方/上方插入新行
在vim里进行编译
:make
使用vim打开多个文件:
vim a b c
使用:n跳转到下一个文件
使用:N返回到该文件之前的一个文件
删除选定的字符或词
x或X删除光标所在的字符;
dw删除光标所在的字符串;
vimdiff比较2个文件的差异
$ vimdiff fileA fileB
Ctags
索引、跟踪源码的定义
变量的声明和函数方法的实现
安装ctags:apt-get install ctags
产生tag文件:在源码src目录下运行ctags -R
然后从src目录,用vim打开文件
在文件里用ctrl + ] 可以定位
用ctrl + t 返回
如果有多个选择,用:ts来选择
如何返回上次定位处?
'0 (ok,该功能测试通过)
CSCOPE
强大的源码阅读和书写工具
使用cscope跟踪函数被调用的情况;
apt-get install cscope
使用cscope
#!/bin/sh
find . -name "*.h" -o -name"*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files
ctags -R
在源代码目录下打开vim。
要使用cscope查找就必须加载cscope.out文件.
在vim命令行下执行:
:cs add cscope.out(若你退出了再次进入,需要重新执行)
帮助命令:
:cs help
查找符号、变量出现的位置
:cs find s xx
查找调用本函数的地方
:cs find c sync_config_file