Я пытаюсь, чтобы режим компиляции emacs всегда использовал режим визуальной строки. Код, который я использую:
(add-hook 'compilation-mode-hook (visual-line-mode))
Я пробовал различные другие перестановки. Например, версия в:
Или глобально включающий режим визуальных линий
(setq-default global-visual-line-mode t)
Тем не менее, Emacs настаивает на сокращении строк. Я подтвердил, что крюк выполняется. Есть ли известное разрешение для этого?
Обновление 0
Основной проблемой является проблема новичка в Lisp: функция visual-line-mode
не была заключена в кавычки. Это приводит к немедленной оценке, а не оценке, когда крюк запущен.
Это не решило проблему: режим компиляции по-прежнему не переносит строки. Я подтвердил, что ловушка выполняется в ожидаемое время, поместив неопределенный идентификатор вместо t
. Emacs, как и ожидалось, жалуется на неопределенный идентификатор при входе в режим компиляции.
Есть ли способ отследить выполнение compile
? Использование (trace-function 'compile)
производит:
======================================================================
1 -> compile: command="make" comint=nil
1 <- compile: #<buffer *compilation*>
и больше ничего.
Обновление 1
Решено!
Помимо неправильного цитирования, проблема была с другой частью моего конфига emacs:
(add-hook 'after-change-major-mode-hook
(function
(lambda ()
(fci-mode)
(turn-on-auto-fill)
)
)
)
который, фактически, отменил настройку visual-line-mode
!