代码之家  ›  专栏  ›  技术社区  ›  Nate

在emacs中,setq和set变量有什么区别?

  •  30
  • Nate  · 技术社区  · 14 年前

    在emacs lisp中,setq和set variable有什么区别。什么时候应该使用setq,什么时候应该设置变量。

    3 回复  |  直到 12 年前
        1
  •  27
  •   Sean    14 年前

    set-variable 是一个交互式命令,意味着您可以键入 M-x集合变量RET 以交互方式提示输入变量名和值。 setq 不是交互式命令,这意味着它只适合用Emacs Lisp代码编写。就我个人而言,我从不使用 设置变量 在我的Lisp代码中,只有当我想给一个对我的文本编辑有直接影响的变量赋值时,比如(例如)设置 indent-tabs-mode t nil .

    另一个区别是 设置 可以同时设置多个变量。例如,在OS X上的.emacs文件中,我有:

    (setq mac-command-modifier 'meta
          mac-option-modifier 'super)
    

    设置变量 不能那样做。

        2
  •  11
  •   unutbu    12 年前

    setq 是一个 special form ,而 set-variable 是一个交互功能。

    the docs :

    对我来说 设置变量 命令是建议 我可能要设置的变量 我的 .emacs 文件。现在还有更多 超过700个这样的变量 很多人很容易记住。幸运的是, 你可以按 <TAB> 打电话给 M-x set-variable 命令查看 变量列表。

        3
  •  3
  •   Drew    13 年前

    除了上面所说的,因为 set-variable ,正如doc字符串所说:

        VARIABLE should be a user option variable name, a Lisp variable
        meant to be customized by users.
    

    setq 应用于任何变量,无论它是否用户选项。