-
-
Notifications
You must be signed in to change notification settings - Fork 178
Leaderf gtags
Yggdroot edited this page Dec 2, 2019
·
5 revisions
Although LSP has been more and more popular in navigating through the project, it doesn't perform so good especially in large project, however GNU GLOBAL(gtags) can do the trick.
- GNU GLOBAL version 6.6.3+
:Leaderf gtags -h
usage:
Leaderf[!] gtags [-h] [--remove] [--recall]
Leaderf[!] gtags --update [--gtagsconf <FILE>] [--gtagslabel <LABEL>] [--accept-dotfiles]
[--skip-unreadable] [--skip-symlink [<TYPE>]] [--gtagslibpath <PATH> [<PATH> ...]]
Leaderf[!] gtags [--current-buffer | --all-buffers | --all] [--result <FORMAT>] [COMMON_OPTIONS]
Leaderf[!] gtags -d <PATTERN> [--auto-jump [<TYPE>]] [-i] [--literal] [--path-style <FORMAT>] [-S <DIR>]
[--append] [--match-path] [--gtagsconf <FILE>] [--gtagslabel <LABEL>] [COMMON_OPTIONS]
Leaderf[!] gtags -r <PATTERN> [--auto-jump [<TYPE>]] [-i] [--literal] [--path-style <FORMAT>] [-S <DIR>]
[--append] [--match-path] [--gtagsconf <FILE>] [--gtagslabel <LABEL>] [COMMON_OPTIONS]
Leaderf[!] gtags -s <PATTERN> [-i] [--literal] [--path-style <FORMAT>] [-S <DIR>] [--append]
[--match-path] [--gtagsconf <FILE>] [--gtagslabel <LABEL>] [COMMON_OPTIONS]
Leaderf[!] gtags -g <PATTERN> [-i] [--literal] [--path-style <FORMAT>] [-S <DIR>] [--append]
[--match-path] [--gtagsconf <FILE>] [--gtagslabel <LABEL>] [COMMON_OPTIONS]
Leaderf[!] gtags --by-context [--auto-jump [<TYPE>]] [-i] [--literal] [--path-style <FORMAT>] [-S <DIR>]
[--append] [--match-path] [--gtagsconf <FILE>] [--gtagslabel <LABEL>] [COMMON_OPTIONS]
[COMMON_OPTIONS]: [--reverse] [--stayOpen] [--input <INPUT> | --cword]
[--top | --bottom | --left | --right | --belowright | --aboveleft | --fullScreen]
[--nameOnly | --fullPath | --fuzzy | --regexMode] [--nowrap] [--next | --previous]
optional arguments:
-h, --help show this help message and exit
specific arguments:
--update Create tag files if tag files do not exist, update the tag files otherwise.
--remove Remove the tag files generated.
--accept-dotfiles Accept files and directories whose names begin with a dot. By default, gtags
ignores them.
--skip-unreadable Skip unreadable files.
--gtagsconf <FILE> Set environment variable GTAGSCONF to <FILE>.
--gtagslabel <LABEL> Set environment variable GTAGSLABEL to <LABEL>.
--skip-symlink [<TYPE>]
Skip symbolic links. If type is 'f' then skip only symbolic links for file, else
if 'd' then skip only symbolic links for directory. The default value of type is
'a' (all symbolic links).
--gtagslibpath <PATH> [<PATH> ...]
Specify the paths to search for library functions.
-d <PATTERN>, --definition <PATTERN>
Show locations of definitions.
-r <PATTERN>, --reference <PATTERN>
Show reference to a symbol which has definitions.
-s <PATTERN>, --symbol <PATTERN>
Show reference to a symbol which has no definition.
-g <PATTERN>, --grep <PATTERN>
Show all lines which match to the <PATTERN>.
--by-context Decide tag type by context at cursor position. If the context is a definition of
the pattern then use -r, else if there is at least one definition of the pattern
then use -d, else use -s. Regular expression is not allowed for pattern.
-i, --ignore-case Ignore case distinctions in the pattern.
--literal Execute literal search instead of regular expression search.
--path-style <FORMAT>
Show path names using <FORMAT>, which may be one of: `relative`, `absolute`,
`shorter`, `abslib` or `through`. `relative` means relative path. `absolute`
means absolute path. `shorter` means the shorter one of relative and absolute
path. `abslib` means absolute path for libraries (GTAGSLIBPATH) and relative path
for the rest. `through` means the relative path from the project root directory
(internal format of GPATH). The default is `relative`.
-S <DIR>, --scope <DIR>
Show only tags which exist under <DIR> directory.
--match-path Match the file path when fuzzy searching.
--append Append to the previous search results.
--current-buffer Show tags in current buffer.
--all-buffers Show tags in all listed buffers.
--all Show tags in the whole project.
--result <FORMAT> Show result using format, which may be one of: `ctags`(default), `ctags-x`,
`ctags-mod`.
--auto-jump [<TYPE>] Jump to the tag directly when there is only one match. <TYPE> can be 'h', 'v' or
't', which mean jump to a horizontally, vertically split window, or a new tabpage
respectively. If <TYPE> is omitted, jump to a position in current window.
common arguments:
--reverse show results in bottom-up order
--stayOpen don't quit LeaderF after accepting an entry
--input <INPUT> specifies INPUT as the pattern inputted in advance
--cword current word under cursor is inputted in advance
--top the LeaderF window is at the top of the screen
--bottom the LeaderF window is at the bottom of the screen
--left the LeaderF window is at the left of the screen
--right the LeaderF window is at the right of the screen
--belowright the LeaderF window is at the belowright of the screen
--aboveleft the LeaderF window is at the aboveleft of the screen
--fullScreen the LeaderF window takes up the full screen
--popup the LeaderF window is a popup window or floating window
--nameOnly LeaderF is in NameOnly mode by default
--fullPath LeaderF is in FullPath mode by default
--fuzzy LeaderF is in Fuzzy mode by default
--regexMode LeaderF is in Regex mode by default
--nowrap long lines in the LeaderF window won't wrap
--next Jump to the next result.
--previous Jump to the previous result.
--recall Recall last search. If the result window is closed, reopen it.
--popup-height <POPUP_HEIGHT>
specifies the maximum height of popup window, only available in popup mode.
--popup-width <POPUP_WIDTH>
specifies the width of popup window, only available in popup mode.
If [!] is given, enter normal mode directly.
let g:Lf_GtagsAutoGenerate = 1
let g:Lf_Gtagslabel = 'native-pygments'
noremap <leader>fr :<C-U><C-R>=printf("Leaderf! gtags -r %s --auto-jump", expand("<cword>"))<CR><CR>
noremap <leader>fd :<C-U><C-R>=printf("Leaderf! gtags -d %s --auto-jump", expand("<cword>"))<CR><CR>
noremap <leader>fo :<C-U><C-R>=printf("Leaderf! gtags --recall %s", "")<CR><CR>
noremap <leader>fn :<C-U><C-R>=printf("Leaderf gtags --next %s", "")<CR><CR>
noremap <leader>fp :<C-U><C-R>=printf("Leaderf gtags --previous %s", "")<CR><CR>