2012-04-22 2 views
3

Emacs 24+의 개발 버전에서 ELPA를 통해 jtags-mode (버전 0.96)을 사용하면 마이너 모드를 프로그래밍 방식으로 활성화 할 수없는 것처럼 보입니다 (수동 호출이 제대로 작동 함). 내가 시도한 설정과 작동하도록 설정 한 것에 대한 자세한 정보를 조사하기 전에, 결론은 jtags-mode을 Java 후크 변수에 추가 한 후 자바 소스를 처음 비스트 할 때 다음과 같은 이맥스에서 불만을 얻는다는 것입니다 파일 :Emacs jtags-mode를 자동으로 활성화하는 방법은 무엇입니까?

;; Support for Java coding. 
(autoload 'jtags-mode "jtags" "Toggle jtags mode." 1) 

(defun java-setup() 
    (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92) 
    indent-tabs-mode nil 
    tab-width 4 
    fill-column 96 
    c-comment-start-regexp "\\(@\\|/\\(/\\|[*][*]?\\)\\)" 
    jtags-display-menu-flag t 
    jtags-mode 1) 
    (java-mode-indent-annotations-setup)) 

(add-hook 'java-mode-hook 'java-setup) 
(add-hook 'java-mode-hook 'jtags-mode) 
... 

을하지만 위의 불만을 주도 :

Toggling jtags-mode off; better pass an explicit argument. [2 times] 

철저하게 jtags-mode 설정에 설명서를 읽은 후, 나는 충분 다음을 기대했다. 그 후 나는 함수에서 직접 jtags-mode을 호출하려고했지만, 아무 소용이 없습니다.

명확하고 쉬운 해결책이없는 경우이 문제를 디버깅하는 방법에 대한 정보를 얻으려고 기꺼이 정보를 얻습니다.

답변

4

xxx-mode이라는 함수는 흔히 토글 토글 기능없이 호출 될 때 기능을합니다. 즉, 함수가 꺼져있는 경우 모드를 켜고 그 반대의 경우도 마찬가지입니다. 이 함수를 후크에 추가 했으므로 이것이 호출되는 방법입니다. 여러 가지 사소한 모드는 turn-on-xxx-mode과 같은 기능을 제공하며 직접 후크에 추가되도록 설계되었습니다.

인수와 함께 호출되면 1은 일반적으로 인수를 활성화하고 -1은 비활성화합니다. jtags-mode 함수를 후크에 추가하는 대신 설정 기능에서 호출 해보십시오.

설정 기능에서 보조 모드를 활성화하는 것이 좋습니다. 또한 설치 코드에서 jtags-mode변수을 1로 설정합니다. 정상적으로 수행 할 수 없습니다. 예 :

(defun java-setup() 
    (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92) 
    indent-tabs-mode nil 
    tab-width 4 
    fill-column 96 
    c-comment-start-regexp "\\(@\\|/\\(/\\|[*][*]?\\)\\)" 
    jtags-display-menu-flag t) 
    (jtags-mode 1) 
    (java-mode-indent-annotations-setup)) 

(add-hook 'java-mode-hook 'java-setup) 

마지막으로 예약. jtags-mode을 사용하지 않았습니다.이 대답은 부 모드가 작동하는 방식에 대한 일반적인 지식을 기반으로합니다.

+0

네, 제가 시도한 많은 것들 중 하나입니다. 다시는 아무 소용이 없습니다. 감사. – pajato0

+0

'java-mode-hook' 변수를 지우거나 (Emacs를 재시작하십시오). 그렇게하지 않으면,'jtags-mode'를 포함하여 모든 기능이 추가됩니다. – Lindydancer

+0

그건 문제가되었습니다! 고마워, 잘 했어. – pajato0

0

jtags-mode 파일을 Emacs-24로 다시 컴파일하면 Emacs-24가 minor 모드로 변경 되었기 때문에 문제가 사라져야합니다. 따라서 인수가 없어도 더 이상 토글을 의미하지는 않습니다. 이 변경 사항은 특히 발생한 문제와 같은 문제로 인해 발생했습니다.

관련 문제