Emacs 29 这么厉害,还差什么关键功能?

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写代码,其他功能基本不用。

我org-mode用得比较多, 超长行卡顿 的问题能解决就好了

1 个赞

超长行卡顿确实是痛点, 打开文件之前都不知道有超长行, 打开后卡死就很烦。

这样设置一下呢?

我忘了从哪里抄来的了,据说会改善打开长行文件的性能,但没机会测试。

(global-so-long-mode 1) ;; optimize opening one line/long line files

随便找一个 npm 的包, 把 npm build 的包打开就好了, 因为 npm 会把所有 js 内容都压缩成一行。

一般都是直接卡死。

找到了个 137 KB 的,打开 so-long-mode,开始时有点卡,但是没崩溃。

不过确实表现不如 Vim 和 VSCode :rofl: 虽然它俩表现也不怎么样。

超长行可以用 Python 进程在外部进行文件切片, 然后像 blink-search 那样做一个 offset + range 的可视区域处理就行了。

这样Emacs就探测到超长行的条件就转发给外部进程, 外部进程解析部分内容再返回给Emacs做语法渲染, 当然这种切断上下文的语法渲染给Emacs做也很难, 可以在Python端做完全文渲染后, 把语法高亮的范围列表也同可视区域一并返回。

这样应该可以解决超长行的性能问题, 又可以用Emacs的文字编辑功能, 仅提供想法, 还没有实践。

2 个赞

这种技术也可以用 PyQt 来实现一些二进制逆向工具给Emacs用。

差一个 ChatGPT 级别的 AI 而不是机械重复的 doctor 游戏。 :laughing:

~/.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文件,大小当然不一样了,