2010-03-25 7 views
2

Le problème est que j'ai besoin de transmettre des chemins d'accès au compilateur C++. Je peux les définir pour chaque tampon, comme:Transmettre la variable de tampon Vim en tant qu'argument pour la commande externe

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

Mais comment puis-je élargissons b: COMPILER_OPTIONS sur la ligne de commande?

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

ne fonctionne pas. Ou, si ce n'est pas possible, quelles sont les autres façons de le faire?

+0

Voulez-vous le chemin d'accès au fichier en cours? si oui, je crois que c'est '%' – hasen

Répondre

3

Je ne pense pas que vous pouvez le faire directement, mais vous pouvez définir une commande personnalisée:

:command! -nargs=1 Gpp exe '!g++' b:COMPILER_OPTIONS '<args>' 

si vous voulez la fin du nom de fichier que vous pouvez ajouter l'option -complete:

:command! -nargs=1 -complete=file Gpp exe '!g++' b:COMPILER_OPTIONS '<args>' 

utilisation :

:Gpp program.cpp 
+0

directement serait simplement ': exe '! g ++' b: COMPILER_OPTIONS 'program.cpp'' – rampion

+0

fonctionne comme un charme. Merci! – Saddoveanu