2016-07-10 40 views
0

Ich möchte ein Mapping hinzufügen, das die Ausgabe eines Shell-Befehls in einem neuen Fenster visualisiert. das Problem ist der Befehl wird unterbrochen, wenn Sie den Cursor an den Anfang der Datei bewegen.vim - Ausführen - Shell-Befehl?

:execute ":new \| set nonu \| 0r ! ls \| normal! gg" 

ich herausgefunden, dass das Problem mit dem Befehl auszuführen ist, der das Teil aus dem Symbol ! an den Rest davon als Shell-Befehl hält (ls | normal! gg) und deshalb ist es einen Fehler zeigt, wenn sie ausgeführt wird, .

Wie kann das verhindert werden?

Antwort

2

Wenn ein Befehl <bar> nicht akzeptiert, um den Befehl zu trennen. Der normale Weg, um dies zu beheben, ist das Umbrechen des Befehls in eine Ausführung, die außer den Strichen

enthält
0

Ich bin nicht sicher, dass Sie das mit :execute abziehen können. Sie können jedoch Clam (z. B. :Clam ls) als Basis verwenden und plugin/clam.vim bearbeiten, um nach Ausführung des Shell-Befehls eine gg auszulösen.