Eu estava lendo o manual do Linux e notei que ele dizia que eu poderia usar control + left e control + right para avançar e retroceder as palavras no terminal durante a edição.
"Pressionar Ctrl mais a tecla de seta Esquerda ou Direita move-se para trás ou para frente uma palavra de cada vez, assim como pressionar Esc e, em seguida, B ou F."
No OS X control+left
e control+right
normalmente controla espaços. Eu desativei aqueles. Também tentei usar o painel de preferências para definir os atalhos do teclado:
No entanto, isso não funciona e causa este erro:
Além disso, se eu estiver no iTerm e usar alt+escape
B ou F, o personagem se moverá para frente e para trás. Isso estava acontecendo antes de qualquer uma das minhas alterações na configuração. Mas eu realmente gostaria de poder usar o controle + as teclas de seta.
Respostas:
bater
Basta adicionar o seguinte a
~/.inputrc
:Veja esta postagem da Wiki arquivada para obter mais explicações. Se você deseja usar a alttecla para movimento palavra a palavra (como o comportamento padrão do OS X), use:
zsh
O zsh por padrão não usa a
readline
biblioteca e, portanto, não lê~/.inputrc
. Para obter a mesma funcionalidade, você pode adicionar o seguinte ao seu~/.zshrc
- isso novamente usaria a altchave:Consulte esta documentação para obter mais informações sobre o editor de linha zsh embutido (zle).
Por que é isso? Você configurou seu perfil para usar os padrões do Xterm:
É por isso que você precisará "capturar" essa sequência e dizer
readline
o que fazer.Se o procedimento acima ainda não funcionar e você estiver usando o OS X 10.9 (Mavericks) ou mais, provavelmente precisará desativar os atalhos globais do Mission Control que impedem que as teclas de seta do Control + atinjam o iTerm, mesmo que o próprio Mission Control esteja desativado. Você pode fazer isso em Preferências do sistema → Teclado → Atalhos → Controle da missão :
fonte
bindkey -e
, em vez disso , ao seu . O IIRC zsh não lê - ou pelo menos funciona para mim dessa maneira.bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word
~/.zshrc
.inputrc
bindkey -e; bindkey '\e\e[C' forward-word; bindkey '\e\e[D' backward-word
Solução de trabalho para zsh. Simples, direto e pronto para uso.
Vamos para:
⌘, Preferences → Profiles → Keys → Keyboard Behavior
Predefinição de carga:
Natural Text Editing
fonte
Corrigi da seguinte maneira:
No menu superior; vamos para
fonte
Eu usei uma abordagem diferente. Usando o BetterTouchTool , programei 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 aplicativo específico". A aplicação é iTerm2. Eu fiz o mesmo para alt-right mapeado para ctrl-right.
O efeito é que pressionar a tecla Alt-Esquerda ou Alt-Direita no iTerm envia uma tecla Ctrl-Esquerda ou Ctrl-Direita diretamente ao iTerm2, ignorando o atalho usual do sistema para mover uma área de trabalho para a esquerda ou direita. Assim, obtenho o comportamento típico do mac no iTerm2, em sessões de terminal local, mas também em sessões SSH remotas e posso usar o padrão ctrl-left / ctrl-right para mover para diferentes áreas de trabalho. Eu escrevi aqui:
http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/
fonte
Na verdade, achei que a solução mais fácil era acessar as configurações do meu perfil (encontradas em Perfis / Chaves), removendo os atalhos de perfil ofensivos (como o perfil substitui o global no iTerm), no meu caso, alt + left e alt + right e, em seguida, o global atalhos funcionaram perfeitamente para mim!
Além disso, se você estiver usando o OS X, provavelmente é melhor usar os atalhos de todo o sistema, ou seja, usar as teclas alt + left e alt + right para esse fim, ter comportamentos diferentes no terminal provavelmente causará uma dor.
Além da solução da chmac de usar o Better Touch Tool, era uma maneira elegante de alterar o comportamento do controle + seta apenas no iterm.
fonte
Keys
guia. Em vez disso, temos que ir para aProfiles
guia -> Um perfil (por exemplo, padrão) -> teclas.Esta postagem ensina esse e outros atalhos como ⌥ ← Excluir para excluir uma palavra:
http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/
fonte
Você precisa ir para a
Profiles
guia e excluir o mapeamento para alt+ lefte alt+, rightpois por padrão ele gera alguns valores hexadecimais.fonte