看了这里的关于新编辑器zed和emacs的讨论,突然觉得有点话想说。就是关于使用emacs的动机。如果要论编辑易上手,emacs肯定比不上其它一些编辑器。功能也比不上一些编辑器或者ide方便好用。我看讨论多是说什么功能和启动速度,卡顿之类的。我也遇到了看起来不太好用的方面,但是真正让我用下来的是这些吗?不是。是emacs的够用的功能和它自身所宣称的自由。自由才是最主要的,只要emacs功能没有说差到根本满足不了需求,那么自由才是考虑的最重要的事情。这个我看有些人根本没有提到,提到了也是作为嘲讽来说的。可是这个确实是我选择emacs的最重要理由。
最初的动机我记得似乎是好多年前在知乎上看到了关于org-mode的安利,于是就入坑了。现在看来,坚持使用emacs的最大动机确实就是org-mode了,此外还有它的高度可定制性,但是也不得不承认emacs的卡顿确实是明显可感知的(也许是因为我在wsl中使用的原因)。不过话说回来,编辑器卡点儿就卡点儿吧,毕竟考虑一下创作的时候,似乎动脑构思的占比应该远高于实际输入的比例,这点卡顿完全可以忽略不计。
随心所欲的定制,十年如一日的手感,相信社区黑客的想象力。
我是因为疫情期间无聊,那段时间身体也不适,就想找个玩具来玩。后面看到 org-mode,觉得有意思,就想着用 org-mode 来管理下生活,但没坚持下去。刚入门没多久,现在已经慢慢把 emacs 用起来了,取代了 vscode。主要用于简单的代码编辑(已经不咋写代码)和用 org-mode 来做些笔记。使用场景比较简单,速度对我也不是什么问题。
能让我有坚持探索动力,还是因为 emacs 的设计理念,比如自带文档,major-mode,minor-mode,实际是 elisp 解析器等等。以前喜欢 vim 也是相同的理由,因为其模态编辑,和高效的按键设计,文本对象等。都是有内在灵魂的软件。
AUCTeX+CDLaTeX是所有编辑器下用LaTeX最无敌的
Emacs社区最有活力和创造力的那一部分,基本上就是一个Geek Help Geek社区,如果有人只是用Emacs没有他想要的feature来批评Emacs,得到的只能是“skill issue”这种嘲讽式回复,你可以只享用feature而不付出代价,但是你不能不付出代价又抱怨没有你想要的feature。一次两次还能慢慢把这个意思说明白,时间久了是个人都不耐烦
因为 emacs 是使用 emacs 快捷键最舒服的编辑器
用Emacs前的动机:org-mode;
用Emacs后的动机:org-mode加高度可自定义性。
我也改了一些插件,写了一些函数,以便更好使用Emacs。这放在其他编辑器上很难实现。
单纯觉得挺 cool 的。再后来就是沉没成本太高了
Org-mode 这样的杀手锏就不说了,以下几点也是我认为也是不可或缺的:
- 高定制性与扩展性
不管新出的编辑器有多快,AI 集成得有多好,都不如深度定制的一个快捷键完成一系列操作来得快准狠, 因为 100% 知道自己需求的只有用户自己。基于 Hook/Advice/EIEIO 组合拳,只要一个包(内置/第三方)的设计合理, 扩展性理论没有上限,也就是说一个 Emacs 的“插件”可以比其他主流编辑器更加模块化,从而更方便地根据自己的需求进行扩展。 - 活在当下的 Lisp Machine
别看 Emacs Lisp 的运行时在 Lisp 方言中不一定排得上号,但作为正统的 LISP , 表达能力与灵活度甩其他主流编辑器使用的扩展语言 (Lua/TypeScript/Kotlin) 几条街不在话下, 并且 Emacs Lisp 的语言特性可以完全按照 Emacs 自己的需求进行定制而不受限于主流语言的开发者或基金会。 尽管现在某些新开发的编辑器嗅到了 Lisp 作为扩展语言的好处并宣称使用某 Lisp/Scheme 方言用于扩展, 但实际上“在 Lisp 中运行编辑器”(用 Lisp 实现编辑器)与“在编辑器中运行 Lisp”(用 Lisp 扩展编辑器)是两个完全不同的世界, - 优秀的社区和用户群体
Emacs 用户往往都是真正热爱技术或者对工作流有一定追求的人,所以 Emacs 社区(不管是这里也好还是 Reddit 也罢) 的活跃程度不输于用户量比它大几十上百倍的社区,在这样的社区中更容易接触到优秀的人、吸纳新颖的思想与观点, 从而提升自己的能力与认知水平。另一方面,很多 Emacs 用户从积累个人配置开始,多少都具备一定的开发能力, 使得用户不仅是用户,同时也是开发者,也就是说 Emacs 用户不会仅限于提问题,而是提出解决方案, 更不乏那些一个人同时维护几个重量级包的资深用户,这就使得 Emacs 社区不需要太多人,也能维护一套完整的生态。 同时,在这样的生态中开发与相互贡献代码,能够真正体会到自由/开源软件互惠互利的精神,从而形成积极的正向循环。
最开始是用 vim 的,后来觉得 Emacs 能与 vim 相提并论,想试试有什么不一样的体验。 但是试过很多次都没法用下去,直到 spacemacs 出现后才算是入了 Emacs 的门。
到后来自己写配置,用 evil 按键并用内置的 package 做包管理。但总是不自觉要看看包有没有更新,升级成最新的版本,但真不稳定,经常升级后就挂了。
现在按键回归 Emacs 原生按键,包管理用 git submodule ,添加新包的时候依赖也手动管理,从未有过的稳定,配置再没挂过,省心不少。
另外就是定制性了,之前 vim 用的其实也不深,都是照抄其他人的配置,那时候最好的代码补全还是 ycmd。现在 Emacs 可以自己写一些插件了,虽然还是没有读完 elisp 的手册,但完全不影响做一些基础的插件。
由于我主要做前端开发,需要用到 ESLint ,但现有的 ESLint 没有好用的 flymake 支持,主要是速度慢,就自己写了一个后端 emacs-flymake-eslint ,主要借鉴了 prettier.el 的实现思路,自己用还是挺满意的。
不用 eslint 的 lsp 主要就是我用 eglot ,但 eglot 不支持一个文件对应多个后端服务。
原因:编辑操作合理,用着顺手。 我从来没用过其他代码编辑器
想要个能活得久,支持纯文本检索的开源笔记软件,然后看到安利orgmode帖子,从lsq ob犹豫了一段时间就搬过来了。
可以让我知道高手提高效率的方式,然后自己去实践,并且可以把这些最佳实践推广到项目组其他成员,他们并不一定要用Emacs,但是他们会觉得我的想法很有用(NB),其实我只不过是从Emacs社区“偷”学了一点过来而已。
用emacs让我感到自由的感觉,这对于一个高考牲来说太甜美了,我不觉间就陷落了,一直用到现在
多服务器用lsp-bridge吧,天然对js友好
Geek Help Geek
It’s True
因为我是个控制欲很强的人,我想要一款 自己能够 “接近100% 地控制编辑器的行为“ 的编辑器。
我用过 JetBrains 系列,vscode,vim/neovim ,都不能满足我这极端变态的控制欲。
最后,当我接触到 Emacs 之后,我便停留了下来。控制 Emacs 的行为太方便了,我只用 setq 和 advice 这两个东西就能控制 Emacs 99% 的行为了。
哈哈, 我也是用到后面,觉得沉没成本太高了。。。
elisp好写好玩,keymap和advice都是好东西,确实是能很方便的控制emacs行为。
nvim系,lua有点啰嗦,插件还喜欢用第三方binary+经常breaking change。
不过倒是没啥沉没成本,一直在用rider调试,把rider快捷键调到舒服应该也不会很麻烦.