如何在启动时启用 `fill-column-indicator`

10

我正在使用OS X 10.9.4上的Aquamacs。我在我的Preferences.el文件中有下面几行代码(类似于.emacs初始化文件):

(add-to-list 'load-path "~/.emacs.d/")

(require 'fill-column-indicator)

(setq-default fci-mode t)

我使用 M-x fci-mode手动切换列指示器。

如何在启动时使用Aquamacs启用fci-mode

3个回答

17

不要将~/.emacs.d本身放入您的load-path中,总是使用子目录。

例如:使用~/.emacs.d/lisp/fill-column-indicator.el和:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/lisp"))
(require 'fill-column-indicator)

这个库并没有提供全局 minor mode,但你可以像这样自己创建一个:

(define-globalized-minor-mode my-global-fci-mode fci-mode turn-on-fci-mode)
(my-global-fci-mode 1)

或者通过交互方式使用M-x my-global-fci-mode RET 切换它。


太棒了!非常感谢!你说得对,我的目录方案有点乱,但现在我已经解决了。最终我可能会采用lawlist和你的建议 - 我只是不希望在编辑latex时开启fci-mode,但我可以使用单独语句来定义它。 - user3854447
你可以在全局模式定义中替换 turn-on-fci-mode 为自己的自定义函数,该函数确定是否为当前缓冲区启用该模式(它会针对每个缓冲区进行评估,以决定是否在该缓冲区中启用 fci-mode)。 - phils

8
你应该删除(setq-default fci-mode t)fci-mode不是全局的,所以你可以使用模式钩子。例如,如果你在启动时打开的文档是emacs-lisp-mode,你可以在Preferences.el文件中放置类似以下内容的代码。
(add-hook 'emacs-lisp-mode-hook (lambda ()
    (fci-mode 1)
  ))

你需要为每个主要模式使用一个模式钩子;或者,你需要通过添加全局设置来修改fci-mode。
对于任何有兴趣查看源代码的人,这里是Github存储库的链接: https://github.com/alpaker/Fill-Column-Indicator

1
这个完美地运行了!谢谢你的帮助,我想点赞但我的等级太低了。 - user3854447

2
随着Emacs 27的到来,display-fill-column-indicator-mode小模式被引入,取代了fill-column-indicator包。您可以添加:
(add-hook 'prog-mode-hook (lambda ()
  (display-fill-column-indicator-mode)))

将其添加到~/.emacs文件中,以便在prog-mode缓冲区中启用它,或者:
(global-display-fill-column-indicator-mode)

全局启用它。要切换它,请使用M-x display-fill-column-indicator-mode命令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接