Ⅰ. 插件描述
Unite source for GNU GLOBALⅡ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin 'hewes/unite-gtags-long-live'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle 'hewes/unite-gtags-long-live'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug 'hewes/unite-gtags-long-live'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/hewes/unite-gtags
Ⅳ. 文档说明
# unite-gtags
Introduction
unite-gtags is a unite.vim's source.
Execute global command and display the result in Unite interface.
Install
Install the distributed files into your Vim script directory which is usually$HOME/.vim, or $HOME/vimfiles on Windows.
Prerequisite
GNU GLOBAL (6.0 or later) must be installed your system and the executable binary global on your PATH.
Usage
This source provides following sub commands for Unite
Unite gtags/contextUnite gtags/refUnite gtags/defUnite gtags/grepUnite gtags/completionUnite gtags/fileUnite gtags/path
Unite gtags/context
Unite gtags/context lists the references or definitions of a word.
It executes global --from-here=<location of cursor> -qe <word on cursor>
When your cursor is on a definition Unite lists references of it,
otherwise list definitions.
Unite gtags/ref
Unite gtags/ref lists references of a word.
(It executes global -qrs -e <pattern> in internal.)
You can specify <pattern> as an argument :Unite gtags/ref:<pattern>.
When exeucte this command with no arguments :Unite gtags/ref, unite-gtags uses expand('<cword>') as pattern.
Unite gtags/def
Unite gtags/def lists definitions of a word.
(It executes global -qd -e <pattern> in internal.)
You can specify <pattern> as an argument :Unite gtags/def:<pattern>.
When exeucte this command with no arguments :Unite gtags/def, unite-gtags uses expand('\<cword\>') as pattern.
Unite gtags/grep
Unite gtags/grep lists grep result of a word.
(It executes global -qg -e <pattern> in internal.)
You can specify <pattern> as an argument :Unite gtags/grep:<pattern>.
When exeucte Unite with no arguments :Unite gtags/grep, input prompt is shown.
unite-gtags uses the input as <pattern>.
Unite gtags/completion
Unite gtags/completion lists all tokens in GTAGS.
It executes global -c and show results.
Default action on the Unite item is list_references.list_definitions is also available.
Unite gtags/file
Unite gtags/file lists current file's tokens in GTAGS.
It executes global -f and show results.
You can specify <pattern> as an argument :Unite gtags/file:<pathname>.
When exeucte this command with no arguments :Unite gtags/file, unite-gtags uses buffer_name("%") as filepath.
Unite gtags/path
Unite gtags/path lists all paths in GTAGS.
It executes global -P and show results.
You can specify <pattern> as an argument :Unite gtags/path:<pattern>.
When exeucte Unite with no arguments :Unite gtags/path, all paths is shown.
Configuration
Project Configuration
Set project specific configuration. Project is specified with $GTAGSROOT if configured,
otherwise with result of fnamemodify('.', ':p'), usually current dir described as absolute path '/' added.
Following items are configured for each project:
treelize (0 or 1): show Unite's items in tree format or notabsolute_path (0 or 1): add-aoption to global command or notgtags_libpath (list of string): join with ':' and use it asGTAGSLIBPATHthrough_all_tags (0 or 1): add--throughoption to global command or not
You can set default configuration with specifying _ as project name.
Configuration Example:
g:unite_source_gtags_project_config = {
\ '/home/foo/project1/': { 'treelize': 0 },
\ '_': { 'treelize': 1 }
\ }
" specify your project path as key.
" '_' in key means default configuration.
treelize
When treelize = 1, unite result is grouped by filepath and enable you to select a candidate with tree like interface.
This format is effective when filepath is too long string.
Default format:
sample1/foo.rb |2| def hoge
sample1/foo.rb |6| hoge
sample2/bar.rb |4| hoge
Tree format:
[path] sample1/foo.rb
|2| def hoge
|6| hoge
[path] sample2/bar.rb
|4| hoge
absolute_path
When absolute_path = 1, unite-gtags add -a option to global command.
Path in unite's items changes to absolute path format.
Relative path (default):
sample1/foo.rb |2| def hoge
sample1/foo.rb |6| hoge
sample2/bar.rb |4| hoge
Absolute path:
/home/foo/sample1/foo.rb |2| def hoge
/home/foo/sample1/foo.rb |6| hoge
/home/foo/sample2/bar.rb |4| hoge
gtags_libpath
When gtags_libpath is specified with list of string,
unite-gtags joins them with ':' and use the joined string as GTAGSLIBPATH.
(This feature is only available in *nix system.)
Example:
When configure gtags_libpath with following
let g:unite_source_gtags_project_config[<cur_dir>] = {
\ 'gtags_libpath': ['/usr/include/', '/home/foo/include/']
\ }
unite-gtags executes global with temporary environment variable GTAGSLIBPATH like below
GTAGSLIBPATH=$GTAGSLIBPATH:/usr/include/:/home/foo/include/ global ...
through_all_tags
By default, a search is ended without go through all the tag files listed in GTAGSLIBPATH when tags are found in a project's tag file. This behavior may be unintended if there are definitions with the same name as the one defined in a project.
When through_all_tags = 1, unite-gtags adds --through option to global command and it makes a search go through all the tag files listed in GTAGSLIBPATH. This option is ignored when either -s, -r or -l option is specified.
Syntax Highlight
uniteSource__Gtags_LineNrHighlight for Line number (default linked to `LineNr`).uniteSource__Gtags_PathHighlight for filepath (default linked to `File`).