vim cscope taglist 使用

From: http://blog.csdn.net/skywalkzf/article/details/5009329

一 . 安装
apt-get install  exuberant-ctags  cscope global
cppcomplete 和 taglist 要到www.vim.org的扩展列表中下载

taglist 的下载地址:
http://www.vim.org/scripts/script.php?script_id=273
cppcomplete 的下载地址:
http://www.vim.org/scripts/script.php?script_id=527

然后在 建立目录

代码:
$HOME/.vim/plugin

将下载的cppcomplete.vim 和 taglist.vim拷贝到$HOME/.vim/plugin中。
安装了global后,最新4.8.6 以上版本有带vim的扩展,将它也拷贝到 $HOME/.vim/plugin

debian sid 版本global安装后扩展文件在

代码:
/usr/share/doc/global/examples/gtags.vim.gz
需要拷贝到$HOME/.vim/plugin后解压,解压方法:

代码:
gzip -d  gtags.vim.gz


二 . 配置~/.vimrc

if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
        cs add cscope.out
elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
endif
set csverb
set cscopetag
"set cscopequickfix=s-,g-,d-,t-,e-,f-,i-
endif

三 .
载入与使用

cscope -R //载入数据库
Ctl+D    //退出
Ctl+T    //文件中退出

find 选项 字符串
0 或 s: 查找 C 符号
1 或 g: 查找定义
2 或 d: 查找本函数调用的函数
3 或 c: 查找调用指定函数的函数
4 或 t: 查找字符串
6 或 e: 查找 egrep 模式
7 或 f: 查找文件
8 或 i: 查找包含指定文件的文件

四 . 和ctags配合使用:

载入ctags:    ctags -R *
4.将光标移到kmalloc 单词上,
4.1 按"CTRL-/ s",将你带入所有引用函数kmalloc的菜单,在当前窗口打开文件

4.2 按“CTRL-]”,将你带入所有实现函数kmalloc的菜单,在当前窗口打开文件

4.3 按“CTRL-Space s”,将你带入所有引用kmalloc的菜单,水平打开新窗口

4.4 按“CTRL-Space CTRL-Space s”,将你带入所有引用kmalloc的菜单,垂直打开新窗口

4.5 下列是各键的含义
s --- symbol    符号
g --- globals    全局变量
c --- calls        调用自己的
t --- text         文本引用
e --- egrep     做egrep 搜索
f --- file           打开在光标处的文件
i --- includes   查找include所在光标处文件名的文件
d --- called     查找本函数调用的所有函数实现

4.6 按“CTRL-T”返回上一级窗口

5. 除了使用热键以外,也可以使用命令模式来查找
5.1 cs f s kmalloc
等价于CTRL-/ s

5.2 scs f s kmalloc
等价于CTRL-Space s

5.3 vert scs f s kmalloc
等价于CTRL-Space CTRL Space s

6. export CSCOPE_DB=~/cscope/cscope.out
这样就可以在任意目录下run “vi -t kmalloc”,而不会出现找不着DB的情况。


五 . vim的taglist插件使用方法

函数和变量的定义的即时浏览。这个是非常有用的功能。成千的变量,对于C/C++来说,一个类型错误都可能导致极难发现的问题,运行时出现无法预料的结果。vim里面使用taglist实现的。并且多个文件的列表都在一起,还可以按照类型折叠,以便于浏览。
taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!

#unzip taglist.zip -d ~/.vim
#cp doc/taglist.txt /usr/share/vim/vim70/doc/
#cp plugin/taglist.vim /usr/share/vim/vim70/plugin/

#cd /usr/share/vim/vim70/doc/
(注:vim70是我自己的vim版本号,每个人可能不同,自己更改一下)
然后打开sudo vim,shift+: ,进入vim的命令行,使用

: helptags  .

来配置帮助文档
重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
可以用“:help taglist”来获得更多帮助信息

下面讲一下~/.vimrc配置文件的设置,下面是我自己的文件的设置

