Ich benutze zsh und emacs keybindings. Irgendwann muss ich denselben Befehl mit verschiedenen Eingaben ausführen. Die Eingaben haben üblicherweise gemeinsame Teilstrings. Gibt es eine einfache Möglichkeit, Teile des vorherigen Befehls durch eine andere Zeichenfolge zu ersetzen? Zum Beispiel ist der vorherige Befehl:
%Vor%Wie könnte ich einfach "chr2" durch "chr3" ersetzen?
Eine Erweiterung der Frage, wie man mehrere verschiedene Teilstrings im Befehl durch andere ersetzen kann:
%Vor%Wie kann man beispielsweise "chr1" mit "chrX", "chr2" mit "chrY", "chr3" mit "chrZ" ersetzen?
Danke.
Sie können auch die schnelle Verlaufsersetzung mit ^old^new
(viel schneller als !!:s^old^new^
)
Dies ändert nur das erste Auftreten. Wenn Sie mehr benötigen, verwenden Sie einen der Änderungsmodifikatoren. Beispiel: globale Änderungen:
%Vor% PS: Durchsuchen Sie das zshexpn
Handbuch nach ^foo^bar
, um den Abschnitt zu finden, der dies beschreibt. Scrollen Sie ein wenig nach unten (in der Anleitung), und Sie sehen die Liste der 'History Expansion Modifiers'.
PS: Für eine Mehrfachsubstitution: ^old1^new1^:s^old2^new2^
etc
Um zu erreichen, wonach Sie direkt gefragt haben:
%Vor% Dies ändert den zuletzt eingegebenen Befehl. Um eine globale Ersetzung durchzuführen, verwenden Sie :gs/a/b/
.
Beispiel:
%Vor% Lesen Sie mehr in man zshexpn
- ZSH Expansion und Substitution.
Tags und Links command-line linux zsh