spacemacs->doom-emacs了,施工中

嗯,这样修改比在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'")))

3 个赞

可以abuse一下counsel-org-tag, 给他let bind一个git log tag list, 然后默认action设为insert

或者干脆临时把git commit的mode改成org mode好了。。

1 个赞

表示没有看懂并默默点了一个赞

可以呀,把排版格式换成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:

1 个赞

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。。

1 个赞

我也开始施工了,国庆节争取施工完。 2011年的macbook pro,用以前的 spacemacs配置感觉很卡,换了doom 顿时快了很多,更加坚定了迁移的决心。

1 个赞

什么很卡?移动 cursor?

为什么不找找是哪个包造成的,然后把造成问题的包 exclude?

我感觉 doom 不卡很可能是安装的包少,如果像 spacemacs 那样加入那么多包,也难保不卡

目前发现是打开文件卡,切换project卡,启动卡。 可能是 doom emacs的hook更少,并且做了针对性的优化。 另外,我本身是一个vimer,这种专门为vimer打造的 emacs distribution 更吸引我。

Packages:248 Time: 1.139s

嗯,SSD?

这个跟电脑配置以及操作系统也有关系吧,spacemacs 200+ 包时(Linux系统下)也可以做到这个速度

你加到350+包,然后使用大量自定义包,使用 Windows 操作系统,再看看能不能达到这个速度

单纯看启动速度没有意义,因为只是延迟加载了,加载相应 mode 的时候仍然需要花费时间。

spacemacs 提供了 dumper 方案,提高启动时间的同时可以将 mode 直接加载,不需要 lazy load。感觉这种方式更为先进。

但我选择 spacemacs 的主要原因是因为更习惯 private layer 的扩展方式,各种自定义本地包安装起来毫不费事。并且如果安装的新包需要改变别的 layer 中包的行为,只需要 post-init 或者 pre-init 函数就行了,这种灵活性对我也很重要。

3 个赞

image

估计大佬看到spacemacs那飞速增长的issues也是心里打鼓了。感觉作者好像有很长时间参与的比较少了吧?

主要是spacemacs和doom定位不同,spacemacs更适合刚用emacs两天的,doom我没用,好像多少要会一点elisp,spacemacs连setq都不用,改改选项的t nil就行,当然同时也造成了不必要的一层抽象。