comandos - emacs vs vim




¿Cómo puedo recargar.emacs después de cambiarlo? (12)

solución

M-: (cargar usuario-init-archivo)

notas

  • lo Eval: en Eval: prompt (incluyendo los paréntesis)
  • user-init-file es una variable que contiene el valor ~/.emacs (que apunta a la ruta del archivo de configuración) de forma predeterminada
  • (load) es la versión más corta, más antigua y no interactiva de (load-file) ; no es un comando emacs (para ser escrito en Mx ) sino una mera función elisp

conclusión

M-: > Mx

¿Cómo puedo hacer que Emacs vuelva a cargar todas mis definiciones que he actualizado en .emacs sin reiniciar Emacs?


Actualmente estoy en Ubuntu 15.04; Me gusta definir una clave para esto.
[M-insert] se traduce en alt-insert en mi teclado.
Pon esto en tu archivo .emacs:

(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))

Aquí hay una manera rápida y fácil de realizar una prueba rápida de su configuración. También puede usar Cx Ce al final de un lisp específico para ejecutar ciertas funciones individualmente.

Cx Ce ejecuta el comando eval-last-sexp (que se encuentra en global-map), que es una función compilada interactiva de Lisp.

Está vinculado a Cx Ce.

(eval-last-sexp EVAL-LAST-SEXP-ARG-INTERNAL)

Evaluar sexp antes del punto; Imprima el valor en el área de eco. De forma interactiva, con el argumento de prefijo, imprime la salida en el búfer actual.

Normalmente, esta función trunca la salida larga de acuerdo con el valor de las variables 'eval-expression-print-length' y 'eval-expression-print-level'. Sin embargo, con un argumento de prefijo de cero, no hay tal truncamiento. Dicho argumento de prefijo también hace que los números enteros se impriman en varios formatos adicionales (octal, hexadecimal y carácter).

Si 'eval-expression-debug-on-error' es non-nil, que es el valor predeterminado, este comando organiza todos los errores para ingresar al depurador.


Atajo de teclado:

(defun reload-init-file ()
  (interactive)
  (load-file user-init-file))

(global-set-key (kbd "C-c C-l") 'reload-init-file)    ; Reload .emacs file

Defínelo en tu archivo de inicio y llama por Mx reload-user-init-file

(defun reload-user-init-file()
  (interactive)
  (load-file user-init-file))

Lo siguiente debería hacerlo ...

M-x load-file

Otros ya respondieron a tu pregunta como se dijo, pero encuentro que generalmente quiero ejecutar las líneas que acabo de escribir. para eso, Ctrl Alt x en la luz funciona bien.


Por lo general, simplemente puede volver a evaluar la región cambiada. Marque la región de ~ / .emacs que ha cambiado y luego use Mx eval-region RET . A menudo, esto es más seguro que volver a evaluar todo el archivo, ya que es fácil escribir un archivo .emacs que no funciona bien después de cargarlo dos veces.


Puedes establecer un enlace de teclas para emacs como este

;; reload emacs configuration
(defun reload-init-file ()
  (interactive)
  (load-file "~/.emacs"))

(global-set-key (kbd "C-c r") 'reload-init-file) 

Espero que esto ayude!


Si tiene un shell abierto dentro de Emacs, también puede hacer:

. ~/.emacs

Puede guardar unos pocos golpes de tecla.


Te sugiero que no hagas esto, inicialmente. En su lugar, inicie una nueva sesión de emacs y pruebe los cambios realizados para ver si funcionan correctamente. La razón para hacerlo de esta manera es evitar dejarlo en un estado en el que tenga un archivo .emacs inoperable, que no se carga o no se carga limpiamente. Si realiza toda la edición en la sesión original y todas las pruebas en una nueva sesión, siempre tendrá algo confiable para comentar el código ofensivo.

Cuando finalmente esté satisfecho con sus cambios, continúe y utilice una de las otras respuestas para volver a cargar. Mi preferencia personal es eval solo la sección que ha agregado / cambiado, y para hacerlo simplemente resalte la región del código agregado / modificado y llame a Mx eval-region . Hacer eso minimiza el código que se evalúa, minimizando cualquier efecto secundario involuntario, como señala luapyad.


C-x C-e ;; current line
M-x eval-region ;; region
M-x eval-buffer ;; whole buffer
M-x load-file ~/.emacs.d/init.el




emacs