
Untitled
By: a guest on
May 1st, 2012 | syntax:
None | size: 1.03 KB | hits: 13 | expires: Never
How to use vim variables in an external filter command in visual mode?
" set b:perltidy_options based on dirname of the currently edited file
function! SetProjectVars()
if match(expand("%:p:h"), "/project-foo/") >= 0
let b:perltidy_options = "--profile=$HOME/.perltidyrc-foo --quiet"
elseif match(expand("%:p:h"), "/project-bar/") >= 0
let b:perltidy_options = "--profile=$HOME/.perltidyrc-bar --quiet"
else
let b:perltidy_options = "--quiet"
endif
endfunction
" first set the project specific stuff
autocmd BufRead,BufNewFile * call SetProjectVars()
" then use it
vnoremap ,t :execute "!perltidy " . b:perltidy_options<Enter>
:'<,'>execute "!perltidy " . b:perltidy_options
:execute "'<,'>!perltidy " . b:perltidy_options
vnoremap ,t :<C->e'execute '.string(getcmdline()).'."!perltidy " . b:perltidy_options'<CR><CR>
vnoremap ,t :!perltidy <C-r>=b:perltidy_options<CR><CR>
vnoremap ,t :execute "!perltidy " . b:perltidy_options<Enter>
vnoremap ,t :<C-u>execute "!perltidy " . b:perltidy_options<CR>