/fzf-tags

:cherry_blossom: :microscope:

Primary LanguageVim Script

fzf-tags

fzf-tags bridges the gap between tags and fzf.vim.

It combines :tag and :tselect into a single improved command.

:FZFTags looks up the identifier under the cursor.

:FZFTselect behaves just like :tselect.

  • Loads the tags matching the argument into an FZF window.
  • If no argument is provided, the last tag on the tag-stack is used.

This plugin uses the built-in :tag command under the hood, which yields a couple benefits.

  • Tag stack management works as expected (CTRL-T or :pop return you to your previous location).
  • Tag priority works as expected (:help tag-priority).

Installation

Plug 'zackhsi/fzf-tags'

Configuration

Mappings

fzf-tags exposes the <Plug>(fzf_tags) mapping.

To override the default jump-to-tag binding:

nmap <C-]> <Plug>(fzf_tags)

Additionally, fzf-tags exposes a fuzzy :tselect. To replace the default :ts:

noreabbrev <expr> ts getcmdtype() == ":" && getcmdline() == 'ts' ? 'FZFTselect' : 'ts'

Prompt

To replace the default prompt 🔎:

let g:fzf_tags_prompt = "Gd "

Layout

fzf-tags respects the global g:fzf_layout setting. For example:

let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6, 'highlight': 'Comment' } }