开发工具 Emacs 闲谈 (一) 引言

doosolar · 2017年11月07日 · 最后由 chenge 回复于 2018年09月06日 · 10410 次阅读

使用 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 能够满足我以下这些要求:

  • 一个屏幕,可以同时铺开显示、编辑、好多个文件
  • 随心所欲,编辑 Web 开发中用到的:Html、Css、Javascript、Ruby、PHP、SQL、SH 等等文件;
  • 随时随地,记录随想和笔记、并且能够整理出层次感;
  • 直观易用,比如文件管理,也就是文件间的复制、删除、改名等等这些,非常好用,一点都不枯燥;
  • 进退自如,可以随时打上书签、方便以后回来
  • 其他 ......

那,没有行号、怎么办?不区分 空格 和 Tab,怎么办?

首先,这不是 Emacs 的过错,而是我个人的习惯,只要调整一下 Emacs 的配置,也就可以啦。

一直想写写 Emacs 的闲谈,当作总结分享,也希望借此机会,结识友人,深入了解一下 Emacs 的内涵。

好啦,闲谈(一)就到这儿,贴两张平时使用 Emacs 的截图吧。

一般来说,我写着写着,就平铺了四、五个文件:

有时候,特别是编写 Css 文件的时候,会平铺了这么多的文件:

话说怎么退出。。。

退出 Emacs 的操作:

第一步:按 Ctrl-x(按下 Ctrl 键不放,然后按 x 键);第二步:按 Ctrl-c(按下 Ctrl 键不放,然后按 c 键)

上面的操作,按照约定俗成,以后就简写为:C-x C-c

org-mode 是我爱上 emacs 的主要原因

为什么不试试 vscode,说实话我觉得现代编辑器完全可以淘汰掉 emacs 这种怪物了。时间成本太严重了,等我学了 emacs,我有这个时间,为什么不多学点语言底层,算法,框架等等,这些才是安身立命的东西,vscode+vim 键盘模式完全可以符合我日常开发 80% 的需求,另外 20% 可以安装其他的工具替代掉。这就可以了。我也不见得,没有 emacs 就开发不了。总而言之,时间成本太高,可能我还没进步到可以挑工具的地步。

使用 Emacs 一年零六个月,目前用着 Steve Purcell 的配置,并着手开始尝试慢慢自己配置,尝试过 ST3, VIM, IntelliJ 家的相关 IDE 之后我最终选择了 Emacs.

自己写插件是不是还得学 emacs lisp

  • @DiamondCrack : org-mode 也是我记笔记时候,最喜欢用的,排版工整,层次缩进。
  • @cys : 👍
  • @adamshen :我到现在都没有写过,感觉够用了。要写插件的话,是需要看看 emacs lisp 的。

一直想学一下 Emacs,真是没时间。要做的事太多了,优先级都比它高。

一块屏幕分那么多窗口我感觉太憋屈了,在公司或在家里我都是三块大屏幕。

服务器上我用 Vim,平时不会用,那些所谓手不离键盘的高效率对我没那么重要,程序员的瓶颈不在打字速度上,除了打字外,构思,计划,调试,测试占了很多时间。

从早写到晚的程序员应该还是有的,不过我没见过。

Peter 回复

哈哈。握手。

我看到其他同事用 tmux 也是分割好几个面板,我到现在也还是不喜欢这种用法,依旧一个 window 一个 pane。

屏幕/显示器好宽,型号?

没有 Emacs Lisp,我就不会去学习 SICP, 没有学习 SICP,我就不会工作去写 Clojure.

现在用 spacemacs

顶多开俩窗口

https://ruby-china.org/topics/34513 <> 讨论了,显然 Emacs 胜出 Vim

想问,在哪里工作。。。。

为用 Emacs 的 brony 点个赞,VScode 在 typescript 这块很强,写 Go 则更喜欢 Goland。反正工具就是工具,不要上升到信仰。

geniousli 回复

在北京一家公司,北京好多 Clojure 的公司呀 😍 😍 😍

我几乎完全用 Lisp 来工作,前端单页面用 ClojureScript, Clojure 写后端 API, 还有写 Clojure 调用 Spark 流式数据分析,个人还用 Clojure 写 Android 应用。编辑器用 Emacs Lisp 写帮助编辑函数,爽到爆 😍 😍 😍

lana 回复

