szukam jakieś pomysły, proszę, dotyczące sposobu przechwycenia pliku, zanim otworzy się i podjąć decyzję, która ramka, aby otworzyć go w.Jak przechwycić plik, zanim otworzy się i zdecydować, które rama
mam zmodyfikowana wersja frame-bufs
autorstwa Alp Aker - https://github.com/alpaker/Frame-Bufs - która działa z aktualną wersją Emacs Trunk. Napisałem funkcję, która kojarzy otwierany plik z ramką, która ma fokus. Chciałbym zrobić jeszcze jeden krok i ustawić listę file types
i buffer names
, które zawsze będą powiązane z konkretną ramką. Myślałam o funkcji, która robi coś takiego:
* If the file being opened is
(or (eq major-mode 'text-mode) (eq major-mode 'latex-mode))
(switch-to-frame "TEXT")
* If the buffer being opened is
(or (equal (buffer-name) "Folder") (equal (buffer-name) "Summary"))
(switch-to-frame "WANDERLUST")
* After completing either of the above, open the file/buffer.
* Run the custom frame association function -- (associate-current-buffer)
Zakładam, że jest możliwe, aby dowiedzieć się, w jakim trybie plik jest przed to jest rzeczywiście otwarte w ramce. Jaki byłby najlepszy sposób na zrobienie tego?
Dobrą wiadomością jest to, że właśnie do tego służy 'display-buffer-alist'. Zła wiadomość jest taka, że 'display-buffer-alist' jest dość skomplikowany w użyciu. Jego dokumentacja oraz "display-buffer" są kompletne, ale dość lakoniczne. – dfan
Dziękuję za wskazówkę - przyjrzę się bliżej dokumentacji "display-buffer-alist" - może nie będzie tak źle, ponieważ nie muszę przejmować żadnych istniejących okien ani podziału dowolne okna i nie będzie żadnych modyfikacji istniejącej ramki. Będę miał jedną funkcję, która po prostu sprawdza istnienie ramki i tworzy ją, jeśli nie ma jej pod tą nazwą. http://www.gnu.org/software/emacs/manual/html_node/elisp/Display-Action-Functions.html – lawlist
'Zakładam, że możliwe jest ustalenie, który tryb pliku jest, zanim zostanie faktycznie otwarty w frame. "Myślę, że jedynym sposobem jest ręczne parsowanie auto-mode-alist i sprawdzanie pod nazwą pliku. – Malabarba