Pass Vim buffer variable as an argument for external command
The problem is that I need to pass include paths to the C++ compiler. I can define them for each buffer, like:
:let b:COMPILER_OPTI开发者_运维百科ONS='-ggdb -I"E:\boost_1_42_0\boost\"'
But how do I expand b:COMPILER_OPTIONS on the command line ?
:!g++ program.cpp eval('b:COMPILER_OPTIONS')
doesn't work.
Or, if this isn't possible, what other ways are there for doing this ?
I don't think you can do it directly, but you can define a custom command:
:command! -nargs=1 Gpp exe '!g++' b:COMPILER_OPTIONS '<args>'
if you want filename completion you can add the -complete
option:
:command! -nargs=1 -complete=file Gpp exe '!g++' b:COMPILER_OPTIONS '<args>'
usage:
:Gpp program.cpp
精彩评论