Como posso fazer com que as teclas ctrl + esquerda / direita se movam pela palavra inteira no tmux?

100

No zsh e no bash, as setas ctrl + permitem que eu mova a posição em que estou digitando por palavra inteira, mas isso não funciona no tmux, o que é um problema, pois estou iniciando-o automaticamente sempre que abro um shell .

Como posso consertar isso?

Llamageddon
fonte

Respostas:

130
  1. Edite suas ~/.tmux.conflinhas e adicione:

    set-window-option -g xterm-keys on
    
  2. Se você não deseja torná-lo permanente ainda, faça:

    C-b :set-window-option xterm-keys on
    
  3. Recarregue sua configuração no tmux fazendo:

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

Mais informações aqui :

sgzmd
fonte
2
Estranho: Isso funciona para mim apenas se eu recarregar o arquivo ~ / .tmux.conf do tmux ou definir a ação no: -prompt do tmux, não inicialmente quando eu abrir o tmux. Alguma idéia de qual pode ser o problema lá?
AME
@AME feche todas as sessões do tmux e tente novamente.
Nathan
Se recarregar a configuração não resolver o problema (este é o meu caso), tente uma nova sessão. Talvez você precise matar a sessão atual e criar uma nova. Outra opção para torná-lo entrar em vigor em um painel (não uma sessão) é Cb:-painel de respawn -k
fstang
Isso funcionou para mim, principalmente. Gostaria de saber por que não está ativado por padrão?
Inetknght
Matar a sessão ou o que set-window-option -g xterm-keys onainda não faz nada no meu caso.
Noraj
8
set-window-option -g xterm-keys on

Me levou até lá e me deu Ctrl- Left/Rightno console, mas ele ainda estava respondendo de maneira diferente no vim.

Desvendar as chaves não pareceu ajudar.

Descobriu-se que em algum momento eu tinha o meu terminal padrão para a tela ( set-option -g default-terminal "screen"em .tmux.conf)

Alterar isso para o seguinte me deu Ctrl- Left/Rightem todo o resto:

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

Espero que ajude alguém.

Kieran Moore
fonte
1
Exceto isso quebra cores no vim, tig, e presumivelmente um todo monte de outras coisas ...
koniiiik
1
ver também unix.stackexchange.com/a/1098/250 um conselho contra a fixação de prazo, como que em tmux
phunehehe
3

Para msys2 / Cygwin / mintty:

Adicione abaixo a ~/.inputrc.

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

Recarregar faria o tmux funcionar corretamente.

Mithril
fonte
2

Não tenho certeza, mas isso pode ser porque, tmuxpor padrão, é vinculado C-<up/down/left/right>para mudar o foco para o painel acima / abaixo / esquerda / direita do painel atualmente focado. Se você não usa painéis com frequência, talvez não tenha percebido esse recurso. Se é esse o problema, você pode desvincular essas chaves dizendo:

unbind C-Left
unbind C-Right

Isso pode ser suficiente por si só , ou você pode precisar vinculá-los manualmente novamente ao que deseja que eles façam, via:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>
jake-low
fonte
1
Deve ser suficiente por si só, se não for agarrado pelo tmux, deve passar para o shell.
Rob
0

Para mim, as chaves não estavam sendo vinculadas corretamente, porque as preferências do sistema em High Sierra foram definidas para serem usadas pelo Controle da Missão. Desmarcar essas opções permitiu que as ligações corretas funcionassem no iTerm2 e no Tmux

Preferências do Sistema

Desmarcar todos os itens que referenciam a chave de controle permitiu que as ligações funcionassem corretamente

Andrew
fonte