這以 GNU GLOBAL 6.5.6 為示範

1:

install GNU GLOBAL

https://www.gnu.org/software/global/download.html

sudo ./configure;

若有以下 error,請看更下方的 Q5 說明。

configure: checking "location of ncurses.h file"...
configure: error: curses library is required but not found.
If you are not going to use gtags-cscope, please try ./configure --disable-gtagscscope

sudo make;

sudo make install

----------------------------------------------------------------------------------------------------

Q5. What is the message? What should I do?

'configure: error: curses library is required but not found."

A5. gtags-cscope(1) requires curses library. There are two choices of yours.

If you use gtags-cscope(1)

Please install curses library. You can get it here:

http://www.gnu.org/software/ncurses/

else

You can install GLOBAL without gtags-cscope(1) like follows:

$ ./configure --disable-gtagscscope

$ make

因為這裡要使用 gtags-cscope,

所以要 install curses library. 參考下方

-------------------------------------------------------------------------------------------------------

2:

install curses library

http://www.gnu.org/software/ncurses/

sudo ./configure; sudo make; sudo make install;

3 :

install vundle

https://github.com/VundleVim/Vundle.vim

sudo apt-get install git curl

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

請看 https://github.com/VundleVim/Vundle.vim 的 Quick Start 的 第3步驟 Configure Plugins:

4 :

以下要依照 user 當時所安裝的 gnu global 版本,plugin 對應版本的 gtags.vim、gtags-cscope.vim,

可以下載 gnu global source code,裡面就有對應版本的 gtags.vim、gtags-cscope.vim

或是在網路上搜尋對應版本的 gtags.vim,gtags-cscope.vim 並使用以下的 Vundle plugin 方式

Plugin 'bbchung/gtags.vim'
Plugin 'multilobyte/gtags-cscope'

5:

在您要 tag 的 source code 的資料夾下,

執行

gtags

6:

假如您在 source code 找一個定義,

:cs find g the_definition_you_want_find

若出現以下訊息

E567: no cscope connections

需在 ~/.vimrc 加入以下

let g:GtagsCscope_Auto_Load = 

若需要使用 cscope 的快捷鍵,       ===〉  注意,VirtualBox 4.3.36 無法使用組合鍵,如 ctrl 加上 \ 再加上 s

快捷鍵在 gtags-cscope.vim 有說明,

需在 ~/.vimrc 加入以下 code 。

let g:GtagsCscope_Auto_Map = 

cscope command

 "       explanation             command
" ----------------------------------------------------------
" Find symbol :cs find 0 or s
" Find definition :cs find 1 or g
" Find functions called by this function (not implemented)
" Find reference :cs find 3 or c
" Find text string :cs find 4 or t
" Find egrep pattern :cs find 6 or e
" Find path :cs find 7 or f ===> 跳至 include 的 file。如:#include "t.h",跳至 t.h
" Find include file :cs find 8 or i ===> 找尋有那些 source code 有 include 這個 文件。 如: a.c b.c 都有 include "c.h"

快捷鍵

ctrl + \ + s | g | c | t | e | f | i

             " normal command
: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>

Gnu Global :

好用功能

1。尋找在一個 Project中 被 Gnu Global tag 的檔案。

global -P file_name

若有加入 Unite 相關的 plugins

Plugin 'Shougo/unite.vim'
Plugin 'hewes/unite-gtags'

則可在 .vimrc 加入以下的快速鍵。

key : control + g (gnu global) + f (file)

:nmap <C-g>f :Unite gtags/path:

示範:

vim 按下 control + g + f,

若輸入 battery。

如下

:Unite gtags/path:battery

顯示搜尋到的結果

看到好多的搜尋結果,

如何縮小範圍呢?

按下 i,

鍵入您的 keyword 即可。

若不輸入,直接 press enter,

:Unite gtags/path:

則列出所有被 tag 的 file,並且可以輸入 keyword,從中搜尋您所要編輯的 file 。

