Questão Como posso fazer ctrl + teclas esquerda / direita para mover por palavra inteira no tmux?


Tanto no zsh quanto no bash, o ctrl + arrows me permite mover a posição na qual estou digitando por palavra inteira, mas isso não funciona no tmux, o que é um problema já que eu estou lançando automaticamente toda vez que eu abro um shell .

Como posso consertar isso?


91


origem




Respostas:


  1. Edite seu ~/.tmux.conf e adicione linhas:

    set-window-option -g xterm-keys on
    
  2. Se você ainda não quiser torná-lo permanente, 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:


117



Estranho: Isso só funciona para mim se eu recarregar o arquivo ~ / .tmux.conf do tmux ou configurar a ação no: -prompt do tmux, não inicialmente quando eu abro o tmux. Alguma idéia de qual poderia ser o problema? - AME
@AME feche todas as sessões do tmux e tente novamente. - Nathan
Se reload config não corrigir o problema (este é o caso para mim), tente uma nova sessão. Talvez você precise matar a sessão atual e criar uma nova. Outra opção para torná-lo efetivo em um painel (não uma sessão) é C-b: respawn-pane -k - fstang
Isso funcionou para mim, principalmente. Eu me pergunto por que não está ativado por padrão? - inetknght
Matando a sessão ou o que for set-window-option -g xterm-keys on ainda não faz nada no meu caso. - noraj


set-window-option -g xterm-keys on

Me pegou um pouco do caminho e me deu Ctrl-Esquerda direita no console, mas ainda estava respondendo de forma diferente no vim.

Desvincular as chaves não pareceu ajudar.

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

Mudando isso para o seguinte me deu Ctrl-Esquerda direita em tudo mais:

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

Espero que ajude alguém.


8



Exceto que isso quebra as cores no vim, tig, e presumivelmente um monte de outras coisas ... - koniiiik
Veja também unix.stackexchange.com/a/1098/250 para um conselho contra a configuração TERM como esse em tmux - phunehehe


Não tenho certeza, mas isso pode ser porque tmux por padrão, liga-se C-<up/down/left/right> para deslocar o foco para o painel acima / abaixo / esquerda / direita do painel atualmente em foco. Se você não usa painéis com freqüência, talvez não tenha percebido esse recurso. Se este é o problema, você pode desassociar essas chaves dizendo:

unbind C-Left
unbind C-Right

Isso pode ser suficiente por conta própria, ou você pode precisar vinculá-los manualmente novamente ao que você quer que eles façam, via:

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

1



Deve ser o suficiente por si só, se não for agarrado pelo tmux, ele deve passar para o shell. - Rob


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.


1





Para mim, as chaves não estavam sendo ligadas corretamente, porque as preferências do sistema em High Sierra estavam definidas para serem usadas pelo Controle da Missão. Desmarcando estes então 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


0