Hogyan lehet beállítani az Emacs puffer név egy fájl helyi változó?

szavazat
9

Azt akarom, hogy emacs puffert más nevet, mint a fájl nevét. Ahelyett, ezt minden egyes alkalommal meg, azt akarom, hogy ez megtörténjen alapján automatikusan a fájl tartalma, valami ilyesmit:

// Helyi változók:
// puffer-name: MyName
// Vége:

De ez nem működik, mert puffer-név egy olyan funkció, nem változó. Hogyan tudom ezt megtenni?

A kérdést 09/12/2008 16:57
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
12

Mondhatnád:

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

Ez egy trükk mégis.

Meg egyébként programozásához find-file-hookhorog a .emacsmely átnevezni a buffert egy adott helyi változó tartalmát. Valami hasonló:

(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)

Ezután az adott fájl van

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

Több agyi teljesítmény lehet egy szebb megoldás.

Vegyük észre, hogy nem lehetett már léteznek kiterjesztése a szükség. Nézze meg a Emacs wiki .

Válaszolt 09/12/2008 17:30
a forrás felhasználó

szavazat
3

Köszönöm Pierre. A PDP-puffer-name elisp például nagyon jól működött.

Csináltam egy tartozékot mert észrevettem emacs kezelte a helyi változó „nem biztonságos”, azaz mindig kéri, hogy kérje, ha az érték kell alkalmazni. Mivel én akarom, hogy ez a munka sok különböző értéke a túlzsúfoltság veszélye nélkül .emacs- egy listát a „biztonságos” értékei, tettem hozzá egy jó tanácsot. A nómenklatúra az előző példa, ez így néz ki:

;; 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))  
  )  
Válaszolt 09/12/2008 20:20
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more