Как я могу выбрать любую другую строку с несколькими курсорами в Sublime Text?

В Sublime Text 2 можно мгновенно выбрать любую другую (или нечетную/четную) линию и поместить несколько курсоров на эти строки?

Спасибо.

Ответ 1

  • Найти: Ctrl + F
  • Если регулярные выражения еще не включены, включите их: Alt + R
  • Введите выражение .*\n.*\n
  • Найти все: Alt + Enter
  • Нажмите стрелку влево, чтобы избавиться от выбора, оставив только курсоры:
  • Теперь у вас есть курсор в начале каждой строки с нечетным номером. Если вам нужны строки с четными номерами, нажмите вниз:
  • В зависимости от файла в нижней части файла может отсутствовать один курсор. Используя мышь (проклятие!) Прокрутите вниз, нажмите и удерживайте Ctrl, и щелкните там, где должен отсутствовать нужный курсор.

Ответ 2

Вы можете сделать это легко:

  • Выберите все ваши строки или весь документ Ctrl + A
  • Добавить несколько селекторов: Ctrl + Shift + L (и в Mac: Command + Shift + L)

ИЗМЕНИТЬ:

Ответ 3

Я искал способ выбора альтернативных строк в возвышенном виде.

Спасибо Джо Дейли за очень хороший ответ. Хотя я понял, что если вы используете регулярное выражение, он не будет выбирать последнюю строку в файле, если в конце файла нет новой строки.

Я хотел улучшить этот ответ, но на данный момент у меня нет достаточной репутации, чтобы прокомментировать ответ выше.

Вы можете использовать следующую строку поиска с включенным регулярным выражением, а затем нажмите alt + enter. За ним следует стрелка влево. Это поместило бы курсор на альтернативные строки (те же шаги, что объяснил Джо Дейли)

^.*\n.*$

Ответ 4

Вы можете попробовать с помощью плагина: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

Сохраните этот файл в Packages/User.

Затем добавьте привязку ключа для этого плагина:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

Эта команда выберет все остальные строки. Когда у вас есть другие выделенные строки, вы можете использовать команду Split selection into lines (Ctrl + Shift + L, Cmd + Shift + L на Mac).

Если вы хотите иметь everythnig в одном ярлыке, вы можете изменить плагин следующим образом:

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

Последняя строка предназначена только для удаления выделения, оставив несколько курсоров в начале выбранных строк.