嗯,这样修改比在commit里面方便很多。不过两套(基本)一样的log总感觉有点奇怪。
直接从 git log 生成呗
git log --pretty=format:'** %h - %s%n%b' > gitlog.org
如果在commit header末尾加入org-mode格式的tag,commit body也用org-mode语法写,效果就很好
包装到命令里:
(defun moon/gitlog ()
"Generate a temp org-mode buffer containing current git repo's log."
(interactive)
(switch-to-buffer (generate-new-buffer "*gitlog*"))
(org-mode)
(insert (shell-command-to-string
"git log --pretty=format:'** %h - %s%n%b'")))
可以abuse一下counsel-org-tag, 给他let bind一个git log tag list, 然后默认action设为insert
或者干脆临时把git commit的mode改成org mode好了。。
表示没有看懂并默默点了一个赞
可以呀,把排版格式换成markdown就行了。
比如把
format:'** %h - %s%n%b'
改成
format:'## %h - %s%n%b'
不过一开始生成git log的目的就是为了借助org mode的tag系统。mardown据我所知没有这个功能。
可以把spacemacs首页没啥用的news改成显示上次pull之后影响默认设置的新改动: 当然我不用spacemacs,这个函数不会真的改spacemacs的news,只是插入字符。
(defun moon/log-news ()
"Log breaking changes after last pull."
(interactive)
(insert (shell-command-to-string
"cd ~/.emacs.d/ ; git log ORIG_HEAD..HEAD --pretty=format:'* %h - %s%n%n%b' --grep ':change-default:'")))
所有在ORIG_HEAD和HEAD之间,有:change-default:
tag的commit都会被抓取。
发现org tag里不能有dash,改了一下代码。我还把ORIG_HEAD..HEAD
删掉了,因为没啥意义。
(defun moon/log-news ()
"Log breaking changes after last pull."
(interactive)
(when moon-log-news
(insert (shell-command-to-string (concat "cd " moon-emacs-d-dir " ; git log --pretty=format:'* %h - %s%n%n%b' --grep ':change_default:'")))))
把这个函数加入我主页的渲染函数里:
开启org-mode:
https://git-scm.com/docs/git-log
你可以用git log --format
自己排版,用git log --grep
抓取特定commit,等等。
还有很多别的有用的flag,具体可以看上面的链接。
想知道doom-emacs用的啥主题
原来是doom-themes:joy:
话说才发现原来git commit message那个buffer的major mode随便改都ok。。因为git-commit-mode是个minor mode。。
我也开始施工了,国庆节争取施工完。 2011年的macbook pro,用以前的 spacemacs配置感觉很卡,换了doom 顿时快了很多,更加坚定了迁移的决心。
什么很卡?移动 cursor?
为什么不找找是哪个包造成的,然后把造成问题的包 exclude?
我感觉 doom 不卡很可能是安装的包少,如果像 spacemacs 那样加入那么多包,也难保不卡
目前发现是打开文件卡,切换project卡,启动卡。 可能是 doom emacs的hook更少,并且做了针对性的优化。 另外,我本身是一个vimer,这种专门为vimer打造的 emacs distribution 更吸引我。
嗯,SSD?
这个跟电脑配置以及操作系统也有关系吧,spacemacs 200+ 包时(Linux系统下)也可以做到这个速度
你加到350+包,然后使用大量自定义包,使用 Windows 操作系统,再看看能不能达到这个速度
单纯看启动速度没有意义,因为只是延迟加载了,加载相应 mode 的时候仍然需要花费时间。
spacemacs 提供了 dumper 方案,提高启动时间的同时可以将 mode 直接加载,不需要 lazy load。感觉这种方式更为先进。
但我选择 spacemacs 的主要原因是因为更习惯 private layer 的扩展方式,各种自定义本地包安装起来毫不费事。并且如果安装的新包需要改变别的 layer 中包的行为,只需要 post-init 或者 pre-init 函数就行了,这种灵活性对我也很重要。
估计大佬看到spacemacs那飞速增长的issues也是心里打鼓了。感觉作者好像有很长时间参与的比较少了吧?
主要是spacemacs和doom定位不同,spacemacs更适合刚用emacs两天的,doom我没用,好像多少要会一点elisp,spacemacs连setq
都不用,改改选项的t
nil
就行,当然同时也造成了不必要的一层抽象。