emacs 实在是太优秀了,它什么都好,就是不流畅。

我只是拿fps举例来说明Emacs虽然不卡,但不那么丝滑,像 @samb233 说的那些场景。写代码补全菜单出来也会看情况可能无延迟或有时卡个0.几1秒才出来。综合来说就是不怎么丝滑并容易因为各种配置等对多数人来说体验指数式下降(当然也有插件质量自身的原因)。我平时在Linux上相对也比在mac上好点,但与其它GUI的编辑器除了JB家的相比,就是流畅度就是差点。

4 个赞

补全试试lsp-bridge

认同你的看法,这是可感知的,而且对我的使用体验来说是挺不舒服的,这也是我从其他编辑器转到 Emacs 上最不习惯的一点。

3 个赞

不是,用的mac或者win

是这样的,不流畅

自从解决了某个字体 fallback 链过长的问题以后我的 Emacs 已经很久没卡过了⋯⋯

话说我用过的最卡的编辑器/IDE 是 PyCharm,当年我还在用 2011 MBP 的时候打开 PyCharm 然后第一次按下键盘的时候它大概要卡五分钟才有反应:rofl::rofl:

在Mac上还卡的话,可能是时候换新Mac了(

对于流畅应该有两种层面的定义:

  1. GUI本身的绘制效率,emacs图形绘制效率不如gtk,qt和web,一是因为emacs历史图形代码包袱,二是没有多线程加持,任意代码都会和图形绘制代码抢CPU时间

  2. 长耗时非图形代码效率,这一块有几个原因,一是大数据触发GC,二是代码执行周期或数据交换太大超过100ms就会卡手,三是安装了滥用post-command-hook的elisp插件,四是网络查询导致的卡顿

对于GUI绘制效率,没法跟任何现代编辑器相比较,比如sublime text或vscode,如果比界面本身的丝滑,本身就不合理,因为emacs的优势是插件生态历史最长,这个优点也是导致GUI绘制效率低的包袱。所以大家就不要揪着第一种情况去讨论,平添烦恼。

对于第二种情况,只要优化得当,完全不会卡手,解决方案就是老老实实排查自己配置,不要自己都不排查配置,只抱怨,除了解决不了问题,还给自己和他人添堵。

第二种方案解决方案无非就几个,避免大数据引起的GC(靠emacs异步进程或者lsp-bridge类似技术的插件),优化elisp代码和配置效率不要一次执行太耗时,删除那些滥用post-command-hook的插件,多用strace或者抓包工具调试文件系统或网络阻塞引起的卡顿。

经过耐心调试和排查,emacs在第二种情况的丝滑度不比任何编辑器效果差。

还是那句话,要耐心,着急抱怨没用。

12 个赞

我不认为 Emacs 什么都好,而是有很多不好,但最大的好是其可扩展性,我更愿意称之为「可糊性」。坛友们常常说「糊」了一个xxx,这个糊字就很传神。意味着付出较小代价就能得到想要的功能,可能并不完美,但够用。正是这种免于受制于人时地的特性,我觉得我会用到世界末日。

回到你的问题。你没有积极尝试去解决问题,而是寄希望于别人的猜测,寄希望于别人啥都不用了解、却能一语中的指出问题所在,你是觉得在键盘上随机打字能打出一部红楼梦吗?

17 个赞

OP 就是随口吐槽一下的吧,很常见也很正常的一种水贴方式。我估计他用的是 MS-Windows,那上面用鼠标确实很卡,吐槽一下倒也无所谓…

2 个赞

是不是你用的 windows,我用 windows+wsl2+spacemacs 现在感觉流畅得不行, 之前 mac 执行 describe-function 这类的会卡, 现在也不会

首次在此坛回复,有欠妥还请指正。

作为用了emacs十年以上的用户,对emacs内部机制了解不对,很羞愧。

我主要在linux上运行emacs,通过x-server弹窗到本地,十多年并没有多少卡顿的问题(当然,主要是我使用的环境很单一)

曾经在公司恶心的老旧的server上面遇到过卡顿的问题,当时找了很久的原因,最终任务时图形库导致的,因为通过编译源码,只使用原始的x图形库就流畅了,使用gtk就完蛋。

其他还遇到过一些卡顿的问题, 前面有大佬也回复的很到位了。

我主要使用emacs写代码,多数时候不用鼠标,集中精力写代码的时候 就要求编辑器必须“跟手”,文件切换、定位、查找替换、片选等等每个操作 都必须立刻响应察觉不到延迟, 我认为emacs的表现是非常好的,所以不知道楼主何出此言。

另外,windows上面的emacs也用过,但是实在不顺手,后来就只采用远程linux弹窗的方案了, 不知道楼主是不是用的windows版, 你也没说。。。

另外楼主的问题太敷衍了,也没有自己的思路,不适合发在技术论坛(讨论区)里面, 去灌水区吧

最让我离不开的是 magit,所以我在 vscode 中编程,在 vscode 终端中启动一个只装了 spacemacs-base 和 magit 的 emacs。

1 个赞

magit上一些简单的功能其实可以用lazygit替代,lazygit的操作更简便一些,复杂的lazygit就不太行了,但是使用复杂git功能的次数一般比较少(我在公司内开发的时候基本也只用到简单的功能),如果没有在Emacs上工作的话,可以尝试一下lazygit

1 个赞

eaf-git 基本上横替lazygit

lazygit我在win下遇到中文会闪或不见某些字,有点郁闷

这个BUG一直存在,改成英文能凑合用,不过中文的log就没办法看了。rust写的gitui在我这存在奇怪的bug没法正常使用,比较难受。

我看最新的emacs不是22年9.13那一版吗28,你这个29哪里下的,我想搞个

就是有中文的log咯,碰一下带中文的行都闪,或者一个中文字变成两个字的宽度,基本上没法用,最后还是麻烦点用wsl1的magit来操作一下算了😔

https://alpha.gnu.org/gnu/emacs/pretest/

1 个赞