" 开启语法高亮
syntax on
" 设置文字编码自动识别
set fencs=utf-8,cp936
" 使用鼠标
set mouse=a
" 设置高亮搜索
set hlsearch
" 输入字符串就显示匹配点
set incsearch
" 输入的命令显示出来,看的清楚些。
set showcmd
" Tlist的内部变量。函数列表。
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
"函数和变量列表
map <F4> :TlistToggle<CR>
"全能补全
inoremap <F8> <C-x><C-o>
" 没事,鼠标画线玩的。
" noremap <F9> :call ToggleSketch()<CR>
set wildmenu
" 启动函数变量快速浏览的时间设置
set updatetime=100

然后你就可以在你vim中使用taglist,此时只需要点击F4来打开或者关闭!


经过充实我的~/.vimrc内容如下:

set hlsearch
set ai
syntax on
set number
set nocompatible
set columns=80
filetype on
set history=1000
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set nohls
set noexpandtab
set ignorecase
set mouse=a
set cindent
set incsearch
set fencs=utf-8,cp936

set showcmd
"Tlist的内部变量。函数列表。
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
" "函数和变量列表
map <F4> :TlistToggle<CR>
" "全能补全
inoremap <F8> <C-x><C-o>
" " 没事,鼠标画线玩的。
noremap <F9> :call ToggleSketch()<CR>
set wildmenu
" " 启动函数变量快速浏览的时间设置
set updatetime=100
map <F2> :split<CR>
map <F3> :vsplit<CR>
map <F5> :q!<CR>
map <F6> :w!<CR>
map <F7> :wq!<CR>

autocmd FileType python set omnifunc=pythoncomplete#Complete


if has("cscope")
        set csprg=/usr/bin/cscope
        set csto=0
        set cst
        set nocsverb
        " add any database in current directory
        if filereadable("cscope.out")
                cs add cscope.out
                " else add database pointed to by environment
        elseif $CSCOPE_DB != ""
                cs add $CSCOPE_DB
        endif
        set csverb
        set cscopetag
        "set cscopequickfix=s-,g-,d-,t-,e-,f-,i-
endif


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java面试没有全部答对_十道java基础面试题,你能保证全答对吗?

java初级开发面试中经常被问到的问题有好多&#xff0c;下面总结一下常见的问题&#xff0c;先给问题&#xff0c;大家思考一下再看答案。1.JDK 和 JRE 有什么区别&#xff1f;2. 和 equals 有什么区别&#xff1f;3.说说final在java中的作用。4.String类的常用方法有哪些&…

VMworld 2010旧金山胜利闭幕

一年一度的VMware的用户大会VMworld 2010上周在旧金山胜利闭幕&#xff0c;今年的VMworld&#xff0c;创造了有一个神奇&#xff0c;超记录的参加人数&#xff08;达到了17000人&#xff09;&#xff0c;超记录的实验数量&#xff08;超过15000个实验&#xff09;&#xff0c;超…

暂时停止更新博客

由于本人最近身体有恙&#xff0c;做了个小手术&#xff0c;暂时卧床休息&#xff0c;不能继续更新博客&#xff0c;还请他人谅解&#xff01;转载于:https://www.cnblogs.com/accordion/p/4458562.html

React开发(175):注意在回调里面重新渲染列表

