Einen schönen guten Morgen :)
Ich habe ein Problem bei vim, bzw. bei einer Funktionserstellung in der
_vimrc.
ich habe eine Batch-file, welche make aufruft und vorher noch parameter
setzt.
Das aufrufen dieser Batchfile anfürsich funktioniert auch (und der code
wird auch gebaut und ich bekomme den Log in VIM selber und nicht in
einer externen Konsole)
Mein Problem ist, dass die Batchfile mit Parametern aufgerufen werden
muss (kann).
ich habe es immer versucht mit
aber der batch file wird dann a:1 selber übergeben. (Also nicht der
Parameter, sondern "a:1")
Ein weg wäre es für jede Möglichkeit ein if zu machen und je nach
Kombination dann set makeprg setzen. Das ergibt aber viele Kombinationen
(bis zu 3 Parameter können übergeben werden).
in vim rufe ich dann die Funktion wie folgt auf
1 | :call DoBuildBatchFile("MM")
|
Ist es nicht möglich, den Wert des Parameters direkt zu übergeben?
1 | function! DoBuildBatchFile(...)
|
2 | "save the current working directory so we can come back
|
3 | let l:starting_directory = getcwd()
|
4 |
|
5 | " build.bat
|
6 | cd Z:\WORK\Projekt
|
7 | echo a:1
|
8 | if("MM" == a:1)
|
9 | set makeprg=build\ MCM
|
10 | endif
|
11 | "let &makeprg='build.bat a:1'
|
12 | "set makeprg=build\ a:1
|
13 |
|
14 | " Make sure the output doesnt interfere with anything
|
15 | silent make
|
16 | " Open the output buffer
|
17 | copen
|
18 | echo 'Build Complete'
|
19 |
|
20 | "reset directory
|
21 | execute "cd " . l:starting_directory
|
22 | endfunction
|