Wie kann ich in tmux die Tastenkombination Strg + Links / Rechts verwenden, um sich um ein ganzes Wort zu bewegen?

100

Sowohl in zsh als auch in bash kann ich mit Strg + Pfeiltasten die Position, an der ich tippe, um ein ganzes Wort verschieben. Dies funktioniert jedoch nicht in tmux. Dies ist ein Problem, da ich es derzeit jedes Mal automatisch starte, wenn ich eine Shell öffne .

Wie kann ich das beheben?

Llamageddon
quelle

Antworten:

130
  1. Bearbeiten Sie Ihre ~/.tmux.confund fügen Sie Zeilen hinzu:

    set-window-option -g xterm-keys on
    
  2. Wenn Sie es noch nicht dauerhaft machen möchten, tun Sie Folgendes:

    C-b :set-window-option xterm-keys on
    
  3. Lade deine Konfiguration in tmux neu, indem du folgendes machst:

    C-b :source-file ~/.tmux.conf
    

Weitere Informationen hier :

sgzmd
quelle
2
Seltsam: Dies funktioniert nur bei mir, wenn ich die ~ / .tmux.conf-Datei von tmux neu lade oder die Aktion im: -prompt von tmux einstelle, nicht anfangs, wenn ich tmux öffne. Irgendwelche Ideen, was könnte das Problem dort sein?
AME
@AME schließe alle tmux Sessions und versuche es erneut.
Nathan
Wenn das Problem durch erneutes Laden der Konfiguration nicht behoben werden kann (dies ist bei mir der Fall), versuchen Sie es mit einer neuen Sitzung. Möglicherweise müssen Sie die aktuelle Sitzung beenden und eine neue erstellen. Eine andere Option, um es in einem Bereich (nicht in einer Sitzung) wirksam werden zu lassen, ist Cb: respawn-pane -k
fstang
Meistens hat das bei mir geklappt. Ich frage mich, warum es nicht standardmäßig aktiviert ist.
Inetknght
Die Sitzung beenden oder was auch set-window-option -g xterm-keys onimmer tut nichts in meinem Fall.
Noraj
8
set-window-option -g xterm-keys on

Brachte mich ein Stück dahin und gab mir Ctrl- Left/Rightauf der Konsole, aber es reagierte immer noch anders in vim.

Das Entbinden der Schlüssel schien nicht zu helfen.

Es stellte sich heraus, dass ich irgendwann mein Standardterminal auf screen ( set-option -g default-terminal "screen"in .tmux.conf) eingestellt hatte.

Das Folgende zu ändern gab mir Ctrl- Left/Rightin allem anderen:

set-option -g default-terminal "xterm-256color"

Hoffe das hilft jemandem.

Kieran Moore
quelle
1
Mit der Ausnahme, dass dies die Farben in Vim, Tig und vermutlich einer ganzen Reihe anderer
Dinge zerstört
1
Siehe auch unix.stackexchange.com/a/1098/250 für einen Rat, wie man TERM in tmux
phunehehe
3

Für msys2 / Cygwin / mintty:

Fügen Sie unten zu ~/.inputrc.

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Reload würde dazu führen, dass tmux korrekt funktioniert.

Mithril
quelle
2

Ich bin nicht sicher, aber dies könnte daran liegen, dass tmuxstandardmäßig C-<up/down/left/right>der Fokus auf den Bereich über / unter / links / rechts des aktuell fokussierten Bereichs verschoben wird. Wenn Sie Fenster nicht häufig verwenden, ist Ihnen diese Funktion möglicherweise nicht aufgefallen. Wenn dies das Problem ist, können Sie diese Schlüssel lösen, indem Sie sagen:

unbind C-Left
unbind C-Right

Das reicht möglicherweise aus , oder Sie müssen sie manuell erneut an das binden, was sie tun sollen.

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>
jake-low
quelle
1
Es sollte alleine ausreichen, wenn es nicht von tmux gepackt wird, sollte es auf die Shell übertragen werden.
Rob
0

Für mich wurden die Schlüssel nicht richtig gebunden, da die Systemeinstellungen in High Sierra so eingestellt waren, dass sie von Mission Control verwendet wurden. Wenn Sie dieses Kontrollkästchen deaktivieren, können die richtigen Bindungen in iTerm2 und Tmux verwendet werden

Systemeinstellungen

Durch Deaktivieren aller Elemente, die auf den Steuerschlüssel verweisen, funktionierten die Bindungen ordnungsgemäß

Andrew
quelle