gpt4 book ai didi

emacs - 如何将 php-mode 设置从 .emacs 移动到 .dir-locals.el?

转载 作者:行者123 更新时间:2023-12-04 10:56:30 25 4
gpt4 key购买 nike

这是我的 .emacs 文件中的内容。

(add-hook 'php-mode-hook
(lambda ()
(c-set-style "bsd")
(setq indent-tabs-mode t)
(setq c-basic-offset 4)
(setq tab-width 4)
(c-set-offset 'arglist-close 'c-lineup-arglist-operators)
(c-set-offset 'arglist-intro '+)
(c-set-offset 'arglist-cont-nonempty 'c-lineup-math)
(c-set-offset 'case-label '+)
))

我想将这些格式设置移动到项目特定的目录。虽然我可以轻松做到 setq语句(例如 (setq indent-tabs-mode t) ),我无法为函数调用执行此操作,例如: (c-set-offset 'arglist-intro '+) .

这是我放入 .dir-locals.el 的内容:
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.

((php-mode
(c-set-style "bsd")
(indent-tabs-mode . t)
(c-basic-offset . 4)
(tab-width . 4)
(c-set-offset 'arglist-close 'c-lineup-arglist-operators)
(c-set-offset 'arglist-intro 'c-basic-offset)
(c-set-offset 'arglist-cont-nonempty 'c-lineup-math)
(c-set-offset 'case-label '+)
))

这里有什么问题?

最佳答案

目录局部变量就是——变量;不是要评估的 elisp 表格。幸运的是,这是通过 eval 提供的。伪变量:

((php-mode
(indent-tabs-mode . t)
(c-basic-offset . 4)
(tab-width . 4)
(eval . (progn
(c-set-style "bsd")
(c-set-offset 'arglist-close 'c-lineup-arglist-operators)
(c-set-offset 'arglist-intro 'c-basic-offset)
(c-set-offset 'arglist-cont-nonempty 'c-lineup-math)
(c-set-offset 'case-label '+)))))

Emacs 会在遇到该代码时要求您确认是否安全,并将其保存到 safe-local-variable-values custom-set-variables 中的列表如果您愿意,可以查看 init 文件的各个部分。

关于emacs - 如何将 php-mode 设置从 .emacs 移动到 .dir-locals.el?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com