Como principiante de Emacs, estoy trabajando en la escritura de un modo menor. Mi método actual (ingenuo) para programar elisp consiste en hacer un cambio, cerrar Emacs, reiniciar Emacs y observar el cambio. ¿Cómo puedo optimizar este proceso? ¿Hay un comando para actualizar todo?¿Cómo puedo volver a cargar fácilmente el código de ceceo de Emacs cuando lo estoy editando?
Respuesta
Puede intentar usar M-C-x (eval-defun
), que volverá a evaluar el formulario de nivel superior alrededor del punto. A diferencia de M-x eval-buffer o C-x C-e (exal-last-sexp
), esto se restablecerá variables declaradas con defvar
y defcustom
a sus valores iniciales, lo que podría qué te tropezar.
M-x eval-buffer debería hacerlo.
Todo depende de lo que esté escribiendo y cómo lo haya escrito. Alternar el modo debería obtener el nuevo comportamiento. Si está utilizando [define-minor-mode][1]
, puede agregar código en el cuerpo de la macro que las claves fuera la variable modo:
(define-minor-mode my-minor-mode
"doc string"
nil
""
nil
(if my-minor-mode
(progn
;; do something when minor mode is on
)
;; do something when minor mode is off
)
embargo, otra manera de comprobar de forma rápida sería la de generar una nueva Emacs de su existente :
M-x shell-command emacs&
también probar C-u C-M-x
que evalúa la definición en el punto y establece un punto de interrupción allí, así que te dejan en el depurador cuando se pulse esa función.
M-x ielm
es también muy útil como Lisp REPL con más funciones cuando se desarrolla el código de Emacs.
Lo que dijo Sean. Además, tengo (eval-defun)
vinculado a una clave, junto con una prueba. El ciclo de desarrollo se convierte en: 1) función de edición, 2) presione la tecla eval y prueba, 3) observe los resultados, 4) repita. Esto es extremadamente rápido.
Durante el desarrollo, escribo una prueba, la enlace a jmc-test
, luego uso la tecla anterior para ejecutarla en la función que acabo de editar. Edito más, luego presiono la tecla nuevamente, probándola nuevamente. Cuando la función funciona, desactivo jmc-test
, edito otra función y escribo otra función jmc-test. Casi siempre son una línea de código, tan fácil de explotar.
(defun jmc-eval-and-test()
(interactive)
(eval-defun nil)
(jmc-test))
(define-key emacs-lisp-mode-map (kbd "<kp-enter>") 'jmc-eval-and-test)
(when t
(defun myfunc (beer yum)
(+ beer yum))
(defun jmc-test() (message "out: %s" (myfunc 1 2))))
Al editar "myfunc", si presiono el teclado, ingrese "out: 3".
¿por qué tiene el formulario (cuando ...)? De lo contrario, me encanta esto! – ftravers
acabo de definir una función llamada LDF (abreviatura de carga de archivos) en mi archivo .emacs, así:
(defun LDF (arg) (interactivo "P") (load-file (tampón -file-name)))
Como puede ver, esta pequeña función busca el nombre de archivo del búfer en uso y luego carga el archivo. Cada vez que necesito volver a cargar el archivo elisp del búfer actual, simplemente escriba "M-x ldf"
- 1. Editando Python en Emacs
- 2. ¿Cómo volver a cargar un modo principal de emacs?
- 3. ¿Cómo puedo comparar el código C fácilmente?
- 4. ¿Cómo puedo actualizar o volver a cargar el JFrame?
- 5. ¿Se puede guardar y volver a cargar fácilmente desde el disco un generador de Python?
- 6. ¿Cómo probar el código fácilmente?
- 7. Volver a cargar las configuraciones sin reiniciar Emacs
- 8. Vim autocmd (guardar archivo, ejecutar el formateador de código, volver a cargar el archivo)
- 9. ¿Cómo volver a cargar TreeStore?
- 10. ¿Puedo usar fácilmente Lisp sin Emacs?
- 11. Cómo ejecutar el archivo Estoy editando en Vi (m)
- 12. ¿Cómo volver a cargar gdbinit?
- 13. ¿Cómo puedo formatear a una alista en el ceceo común?
- 14. ¿Cómo volver a cargar el módulo de Python en IDLE?
- 15. ¿Cómo puedo volver a cargar un script en IRB?
- 16. Vim, cómo volver a cargar el resaltado de sintaxis
- 17. ¿Cómo puedo programar Logback para volver a cargar la configuración
- 18. ¿Volver a cargar UITableView cuando navegas hacia atrás?
- 19. ¿Cómo volver a cargar un div sin volver a cargar toda la página?
- 20. cómo volver a cargar solo scripts a través de firebug
- 21. ¿Cómo forzar a un script a volver a cargar y volver a ejecutar?
- 22. ¿Volver a cargar hojas de estilo CSS sin volver a cargar la página?
- 23. Cómo volver a cargar la página cuando se presiona atrás, después de un pushState?
- 24. ¿Cómo puedo volver a cargar una definición de clase en ipython
- 25. ¿Cómo forzo a ActiveRecord a volver a cargar una clase?
- 26. Cómo volver a cargar el objeto jquery dropkick
- 27. ¿Volver a cargar una sola fila jqGrid?
- 28. Actualizar/volver a cargar Flot en Javascript
- 29. ¿Cómo volver a cargar la actividad de la pestaña cuando la pestaña cambia?
- 30. ¿Cómo puedo refactorizar el código fuente de C++ usando emacs?
Eval-buffer reevalúa el código, pero el comportamiento del modo menor no parece actualizarse, incluso si lo apago y lo vuelvo a encender. ¿Hay algún comando que pueda usar en combinación con este para volver a cargar el modo secundario? – davidscolgan
Bueno, supuse que los modos menores funcionaban de manera similar a las modificaciones de archivo .emacs, pero estoy claramente equivocado. Mi próxima conjetura fue que el.Los emacs también deberían refrescarse, sin dados. Supongo que ambos tendremos que esperar a que alguien que sabe de lo que están hablando se mueva. Perdón por el intento equivocado. – Greg