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

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

使用 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 文件的时候,会平铺了这么多的文件:

共收到 41 条回复

话说怎么退出。。。

退出 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么?

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

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