Editores modales vs modales

37

Acabo de comenzar a aprender Linux y toda mi experiencia previa de programación ha sido usar la plataforma Windows. Me encontré con el editor de Vim y leí que es un editor modal a diferencia del bloc de notas que se denomina editor sin modo.

¿Puede explicar cuál es la diferencia entre los editores modales y no modales en general?

Friki
fuente

Respuestas:

37

Un editor normal "sin modo" es como el Bloc de notas en Windows: solo hay un modo, donde ingresa texto.

Vi, y su sucesor, Vim, son modales: hay dos modos principales 1 , el modo de inserción donde escribe texto en el editor y está comprometido con el documento, y el modo normal donde ingresa argumentos a través del teclado que realizan una variedad de funciones , incluyendo: mover el cursor alrededor del documento, buscar y manipular el texto en el documento (por ejemplo, cortar y pegar).

El artículo de Wikipedia sobre Vi tiene una buena entrada en la interfaz modal.

El atractivo principal, originalmente una necesidad en los primeros días de la computación Unix antes de la adopción generalizada del mouse, es la edición completamente controlada por teclado. Este enfoque ahora se ha adoptado más ampliamente en Unix-land, siendo utilizado, por ejemplo, por una variedad de navegadores web .

Este impresionante proyecto, Vim Clutch , proporciona una visualización clara del concepto de cambio entre modos.


1. También hay otros dos modos, modo de comando para ingresar comandos como lo haría en un shell, y modo visual al seleccionar texto para operar.

jasonwryan
fuente
3
No olvide el modo de línea de comandos y el modo visual.
Bernhard
Buen punto. Me limité a los modos primarios por simplicidad, pero los agregaré como una nota al pie.
jasonwryan
el enlace "Vim Clutch" está muerto
Rashi
@Rashi arreglado ...
jasonwryan
4

En el diseño de la interfaz de usuario, un modo es una configuración distinta dentro de un programa de computadora o cualquier interfaz de máquina física, en la cual la misma entrada del usuario producirá resultados diferentes percibidos que en otras configuraciones. Los componentes de interfaz modal más conocidos son probablemente el bloqueo de mayúsculas y las teclas de inserción en el teclado estándar de la computadora, los cuales ponen el tipeo del usuario en un modo diferente después de presionarlo, luego lo devuelven al modo normal después de volver a presionarlo.

Una interfaz que no utiliza modos se conoce como interfaz sin modo. [1] Las interfaces sin modo pretenden evitar errores de modo [2] al hacer que sea imposible para el usuario cometerlos.

PRAMOD
fuente
44
Parece que está copiado de Wikipedia (a menos que PRAMOD haya escrito ese artículo, no lo sé). Si es así, ¿no debería citarse ese artículo?
Guildenstern
0

La diferencia es que en un editor modal debe cambiar explícitamente a un modo para ingresar texto. En ese modo, presionar una tecla agrega el carácter de esa tecla a la pantalla donde está el cursor, tal como lo haría una máquina de escribir. Luego, debe volver explícitamente a otro modo para hacer otras cosas como mover el cursor, buscar, seleccionar un área o copiar texto.

Un editor sin modo siempre le permite insertar texto y requiere que use una tecla modificadora si desea que una tecla haga algo más que insertar una letra, como mantener presionado Control y presionar C para copiar el texto seleccionado.

Realmente no son tan diferentes si piensas en mantener presionada una tecla modificadora en un modo diferente. La verdadera diferencia son las teclas explícitas requeridas para cambiar de modo. En un editor sin modo, puede pensar que una tecla modificadora cambia a un modo mientras se presiona y luego vuelve al otro modo cuando se suelta.

Esta parte de la respuesta aceptada es totalmente incorrecta:

El atractivo principal, originalmente una necesidad en los primeros días de la computación Unix antes de la adopción generalizada del mouse, es la edición completamente controlada por teclado.

La edición solo con teclado funciona bien sin cambio de modo explícito. Puede mover el cursor y seleccionar áreas de texto con combinaciones de teclas. Por ejemplo, Ctrl + A para moverse al comienzo de una línea, Ctrl + Spc para establecer una marca seguida, luego Ctrl + E para moverse al final de la línea seleccionando así la línea completa.

kevincasey
fuente