2

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

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

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

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

不起作用。

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

4

1 回答 1

4

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

: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
于 2010-03-25T16:34:46.420 回答