В emacs, могу ли я иметь один набор настроек переноса строк для кода и один для текста?
После долгих экспериментов я думаю, что мне нравится:
(setq truncate-lines nil)
(setq word-wrap t)
для редактирования текста, но
(setq truncate-lines t)
(setq word-wrap nil)
для программирования.
Во всех режимах мне нравится:
(setq fill-column 80)
так что я могу использовать M-q
а также C-u M-q
чтобы поток текста до 80 столбцов, но я также считаю, что мне не нравится auto-fill
режим и никогда не хотел бы, чтобы он был включен.
Я также не так заинтересован в visual-line-mode
(или, по крайней мере, часть того, что не word-wrap
)
Есть ли какое-нибудь заклинание, которое я могу вставить в свой .emacs
файл, который сделает меня счастливым?
Я определяю, что счастлив быть: "все просто делает то, что я хочу, и мне больше никогда не нужно об этом думать".
3 ответа
Использование prog-mode-hook
а также text-mode-hook
установить эти переменные:
(add-hook 'text-mode-hook '(lambda ()
(setq truncate-lines nil
word-wrap t)))
а также
(add-hook 'prog-mode-hook '(lambda ()
(setq truncate-lines t
word-wrap nil)))
(setq truncate-lines t) все еще не работает?
Culprit может быть другой режим. Visual-line-mode был моим (global-visual-line-mode), поэтому мне пришлось включить функцию отключения в ловушку:
(add-hook 'neotree-mode-hook
(lambda ()
(visual-line-mode -1)
(setq truncate-lines t)))
Извините, что не дал исходный код в моем ответе, но я могу заверить вас, что установка, которую вы имеете в виду, на самом деле возможна. Это зависит только от вашего определения "режимов программирования". Большинство режимов поставляются с так называемой хук-функцией (см. http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html). Это в основном функции, которые выполняются при загрузке режима. Такой хук будет затем регулировать настройки, которые вы имеете в виду.