考虑退坑 Emacs

23 小时 58 分钟前
 KevinKL

前两天看到 “考虑退坑 Vim” 的帖,这么年的编辑器之争,不写个 “考虑退坑 Emacs” 的话好像 Emacs 赢了似的。

生产力与爱好

本人十年以上 Emacser ,曾经各种折腾 Emacs 配制文件,几乎所有的开发工作都在 Emacs 中完成,也曾自己写 elisp 插件。从一开始的把 Emacs 配成一个花里胡哨的 IDE 环境,到后来的大道至简,只保留一个全屏的主窗口;从一开始的想要在 Emacs 完成所有的事情,到后来的只用 org mode 和 magit ;最终,到了现在的想要弃坑。

如果将折腾 Emacs 做为一项业余爱好,其实 Emacs 还是有很多的可玩之处的。但毕竟大多时候我们需要的生产力工具,而在工作之余又有多少程序员想摸电脑呢,更别说 Emacs 了,(如果有,那对于编程开发一定是真爱,事实上我确实见过不少这样的极客,而用往往技术超群)。

而做为生产力工具,Emacs 会有以下问题

  1. 折腾配置往往会反客为主。用 Emacs 时间久了太容易遇到一个问题就想去折腾配置,这甚至有时会严重到影响正在做的事情。而且插件质量参差不齐,因为是开源自由软件,很多插件是基于兴趣爱好开发,作者并不为插件的使用负责,所以这常常会导至在使用一个插件遇到问题后又回去折腾配置。而作为生产力工具,我想集中精力的去搞生产,我希望可以做为生产力工具的用户,成为被工具服务的对象,甚至可以为此付费,而不是去反过来服务工具。

  2. 性能和易用性堪忧。易用性不说了,在桌面环境下现代化的交互毕竟是带来了更多的便利性,而且也更加美观,最重要的是减少了心智负担,而 Emacs 主打的按键绑定在现代化的 IDE 中配置下来也会有同样的效率,这样来看在桌面环境下 Emacs 并无优势。

    对于性能方面,我曾三度尝试使用 Emacs 替代 XCode 开发环境(不得不说 XCode 是现代化 IDE 中少有的体验这么差的),但均以失败告终。第一次因为补全不给力放弃了。后来有了 lsp ,补全几乎达到了与 XCode 相当的效果,但发现 Emacs 只有单线程,大文件时打一字卡一下,又放弃了。最后一次有人开发了异步实现的补全插件,号称最快的补全插件,不卡顿,于是再一次尝试,发现使用了异步线程确实编辑不卡顿了,但补全出来的慢啊,只不过是将卡顿从主线程移到了异步线程,还是严重影响生产力,于是又一次放弃了。

小拇指的问题

很多 Emacser 会遇到这样的问题,因为使用 Emacs 需要大量按 ctrl 键,长期使用下来会导至小拇指痛,但这并不是我弃坑的理由,网上解决方案很多,换 ctrl 键位置,掌压法,用 space 键代替 ctrl 键等,我是交换了 ctrl 键和大小写切换键,同时用卷曲小拇指的方法按 ctrl 键,长期使用下来并无不适。

不得不说的 Emacs 王牌插件

很多人离不开 Emacs 的原因可能就是因为一些王牌的插件了,到现在我仍在使用 Emacs 的原因就是 org mode 和 magit 了,这两个插件在 Emacs 中堪称是杀手级的,而且在其它编辑器中鲜有可以取替它们的功能。

但是因为我之前开发了移动端的 org mode 见 https://apps.apple.com/us/app/metanote-notes-docs-agenda/id6452550221 , 而且桌面版现代化的 org mode 编辑器 Metanote 也即将发布。

而对于 magit ,其实如果不在意资源占用的问题 IDEA 中的更好用。

于是,我发现当我不再需要在 Emacs 中使用 org mode 和 git 时,我再也找不到使用 Emacs 的理由了。

Emacs 社区

这又是另外一个大的话题,Emacs 是自由软件,自由软件的开发依赖于社区的力量,而为了能让更多人参于到自由软件的开发上,自由软件社区往往会有一种浓重的自由软件精神,甚至成为了宗教信仰,言必称自由,言必称开源,言必称贡献,有时你遇到个问题,提个意见,很多人就会反问,你贡献过代码吗?没贡献过就没资格提意见;或者你觉得有问题你为什么不自己修复并提 pr ?种种这一类的往往会压得我喘不过气来,而我只是一个牛马,尚在为生活奔波,何谈贡献,我只想有个好用的生产力工具而已,所以我宁可付费选择商业软件,而不想在这种自由软件精神的重压之下。

国内也有一个圈内非常有名气的 Emacs 社区,如果我这篇帖发在这那个社区,大概率会被很多 Emacs 的忠实用户所反对,而为了避免引起不必要的讨论,我已经不怎么在那个社区活跃了。

Emacs 的仍有用的地方

虽然说了这么多问题,但在服务器领域和嵌入式开法领域,即需要大量使用终端环境的场景下,Emacs 和 Vim 这样的编辑器仍是不可取替的,仅仅使用 tui 就实现了大部分现代化 IDE 的功能,还是非常有用的。

最后,再见了,我的 Emacs 。

2778 次点击
所在节点    程序员
49 条回复
Wh1te
21 小时 54 分钟前
@justdoit123 #1 入库老罗的 TNT 是吧🐶
itskingname
21 小时 48 分钟前
@itskingname #19 ,我之前一直想用 org mode 但是不想要 emacs 。请问 mac 版什么时候上线,我已经迫不及待要使用了。
cj323
21 小时 34 分钟前
哈哈,你和我的 Vim 历程很像

