Emacs入坑三部曲
1 作为2016年的开发者,你需要学习Emacs(或者Vi)
2 我为什么从Vim叛逃到了Emacs
3 手把手教你从Vim迁移到Emacs+Evil
一定要记住,Emacs不是只用来写代码的!
你可以用它来做复杂的计算:
为程序员和计算机科学从业者所写的emacs-calc教程
你可以用它来做窗口管理器
使用Emacs作为我的窗口管理器
你可以用它来阅读RSS
在Emacs中用elfeed阅读你的RSS-feeds
你可以把它当成PPT一样来做演示
用Emacs作展示
你可以用它浏览网页
超越编辑器的边界(在Emacs中用XWidget浏览网页)
Emacs内置浏览器EWW
Emacs才是世界上最强的IDE – 用w3m浏览网页
你可以用它管理配置文件
教你用Org-mode管理dotfiles
你可以用它来写电子书
使用org-mode在leanpub上发布电子书
你可以用它浏览图片
Emacs作为图片浏览器
你可以用它管理文件
Emacs文件管理神器--dired常用操作说明
你可以用它来做merge和diff的工具
smerge-mode帮你解决merge confict
使用Emacs ediff作为git diff工具
使用Emacs ediff作为git merge工具
你可以用它收发邮件
使用Emacs发送电子邮件
使用Rmail收取邮件
还能把它当python用
如何编写EmacsScript
它有自己的shell:
用Emacs-shell替代zsh
还有一堆的游戏可以玩
fun-games-in-emacs
所以,你是想入坑呢?还是想入坑呢?还是想入坑呢?
学生好好读书最重要的。现在用不用Emacs只是小事一桩。现在不用,将来可能又捡起来也说不定。
我还是学生时就知道Emacs了,但是一直没想去学。直到人到中年时才开始用,一年也很厉害了,不比那些几十年经验的Emacs用户差。所以早学晚学没什么区别。关键能发掘出Emacs对你的实用之处。
虽然我也算emacs忠实用户,但你的情况我不建议学emacs。说实话,emacs和vim的快捷键联合用会特别头疼,所以我即使用spacemacs也只用emacs mode/vim mode,而不用hybrid mode。也就是说,联合两个编辑器快键是一种不太现实想法。
选择新工具也要有原因,如果emacs提供不了更多vim可以提供给你的 必要 功能,何必花时间去学?
懂lisp和你选emacs也没啥必然联系,因为99%的人都不会自己写插件,最多搞搞配置,撑死了debug一下别人插件的bug。况且emacs-lisp也有一些难以灵活应用的地方,比如dynamic scoping这种特性( 感谢 @Darksun 补充提醒,我当时学的时候用的emacs23版本,信息过时了。24.1后的版本有支持lexical scoping,是用宏基于dynamic scoping做fake lexical scoping,参见 link ;macro虽然很强大,但使用技巧也过于高超:写macro的过程更加像是自定义语言的过程,我其实强烈怀疑初学者是否能驾驭得了宏)。
我用emacs的唯一原因就org-mode,写各种文档和各种管理不要太方便,因为看的书太多,笔记记得太多,所以这种东西对我来说是必要的(其实vim结合Markdown写笔记也应该是够了,只不过我一方面习惯了org-mode,另一方面写latex是我非常大的需求)。
我觉得高中生应该再学点其他基本功比较好。如果你精力太旺盛以至于单纯OI算法让你学的没什么兴致,不如看看高数、线代、概率统计,折腾一下系统、网络、web。也比花时间学一个很难学但是功能和vim差不多的编辑器更加有意义。
值得啊,十分钟入门,简单实用的轻量级背单词利器,也可以作为Proof Assistant的IDE使用
Emacs 值得使用,但是深入与否看个人。我就用 Emacs,VIM 也用(原因是 Emacs 无法编译到一些嵌入式平台)。用 Emacs 的原因是相比手敲指令我更接受快捷键,这方面 Emacs 比 VIM 做得更全面。
不过,当你把 Emacs 整成一个 IDE 或者其它复杂工具集合的时候,你会发现它不仅做不好那些方面,还有高出其作用许多的学习成本。简而言之就是折腾它和它能给你带来的便利这之间的性价比比较低。即使 VIM 这么轻量级的工具加上一大堆配置和插件以后都会变得缓慢,更不要提 Emacs 了。
所以不管我用 VIM 还是 Emacs 我都会让它更接近原始状态。我当然是一个喜欢折腾的人,但我不觉得有意义。
回到问题,Emacs 值得学习吗?如果你确定要用 Emacs 那么它自带的指南你肯定要学习的,网上一些高级使用方式也可以尝试。但是不表示你要把它折腾成一个万能的玩意,其实说实话编辑器一点也不好玩,比它好玩的东西多了去了。
————
另外,我从来不用 Emacs 写代码, 从来不用。 它主要的用途是用来编辑配置文件的。
如果说某些情况要在服务器上写代码,必须使用它。如果是轻量级的(Shell 脚本)那可以,如果稍微重一点的达到小工程程度的代码我会在本机写然后用 CI 自动发布到服务器上,即使 Emacs 玩得再熟也比我这种方式效率低得多。
————
最后,请记住,没有人强迫你放弃鼠标,也不要被强制灌输而接受鼠标等于低效这种洗脑。
spacemacs 用evil mode ,兼具emeacs的强大和vim 的键位
不过貌似vim的用户比emacs多很多
如果谈效率,不需要学,大部分情况下还是IDE效率高。反过来Emacs会耗费你极多的时间用于各种配置。为了一天的工作量而反过来花几天时间把Emacs环境配置顺手是经常的事。
如果谈兴趣,那Emacs几乎是程序员最有趣,也是最有益的玩具之一了。反正我用了二十几年Emacs,纯粹是出于兴趣,而且至今趣味盎然。从不理解为何Emacs可以称为神器,到天天使用离不开Emacs。说实话我现在都很难想象我会花这么多时间在一个编辑环境上,何况我现在基本都不编程了。尽管通过使用Emacs我对动态编程理念等方面的确有了更深入的了解,但是我很难说投入的这些时间让我得到了多少收益,因为这些都是次要的,兴趣就是兴趣!
不必要专门去学,掌握以下几个编辑方法就可以开始用了:
以上大概需要你五分钟的时间。如果你需要长期工作在shell环境下,学会了emacs/Vim还是很方便的。曾经不会用命令行编辑器,导致只能用sed/awk来修改配置文件,这种事,刚刚入职的时候还能犯一犯,经常犯总不太好。
其他的高级功能慢慢的用到了也就会了,没用到的也可能就和你的使用场景没什么关系。
我从来没花大时间折腾过编辑器,但是持续用了五年左右的emacs之后,这已经是最顺手的一个编辑器了,golang和c++环境都不知不觉间配置了起来,算起来调整配置的时间可能也没花一两个小时。
说起来也不是用了什么编辑器就要忠贞不渝的,我看别人的c++代码会用woboq_codebrowser,写自己的代码用emacs,写Java用Eclipse(好多年没写过Java了,据说JetBrains家的IDE要好很多),改一些奇奇怪怪的配置也偶尔用用Vim。
工具说到底是手里的锤子,好用就行了,你总不能指望它变成手。
不值得学, 也不需要学. 但是很值得一用.
cider和ensime之类的, 我个人觉得都比jetbrains家的好用
不值得,顶多熟悉下 key binding,以后在不同ide/editor 里都选择 emacs mode 减少学习成本。
Guido 都吐槽过用 Emacs 是 old school mind compatible,真没必要折腾。
引以为豪的org mode 也没好到非它不可的地步,好笔记软件多了去了。
特别是刚学编程的人,应该重心放在编程,而不是 yak shaving。
利益相关,用了 Emacs 7年,写过一些插件,因为习惯,现在还少量使用。
现答案:值得,应该学。
原答案不符合本人现在的观点,删除之。
对于 Emacs,我觉得很值得去学:
另外我觉得 Spacemacs 已经把门槛降到非常低,连我这种菜鸟都能学会。对于 Vim 用户,转 Spacemacs 更是方便至极。更多的可以看我之前写的一篇博客: 为什么要用 Emacs
先说说 Emacs 给我带来的方便
然后说下不推荐的:
用过一段时间以后, 就会想把 Emacs 搞成各种 ide. 但是成本确实太高, 而且真的不好用... 可能是因为我是用 IDEA 的吧... IDEA 可以一键设置Emacs快捷键. 真是嗨的不行, 别想着拿来写代码了, 真的不方便. 各种跳转, 智能补全远远不及IDE, 而且配置繁琐, 分分钟让人想弃坑.
最后总结一下:
Emacs 带给我的主要就是一套操作光标的快捷键, 这个是目前为止最有用的. 当然只要操作光标能不用鼠标, 自创一套快捷键也无所谓, 我想没用Emacs之前, 没多少人知道 Windows 的移动行首行位这种快捷键吧. 都是用鼠标点的, 次数频繁了以后真的很烦躁的...
根据题主已有描述的情况,和我的一些推断,我认为不值得题主学习,理由如下。
1. 作为高中生应该没有非桌面的Linux环境生产需求。只是桌面环境的话有更多的工具可以选择,可以避免繁杂的入门方式把精力放在更值得关注的地方。
2. 编辑工具本身可替代性很高,没必要因为名气等因素去尝试,是一种可以熟能生巧的东西,在具备环境下再了解与学习成本更低。更何况题主已经会使用vim。
3. lisp语言本身分支较多,没必要从elisp入坑。想了解函数式编程思想应该有更好的方式,这个我不了解就不妄言。
标签:Emacs,值得,学习