Как включить режим автозаполнения emacs только для комментариев кода? - PullRequest
12 голосов
/ 18 декабря 2010

Я пробовал

(set (make-local-variable 'comment-auto-fill-only-comments) t)

, а также

(auto-fill-mode 0)

Хотя, как ни удивительно, ни одна из этих работ после перезапуска emacs.

Я использую начальный набор Emacs от eschulte

Переключение работает нормально с режимом автозаполнения Mx.


ОБНОВЛЕНИЕ

Использование комбинации (спасибо Реми):

(auto-fill-mode 1)
(setq comment-auto-fill-only-comments t) 

Отлично работает в файлах программирования, где есть комментарии.Однако в текстовом режиме он автоматически заполняется везде.

Как полностью отключить режим автозаполнения в текстовых документах?

1 Ответ

12 голосов
/ 18 декабря 2010

Если вы хотите, чтобы Emacs автоматически заполнял комментарии, вы не должны делать comment-auto-fill-only-comments локальной переменной:

(setq comment-auto-fill-only-comments t)

Если вы хотите это только в каком-то режиме, но не во всехнеобходимо добавить его к правильному хуку:

(add-hook 'ruby-mode-hook 
          (lambda () ((set (make-local-variable 'comment-auto-fill-only-comments) t)))

ОБНОВЛЕНИЕ ответа

Чтобы удалить автозаполнение из текстового режима, необходимо использовать хук:

(add-hook 'text-mode-hook 
          (lambda () (auto-fill-mode -1)))

Обратите внимание, что это также изменит состояние автозаполнения в режиме вывода из текстового режима (один из примеров - латексный режим, есть много других таких режимов)

...