使用Emacs在Clojure中进行开发:掌握键盘

作为CloudRepo的创始人,我遇到的问题之一是Clojure开发经验将如何使用Emacs和CIDER。 我一直是Cursive Clojure插件对IntelliJ的忠实拥护者,但我想通过忽略Emacs来确保自己不会错过任何内容。

我认为找出自己的最佳方法是尝试使用Emacs和CIDER进行一周的开发。 那一周我学到了很多东西,但是后来我决定回到IntelliJ和Cursive。

那一周我学到了很多东西。

这是系列文章中的第一篇,将描述从我使用Emacs开发Clojure应用程序时吸取的教训。

我学到的第一课是,如果您想充分利用Emacs的实用程序,则必须首先成为键盘大师。

我的设定

在继续之前,我需要共享本文创建过程中使用的设置。

我在Linux Mint 18.3上将Emacs 24.5.1与CIDER 0.16.0一起使用了。

如果不是Daniel Higginbotham的出色著作《勇敢与真实》的Clojure书,我将不知道如何配置Emacs的基本安装以使用CIDER。

如果您是Clojure的新手,请阅读此书。

如果您不熟悉Emacs,或者不熟悉使用Emacs编写Clojure,请阅读有关在Emacs中使用Clojure开发的章节。

这是本好书。 在亚马逊上购买。

作者为CIDER提供了完整的Emacs配置文件集,但是这些文件已有将近四年的历史,需要进行更新。

我下载了配置文件,从0.8.0升级到CIDER 0.16.0(进行了其他修改),并将它们推送到BitBucket中,以便可以在计算机之间共享它们。

如果有人对使用我的配置感兴趣,可以在此BitBucket存储库中找到他们。

一旦完成所有配置,您就可以重新加入我们,掌握键盘。

现在回到它…

掌握键盘

强迫自己使用键盘进行所有操作是切换到Emacs的最困难部分。

尽管可以将IntelliJ配置为完全由键盘驱动,但是当您不知道需要按下哪些键时,它可以为逃生舱口提供鼠标。

当您有逃生舱口时,它很容易使用。 只需右键单击,通常可以找到具有所需功能的菜单。 问题解决了!

在Emacs中,鼠标并不是真正的选项,它的功能非常有限。

当Emacs第一次启动时,它将盯着您,等待您的每个命令,通常是键盘发出的命令。

首先,为了弄清楚要键入什么,我不断在Emacs和各种键盘装订备忘单之间切换,以找出要按的键。

然后我发现了Mx

Mx

在我的配置中, Mx允许您搜索要执行的功能。 当我想查找paredit命令时,我将输入Mx paredit ,然后在迷你缓冲区中将出现建议功能的列表。

在Emacs Mini缓冲区中显示功能搜索

如果要查看所有匹配项,只需按tab键即可。

在迷你缓冲区中点击选项卡后,显示功能的所有匹配项

我可以使用任何我认为可能与我要查找的内容相关的前缀或单词(例如苹果酒,缓冲区,上一个,下一个等)来进行此操作。

这就是我开始熟悉可用功能的方式。

另外,每当我通过Mx调用函数时,迷你缓冲区都会告诉我该函数是否绑定到现有键序列。

显示您刚刚调用的功能的键绑定

这确实帮助我将功能与适当的键绑定相关联。

一旦我了解了function -> key binding映射,我就开始想知道通过意外的按键和备忘单已经学会使用的键绑定正在调用哪些功能。

学习帮助系统

为了找出某个键序列正在调用哪些函数(即key binding -> function ,我使用了Ch k命令。按此键然后提示您对您感兴趣的键序列。

在迷你缓冲区中键入键序列会导致显示绑定函数的文档。

Ch k-然后Cx o-显示other-window函数的文档

Ch是调用许多帮助功能之前使用的前缀。

另一个有用的命令是Ch f ,它使您可以键入函数的名称并显示其文档。

如果您知道所使用的是哪个键序列,那么一切都很好,但是如果您输入诸如Ch东西后却不知道可以按哪些键,那该怎么办?

这就是whichkey软件包的所在。

whichkey包

whichkey软件包向您提供有关可按下哪些键以及它们将调用的功能的提示。

当我键入Cx whichkey会显示以下内容:

在安装whichkey时键入Ch

哇,对我来说Emacs的可用性有了巨大的提高。 我不再需要搜索要按的右键。 我可以从前缀开始,然后查看所有可用的后续密钥。

当探讨在CIDER中我能做什么时,哪个键是无价的:

在CIDER模式下安装了whichkey的情况下键入Cc

通过显示特定按键的所有选项,我可以自由地进行实验和研究功能。

道路继续

一天或一周内都无法掌握键盘。 它需要数月的持续实践和使用。

在Emacs中,按键的组合是如此之多,以至于乍一看似乎让人不知所措。

本文提供的工具提供了探索构成整个Emacs的关键绑定和功能的能力。

从这些工具开始,您会发现走Emacs路径的痛苦将大大减轻。

坚持下去,迫使您的手停留在键盘上,很快击键将被放入肌肉记忆中,您将执行7个按键组合,如此之快,您的同事就会想知道您是否只按了一个键。