Wie ändere ich die vorherige / nächste Wortverknüpfung in Bash?

20

Wie konfiguriere ich Strg-Links und Strg-Rechts als Shortcuts für das vorherige / nächste Wort für Bash (derzeit Alt-B und Alt-F)?

ripper234
quelle
Ähm, klingelt diese Frage nicht ?
Gilles 'SO- hör auf böse zu sein'
@Gilles - Ich dachte, ich hätte vorher etwas Ähnliches gefragt, ja, sorry. Das Original als Dup geschlossen (weil es hier mehr gehört als bei Super User).
Ripper234

Antworten:

26

Die richtige Antwort hängt davon ab, welches Terminal Sie verwenden.

Geben Sie für Gnome Terminal oder neuere Versionen von xterm Folgendes in ~ / .inputrc ein:

"\e[1;5C": forward-word
"\e[1;5D": backward-word

Geben Sie für PuTTY Folgendes in Ihre ~ / .inputrc ein:

"\eOC": forward-word
"\eOD": backward-word

Fügen Sie dies für rxvt in Ihre ~ / .inputrc ein:

"\eOc": forward-word
"\eOd": backward-word

Sie können wahrscheinlich davonkommen, wenn Sie alle in ~ / .inputrc zusammenfassen.

In allen Fällen müssen Sie dies auch in Ihre ~ / .bashrc (oder ~ / .zshrc) einfügen:

export INPUTRC=~/.inputrc

Wenn das nicht funktioniert, oder Sie haben einen anderen Terminal, gehen Sie zu Ihrem Terminal und geben Sie Ctrl+ V Ctrl+ ->. Dann verwenden Sie das anstelle von "\e[1;5C"oder "\eOC"über. Wiederholen Sie dies für Ctrl+ <-.

Beachten Sie, dass Sie die Tastatur-Escape-Sequenzen mit der inputrc-Syntax schreiben müssen , z

  • \C bedeutet Kontrolle
  • \ebedeutet Escape (was so aussieht, als würde ^[man es mit Strg + V oben eingeben)
Mikel
quelle
Strg + V, Strg -> gibt "^ [[1; 5C" aus, und ich verwende das Gnome-Terminal.
Ripper234
2
Also versuch es "\e[1;5C": forward-word. Und das Ctrl+ VDing auch für Ctrl+ machen Left Arrow.
Mikel
Danke, funktioniert wie ein Zauber. Langsam aber sicher werde ich lernen, wie man unter Linux schwimmt. Warum mussten sie es überhaupt so unintuitiv machen? (Sie müssen zugeben, Strg-links, Strg-rechts sind die bessere Wahl)
Ripper234
1
Wenn Sie der Meinung sind, dass Linux anfangs nicht intuitiv ist, versuchen Sie eine Standardinstallation von FreeBSD oder sogar Solaris. Bash als Starthülle zu haben, ist ein Traum. Da Tastaturen nicht immer über Pfeiltasten verfügten, unterstützen Emacs und damit Bash auch Verknüpfungen. Versuchen Sie es mit Strg-B und Strg-F für eine Weile.
Pinguin359
2
Das Schöne an UNIX / Linux-Systemen ist, dass sich die Einstellungen leicht ändern lassen. Sobald Sie Ihre Lieblingsprogramme so konfiguriert haben, wie Sie sie mögen, kopieren Sie sie einfach herum. Ich verwende die Versionskontrolle für meine Ausgangsverzeichnisdateien wie .inputrc, .bashrc, .vimrc und so weiter. Ich verwende mercurial, um alle meine Heimverzeichniseinstellungen zwischen Computern zu klonen und auf dem neuesten Stand zu halten. Ich plane auch, irgendwann mein Repo zu veröffentlichen, damit andere meine harte Arbeit teilen können.
Pinguin359
3

Wenn Sie ZSH verwenden, müssen Sie eine andere Methode anwenden, da Sie die relevanten Teile aus dem ZSH-Handbuch von ArchLinux zitieren :

Zsh verwendet keine readline # like bash #, sondern eine eigene und leistungsfähigere zle.

/ Etc / inputrc oder ~ / .inputrc werden nicht gelesen.

Nachdem ich diesen Leitfaden gelesen hatte, stellte ich fest, dass ich eine modren-Quelle von ZSH benötige, um eine allgemeine Vorstellung davon zu bekommen, wie dies gemacht werden soll, und so fand ich diese oh-my-zsh-Datei, die das von mir gewünschte Verhalten beschreibt. Ich habe die relevanten Teile kopiert wollte in meine ~ / .zshrc:

bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top : 
# setopt interactive_comments
Mirandalol
quelle
Ich habe versucht, STRG + RECHTSPFEIL zu drücken, aber auf dem Mac ist es kein Wort
wert