vim scope 用法

【Jlink & C#】通过C#实现Jlink RTT上位机的功能 某天看到安富莱家的自己开发的调试器可以实现输出中文调试信息到自己编写的Jlink RTT上位机上,觉得无比神奇,略好奇到底是如何做的,找了很久,发现其上位机的对应的实现好像也没有完全开源出来。后来经过很多搜索确认,知道了几个事实:那么有没有可能用C#来控制Jlink呢?答案是,有!!! 解决思路在于,C#调用JLinkARM.dll里面的函数 这里转载下我认为很有意义的发现结合以上的几个发现,加上我自己的测试,我把我对接JLinkARM.dll的C#接口分享出来,不保证都能用,我只是测试了几个常用的功能,R 阅读详情

原文:http://hi.baidu.com/kkernel/blog/item/6aac48b7612990ff31add1a2.html

:help cscope

在前面的文章中介绍了利用ctags生成的tag文件,跳转到标签定义的地方。但如果想查找函数在哪里被调用,或者标签在哪些地方出现过,ctags就无能为力了,这时需要使用更为强大的cscope。

Cscope具有纯正的Unix血统,它最早是由贝尔实验室为PDP-11计算机开发的,后来成为商用的AT&T Unix发行版的组成部分。直到2000年4月,这个工具才由SCO公司以BSD license开源发行。

Cscope的主页在http://cscope.sourceforge.net/,如果你的计算机上没有cscope,你可以在此处下载它,在写本文时,它的最新版本是15.6。安装它非常简单,你只需要在cscope的源代码目录中执行下面三条命令:


