开放性议题:各位Emacs党为什么没跳出神之编辑器这个坑


#41

这也是目前国内大多数人的想法。现在生活节奏快,社会浮躁,大多数人都是为了生存。这也是中国很难出优秀开源项目和有创意产品的原因之一吧。没办法,谁让咱们还要还房贷呢?


#42

有更加重要的事情吧,不限于生存。

研究前沿、底层技术也很重要


#43

古人早就总结过了,“磨刀不误砍柴工”。
把适量的时间拿来折腾 Emacs 可以让我节省大量工作上本来要浪费的时间,这样才能把更多时间放在生活上。

何况,对于某些人来说,Emacs 就是生活。:wink:

当你发现投入成本大于收益,就应该及时止损啊。停下来找别的更直接的方案啊。
比如你配了一天也没有搞定如何用 Emacs 舒适的编写 Java 代码,那就别折腾了赶紧加入 Jetbrain 全家桶啊!非要等到折腾了一星期之后才发感慨说 Emacs 浪费了我太多时间么。
忽视了目的,把目标放在了磨刀上,除非你是铁匠,那肯定会浪费时间。

收费,不同的操作方式,软件交互复杂,以及我还得去寻找哪些才是更专业的软件,这些都给我增加了成本,做了很多无用功。不如看看 Emacs 里有没有解决方案,基本上都有,免去了我再费工夫寻找和学习新的软件的无用功。


#44

不能让Emacs高度的可定制化迷失了双眼!

作为一个工具,就让它回归到工具的属性上来。我觉得Emacs最大的可贵之处就在于它是一个工具框架,让你能够将习惯纳入到一个统一一致的工作环境上来。以前我也在各种编辑工具中迷失过,Notepad++、Vim、VS Code、Sublime等等,实际上没必要追求必须在一种工具上干任何事情。

  1. 编码,之前编码常用Visual Studio,发现一个不方便的地方是,若要快速验证想法,就要新建一个Solution和Project,然后开始写、编译、打开cmd验证,久了就发现有些麻烦,而Emacs中则就简单多了,打开一个新文件,写好之后一条compile命令然后eshell就行了。

  2. 笔记,以前用印象笔记,甚至重度使用过onenote,用久了也发现了不妥。印象笔记同步速度及搜索赞,但是编辑功能太弱,插入一些特定内容后格式简直无法直视,后来渐渐弃用。onenote则兼容并包,但是数据格式又属于微软,软件操作繁杂,打开速度慢,有次不知道怎么搞清了缓存,结果一大堆笔记丢了,又爱又恨。我需要一个能够支持丰富内容,又能够进行快速记录和编辑,以及查找的笔记工具,org-mode,很契合。结合grep和rg,查找起来飞快。

  3. python,当然有很多不错的python开发环境可用,pycharm以及anaconda等等,但是,当我写了一段c程序后,想立即切换到python环境来进行自动化验证,又得打开pycharm或者anaconda,新建项目,编码,配置和c程序的连接,经常下来好累。而emacs,仅仅新建一个py文件,切换一个模式即可。

时间久了,在无缝化的环境中习惯了,就不想再折腾,仅仅小修小补用好就是了,把事情干好干快,留出个时间看看书记记笔记,仅此而已。需要在一个新系统上编辑配置一下?用个vi就行,何必必须emacs呢,需要在Windows上搞正式的项目,用VisualStudio和Qt Creator,针对模块细节的验证和试验,emacs + gcc,怎么快怎么来。


#45

看完了所有人的讨论以后,简单说说我平时用 Emacs 的体会。因为用 Emacs 好多年了,大概从 2010 年开始用,基本的复杂的,还有 spacemacs 都玩过了以后。反而懒得折腾,现在为了工作环境和顺手,形成了一套自己的工作流:

  1. 服务器配置文件什么的常常用 vim,因为连接慢希望尽可能快的搞定配置工作,所以依赖快速操作;平时需要快速编辑配置文件或者改几个字符的代码,也会想到 vim。

  2. 平时用 Emacs 的主要工作是写博客、写文章、写邮件、看RSS,当然还有除了看代码学代码写代码,基本功能都用到了。其他太复杂的用的很少,自定义的最近几年也很少用了。

  3. 另外因为经常会给开源项目做做翻译,所以会常用 po-mode,简直好用到爆。

  4. IDE的话偶尔用用 VSCode 或 Atom,因为懒得配 Emacs 的 IDE 了,不过写 C 代码和操作系统底层或硬件调试的时候 Emacs 配过 IDE,非常方便。另外 Emacs 写 Arduino 这种硬件玩物也得心应手。

