From 0b43f988c7ffd587835875bf12e8d312ab52d002 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sun, 15 Jun 2014 03:04:15 +0900 Subject: [vim] Enable fzf in GVim using xterm --- plugin/fzf.vim | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'plugin/fzf.vim') diff --git a/plugin/fzf.vim b/plugin/fzf.vim index 0020b0bc..bf0e2b93 100644 --- a/plugin/fzf.vim +++ b/plugin/fzf.vim @@ -24,6 +24,7 @@ let s:min_tmux_width = 10 let s:min_tmux_height = 3 let s:default_tmux_height = '40%' +let s:gui_supported = executable('bash') && executable('xterm') let s:cpo_save = &cpo set cpo&vim @@ -42,6 +43,10 @@ else endif function! s:tmux_enabled() + if has('gui_running') + return 0 + endif + if exists('s:tmux') return s:tmux endif @@ -63,11 +68,12 @@ function! s:escape(path) endfunction function! fzf#run(...) abort - if has('gui_running') + if has('gui_running') && !s:gui_supported echohl Error - echo 'GVim is not supported' + echo 'bash and xterm required to run fzf in GVim' return [] endif + let dict = exists('a:1') ? a:1 : {} let temps = { 'result': tempname() } let optstr = get(dict, 'options', '') @@ -118,7 +124,11 @@ endfunction function! s:execute(dict, command, temps) call s:pushd(a:dict) silent !clear - execute 'silent !'.a:command + if has('gui_running') + execute "silent !xterm -e bash -ic '".substitute(a:command, "'", "'\"'\"'", 'g')."'" + else + execute 'silent !'.a:command + endif redraw! if v:shell_error return [] -- cgit v1.2.3