summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2015-04-15 22:49:45 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2015-04-15 22:49:45 +0900
commit853012ceef7c8e8e28e6cbb6c790f76956a62b03 (patch)
treeb79651d7573453902decbe7fb35519e64f1b4a0b /plugin
parent2add45fe2f0b0860eba007948c1cfe734c56192c (diff)
downloadfzf-853012ceef7c8e8e28e6cbb6c790f76956a62b03.tar.gz
[vim] Add g:fzf_action for customizing key bindings
Close #189
Diffstat (limited to 'plugin')
-rw-r--r--plugin/fzf.vim15
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)