Как я могу выбрать любую другую строку с несколькими курсорами в 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})
Последняя строка предназначена только для удаления выделения, оставив несколько курсоров в начале выбранных строк.