In Vim,
:%!ls
führt den ls
Befehl aus und druckt seine Ausgabe in die aktuell bearbeitbare Datei.
Aber was bedeutet %
und !
bedeutet separat in vim
?
Ist es möglich, ls
die Ausgabe auszuführen und nicht zu dokumentieren?
Führen Sie in Vim :h :!
und aus:h :%
erfahren Sie, was jeder tut.
Jetzt wird das :%
verwendet, um den Inhalt der Datei durch die Ausgabe des Shell-Befehls zu ersetzen, der mit ausgeführt wird :!
. Wenn Sie den Inhalt der Datei nicht berühren möchten, verwenden Sie nicht %
. Mach einfach:
:!ls
Laut VIM Tutorial :
%.
Move cursor to the matching bracket.
Place cursor on {}[]() and type "%".
!
filter through external command
Any UNIX command can be executed from the vi command line by typing an "!" before the UNIX command.
Autowrite can be intentionally avoided by using "!" to avoid the save when switching files.
Weitere Informationen finden Sie im Vim Commands Cheat Sheet und im VIM Tutorial
Ich hatte dieselbe Frage und fand sie in :h cmdline-special
, was die Bedeutung war, nach der ich suchte:
% Is replaced with the current file name. *:_%* *c_%*