問題是我需要將包含路徑傳遞給C++編譯器。 我可以定義他們爲每個緩衝區,如:將Vim緩衝區變量作爲外部命令的參數傳遞
:let b:COMPILER_OPTIONS='-ggdb -I"E:\boost_1_42_0\boost\"'
但是我怎麼擴大B:在命令行上COMPILER_OPTIONS?
:!g++ program.cpp eval('b:COMPILER_OPTIONS')
不起作用。或者,如果這是不可能的,還有什麼其他方式可以做到這一點?
問題是我需要將包含路徑傳遞給C++編譯器。 我可以定義他們爲每個緩衝區,如:將Vim緩衝區變量作爲外部命令的參數傳遞
: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
直接就是':exe'!g ++'b:COMPILER_OPTIONS'program.cpp'' – rampion 2010-03-26 18:24:14
就像一個魅力。謝謝! – Saddoveanu 2010-03-26 23:25:35
你想要當前文件的路徑嗎?如果是的話,我相信它就是'%' – hasen 2010-03-26 02:40:39