使用Emacs + Common Lisp(SBCL)+ Slime,有没有快速的方法可以跳转到函数的定义(defun ...)而无需键入(find-function)函数的名称? 我正在寻找Eclipse中经常提供的类似解决方案: Strg +(左键单击函数调用)。
答案 0 :(得分:3)
在Emacs中:
点击要访问其定义的功能,点击C-x 5 F
(find-function-other-frame
)。
您还可以将find-function
,find-function-other-window
或find-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-.