Передать переменную буфера Vim в качестве аргумента для внешней команды - PullRequest
2 голосов
/ 25 марта 2010

Проблема в том, что мне нужно передать пути включения в компилятор C ++. Я могу определить их для каждого буфера, например:

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

Но как мне развернуть b: COMPILER_OPTIONS в командной строке?

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

не работает.

Или, если это невозможно, какие еще способы существуют для этого?

1 Ответ

3 голосов
/ 25 марта 2010

Я не думаю, что вы можете сделать это напрямую, но вы можете определить пользовательскую команду:

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