set up trace code tool
這以 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的更多相关文章
- Service Trace Viewer Tool (SvcTraceViewer.exe)
Service Trace Viewer Tool <?xml version="1.0" encoding="utf-8" ?> <conf ...
- Trace & Error log in file
1. Log机制 做一些大型项目的时候,对代码的调试最有效的办法往往是最直接.最简单的log机制: 即对可以出设置打印店,对应打印信息进行调试(当然是有gdb也许你会觉得很高大上,但是实际项目中,gd ...
- How to anti-Obfuscated code
Author:jin can zhu from China Source:http://blog.csdn.net/clever101 Now many software makers have us ...
- 微信网页授权报code been used, hints: [ req_id: XYv1Ha07042046 ]
先贴上代码: public function index() { $code = input('get.code'); $tool = new Wxtool(); if (empty($code)) ...
- Analyzing UI Performance with Systrace 使用systrace工具分析ui性能
While developing your application, you should check that user interactions are buttery smooth, runni ...
- graphterm 0.40.1 : Python Package Index
graphterm 0.40.1 : Python Package Index graphterm 0.40.1 Downloads ↓ A Graphical Terminal Interface ...
- Get started with Google Analytics
What is Google Analytics Google Analytics is a Google official analytics tool that is primarily used ...
- 内核调试神器SystemTap — 更多功能与原理(三)
a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 用户空间 SystemTap探测用户空间程序需要utrace的支持,3.5 ...
- 内核调试神器SystemTap — 探测点与语法(二)
a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 探测点 SystemTap脚本主要是由探测点和探测点处理函数组成的,来看下 ...
随机推荐
- datatable css not work
样式不显示问题 无论是放内联样式文件还是直接放HTML文件都不显示 后来发现是因为datatable是放在后面初始化,它自带的样式覆盖了我们自定义的样式 所以要注意写code时,很多时候不是code不 ...
- module.exports exports 和export export default
首先可以知道的是这是两组不同模块规范. module.exports 是CommonJS模块规范,通过require 导入 a.js: var x = 'hello' module.exports.x ...
- MySQL左右连接查询中的NULL的数据筛选问题
这里使用左连接为例子,对于左连接是将左边表的数据显示,右边表中如果没有对应的数据则使用null填充. game表: game_type表: SELECT g.name,g.type_id,t.type ...
- node中的定时任务
node-schedule每次都是通过新建一个scheduleJob对象来执行具体方法. 时间数值按下表表示 * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ ...
- Linux基础学习-网络管理
Linux系统网络管理NetworkManager 1 启动网络管理服务和开机自启动 在rhel7中网路管理相关命令nmcli,nmtui,nmtui-edit,nm-connection-edito ...
- 【js】input 焦点到内容的最后
//引用部分应支持jQuery function find_focus(obj){ var curr = jQuery(obj); var val = curr.val(); c ...
- drf 解析器,响应器,路由控制
解析器 作用: 根据请求头 content-type 选择对应的解析器对请求体内容进行处理. 有application/json,x-www-form-urlencoded,form-data等格式 ...
- Python属性描述符(二)
Python存取属性的方式特别不对等,通过实例读取属性时,通常返回的是实例中定义的属性,但如果实例未曾定义过该属性,就会获取类属性,而为实例的属性赋值时,通常会在实例中创建属性,而不会影响到类本身.这 ...
- python基础学习笔记——类空间问题以及类之间的关系
一. 类的空间问题 1.1 何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self ...
- 2018省赛赛第一次训练题解和ac代码
第一次就去拉了点思维很神奇的CF题目 2018省赛赛第一次训练 # Origin Title A CodeForces 607A Chain Reaction B CodeForces ...