2010-10-06 1 views
8

Я хочу включить режим linum (M-x linum-mode) автоматически с помощью режима python и c. Я добавлю следующий код в .emacs, но он не работает.Включение режима linum при работе в режиме python/c

(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) 

Что может быть неправильным?

ответ

9

line-number-mode и linum-mode не то же самое.

Попробуйте это:

(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

К сожалению, после смены пароля он не работает. Есть ли способ отладить то, что может быть неправильным? – prosseek

+0

Удалить общее имя крючка. Я исправил код выше. – Starkey

+0

Спасибо. Это работает хорошо. – prosseek

14

У вас также есть возможность установки Linum-режима в глобальном масштабе.

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

Edit: В моей конфигурации я имею global-linum-mode активные и торможу его для некоторых основных режимов:

(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

Не уверен, что перехватывает C-режим предполагается использовать (никогда не используются C- режим), но это должно делать то, что вы хотите:

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