Dies ist der Inhalt von cmd.txt
:
:w 2.txt
:q
In der Kommandozeile mache ich
D:\>vim 1.txt<cmd.txt
Ich erwarte cmd.txt als Eingabestrom (anstatt meiner Tastatur) und vim speichert 1.txt als 2.txt und beendet dann.
Es funktioniert jedoch nicht. Vim sagt, die Eingabe stamme nicht von einem Terminal und friert ein.
Ich möchte Befehle aus einer externen Datei senden. Wie geht das?
Aktualisieren:
Ich möchte viele Muster ersetzen. Ich habe eine Datei mit Informationen zur NBA-Geschichte, in der der Name eines Teams auf die Stadt bezogen ist, und ich möchte ihn in den „Nachnamen“ ändern.
Ich habe irgendwie die Ersetzungsbefehle generiert (30 Regeln/Zeilen):
:%s/\v<Boston>/Celtics/g
:%s/\v<Brooklyn>/Nets/g
:%s/\v<New York>/Knicks/g
:%s/\v<Philadelphia>/76ers/g
:%s/\v<Toronto>/Raptors/g
:%s/\v<Golden St>/Warriors/g
:%s/\v<LA Clippers>/Clippers/g
:%s/\v<LA Lakers>/Lakers/g
:%s/\v<Phoenix>/Suns/g
:%s/\v<Sacramento>/Kings/g
:%s/\v<Chicago>/Bulls/g
:%s/\v<Cleveland>/Cavaliers/g
:%s/\v<Detroit>/Pistons/g
:%s/\v<Indiana>/Pacers/g
:%s/\v<Milwaukee>/Bucks/g
.....
Ich möchte die Datei in vim eingeben, um diese Befehle auszuführen. Ich möchte diese Befehle nicht manuell eingeben.
Ich kann die Regeln auf andere Weise generieren und in ein anderes Programm eingeben oder sogar ein einfaches Programm schreiben, um die Ersetzung vorzunehmen. Aber ich wäre dankbar, wenn dies in Vim, Powershell oder Total Commanders möglich wäre, die ich gerade lerne.
Antwort1
-s
Sie können dies mit der Befehlszeilenoption tun :
vim -s cmd.txt 1.txt
Der Kommentar von Teun Vink ist jedoch immer noch gültig. Was versuchst du eigentlich zu tun? Das klingt nach dem klassischenX->Y-Problem.
Antwort2
Ich weiß, dass dieser Beitrag alt ist, aber was @Gqqnbig verlangt, ist möglich.
Speichern Sie einfach die Liste der Befehle, die Sie häufig ausführen möchten, in einer Datei. Geben Sie ihr idealerweise die Erweiterung .vim, z. B. nbaEdits.vim
Geben Sie in der Datendatei, für die Sie die Befehle ausführen möchten, einfach diesen Befehl von der VIM-Befehlszeile aus ein (ich habe dies nur über Windows versucht):
:source c:\myVimCommands\nbaEdits.vim
**Das Obige setzt voraus, dass sich Ihre Befehlsdatei in einem Ordner unter c:\myVimCommands befindet.