magit 打开一个大项目好卡,各位有啥优化建议么

公司把所有的 rpc IDL 文件都放到了一个 repo 下 …

eaf-git

贵司是字节嘛?

感觉太重了,要装eaf :joy:

Log那么多, Elisp 性能根本达不到,要不就用外部工具,要不就用EAF, 光靠 Elisp 现在打开大仓库不可能不卡。

而且你可以只安装 eaf-git 。

这个时代, npm/golang/rust 一堆库都可以安装, lsp 都可以忍受的了,还嫌 EAF 大? :joy:

3 个赞

:joy: :joy: :joy: :joy: :joy:

:smirk: 你说服我了,我试一下

虽然未必有用 Speeding up magit - Jake McCrary

2 个赞

以前在知乎专栏“如何提高编程速度”介绍过的我的方案,速度很快.

以命令行为主,以magit为辅.

常用操作可以简单地运行命令行,或者自己用Lisp对命令行做个封装. 如运行 (shell-command-to-string "git log -p"), 输出在diff-mode中打开.

有些操作可以调用magit部分命令,跳过较慢的中间步骤, 如magit-log-buffer-file可以显示选中的代码的所有变更历史,这个功能很有用,自己写有点麻烦,所以我就直接调用了,速度也不慢. 我常用的magit 命令 见 emacs.d/init-hydra.el at 6601f7e993c6d35a182fee62264a228754384b5f · redguardtoo/emacs.d · GitHub

优化还是要建立在科学理性的基础上才有效率,

  • 建立自己的工作流, 知道自己常用的操作和命令.
  • 灵活混用不同技术,比如命令行和Lisp混用
3 个赞

字节 IDL 就是在一个 repo 下的,没记错的话

分析下耗时,然后remove-hook

卡的是magit-status,直接开始你想要的操作(magit-dispatch-popup)而不magit-status就行了。想看git status可以用magit提供的 ! “run command”