Vim使用随笔
一、ctags使用
1.ctags简介:
ctags(generate tag files for source code)是vim下方便代码阅读的工具,ctags可以建立源码树的标签索引(标签就是一个标识符被定义的地方,如变量,函数等),使程序员在编程时能迅速定位函数、变量、宏定义等。
2.ctags安装:
ubuntu下在终端中输入:sudo apt-get install ctags,即可安装。
3.如何使用:
(1)生成tags文件:
ctags –R *
递归地为当前目录及其子目录下的所有代码文件生成tags文件
(2)指定tags文件:
set tags=./tags
指定tags文件为当前路径下的tags文件(在vim中打开源码时,必须先指定tags文件,然后才可以正常使用)
set autochdir
自动切换当前目录为当前文件所在目录
(3)如何跳转:
Ctrl+]
使光标跳转到函数、变量等被定义的地方
Ctrl+T
使光标跳转到函数、变量等被调用的地方
实现vim对tags的自动递归查找其实很简单, 因为vim已经实现了这个功能, 只是默认没有开启. 在vimrc添加下面两行配置, 就会是见证奇迹的时刻:
set autochdir
set tags=tags;
set autochdir表示自动切换目录的意思, “set tags=tags;”表示自动查找,这两句同时设置vim即可实现递归的tags查找, 注意: “set tags=tags;” 这一句的最后有一个分号, 这个分号是不能省略的. vim的配置文件使用的是vim自己的脚步语言. 这里是少数几个在行尾需要使用分号的地方之一.
二、cscope使用
1. 建立cscope使用的索引文件
(1) 在你需要浏览源码的根目录下(如你想用cscope看linux源码)使用下面命令:
* #: cscope -Rbkq<回车>
(2) R 表示把所有子目录里的文件也建立索引
(3) b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库
(4) q生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
(5) k在生成索引文件时,不搜索/usr/include目录
2. 在源码根目录下打开任意.c文件,使用如下命令:
(1) Ctrl+]将跳到光标所在变量或函数的定义处 Ctrl+T返回
(2) :cs find s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs find g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs find d ---- 查找本函数调用的函数
:cs find c ---- 查找调用本函数的函数
:cs find t: ---- 查找指定的字符串
:cs find e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs find f ---- 查找并打开文件,类似vim的find功能
:cs find i ---- 查找包含本文件的文
PS:<1>用 vim + cscope_maps.vim,如果遇到duplicate database,信息如下
“line 77:
E568: duplicate cscope database not added
Press ENTER or type command to continue”
主要问题是vim的全局配置中cscope add cscope.out冲突了,因为 cscope_maps.vim 只适合 vim 5/6,而 vim 7 中自带了 cscope 的功能,如果再加载 cscope_maps.vim 就有问题了。解决办法是:在.vimrc和cscope_maps.vim中,如有,请注释"cscope add cscope.out即可。
<2> 附ctags和cacope生成tags的脚本
```
#!/bin/bash
currentPath=$(pwd | sed 's$\/$\\\/$g')
echo $currentPath
find ./ -name "*.inc" -o -name "*.f" -o -name "*.F" -o -name ".f90" -o -name "*.F90" -o -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cpp" | sed "s/^\./$currentPath/"> cscope.files
cscope -bkq -i cscope.files
ctags -R
```
参考:http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html
https://my.oschina.net/Julian1988/blog/140784?p={{currentPage-1}}
三、Vim设置颜色主题
查看Vim实例中当前的颜色主题
打开一个Vim窗口,输入命令:color或:colorscheme后回车查看当前的颜色主题。
得到Vim示例当前的颜色主题
可以看到当前的颜色主题为default。
Vim实例中设置颜色主题
输入命令"colorscheme 主题名字",即可设置当前vim实例的颜色主题。
查看Vim的运行目录
vim的颜色主题文件放在Vim运行目录下的color目录下,所以我们首先需要知道vim的运行目录。
在vim中输入命令:echo $VIMRUNTIME 来查看Vim的运行目录。
得到vim的运行目录
从图中可以看到,vim的运行路径为/usr/share/vim/vim73/4
进入vim的运行目录,查看color目录下以“.vim”为结尾的文件
这些文件即是颜色主题文件,文件名就是主题名字。
修改vim配置文件,更改默认颜色主题
打开vim配置文件,在其中加入一行"colorscheme 颜色主题名字",之后保存更改即可。
最后,将上面设置的主题颜色的文件放到~/.vim/colors文件夹里面
PS:对neovim,“*.vim”配置文件在~/.config/nvim/colors;默认配置文件为:~/.config/init.vim