Estoy tratando de asignar la Altclave de la siguiente manera:
:map <A-j> j
:map <A-k> k
pero no funciona (suena el timbre Alt + j/ Alt + k).
¿Qué me estoy perdiendo?
Estoy usando Terminal en OSX, lo mismo sucede en Linux remoto.
En Ctrl + v, Alt + jtengo: ?~H~F
( ∆
cuando encoding=utf-8
).
En Ctrl + v, Alt + ktengo: ?~Z
( ˚
cuando encoding=utf-8
).
Ejecutar vim sin complementos ( -u NONE
) no hace ninguna diferencia.
key-bindings
terminal
kenorb
fuente
fuente
Alt
(presionar, no mantener) y luegoj
funciona? Conxterm
al menos tengo que configurarmetaSendsEscape
paratrue
que estas secuencias funcionen ... No sé si tienes el mismo problema, y no uso OSX, así que no puedo probar ...Alt
, soltar,j
o cualquier otra tecla funciona normalmente. Revisé y encontré la opción 'Usar opción como meta clave' , la habilité y funciona ahora. Así que el ajustemetaSendsEscape
funcionó, gracias.Respuestas:
Así es como lo hago en Linux o Cygwin:
Primero verifique qué caracteres envía su terminal cuando presiona ALT+ J:
Para hacer esto, voy a la consola y ejecuto
sed -n l
(también puedes usarlocat
). Luego presiono ALT+ Jy veo que los caracteres en la pantalla son^[j
.Reemplazo
^[
con\e
(porque eso es lo que envía mi terminal cuando presiono esc) y la cadena final para mí es\ej
.Luego lo escribo a mi
.vimrc
:Y el mapeo funciona.
fuente
:set <M-j>=\ej
parte. ¿Qué debo buscar?:help :set-termcap
Con la ayuda de Carpetsmoker , parece que Terminal no se configuró para 'Usar Alt / opción como meta clave' (esto es especialmente común para los Terminales GUI).
Para Terminal en OSX, está en Preferencias -> Configuración -> pestaña Teclado -> 'Usar opción como meta tecla' . Verificación: ¿Cómo puedo cambiar la Terminal para usar la opción como meta clave? ( Mavericks ).
Para XTerm, marque: Configurar XTerm como predeterminado para Meta Sends Escape que dice:
Luego asignaciones estándar con Altclave como:
funciona bien.
Para obtener ayuda, consulte:
:h :map-alt-keys
.fuente
:h :map-alt-keys
como otra fuente de informaciónSimilar a la respuesta de Kossak pero un poco más simple, al mapear las pulsaciones de teclas literales.
Ya sea en modo normal después de presionar :, o insertado en su
.vimrc
, asigne la entrada directamente al iniciar la asignación:luego presionando Ctrl+ y Vluego presionando la tecla para grabar, por ejemplo Alt+ ←. Esto se mostrará como algo así:
pero cada uno
^[
es un carácter de escape literal único y el resaltado de sintaxis debería mostrar esto. Reemplace los escapes literales con el texto<Esc>
y agregue el comando que desea utilizar:Sé que OP estaba asignando Alt+ letras, pero usé flechas para mostrar cómo hacerlo para algo que puede no estar asignado de manera predeterminada.
fuente
Esto funciona para mí en el terminal Ubuntu 16.04 xfce (y el terminal alacritty rust)
Establezca el desencadenador de fragmentos de ultisnip en
Meta-/
(al igual que el fragmento de emacs)Aquí está ahora
^[/
escribo vimEn modo de inserción
Ctrl-V Alt-/
(
Meta
es laAlt
tecla en el teclado de mi PC)fuente
Si
Control+V
seguido deALT-x
shows^[x
(escriba en la terminal) puede arreglarlo con este pequeño script de vim.wikia.com :Agregue a .vimrc para todas las asignaciones de teclas alternativas.
fuente