从较真,到淡然
从性能极致,到简单易用
从相信社区,到相信权威

也许我们都长大了
TrembleBeforeMe
21 小时 33 分钟前
@KevinKL #4 理论上可以,实践中没人会去重写几万行的 org-agenda.el
seenthewind
20 小时 20 分钟前
只能说,是我的小拇指当年说服了我退坑。
924412409
19 小时 55 分钟前
可以试试 vim ,不管是偏原教旨的 neovim 还是各种编辑器里面的插件,体验都还不错
yb2313
19 小时 46 分钟前
下一个帖子, 退坑 helix
LuciusChen
19 小时 21 分钟前
metanote 引流?说实话你实现的产品可以支持各种语言的 babel 么?如果只是实现了 org-mode 的子集,那可能你的需求在这个子集中被满足了,不足以说明 emacs 就不值得去尝试了,这个子集外的需求的人还是有很多的。
tomyark123
18 小时 57 分钟前
引流贴 + 机器味
KevinKL
18 小时 56 分钟前
@LuciusChen 不说 org mode ,即使 emacs 也就这么点用户量,引来引去还是我们这几个人,所以引流是没意义的,而是因为我决定开始做 Metanote 的桌面版了,发现好像真的没有用 emacs 的需求了,有感而发。

对于 babel 来说,Metanote 的桌面版会支持,emacs 也是通过外部调用支持的,只是 iOS 是不支持外部调用的,所以 Metanote iOS 版没有支持。

无论是否支持 babel ,我都是支持其他人尝试 emacs 的,emacs 有很多值得学习的地方和优点,包括 lisp 等,即使我现在弃用了 emacs 但依然还在其它 IDE 中保留着使用 emacs 指法的习惯,所以如果有兴趣,并有时间和精力,我还是会推荐尝试 emacs 的
KevinKL
18 小时 29 分钟前
@itskingname 预计一个月内,敬请期待
KevinKL
18 小时 25 分钟前
@924412409 前两天刚看了"考虑退坑 Vim" 😂
nicebird
16 小时 50 分钟前
虽然我用了 8 年 emacs ,但是也就是配置下开发环境,lsp 、高亮、文件管理器啥的。几年才配置一次。
luckycat
16 小时 36 分钟前
Spacemacs 用户路过,没说退坑后使用了哪款新工具?有信心在未来十年内持续使用它吗?
zzhirong
16 小时 32 分钟前
可以考虑一下脚踏板, 健身编程两不误,不过目前还没看到正规厂商出类似产品,小作坊的话,产品的噪音和脚感估计很难得到保证。虽然我用 Neovim, 但快捷键还是好多, 也希望有一个脚踏,这样就可以合法抖腿了。

https://emacs-china.org/t/topic/21877/7
ccpp132
16 小时 21 分钟前
我用 emacs 都快 20 多年了,不过一直不太折腾,没装多少插件,也不用 org-mode 和 magit
有很多年用 emacs 在终端下写代码
现在 jetbrains 的 ide 用的多,不过经常在终端下工作,很多文件处理还是 emacs nw 。非 nw 的模式有点嫌启动慢,虽然这么说,其实也还是会用。
james122333
15 小时 46 分钟前
这已经是一个梗的模版?
Dropless
15 小时 33 分钟前
你说的社区是 emacs-china 吧,以前几乎我每天都会去看,社区里确实有一些非常厉害的人,对 emacs 的生态也有很大贡献,不过我账号被封后就再也没上了。Emacs 我之前用的时候也主要用 org-mode, 要用来写代码得折腾很多东西,最后的体验其实也一般。不过现在 emacs 我也不怎么用了,我觉得 org-mode 太重了, 文学编程也不是我的刚需,然后就换回 markdown 了。现在我用 sublime text ,自己写了几个插件来提高 markdown 编辑体验,效果还不错。顺便提一嘴,sublime text 可以自定义的程度也很高,不过肯定没有 emacs 高就是了,但是足够了,社区里有也 vim 编辑模式插件。sublime text 用的 python 作为插件语言,虽然以前对语义空格有点抵触,当相比 lisp, python 对我来说还是好读好写点,只能说 lisp is not for everyone.
Howlaind
15 小时 31 分钟前
在我接触 Emacs 的早期,听一句「 Emacs 是伪装成编辑器的操作系统」感觉很酷,而迷上了 Emacs ,折腾许多插件,也写了一些 elisp 脚本。

断断续续折腾了几年,忽然想,既然我要一个如同操作系统般的编辑器,那我为什么不直接用操作系统呢?

Emacs 什么都能做,操作系统也什么软件都能装;
Emacs 能自由定制可玩性高,Linux 上的各种组件也能自己拼配自己写。

而操作系统本身在性能、易用性上也都比 Emacs 要强得多。界面交互比 Emacs 里方便,图形效果也好不少,用户基数更大,遇到问题也更容易在网上找到解决方案。

于是 Emacs 在我这就回归了原本的普通编辑器。
听音乐用音乐播放器,看网页用网页浏览器,聊天用聊天软件,管理文件用文件管理器,日程管理也用专门的日程管理软件,改大型项目用现代化 IDE 。也都用得挺好的。毕竟这些软件本来就是被这么设计出来干这个的。

而普通编辑器本身的定位嘛,Vim 也好,VScode 也好,用起来差别也不大。Emacs 冷启动还慢。

最终,就渐渐不怎么用 Emacs 了。
xfq
13 小时 31 分钟前
Emacs committer 路过……不过工作生活应接不暇,太久没有贡献了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1131911

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX