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.