2010-10-06 43 views
8

Tôi muốn bật chế độ linum (chế độ Linum M-x) tự động với chế độ python và c. Tôi thêm đoạn mã sau vào .emacs, nhưng nó dường như không hoạt động.Bật chế độ linum khi ở chế độ 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) 

Điều gì có thể sai?

Trả lời

9

line-number-modelinum-mode không giống nhau.

Hãy thử điều này:

(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

Thật không may, nó không hoạt động sau khi thay đổi. Có cách nào để gỡ lỗi những gì có thể sai? – prosseek

+0

Xóa thông tin chung khỏi tên móc. Tôi đã sửa mã ở trên. – Starkey

+0

Cảm ơn. Nó hoạt động tốt. – prosseek

14

Bạn cũng có tùy chọn thiết lập Linum chế độ toàn cầu.

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

Edit: Trong cấu hình của tôi, tôi có global-linum-mode hoạt động và ức chế nó đối với một số chế độ chính:

(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

Không chắc gì móc C-mode có nghĩa vụ phải sử dụng (không bao giờ sử dụng C- chế độ), nhưng điều này sẽ làm những gì bạn muốn:

(dolist (hook '(python-mode-hook 
      c-mode-common-hook)) 
    (add-hook hook (lambda() (linum-mode t)))) 
Các vấn đề liên quan