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?

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í


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>

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).


-1

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

:help word-motions

2
Debe incluir la información esencial en lugar de simplemente poner una referencia aquí.
pabouk
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.