【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀
分享提纲:
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
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添加新的翅膀的更多相关文章
- 安装与配置文本编辑器vim
1.安装 查看是否已经安装vim,在命令行敲入"vi"后按"tab"键,如果只看到有默认的vi和vim.tiny,则为未安装,vim.tiny是vim的精简版 ...
- 【转】使用 vim + ctags + cscope + taglist 阅读源码
原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...
- 使用 vim + ctags + cscope + taglist 阅读源码
转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...
- Sublime Text + CTags + Cscope (部分替代Source Insight)
CTags & cscope 下载: CTags+Cscope --- 我的百度云盘下载http://pan.baidu.com/s/1gfyPnuN ctags58.zip --- src ...
- Linux 核心阅读工具vim+ctags+cscope+taglist
今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...
- vim牛逼的code工具: ctags+ cscope
自己总结 在我的工作目录里的.vimrc中做了这样的配置: set tags=tags; set autochdir 在项目根目录里利用"sudo ctags -R *", ...
- Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...
- vim Ctags 和taglist安装和使用
Ctags是一个用于从程序源代码树产生索引文件(或tag文件),从而便于文本编辑器来实现快速定位的实用工具.在产生的tag文件中,每一个tag的入口指向了一个编程语言的对象.这个对象可以是变量定义.函 ...
- sublime text2+Ctags+Cscope替代Source Insight
说明:以Windows系统下查看C++代码为例.因为Source Insight(以下简称SI)是收费软件,且界面丑陋,所以考虑其替代方案,发现Sublime Text3(以下简称ST3) + Cta ...
随机推荐
- Revit二次开发: 文件损坏
哪些因素可能会导致损坏? 损坏的原因也各不相同,包括但不限于 无法读取/写入存储介质 程序发生崩溃(特别是在数据写入 RVT 模型时) 附加模块以通过正常 UI 无法或意外的方式修改图元 未经测试的多 ...
- 在Windows 10中使用内置的SSH Client连接远程的Linux虚拟机
无意中发现这个功能.一直以来,在Windows平台上面要通过SSH连接Linux都需要借助第三方工具,而且往往还不是很方便.但其实在去年12月份的更新中,已经包含了一个beta版本的SSH Clien ...
- UML 用例建模
用例建模 用例建模的主要功能是表达系统的功能性需求或行为.主要包含用例图和用例描述,其中用例图由参与者.用例.系统边界和箭头组成,用例描述以文本文档的形式详细的描述了用例图中的每个用例. ...
- [android] 插入一条记录到系统短信应用里
谷歌市场上有这些应用,模拟短信,原理就是把数据插入到短信应用的数据库里 获取ContentResolver对象,通过getContentResolver()方法 调用resolver对象的insert ...
- 使用NetDrive将虚拟机映射到本地磁盘,使用smba映射本地磁盘(替代FileZilla)
使用NetDrive映射到本地磁盘 使用NetDrive软件来替代FileZilla,NetDrive是一个能把FTP空间虚拟成本地硬盘的软件,这样我们就不需要再使用FileZilla来来回拷贝文件了 ...
- Java学习笔记之——单例模式
(1)懒汉式:对象在方法中,第一次调用时创建对象,线程不安全的 public class Singleton { //外部不可以创建对象,就要在内部创建一个对象,还能够在外部获取 private ...
- js如何发送wss协议的请求,以及接受服务器返回的数据
今天遇到问题,以往都是请求http协议的url,现在请求变成了wss的,用以前那种ajax的方式不可以发送和接受.然后查阅相关资料解决了这个问题,在这记录一下解决办法,使用的是websocket. & ...
- 快速掌握JavaScript面试基础知识(三)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- js 从一个对象中找到属性值相等的集合
getobjs: function(objs, key, value) { var result = []; for (var i in objs) { var obj = $(objs[i]); i ...
- BZOJ1299: [LLH邀请赛]巧克力棒(Nim游戏)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 552 Solved: 331[Submit][Status][Discuss] Descriptio ...