【问题标题】:Enabling modes in emacs在 emacs 中启用模式
【发布时间】:2012-09-28 20:17:17
【问题描述】:

我刚刚开始定制 emacs。如果我想在 emacs 中启用某种模式(全局),我需要在 .emacs 文件中放入一些代码。 对于视觉模式,代码将是 (global-visual-line-mode t)。但是相同的语法不适用于 show-paren-mode 之类的东西。 那么有没有办法识别必须用于全局启用模式的语法?还是必须要知道的?

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    使用 Emacs 帮助系统:

    M-x describe-function RET show-paren-mode RET
    

    ...或使用菜单栏中的“帮助”菜单:

    Help => Describe => Describe Function... show-paren-mode RET
    

    ,,,或键盘绑定:

    C-h f describe-function RET show-paren-mode RET
    

    最后,考虑使用 Emacs 'custom' 包 (M-x customize RET),它将为您在 .emacs 文件中保留许多设置。或者对于特定选项,从菜单栏中:

    Options => Customize Emacs => Specific Option...
    

    此外,在输入 minibuffer 时,输入零个或多个字符,后跟 TAB 将提供补全选项。

    【讨论】:

      【解决方案2】:

      通常有用的答案是使用customize。他们你不必知道确切的语法(甚至实际上是任何 Elisp);只需勾选复选框并启用所有会话。

      如果你真的关心 Elisp,很遗憾有三种不同的约定。

      • 如您所见,许多模式都有(activate-mode)(name-of-mode t) 之类的名称。
      • 其他有一个切换,其中一些使用可选的数字参数来不切换,而是打开或关闭; (toggle-mode -1) 无条件开启。
      • 该模式可能有一个与之关联的变量,因此您可以(setq mode-variable t) 并且该模式会知道自己激活。这是一个边缘案例。

      【讨论】:

        【解决方案3】:

        我相信次要模式是否是全局的只是特定于该模式,因此要回答您的问题,您必须知道哪些是全局的,哪些是缓冲区特定的。

        我不确定如何编写代码来执行此操作(我对 Emacs Lisp 有点陌生),但您可以编写一个挂钩来启用次要模式,只要您使用您选择的特定主要模式.查看 Emacs 信息页面,了解所有内容。

        据我了解,非全局的次要模式是特定于缓冲区的,因为它们可能不方便(例如编写代码时的 flyspell 模式:D)

        【讨论】:

          猜你喜欢
          • 2023-03-25
          • 1970-01-01
          • 1970-01-01
          • 2015-02-06
          • 2014-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-23
          相关资源
          最近更新 更多