6

经过相当多的实验,我认为我喜欢:

(setq truncate-lines nil)
(setq word-wrap t)

用于文本编辑,但

(setq truncate-lines t)
(setq word-wrap nil)

用于编程。

在所有模式下,我都喜欢:

(setq fill-column 80)

这样我就可以使用M-qandC-u M-q将文本流到 80 列,但我也发现我不喜欢auto-fill模式并且永远不会喜欢它。

我也不是那么热衷visual-line-mode(或者至少不是那么热衷word-wrap

有什么咒语可以放在我的.emacs档案里让我开心吗?

我对快乐的定义是:'这一切都只是按照我的意愿行事,我再也不需要考虑这个问题了'。

4

3 回答 3

8

使用prog-mode-hooktext-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)))
于 2012-04-19T19:36:42.680 回答
2

很抱歉没有在我的回答中提供源代码,但我可以向您保证,您想到的设置确实是可能的。它仅取决于您对“编程模式”的定义。大多数模式都带有一个所谓的钩子函数(参见http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html)。这些基本上是在加载模式时执行的功能。然后,这样的钩子会调整您想到的设置。

于 2012-04-19T19:40:16.390 回答
2

(setq truncate-lines t) 还是不行?

罪魁祸首可能是另一种模式。视觉线模式是我的(global-visual-line-mode),所以我不得不将禁用功能放入钩子中:

(add-hook 'neotree-mode-hook
       (lambda ()
         (visual-line-mode -1)
         (setq truncate-lines t)))
于 2015-04-03T17:16:11.323 回答