Lo he leído en muchos artículos ( por ejemplo ) que es una mala práctica usar las teclas de flecha en modo normal. ¿Podría alguien explicar por qué se considera una práctica incorrecta, en todo caso?
key-bindings
cursor-movement
Ankit Jain
fuente
fuente
hjkl
en Dvorak. Definitivamente es menos sensato que en qwerty, pero no sé si lo llamaría "difícil de usar"; son solo llaves, y no es difícil alcanzarlas ni nada una vez que estás acostumbrado.hjkl
debería ser la mejor opción para moverse en un documento. La verdad es que algunos teclados tenían las teclas de flechahjkl
en el momento en que vi fue creado, por lo que vi usó las mismas teclas en modo normal para que coincida con la distribución del teclado. Aquí hay un artículo con una foto del teclado: catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keyshjkl
. Buenos. Pero se inflan al estado de dogma, al menos en parte, porque las personas tienen que sentir que son mejores que otras.hjkl
no son los mejores en dvorak. Pero como usuario de dvorak, puedo encontrarlos un poco útiles ya que están emparejados juntos: como enjk
un lado del tablero; yhl
del otro ladoRespuestas:
En realidad, esta no es una mala práctica.
Mucha gente ( incluido el documento de Vim como muestra la respuesta de @B Layer ) argumenta que no debe usar las teclas de flecha porque hace que sus manos se muevan desde la fila de inicio (la segunda línea de su teclado donde está hjkl) y eso lo hace menos eficiente .
Este es (al menos en mi opinión) un mal resultado de vim "purists" circle jerk: los nuevos usuarios siguen esto ciegamente, algunos incluso deshabilitan las teclas de flecha y luego se quejan de que no son tan eficientes como antes.
La única regla real para el uso vim es utilizarlo de manera eficiente: si se siente más cómodo usando Lefty Rightque hy l sea, utilizar las teclas de flecha. ¡Vim incluso tiene la
set mouse=a
opción si quieres usar un mouse!Una vez que se acostumbre a VIM y obtener mejor con los diferentes movimientos disponibles ( f, t, ,, ;, w, b, e, ge, y, básicamente, todo en
:h quickref
) que podría darse cuenta de que usted no usar teclas de dirección tanto. Y si todavía los usa, no es un problema, use lo que sea más eficiente.Tenga en cuenta que el argumento de no abandonar la fila de inicio para una mayor eficiencia no es tan bueno en mi opinión: si echa un vistazo a por qué vim usa hjkl , verá que estas teclas se eligieron porque no había ninguna flecha llaves cuando Vi fue escrito. Se podría argumentar que tal vez si los teclados fueran diferentes en este momento, nadie consideraría no usar las teclas de flecha como una buena práctica.
fuente
hjkl
a aliviar un poco el dolor de mi muñeca.No sé si esto es realmente relevante, pero soy un veterano, así que aquí hay un poco de historia.
En los viejos tiempos, los terminales VT100 tenían teclas de flecha, pero presionar uno transmitía una secuencia de escape como
<ESC>[A
hacia arriba,<ESC>[B
hacia abajo, etc.Además, al ser un terminal en serie que se comunicaba a 9600 baudios, era posible que el usuario presionase las teclas demasiado rápido para transmitir la secuencia completa, lo que provocaría que una pulsación de tecla interrumpa la secuencia de la pulsación de tecla anterior y confunda vi.
Esto haría que vi entrara inexplicablemente en modo de inserción e insertara [B [B [B [B [B [B [B] B] B] en su archivo si mantenía presionada la flecha hacia abajo. Digo inexplicablemente porque no hay nada en esta secuencia que deba ingresar al modo de inserción y el hecho de que cada secuencia comience con un carácter ESC debería haber salido del modo de inserción. Pero aún así, insertaría basura. No siempre, solo cuando tenías prisa.
Uno se cansó rápidamente de esto y decidió quedarse con las
hjkl
teclas.fuente
Si bien estoy de acuerdo con @statox en que nadie debe ser castigado, rechazado, excomulgado o abrumado si elige usar las teclas de flecha ... use su software como mejor le parezca ... No exudaría como una gran actitud de laissez-faire si estuviera dando orientación a un nuevo usuario de mente abierta. Recomiendo encarecidamente que comiencen con las siguientes mejores prácticas. Son "mejores prácticas" por una razón ... han sido empleadas con buenos resultados por muchas personas que vinieron antes que tú y yo.
Diablos, incluso la propia ayuda de Vim te empuja en esa dirección , aunque no sin hipérbole (" mucho más lento") ...
También está el hecho de que cualquier elección que hagas al principio puede convertirse en hábitos difíciles de romper si quieres cambiar en el futuro. Entonces, si todo lo demás es igual, ¿por qué no adoptar un hábito recomendado ahora en lugar de correr el riesgo de que el uso de las teclas de flecha sea ineficiente o mata el carpo?
Con todo, considere hacer un esfuerzo honesto para hacer cosas sin las teclas de flecha. Después de un tiempo razonable si no puedes vivir sin arriba / abajo / izquierda / derecha ... no lo hagas.
... es lo que le diría a un nuevo usuario interesado en mi opinión. No te lo tomes personalmente si no estás de acuerdo (estoy hablando contigo, votante).
fuente
don't think it's necessary to rank best practices
Bueno, me parece que debemos enfocarnos en las cosas que nos dan el mejor valor en la vida, dado que los recursos son limitados y la vida es corta. Sé que las teclas hjkl son el corazón debido a una infancia mal utilizada jugando pícaro, larn, angband, etc. en una computadora portátil sin teclado numérico, pero algunas personas pasaron su infancia mejor y tendrán que "desaprender" las teclas de flecha independientemente. Creo que aprender movimientos, rangos, etc. es una forma mucho más útil de pasar el tiempo.Otras respuestas han dicho que la pérdida de eficiencia al mover las manos de la fila de casa no es un gran problema, y estoy de acuerdo en su mayoría. Sin embargo, lo que es un gran problema está cuando se está aprendiendo vim, siempre utilizando las teclas de flecha para evitar volver pasaba al modo normal.
En otras palabras, el uso de un solo lugar ←donde habría usado uno hno es una gran pérdida de productividad, pero usar ←←←←←←←←←←donde podría haber usado EscI es una gran pérdida.
Es por eso que la gente te dice que evites las teclas de flecha cuando estás aprendiendo vim, porque te obliga a aprender el modo normal en lugar de nunca abandonar el modo de inserción. El modo normal es donde están todas tus ganancias de eficiencia.
fuente
hjkl
". (Retención de la hipérbole intencional.)←
que podría haber utilizado1
0
←
o, aún más simple,Home
. Este último funciona incluso en el Bloc de notas de Windows.Hay dos razones principales por las que la gente dice que no debes usar las teclas de flecha. Algunos afirman que se prefiere hjkl porque mantiene las manos en la fila de inicio, lo cual no es falso , pero tampoco importa. Otros, incluido yo mismo, dirían que no debe usar las teclas de flecha si mueve más de unos pocos caracteres, pero tampoco debe usar hjkl.
Lo importante no es qué teclas estás usando, sino cuántas . Si desea pasar al principio de la palabra, no golpea
hhh
; se golpeab
. Fin de la palabra ese
, nollll
. A partir de la línea:0
, final de la línea:$
. Y cualquier cosa más,/search
para el texto que existe donde quieres ir. (o cualquiera de los comandos de movimiento avanzado que prefiera).Pero cada vez que te encuentras tecleando la misma tecla más de dos veces seguidas, hay una mejor manera de hacerlo.
fuente
Una afirmación más precisa podría ser "usar las teclas de flecha es una mala práctica al tratar de aprender vim mejor " . Las personas nuevas en vim están acostumbradas a usar las teclas de flecha para moverse y, por lo tanto, no aprenden
hjkl
, por lo que no tienen la oportunidad de ver si esto es preferible.Personalmente, después de adquirir cierta familiaridad general con vim, desactivé las teclas de flecha por un tiempo para
hjkl
acostumbrarme y las volví a habilitar más tarde para simplificar mi.vimrc
. La sabiduría convencional es válida en mi caso; Una vez que supe cómo usar amboshjkl
y las teclas de flecha, me encontré casi exclusivamente usando el primero.fuente
La respuesta habitual implica eficiencia. Es probable que haya recibido capacitación a lo largo de los años para emplear la escritura táctil, que consiste en mantener las manos en asdf y jkl ;. La gran mayoría de las combinaciones de teclas en Vi están diseñadas alrededor de este hecho, incluidos los comandos de movimiento hjkl.
Personalmente, en realidad uso ambos. Uso hjkl cuando estoy editando activamente grandes secciones de texto y las teclas de flecha cuando me desplazo por los archivos de registro (y |, g, y / cuando estoy haciendo ediciones puntuales en todo un archivo). Esto es lo que funciona bien para mí, y en un caso como este, eso es lo que realmente importa.
fuente
Hace mucho tiempo, muchas terminales no tenían teclas de flecha, o no tenían las cuatro. Los sistemas de software que necesitaban navegación normalmente proporcionaban algún tipo de enfoque de navegación sin depender de las teclas de flecha, y vi's hjkl es un ejemplo canónico. (Otro ejemplo clásico es el ^ E- ^ S- ^ X- ^ D de WordStar.) A medida que la utilidad de navegación del teclado se hizo cada vez más obvia, más y más terminales nuevos comenzaron a venir con teclas de flecha, y los sistemas de software a menudo los asignaban a las viejas formas de navegación. Sin embargo, esto proporcionó una especie de preocupación de portabilidad: si los niños entrenados en las escuelas llegaran a confiar en una característica tan novedosa y elegante como las teclas de flecha, la idea era que tal vez no podrían ser productivos en el, una vez común, teclados sin teclas de flecha.
Por lo tanto, los profesores de cursos de computación básica comenzaron a advertir con precaución a los estudiantes que aprendieran a usar el mínimo común denominador para maximizar su empleabilidad. Y esta práctica ha sobrevivido durante mucho tiempo a cualquier razón que alguna vez pudo haber tenido.
En las implementaciones modernas de vi, la razón principal para preferir hjkl es que es un poco más rápido usar las teclas que ya están debajo de la mano que mover la mano a donde estén las teclas de flecha. La desventaja de evitar el cambio de contexto de su mano, por supuesto, es que puede necesitar realizar un cambio de contexto de vi. Hoy en día, cuando los humanos rara vez son atesorados por la velocidad de escritura, ya sea que hagas uno u otro es una cuestión de preferencia personal, y ya no hay nada inherentemente malo en usar las teclas de flecha, si alguna vez lo hubo.
fuente