Come posso fare ctrl + tasti sinistra / destra per spostarmi di intere parole in tmux?


100

Sia in zsh che in bash, ctrl + frecce mi permette di spostare la posizione in cui sto digitando con la parola intera, ma questo non funziona in tmux, il che è un problema in quanto lo sto lanciando automaticamente ogni volta che apro una shell .

Come posso risolvere questo problema?

Risposte:


130
  1. Modifica le tue ~/.tmux.confe aggiungi linee:

    set-window-option -g xterm-keys on
    
  2. Se non vuoi renderlo permanente ancora, fai:

    C-b :set-window-option xterm-keys on
    
  3. Ricarica la tua configurazione in tmux facendo:

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

Maggiori informazioni qui :


2
Strano: Questo funziona per me solo se ricarico il file ~ / .tmux.conf da tmux o imposto l'azione nel: -prompt di tmux, non inizialmente quando apro tmux. Qualche idea su quale potrebbe essere il problema?
AME,

@AME chiudi tutte le sessioni di tmux quindi riprova.
Nathan,

Se ricaricare config non risolve il problema (questo è il caso per me), provare una nuova sessione. Forse devi interrompere la sessione corrente e crearne una nuova. Un'altra opzione per renderlo
attivo

Questo ha funzionato per me, principalmente. Mi chiedo perché non sia attivo di default?
inetknght,

Uccidere la sessione o qualunque set-window-option -g xterm-keys oncosa non faccia ancora nulla nel mio caso.
noraj,

8
set-window-option -g xterm-keys on

Mi ha dato un po 'di strada lì e mi ha dato Ctrl- Left/Rightsulla console, ma stava ancora rispondendo diversamente in vim.

La non associazione dei tasti non sembra essere d'aiuto.

Si è scoperto che a un certo punto avevo impostato il mio terminale predefinito su schermo ( set-option -g default-terminal "screen"in .tmux.conf)

Modificarlo come segue mi ha dato Ctrl- Left/Rightin tutto il resto:

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

Spero che aiuti qualcuno.


1
Tranne questo rompe i colori in vim, tig e presumibilmente un sacco di altre cose ...
koniiiik

1
vedere anche unix.stackexchange.com/a/1098/250 per un consiglio contro l'impostazione TERM come quella in tmux
phunehehe,

3

Per msys2 / Cygwin / mintty:

Aggiungi sotto a ~/.inputrc.

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

Ricarica farebbe funzionare correttamente tmux.


2

Non sono sicuro, ma ciò potrebbe essere dovuto tmuxal fatto che, per impostazione predefinita, si associa C-<up/down/left/right>per spostare lo stato attivo sul riquadro sopra / sotto / a sinistra / a destra del riquadro attualmente attivo. Se non utilizzi spesso i riquadri, potresti non aver notato questa funzione. Se questo è il problema, puoi sciogliere quelle chiavi dicendo:

unbind C-Left
unbind C-Right

Potrebbe bastare da solo o potresti doverli rilegare manualmente a quello che vuoi che facciano, tramite:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>

1
Dovrebbe essere abbastanza da solo, se non è afferrato da TMM, dovrebbe passare sulla shell.
Rob,

0

Per me, le chiavi non venivano associate correttamente, perché le preferenze di sistema in High Sierra erano impostate per essere utilizzate da Mission Control. Deselezionandoli, è stato possibile far funzionare i binding corretti in iTerm2 e Tmux

Preferenze di Sistema

Deselezionando tutti gli elementi che fanno riferimento al tasto di controllo, le associazioni funzionavano correttamente

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.