14

我已经使用 vim 很长时间了,我仍然对它感到满意。6个月前我开始学习clojure。看来emacs是lispy语言编程的首选。但我宁愿学习其他东西,也不愿花大量时间学习如何使用明显不优于 vim 的编辑器。

所以我努力让我的 vim 设置更适合 clojure 编程。

我现在使用的是:

  • vim-clojure-static,提供基本的语法高亮
  • paredit,提供对 s 表达式的结构编辑
  • vim-fireplace,它可以与 vim 中的远程 repl 对话

我也使用vim-redl、redl来获得debug repl,但是IMO以上三个已经可以提供相当愉快的编码体验了。

我的问题是,我是否仍然缺少 emacs 工作流程的一些杀手级功能?

4

3 回答 3

15

emacs 更适合 clojure/lisp 开发吗?是的。当然,你可以没有它。我使用 vim 进行 Clojure 开发,但几个月前我切换到 emacs,我很高兴我做到了。我个人觉得这是一个更好的体验。vim 插件在此期间可能已经成熟了一点,但 vim 在外部进程等方面有一些严重的限制。我有一些我非常喜欢的通用 vim 插件,但幸运的是它们都有 emacs 的替代品。

有几点值得一提:

  • 我使用邪恶模式。就像汤姆提到的那样,它是一个 vim 仿真层。它非常好。我不会错过任何来自 vim 的东西。支持文本对象、所有 vim 模式等。就我个人而言,我不记得所有奇怪的 emacs 键绑定,它们让我发疯。如果没有 Evil,我就不会使用 emacs。我为 paredit 和其他一些插件创建了邪恶的键绑定,你基本上对类固醇有 vim。我现在只使用 vim 进行快速编辑。

  • 定制 Emacs 是困难的部分。我现在喜欢 Emacs,但如果没有自定义的 Emacs 配置,我不知道该怎么办。一旦您根据自己的喜好调整所有内容,就很难再回到其他任何内容。不过,我花了很长时间才达到这一点。如果您想尝试,请查看我的个人 emacs 配置https://github.com/otijhuis/emacs 它仍然需要一些工作,而且我不是 Emacs 专家,但它非常适合 Clojure 开发。这可能是一个很好的起点。

于 2013-06-06T18:56:27.850 回答
5

我想指出vim-clojure-static的维护者即将推出的vim-sexp

vim-sexp

符号表达式的精确编辑

该插件为包括 Clojure 在内的 Lisps 提供映射、运算符和文本对象。

我自己不使用 Clojure,所以我不能确定,但​​该插件看起来很有前途,并且正在积极开发中。

于 2013-06-06T19:41:35.247 回答
2

Lispers 倾向于喜欢 Emacs 的原因是 Emacs 是一个 lisp 机器。如果您已经熟悉语言家族及其趋势,那么能够使用它来扩展您的编辑器真的很方便。

从我自己的(诚然是 Common Lisp,而不是 Clojure)工作流程中,我喜欢自动完成、参数提示和 SLIME 宏扩展器。我很确定你可以为 vim 获得这些,所以不要过分强调其他人正在使用的东西。

请注意,如果您还没有,请查看slimv这篇关于使用 Clojure 进行设置的文章。我自己没有使用过,不是vim用户,但它似乎足够接近。

于 2013-06-06T18:29:49.473 回答