2012-04-19 8 views
6

Po sporo doświadczeń, myślę, że lubię:W emacs, czy mogę mieć jeden zestaw ustawień owijania linii dla kodu i jeden dla tekstu?

(setq truncate-lines nil) 
(setq word-wrap t) 

do edycji tekstu, ale

(setq truncate-lines t) 
(setq word-wrap nil) 

do programowania.

We wszystkich trybach, lubię:

(setq fill-column 80) 

tak, że można używać M-q i C-u M-q przepływ tekstu do 80 kolumn, ale także, że nie lubię tryb auto-fill i nigdy nie podoba się, że jest on .

Nie jestem również, że chętni na visual-line-mode (lub przynajmniej bitu to, że nie jest word-wrap)

Czy istnieje pewne zaklęcia mogę umieścić w moim pliku .emacs że mnie uszczęśliwi?

Zdecydowałem, że jestem szczęśliwy: "wszystko to po prostu robi to, czego chcę, i nie muszę już o tym myśleć".

Odpowiedz

7

Zastosowanie prog-mode-hook i text-mode-hook ustawić te zmienne:

(add-hook 'text-mode-hook '(lambda() 
    (setq truncate-lines nil 
      word-wrap t))) 

i

(add-hook 'prog-mode-hook '(lambda() 
    (setq truncate-lines t 
      word-wrap nil))) 
+3

nie zapomnieć, wszystkie tryby programowania nie faktycznie pochodzi z prog -tryb. pierwszy element odpowiedzi może nie działać dla niektórych trybów programowania. – kindahero

+0

To byłaby idealna odpowiedź, gdyby zadziałało! Dodałem te linie do mojego pliku .emacs, ale wydaje mi się, że otrzymałem domyślny tryb edycji dla wszystkich plików. –

+1

@JohnLawrenceAspden w zależności od twojej wersji Emacsa, 'prog-mode-hook' może nie być zdefiniowany (na przykład, nie mam go na Emacsie 23.3.1; możesz sprawdzić, czy dostałeś jakąś dokumentację używając' Ch v prog- tryb-hook'). W takim przypadku musisz dodać haki do wszystkich używanych trybów programowania (lub przejść na Emacs 24). – Francesco

2

żal nie podając kod źródłowy w mojej odpowiedzi, ale mogę was zapewnić, że konfiguracja masz w Umysł jest w czyn możliwy. To zależy tylko od twojej definicji "trybów programowania". Większość trybów posiada tak zwaną funkcję haka (patrz http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html). Są to zasadniczo funkcje wykonywane po załadowaniu trybu. Haczyk taki dostosuje ustawienia, które masz na myśli.

1

(setq truncate-lines t) nadal nie działa?

Culprit może być innym trybem. -Line-tryb wizualny był mój (Global-wideo-line-mode), więc musiałem funkcję wyłączającą na haku:

(add-hook 'neotree-mode-hook 
     (lambda() 
     (visual-line-mode -1) 
     (setq truncate-lines t))) 
Powiązane problemy