【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀

 

本文地址

 

分享提纲:

  1.安装

  2.使用cscope

  3.使用project

 

 

 

1.安装

  1.1)linux(yum下安装)

    

1
yum -y install cscope 

   1.2)linux(unbuntu下安装)

1
sudo apt-get install cscope

   1.3)mac下安装

 
 
  1.4)项目管理插件project安装
    解压 project-1.4.1.tar.gz 到 ~/.vim目录下,只保留 doc和 plugin两个目录
    【安装】参考链接: http://blog.csdn.net/mybelief321/article/details/9220063
     【使用】参考链接:http://blog.csdn.net/clevercode/article/details/51363050

 

 

2. 使用

  

  2.1) 添加需要索引的文件(*.php,*.js,*.css.*.sh)

1
2
$ cd /home/test/myWork
$ find /home/test/myWork -name "*.js" -o -name "*.sh" -o -name "*.php"   > /home/test/myWork/cscope.files

 


  2.2) 建立索引文件(会生成cscope.out文件)

 

1
2
$ cd /home/test/myWork
$ cscope -b

 


  2.3)使用

    2.3.1 手动加载cscope.out库

  

1
:cs add /home/test/myWork/cscope.out

 

 

    2.3.2  ~/.vimrc中加载

  

1
2
3
4
5
6
7
8
9
10
11
12
13
$ 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

 


    2.3.3 查看库

  

1
:cs show

 



  2.4) find查找命令

: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 ---- 查找包含本文件的文

  2.5)跳转

   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)

    

1
2
$ 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



 

  3.2) 再次使用

  方式一 

    $ vim

    :Project


  方式二

    $  vim -c 'Project /home/test/.vimprojects'    


  3.3)添加项目

     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:



     3.3.2)添加新项目

      只需要将光标移动最后一行。然后按照4.1节新建项目即可。


  3.4) ~/.vimprojects

 

    所有的项目的文档目录都会保存在~/.vimprojects。格式如下:

 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 

 

 

    3.5)其它一些操作

  启动 project 插件后,相对应的就会支持一些命令。在常规模式下输入(注意区分大小写):


  \r 根据项目过滤符更新折叠处的文件。
  \R 递归执行 \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 。

 


posted @   程序员的文娱情怀  阅读(859)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理
点击右上角即可分享
微信分享提示