Zuordnen eines Befehls, der nicht mit dem Schreiben eines Befehls im vim-Terminal identisch ist

0

Ich versuche, ein Mapping in meinem vimrc zu verwenden, um einen Befehl auszuführen. Der Befehl funktioniert, wenn ich ihn direkt in das VIM-Terminal eingebe, aber wenn ich denselben Befehl verwende, wird er nach dem ersten Leerzeichen nicht mehr eingegeben. Der genaue Befehl lautet:

:map <f8> :new | 0read !javac %<CR>

Wenn ich den Befehl manuell in vim eingebe, ist die Ausgabe des Compilers genau das, was ich will. Wenn ich jedoch F8 drücke, tippe ich nur :newund tippe nichts anderes. Ich denke, das Problem ist die Verwendung der Leerzeichen im Befehl. Ich habe versucht, Anführungszeichen und Escape-Zeichen zu verwenden, aber diese haben es nicht behoben. Wie kann ich mein vimrc ändern, damit dieser Befehl ordnungsgemäß funktioniert?

mildlyAverage
quelle

Antworten:

1

Sie müssen <bar>anstelle des Pipe-Symbols Folgendes verwenden:

:map <f8> :new<bar>0read !javac %<CR>
Glenn Jackman
quelle