./configure
make
make install
在windows上也可以使用cscope,在cscope的主页上可以下载到由DJGPP编译器编译的windows版的cscope,不过这个版本不能和VIM一起工作。或者你可以下载cygwin工具包(http://www.cygwin.com/),这个工具包中也包含了cscope。

在http://iamphet.nm.ru/cscope/有Sergey Khorev预编译的一个Win32版本的cscope,这个版本的cscope可以很好的与windows版本的VIM搭配使用。

要使用cscope的强大功能,首先需要为你的代码生成一个cscope数据库。生成数据库很简单,在你的项目根目录运行下面的命令:


cscope -Rbq
这些选项的含义见后面。这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。

在缺省情况下,cscope在生成数据库后就会进入它自己的查询界面,我们一般不用这个界面,所以使用了“-b”选项。如果你已经进入了这个界面,按CTRL-D退出。

Cscope在生成数据库中,在你的项目目录中未找到的头文件,会自动到/usr/include目录中查找。如果你想阻止它这样做,使用“-k”选项。

Cscope缺省只解析C文件(.c和.h)、lex文件(.l)和yacc文件(.y),虽然它也可以支持C++以及Java,但它在扫描目录时会跳过C++及Java后缀的文件。如果你希望cscope解析C++或Java文件,需要把这些文件的名字和路径保存在一个名为cscope.files的文件。当cscope发现在当前目录中存在cscope.files时,就会为cscope.files中列出的所有文件生成索引数据库。通常我们使用find来生成cscope.files文件,仍以VIM 7.0的源代码为例:


cd ~/src/vim70
find . –type f > cscope.files
cscope -bq
这条命令把~src/vim70目录下的所有普通文件都加入了cscope.files,这样,cscope会解析该目录下的每一个文件。上面的cscope命令并没有使用“-R”参数,因为在cscope.files中已经包含了子目录中的文件。

注意:find命令输出的文件以相对路径表示,所以cscope.out的索引也相对于当前路径。如果你要在其它路径中使用当前的cscope.out,需要使用下面介绍的-P选项。

Cscope只在第一次解析时扫描全部文件,以后再调用cscope,它只扫描那些改动过的文件,这大大提高了cscope生成索引的速度。

下表中列出了cscope的常用选项:


-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录

-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用“-”,表示由标准输入获得文件列表。
-I dir: 在-I选项指出的目录中查找头文件
-u: 扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-P path: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。
要在VIM中使用cscope的功能,需要在编译VIM时选择“+cscope”。VIM的cscope接口先会调用cscope的命令行接口,然后分析其输出结果找到匹配处显示给用户。

在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。VIM支持8种cscope的查询功能,如下:


s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文

例如,我们想在VIM 7.0的源代码中查找调用do_cscope()函数的函数,我们可以输入:“:cs find c do_cscope”,回车后发现没有找到匹配的功能,可能并没有函数调用do_cscope()。我们再输入“:cs find s do_cscope”,查找这个C符号出现的位置,现在VIM列出了这个符号出现的所有位置。

我们还可以进行字符串查找,它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能,但它是在交叉索引数据库中查找,速度要快得多。

下面是我的.vimrc的配置,在该配置下,在使用vim打开文件时,默认加载当前目录下的cscope.out文件,如果没有的话就得用cs add命令手动加载了。另外也映射了查找的快捷键,如先按ctrl+\键,然后再按g键,将查找当前光标下关键字的定义出。
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("cscope")
set csprg=/usr/bin/cscope
set csto=1
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
endif

nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>


" add by guowenxue end

下面的两个链接是cscope主页提供的cscope使用方法,也可以作为参考:
VIM/cscope指导:http://cscope.sourceforge.net/cscope_vim_tutorial.html
在大项目中使用cscope:http://cscope.sourceforge.net/large_projects.html


[尾记]
本文可以自由应用于非商业用途。转载请注明出处。
原文链接:http://blog.csdn.net/easwy

[版本]
03Apr07, easwy, v0.1, initial version
51单片机计算器(源程序+流程图+答辩报告+综合设计) 保姆级讲解!C语言编程,使用51单片机及LCD1602显示屏实现! 阅读详情

相关推荐

Vim-Cscope教程

Cscope是一个非常方便的工具, 它会为你的编辑器(即Vim)带来很好的舒适性.

[转]VIM+Cscope用法

<br />:help cscope<br /> 在前面的文章中介绍了利用ctags生成的tag文件,跳转到标签定义的地方。但如果想查找函数在哪里被调用,或者标签在哪些地方出现过,ctags就无能为力了,这时需要使用更为强大的cscope。<br /><br /> Cscope具有纯正的Unix血统,它最早是由贝尔实验室为PDP-11计算机开发的,后来成为商用的AT&T Unix发行版的组成部分。直到2000年4月,这个工具才由SCO公司以BSD license开源发行。<br /><br /> Cs

星辉斑斓 1979

基于事件触发机制的孤岛微电网二次电压与频率协同控制MATLAB仿真模型

复现文献:Event-Triggered Updating Method in Centralized and Distributed Secondary Controls for Islanded Microgrid Restoration——T. Qian, Y. Liu, W. H. Zhang, W. H. Tang*本模型质量非常高,运行效果完美。本模型为4机并联孤岛系统,在下垂控制的基础上加入二次控制,二次电压与频率协同控制策略利用事件触发的方法来减少控制器的更新次数。该方法适用于计算资源有限的孤岛微电网的二次控制,可以抵消一次控制偏差。模型简介:https://electric-boy.blog.csdn.net/article/details/136263472

VIM命令记录和cscope结合使用

一、VIM 命令 @1:模式切换: 1、i, I 进入插入模式(Insert mode):i 为从目前光标所在处插入, I 为在目前所在行的第一个非空格符处开始插入。 (常用) 2、a, A 进入插入模式(Insert mode):a 为从目前光标所在的下一个字符处开始插入, A 为从光标所在行的最后一个字符处开始插入。(常用) 3、o, O 进入插入模式(Inser...

~~ LINUX ~~ 892

vim +ctags+ vimlist +scope 转载

vi/vim使用进阶: 使用taglist插件 2009年02月12日文本处理ctags、VimEaswy 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help helptags :help taglist.txt 上篇文章介绍了在vim中如何使用tag文件,本文主要介绍如何使用taglist插件(plugin)。 想必用过Source Insight的人都记

hero9881010love的专栏 3162

Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)

工欲善其事,必先利其器。一个强大的开发环境可以大大提高工作效率。好吧,我知道这是废话。。。不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样可以一键安装并且功能几乎完美无缺的开发工具而郁闷不已,甚至打算收回刚刚迈出的脚步。所幸的是,通过几天努力,我总算配置出了一个功能完备的基于Vim的开发环境。这个开发环境除了基本的Vim外,还包括Cta

Road Ahead 14万+

quick-scope:提升Vim文本编辑效率的利器

quick-scope:提升Vim文本编辑效率的利器 在文本编辑的世界里,效率至关重要。Vim作为一款强大的文本编辑器,其内置的导航功能已经相当出色。但是,quick-scope项目的出现,无疑将Vim的编辑效率提升到了一个新的高度。 项目介绍 quick-scope是一款Vim插件,它通过高亮显示每一行文字中独特字符的第一个和第二个出现位置,帮助用户更快速地使用Vim的f、F以及相关键位。这款插...

gitblog_01012的博客 580

Quick-scope:提升Vim光标移动效率的终极插件指南

Quick-scope是一款专为Vim设计的高效光标移动增强插件,它通过智能高亮显示每行中每个单词的唯一字符,帮助用户利用Vim内置的`f`、`F`、`t`和`T`命令实现闪电般的左右移动。对于希望提升编辑效率的Vim用户来说,这款插件堪称必备工具。 ## 🌟 为什么选择Quick-scope? 作为Vim用户,你是否经常在长行代码中浪费时间寻找目标字符?Quick-scope通过以下核心优

gitblog_00078的博客 528

Quick-scope 使用教程

Quick-scope 使用教程 1. 项目介绍 Quick-scope 是一个为 Vim 编辑器设计的插件,它通过自动高亮行中每个单词的特定字符,帮助用户更快地导航和定位代码。这个插件在每次光标移动时,会高亮显示光标左右侧单词中的首个出现的特定字符,如果单词中没有首个出现的字符,但有第二次出现的字符,则该字符会用不同的颜色高亮显示。Quick-scope 通过减少选择字符时的猜测和放慢速度的情况...

gitblog_00383的博客 889

Quick-scope 使用与配置指南

Quick-scope 使用与配置指南 1. 项目目录结构及介绍 Quick-scope 是一个为 Vim 编辑器设计的插件,旨在通过高亮显示行中每个单词的唯一字符来提高文本导航的效率。以下是项目的目录结构: quick-scope/ ├── autoload/ │ └── quick-scope.vim # 插件主体文件,包含核心逻辑 ├── doc/ │ └── quick...

gitblog_00250的博客 660

How to configure Vim on Linux Platform

mkdir .vim cd .vim/ mkdir bundle git clone https://github.com/VundleVime/Vundle.vim.git git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim vim .vimrc #add Vundle ...

Jun's blog 274

Windowsvim scope 与ctags 配置

需要工具:cscope.exe, cscope_maps.vim(承认你是笨蛋的话,就用这个现成的vim配置,否则就不用) 1:Go To cscope Website,See Doc:   https://graceco.de/manual/cscope_vim_tutorial_zh.html 2:配置cscope有两种法术 (1)三十六般变化:直接在含有.c文件的文件

qq_19399235的博客 586

[Vim]如何理解并正确使用 Vim 中的 Buffer、Window 和 Tab

如何理解并正确使用 Vim 中的 Buffer、Window 和 Tab 写在前面 上周偶然读到了这篇 Vim Tab Madness. Buffers vs Tabs。这是一篇关于 Vim 中 Buffer、Window 和 Tab 的外文资料,文中关于这三者关系的解释非常详细且容易理解,作者在最后还分享了自己的 Vim 使用经验。这篇文章对我有不小的启发,不过原文作者的使用习惯跟博主本...

GanZiQim的技术备忘录 1万+

vscode wsl 远程模式下vim插件autoSwitchInputMethod自动切换不起作用

而且感觉项目没什么人维护了,也不发布新版本,前端时间我提了个修复 bug 的 PR,来解决启用自动切换输入法功能时,按 s 或 c 键修改光标下的文本后,没有立即进入 insert 模式的问题,这导致继续输入后会有非预期的文本被替换掉,PR 早就合并了,但已经过去很长时间了,也没有新的 release 出来,上一个 release 版本是在 3 月初发布的,距今已经将近 4 个月。github 上遗留了一大堆 issue 无人处理,已发布版本中各种小 bug 也没人修复,唉。

icandoit2010的专栏 651

cscope 常用命令

cscope  -Rbq :生成索引文件。 -R: 在生成索引文件时,搜索子目录树中的代码 -b: 只生成索引文件,不进入cscope的界面 -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度 "cscope find"的用法: cs find c|d|e|f|g|i|s|t name 0 或 s 查找本 C

天涯海角的专栏 3393

vim中使用cscope

相关参考链接:http://easwy.com/blog/archives/advanced-vim-skills-cscope/ 1.首先确认vim打开了escope接口,可通过:version命令查看是否有+escope    然后$sud apt-get install escople自动安装 2.为源代码生成一个cscope数据库 在项目根目录运行下面的命令: cscope

citongke1的专栏 1万+

Cscope的使用(领略Vim + Cscope的强大魅力)

Cscope的使用(领略Vim + Cscope的强大魅力)1、Cscope介绍       Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事。在Vim中,通过cscope的查询,跳转到指定的地方就像跳转到任何标签;她能够保存标签栈,所以通过合适的键盘映射绑定,你能够在函数向后或向前跳转,就像通常使用的tags一样。       首次使用Cscope时,他会根据源文件生成符号数据库。然后在以后的使用中,cscope只是在源文件有改动或源文件列表不同

音视频之路 11万+

vim 打造属于自己的 IDE

一.ctags 安装和配置首先要说的是ctags是一个linux上很普遍的源码分析工具, 可以将代码中的函数变量等定义的位置记录在一个名称为tags的文件. 类似于数据库记录功能. tags文件的产出最简单的方法是在需要生成tags的工程项目的根目录下执行ctags -R命令, 这会调用tags递归的扫描当前目录以及所有子目录中可以被tags识别的文件所以文件数据信息都会汇集到tags文件中.这里...

4118

vim+ctags用法

[/home/brimmer/src]$ ctags -R"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"tags"文件中包括这些对象的列表:l        用#define定义的宏l        枚举型变量的值l        函数的定义、原型和声明l        名字空间(namespace)l        类型定义(typedefs)l        变量(包括

Augusdi的专栏 1595

Vim 提权

提权方式风险等级检测难度防御难度sudo vim 滥用⭐⭐⭐⭐⭐低中SUID vim 滥用⭐⭐⭐⭐中低其他命令滥用⭐⭐⭐⭐低中内核漏洞⭐⭐⭐⭐⭐高高核心建议:遵循最小权限原则,定期审计 sudo 配置,及时更新系统补丁。

xia542046446的专栏 214
上一篇: Linux命令
下一篇: c/c++ memset用法
心若天府
博客等级 码龄15年 37粉丝 49原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值