tutorial source sintaxis paradigma iglesia codigo emacs elisp

emacs - source - lisp sintaxis



Emacs: cómo ver/cómo depurar un solo comando elisp function/emacs (4)

  1. Ch f nombre de la función para encontrar el código fuente de la función.
  2. Cu CMx para instrumentar la función de Edebug.

Cuando se llama a la función, Emacs ingresará a Edebug, lo que facilita la ejecución paso a paso de la función, inspeccionar variables y realizar otras tareas típicas de depuración. Ver (info "(Elisp)Edebug") para más información.

Hay una cosa que no me gusta en la función de tabla en modo Org para emacs. Me gustaría ver todas las funciones que se ejecutan por función que ejecuto como comando de Emacs.

¿Cuál es la mejor manera de hacer eso? ¿Algún consejo sobre cómo comenzar a depurar el código elisp, especialmente un comando único de interés?


Para ir al modo de ayuda de la función, presione el nombre de la función. Si se trata de una función elisp, puede ver la fuente y ver qué funciones llama.


Prefiero el debugger tradicional de Emacs a edebug. Para usarlo:

M-x debug-on-entry the-function RET

Luego, cada vez que se invoca la the-function , se ingresa al depurador. Use d para recorrer la evaluación, yc si quiere saltar un paso (no profundice en sus detalles).

Ayuda a ver la definición de the-function en otra ventana / marco mientras lo recorres.

Puede cancelar la debug-on-entry utilizando Mx cancel-debug-on-entry .


Si desea una forma programática de ver la fuente de una función (similar a la macro source de Clojure) puede usar la subrutina de symbol-function .

Por ejemplo, hay un defun do-math en mi archivo .emacs . Para ver su fuente, puedo hacer lo siguiente.

(symbol-function ''do-math)

y me da

ELISP> (symbol-function ''do-math) (lambda (expression) (interactive "sexpression:") (insert (number-to-string (eval (read expression)))))

Consulte también: https://www.gnu.org/software/emacs/manual/html_node/elisp/Function-Indirection.html

Véase también: http://ergoemacs.org/emacs/elisp_symbol.html