2011-06-24 18 views
5

Po uruchomieniu emacsclient nie reaguje na kliknięcia myszą. Mój główny proces Emacs przebiega w terminalu i reaguje na kliknięcia myszą poprawnie bo mam następujący kod w moim Emacs pliku konfiguracyjnym:Emacsclient nie reaguje na kliknięcia myszą

(xterm-mouse-mode 1) 

Dlaczego nie emacsclient odpowiedzi na kliknięć myszką? Czy istnieje sposób, aby to zrobić?

Odpowiedz

10

Jest to prawdopodobnie dlatego, że pewne ustawienia w Emacs są specyficzne dla terminalai manipulowania takie ustawienia w pliku init wpłynie tylko terminal, który jest aktywny w momencie plik startowych została oceniona.

Poniższa Q + A dotyczy podobny problem, i przechodzi do szczegółów:

Run command on new frame with daemon/client in Emacs

Dla Twojego problemu, myślę, że to powinno wystarczyć:

(defun my-terminal-config (&optional frame) 
    "Establish settings for the current terminal." 
    (if (not frame) ;; The initial call. 
     (xterm-mouse-mode 1) 
    ;; Otherwise called via after-make-frame-functions. 
    (if xterm-mouse-mode 
     ;; Re-initialise the mode in case of a new terminal. 
     (xterm-mouse-mode 1)))) 
;; Evaluate both now (for non-daemon emacs) and upon frame creation 
;; (for new terminals via emacsclient). 
(my-terminal-config) 
(add-hook 'after-make-frame-functions 'my-terminal-config) 
+0

Doskonały ! Właściwie miałem ten problem tylko w sesjach GNU Screen, ale to rozwiązuje. – hekevintran

+0

Dobrze słyszeć. Właśnie sobie uświadomiłem, że jako "tryb xterma-myszy" jest globalnym trybem pomocniczym, mój kod był wadliwy, jeśli celowo wyłączysz ten tryb, a następnie utworzysz nową ramkę, zostanie ona ponownie włączona. Odpowiednio zredagowałem kod. Myślę, że tryb jest wystarczająco inteligentny, aby nie potrzebować sprawdzenia "systemu okienkowego", które początkowo zawierałem (i które nie było wystarczające do zidentyfikowania xterma w każdym przypadku). – phils

Powiązane problemy