使用 Emacs 已经六、七个年头了,用一句话总结,那就是:越用越喜欢。
清楚地记得,六、七年前的那个时候,被 wordpress 所迷,被 Html、Css 所迷。觉得这些内容,和平常工作中接触的 Java 相比,轻巧灵动、直截了当。而且,书写代码的感觉也是不同,写 Java 用的 IDE 一跑起来,特厚重、特霸气、整个机器上的其他软件居民,最好都为之让路;而写 Html、Css、Javascript、PHP,就用 EditPlus 好了,轻巧、干净、整台机器依旧身轻如燕。
这个新世界,所见即所得,让人沉迷。写着写着,我想:如果有一款可以把多个文件内容,平铺开来,同时展现的编辑器就太好啦!用 Google 搜索、果然有啊,Emacs 和 Vim 两大神器、跃然眼中。
我几乎是同时尝试学习 Vim 和 Emacs 的,可能学习 Vim 还要早几天,也不知是什么缘故,可能就是手感、或者是分窗口的操作,我最后用上了 Emacs,并一直使用到现在。
这两年,我也向朋友们推荐 Emacs,有些朋友也喜欢上了,并在日常中采用。还有些朋友,不太喜欢 Emacs,并反过来,推荐我使用 Sublime,说:只要记住快捷键、Sublime 一样迅速;而且,你看你,Emacs 都没有行号的、也不区分 空格 和 Tab 显示的。
作为一个只满足于用 Emacs 写东西,并不深究其内涵的人,我一时无法对应回答。便也试试 Sublime、果然强大、而且好看。但用着用着,还是回到了 Emacs 的怀抱中,因为:Emacs 能够满足我以下这些要求:
那,没有行号、怎么办?不区分 空格 和 Tab,怎么办?
首先,这不是 Emacs 的过错,而是我个人的习惯,只要调整一下 Emacs 的配置,也就可以啦。
一直想写写 Emacs 的闲谈,当作总结分享,也希望借此机会,结识友人,深入了解一下 Emacs 的内涵。
好啦,闲谈(一)就到这儿,贴两张平时使用 Emacs 的截图吧。
一般来说,我写着写着,就平铺了四、五个文件:
有时候,特别是编写 Css 文件的时候,会平铺了这么多的文件:
退出 Emacs 的操作:
第一步:按 Ctrl-x(按下 Ctrl 键不放,然后按 x 键);第二步:按 Ctrl-c(按下 Ctrl 键不放,然后按 c 键)
上面的操作,按照约定俗成,以后就简写为:C-x C-c
为什么不试试 vscode,说实话我觉得现代编辑器完全可以淘汰掉 emacs 这种怪物了。时间成本太严重了,等我学了 emacs,我有这个时间,为什么不多学点语言底层,算法,框架等等,这些才是安身立命的东西,vscode+vim 键盘模式完全可以符合我日常开发 80% 的需求,另外 20% 可以安装其他的工具替代掉。这就可以了。我也不见得,没有 emacs 就开发不了。总而言之,时间成本太高,可能我还没进步到可以挑工具的地步。
使用 Emacs 一年零六个月,目前用着 Steve Purcell 的配置,并着手开始尝试慢慢自己配置,尝试过 ST3, VIM, IntelliJ 家的相关 IDE 之后我最终选择了 Emacs.
一直想学一下 Emacs,真是没时间。要做的事太多了,优先级都比它高。
一块屏幕分那么多窗口我感觉太憋屈了,在公司或在家里我都是三块大屏幕。
服务器上我用 Vim,平时不会用,那些所谓手不离键盘的高效率对我没那么重要,程序员的瓶颈不在打字速度上,除了打字外,构思,计划,调试,测试占了很多时间。
从早写到晚的程序员应该还是有的,不过我没见过。
哈哈。握手。
我看到其他同事用 tmux 也是分割好几个面板,我到现在也还是不喜欢这种用法,依旧一个 window 一个 pane。
为用 Emacs 的 brony 点个赞,VScode 在 typescript 这块很强,写 Go 则更喜欢 Goland。反正工具就是工具,不要上升到信仰。
在北京一家公司,北京好多 Clojure 的公司呀
我几乎完全用 Lisp 来工作,前端单页面用 ClojureScript, Clojure 写后端 API, 还有写 Clojure 调用 Spark 流式数据分析,个人还用 Clojure 写 Android 应用。编辑器用 Emacs Lisp 写帮助编辑函数,爽到爆
Emacs 和 Tmux 的分屏,手感很不一样,Emacs 的分屏,很适合参考多个文件,进行编写;Tmux 的分屏,很适合同时跟踪不同的 log。
推荐 vim 用户可以试下 Spacemacs,集成 evil,最流行的那些 vim 插件 Emacs 也都有替代:
另外还有 org-mode, magit, inf-ruby, projectile-rails, robe, rspec-mode 等等让你爽得不要不要的,如果你受够了 vim script 糟心的语法,elisp 也是一个理由。
放个图
我在用 evil-mc, 基本满足我的需求,没用过 vim-multiple-cursors,不知道都有什么功能,其实 Spacemacs 的 iedit-mode 也不错,就是有 bug。。。
开发效率咋样?跟 rails,ruby 相比起来,Clojure 在国内实在是小众啊,比 ruby 还小众。。。不知道在开发效率上咋样?公司产品是啥,能否膜拜、参观一下?
@geniousli 我开发了 3 年多 Ruby,最终还是选择了 Lisp,Clojure 是 Lisp 的方言,对于我来说,Clojure 的开发效率比 Ruby 还高,而且函数式编程非常清晰明了。
很享受那种写代码停不下来的感觉,不用担心副作用操作,我的老大写 Clojure 都不用调试的,因为写纯函数,只要思路推导正确,结果就是正确的。
公司产品主要是后台 Clojure 的 Web API, 前端单页面 ClojureScript, 还有 Clojure 调用 Spark 流式大数据分析等。个人还用 Clojure 写安卓的一些原生应用 (未开源), 开源的项目小例子:讯飞语音 sdk
ClojureScript 超级爽呀,我现在写前端单页面或者游戏,不用在 Chrome 上调试,直接在 Emacs 的 repl 上开发就能完成了。
它几乎可以非常快速的开发出非常复杂的前端或者游戏来,甚至像 js 编辑器那么复杂的交互,普通的 ClojureScript 水平都可以很快开发出来。
以前我不喜欢前端的,因为 ClojureScript,我爱上前端开发啦 这里有简单的一个 ClojureScript 写的 js 游戏:https://github.com/clojurescript-scope-games/flappy-bird-demo, 也可以看看演示的视频:
我看下,想切个语言,js 实在太屎了。。。不过在纠结用什么好,现在市面上好多转换,不知道哪个更成熟些。纠结 haskell 转还是 clojure 转中。。
你现在是码前端么?我看 clojure 可以直接转 java 字节码&JavaScript,直接一次书写满地跑的构想。。。