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

电脑上的org笔记和agenda,用git进行版本控制和同步,用其他的org手机端总觉得不得劲,还是要用Emacs才舒服。

可以利用碎片化时间学习。比如在手机上开个lsp练习写代码。

因为浏览器编程不清真啊(雾

主力工作在jb家的IDE上.Emacs作为它的补充就好了.除了工作开发外所有的文本相关的工作都可以交给他.另外它还能帮我发现志同道合的朋友啊.还有就是Org-mode真是无法替代的.每周都用它来回顾自己干了些什么就很好,花多少时间在开发上.花多少时间在学习上一目了然.

因为特殊需求。 我本人是研究DL的,干我们这行的有一个特点:需要很大的计算量,因此程序一般是放在远程服务器上执行的,且每次运行需要3~4天才能看到结果。 因此,我一般会SSH到远程服务器上使用Emacs。我用到的Feature主要是:

  1. 能够在终端里运行。——之前我是用vim的,后来转到emacs,使用evil、evil-leader和自己写的mode-specific leader keymap,可以延续之前vim的使用体验。
  2. Emacs server:我是emacsserver/emacsclient的高度用户。使用emacsclient,除去获得飞快的启动速度以外,还能让emacs来完成tmux、screen等会话管理的任务(见下一条)。
  3. eshell作为会话管理器:我之前说了,干我们这行的程序一般要跑3~4天,那么就需要一个会话管理器来使程序挂在服务器的后台运行。以前我用vim的时候会使用GNU screen,但是后来发现用emacs完全可以替代这个功能。我只要先启动一个emacsclient,接着用M-x eshell启动一个终端,然后在终端里执行我的程序即可。关掉emacsclient之后,eshell可在后台继续执行。(P.S. 我之前用过一阵子multi-term,后来发现eshell更合我意,因为它更加透明)

因此,对于我来说,emacs是我的主要工作环境,以上的这几种feature极大地帮助了我,并且无可替代。我的同行一般会有如下几种工作方式:

  1. 用vim。这个不必多说。
  2. SSHFS+VS Code。编辑代码的体验挺好的,但是不能做到会话保持,依然要依赖tmux/screen。
  3. PyCharm远程编辑。虽然可以一键运行代码,但是自动补全效果并不太好,也没有会话保持。

综上所述,只要我还在读书,就跳不出这个坑。希望能帮到你。

9 个赞

我用emacs的场景就是终端下,折腾过一段时间emacs,基本配置都会,但我后来发现我只用编辑器写代码,而且我不想还要记住不同mode下的不同快捷键,这让我很心烦,所以我又回到了vim

我觉得出于攀比的心思来看待一个工具的优缺点是不合适的(出于借鉴或改进就很好), 因为真正起作用的是人. 对于每一项可以列出的Emacs的优点, 你都有可能找出一个比Emacs做的更好的"专业软件", 但这有什么意义呢? 对我而言, 我为Emacs付出了时间, 而Emacs给我以回报, 这就足够了.

4 个赞

有时候习惯是一种强大的力量

3 个赞

本来打了一大段。。。

其实就一句话,爱与不爱,它就在那里 :joy: 倦了就走,疲了就回来

4 个赞

如果你是因为记不住快捷键感到烦恼,我个人经验是,你还没有入门Emacs… 我基本都不记的,也不太需要。

Emacs 的最基本跳转快捷键,就那么几个,配合evil 用vim的模式,我日常的使用,已经是肌肉记忆了。其他主要功能,我基本在spacemacs中已经很舒服了。

不过这是我个人的意见,轻喷。

2 个赞

就像很多人说的不用记住,A+x查找即可,但是这是其实是很低效的,所以我觉得需要快捷键。

既然你也用vim,那就说说evil吧,magit快捷键是覆盖evil的快捷键,你要上下跳转就不能使用hjkl,而需要npfb了,统一功能在不同mode下需要不同的按键,当然如果抬杠可以说evil-magit啥的,我只是用这个说明evil的快捷键没有覆盖所有的minor-mode就不能提供统一的体验。或者你可以各种费劲周折配的体验统一,但是可能是覆盖了之前的,你要花很大精力去做这个。

emacs本身的按键才是emacs本身的领会,但是我对于M+%,M+:这种按键组合感觉非常变态,没法习惯,这些按完可能后面还需要各种组合键。

当然,这是我个人的体验,我对编辑器的要求是简单高效。

1 个赞

简单和高效放在一起多少有点奇怪,特别是你在用编辑器的时候。

高效通常发生在你对你使用的工具熟悉和熟练; 简单通常发生在工具本身确实不复杂, 你可以容易上手,但并不一定长线看是高效;简单也会发生在你折腾了很久你的工具后,你掌握它,为你所用,这时候你感到简单,这时候你开始可以高效。

怎么去看待高效,长期还是短期,什么是你喜欢的高效,决定了你对工具的使用方式和投入精力。

Emacs 绝不是一上来就让你简单高效的,但长期的使用,去了解它,我的经验,对我来说,还算是高效,只是中间的代价是有些大,确实如此,我现在基本不安利Emacs给上来只想用IDE的人。

一些人喜欢用它, 一些人习惯用它,一些人就是对它不爽, 都很正常。

另外,我个人使用spacemacs, 站在他人提供的协调好的快捷键设施上,还是挺舒服的,换我自己,还没有写自己的Emacs配置,也挺惭愧。

2 个赞

我就是不习惯同一个功能在不同mode下面有不同的快捷键

配置键位确实挺费时间的,倒不是要给每个minor-mode都重新设置一遍,主要是用着用着看哪个不顺手就顺便改了,evil-normal的键位也被我魔改了很多。

evil已经覆盖了大部分mode,但还有两个问题:覆盖了不该覆盖的,还有一些没有覆盖,解决还是自己多折腾,所以才会有evil-collection这种项目

1 个赞

evil还是水土不服,大项目evil-collection可以覆盖,用的人少的小项目想开箱即用基本不行。所以我换到了emacs原生键位。

对我来说 Emacs 的优势更多地体现在它是个操作系统这个层面:

  1. 使用 Emacs 可以快速管理各种应用,包括内置应用和其他应用(例如通过 counsel-linux-app
  2. Emacs 内置有很多功能强大没有替代品的应用,例如 org-mode magit
  3. Emacs 内置的应用拥有极为一致的使用体验,不会感到突兀
  4. 在内置应用之间切换的开销被降到了最低,切换 Emacs 内置的应用不需要动鼠标也不需要切很多次才能切到想要的应用上面
  5. 内置应用可以无缝地在一起协调工作,例如我装了个有道词典之后我在任何地方都可以使用同一份快捷键快速查当前光标位置的字典,而不是只能依赖鼠标取词之类很麻烦的操作

至于编辑器层面,我倒是觉得无所谓。但是 vscode/atom 不是一个操作系统

2 个赞

我不喜欢用鼠标。IDE无法做到完全脱离鼠标。

1.拿来主义 开箱即用

2.怀疑主义 这玩意是不是能满足我

3.工匠主义 高度定制化 我要这个 不要那个 随心随遇

4 个赞

说实话,我个人还是不太能接受 Emacs 里用 Vim 的按键。可能我这样说,又要引战了吧?:joy::sweat_smile::sweat_smile:

我纯粹是觉得这样丧失了统一性,还有就是习惯问题吧

9 个赞

初衷

我一开始学习Emacs,是因为它:

  • 跨平台(本地、服务器都是一个体验)
  • 不需要用鼠标,很geek,很酷(可能是初学者的通病吧)

现在的想法

现在想想,确实性价比很低。因为我在服务器编辑的机会并不多,有的话只需要进行基本的操作,改一下配置文件,并不需要太高级的编辑功能,nano/vim/emacs都可以胜任。

不过偶尔就是想折腾一下Emacs,它总有一些小东西吸引我。只是不想挖深,Spacemacs开箱即用很适合我这种想法。现在用Emacs倒是没有一开始的geek、酷的感觉,纯属出于好奇心,能够起到调遣的作用。

挖很深,写个插件什么的,可能性会很小,除非我哪天很闲就是想好好折腾一下。 开发插件需要首先对Emacs的体系有个了解,这需要花很多时间,而且这不是通用知识。

从性价比角度上来说,时间应该花在刀刃上,不应该用来折腾“工具”,而应该用于像你说的更通用、前沿的知识和技能上。

Spacemacs 有 evernote layer,不过我还没试过。