Wenn ich in der Bash im vi-Modus drücke Esc, vwird meine aktuelle Befehlszeile in dem von angegebenen Editor geöffnet $EDITOR
und ich kann sie im Vollbildmodus bearbeiten, bevor ich den Befehl 'speichere', um ihn an die Shell zurückzugeben und auszuführen.
Wie kann ich ein ähnliches Verhalten in zsh erreichen? Schlagen vim Befehlsmodus führt zu einer Glocke hat eine keine offensichtliche Wirkung, trotz der EDITOR
Umgebungsvariable eingestellt wird .
edit-command-line
„Widget“ zu aktivieren, benötigen Sie etwasautoload edit-command-line; zle -N edit-command-line
in einer Ihrer zsh init-Dateien (siehe Abschnitt ZLE-Funktionen in derzshcontrib
Dokumentation ).bindkey -M vicmd v
ist.<ESC>
, um vom Einfügemodus in den Befehlsmodus und anschließendv
in den visuellen Modus zu wechseln (Meta-v
ist identisch), oder nur,v
wenn Sie sich bereits im Befehlsmodus befinden. Wenn Sie den Emacs-Modus verwenden, lautet die typische BindungC-x C-e
.bindkey -M vicmd ' ' edit-command-line
Wenn Sie Emacs-Tastenkombinationen bevorzugen:
quelle
^x^e
Bindung scheint bei der aktuellen Version von .oh-my-zsh eine Standardeinstellung zu sein , was äußerst hilfreich ist.editor
Modul geladen ist.Mit können Sie
fc
den letzten Befehl im Verlauf bearbeiten. Es ist nicht dasselbe wie das Bearbeiten desselben Befehls, aber ein schneller Druck auf die Eingabetaste macht Ihren aktuellen Befehl zum letzten Befehl im Verlauf.quelle
Dies ist die vollständige Konfiguration, die ich zu meinem hinzugefügt habe
~/.zshrc
, um das gleiche Verhalten von Bash zu erhalten:quelle
editor
voraus, dass das Modul geladen und /vi
odervim
für den Befehlsmodus ausgewählt ist.