Problem mit Strg-Links / Rechts-Bindungen in oh-my-zsh

6

Aus irgendeinem Grund kann ich nach der Installation von oh-my-zsh auf meinem MacBook Pro nicht Strg-Links- und Strg-Rechtspfeil binden, um zwischen Wörtern in ZSH zu wechseln.

In iTerm2 habe ich meine Tastaturbelegungen auf "Escape-Sequenz senden" [1; 5D und [1; 5C konfiguriert, was vor der Installation von oh-my-zsh funktioniert hat.

Ich habe auch versucht, keine Kommentare abzugeben

bindkey '^[^[[C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word

in ~ / .oh-my-zsh / lib / key-bindings.zsh, auch ohne Erfolg. In beiden Szenarien werden durch Drücken von Strg-Links / Rechts nur "5D" und "5C" auf den Bildschirm gesendet.

TLDR: Hat jemand Strg-Links und Strg-Rechts, um zwischen Wörtern zu wechseln, wenn er oh-my-zsh verwendet?

Yalestar
quelle

Antworten:

6

Ändern Sie Ihre Bindkey-Zeilen in:

bindkey '^[[1;5C' emacs-forward-word
bindkey '^[[1;5D' emacs-backward-word
sblom
quelle
4

Dieser hat für mich gearbeitet:

bindkey "[C" emacs-forward-word   #control left
bindkey "[D" backward-word        #control right

Tatsächlich habe ich Control+ leftund Control+ rightzwischen "" gedrückt und das hat die Magie ausgelöst.

Kevin
quelle
4

Drücken Sie ^v(Ctrl-v)oder catin dem zsh shell, gefolgt von dem key-combinations(Ctrl+left)je nachdem , was Sie wollen , zu verwenden, um den entsprechenden bindkey Wert. Verwenden Sie diese Ausgabe im Befehl. Dies ist von System zu System unterschiedlich, je nach Terminaltreiber usw.

In meinem Fall Ctrl-leftwar ^[O5D. Daher,bindkey '^[O5D' backward-word

Wenn Sie einen Schritt weiter gehen möchten, finden Sie unter https://stackoverflow.com/a/8645267/2538943 die Idee, zsh-Tastenzuordnungen mithilfe des Befehls "cmd" zu verallgemeinern autoload zkbd ; zkbd. source ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE}Fügen Sie anschließend die folgende Zeile zu Ihrer .zshrc-Datei hinzu. Ab jetzt darfst du es gerne schreiben [[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char. Auf diese Weise können Sie dieselbe .zshrc-Datei auch auf andere Computer kopieren.

Zusätzliche Informationen: Peter Stephenson sagt, dass es ...the function keys on your keyboard... It depends a good deal on how your windowing system or terminal driver handles them... daher besser ist, alle diese Schlüsselbindungen zu überprüfen, bevor Sie ein solches Skript ausführen, obwohl es in den meisten Fällen möglicherweise nicht variiert.

Weitere Informationen zu den Tastenbelegungen für zsh finden Sie in diesem Handbuch. http://zsh.sourceforge.net/Guide/zshguide04.html .

Wenn Sie wissen möchten, wie eine gedrückte Taste angezeigt wird, https://unix.stackexchange.com/questions/116629/how-do-keyboard-input-and-text-output-work/116630#116630

Thirukka Karnan
quelle
0

So haben Sie Ihren Terminal - Emulator sendet eine CSI - Sequenz (ESC + [+ 1;5C) für den Schlüssel, aber Sie haben Ihre Shell mit dem gesagt bindkeyBefehl das Terminal Eingang für eine beobachten verschiedene CSI - Sequenz (ESC + ESC + [+ C), und Sie fragen sich, warum das geht nicht

Es funktioniert aus dem sehr offensichtlichen Grund nicht.

JdeBP
quelle