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


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)

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

Ich habe versucht, STRG + RECHTSPFEIL zu drücken, aber auf dem Mac ist es kein Wort
wert
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.