set up trace code tool的更多相关文章

  1. Service Trace Viewer Tool (SvcTraceViewer.exe)

    Service Trace Viewer Tool <?xml version="1.0" encoding="utf-8" ?> <conf ...

  2. Trace & Error log in file

    1. Log机制 做一些大型项目的时候,对代码的调试最有效的办法往往是最直接.最简单的log机制: 即对可以出设置打印店,对应打印信息进行调试(当然是有gdb也许你会觉得很高大上,但是实际项目中,gd ...

  3. How to anti-Obfuscated code

    Author:jin can zhu from China Source:http://blog.csdn.net/clever101 Now many software makers have us ...

  4. 微信网页授权报code been used, hints: [ req_id: XYv1Ha07042046 ]

    先贴上代码: public function index() { $code = input('get.code'); $tool = new Wxtool(); if (empty($code)) ...

  5. Analyzing UI Performance with Systrace 使用systrace工具分析ui性能

    While developing your application, you should check that user interactions are buttery smooth, runni ...

  6. graphterm 0.40.1 : Python Package Index

    graphterm 0.40.1 : Python Package Index graphterm 0.40.1 Downloads ↓ A Graphical Terminal Interface ...

  7. Get started with Google Analytics

    What is Google Analytics Google Analytics is a Google official analytics tool that is primarily used ...

  8. 内核调试神器SystemTap — 更多功能与原理(三)

    a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 用户空间 SystemTap探测用户空间程序需要utrace的支持,3.5 ...

  9. 内核调试神器SystemTap — 探测点与语法(二)

    a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 探测点 SystemTap脚本主要是由探测点和探测点处理函数组成的,来看下 ...

随机推荐

  1. nodejs 静态资源服务与接口代理跨域

    首先需要 npm install express 和 npm install request 代码如下: const express = require('express'); const path ...

  2. CF-1143D. The Beatles

    题意:有间隔为k的n个点在数轴上,下标为 \(1,k+1, 2*k+1,\cdots (n-1)*k+1\) 首尾相接.设起点为s,步长为L,而现在只知道s距离最近的点的距离为a,和(s+L)距离最近 ...

  3. 【上下界网络流 二分】bzoj2406: 矩阵

    感觉考试碰到上下界网络流也还是写不来啊 Description Input 第一行两个数n.m,表示矩阵的大小. 接下来n行,每行m列,描述矩阵A. 最后一行两个数L,R. Output 第一行,输出 ...

  4. 基于axios的vue插件,让http请求更简单

    ajax-plus 基于axios 的 Vue 插件 如何使用 npm 模块引入 首先通过 npm 安装 ```npm install --save ajax-plus or yarn add aja ...

  5. python基本操作(五)

    if 判断 if 条件: 代码1 代码2 代码3 代码块(同一缩进级别的代码,例如代码1.代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行) cls ...

  6. 第十四届华中科技大学程序设计竞赛决赛同步赛 Beautiful Land

    It’s universally acknowledged that there’re innumerable trees in the campus of HUST.Now HUST got a b ...

  7. 如何查看Android apk的包名?

    有以下四种方法可以查看apk的包名,之后有别的方法,会接着更新文档的. 1. 安装APK包名查看器; 2. 源码AndroidManifest.xml中查看package包名; 3. 利用" ...

  8. LA 3667 Ruler 搜索

    题意: 给出\(n\)个长度,要设计一个有\(m\)个刻度的刻度尺,刻度尺的刻度从\(0\)开始. 使得任意一个长度都能被该刻度尺度量出来. 首先要使\(m\)最小,在\(m\)最小的前提下尺子的长度 ...

  9. alidoing --使用JS实现多语言框架、喜欢的请进、、瓦特平台!

    大家好! 多语言实现的案例:http://alidoing.com/或者http://www.alidoing.com/ 图:切换语言界面 JS代码实现: 1.首先新建一个对象langobj,当然对象 ...

  10. 28、editText只输入英文字母和'-',用于授权码输入

    InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, i ...