【发布时间】:2018-02-08 13:46:27
【问题描述】:
使用 Visual Studio,我可以使用命令 Edit.NextHighlightedReference 和 Edit.PreviousHighlightedReference 映射到 Ctrl+Shift+↓ 和 Ctrl+Shift+↑。使用此命令,我可以跳过当前突出显示的单词。
Sublime Text 3 是否有类似的命令或键盘快捷键可供我使用?
【问题讨论】:
标签: sublimetext3
使用 Visual Studio,我可以使用命令 Edit.NextHighlightedReference 和 Edit.PreviousHighlightedReference 映射到 Ctrl+Shift+↓ 和 Ctrl+Shift+↑。使用此命令,我可以跳过当前突出显示的单词。
Sublime Text 3 是否有类似的命令或键盘快捷键可供我使用?
【问题讨论】:
标签: sublimetext3
我没有使用 Visual Studio,但是根据这个 MSDN blog entry 和它对这个功能的描述,在 Sublime 中可以做类似的事情。
该博客条目将该功能描述为自动突出显示对插入符号下的符号的所有引用,并允许您在当前文件中的这些引用之间通过键绑定跳转。
在 Sublime 中,可以在对符号的引用以及对符号的定义之间进行导航,但这是基于使用的语法完成的,并且没有此处所需的粒度。
您可以通过将鼠标悬停在符号上来查看此操作。如果您在设置中打开了show_definitions 和index_files(默认情况下它们都打开)并且光标下的文本是一个符号,您将看到一个弹出窗口,允许您导航到定义和/或参考资料。
请注意,没有对符号进行“深入分析”,因此例如两个具有相似方法名称的打开文件可能会混合在列表中,如果符号不是类似方法或函数的东西,它可能不是包括等等。
此外,虽然您可以将键绑定到这些操作,但如果有多个引用,您将收到一个快速面板提示,而不是在它们之间循环。
第三方包可以通过对代码进行自己的分析来增强这一点。可能SublimeCodeIntel 包可以做到这一点,虽然我自己不使用它,所以我不能确定。
您可以利用当前缓冲区中的搜索功能在核心 Sublime 中复制您想要的内容,这可能就足够了,具体取决于您的具体需求。这样做的一个缺点是它不会将结果限制在符号上,而是任何匹配的文本(cmets、类似命名的变量等)。
工作流程是这样的(这里的键绑定适用于 Windows/Linux):
请注意,这仅在您使用 Ctrl+F3 或 Ctrl+D 进行选择时有效;常规选择对此没有影响。如果您这样做,按搜索键将继续您上次使用的搜索(这可能是好事或坏事,具体取决于您打算做什么)。
将以下内容添加到您的自定义键绑定将允许您使用您习惯于在匹配项之间导航的键绑定(尽管它们会覆盖 swap_line_up 和 swap_line_down 的默认键):
{
"keys": ["ctrl+shift+up"], "command": "find_prev"
},
{
"keys": ["ctrl+shift+down"], "command": "find_next"
},
如果您有兴趣,命令find_under 是映射到Ctrl+F3 的内容,而find_under_expand 绑定到Ctrl+D,如果您愿意也可以将它们绑定到其他东西。
为了完整起见,MacOS 的关联键绑定是 ⌘+Alt+G 和 ⌘+D 用于启动搜索的两个命令和 ⌘+ G 和 ⌘+Shift+G 用于在比赛中前进和后退。
【讨论】:
[ { "keys": ["ctrl+shift+up"], "command": "find_under_prev" }, { "keys": ["ctrl+shift+down"], "command": "find_under" } ]