diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2015-04-15 22:49:45 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2015-04-15 22:49:45 +0900 |
| commit | 853012ceef7c8e8e28e6cbb6c790f76956a62b03 (patch) | |
| tree | b79651d7573453902decbe7fb35519e64f1b4a0b /plugin | |
| parent | 2add45fe2f0b0860eba007948c1cfe734c56192c (diff) | |
| download | fzf-853012ceef7c8e8e28e6cbb6c790f76956a62b03.tar.gz | |
[vim] Add g:fzf_action for customizing key bindings
Close #189
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/fzf.vim | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/plugin/fzf.vim b/plugin/fzf.vim index 063bc2e6..99aa3009 100644 --- a/plugin/fzf.vim +++ b/plugin/fzf.vim @@ -308,23 +308,26 @@ function! s:callback(dict, temps) return lines endfunction +let s:default_action = { + \ 'ctrl-m': 'e', + \ 'ctrl-t': 'tabedit', + \ 'ctrl-x': 'split', + \ 'ctrl-v': 'vsplit' } + function! s:cmd_callback(lines) abort if empty(a:lines) return endif let key = remove(a:lines, 0) - if key == 'ctrl-t' | let cmd = 'tabedit' - elseif key == 'ctrl-x' | let cmd = 'split' - elseif key == 'ctrl-v' | let cmd = 'vsplit' - else | let cmd = 'e' - endif + let cmd = get(s:action, key, 'e') for item in a:lines execute cmd s:escape(item) endfor endfunction function! s:cmd(bang, ...) abort - let args = extend(['--expect=ctrl-t,ctrl-x,ctrl-v'], a:000) + let s:action = get(g:, 'fzf_action', s:default_action) + let args = extend(['--expect='.join(keys(s:action), ',')], a:000) let opts = {} if len(args) > 0 && isdirectory(expand(args[-1])) let opts.dir = remove(args, -1) |
