Konfiguracja belki z tytułem

Coldpeer

Domyślnie Emacs wyświetla na belce z tytułem (mówię o Emacsie z GUI) emacs@domena_systemu. Można to prosto zmienić korzystając ze zmiennej frame-title-format:

(setq frame-title-format "mój tytuł")

Dostępne są też predefiniowane wartości, m.in. %b - nazwa bufora, %f - ścieżka do pliku, %m - nazwa trybu, np. c++-mode. Czyli jeśli chcemy zmienić tytuł na emacs wersja: ścieżka (np. emacs 22.1.1: /home/user/dir/file), robimy:

(setq frame-title-format (concat invocation-name " " emacs-version ": %f"))

A co, jeśli chcielibyśmy mieć postać np. emacs@domena: ~/dir/file bądź nazwę bufora, jeśli plik nie jest otwarty (np. scratch) - innymi słowy nazwę bufora z odpowiednio zamienioną ścieżką lub samą nazwę bufora? Niestety predefiniowanych wartości, o których wyżej wspomniałem, nie da się do tego celu wykorzystać. Trzeba założyć odpowiedniego hooka i wykorzystać buffer-file-name:

(add-hook 'window-configuration-change-hook
	  (lambda ()
	    (setq frame-title-format
		  (concat
		   invocation-name "@" system-name ": "
		   (replace-regexp-in-string
		    (concat "/home/" user-login-name) "~"
		    (or buffer-file-name "%b"))))))

0 komentarzy