Was machen% und! meine in Vim-Befehlen?

9

In Vim,

 :%!ls 

führt den lsBefehl aus und druckt seine Ausgabe in die aktuell bearbeitbare Datei.

Aber was bedeutet %und !bedeutet separat in vim?

Ist es möglich, lsdie Ausgabe auszuführen und nicht zu dokumentieren?

vico
quelle

Antworten:

9

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
muru
quelle
4

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

Mitch
quelle
2

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_%*
Kevin
quelle