Ich habe erst kürzlich von Bash zu Zsh gewechselt, aber ich vermisse mein Alt+ LeftArrowKeyund Alt+ RightArrowKey, um ein Wort nach dem anderen hin und her zu gehen.
Wenn ich jetzt Alt+ drücke, LeftArrowKeygehe ich ein paar Buchstaben zurück und stecke dann fest. Ich werde nicht weiter rückwärts gehen und es wird nicht mit Alt+ RightArrowKeyzum Ende der Zeile zurückkehren, wie ich es erwarten würde. Ich kann nicht einmal die Pfeiltasten verwenden, um zum Ende der Zeile zu gelangen, nur zum vorletzten. Es können auch keine neuen Zeichen in die Zeile eingegeben oder gelöscht werden.
Wie bekomme ich meine geliebte Verknüpfung zurück?
Ich bin unter Mac OS X und benutze Terminal, wenn das wichtig ist.
^[[D
für mich berichtet hat, während Strg + V berichtet hat^[OD
. Der Vorschlag von Strg + V hat funktioniert, der von Katze jedoch nicht. Darüber hinaus meldete Strg + V für Alt + <- und Alt + -> dasselbe. Ich konnte diese beiden hinzufügen, indem ich mir die Ausgabe der Katze ansah und jedes "[[" durch "O" ersetzte^[^[[C
für Vorwärtswort und^[^[[D
für Rückwärtswort, aber das Aktualisieren für diese in .zshrc hat aus irgendeinem Grund nicht funktioniert.bindkey "^[^[[D" backward-word
undbindkey "^[^[[C" forward-word
in ~ / .zprofile hat bei mir funktioniert!Für alle, die iTerm verwenden, unabhängig von der Shell
Alle hier angebotenen Lösungen gehen meiner Meinung nach rückwärts. Sie weisen Ihre Shell im Wesentlichen an, auf eine Esc-Sequenz oder eine andere Schlüsselbindung zu warten, die Sie in Ihrem Terminal festgelegt haben, was zu Kompatibilitätsproblemen führt, wenn Sie Shells wechseln (Wenn Sie SSH in eine andere Shell wechseln, wechseln Sie von BASH zu ZSH usw., und Sie verlieren einige, wenn nicht alle Ihrer Tastenkombinationen).
Die meisten Shells haben eine Reihe von Standardsequenzen, die vorgebunden sind. Obwohl sie nicht 100% konsistent sind, sind sie nah genug. Der einfachste Weg, um eine Schlüsselbindung für eine bestimmte Aktion in der Shell zu erstellen, besteht darin, Ihre Terminalanwendung anzuweisen, sich an die Standard-Tastenkombinationen zu binden, die über alle Shells hinweg konsistent sind.
Ich schrieb eine Drucklösung für Ihren Terminal reagiert so nah an nativen Mac keybindings bekommen hier
Öffnen Sie die iTerm-Einstellungen ⌘+ ,und navigieren Sie zur
Profiles
Registerkarte (dieKeys
Registerkarte kann verwendet werden, aber durch Hinzufügen einer Tastenkombination zu Ihrem Profil können Sie Ihr Profil speichern und mit mehreren Computern synchronisieren) und zurkeys
Unterregisterkarte und geben Sie Folgendes ein:Bewegen Sie den Cursor ein Wort nach links
Bewegen Sie den Cursor ein Wort nach rechts
Und das sollte Ihnen das gewünschte Verhalten nicht nur in ZSH geben, sondern auch, wenn Sie SSH auf einem Server ausführen, auf dem BASH, irb / pry, node usw. ausgeführt werden.
quelle
bindkey | grep forward-word
sollte"^[f" forward-word
angezeigt werden, aber wenn Sie dies nicht tun, haben Sie zwei Möglichkeiten. Karte zu einem der anderen zurückgegebenen oder"^[f" forward-word
zu Ihrem hinzufügen.zshrc
."^[f"
dies die am häufigsten verwendete Bindung für dieforward-word
Verwendung über Shells hinweg zu sein scheint und die einzige, die standardmäßig in meiner Bash-Version festgelegt wurde.Das Hinzufügen von Folgendem zu ~ / .zshrc funktionierte für mich unter OSX Mountain Lion.
quelle
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
Unter MacOS High Siera 10.13.6 oder Mojave 10.14.2 und unter Verwendung von iTerm2 mit ZSH Um mich von Wörtern zu entfernen, muss ich Folgendes sagen:
Eine andere Lösung funktioniert nicht
quelle
Obwohl nicht unbedingt Ihre Frage zu beantworten, verbindlich die Standardeinstellung für
forward-word
undbackward-word
istalt-f
resp.alt-b
.Dies funktioniert überall, erfordert nicht, dass Sie die Ausgangsreihe verlassen, und hat eine schöne mnemonische Eigenschaft (f = vorwärts, b = zurück), ist aber auch konsistent mit
ctrl-f
undctrl-b
seinforward-character
undbackward-character
.Zerreiße deine Pfeiltasten!
quelle
Damit es für mich funktioniert, habe ich diese Antwort verwendet , musste jedoch die Codes austauschen (links <-> rechts)
⌥ + ← Hex-Codes senden: 0x1b 0x66
⌥ + → Hex-Codes senden: 0x1b 0x62
und füge folgendes zu meinem hinzu
~/.zshrc
quelle
Auf Mavericks (10.9.4) ist der Code 1; 5 ... zum Binden von Alt mit Pfeilen habe ich meine .zshrc mit folgendem:
Sie können STRG + V und dann den Befehl verwenden, den Sie verwenden möchten
Verwenden Sie in Yosemite Robs Lösung
quelle
bindkey "[C" forward-word bindkey "[D" backward-word
In zsh können Sie mit dem
bindkey
Befehl Tastaturkürzel anzeigen.Verwenden Sie
bindkey
diese Option, um Optionen zu untersuchen, die ohne benutzerdefinierte Tastenkombinationen verfügbar sind.Nämlich
^[b
zu bewegen , um ein Wort nach hinten und^[f
ein Wort vorwärts zu.quelle