在 emacs 中自动加载代码片段

loading up code snippet in emacs automatically

我有一套常用代码bash脚本。我想在创建新文件时自动在 emacs 中加载这些代码片段,如何设置?

您问题中的 "snippet" 一词有点令人困惑,因为它通常用于描述在编辑文档时交互式插入代码位。

另一方面,您的描述指定了 "upon creating a new file",这让我觉得您确实在寻找一些样板文件以自动插入到新文件中。在那种情况下,我会推荐内置 auto-insert-mode:

(auto-insert-mode)  ; Enable the feature globally

;;; Define what should get auto-inserted
(eval-after-load 'autoinsert
  '(define-auto-insert
     '("\.sh\'" . "Bash skeleton")
     '("Short description: "
       "#!/bin/bash\n\n"
       "More content...\n")))

现在,当您创建新的 .sh 文件时,系统会提示您是否要 "Perform Bash skeleton auto-insertion"。如果你总是想插入你的模板,你可以添加

(setq auto-insert-query nil)

跳过提示。

如果您希望从文件目录加载模板,请改为执行以下操作:

(auto-insert-mode)
(setq auto-insert-directory "~/.emacs.d/templates/")
(define-auto-insert "\.sh" "bash-template.sh")

并创建一个文件 ~/.emacs.d/templates/bash-template.sh 来包含您的模板。