mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-19 09:03:43 -05:00
Updated Examples (vim) (markdown)
@@ -87,15 +87,47 @@ function! s:all_files()
|
|||||||
endfunction
|
endfunction
|
||||||
```
|
```
|
||||||
|
|
||||||
### Jump to tags
|
### Jump to tags (simple)
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
command! -bar FZFTags if !empty(tagfiles()) | call fzf#run({
|
command! -bar Tags if !empty(tagfiles()) | call fzf#run({
|
||||||
\ 'source': "sed '/^\\!/d;s/\t.*//' " . join(tagfiles()) . ' | uniq',
|
\ 'source': "sed '/^\\!/d;s/\t.*//' " . join(tagfiles()) . ' | uniq',
|
||||||
\ 'sink': 'tag',
|
\ 'sink': 'tag',
|
||||||
\ }) | else | echo 'Preparing tags' | call system('ctags -R') | FZFTag | endif
|
\ }) | else | echo 'Preparing tags' | call system('ctags -R') | FZFTag | endif
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Jump to tags
|
||||||
|
|
||||||
|
This version better handles same tags across different files.
|
||||||
|
|
||||||
|
```vim
|
||||||
|
function! s:tags_sink(line)
|
||||||
|
let parts = split(a:line, '\t\zs')
|
||||||
|
let excmd = matchstr(parts[2:], '^.*\ze;"\t')
|
||||||
|
execute 'silent e' parts[1][:-2]
|
||||||
|
let [magic, &magic] = [&magic, 0]
|
||||||
|
execute excmd
|
||||||
|
let &magic = magic
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:tags()
|
||||||
|
if empty(tagfiles())
|
||||||
|
echohl WarningMsg
|
||||||
|
echom 'Preparing tags'
|
||||||
|
echohl None
|
||||||
|
call system('ctags -R --excmd=number')
|
||||||
|
endif
|
||||||
|
|
||||||
|
call fzf#run({
|
||||||
|
\ 'source': 'cat '.join(map(tagfiles(), 'fnamemodify(v:val, ":S")')),
|
||||||
|
\ 'options': '+m -d "\t" --with-nth 1,4.. -n 1 --tiebreak=index',
|
||||||
|
\ 'down': '40%',
|
||||||
|
\ 'sink': function('s:tags_sink')})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! Tags call s:tags()
|
||||||
|
```
|
||||||
|
|
||||||
### Jump to tags in the current buffer
|
### Jump to tags in the current buffer
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
|
|||||||
Reference in New Issue
Block a user