本文地址

分享提纲:

  1.安装

  2.使用cscope

  3.使用project

1.安装

  1.1)linux(yum下安装)

    

yum -y install cscope

  1.2)linux(unbuntu下安装)

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)

$ 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文件)

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

  2.3)使用

    2.3.1 手动加载cscope.out库

  

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

    2.3.2  ~/.vimrc中加载

  

$ 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 查看库

  

: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)

    

$ 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。格式如下:

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 。

【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀的更多相关文章

  1. 安装与配置文本编辑器vim

    1.安装 查看是否已经安装vim,在命令行敲入"vi"后按"tab"键,如果只看到有默认的vi和vim.tiny,则为未安装,vim.tiny是vim的精简版 ...

  2. 【转】使用 vim + ctags + cscope + taglist 阅读源码

    原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...

  3. 使用 vim + ctags + cscope + taglist 阅读源码

    转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...

  4. Sublime Text + CTags + Cscope (部分替代Source Insight)

    CTags & cscope 下载: CTags+Cscope --- 我的百度云盘下载http://pan.baidu.com/s/1gfyPnuN ctags58.zip --- src ...

  5. Linux 核心阅读工具vim+ctags+cscope+taglist

    今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...

  6. vim牛逼的code工具: ctags+ cscope

    自己总结 在我的工作目录里的.vimrc中做了这样的配置:   set tags=tags;   set autochdir 在项目根目录里利用"sudo ctags -R *", ...

  7. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...

  8. vim Ctags 和taglist安装和使用

    Ctags是一个用于从程序源代码树产生索引文件(或tag文件),从而便于文本编辑器来实现快速定位的实用工具.在产生的tag文件中,每一个tag的入口指向了一个编程语言的对象.这个对象可以是变量定义.函 ...

  9. sublime text2+Ctags+Cscope替代Source Insight

    说明:以Windows系统下查看C++代码为例.因为Source Insight(以下简称SI)是收费软件,且界面丑陋,所以考虑其替代方案,发现Sublime Text3(以下简称ST3) + Cta ...

随机推荐

  1. 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】

    Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...

  2. PHP定界符eof 的使用

    PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法 ——按字符串输出的话, 肯定要有大量的转义符来对字符串中的引号等 ...

  3. mybatis_08 mybatis与hibernate的区别

    这个问题常常被面试官当做面试题 mybatis与hibernate喜忧参半,各有特点 Mybatis技术特点: 好处: 1.  通过直接编写SQL语句,可以直接对SQL进行性能的优化: 2.  学习门 ...

  4. springMVC_04controller四种配置总结

    一.通过url对应bean,加粗部分为必须有的 <bean class=" org.springframework.web.servlet.handler.BeanNameUrlHan ...

  5. 百度前端学院-基础学院-第七天到第八天之BFC

    1.BFC简介 BFC全称"block formatting context",中文为“块级格式化上下文”.特征总之记住一句话: BFC元素特征表现原则就是:内部元素无论怎么翻江倒 ...

  6. git方式安装thinkphp5

    1.thinkphp 的github 代码版本地址:https://github.com/top-think 2. 点击think 复制 地址 3. 新建thinkphp5 文件夹 git clone ...

  7. SSH框架用法,及作用(在一位菜鸟使用半年之后归纳的总结)

    SSH框架从接触以来改变了我对代码的编写方式,从最初开始学习到勉强掌握可以说得到不少心得,以下内容出自java初学者对SSH的理解,如有不对的地方还请谅解,希望可以提出来与我交流,谢谢! SSH顾名思 ...

  8. 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

    [机器学习基本理论]详解最大似然估计(MLE).最大后验概率估计(MAP),以及贝叶斯公式的理解 https://mp.csdn.net/postedit/81664644 最大似然估计(Maximu ...

  9. Android--记录莫名其妙的引用、依赖冲突解决办法

    这几天一直在忙于其他项目,打开之前的项目,我曹,代码什么都没动,为何莫名其妙的的就出现冲突了.(我猜测是依赖的其它三方库,库里面的依赖发生改变导致的) 全是这种错误,各种冲突导致的,记录一下,以下指示 ...

  10. MFC更换画笔(画刷)颜色以及画眼睛(GDI画图)

    MFC画眼睛 换画笔(画刷)颜色(参考链接:https://blog.csdn.net/sunxiving/article/details/51272001) 由于画笔一旦创建后就无法修改.所以要修改 ...