如果您File
> Find in Files...
⇧ + ⌘ + F 您被带到Find Results
,列出了文件和突出显示的匹配项。您可以双击文件名/路径或匹配的行来打开右侧的文件。
我想知道是否有办法完全通过键盘进行双击?
凭借Sublimes出色的文件切换功能,我认为在执行Find in Files...
时必须有一种方法可以将手放在键盘上。
答案 0 :(得分:56)
尝试 Shift + F4 ( fn + Shift + F4 铝键盘)。
答案 1 :(得分:27)
似乎已经创建了一个插件来执行此操作。快速浏览一下,插件中还有一些其他功能。虽然我的原始答案可行,但安装现有插件会容易得多。
https://sublime.wbond.net/packages/BetterFindBuffer
可以使用插件。
import sublime
import sublime_plugin
import re
import os
class FindInFilesGotoCommand(sublime_plugin.TextCommand):
def run(self, edit):
view = self.view
if view.name() == "Find Results":
line_no = self.get_line_no()
file_name = self.get_file()
if line_no is not None and file_name is not None:
file_loc = "%s:%s" % (file_name, line_no)
view.window().open_file(file_loc, sublime.ENCODED_POSITION)
elif file_name is not None:
view.window().open_file(file_name)
def get_line_no(self):
view = self.view
if len(view.sel()) == 1:
line_text = view.substr(view.line(view.sel()[0]))
match = re.match(r"\s*(\d+).+", line_text)
if match:
return match.group(1)
return None
def get_file(self):
view = self.view
if len(view.sel()) == 1:
line = view.line(view.sel()[0])
while line.begin() > 0:
line_text = view.substr(line)
match = re.match(r"(.+):$", line_text)
if match:
if os.path.exists(match.group(1)):
return match.group(1)
line = view.line(line.begin() - 1)
return None
使用命令find_in_files_goto
设置密钥绑定。这样做时要小心。理想情况下,会有一些设置将此视图标识为"在文件中查找"查看,因此您可以将其用作上下文。但我不知道一个。当然,如果你找到了,请告诉我。
修改强> 将示例键绑定到答案的主体中。
{
"keys": ["enter"],
"command": "find_in_files_goto",
"context": [{
"key": "selector",
"operator": "equal",
"operand": "text.find-in-files"
}]
}
答案 2 :(得分:18)
on SublimeText 3
我必须使用F4
(用于转到当前结果文件)和Shift +F4
(用于之前的结果)。
来自默认密钥图...
{ "keys": ["super+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
{ "keys": ["f4"], "command": "next_result" },
{ "keys": ["shift+f4"], "command": "prev_result" },
我希望这篇文章有所帮助。
SP
答案 3 :(得分:9)
命令'next_result'将执行此操作。使用关于使用范围的简洁想法muhqu,您可以使它在您想要转到的行上按“输入”:
,{ "keys": ["enter"], "command": "next_result", "context": [{"key": "selector",
"operator": "equal", "operand": "text.find-in-files" }]}
答案 4 :(得分:5)
尝试 Ctrl + P - 这会在项目中按名称快速打开文件,有关键盘快捷键的完整列表,请参阅here
答案 5 :(得分:0)
可以通过执行带有drag_select
参数的"by": "words"
命令来模拟Sublime Text中的双击(如默认sublime-mousemap
文件中所示)。
但是,您需要假装鼠标是插入符号用于此工作的位置。以下插件将执行此操作:
import sublime
import sublime_plugin
class DoubleClickAtCaretCommand(sublime_plugin.TextCommand):
def run(self, edit, **kwargs):
view = self.view
window_offset = view.window_to_layout((0,0))
vectors = []
for sel in view.sel():
vector = view.text_to_layout(sel.begin())
vectors.append((vector[0] - window_offset[0], vector[1] - window_offset[1]))
for idx, vector in enumerate(vectors):
view.run_command('drag_select', { 'event': { 'button': 1, 'count': 2, 'x': vector[0], 'y': vector[1] }, 'by': 'words', 'additive': idx > 0 or kwargs.get('additive', False) })
与键绑定结合使用,如:
{ "keys": ["alt+/"], "command": "double_click_at_caret" },