有多年用emacs的哥们吗?说说没用其它编辑器的原因

有那种深度用emacs的哥们吗,如编程(不管c还是java),写文字,写情书等都用emacs。
曾经学了几月emacs,不适应繁复的按键,传说emacs高手敲代码时手指像跳舞似的,属实吗?可是有速度吗?
好奇一问,盼高手出现解惑

另,当年学不会emacs最终选择了vim,弹指一晃,已用vim10年,呵呵

补:谢谢回帖的兄弟们,有说是不是要起编辑器之争,有说为何用10年vim还纠结这种问题;都不是,只是个心结,当年学emacs时一直纳闷这么复杂的按键有速度吗,不像vim一个键一个功能,干什么都很”快捷“,盼高手出现解惑。。。

阅读 20k
19 个回答

一群男程序员酒后乱逛,正要集体侵犯一个女子。女子见势不妙,问:那你们说最好的文本编辑器是哪个?程序员们就地讨论了三天三夜不欢而散,女子趁机顺利脱身。

把caps lock和ctrl的位置换一下,就会适应很多了。 原来的sun-type 布局的键盘默认的ctrl的位置就在现在caps lock的位置,现在日本的电脑貌似还是这样的布局。这样的布局,你就不会觉得emacs的按键繁琐了。

sun-type-6

我原来也用vi的,后来转到Emacs,对于一些编程语言,特别是Lisp家族的编程语言,还是emacs比较来的方便一点,不过每个编辑器都有每个编辑器的好处。VI胜在小巧,快速,各种操作方便,但是插入模式和命令模式某些人可能会觉得蛋疼。Emacs更像一个整体环境,高度可配置,自己的配置语言就是Lisp家族的一个分支。实际上只要自己用的顺手就好,只有最适合自己的,没有最好的。

emacs写scala代码将近1年了。久了之后发现ide的那些功能其实不是必须的。唯一欠缺的是debug功能,但debug的次数貌似也不是太频繁。

我想还是简单补充下我目前使用的实际情况来说会更好点。

  1. 首先我主要编程语言是scala,我的配置再 https://github.com/jilen/prelude
  2. 配置我fork了prelude. scala我只使用了scala-mode2和company-mode。并没有使用ensime。

一些我个人认为不是必须的功能。

  1. Incremental build。 IDE都有这功能,ensime也有太吃内存,放弃了,改用sbt控制台持续编译。
  2. 代码补全。 IDE都有这功能。ensime也有,也是内存问题。最终用company-mode代替
  3. api文档查看。这功能实在是很有用,scala目前emacs没有好的解决方案,不过如果你经常使用一些库,那些api基本上都不用查看也知道了。不知道的几个偶尔google一下也可以(可以很方便再emacs里用快捷键google)。
  4. 自动错误提示。这个功能实在是太重要。ensime还是有,还是内存问题,现在我用的是flycheck,只能提示语法层面(syntax)的错误。排除了syntax错误之后,出现编译错误的机率很低,所以没有这个功能,我也不是很care了。
  5. 应用服务器集成(tomcat/jetty)。因为我用的是play,没有这需求。
  6. 代码生成。我一直有种倾向:代码是写出来的。

Emacs一些我认为很有趣的东西。

Keyboard Macro

case class Foo(
f0: Int,
f1: Int,
f2: String
...
f21: XXX
)

如果我想把这些字段全部变成Option类型, 即Int -> Option[Int], String -> Option[String] ...
我会这么操作,

  • 定位在f0: Int,
  • C-( 开始宏定义
  • C-s搜索冒号然后C-f前进到类型声明(Int)位置
  • C-= 选中Int(expand-region)
  • 输入[自动插入[](smartparens)
  • C-b跳回[之前
  • 输入Option
  • C-x e重复执行宏 ()

这些键看起来很复杂,其实操作是很方便的。(暂时先更新这个吧)

mode

emacs有许多许多的mode。上面就提到了expand-region和smartparens,另外还有org-mode,auctex,magit等等

按键

按键说明起来复杂(我用了很久之后才知道Windows键可以表示emacs中的S),实际使用很快。比如projectile里搜索一个git工程文件:
C-c f 其实只有Ctrl - c (因为习惯问题,按ctrl键基本上是本能了,非常快) 然后按f键,很快就按好了。
不过,如果长时间使用emacs,键盘是很重要的。http://ergoemacs.org/emacs/emacs_best_keyboard.html 这里有一些推荐

一开始用vim,当年学术论文都是用vim和latex写的。
2010年转Emacs,估计会一直用下去了。
也不会用sublime,因为习惯了在Emacs中操作命令行,习惯了在Emacs中整理文件夹。
不用vim,是因为vim的快捷键忘了就得查,而emacs忘了按键,还可以用命令的名称,而且命令的名称都很好记。
还有,Emacs的org模式不能抛弃啊,用来做笔记和日程管理,很方便。

你能用vim用10年,自然有人用emacs用10年的。我初学linux也是用的vim,后来遇到emacs,用了一段时间还是适应不了,如今还是vim,不过也只是在命令行用用,编程什么的都交给IDE了,毕竟老折腾配置也不是个事。

之前用emacs写clojure,换成idea

用了10年emacs

没啥感觉,习惯了。

难道不是因为好不容易才背下来了点儿热键。。。

vim党4年。。跟你一样,先用的vim,后想学emacs, 总是不成功。可能就是先入为主吧。习惯了就不想换了。最主要的还是emacs能做的程序猿需要的核心功能,没有vim不能做的。没有必要换。

天天刷朋友圈,你会觉得那就是世界上所有的天空、

以前用Vim的时候经常喜欢到处尝试新编辑器,比如TextMate,BBEdit之类的.后来换了Emacs之后对其他任何编辑器的事情和新闻就再也抱不起什么兴趣了.

要问为什么?是因为Lisp很好玩儿...

其实很多人只是因为懒得学而已。。。

使用vim三年不到,最近在集中学Emacs,同时兼用vim。感觉从Vim入手,再转Emacs会容易很多。对这种复杂但是却高效的编辑器多了些理解,Emacs的那些繁琐操作就会被忽略掉了。

记得刚开始用emacs那段时间,我的左小指也受不了。后来把caps-lock和左ctrl互换了,之后感觉实在是爽。
后来在办公电脑上,windows系统,同样的改了这2个键,特别方便,毕竟连续用大写键的时候不如CTRL组合键的时候多。
现在我重做系统、换电脑,或者新安装的虚拟机系统时,首要第1就是互换这2个键。

emacs两年,因为vi快捷键老是忘。emacs快捷键看两次就记住了。基本快捷键都是根据单词首字母来的,很人性化。记得有张图emacs的学习曲线是要比vi平滑的。所以踏上了emacs之路。

以前用vi用的很爽,直到有一天买了x40,尼玛那esc反人类般的小啊,于是改成了emacs~

我也来说上两句,用emacs 如果还在纠结快捷键,说明还没入门,不管你用多久,说明你还没走出初学圈。至少思想上还没走出来。如果你用过vim ,可以用emacs +evil,不用纠结这些快捷键,毕竟,这些只是绑定到命令上的。
就算直接敲命令又怎么样呢。重要的是流畅,使工作能够自然,你喜欢就好了。

新手上路,请多包涵

那是因为你没有碰到spacemacs

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