gpt4 book ai didi

emacs - 在动态/按上下文自动插入之间切换

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:48 24 4
gpt4 key购买 nike

将 emacs 用于从遗留项目到当前项目的多个项目,我必须使用多个约定,例如评论或文件头。例如,我使用这个函数为 C++ 文件插入文件头:

(defun mg-c-file-header()
"Inserts a c/c++ file header"
(if (boundp 'mg-auto-insert-style)
(case mg-auto-insert-style
(project-a
(insert
" * @file "(file-name-nondirectory buffer-file-name)"\n"
" * \n"
" * (c) 2000 - "( format-time-string "%Y" )" by someone\n"))
(project-b
(insert "/** another header*/\n"))
(otherwise (message "Meh.")))))

我在这个上下文中调用这个函数:

(setq auto-insert-alist
'(
(("\\.\\([C]\\|cc\\|cpp\\)\\'" . "C++ Program")
nil
( mg-c-file-header )
"// --- includes --- \n"
;; and do on....

我可以用 M-x set-variable 设置 mg-auto-insert-style,没关系。但我想根据当前缓冲区的文件路径自动设置变量。因此,如果我打开缓冲区或访问 ~/projects/project-a 中的新文件,mg-auto-insert-style 应该是 project-a。

这会起作用,但并不完美:

(ede-cpp-root-project "project-a"
:file "~/projects/project-a/trunk/src/Makefile"
:local-variables (list
(cons 'mg-auto-insert-style 'project-a )))

如果我创建一个新文件,当自动插入完成时,mg-auto-insert-style 不会被绑定(bind)。后来就没问题了……

你有什么想法吗?

库,马库斯

最佳答案

我使用自动插入包和不同的模板来实现它。参见 my config例如 (+ templates )

关于emacs - 在动态/按上下文自动插入之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532634/

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