summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'plugin')
-rw-r--r--plugin/fzf.vim9
1 files changed, 4 insertions, 5 deletions
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index 09999649..065701cc 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -430,7 +430,7 @@ function! s:split(dict)
let ppos = s:getpos()
try
if s:present(a:dict, 'window')
- execute a:dict.window
+ execute 'keepalt' a:dict.window
elseif !s:splittable(a:dict)
execute (tabpagenr()-1).'tabnew'
else
@@ -457,15 +457,14 @@ endfunction
function! s:execute_term(dict, command, temps) abort
let winrest = winrestcmd()
+ let pbuf = bufnr('')
let [ppos, winopts] = s:split(a:dict)
- let fzf = { 'buf': bufnr('%'), 'ppos': ppos, 'dict': a:dict, 'temps': a:temps,
+ let fzf = { 'buf': bufnr(''), 'pbuf': pbuf, 'ppos': ppos, 'dict': a:dict, 'temps': a:temps,
\ 'winopts': winopts, 'winrest': winrest, 'lines': &lines,
\ 'columns': &columns, 'command': a:command }
function! fzf.switch_back(inplace)
if a:inplace && bufnr('') == self.buf
- " FIXME: Can't re-enter normal mode from terminal mode
- " execute "normal! \<c-^>"
- b #
+ execute 'keepalt b' self.pbuf
" No other listed buffer
if bufnr('') == self.buf
enew