配置emacs自动加载上一次git comment

不想每次都去复制粘贴comment到editor,就在emacs里捣腾,LISP还不会用,不过总是凑出两个函数可以用了,可能很蹩脚,以后会用ELISP了再优化吧。

大概意思就是把每次提交的comment存到一个文件里,下次再加载commit msg 文件时,就从备份的文件里读出来。

保存的comment是Signed-off-by前面那一部分。

(defun my-load-file-mode ()
  (when (and (stringp buffer-file-name)
             (string-match "\\COMMIT_EDITMSG\\'" buffer-file-name))
    (when (file-exists-p "COMMIT_EDITMSG_1")
      (insert-file-contents  "COMMIT_EDITMSG_1" nil 0 500 )
      ))
      (set-buffer-file-coding-system  'utf-8))
 
(defun my-save-file-hook ()
  (when (and (stringp buffer-file-name)
             (string-match "\\COMMIT_EDITMSG\\'" buffer-file-name))
    (save-excursion
      (beginning-of-buffer)
      (write-region (point)
            (progn
            (re-search-forward "Signed-off-by")
            (previous-line)(end-of-line)
            (point)) "COMMIT_EDITMSG_1" nil nil nil nil))))
 
(add-hook 'find-file-hook 'my-load-file-mode)
(add-hook 'after-save-hook 'my-save-file-hook)

 

posted on   jianglili  阅读(242)  评论(0)    收藏  举报

编辑推荐:
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
阅读排行:
· 博客园2025新款「AI繁忙」系列T恤上架
· 7 个最近很火的开源项目「GitHub 热点速览」
· 记一次 .NET某固高运动卡测试 卡慢分析
· DeepSeekV3:写代码很强了
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)

导航

< 2012年5月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

统计

点击右上角即可分享
微信分享提示