我用的是:ViewSonic 27 吋,当时也没有认真选,目前觉得:分辨率不够高,打算将来换。

用惯了 vim,emacs 试了几遍感觉还是不太习惯,而且怕对小拇指不好。

adamshen 回复

Emacs 和 Tmux 的分屏,手感很不一样,Emacs 的分屏,很适合参考多个文件,进行编写;Tmux 的分屏,很适合同时跟踪不同的 log。

然而,我一般都是 iTerm2 4 格屏,这么多格子,我屏幕得很大

推荐 vim 用户可以试下 Spacemacs,集成 evil,最流行的那些 vim 插件 Emacs 也都有替代:

  • ctrlp/command-t => helm/ido(projectile)
  • vim-surround => evil-surround
  • neosnippet => yasnippet, company
  • easymotion => avy
  • ctags => ggtags

另外还有 org-mode, magit, inf-ruby, projectile-rails, robe, rspec-mode 等等让你爽得不要不要的,如果你受够了 vim script 糟心的语法,elisp 也是一个理由。

放个图

lululau 回复

好美的截屏,都可以当『 华丽风格 @ Emacs 』的宣传海报啦, 👍 👍 👍 😀 😀

doosolar 回复

这像是 spacemacs 的主题

lululau 回复

试用过一段时间,很多功能都实现不了,比如 multi cursor,还有些自定义配置,不懂 elisp 几乎没法搞

numbcoder 回复

我在用 evil-mc, 基本满足我的需求,没用过 vim-multiple-cursors,不知道都有什么功能,其实 Spacemacs 的 iedit-mode 也不错,就是有 bug。。。

lululau 回复

小 bug 还挺多的,自己也不知道怎么修,而且 Spacemacs 貌似都不怎么更新了

开发效率咋样?跟 rails,ruby 相比起来,Clojure 在国内实在是小众啊,比 ruby 还小众。。。不知道在开发效率上咋样?公司产品是啥,能否膜拜、参观一下?

ClojureScript 怎么样

不过还是喜欢 vscode

@geniousli 我开发了 3 年多 Ruby,最终还是选择了 Lisp,Clojure 是 Lisp 的方言,对于我来说,Clojure 的开发效率比 Ruby 还高,而且函数式编程非常清晰明了。

很享受那种写代码停不下来的感觉,不用担心副作用操作,我的老大写 Clojure 都不用调试的,因为写纯函数,只要思路推导正确,结果就是正确的。

公司产品主要是后台 Clojure 的 Web API, 前端单页面 ClojureScript, 还有 Clojure 调用 Spark 流式大数据分析等。个人还用 Clojure 写安卓的一些原生应用 (未开源), 开源的项目小例子:讯飞语音 sdk

dandananddada 回复

ClojureScript 超级爽呀,我现在写前端单页面或者游戏,不用在 Chrome 上调试,直接在 Emacs 的 repl 上开发就能完成了。

它几乎可以非常快速的开发出非常复杂的前端或者游戏来,甚至像 js 编辑器那么复杂的交互,普通的 ClojureScript 水平都可以很快开发出来。

以前我不喜欢前端的,因为 ClojureScript,我爱上前端开发啦 😍 😍 😍 这里有简单的一个 ClojureScript 写的 js 游戏:https://github.com/clojurescript-scope-games/flappy-bird-demo, 也可以看看演示的视频:

直接用 c9,走到那都可以撸码

我看下,想切个语言,js 实在太屎了。。。不过在纠结用什么好,现在市面上好多转换,不知道哪个更成熟些。纠结 haskell 转还是 clojure 转中。。

dandananddada 回复

你熟悉 js 的话,ClojureScript 挺容易上手的。

你现在是码前端么?我看 clojure 可以直接转 java 字节码&JavaScript,直接一次书写满地跑的构想。。。

dandananddada 回复

恩,一次书写满地跑。我前后端都写,不过主要精力还是在数据分析,机器学习上面。

搭个内部系统试个毒,看你头像中毒不浅,羡慕。

39 楼 已删除

妥,有机会面个基。

lululau 回复

左边的那个导航栏是用什么插件搞的?跪求!

doosolar Emacs 闲谈 (五) 在 CentOS 的安装 提及了此话题。 06月28日 15:40

喜欢你写的风格,简洁不繁。不知你用 spacemacs 么?

配置调整窗口大小一直没成功。可否写一下这个呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号