因为 VSCode 不够自由,正在尝试 Emacs。但这个默认界面实在太丑了。试了试几个发行版
Spacemacs,速度很慢,而且不知道为什么在初始界面给我报了很多错误。默认界面不是很亮眼。
Doom Emacs,速度很快,界面也很好看,直接内置了 VSCode 的配色主题。因为针对的是 Vim 用户,有点不好上手。文档比较少。虽然号称很接近原生 Emacs,仍然有些抽象。
Centaur Emacs,界面很漂亮,没有 Evil,看完 Emacs 教程就能上手。就是速度比 Doom 慢,启动比较卡,主要是首屏渲染时间太长。
所以,作为一个 VSCode 用户,想问问有没有更加像素级模仿 VSCode 的发行版?如果可以默认配置下
主题界面直接照搬 VSCode,包括开箱即用的标签 tab-bar,文件目录 Treemacs,内置终端,特别是鼠标支持。我试了一下,很容易就可以配置出表面上 80% 的相似度,但存在各种问题,比如打开新标签有时候会跳到新的页面。
和 VSCode 相同的快捷键。Emacs 的快捷键和现代应用的惯例差太远了,不仅上手花时间,在 Emacs 和其他应用之间切换也需要转换思维。
图形配置界面。Centaur Emacs 有一个简单的设置界面,感觉很好。
Emacs 的亮点是可配置性强,但在默认配置对新人不友好的情况下,灵活带来了难度。如果我可以开箱即用,用一段时间后慢慢调整,那么我就可以立马将它用作日常使用的编辑器。
不知道有没有人做过类似的,这其中有哪些难点,希望大佬指出,给个方向我也尝试一下。
wsug
2022 年7 月 4 日 15:13
4
快捷键模仿vsc这个应该不难解决的吧,完全不用emacs默认快捷键也可以,我就较少使用 ,困难的地方我记得论坛好像有大佬长篇讨论过,是elisp的多线程处理性能不如vsc
1 个赞
rua:
你都这么说了继续用 vscode 不好吗
不够自由啊,VSCode 本身二进制文件并不是开源软件,而且附带了专有软件。微软虽说在拥抱开源,实际上仍然是过去那套策略,发生在 Python 插件和 C# 插件上的臭名昭著的事情就是例子。VSCodium 也没什么发行版打包,Debian 打包还遥遥无期。
jadestrong:
适应一下快捷键就打开了新的大门
适应的还挺快的,比 Vim 好上手多了。但我认为这是历史包袱而不是特性。
性能感觉还好,进一步提升很困难,性价比不高。但提供一个熟悉的初始配置似乎不难。快捷键倒是可以随便设置,不知道怎么做可以既能提供开箱即用的熟悉配置同时使用 Emacs 的特色功能也很轻松。
当然,提升性能也很重要,但 remacs 直接没了,GuileEmacs 也没消息。似乎也是遥遥无期啊。
虽然这么说有点不政治正确,但是我还是想说:作为一个普通的学生(或者是打工人)吃饭的工具用着舒心最重要,不管是自由软件也好,专有软件也罢觉得什么东西用着好就尽管用,别管那些什么争端,写代码本身就已经是一件难事了,不要在用工具的时候还要自己指责自己,给自己增加另外的思想上面的负担。还有开源软件甚至自由软件也可以是用VSCode写出来的,这并没有什么矛盾的地方。另外,如果觉得VSCode不够开源可以看看vscodium。
再者,Emacs和vscode本质上是两种编辑器,真要像素级模仿起来也是非常困难的。而且VSCode本身就相当于一个浏览器,更加鼓励鼠标操作,而Emacs则是从终端时代走过来的老编辑器,更加强调键盘操作。俗话说Come to Rome, do as the Romans do,不妨试试用Emacs的方式来操作Emacs(不过也别事事追求用键盘操作,编程效率和在Emacs上面高效移动手指并没有什么大的关系)
我比较推荐新手用 Centaur 的配置(我当时就是使用他的配置,虽然它打开相对 Doom 慢了一点,但是可以使用 native-comp 优化一下也可以做到很快)并在其基础上面增加自己的插件配置,然后尝试自己攒配置,最后折腾累了就开始使用 Doom Emacs 躺平。
最后说点题外话
……
Emacs能够折腾的东西太多了,从日历到TODO到笔记再到主题,好像一个丰富的世界在自己的面前展开,但是最后你会发现,日历你不会怎么看,TODO你也不会DO,笔记你也很少用到那些你狠狠折腾过的功能,而主题最后你会觉得自带的那个modus-*系列的两个主题真好看(而我则是历尽千帆,归来仍然使用doom-one),这些折腾下来你感觉它们没有什么用,但经历过这些你就会变成老油条,然后配置万年不动。
18 个赞
哈哈哈,所以我正在用 VSCodium。
赞同。另一方面我的编码速度似乎还没高到会被鼠标影响的程度。不过对于我而言,熟悉 Emacs 的方式和熟悉其他软件应该没什么不同,最开始都是用鼠标操作,某个功能用得很多再去考虑快捷键的问题。
完全赞同,Centaur 更接近更好的 Emacs 默认配置的理念,而不是引入新的抽象。对于新手很友好。我已经在用 native-comp 了,但是还是很慢,从 Doom 换到 Centaur 的时候才体会到 Doom 是多么快。
确实,Linux 就可以反复折腾了,不想再折腾另一个操作系统了。所以我特别希望有一个开箱即用的配置,不用专门折腾,有问题的时候微调就好。
性能优化一般有很多方法,根据你的描述,使用emacs29或者gccemacs,禁用dashboard即可。doom-emacs的dashboard是自己定制的。Centaur使用的是emacs-dashboard,可能会加载org所以要慢些。目前在macbook M1上启动在1秒以内,没有优化的必要和动力了。打开一次以后都用emacsclient打开文件,真的没必要在意那么零点几秒。VSCode装上插件启动也慢得要死。。。
用Emacs原生快捷键才是精髓,尤其是在Linux或macOS上用readline系命令行软件,快捷键通用。
2 个赞
界面丑都接受不了,还要什么自由?自由的价值这么低?
「像素级模仿 VSCode 」那你何时能学会 Emacs?那还用 Emacs 干啥?
每一件优秀工具,都有它独特的思想逻辑,自成体系的生态系统。从别的工具汲取一些闪光点是可以的,像素级模仿你是要抽掉它的灵魂。
6 个赞
又想要自由开放,又要IDE的整体配置,确实很难满足
在我这里 Doom 启动在两秒以内,和 VSCode 差不多,Centaur 大概要五到十秒。在用 gccemacs 28。可能是 dashboard 的问题,我试试,谢谢!
确实,和 bash 的光标移动快捷键相同。喜欢原生快捷键的有很多选择,这就是自由软件的魅力嘛。在 Emacs 上可以用原生快捷键,也可以用 Vim 快捷键,再加个 VSCode 快捷键岂不是更好。反过来在 VSCode 上也可以用 Vim 和 Emacs 的快捷键。
twlz0ne:
界面丑都接受不了,还要什么自由?自由的价值这么低?
「像素级模仿 VSCode 」那你何时能学会 Emacs?那还用 Emacs 干啥?
每一件优秀工具,都有它独特的思想逻辑,自成体系的生态系统。从别的工具汲取一些闪光点是可以的,像素级模仿你是要抽掉它的灵魂。
我不认为 Emacs 的过时的默认界面是它的灵魂。使用自由软件也不需要接受一个丑的界面。最受欢迎的几个 Emacs 发行版都提供了更加现代化的初始界面,说明这才是用户的选择。VSCode 的开箱即用的设计也是它流行的一个原因,而 Emacs 提供一个相同的界面完全不会牺牲它的灵活性,恰恰是它的灵活性的体现,“用 Emacs 什么都能做,甚至可以让它和 VSCode 一模一样”。既有一个大多数人熟悉的默认配置,又可以利用丰富的生态和强大的可扩展性,这不是两全其美的吗?
我感觉这几个 Emacs 发行版其实已经满足自由开放+IDE 式整体配置了。如果我是 Vim 用户,Spacemacs 和 Doom 会让我非常满意。我希望也能有一个方便 VSCode 用户迁移的发行版。
rua
2022 年7 月 5 日 02:45
14
你不如看看 emcas 上有什么你想用的,然后把它搬到 vscode 上,我觉得比把 emacs 的 ui 和快捷键改成 vscode 更容易。
1 个赞
我没说丑是它的灵魂,我一向都承认丑是它的不足(但可以忍受)。
你前面说的「像素级拷贝」包括行为模式,这才是触及灵魂的。
就拿快捷键来说。跟 VSCode 理念不同,Emacs/Vi 是很依赖快捷键的。VSCode 快捷键相对较少,很容易把那些最容易按的按键都用安排上了。Emacs/Vi 则需要更细致周全合理的规划,而且这俩的基本按键风格已经成了标准,从中获得的经验可以迁移到其它地方。如果你这都不愿意学,你打算等 VSCode 按键风格占领全世界吗,这恐怕需要一段时间。
1 个赞
很有道理!我试试能不能优化一下 VSCode 的内存占用( 。作为一个 Emacs 新手,Emacs 吸引我的就是它的灵活,自由以及 Orgmode。我看到论坛上提到 NeoVim 也在搬运 OrgMode,打算试试。
twlz0ne:
我没说丑是它的灵魂,我一向都承认丑是它的不足(但可以忍受)。
你前面说的「像素级拷贝」包括行为模式,这才是触及灵魂的。
就拿快捷键来说。跟 VSCode 理念不同,Emacs/Vi 是很依赖快捷键的。VSCode 快捷键相对较少,很容易把那些最容易按的按键都用安排上了。Emacs/Vi 则需要更细致周全合理的规划,而且这俩的基本按键风格已经成了标准,从中获得的经验可以迁移到其它地方。如果你这都不愿意学,你打算等 VSCode 按键风格占领全世界吗,这恐怕需要一段时间。
我倒不认为 Emacs 的丑需要忍受,毕竟可以配置得很好看,反过来把 VSCode 配置得和 Emacs 一样倒是很困难。Evil 不会触及 Emacs 的灵魂,我认为模仿 VSCode 也不会。而且 Emacs 常用的 C-c C-x 等不一定要看作风格的一部分,换一个 Leader Key 说不定更好用。另外 VSCode 自己我认为没什么按键风格, C-c C-v 之类的按键已经是通用设置了,VSCode 不过是遵从大多数人习惯而已。相同的快捷键我在 Firefox 上也能用。VSCode 也有很多常用键没有占用,比如 M-x 就没有任何键绑定。
开放软件和 IDE 整体配置不冲突,楼主列的那几个开箱即用的发行版套件都带 IDE 的整体配置,只是交互和界面是否要整体模仿 vscode 的问题,如果真有这样的,至少刚开始用时表面上很像 vscode, 估计能吸引更多人用 emacs。
楼主虽然说“像素级”模仿,但提到的默认配置需求实际也没有那么精细,基本上除了快捷键,其他似乎90%以上都能满足,比如启动 emacs 就能弹出 vscode 风格的主题和布局,打开标签跳转到新页面可以能要设置一下 buffer、 popup 等弹出的规则,使用性能方面楼主应该还没有深入到多线程引起的问题那里,提到的性能相关问题也只是启动时间,这个有方法加速
最主要是按键,按键不可能完全模仿,最多触发子模块功能的几个按键能够一样(如简单包装一层 vscode-hydra),因为这涉及整个交互设计的理念和生态,也是 emacs vim 等键盘导向的应用的核心竞争力,比如 git 功能, emacs 如果集成 magit,即便打开 git 功能的快捷按键一样,那怎么要求 magit 鼠标化呢?人家设计就是更方便的键盘操作,也没人会去写一个鼠标导向的 git 插件吧)。另外 ivy 等搜索过滤选择, embark/*-action , avy 类的键盘交互的核心不能直接忽略掉吧,而个人认为这些是比 vscode 强大的多的特性,这些不是简单几个快捷键设置的问题,而是整个交互方式了。楼主有空可以参考以下两篇文章。
https://karthinks.com/software/avy-can-do-anything/
而且正如有人提到,如果真的不是有大把时间或真的在崇尚 emacs 环境下学习工作(或者穿越到 IDE 荒漠的年代先遇到 emacs,那时候 emacs 甚至是最好的 IDE,毕竟竞争对手似乎只有 vim),最好还是别指望很快就能用 emacs 做 IDE 来写项目,何况是 vscode 都用熟了的情况下,emacs 还是强在包容的生态,org-babel,org-roam,rime,eaf 等,使得一个搜索界面就可以搜org文档,邮箱,rss,epub,html网页,还能用拼音来搜索!灵活到可以无限微妙化的交互模式(因此可以无限吸收你的时间 ),如果没这些需求和好奇,只是因为自由软件理念换 IDE,还要保留习惯,那应该还有其他更好的慰藉心灵的方式
1 个赞
这只能说明你目前还不是 Emacs 的忠实用户之一。
据我所知,Emacs社区没有把Emacs配置的和VSCode 一样的。有互相借鉴一些优点。
你说的按键,是Emacs的“哲学”,应该不会搞的和VSCode一样。但是你可以自己配置,你有绝对的自由。
把你的详细需求列出来,做成文档,然后要么花钱找人二次开发,要么众筹你自己实现吧,实在想不到会有emacser会闲到去免费维护一个escdoe
mezi
2022 年7 月 5 日 03:28
20
你只是习惯了vscode, 不习惯emacs而已。emacs学习曲线是卷。一千个人有一千多种配置在,各个有不同。理解emacs的自由哲学才能理解emacs的设计理念。 退一步讲,楼主现在就是需要一个像素级仿vscode的emacs,那就按这个目标去配置emacs。emacs给了你这样的定制自由。 可能楼主还不熟悉emacs,目前还没法实现这个目标。 那就先用现成的别人的配置。循序渐进中去让emacs和你融合一体。相信那时你发现自己想要的并不是类vscode。而是 aerdcadc-emacs-editor。