代码模板应用场景

面对经常使用的格式化内容,重复频率多的内容可以让程序自动生成

比如头部描述 matter

1
2
3
  #+title: xxx
  #+author: xxx
  #+date: xxx-xxx-xxx

比如代码片段

1
2
3
4
5
  if(xxx){
    body
  } else{
    body
  }

插件yas-snippet安装,使用

安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  (use-package yasnippet
    :ensure t
    :commands (org-mode)
    :config
    (yas-reload-all)
    (setq yas-prompt-functions '(yas-ido-prompt))
    (defun help/yas-after-exit-snippet-hook-fn ()
      (prettify-symbols-mode)
      (prettify-symbols-mode))
    (add-hook 'yas-after-exit-snippet-hook #'help/yas-after-exit-snippet-hook-fn)
    :diminish yas-minor-mode)

    (use-package yasnippet-snippets
      :ensure t
      :after (yasnippet)
      :commands (org-mode))  

    (yas-global-mode t)

使用

Meta + x 选择 yas-new-snippet RET

https://gcore.jsdelivr.net/gh/zhangxingong/blog@main/static/img/10-20-07_2_screenshot.png

输入模板代码

https://gcore.jsdelivr.net/gh/zhangxingong/blog@main/static/img/10-27-09_2_screenshot.png

使用sexp表达式,将表达式放入反引号之间

例如:

1
2
3
  #+DATE: [`(format-time-string "%Y-%m-%d %a %H:%M")`]

  ${0:`(current-date-string)`}

使用模板

在org模式下打<tt后,按TAB扩展模板

参考视频