@BlindingDark 说:当你发现投入成本大于收益,就应该及时止损啊。停下来找别的更直接的方案啊。

其实投入成本大于收益,又无法抽身的情况最常见的是——爱情,当让人心动的“小三”出现之前,可能依旧还需要在当前“配偶”这里继续投入下去。。。哈哈

可是编辑器毕竟不是爱情,高效使用各种编辑器提高工作效率才是关键啊。

我比较认可 UNIX 原则,专注做好一件事,专事专工。也不要给 Emacs 冠“神之编辑器”的高帽,根据自身的使用场景好用、易用、顺手并高效,就可以了,这才是 Emacs(其实也包括 Vim)不同于其他编辑器的关键所在。Emacs 不是神,只是一种信仰


#46

我发现折腾花费太多时间了:joy:为了折腾而折腾


#47

我是觉得用 vim 按键没啥,因为并不是把 emacs 当成了 vim 在用,还是 emacs 的使用方式,只不过按键换了一套而已。而且 vim 的按键已经想当成熟了,大部分主流插件都有现成配置无缝集成,不过还是有少量插件需要自己配一下,需要配得也不多,也就 hjkli 等几个而已。

vim 的按键对我来说已经形成肌肉记忆了,很难改了,而且这套按键对我来说确实舒服一点,我觉得 C-n C-p 都还好,C-f C-b 之类的实在是太难按了


#48

所以说习惯是一种强大力量,对你能提高效率就是最好的。


#49

我也是最近发现这种方式用着很爽。

当有时需要同时做些笔记的时候,用 org babel 更好,刷 LeetCode 就很适合这种方式。


#50

我觉得这只不过这种功能应该成为编辑器标配功能…全都搞一个project不就成了ide了吗


#51

对我来说就是个能进行时间管理的编辑器,比vim好看点。


#52

因为坑里舒服

换句话说就是习惯,习惯/舒服了就懒得动了,此人性也。

但偶尔也会这坑望着那坑深,跑过去待了一阵子,发现更适合了就留下,不适合就放弃,这也是很正常的。

鞋子合不合脚,是非常个人的体验,不必因为别人觉得这双鞋子酷炫,而对自己的放弃有所怀疑,进而列举一堆理由,以期获得来自外部的认同。


#53

其实编辑器和IDE越多越好。。。

比如我,就同时使用好几种编辑器和IDE,Emacs只是众多编辑器中的一个。


#54

为什么不用?我就用!

写出来的东西本来就要在远程服务器上运行(只是说我),那还何必在本地折腾一堆和服务器一样的运行环境,搞来搞去在两个环境下编写、测试、上传、部署,累得要死,当然现在可以用 docker,但我 09 年的老 Mac 只能在虚拟机下运行 docker,资源实在耗不起。

所以我把整个开发环境都放在一台远程的 BSD 上,平时就用本地的 MacBookPro 连上(mosh)终端,spacemacs 近 400 个包启动 2 秒多很快了,当然还是没 VIM 快,真要快就用 --daemon 启动后 emacsclient -t,用内存换速度。

iTerm、mosh、fish、tmux、emacs(spacemacs),这些组合起来简直不要太爽,终端环境完全够用,当然一定要 GUI 时,ssh -X + XQuartz 不就搞定了(mosh 不支持 ForwardX11,没办法,ssh 加上 tmux 也还行。)!

我的原则就是耗时间、耗资源的东西全扔给远程,本地的笔记本根本不用为这些消耗资源。


#55

我是从VIM跳过来的,主要是想看看另一个是什么样子。没有网上吹的那么夸张。看中了的是她的简洁。开始时各种不适应,现在好多了。当然用的也是网上大神的配置,只能说我不喜欢“宇宙第一编辑器”占那么大的地方,好用是好用,但没有一种顺畅感。包括Emacs也是在努力适应大神的配置,同时学习相关知识,感觉挺有意思的。当然也的调试服务器,我选择两个全要。偶然知道还能用她调交换机,瞬间感觉好实用。两个工具用起来我不需要考虑太多操作方面的事,只想着怎么打自己的想法实现。我觉得这就是一个工具应该做的事,你去让她更好的帮助你而不是拖累你。我觉得两个编辑器之所以这么长时间的人们用,流行是应为她们体现了一种思想、哲学。是不是精神永存呢?


