Отключить режим автозаполнения в noweb-mode

Пожалуйста, ради бога, как я могу заставить Emacs прекратить автоматическое заполнение? Использую visual-line-mode, автозаполнение не хочу. Я могу выключить его с помощью M-x auto-fill-mode RET, но в режиме Noweb он снова включается, когда я перехожу к фрагменту кода и снова выхожу обратно. Пожалуйста, я просто хочу глобально включить режим автозаполнения, это сводит меня с ума.

я пробовал

(auto-fill-mode 0)

и куча сумасшедших вещей вроде

(add-hook 'Rnw-mode-hook '(lambda () (auto-fill-mode 0)))
(add-hook 'latex-mode-hook '(lambda () (auto-fill-mode 0)))

Но вроде ничего не работает. Помогите, пожалуйста.


person Ista    schedule 14.10.2009    source источник


Ответы (3)


Вместо того, чтобы добавлять дополнительные хуки в вашу систему, вы должны проверить, можете ли вы удалить некоторые из них, чтобы отключить автозаполнение.

Если вы видите исходный код noweb-mode, в строке 211 вы найдете этот кусок:

(add-hook 'noweb-select-doc-mode-hook 'noweb-auto-fill-doc-mode)
(add-hook 'noweb-select-code-mode-hook 'noweb-auto-fill-code-mode)

Чтобы отключить автоматическое заполнение, поместите следующие одну или две строки в свои dotemacs (в зависимости от того, хотите ли вы отключить автоматическое заполнение как в коде, так и в документации).

(remove-hook 'noweb-select-doc-mode-hook 'noweb-auto-fill-doc-mode)
(remove-hook 'noweb-select-code-mode-hook 'noweb-auto-fill-code-mode)
person viam0Zah    schedule 15.10.2009

Хорошо, я разработал хитрость, которая помогает:

(setq auto-fill-mode -1)
(setq-default fill-column 99999)
(setq fill-column 99999)

Если я не могу отключить режим автозаполнения, по крайней мере, я могу сделать его безвредным, установив заполнение только столбца 99999. Я буду раздражен, если наберу абзац, содержащий более 99999 символов, но если это произойдет, я мне будет о чем беспокоиться ...

person Ista    schedule 14.10.2009

Если вы посмотрите на simple.el, на самом верху определено text-mode-hook, которое в конечном итоге отвечает за включение этой мерзости (или, по крайней мере, это было для меня).

Чтобы попасть на simple.el и искать себя: (C-h f, auto-fill-mode, щелкните / перейдите по ссылке simple.el)

Чтобы отключить, M-x customize-variable text-mode-hook

Снимок экрана

Снимите флажок "Включить автозаполнение". Обязательно нажмите «Сохранить для будущих сеансов» вверху.

person Tim Harper    schedule 13.09.2012
comment
Это хорошее предложение, но что, если вы хотите сохранить auto-fill-mode по умолчанию в text-mode и его производных, но просто отключить его в некоторых конкретных режимах, например noweb-mode или latex-mode? - person Supernormal; 18.09.2019