Konfiguracja belki z tytułem

Coldpeer

Domyślnie Emacs wyświetla na belce z tytułem (mówię o Emacsie z GUI) [email protected]_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. [email protected]: ~/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