Одним из возможных решений является использование закладок (если вы еще этого не сделали). Я не знаю привязки ключей Linux от верхней части головы, но вы можете добавлять закладки, а затем выбирать все. Чтобы просмотреть привязки для вашей платформы, перейдите к Goto -> Bookmarks
, они должны быть перечислены командой. Вы также можете посмотреть файл привязки ключей по умолчанию.
Второе решение - использовать плагин. Я написал следующее некоторое время назад. Не могу сказать, насколько хорошо он работает, как я не помню. Быстрый тест с ним заставляет меня думать, что все работает нормально.
import sublime
import sublime_plugin
class MultiCursorCommand(sublime_plugin.TextCommand):
def run(self, edit, action="add"):
self.key = "multi_cursor"
cursors = self.view.sel()
saved_cursors = self.view.get_regions(self.key)
if action == "add":
self.view.add_regions(self.key, list(cursors) + saved_cursors, "keyword", "", sublime.DRAW_EMPTY)
elif action == "show":
cursors.add_all(saved_cursors)
self.view.add_regions(self.key, [])
elif action == "show_begin":
saved_cursors += list(cursors)
cursors.clear()
cursors.add_all([c.begin() for c in saved_cursors])
self.view.add_regions(self.key, [])
elif action == "show_end":
saved_cursors += list(cursors)
cursors.clear()
cursors.add_all([c.end() for c in saved_cursors])
self.view.add_regions(self.key, [])
elif action == "show_visible":
pass
elif action == "clear":
self.view.add_regions(self.key, [])
elif action == "remove":
for cursor in cursors:
if cursor in saved_cursors:
saved_cursors.remove(cursor)
self.view.add_regions(self.key, saved_cursors, "keyword", "", sublime.DRAW_EMPTY)
class RemoveCursorCommand(sublime_plugin.TextCommand):
def is_enabled(self):
return len(self.view.sel()) > 1
def run(self, edit, forward=True):
self.view.sel().subtract(self.view.sel()[0 if forward else -1])
Привязки клавиш будет выглядеть как
{ "keys": ["alt+a"], "command": "multi_cursor", "args": {"action": "add"} },
{ "keys": ["alt+s"], "command": "multi_cursor", "args": {"action": "show"} }
Есть, вероятно, плагины, которые написали люди, которые находятся на контроле пакетов, которые делают то же самое, я просто не знают о них.