mac commands emacs

commands - emacs ubuntu



¿Cómo configuro un nombre de buffer de Emacs con una variable local de archivo? (2)

Quiero que mi buffer emacs tenga un nombre diferente al nombre del archivo. En lugar de configurarlo todo el tiempo, quiero que esto suceda automáticamente en función del contenido del archivo, algo así como:

// Variables locales:
// buffer-name: MyName
// Fin:

Pero esto no funciona porque buffer-name es una función, no una variable. ¿Cómo puedo hacer esto?


Gracias Pierre. Tu ejemplo pdp-buffer-name elisp funcionó muy bien.

Hice una mejora porque noté que emacs estaba tratando la variable local como "insegura", es decir, siempre preguntaba si el valor debería aplicarse. Como quiero que esto funcione con muchos valores diferentes sin saturar mis .emacs con una lista de valores "seguros", agregué un consejo. Con la nomenclatura del ejemplo anterior, se ve así:

;; allow all values for "pdp-buffer-name" (defadvice safe-local-variable-p (after allow-pdp-buffer-name (sym val) activate) (if (eq sym ''pdp-buffer-name) (setq ad-return-value t)) )


Tu puedes decir:

// Local Variables: // eval: (rename-buffer "my-buffer-name-here") // end:

Es un truco sin embargo.

De lo contrario, podría programar un find-file-hook en sus .emacs que cambia el nombre del buffer a un contenido de variable local específico. Algo como:

(defvar pdp-buffer-name nil) (defun pdp-rename-buffer-if-necessary () "Rename the current buffer according to the value of variable" (interactive) (if (and pdp-buffer-name (stringp pdp-buffer-name)) (rename-buffer pdp-buffer-name))) (add-hook ''find-file-hook ''pdp-rename-buffer-if-necessary)

Luego en tu archivo específico tienes

// Local Variables: // pdp-buffer-name: "pierre" // end:

Con más poder mental, podrías tener una solución más agradable.

Tenga en cuenta que ya podría existir una extensión para su necesidad. Mira en la wiki de Emacs .