Eclipse键盘快捷键:跳转到函数名

67
假设我知道一个函数的名称,但不知道它在哪个文件中声明。Eclipse 的哪个键盘快捷方式可以带我到我正在查找的函数?
答案是:Ctrl + Shift + R,但是这个快捷方式只能搜索文件名,不能搜索方法名。
另外,使用 Visual Assist X 的 "查找符号" 功能可以实现此功能,快捷键为:Shift + Alt + S

Ctrl+H,设置“声明”单选按钮。 - Sergei Krivonos
给一个人一条鱼,你让他有了早餐;教他如何钓鱼,你让他拥有了一生的技能。找到任何键盘快捷键的方法是进入“窗口”->“首选项”,然后搜索键映射,在键映射打开后搜索你需要的操作。这样就可以为该命令设置自己的快捷键绑定了。 - A_P
10个回答

79

虽然这是一个老问题,但为了方便在Google上搜索的人,Ctrl + O可以打开代码大纲搜索,这就是您要找的功能。


16
我正在寻找这个答案,你的回答对我的问题是正确的,但不适用于这个问题。你的解决方案将用于当前窗口的一个函数中。提问者想要一种方法去到项目中任何地方的函数。谢谢你回答我的问题。 - Dearmash

78

是的,这是一个老问题,但我有更好的解决方案:使用F3键怎么样? 而对于Windows用户来说,他们需要按CTRL+O键。


3
当然可以在 Windows 上使用。而 CTRL+O 只会在当前文件中搜索,你必须输入你想查找的对象名称,即使光标已经停留在该对象附近。 - SuitUp
如果一个方法是接口的一部分,可以使用快速类型层次结构,然后您可以导航到该方法的实现。 - David Mann
3
使用 Control + 点击 或 Command + 点击 更佳。也许将“转到定义”映射到除 Ctrl 或 Cmd 之外的其他按键会更好,这样你就可以直接转到默认实现了。 - MrSnowflake
1
在MACOS中,F3是屏幕控制任务,因此我无法使用该键进入方法。 - Makio
CTRL+O是我正在寻找的功能,在当前文件中按名称搜索。 - gluttony

15

虽然不是一个 直接 的快捷方式,但你需要通过Java搜索对话框:

(Ctrl+H):

(Sergei评论中提到,你可能需要在"限制为"部分选择"声明")

Eclipse Java源代码搜索


@VonC:只是出于好奇...您使用什么程序创建如此漂亮的截图? - sivabudh
1
这是最接近的答案,但“Limit to” 应该是“声明”。 - Sergei Krivonos
@Sergei 好的,我已经将您的评论包含在答案中以增加可见性。 - VonC

8

不确定这是否完全符合您的要求,但如果您按下Ctrl+H,那将弹出搜索对话框。默认选项(对我而言,使用Java EE透视图)是Java搜索。我可以输入方法名称,然后在“搜索”块下选择“方法”单选按钮。请注意,“限制范围”块的默认选项(同样对我而言)是“引用”单选按钮。我必须将其更改为“所有出现情况”,以查看方法声明,而不仅仅是调用者。


1
我完全错过了你的回答(我正忙着准备符合梗要求的截图,参见http://meta.stackexchange.com/questions/19478/the-many-memes-of-meta/19775#19775)。但我同意你对解决方案的描述。+1 - VonC

7
按下函数名称上的CTRL + 左键单击,Eclipse会自动打开包含此函数的文件。

4

我使用Momentics,所以不确定这是在Eclipse还是Momentics插件中,但如果是在Eclipse中,我认为这正是你需要的:CTRL + Shift + T


这是Eclipse OOTB自带的功能。不过它只能搜索类。 - justin
也许你只是在谈论Java?我的代码库是C。我使用Ctrl + Shift + T来打开搜索框(可能称为“类型搜索”或类似的名称)。我用它来查找项目中文件之间的函数名。 - user657862
是的,上下文是在Eclipse中具有Java EE支持的Java项目(尽管我不知道为什么这个功能不会出现在普通的Eclipse中)。我手头没有C项目来尝试这个功能,但是我想象一下,由于C中没有类,所以该功能可能会在C透视图中寻找其他东西;) 注意:在项目根目录中使用egrep -R -n“functionName”。是搜索函数用法/定义的方便方法...有时。 - justin
1
它适用于CDT,但对于Java它只搜索类。有类似的Java工具吗? - Sergei Krivonos

2

快速而简单的方法是使用Ctrl+Shift+Up/Down,以在Java中跳转到成员(方法、变量)之间。


OS X 的等效操作系统是什么? - Pravin Sonawane
我不确定,但在OS X上,Ctrl通常被⌘(Command)替换为快捷键,所以我建议您尝试使用⌘(Command)+Shift+Up/Down - Cedric Reichenbach

2
如果要查找的方法在接口中,那么使用快速概述或按下 F3 键跳转到定义时只会带您到接口定义。这通常不是我想要的。相反,在我的 Mac 上,我会按下 Cmd + T 键来获取快速类型层次结构。从类型层次结构中,您可以进入方法的实现。

0

对于Windows用户,只需将光标放在函数名称上,然后按F3即可。


0

函数声明的两种简单方法:

方法1:(整个工作区)
                   在函数调用位置按Ctrl + 左键单击

方法2:(同一页面内)
                   按Ctrl + F打开查找对话框,输入n function_name并搜索。

这些将重定向到函数定义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接