Como posso obter o controle + seta para a esquerda para voltar uma palavra no iTerm2?

102

Eu estava lendo no manual do Linux e notei que ele dizia que eu poderia usar control + left e control + right para avançar e voltar palavras no terminal durante a edição.

"Pressing Ctrl plus the Left or Right arrow key moves backward or forward a word at a time, as does pressing Esc and then B or F."

No OS X control+left e control+right normalmente controlam os espaços. Eu desativei aqueles. Eu também tentei usar o painel de preferências para definir os atalhos de teclado:

No entanto, isso não funciona e causa esse erro:

Além disso, se eu estiver no iTerm e usar alt+escape , então B ou F, o personagem se moverá para frente e para trás. Isso estava acontecendo antes de qualquer alteração na minha configuração. Mas eu realmente gostaria de poder usar o controle + as teclas de seta.

    
por cwd 14.11.2011 / 19:43

7 respostas

129

bash

Basta adicionar o seguinte a ~/.inputrc :

"\e[1;5D": backward-word
"\e[1;5C": forward-word

Veja este post do Wiki arquivado para mais explicações. Se você quiser usar a tecla alt em vez de movimento palavra-a-palavra (como o comportamento padrão do OS X), use:

"\e[1;9D": backward-word
"\e[1;9C": forward-word

zsh

zsh por padrão não usa a biblioteca readline e, portanto, não lê ~/.inputrc . Para obter a mesma funcionalidade, você poderia adicionar o seguinte ao seu ~/.zshrc - isso novamente usaria a tecla alt :

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

Veja esta documentação para mais informações sobre o zsh interno editor de linha (zle).

Por que isso? Você configurou seu perfil para usar os padrões do Xterm:

Éporissoquevocêprecisará"capturar" essa sequência e informar readline o que fazer.

Se o acima ainda não funcionar e você estiver usando o OS X 10.9 (Mavericks) ou abouts, provavelmente precisará desabilitar os atalhos globais do Controle de Missão que impedem que as teclas Control + cheguem ao iTerm, mesmo que o próprio Controle de Missão está desabilitado. Você pode fazer isso em Preferências do Sistema → Teclado → Atalhos → Controle da Missão :

    
por 14.11.2011 / 20:15
33

Solução de trabalho para zsh. Simples, direto, fora da caixa.

  1. Ir para: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Carregar predefinição: Natural Text Editing

Carregarpredefinição"Edição de texto natural"

    
por 17.12.2016 / 20:49
7

Eu usei uma abordagem diferente. Usando o BetterTouchTool eu programo um atalho de teclado personalizado para o iTerm2. Quando pressiono alt-left no iTerm2, ele envia o atalho de teclado ctrl-left com a ação "Enviar atalho de teclado para um aplicativo específico". A aplicação é iTerm2. Eu fiz o mesmo para alt-right mapeado para ctrl-right.

O efeito é que pressionar alt-left ou alt-right no iTerm envia um ctrl-left ou ctrl-right diretamente para o iTerm2, ignorando o atalho comum no sistema para mover um desktop para a esquerda ou para a direita. Assim eu recebo o comportamento típico do mac no iTerm2, em sessões de terminal locais, mas também em sessões SSH remotas e posso usar o padrão ctrl-left / ctrl-right para mover para diferentes desktops. Eu escrevi aqui:

link

    
por 17.04.2013 / 19:16
7

Na verdade, achei que a solução mais fácil era acessar as configurações do perfil (encontradas em Perfis / Chaves), removendo os atalhos do perfil ofensivo (como o perfil substitui globalmente no iTerm), no meu caso alt + left e alt + right e então os atalhos globais funcionaram perfeitamente para mim!

Além disso, se você estiver usando o OS X, provavelmente é melhor ficar com atalhos no sistema, ou seja, usando alt + left e alt + right para esse propósito, ter um comportamento diferente no terminal pode causar algum tipo de sofrimento.

Além disso, a solução da chmac para usar o Better Touch Tool foi uma maneira elegante de alterar o comportamento do controle + seta apenas no iterm.

    
por 20.03.2015 / 09:09
6

Eu consertei assim:

No menu superior; vá para

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)
    
por 30.11.2016 / 17:22
2

Este post ensina este e outros atalhos como ⌥ ← Excluir para excluir uma palavra:

link

    
por 02.06.2016 / 16:51
1

Você precisa entrar na aba Profiles e deletar o mapeamento para alt + para a esquerda e alt + para como por padrão, gera alguns valores hexadecimais.

    
por 06.01.2016 / 00:13