Emacs 有没有啥开关可以持续打日志,告诉我什么操作什么函数花了多久,方便我定位问题?
pass 指这个吧?看着有点意思,我的密码用 vim -x 做了个加密笔记管理的。
用 doom 肯定不会是 gc设置不太合适的原因了。doom在这方面肯定都配置好了。 间歇性卡顿更可能的原因确实还是懒猫说的,插件出了问题,或者是emacs天生存在的弊端。
看了下下面的回帖,确实应该是插件问题,GC 不会卡到几秒十几秒。
profiler-start 和 profiler-report
但是卡死还是要用二分注释法去排查,profiler 这时候用不了。
一直在黑苹果上编译最新的master分支,目前30.0.50,默认编译选项,不开native-comp,速度正常,没感觉到卡慢。
几个G?这里面都装了啥东西?
spacemacs 我的目录200M。我用的另一个简单的配置61M。我平时只用emacs写代码,其他功能基本不用。
超长行卡顿确实是痛点, 打开文件之前都不知道有超长行, 打开后卡死就很烦。
这样设置一下呢?
我忘了从哪里抄来的了,据说会改善打开长行文件的性能,但没机会测试。
(global-so-long-mode 1) ;; optimize opening one line/long line files
随便找一个 npm 的包, 把 npm build 的包打开就好了, 因为 npm 会把所有 js 内容都压缩成一行。
一般都是直接卡死。
找到了个 137 KB 的,打开 so-long-mode,开始时有点卡,但是没崩溃。
不过确实表现不如 Vim 和 VSCode 虽然它俩表现也不怎么样。
超长行可以用 Python 进程在外部进行文件切片, 然后像 blink-search 那样做一个 offset + range 的可视区域处理就行了。
这样Emacs就探测到超长行的条件就转发给外部进程, 外部进程解析部分内容再返回给Emacs做语法渲染, 当然这种切断上下文的语法渲染给Emacs做也很难, 可以在Python端做完全文渲染后, 把语法高亮的范围列表也同可视区域一并返回。
这样应该可以解决超长行的性能问题, 又可以用Emacs的文字编辑功能, 仅提供想法, 还没有实践。
这种技术也可以用 PyQt 来实现一些二进制逆向工具给Emacs用。
差一个 ChatGPT 级别的 AI 而不是机械重复的 doctor 游戏。
~/.emacs.d/.local/straight/repos:
$ du -ms * | sort -k1,1nr | head -n 50
608 otp
118 lsp-mode
100 org
48 clojure-mode
48 dune
43 tide
42 evil
41 elisp-tree-sitter
41 melpa
31 ESS
30 magit
28 sly
27 cider
25 flycheck
18 all-the-icons.el
17 themes
15 dap-mode
15 el-get
15 lsp-ui
15 treemacs
13 lsp-dart
13 snippets
12 clj-refactor.el
9 company-mode
8 org-contrib
6 consult
6 markdown-mode
6 rustic
5 evil-multiedit
5 evil-traces
5 lsp-treemacs
5 parinfer-rust-mode
5 projectile
5 smartparens
4 anzu
4 emacs-which-key
4 explain-pause-mode
4 flyspell-correct
4 spinner
3 emacs-smart-input-source
3 evil-collection
3 js2-mode
3 lsp-java
3 ocp-indent
3 polymode
3 use-package
3 utop
3 vertico
3 web-completion-data
3 web-mode
还差一个终端版的 child frame。
其实Emacs应该支持 ncurse , 这样很多终端环境的控件就可以很好的运行了。
我的elpa目录一共36M。目前已经够用了。
doom装的包是直接拷贝git仓库,而且是拷贝整个git仓库而不是只拷贝—depth 1。因为为了方便checkout锁版本。elpa的话下载下来的包就是只有当前版本的编译好的elc文件,大小当然不一样了,