通过鼠标单击跳转到Emacs中的函数定义

时间:2015-06-12 11:49:12

标签: emacs common-lisp slime

使用Emacs + Common Lisp(SBCL)+ Slime,有没有快速的方法可以跳转到函数的定义(defun ...)而无需键入(find-function)函数的名称? 我正在寻找Eclipse中经常提供的类似解决方案: Strg +(左键单击函数调用)。

3 个答案:

答案 0 :(得分:3)

在Emacs中:

点击要访问其定义的功能,点击C-x 5 Ffind-function-other-frame)。

您还可以将find-functionfind-function-other-windowfind-function-other-frame绑定到鼠标按钮操作。

例如,你提到 Strg +(左键单击函数调用)。不知道Strg在这里是什么,但您可以轻松地将[mouse-1][down-mouse-1]绑定到检查点击位置处的符号的命令,如果它是已定义的函数,则调用{{1}对于它,如果它不具有通常的find-function[mouse-1]行为。

就个人而言,我不会想要这样的行为,但在Emacs中很容易实现。例如:

[down-mouse-1]

答案 1 :(得分:1)

您可以使用键盘。通常' m - 。'或者' esc - 。'在Emacs。光标必须位于符号上。

答案 2 :(得分:0)

通常的方法是使用etags创建一个TAGS文件:

$ find . -type f -iname "*.lisp*" | etags -

然后,执行M-x visit-tags-table并导航到TAGS文件。加载标记后,只需在函数上点M-.,它就会在当前缓冲区中打开。

此外,您可以使用M-*返回之前的位置。

如果你正在使用射弹,你只需将TAGS文件保存在项目根目录中,就不需要运行M-x visit-tags-table。首次按M-.

时,Projectile将自动加载标签表