Spacemacs 从未入门到放弃么

从接触emacs到使用spacemacs也接近一个月了,但仍然有种未入门的感觉,遇到很多问题不知道如何解决也不知道如何检索,google能检索到的结果也极其少,尤其是遇到有些问题或bug属于无提示设置没有生效的,完全无思路,请教一路走来的老鸟给点学习路线指导,否则真要「未入门到放弃了」。

使用 Spacemacs,你需要对基本的 Emacs 和 Evil 插件的概念有一定理解,比如什么是 major-mode,什么是 minor-mode,然后 mode-hook 是什么,有什么作用?

evil 有哪些 state,state 和 mode 的区别是什么?怎么在 evil 不同的 state 下面定义快捷键,这些都是需要理解的。

我相信在 Spacemacs Rocks 第二季的前 10 个视频里面,除了视频的内容,我都有补充课后阅读材料,回头再把文字版本的 Spacemacs 1-7 看一篇,多读课后文档,多读 Spacemacs 本身的文档,遇到文档中不理解的,来这个帖子一起讨论。

Emacs 内嵌文档,如果是 Spacemacs 的话可以按 SPC h SPC 来看所有文档,文档写的非常好,而且还有个 Quick Start,你可以先看这个。

google能检索到的结果也极其少

如果用词准确而且搜的是英文关键字的话应该不会有这种情况,spacemacs 大多问题都能直接搜到对应的 issue

我使用emacs时间不长,到现在也是接近一个月。我用emacs的时候是直接用的spacemacs,因为我之前一直是用vim的。


技术上和学习思路上我没法给出什么建议,不过从心态上我倒是可以楼主点我自己的看法。

  • 首先,我不明白楼主为什么要放弃,也不知道楼主用的什么编程语言或者只是写文之类的。在我看来,我写python,ruby,js只要有自动提示功能和跳转定义功能就基本足够了。spacemacs基本完全兼容了vim,如果有基本的vim操作入门技巧,完全不会产生退缩的想法。

  • 其次,我常用的emacs快捷键or功能,无非也就是C-x b,C-x f,C-x s,对于动态语言的基本编程绰绰有余。我虽然从一开始学emacs时就把emacs作为自己的主编辑器,但是我的学习重心是在org-mode上,毕竟这是我从vi转到emacs的最大动力。

  • 最后,我觉得是楼主想学的太多,学的太快,导致碰到的问题都集中起来,让你觉得过于疲劳。其实放松心态去学是最好的,想多学emacs的技巧是对的,但是如果你太累了,就放松一下,把问题放下来,慢慢的去解决,比如一个星期解决2~3个问题。

以上只是我个人的学习观点,我主要是写动态语言,可能和楼主碰到的情况不一样。

ps. 如果是写java,Emacs一定比不上Eclipse,可以把Emacs当作辅助的文本编辑器或代码浏览器更适合。比如我写大型项目也是用的Pycharm,文本编辑器毕竟只是文本编辑器,和为某种语言专门开发的IDE比,还是有一定差距的,在我看来,Emacs最大的优势是跨语言兼容性都很不错)


以下几点是我的方法:

  1. 关于遇到的问题,我都是先去emacs的wiki和google看看,如果得不到想要的结果,就来论坛提问,会有人很热心的帮你解决。

  2. 关于文档说明,因为我一直都在用基本功能和流行插件,所以用 C-h f 和 spc h spc 的说明,基本就完全够用了,BTW,我英语真的超烂,全靠google翻译。

  3. 关于搜索关键字,不要用spacemacs作为关键字,直接用emacs+问题or功能作为关键字,毕竟spacemacs和emacs的索引量差太多了,而spacemacs只不过是emacs的功能or插件集合,本质上还是emacs。

  4. 其实刚学一个月应该不是很熟练elisp,自少我是这么觉得的,我现在只是会基本的函数变量定义及调用,毕竟我还没打算专门学elisp。其实我对lisp很感兴趣,也体验过racket。如果楼主真要深入学习emacs,那么可以先把elisp单独当作一门语言去简单的学习一下,应该很有意思,也容易提高兴趣,还可以分摊一下使用emacs时堆积的问题。


我是个眼不见心不乱的人,为拖延症找的借口是 合理分配时间 , 哈哈。 如果楼主想变成一个懒人,可以根据我的做法分散下注意力。 我觉得一年时间也够成为emacs社区里的高级菜鸟了。

引用我自己的话:

懒才是人类发展的第一生产力!!! 程序员的目标就是让世界更懒!!!

4 个赞

你有用pycharm的那你不知道他家还有个idea么,碾压eclipse你懂的。。
另外我觉得emacs能把自己的所有想法都成功配置好的话,不会比jetbrains家的差,毕竟想怎么搞都行,煮咖啡都行。。
完全不会产生退缩的想法不完全普适,我原来是jetbrains+ideavim,没真正用过vim不过看了山人视频第一季+第二季10集能在spacemacs中勉强存活。但~是~,在做了充分的心理准备之后尝试在工作中迁移到spacemacs时(编辑肯定有不顺手,提示也不如jetbrains友好,比如没有当前所在函数名称显示,但是考虑到窗口调整、buffer切换可以完全去掉鼠标依赖,这个迁移还不算巨亏),还是失败了,因为和同事约定是用tab缩进的,结果发现设了(setq-default indent-tabs-mode t)之后,js2-mode是tab缩进的,但php-mode仍然是空格缩进的。后来学到了**-mode-hook才总算用它解决了这个问题。现在勉强存活中。
总之,学习vim经历让我相信emacs被这么多顶级黑客钟爱,爬它的学习曲线肯定不会白费(山人一篇博客里说学习emacs是他最不后悔的决定之一,因为可以用一辈子),但是自由软件确实比不上商业的那么漂亮(我单位的赛扬炸鸡在jetbrains里编辑如丝般顺滑,在spacemacs里我戒掉了无意识上下jk的习惯,因为掉帧严重。这还是在关了smooth-scrolling之后,关之前那卡顿根本无法存活),需要自己去打磨,运气不好碰到真·bug还要去找作者提issue(evil-multiedit看起来比iedit美几倍,但是前者和spacemacs一起用的时候有重大bug)。

发现一个论坛bug。。我赞了楼上再取消再要赞的时候提示“没有权限查看该资源”。。
刷新一下发现其实是不能取消赞的。。他这里有点不一致。。

我这边可以取消赞,之后再赞也正常。