2012-04-23 16 views
9

Potrzebuję polecenia, aby uruchomić po utworzeniu nowej ramki w Emacs. Do tej pory używałem after-make-frame-functions, ale ten hak jest wywoływany tylko na klatkach utworzonych przez make-frame. Potrzebuję czegoś, co działa, gdy polecenie emacsclient -c tworzy nowe okno.Haczyk Emacsa do nowych ramek

Czy istnieje sposób, aby to osiągnąć?

Odpowiedz

9

Mam trudności ze zrozumieniem Twojego pytania. Serwer Emacs wywołuje make-frame, kiedy trzeba utworzyć nową ramkę, więc after-make-frame-functions powinno również działać w tym przypadku. Więc jaki jest twój rzeczywisty problem?

Czy chcesz, aby Twoja funkcja działała, nawet jeśli serwer Emacs nie utworzy nowej klatki w postaci? Jeśli tak, spróbuj dodać swoją funkcję do server-switch-hook, a także after-make-frame-functions.

server-switch-hook jest zmienną określono w server.el.

Dokumentacja: Uruchomienie haka podczas przełączania do bufora dla serwera Emacs .

+3

Tak, Twój pierwszy akapit jest poprawny. Polecenie, które chciałem uruchomić działa doskonale, gdy robię 'make-frame', ale po prostu nie działało, gdy utworzono nową ramkę za pomocą' emacsclient -c'. Więc po prostu założyłem, że hak nie został wywołany przez serwer, gdy uruchomiłem 'emacsclient -c'. Zrobiłem teraz więcej testów i okazuje się, że coś jest nie tak z moim rozkazem. Przepraszam za bezsensowne pytanie. – Malabarba

+3

Bez problemu. [Gumowe debugowanie kaczek] (http://en.wikipedia.org/wiki/Rubber_duck_debugging) w akcji! –

+2

Amazing! Przedstawiam koncepcję debugowania kaczuszki meta-gumowej przez serwer proxy, gdzie ktoś - np. osobiście - znajduje osobę z tym samym problemem na SO i odkrywa, że ​​problem w rzeczywistości nie istnieje. Jestem obarczony obojgiem. – leoger