iTerm2 Vim alt + flecha derecha / izquierda

13

Como usuario de Linux, estoy muy acostumbrado a saltar de una palabra a otra en vim / nano usando ALT+ lefto right.

Esto no parece funcionar correctamente usando iTerm, estoy usando zsh, intenté agregar;

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

Funciona, pero solo dentro de zsh, luego comenté esas líneas y agregué en iTerm un atajo de teclado;

ingrese la descripción de la imagen aquí

Funciona, pero solo para ALTleft

¿Cómo puedo hacer que funcione también para la flecha derecha?

seds
fuente

Respuestas:

10

En las propiedades de iTerm, vaya a Perfiles -> Teclas y configure allí

  • Para ⌥→enviar secuencia de escape[1;5C
  • Para ⌥←enviar secuencia de escape[1;5D

ingrese la descripción de la imagen aquí

eiennohito
fuente
Eso no me funciona. Las secuencias de escape se envían, pero vim solo se mueve un espacio de un lado a otro. Ejecutando el vim 7.3 predeterminado que viene con OS X 10.8. Idealmente, me gustaría cambiarlo en el lado de vim, sin modificar los valores predeterminados del emulador de Terminal (ya que eso dará como resultado una mejor portabilidad).
slhck
Eso es extraño, funciona tanto en vim (de homebrew, no uno predeterminado) como en zsh con la configuración predeterminada de oh-my-zsh (en ~ / .oh-my-zsh / lib / key-bindings.sh).
eiennohito
Tampoco funciona aquí, puedo usar alt + flecha dentro de zsh, en Vim solo funciona con shift + flecha :(
seds
Lo revisé una vez más en los sistemas remotos disponibles (ubuntu 13.04, debian estable y linux científico) y funciona en todas partes. ¿Cuál es la salida cuando presiona Control + V, ⌥ →? Para mí es ^ [[1; 5C
eiennohito
Funciona para mí: iTerm / Vi + zsh
Petro Semeniuk
7

Comience por ver el código clave que su terminal está enviando a vim:

$ sed -n l
^[[1;9D 

En el ejemplo anterior, ejecuté el comando sed y presioné Alt + Left.

Esta ^[[1;9Des la secuencia escapada que se envía a vim, por lo que podemos usarla para nuestro mapeo.

Añadir a vimrc:

map <Esc>[1;9D :tabn<CR>
lfender6445
fuente
Gracias, eso funcionó para mí.
j5shi
0

Ninguna de esas respuestas funcionó para mí. Terminé cargando una máquina virtual Linux y verifiqué con qué me iba a poner <Alt-ARROW>.

Las 4 secuencias de escape que funcionaron para mí son aquellas:

  • <Alt+Up>: [1;3A
  • <Alt+Down>: [1;3B
  • <Alt+Right>: [1;3C
  • <Alt+Left>: [1;3D

Tenga cuidado de editar las teclas de perfil y no las principales, que serán anuladas por las de perfil (donde Alt + Flechas están configuradas de forma predeterminada en una secuencia hexadecimal que no funcionaba con vim).

Jerska
fuente
-1

Como otra posible solución, vim ofrece movimientos de palabras por sí mismo, vea:

:help word-motions
tnull
fuente
2
Debe incluir la información esencial en lugar de simplemente poner una referencia aquí.
pabouk