Ich war überzeugt (drüben bei Stack Overflow), meine geliebte Bash im vi-Modus zu verwenden. Bisher habe ich mich ziemlich gut daran gewöhnt und es gefällt mir.
Allerdings vermisse ich wirklich eine Funktion: Im Emacs-Modus können Sie den letzten Parameter des vorherigen Befehls eingeben, indem Sie "ESC" drücken. (Das heißt, drücken Sie die Escape-Taste, gefolgt von der.)
Gibt es eine Standardbindung zum Einfügen des letzten Parameters im vi-Modus? Ich konnte keinen finden und ich vermisse diesen Befehl wirklich ...
bindkey "\e." insert-last-word
history-search-backwards
unschätzbarem Wert für ernsthafte Befehlszeilenbenutzer.Es gibt (vi-yank-arg), das standardmäßig "_" zugeordnet ist. Das sollte tun, was Sie wollen (im Befehlsmodus).
quelle
Nicht genau dasselbe, aber in beiden Modi können Sie etwas eingeben
!$
, und es wird durch das letzte Wort des vorherigen Befehls ersetzt. Weitere solche Dinge finden Sie im Handbuch .quelle
Die ~ / .inputrc- Datei kann die Tastenzuordnung konfigurieren (Sie können sie manuell generieren, wenn sie nicht gefunden werden kann). Fügen Sie den folgenden Befehl in ~ / .inputrc ein :
Meine ~ / .inputrc ist:
Sie können die Details finden Readline- und
bind -p
hier: http://linux.about.com/library/cmd/blcmdl3_readline.htmUnd ein paar Informationen zu Vi-Tastatureingaben in Bash und Readline VI-Bearbeitungsmodus-Spickzettel
quelle
Fügen Sie in Ihrem .bashrc Folgendes hinzu:
Dadurch wird das Standardverhalten von nicht nur ESC-Punkt wiederhergestellt, sondern auch von Strg-A, Strg-E, Strg-W und Strg-L. Sie können also den normalen Bash-Vi-Modus genießen und trotzdem die Verknüpfungen verwenden, die Sie kennen und lieben. Wenn Sie weitere Aktionen benötigen, überprüfen Sie einfach "man bash", um den Namen der Readline-Aktion zu ermitteln, die Sie benötigen (z. B. "Bildschirm leeren", "Zeilenende" usw.).
quelle
Mit können Sie
$_
auf das letzte Argument des vorherigen Befehls verweisen.Die Nachteile sind:
Sie können nicht bestätigen, bevor Sie die Eingabetaste drücken, dass das eingefügte Objekt das ist, das Sie einfügen möchten.
Wenn Sie PROMPT_COMMAND oder eine DEBUG-Falle (ich bin nicht sicher, was genau das Problem verursacht; ich habe beides in meinem .bashrc) verwenden, um ausgefallene Dinge wie das Einfügen des Befehls running in den xterm-Titel zu erledigen, wird dies zu Problemen führen
$_
.quelle