分享提纲:
1.安装
2.使用cscope
3.使用project
1.安装
1.1)linux(yum下安装)
yum -y install cscope
sudo apt-get install cscope
1.3)mac下安装
2. 使用
2.1) 添加需要索引的文件(*.php,*.js,*.css.*.sh)
$ cd /home/test/myWork $ find /home/test/myWork -name "*.js" -o -name "*.sh" -o -name "*.php" > /home/test/myWork/cscope.files
$ cd /home/test/myWork $ cscope -b
2.3.1 手动加载cscope.out库
:cs add /home/test/myWork/cscope.out
$ vim ~/.vimrc if has("cscope") && filereadable("/usr/bin/cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("/home/test/myWork/cscope.out") cs add /home/test/myWork/cscope.out endif endif
:cs show
:cs f s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs f g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs f d ---- 查找本函数调用的函数
:cs f c ---- 查找调用本函数的函数
:cs f t ---- 查找指定的字符串
:cs f e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs f f ---- 查找并打开文件,类似vim的find功能
:cs f i ---- 查找包含本文件的文
Ctrl+] 将跳到光标所在变量或函数的定义处
Ctrl+T 返回
:set csto=0
‘csto’的值决定了|:cstag|执行查找的顺序。假如’csto’被设置为0,那么cscope数据将会被优先查找,假如cscope没有返回匹配项,然后才会查找tag文件。反之,则查找顺序相反。默认值是0。
3.使用project
3.1)首次使用
如果项目地址为:/home/test/myWork。
命令行中输入vim命令;然后输入:Project ;再然后C创建一个项目。(注意是C 大写的C)
$ vim :Project
C。Enter the Name of the Entry: myWork
Enter the Absolute Directory to Load: /home/test/myWork
Enter the CD parameter: /home/test/myWork
Enter the File Filter: *.csv *.php *.js *.sh *.sql *.conf *.xslt *.xml *.avatar *.tpl *.dev *.prd crontab.* *.cfg.* *.html *.htm *.intftest *.vim *.plx *.txt
保存
:w
方式一
$ vim
:Project
方式二
$ vim -c 'Project /home/test/.vimprojects'
3.3.1)在已有项目中添加;如需要在/home/test/myWork项目中。在db目录中添加conn文件夹。
a) $ vim -c 'Project /home/test/.vimprojects'
b)光标移动到db目录下 a.txt那一行。conn即会在a.txt下方建立。
c) 命令模式输入:C。添加conn
Enter the Name of the Entry: conn
Enter the Directory to Load: conn
Enter the CD parameter:
Enter the File Filter:
只需要将光标移动最后一行。然后按照4.1节新建项目即可。
所有的项目的文档目录都会保存在~/.vimprojects。格式如下:
myWork=/home/test/myWork CD=/home/test/myWork filter="*.csv *.php *.js *.sh *.sql *.conf *.xslt *.xml *.avatar *.tpl *.dev *.prd crontab.* *.cfg.* *.html *.htm *.intftest *.vim *.plx *.txt" { index.php config=config { } css=css { } db=db { a.txt conn=conn { mysql.php } b.txt } } myWork2=/home/test/myWork2 CD=/home/test/myWork2 { a.txt b.txt }
启动 project 插件后,相对应的就会支持一些命令。在常规模式下输入(注意区分大小写):
根据项目过滤符更新折叠处的文件。
R 递归执行
。
c 创建一个项目。但不包括指定目录下的子目录。
C 递归执行 c,包括指定目录下的所有子目录。
<Return> 打开文件;打开或关闭折叠。
<S-Return> Shift+Return
s 同 <Return> 打开文件,打开文件时水平分割窗口。
S 加载所有文件到当前窗口,当前窗口会被水平分割显示所有文件。
<C-Return> Ctrl+Return
o 打开指定文件到一个窗口中,并且关闭所有其它窗口,
<M-Return> Alt+Return
v 仅仅打开文件,光标仍然保留在项目列表中。
<CTRL-Up>
<Up> 移动文本或者折叠到当前光标的上一行。
<CTRL-Down>
<Down> 移动文本或者折叠到当前光标的下一行。
i 在状态栏中显示光标所在折叠的完整参数以及继承参数。
I 在状态栏中显示文件的完整路径。
l 加载当前项目层的所有文件到到当前 vim 中。在加载的过程中,任何按键都导致停止。
L 加载当前项目以及子项目中的文件到当前 vim 中。谨慎使用。
g 在当前项目层执行 grep 。
G 在当前项目层及子项目执行 grep 。
<F12> 当在变量 g:proj_flags 中使用了标志位 'g' 时, 该键用来切换打开和关闭项目窗口.
其它操作参见 project.txt 。