Ustawianie obcinania i zawijania w pliku konfiguracyjnym Emacsa

3

Używam Emacsa 23 w dystrybucji wariantu Debian GNU / Linux. W domyślnej sesji Emacsa uruchamianej za pomocą emacs -q(w celu potwierdzenia ustawień) wykonuję następujące czynności, aby skonfigurować środowisko, które chciałbym:

 M-x toggle-truncate-lines <RET>
 M-x set-variable word-wrap t <RET>

Zostawiam visual-line-modeustawienie na cokolwiek domyślnie.

Chciałbym umieścić te ustawienia w moim pliku ~ / .emacs, aby były zawsze aktywne. Zrobiłem to w następujący sposób:

(setq word-wrap t)
(setq-default truncate-lines nil)
(setq visual-line-mode nil)

Jednak te ustawienia nie replikują środowiska, które chciałbym. Długie linie nie są zawijane - wystają poza prawą krawędź. Jeśli następnie uruchomię M-x toggle-truncate-lines, zawijają się tak, jak chcę, ale nie na granicach słów, więc ustawienie zawijania słów również nie działa. Próbowałem także ustawić truncate-lines~ / .emacs na t, ale to nie miało znaczenia. Dokumentacja truncate-linesbrzmi następująco, więc ustawienie tej zmiennej nilwydaje się być tym, czego szukam:

*Non-nil means do not display continuation lines.
Instead, give each line of text just one screen line.

Nie podzieliłem żadnych okien poziomo, więc truncate-partial-width-windowsnie dotyczy.

Jak skonfigurować środowisko, które chciałbym w ~ / .emacs?

SabreWolfy
źródło

Odpowiedzi:

2

jeśli komenda toggle-truncate-lines otrzyma argument ujemny, zawsze wyłącza obcinanie.

Więc:

(setq-default word-wrap t)
(toggle-truncate-lines -1)
warsztat tkacki
źródło
1

Jeśli chcesz po prostu odtworzyć zachowanie wywołania funkcji toggle-truncate-lines, dlaczego po prostu nie:

(toggle-truncate-lines)

w twoim ~/.emacspliku?

Oczywiście możesz też (setq word-wrap t)tam umieścić , ale podejrzewam, że powinieneś to zrobić (setq-default word-wrap t), ponieważ zmienna word-wrapstaje się lokalnie buforowana, jeśli zostanie ustawiona w jakikolwiek sposób.

Fran
źródło
Mam (toggle-truncate-lines)i (setq-default word-wrap t)w moim ~/.emacspliku. Wygląda na to, że zawijanie słów działa. Jednak długie linie wychodzą poza prawą krawędź, niezależnie od tego, czy mam to (toggle-truncate-lines)w sobie, ~/.emacsczy nie. Obcinanie długich linii jest lokalne? Może dlatego włączenie go ~/.emacsnie ma wpływu. Dlatego też próbowałem (patrz pytanie) ustawić (truncate-lines), który również nie działał.
SabreWolfy