#56

上古时程序猿门就在论证ultraedit吊锤vim,现在好多年都没见过ultraedit的帖子了,据说用易语言编外挂的程序猿们都还在用ultraedit当做十六进制编辑器

后来csdn成立了,程序猿门开始在csdn上论证eclipse吊锤vim,现在已经没有程序吹捧eclipse了,因为eclipse已经被jb家的idea、clion、pycharming锤爆了。

后来知乎成立了,程序猿们在知乎上论证vs吊锤vim,vs是宇宙第一IDE,vs必将一统天下呢。

现在已经没人论证了,因为vsc出现以后,不少程序猿开会抛弃臃肿的vs,选择流畅好用的vscode

最近知乎又开始论证vsc能不能吊锤vim

再过几年估计还会讨论vsc++能不能吊锤vim

再过几年可能还得讨论vsc#能不能吊锤vim…

vim的对手都换了好几茬了,只有emacs还健在

作者:悲催的袜子 链接:https://www.zhihu.com/question/284466918/answer/505785244 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文只针对把编程当作长久事业的人,因为如果只做短期的编程,选择容易上手的工具性价比会更高。

长生久视

把编程当作长久事业的话,很自然的,会倾向于选择 一次投入,终身受用,且使用经验可以累积 的工具。

什么样的工具满足这些条件呢?

存活得够久,且尚无衰败迹象

  • 用户基数够大 => 软件没有用户就等于死掉了,足够多的用户基数是软件不断进化的核心动力
  • 架构经得住时间考验 => 不然或许能流行一时,但会因为架构崩坏而死掉
  • 是自由软件,且最好由社区维护 => 不会因为『背后公司倒闭』、『公司没倒闭但项目被公司砍掉』等原因而突然死掉(想想 Google Reader)

使用场景够多

这样投入回报率才更大,且经验累积速度更快

扩展性够好

这样才方便针对自己的需求做调整,这种调整也是一种使用经验的累积(有人说现有工具足够好的话,就不需要调整和扩展,但其实每个人都是不同的,长期做一件事且关心自己水平的人,很大概率会遇到想要针对自己优化工具的场景)

emacs 和 vim 都符合上面这三点。目前大火的 vscode,论坛上的 lazycat 论证过其架构无法避免内存泄露的(忘了是在哪个贴子里看到的了)。

心流

  • 进入心流状态时,编程效率最高
  • 手在鼠标和键盘间切换,会打断心流
  • 打断后再想进入心流状态,会比较花时间

以上三点,自然能得出『常用的工具最好可以全键盘操作』的结论。这点上,emacs 和 vim 都符合,其他软件通过插件可能可以达到。

奇正相生

上面两点,基本就只筛剩下 emacs 和 vim 了。我个人选 emacs,是因为 1. 不适应模式切换(玩 DMC4 我练了很久 Dante 但还是更喜欢用 Nero) ,2. 使用场景(操作系统级)更多,3. 扩展性更好(学点儿 elisp 然后就随心所欲了)。

但这并不意味着就什么都得用 emacs,只是采用『花更多时间在 emacs 上』这个长远策略(『正』)。我也经常试试各种不同的工具(『奇』),特别是 debugger,我基本都是用相关语言比较流行的 IDE (vscode 之于 javascript,Eclipse 之于 Java/C/C++),反正 debug 的时候,好像本来也不在心流里。

至于什么“神之编辑器”啦,看上去很酷可以装X啦 => 建议还是『虚其心实其腹』吧。


#57

一般吹嘘过度的东西,热一段时间就会平静下来,有的会销声匿迹。而历史证明,vim和emacs还健在。 我现在用emacs主要是作为项目开发的编辑器。它不像很多其它的IDE那样,开发用的目的性很强,而是适合不同的人群。开发用也好,学习elisp也好,编辑org也好,涉及的面相对多一些。 当你主要用emacs做开发,用了一段时间,质疑自己怎么还没成为高手。这不是,emacs的问题,而是如何使用它的问题。当然我也不是高手,但它满足我现在的工作需求。


#58

我也是觉得没有顺畅感,但是我用着比vim好用


#59

为什么要跳出去?


#60

写得不错,上升到哲学层面了。不过对“架构无法避免内存泄露” 的观点持保留意见。话说debug 问题,如果 dap 发展起来应该都解决了。