问题是我需要将包含路径传递给 C++ 编译器。 我可以为每个缓冲区定义它们,例如:
:let b:COMPILER_OPTIONS='-ggdb -I"E:\boost_1_42_0\boost\"'
但是如何在命令行上扩展 b:COMPILER_OPTIONS ?
:!g++ program.cpp eval('b:COMPILER_OPTIONS')
不起作用。
或者,如果这不可能,还有什么其他方法可以做到这一点?
最佳答案
我认为你不能直接做到这一点,但你可以定义一个自定义命令:
: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
关于vim - 将 Vim 缓冲区变量作为外部命令的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515662/