在 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
来包含您的模板。
我有一套常用代码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
来包含您的模板。