¿Qué paquetes están disponibles para la edición modal en Emacs? ¿Qué usas y por qué?
Intentemos publicar un paquete por respuesta. Propongo mencionar las ventajas y las deficiencias de cada paquete.
Aquí está mi definición de edición modal (no pude encontrar un artículo dedicado de Wikipeadia):
Edición modal : estilo de edición de texto cuando el usuario cambia periódicamente entre "modo normal" cuando las teclas no provocan la inserción de sus caracteres, sino que realizan varias operaciones en el texto y el "modo de inserción" cuando las teclas insertan los caracteres correspondientes. Puede haber más modos, por supuesto. La mayoría de los editores modernos no son modales. Un ejemplo de editor de texto modal es Vi (Vim).
key-bindings
prefix-keys
Mark Karpov
fuente
fuente
Respuestas:
evil
, el E xtensible VI L ayer para EmacsDejando a un lado el nombre cuestionable,
evil
es el estado actual del arte cuando se trata devim
emulación en Emacs (y posiblemente en cualquier otro lugar, para el caso). Admite muchas características que otros paquetes de emulación de Vim evitan, que incluyen:vim
objetos de textovim
registrosvim
macros de tecladoex
comandosVentajas
vim
significa que no pierde su memoria muscular al cambiar a sistemas sin Emacs.vim
han sido portados aevil
.vim
la gramática de estilo es modular y se presta muy bien a la extensión del usuarioevil
en sí mismo es muy extensible: ¡haga sus propios objetos de texto, operadores y movimientos!Desventajas
evil
hace que los casos de uso más comunes sean ridículamente fáciles.evil
Es un sistema muy complejo. Hackear el núcleo maligno puede ser bastante complicado.vim
las combinaciones de teclas no son necesariamente ergonómicamente óptimas. A veces, pueden sentirse un poco arbitrarios cuando se transfieren a un sistema diferente.fuente
Existe
god-mode
( https://github.com/chrisdone/god-mode ), que utiliza las combinaciones de teclas estándar de Emacs pero elimina la necesidad de mantener presionados los modificadores. Cuando el modo dios está habilitado, losC-...
enlaces no requieren modificador y losM-...
enlaces usan un prefijo en lugar de un modificador.Como ejemplo de la página de github:
fuente
Añadiendo el mío, gracias @ Mark por su aliento.
Xah Fly Keys
Diseñado desde cero para emacs, con el objetivo de ser el sistema MÁS eficiente, de años de experiencia con el modo ergoemacs. Las opciones clave se basan tanto en la ciencia como sea posible, en base a estadísticas de frecuencia clave y puntaje clave fácil de presionar. Los comandos más utilizados se asignan a las teclas más fáciles de presionar. Otros problemas, como la agrupación y la combinación de teclas bigram, también se consideran a partir de 3 años de experimento semanal.
Puntos interesantes
Desventajas
Soy el autor, así que ten en cuenta que puedo ser parcial. Siéntase libre de comentar o corregir.
fuente
Modalka debe ser el chico más nuevo en el bloque de edición modal. El proyecto Github parece tener 10 días de antigüedad. No tengo suficiente tiempo de uso para comentar o evaluar, pero así es como se describe:
La documentación también compara y contrasta Modalka con otras soluciones modales comunes, como
evil
,god-mode
,boon
, etc.fuente
Bendición
Boon es uno de los paquetes menos conocidos para la edición modal. No emula Vi (o Vim) pero proporciona un diseño original optimizado para el diseño del teclado Colemak.
Ventajas y principios de diseño
Asignación espacial primero, mnemotecnia segundo: la asignación de teclas a comandos se basa en prioridad en la ubicación de las teclas en el teclado. Lo que esté impreso en la tapa del teclado es una preocupación secundaria.
Rollos fáciles con los dedos: la combinación común debe ser alternar entre la mano izquierda / derecha o los rollos fáciles con una sola mano.
Uso de la fila de inicio y dedos fuertes para los comandos más utilizados
Navegación fácil: muchos comandos están vinculados a la navegación. Esto facilita el movimiento. Dado que los movimientos se duplican como definiciones de región, hace que los comandos de manipulación (operadores) sean más potentes.
Desventajas
fuente
Ergoemacs también admite la edición modal. No emula vi, pero usa la tecla Alt para los comandos más utilizados. Por ejemplo, el cursor en movimiento es Alt más T. invertida a la derecha (en QWERTY es Alt+ jpara left, Alt+ lpara la derecha, Alt+ ipara upy Alt+ kpara down). Eliminar char o word es Altcon las teclas de la fila de inicio de la izquierda. Las opciones de teclas se basan en la frecuencia del comando y la posición de la tecla para facilitar la presión.
Además del paradigma modal tradicional, existe un paradigma cuasimodal que permite alcanzar cualquier combinación de teclas
C-x
oC-c
sin utilizar modificadores (como el modo dios).C-c
con la tecla de control presionada y QWERTY apps dparaC-x
.Además de cambiar las teclas de comando, ergoemacs-mode le permite cambiar cosas sobre la secuencia de teclas mientras la escribe:
ergoemacs-mode también intenta respetar todo lo que el modo hace a las teclas fundamentales. Por ejemplo, si org-mode define una clave especial para
next-line
, ergoemacs usa este comando para Alt+ kcuando está en org-mode.Ventajas:
C-o
), Cerrar (C-w
), Seleccionar todo (C-a
), Copiar (C-c
), Cortar (C-x
), Pegar (C-v
), etc.Desventajas
Ver https://github.com/ergoemacs/ergoemacs-mode
fuente
Otra opción semi-modal es Hydra:
https://github.com/abo-abo/hydra
De acuerdo con el sitio web
Imagine que ha vinculado Cc j y Cc k en su configuración. Desea llamar a Cc j y Cc k en alguna secuencia (arbitraria). Hydra te permite:
Vincula tus funciones de forma que presionar Cc jjkk3j5k sea equivalente a presionar Cc j Cc j Cc k Cc k M-3 Cc j M-5 Cc k. Cualquier tecla que no sea j o k sale de este estado.
Asigne una pista personalizada a este grupo de funciones, para que sepa inmediatamente después de presionar Cc que puede seguir con j o k.
No lo he usado pero parece interesante.
fuente