Quiero enseñarme a mí mismo usando hjkl más que usar las teclas de flecha para permanecer en la fila de inicio. Y sí, soy muy consciente de que no se debe usar hjkl como las principales teclas de navegación. Sin embargo, mis hábitos son bastante fuertes y ni siquiera me doy cuenta de que eso hizo que la mano se moviera hacia las teclas de flecha y quiero desaprenderlo.
Para romper ese hábito: ¿Cómo puedo desactivar las teclas de flecha para que me obligue a usar el hjkl o algún otro método de navegación?
Como beneficio adicional, sería útil si todavía se mostrara un mensaje de Dont't use this!
que no es obligatorio. Si no funcionan, será lo suficientemente confuso para mí repensar mis hábitos.
key-bindings
cursor-movement
cursor-motions
k0pernikus
fuente
fuente
w
para la siguiente palabra,}
para el próximo párrafo,n
para la próxima coincidencia de resultados de búsqueda,fz
para la próxima apariciónz
en la línea actual, etc.) que para moverse más granularmente por caracteres individuales. Definitivamente estoy de acuerdo con esto. Sin embargo, los HJKL son definitivamente mejores que las teclas de flecha, ya que no tiene que mover las manos de la fila de inicio. Con frecuencia escribo algo comojA
, que es mucho más rápido que<Down>A
, y realmente no se puede superar con ningún movimiento.Respuestas:
Puede instalar el complemento hardmode y en su
.vimrc
poner enSi no desea utilizar un plug-in, el uso (que puede ser una mejor opción, ya que puedes personalizar todo usted mismo!)
nnoremap
,vnoremap
Yinoremap
en<Left>
,<Right>
,<Up>
,<Down>
,<PageUp>
y<PageDown>
, por ejemplo:fuente
<nop>
si quieres desactivar por completo el mapa de teclas:nnoremap h <nop>
.En caso de que usted, u otra persona que lea este tema, solo quiera deshabilitar los movimientos de las teclas sin la advertencia de texto, ingrese las siguientes líneas en .vimrc
Los comandos solo desactivarán el movimiento de las teclas en modo normal. Todavía funcionan en modo de inserción. Si usa inoremap, el movimiento de la flecha también se eliminará del modo de inserción.
Este tema enormemente popular trata las diferencias entre noremap, nnoremap, inoremap, etc.: reasignación en Vim
La idea general con la reasignación es la siguiente:
Entonces, en los otros ejemplos dados, reasigna el comando izquierdo a un mensaje de texto que, por cierto, elimina la acción de mover el cursor. El ejemplo que di arriba simplemente reasigna las acciones a nada, en lugar de otra cosa. Considérelo eliminar, en lugar de reemplazar, la funcionalidad vim.
fuente
Puede agregar esto a su
.vimrc
para deshabilitar las teclas de flecha en Comando, Insertar, Modo Normal y Visual:Nota: Checkout
:help map-overview
para más detalles sobre los diferentes tipos de mapeofuente
noremap ... ...
(para el modo normal, visual, de selección y pendiente del operador) ynoremap! ... ...
(para el modo de inserción y línea de comandos).noremaps
sería útil para alguien que quiera personalizar los modos afectados