我试图让emacs编译模式总是使用visual-line-mode。我正在使用的代码是:
(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
设置!