2010-10-06 11 views
8

Ich möchte den linum-Modus (M-x linum-Modus) automatisch mit dem Python- und c-Modus einschalten. Ich füge den folgenden Code in .emacs, aber es scheint nicht zu funktionieren.Einschalten des linum-Modus im Python/c-Modus

(defun my-c-mode-common-hook() 
    (line-number-mode 1)) 
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook) 

(defun my-python-mode-common-hook() 
    (line-number-mode 1)) 
(add-hook 'python-mode-common-hook 'my-python-mode-common-hook) 

Was könnte falsch sein?

Antwort

9

line-number-mode und linum-mode sind nicht gleich.

Versuchen Sie folgendes:

(defun my-c-mode-hook() 
    (linum-mode 1)) 
(add-hook 'c-mode-hook 'my-c-mode-hook) 

(defun my-python-mode-hook() 
    (linum-mode 1)) 
(add-hook 'python-mode-hook 'my-python-mode-hook) 
+0

Leider funktioniert es nicht nach der Änderung. Gibt es eine Möglichkeit zu debuggen, was falsch sein könnte? – prosseek

+0

Entfernen Sie den gemeinsamen Namen aus dem Hook. Ich habe den obigen Code korrigiert. – Starkey

+0

Danke. Es läuft gut. – prosseek

14

Sie haben auch die Option linum-Modus global zu setzen.

;; In your .emacs 
(global-linum-mode 1) 

Edit: In meiner Konfiguration Ich habe global-linum-mode aktiv und hemmen sie für bestimmte Hauptmodi:

(setq linum-mode-inhibit-modes-list '(eshell-mode 
             shell-mode 
             erc-mode 
             jabber-roster-mode 
             jabber-chat-mode 
             gnus-group-mode 
             gnus-summary-mode 
             gnus-article-mode)) 

(defadvice linum-on (around linum-on-inhibit-for-modes) 
    "Stop the load of linum-mode for some major modes." 
    (unless (member major-mode linum-mode-inhibit-modes-list) 
     ad-do-it)) 

(ad-activate 'linum-on) 
0

nicht sicher, was die Haken C-Modus verwendet werden soll (nie verwendet C- Modus), aber dies sollte tun, was Sie wollen:

(dolist (hook '(python-mode-hook 
      c-mode-common-hook)) 
    (add-hook hook (lambda() (linum-mode t))))