Slime/Emacs:用于转到功能的键盘快捷键(非M-)
如何使用键盘快捷键直接导航到Slime/Emacs中给定文件中的函数定义?我知道M-。但这不是我想要的。我已经在文件中,并且知道函数名。文本搜索不会直接带我到函数定义,因为它也会带我去调用该函数的站点 对于那些也了解Eclipse的人来说,我正在寻找使用Ctrl-O打开outline视图的等效方法,然后当我键入方法名称时,它将过滤(elide)到我想要的函数,然后我只需按enter键,它就会将我带到那里Slime/Emacs:用于转到功能的键盘快捷键(非M-),emacs,slime,Emacs,Slime,如何使用键盘快捷键直接导航到Slime/Emacs中给定文件中的函数定义?我知道M-。但这不是我想要的。我已经在文件中,并且知道函数名。文本搜索不会直接带我到函数定义,因为它也会带我去调用该函数的站点 对于那些也了解Eclipse的人来说,我正在寻找使用Ctrl-O打开outline视图的等效方法,然后当我键入方法名称时,它将过滤(elide)到我想要的函数,然后我只需按enter键,它就会将我带到那里 如果您有其他选择,我也很乐意尝试。听起来您正在寻找M-x imenu。默认情况下,它没有键盘
如果您有其他选择,我也很乐意尝试。听起来您正在寻找
M-x imenu
。默认情况下,它没有键盘快捷键;我喜欢将它绑定到s-I
:
(global-set-key [(super ?i)] 'imenu)
正如@legoscia所说,Imenu就是答案。作为补充信息,我将提到如何提高您对Imenu的使用
明显的增强是更好的完成(子字符串、regexp等),包括缩小多个模式的选择范围
不引人注意的是专门用于Imenu导航的冰柱,实际上为您提供了一个Imenu浏览器。这是描述的
- 在不同类型的Emacs Lisp定义中,有不同的命令可以导航到:命令、非命令函数、面、不同类型的键映射、用户选项和其他变量
- 导航时,可以对与输入匹配的候选项进行排序,并按排序顺序在它们的任何子集之间循环
- 这些命令有“完整”版本,它们不仅提供与Imenu regexp(例如
)和当前输入匹配的内容,还提供完整的定义(例如,完整的函数定义)(defun foobar(
- 这些导航命令也可用于搜索。特别是,“完整”版本提供与当前小缓冲区输入匹配的完整定义作为候选。当您以增量方式更改输入时,将搜索完整定义,缩小选择范围。然后,您可以在其中任何一个版本之间导航
- 您也可以使用。
它是对Elisp、Clojure和,
公共Lisp和Scheme
所需的功能由
lispy goto
提供,绑定到
g、 它使用CEDET解析整个源目录,
允许您跳转到当前目录中所有文件中的标记
还有绑定到G的lispy goto local
,即
仅在当前文件中查找标记
helm
completion用于两个命令,因此速度非常快。
看看
看电影
您可以看到它比imenu
高级得多:
它可以识别标签类型,例如包中的,defparameter
,
defconstant
,defclass
等。这也可以扩展到任意
标签,如SLIME的定义模式替换
另外,lispy
使用SLIME提供内联参数(替代eldoc)和
评估绑定