mirror of
https://github.com/junegunn/fzf.vim.git
synced 2026-09-30 07:32:23 +08:00
Put the starting window back before the action opens the tag
The loop opens each entry of a multi-selection in the starting window, so giving the survivor's action that window left it on the tag's file, and 'ctrl-v' showed the tag twice. Restore buffer and view first, as the quickfix branch does, then open where the key asks and go to the line the entry reached.
This commit is contained in:
@@ -1850,9 +1850,13 @@ function! s:tags_sink(from, lines)
|
||||
call s:fill_quickfix('tags', qfl)
|
||||
elseif len(qfl) == 1
|
||||
" Entries opened in the loop take the action only when one was selected, so
|
||||
" the last one standing of a multi-selection still owes the key its action
|
||||
" the last one standing of a multi-selection still owes the key its action.
|
||||
" The loop opened it in the starting window, which goes back as it was first
|
||||
if len(list) > 1
|
||||
call s:action_for(key, qfl[0].filename, 1)
|
||||
call s:execute_silent('b '.buf)
|
||||
call winrestview(view)
|
||||
call s:action_for(key, qfl[0].filename)
|
||||
call cursor(qfl[0].lnum, 1)
|
||||
endif
|
||||
normal! ^zvzz
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user