将Vim缓冲区变量作为外部命令的参数传递

时间:2010-03-25 13:03:00

标签: vim include-path

问题是我需要将包含路径传递给C ++编译器。 我可以为每个缓冲区定义它们,例如:

:let b:COMPILER_OPTIONS='-ggdb -I"E:\boost_1_42_0\boost\"'

但是如何在命令行上展开b:COMPILER_OPTIONS?

:!g++ program.cpp eval('b:COMPILER_OPTIONS')

不起作用。

或者,如果不可能,还有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:3)

我认为你不能直接这样做,但你可以定义一个自定义命令:

:command! -nargs=1 Gpp exe '!g++' b:COMPILER_OPTIONS '<args>'

如果您想要完成文件名,可以添加-complete选项:

:command! -nargs=1 -complete=file Gpp exe '!g++' b:COMPILER_OPTIONS '<args>'

用法:

:Gpp program.cpp