handleDeleteOne (id, isBatch) > {console.log(id);this.props.dispatch({type: friendHelper/delBatch,payload: {idList: [id.id],},callback: (res) > {if (res.returnCode 0) {message.success(删除成功);this.getAssistList();}},});

vim 分割窗口

From: http://buaadallas.blog.51cto.com/399160/83607 Vim用户手册 - by Bram Moolenaar 译者&#xff1a;Nek_in [url]http://vimcdoc.sf.net[/url] 分割窗口 显示两个不同的文件&#xff1b;或者同时显示一个文件的两个不同地方&#xff1b;又或者并排比较两个文 件。…

scratch的积木相与java的_scratch课堂:积木块详解

scratch作为麻省理工学院推出的少儿编程工具&#xff0c;简单易用&#xff0c;十分好学。scratch不仅仅是将编程以积木的形式进行了表现&#xff0c;更是将程序的内容进行了打包处理&#xff0c;让我们只需要根据字面的意思进行拼接即可实现功能&#xff0c;不过scratch的代码还…

老生常谈–希望别再纠结了朋友

片幅大小与立体感的讨论--群里还有朋友在纠结升级机身FF还是买新24G 在网上的争论很多....各种讲法一堆看完后保证让你吐血不说&#xff0c;越看越迷糊 简单讲...立体感的差异之处在哪边关键就在于景深.... 简单明了我想很多人看完后依然不了一张照片要有立体与层次的感觉基本上…

java打包python到exe文件

最近想把写的python代码打包&#xff0c;以供没用安装python环境的同事使用&#xff0c;需求如下&#xff1a; 无python环境也可执行文件尽量少&#xff0c;不要太乱程序体积尽量小如果需要更新的话重复类库不用更新采用方案如下&#xff1a; 使用py2exe自动导入类库使用7-ZIP压…

React开发(173):ant design设置额外的展开行

expandedRowRender额外的展开行Function(record, index, indent, expanded):ReactNode

fail2ban封IP之Http

环境介绍&#xff1a;http是一个tomcat 的js程序 &#xff0c;设置的路径为/opt/tomcat5/logs/localhost_access_log.txt OS:centos 5.3 fail2ban版本:fail2ban-0.8.2-3.el5.rf.noarch.rpm 官方网站&#xff1a;http://www.fail2ban.org/wiki/index.php/Main_Page 背景&…

[Linux] VIM 代码折叠

From: http://www.cnblogs.com/abeen/archive/2010/08/06/1794197.html VIM 代码折叠 VIM代码折叠方式可以用"foldmethod"选项来设置&#xff0c;如: set foldmethodindent 有6种方式来折叠代码 1. manual //手工定义折叠 2. indent //用缩进表示折叠 3. expr  //…

linux time

time&#xff08;取得目前的时间&#xff09; 相关函数ctime&#xff0c;ftime&#xff0c;gettimeofday 表头文件#include<time.h> 定义函数time_t time(time_t *t); 函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非…

java 模拟登陆web系统_关于java模拟登陆WEB的问题。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import javax.swing.JOptionPane;/** …

React开发(176):导出所有接口供使用

export * from ‘./order’; export * from ‘./wallet’; export * from ‘./walletAccount’; export * from ‘./walletTrade’;

微软Windows Mobile智能手机GPRS上网设置教程(转)

总是不断的有用户咨询GPRS的设置方法。并且由于中国移动的原因&#xff0c;人为的将一个GPRS网搞成了两个接入&#xff1a;CMNET和CMWAP&#xff0c;因此带来的问题更是多多。在昨日一个用户被移动强盗般的扣取了100多元的网络费后促使了这篇文章的加速出炉。之所以推荐新手必看…

[vim] vim中使用cscope的安装与使用

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v05m.html 1. 下载cscope-15.7 http://dldx.csdn.net/fd.php?i878111800792509&s924cf0d6a0f63bb6ca24f900 ba3fcad8解压所里面有三个文件&#xff0c; 放到vim的安装目录下即可。2.建索引-bBuild the cross-reference…

Sql Server函数全解二数学函数

阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI()2.平方根函数SQRT(x)3.获取随机函数的函数RAND()和RAND(x)4.四舍五入函数ROUND(x,y)5.符号函数SIGN(x)6.获取整数的函数CEILING(x)和FLOOR(x)7.幂运算函数POWER(x,y)、SQUARE(x)、和EXP(x)8.对数的运算LOG(x)和LOG10(x)9.角度…

java 虚类private 继承_Java经典面试36题和答案

1.”static”关键字是什么意思&#xff1f;Java中是否可以覆盖(override)一个private或者是static的方法&#xff1f;“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖&#xff0c;因为方法覆盖是基于运…

React开发(177):opentab没有menu会报错

import { openTab } from /utils/tabUtils; connect(({ turnover, menu }) > ({turnover,menu, }))

Silverlight - IIS 7.5 部署SilverLight4网站以及问题解决

http://www.silverlightchina.net/html/tips/2010/0216/723.html 安装设置 Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决 原因&#xff1a;在安装Framework v4.0之后&#xff0c;再启用IIS&#xff0c;导致Framework没有完全安装 解决&#xff1a;开始->…