Depois de ver isso em vários computadores ...
No Linux usando o Gnome Terminal, esse recurso funciona imediatamente. (é por isso que romainl pergunta se você tentou)
No Mac OS 10.8 (Leão da montanha)
Control + Arrow Key é pego pelo Mission Control e muda de espaço ou move a tela. Para desabilitar isso, vá para Preferências do Sistema - > Teclado - > Atalhos de teclado - > Controle da Missão e desmarque todos os que possuem ctrl + arrow (o Controle é representado por um ^
)
Depois disso é feito. Ctrl + Arrow funciona no iTerm2 sem mexer no vim.
No entanto, ele não funciona imediatamente no vim no Terminal. Por alguma razão, o controle + seta corresponde a excluir até o final da linha. (Que parece ser o mesmo comportamento que no bash).
Para corrigir isso, você precisa alterar o que o Terminal envia como uma string de caracteres quando Control Left e Control Right são enviados.
No terminal, vá para Preferências - > Configurações - > (Perfil que você está usando) - > Teclado
Edite o cursor de controle para a esquerda para ser 3[1;5D
e edite o cursor de controle para a direita para ser 3[1;5D
. (Nota: \ 033 é digitado pressionando ESC )
Após essas alterações serem feitas, você deve poder usar Control Left e Control Right para avançar ou retroceder as palavras.
Além disso, enquanto Control Left e Control Right existem comandos equivalentes de uma letra para fazer o mesmo no modo normal. ( <C-Left>
é Control + Left e <S-Left>
é Shift + Left)
<C-Left> == B <S-Left> == b
<C-Right> == W <S-Right> == w
Dê uma olhada em :h b
e :h w
(Nota: <S-Left>
e <S-Right>
podem não funcionar em Termianl a menos que você altere o que o Terminal envia)