summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-05-10 17:43:42 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-05-18 17:08:36 +0900
commit685fb71d8953189e36375b822c8d8e1293736128 (patch)
tree3764111ff241f79c7fdc3c55324aec8c88daa3ec
parent83b603390683d49ff75b72d142b4dba4b5186d73 (diff)
downloadfzf-685fb71d8953189e36375b822c8d8e1293736128.tar.gz
[vim] Use native --tmux option instead of fzf-tmux when possible
-rw-r--r--README-VIM.md9
-rw-r--r--doc/fzf.txt9
-rw-r--r--plugin/fzf.vim20
3 files changed, 21 insertions, 17 deletions
diff --git a/README-VIM.md b/README-VIM.md
index 6751d25a..e727dd1e 100644
--- a/README-VIM.md
+++ b/README-VIM.md
@@ -294,7 +294,7 @@ The following table summarizes the available options.
| `options` | string/list | Options to fzf |
| `dir` | string | Working directory |
| `up`/`down`/`left`/`right` | number/string | (Layout) Window position and size (e.g. `20`, `50%`) |
-| `tmux` | string | (Layout) fzf-tmux options (e.g. `-p90%,60%`) |
+| `tmux` | string | (Layout) `--tmux` options (e.g. `90%,70%`) |
| `window` (Vim 8 / Neovim) | string | (Layout) Command to open fzf window (e.g. `vertical aboveleft 30new`) |
| `window` (Vim 8 / Neovim) | dict | (Layout) Popup window settings (e.g. `{'width': 0.9, 'height': 0.6}`) |
@@ -457,12 +457,13 @@ let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
```
Alternatively, you can make fzf open in a tmux popup window (requires tmux 3.2
-or above) by putting fzf-tmux options in `tmux` key.
+or above) by putting `--tmux` option value in `tmux` key.
```vim
-" See `man fzf-tmux` for available options
+" See `--tmux` option in `man fzf` for available options
+" [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]]
if exists('$TMUX')
- let g:fzf_layout = { 'tmux': '-p90%,60%' }
+ let g:fzf_layout = { 'tmux': '90%,70%' }
else
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
endif
diff --git a/doc/fzf.txt b/doc/fzf.txt
index cf8c6af3..f946184f 100644
--- a/doc/fzf.txt
+++ b/doc/fzf.txt
@@ -311,7 +311,7 @@ The following table summarizes the available options.
`options` | string/list | Options to fzf
`dir` | string | Working directory
`up` / `down` / `left` / `right` | number/string | (Layout) Window position and size (e.g. `20` , `50%` )
- `tmux` | string | (Layout) fzf-tmux options (e.g. `-p90%,60%` )
+ `tmux` | string | (Layout) `--tmux` options (e.g. `90%,70%` )
`window` (Vim 8 / Neovim) | string | (Layout) Command to open fzf window (e.g. `vertical aboveleft 30new` )
`window` (Vim 8 / Neovim) | dict | (Layout) Popup window settings (e.g. `{'width': 0.9, 'height': 0.6}` )
---------------------------+---------------+----------------------------------------------------------------------
@@ -469,11 +469,12 @@ in Neovim.
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
<
Alternatively, you can make fzf open in a tmux popup window (requires tmux 3.2
-or above) by putting fzf-tmux options in `tmux` key.
+or above) by putting `--tmux` options in `tmux` key.
>
- " See `man fzf-tmux` for available options
+ " See `--tmux` option in `man fzf` for available options
+ " [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]]
if exists('$TMUX')
- let g:fzf_layout = { 'tmux': '-p90%,60%' }
+ let g:fzf_layout = { 'tmux': '90%,70%' }
else
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
endif
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index 51ed1388..eee5e9c4 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -573,19 +573,21 @@ function! s:fzf_tmux(dict)
if empty(size)
for o in ['up', 'down', 'left', 'right']
if s:present(a:dict, o)
- let spec = a:dict[o]
- if (o == 'up' || o == 'down') && spec[0] == '~'
- let size = '-'.o[0].s:calc_size(&lines, spec, a:dict)
- else
- " Legacy boolean option
- let size = '-'.o[0].(spec == 1 ? '' : substitute(spec, '^\~', '', ''))
- endif
+ let size = o . ',' . a:dict[o]
break
endif
endfor
endif
- return printf('LINES=%d COLUMNS=%d %s %s %s --',
- \ &lines, &columns, fzf#shellescape(s:fzf_tmux), size, (has_key(a:dict, 'source') ? '' : '-'))
+
+ " Legacy fzf-tmux options
+ if size =~ '-'
+ return printf('LINES=%d COLUMNS=%d %s %s %s --',
+ \ &lines, &columns, fzf#shellescape(s:fzf_tmux), size, (has_key(a:dict, 'source') ? '' : '-'))
+ end
+
+ " Using native --tmux option
+ let in = (has_key(a:dict, 'source') ? '' : ' < /dev/tty')
+ return printf('%s --tmux %s%s', fzf#shellescape(fzf#exec()), size, in)
endfunction
function! s:splittable(dict)