Varios modos de Emacs usan formas (algo así como): la interfaz de personalización es una de ellas, el modo Mensaje (léase: su parte de encabezado) es otra; Hay más de ellos, desafortunadamente no siempre son muy similares. Por "formulario" quiero decir aquí un búfer con partes y lugares de solo lectura designados para ingresar texto; puede o no contener botones (probablemente debería aceptar C-c C-c
como clave de confirmación / confirmación, independientemente de la presencia de un botón Aceptar ).
Estoy particularmente interesado en la finalización automática en los campos (y en particular, habilitar campos con listas de valores de algún conjunto designado, por ejemplo, separados por comas). Mi pregunta es: ¿hay alguna biblioteca de Emacs que permita la creación fácil (por "fácil", es decir, no reinventar la rueda) de tales formas, o debería codificar todo yo mismo?
(Me imagino que lo que debería hacer en este último caso sería (1) establecer algunas partes del búfer de solo lectura, (2) preparar un modo mayor especial, de modo que, por ejemplo, TAB
y S-TAB
cambiar entre "campos", y (3) tal vez use algo como Icicles o Helm para autocompletar).
Respuestas:
Ver las bibliotecas
cus-edit.el
ywid-edit.el
(y sus bibliotecas de alto nivelcustom.el
ywidget.el
, bibliotecas y componentes asociados), que se incluyen con GNU Emacs. El primero hace uso del segundo. El último define cosas básicas (y no tan básicas) de entrada de forma, llamadas " widgets ", en una jerarquía. Puede usar estos widgets y funciones predefinidos en la biblioteca para crear sus propios widgets y tipos de widgets.Sin embargo, tenga en cuenta que el código de estas bibliotecas, particularmente el de
wid-edit.el
, no es muy fácil de seguir. Su mejor opción es comenzar reutilizando los widgets existentes o utilizando el código de definición de widgets existente como guía.(Dos bibliotecas de extensiones menores para esto son
cus-edit+.el
ywid-edit+.el
. También presentan algunos ejemplos de uso).Hay un manual de información para widgets, distribuido con GNU Emacs, titulado " The Emacs Widget Library ".
También hay una biblioteca
forms.el
, incluida con GNU Emacs, pero no estoy familiarizado con ella. Quizás alguien más tenga algo útil que decir al respecto. Hay un manual para formularios, distribuido con GNU Emacs, titulado " Modo de formularios ".fuente
\(custom\|widget\).el
y\(cus\|wid\)-edit.el
un poco? Me parece especialmente esta parte del manual de Reproductores incomprensible:(require 'widget) (eval-when-compile (require 'wid-edit))
.cus-edit.el
ywid-edit.el
. Los otros archivos que menciona son archivos de nivel superior; los*-edit.el
archivos tienen el código que me interesaba. No sé mucho más que eso; lo siento. La verdadera dificultad es el código en sí, que utiliza un estilo particular semi-OOP que no se presta bien ni a la autodocumentación de Emacs (por decirlo suavemente) ni al depurador de Emacs. Puede investigar por su cuenta, o tal vez tratar de contactar al autor (¡buena suerte con eso!). Quizás otros aquí sean de alguna ayuda.