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

标签 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')

不起作用。

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

最佳答案

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

: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/

相关文章:

c++ - boost/property_tree/xml_parser.hpp : No such file or directory

vim - 如何更改 Vim(直线)下划线的颜色?

vim - 为什么 vim 在选项卡的位置画下划线以及如何避免这种情况?

c++ - 如何使用带路径的包含文件在 Visual Studio 中构建?

c++ -/usr/include 不能作为 xcode 中的搜索路径?

cmake - 使用环境变量设置 `include_directories`

c++ - <> 中包含的文件找不到 ""中包含的文件

c - 在#include 语句中将反斜杠替换为正斜杠

vim - 如何修改 last-position-jump vimscript 以不为 git commit 消息执行此操作

Vim mksession 将变量作为文字