2012-12-13 12 views
5

Zacznę od stwierdzenia, że ​​jestem nowy dla emacsa.konfiguracja przechwytywania w trybie głównym wpływa na inne bufory

Próbuję utworzyć dostosowania dla głównych trybów. Podczas gdy moje ustawienia działają poprawnie, obserwuję, że kiedy otwieram nowy bufor, buforowanie dostosowywania w trybie głównym jest stosowane do innych buforów innego typu.

Na przykład, jeśli otworzę plik o nazwie "Makefile", zostanie użyty tryb makefile i moje dostosowania zostaną zastosowane. Jeśli następnie otworzę inny plik, na przykład "test.c", zostanie użyty tryb c, ale dostosowania z trybu plików Makefile zostaną połączone z dostosowaniami z trybu c.

odpowiednimi częściami moim pliku .emacs można zobaczyć poniżej:

(defun c-mode-settings() 
    (c-set-style     "bsd") 
    (set-buffer-file-coding-system 'utf-8-unix) 
    (show-paren-mode    1) 

    (setq c-basic-offset  4) 
    (setq tab-width    4) 
    (setq indent-tabs-mode  nil) 
    (setq c-tab-always-indent t) 
    (setq require-final-newline t) 
) 

(defun makefile-mode-settings() 
    (setq whitespace-style '(tabs spaces space-mark tab-mark face lines-tail)) 
    (whitespace-mode  t) 
    (show-paren-mode  1) 

    (setq tab-width    4) 
    (setq require-final-newline t) 
) 

(add-hook 'c-mode-hook  'c-mode-settings) 
(add-hook 'makefile-mode-hook 'makefile-mode-settings) 

Jak mogę zachować te haki tryb od wpływu na inne bufory w różnych trybach?

Dzięki! Andrew

Odpowiedz

4

Należy wziąć pod uwagę, że niektóre zmienne stają się lokalnymi buforami, gdy są ustawione, a niektóre są globalne. Zwykle mają one odpowiedni komentarz w opisie (wykorzystać C-h v var-name dostać się do tego opisu.

W niektórych przypadkach, można wymusić, że każda zmienna stają się lokalne buforowanie, używając

(set (make-local-variable 'var-name) var-value) 

ale trzeba być ostrożnym

+0

Patrząc na opis, pomaga: czy istnieje sposób na wymuszenie zmiany trybu globalnego na lokalny? W szczególności tryb "show-paren", ponieważ jest to przyczyną problemów. – user1902144

+0

użytkownik1902144: Zobacz [automatycznie wyłącza globalny tryb pomocniczy dla określonego trybu głównego] (http://stackoverflow.com/questions/6837511/au tomatycznie-wyłącza-a-global-minor-mode-for-a-specific-major-mode/6839968) – phils

Powiązane problemy