Ответ 1
Кажется, для этого был создан плагин. Взяв быстрый взгляд, в плагине есть некоторые дополнительные функции. Хотя мой первоначальный ответ ниже будет работать, будет намного проще установить существующий плагин.
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
. Будьте осторожны при этом. В идеале, будет некоторая настройка, которая идентифицирует это представление как представление "Найти файлы", поэтому вы можете использовать это как контекст. Но я не знаю об этом. Конечно, если вы найдете его, сообщите мне.
Edit Вытягивание примера связывания ключа в основную часть ответа.
{
"keys": ["enter"],
"command": "find_in_files_goto",
"context": [{
"key": "selector",
"operator": "equal",
"operand": "text.find-in-files"
}]
}