Wie kann ich .inputrc anpassen, um mit Befehl-Löschen und Wahl-Löschen Zeilen und Wörter in iTerm 2 zu löschen?

Ich möchte ein wenig Konsistenz zwischen dem Bearbeiten von Text im Terminal und dem Bearbeiten von Text in normalen OS X-Programmen schaffen. Ich verwende iTerm2, aber ich kann mir vorstellen, dass jede Lösung die Verwendung von readline beinhalten würde und .inputrcwahrscheinlich in den meisten Terminals funktionieren würde.

Konkret dachte ich an Ergänzung:

  • Command- Delete: Bis zum Zeilenanfang vor dem Cursor löschen
  • Option- Delete: Wort vor dem Cursor löschen
  • Option- Left/Right Arrow: Cursor zwischen Wörtern bewegen
  • Command- Left/Right Arrow: Cursor zum Anfang/Ende der Zeile bewegen

Fragen

  • Wie könnte .inputrckonfiguriert werden, um diese Tastenkombinationen zu unterstützen?
  • Würde eine dieser Verknüpfungen Konflikte mit vorhandenen Terminal- oder Befehlszeilenverknüpfungen erzeugen?
  • Gibt es andere Tastenkombinationen, die nützlich wären, um Konsistenz mit den Standard-Textbearbeitungstasten von OS X herzustellen?

Als Randbemerkung ist mir bewusst, dass es Verknüpfungen im Stil von Vi und Emacs gibt, um diese Operationen auszuführen. Tatsächlich verwende ich in der Befehlszeile ziemlich häufig Shortcuts im Vi-Stil . Manchmal jedoch, wenn mein Geist den Modus nicht gewechselt hat, ist es störend. Daher wäre es schön, wenn das Terminal Verknüpfungen im Stil von OS X und Vim unterstützen könnte.

Antworten (2)

\eOH⌘← kann und ⌘→ zugewiesen werden \eOF. Sie könnten ⌥← \ebin Terminal zuweisen, aber es funktioniert nicht im vi-Modus oder nano.

Im Emacs-Modus können Sie dies auch zu .inputrc hinzufügen:

"\e[1;9D": backward-word
"\e[1;9C": forward-word
"\e[3~": kill-word

C-vzeigt die Escape-Sequenz für die nächste Tastenkombination. ^[ist ESC in Caret-Schreibweise. bind -pgibt aktuell gebundene Befehle aus.

Vorläufige Antwort; immer noch auf der Suche nach anderen Tastenkombinationen

Der folgende Beitrag erklärt, wie man Alt+links/rechts in Iterm2 konfiguriert. Interessanterweise erfordert es sowohl die Konfiguration .inputrcals auch die Anpassung von iTerm2.