[fzf-tmux/vim/nvim] Do not split small window

Close #699
This commit is contained in:
Junegunn Choi 2016-10-12 23:09:21 +09:00
parent 60112def02
commit 053af9a1c8
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627
2 changed files with 21 additions and 18 deletions

View File

@ -17,6 +17,7 @@ swap=""
close="" close=""
term="" term=""
[[ -n "$LINES" ]] && lines=$LINES || lines=$(tput lines) [[ -n "$LINES" ]] && lines=$LINES || lines=$(tput lines)
[[ -n "$COLUMNS" ]] && columns=$COLUMNS || columns=$(tput cols)
help() { help() {
>&2 echo 'usage: fzf-tmux [-u|-d [HEIGHT[%]]] [-l|-r [WIDTH[%]]] [--] [FZF OPTIONS] >&2 echo 'usage: fzf-tmux [-u|-d [HEIGHT[%]]] [-l|-r [WIDTH[%]]] [--] [FZF OPTIONS]
@ -83,7 +84,7 @@ while [[ $# -gt 0 ]]; do
else else
if [[ -n "$swap" ]]; then if [[ -n "$swap" ]]; then
if [[ "$arg" =~ ^.l ]]; then if [[ "$arg" =~ ^.l ]]; then
[[ -n "$COLUMNS" ]] && max=$COLUMNS || max=$(tput cols) max=$columns
else else
max=$lines max=$lines
fi fi
@ -108,7 +109,7 @@ while [[ $# -gt 0 ]]; do
[[ -n "$skip" ]] && args+=("$arg") [[ -n "$skip" ]] && args+=("$arg")
done done
if [[ -z "$TMUX" ]] || [[ "$lines" -le 15 ]]; then if [[ -z "$TMUX" ]] || [[ "$opt" =~ ^-h ]] && [[ "$columns" -le 40 ]] || [[ ! "$opt" =~ ^-h ]] && [[ "$lines" -le 15 ]]; then
"$fzf" "${args[@]}" "$fzf" "${args[@]}"
exit $? exit $?
fi fi

View File

@ -289,7 +289,8 @@ function! s:fzf_tmux(dict)
endfunction endfunction
function! s:splittable(dict) 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 endfunction
function! s:pushd(dict) function! s:pushd(dict)
@ -405,6 +406,11 @@ function! s:split(dict)
\ 'right': ['vertical botright', 'vertical resize', &columns] } \ 'right': ['vertical botright', 'vertical resize', &columns] }
let ppos = s:getpos() let ppos = s:getpos()
try try
if s:present(a:dict, 'window')
execute a:dict.window
elseif !s:splittable(a:dict)
execute (tabpagenr()-1).'tabnew'
else
for [dir, triple] in items(directions) for [dir, triple] in items(directions)
let val = get(a:dict, dir, '') let val = get(a:dict, dir, '')
if !empty(val) if !empty(val)
@ -419,10 +425,6 @@ function! s:split(dict)
return [ppos, {}] return [ppos, {}]
endif endif
endfor endfor
if s:present(a:dict, 'window')
execute a:dict.window
else
execute (tabpagenr()-1).'tabnew'
endif endif
return [ppos, { '&l:wfw': &l:wfw, '&l:wfh': &l:wfh }] return [ppos, { '&l:wfw': &l:wfw, '&l:wfh': &l:wfh }]
finally finally