我遇到过vi风格的Emacs键绑定,但是我过去在.emacs文件中混合基于Lisp的配置以启用各种模式等的经验,到目前为止还不是很愉快。阅读了几篇关于Emacs + Erlang的文章,但是对于那些主要熟悉vi的人(以及不熟悉Lisp的人)来说,有没有什么东西可能稍微容易一些?所有的可能性(键绑定)是相当压倒性的。是否有一个浓缩的键Map/快捷方式参考特别相关的Erlang开发?
ifsvaxew1#
只需要使用vi和命令行就可以了。有很多人都在这样做,而且似乎对他们来说效果很好。尽管我使用Emacs,但我使用的不是Emacs-Erlang交互。相反,我通常只有一个单独的Erlang shell,然后我用l()命令在该shell中加载模块进行交互。逐一回答您的问题:
vi
l()
一旦你将多个进程添加到混合进程中,你会发现传统的调试已经不起作用了。接下来的技巧是跟踪和Assert,你需要学习一种不用运行程序就能读取程序的方法,看看它们在调试器中的位置。也就是说,尝试在Erlang shell中执行debugger:start():)还有跟踪系统和 * redbug *,这是一个构建在它们之上的第三方工具(eper套件的一部分)。
debugger:start()
eper
cprof
eprof
fprof
appmon:start()
tags
make tags
xref
yv5phkfx2#
Viper mode提供了Vi风格的键绑定。这可能是最简单的开始方式。在.emacs中启用新模式是使用Emacs的一个非常基本的部分,所以这是一个学习障碍,最好尽早清除!Emacs manual包含有关对键绑定进行单独更改的详细信息。您可能会发现Xah's keybinding tutorial很有帮助,因为它提供了许多示例。
2条答案
按热度按时间ifsvaxew1#
只需要使用
vi
和命令行就可以了。有很多人都在这样做,而且似乎对他们来说效果很好。尽管我使用Emacs,但我使用的不是Emacs-Erlang交互。相反,我通常只有一个单独的Erlang shell,然后我用l()
命令在该shell中加载模块进行交互。逐一回答您的问题:
一旦你将多个进程添加到混合进程中,你会发现传统的调试已经不起作用了。接下来的技巧是跟踪和Assert,你需要学习一种不用运行程序就能读取程序的方法,看看它们在调试器中的位置。
也就是说,尝试在Erlang shell中执行
debugger:start()
:)还有跟踪系统和 * redbug *,这是一个构建在它们之上的第三方工具(eper
套件的一部分)。cprof
、eprof
和fprof
在作用域、对程序的影响以及是否可以在生产系统上运行方面都略有不同。我倾向于使用eprof
,并且在程序中有一个旋钮,它将生成一个eprof,然后在程序开始时附加它。appmon:start()
。tags
文件,这样你就可以跳转到光标下的定义点。Emacs也可以这样做。我有一个make tags
目标来创建这些文件,这样我就可以很容易地在源代码中进行跳转。跳转时,你有一个以前跳转的堆栈,这样你就可以在以后返回到你跳转的 * 起点 *。xref
,可以用来创建调用图和发现代码中的奇怪东西。这需要你编写一些代码,但是它确实为你提供了必要的工具。yv5phkfx2#
Viper mode提供了Vi风格的键绑定。这可能是最简单的开始方式。在.emacs中启用新模式是使用Emacs的一个非常基本的部分,所以这是一个学习障碍,最好尽早清除!
Emacs manual包含有关对键绑定进行单独更改的详细信息。
您可能会发现Xah's keybinding tutorial很有帮助,因为它提供了许多示例。