summaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2016-10-12 23:09:21 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2016-10-12 23:10:21 +0900
commit053af9a1c8db1c0cc9236da305d07bf382f8e7ab (patch)
treee1a300b4ff116e7d43b1a519b4490936ad0291dc /plugin
parent60112def0245d13a67137ad603acd1b6b5bf0a67 (diff)
[fzf-tmux/vim/nvim] Do not split small window
Close #699
Diffstat (limited to 'plugin')
-rw-r--r--plugin/fzf.vim34
1 files changed, 18 insertions, 16 deletions
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index 2eb98d47..42dbcda3 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -289,7 +289,8 @@ function! s:fzf_tmux(dict)
endfunction
function! s:splittable(dict)
- return s:present(a:dict, 'up', 'down', 'left', 'right')
+ return s:present(a:dict, 'up', 'down') && &lines > 15 ||
+ \ s:present(a:dict, 'left', 'right') && &columns > 40
endfunction
function! s:pushd(dict)
@@ -405,24 +406,25 @@ function! s:split(dict)
\ 'right': ['vertical botright', 'vertical resize', &columns] }
let ppos = s:getpos()
try
- for [dir, triple] in items(directions)
- let val = get(a:dict, dir, '')
- if !empty(val)
- let [cmd, resz, max] = triple
- if (dir == 'up' || dir == 'down') && val[0] == '~'
- let sz = s:calc_size(max, val, a:dict)
- else
- let sz = s:calc_size(max, val, {})
- endif
- execute cmd sz.'new'
- execute resz sz
- return [ppos, {}]
- endif
- endfor
if s:present(a:dict, 'window')
execute a:dict.window
- else
+ elseif !s:splittable(a:dict)
execute (tabpagenr()-1).'tabnew'
+ else
+ for [dir, triple] in items(directions)
+ let val = get(a:dict, dir, '')
+ if !empty(val)
+ let [cmd, resz, max] = triple
+ if (dir == 'up' || dir == 'down') && val[0] == '~'
+ let sz = s:calc_size(max, val, a:dict)
+ else
+ let sz = s:calc_size(max, val, {})
+ endif
+ execute cmd sz.'new'
+ execute resz sz
+ return [ppos, {}]
+ endif
+ endfor
endif
return [ppos, { '&l:wfw': &l:wfw, '&l:wfh': &l:wfh }]
finally