В Sublime Text 2 возможно ли мгновенно выбрать каждую вторую (или нечетную / четную) строку и разместить несколько курсоров на этих линиях?
Спасибо.
В Sublime Text 2 возможно ли мгновенно выбрать каждую вторую (или нечетную / четную) строку и разместить несколько курсоров на этих линиях?
Спасибо.
Ответы:
.*\n.*\n
(.*\n){10}
для каждых 10 строк
(.*(\n|$)){2}
(.*(\n|$)){2}
включает в себя последнюю строку
Вы можете сделать это легко:
РЕДАКТИРОВАТЬ :
(.*(\n|$)){2}
выражениемЯ искал способ выбрать альтернативные строки в возвышенном.
Спасибо Джо Дейли за очень хороший ответ. Хотя я понял, что если вы используете регулярное выражение, он не выберет последнюю строку в файле, если в конце файла нет новой строки.
Я хотел улучшить этот ответ, но у меня сейчас недостаточно репутации, чтобы прокомментировать ответ выше.
Вы можете использовать следующую строку поиска с включенным регулярным выражением, а затем нажмите alt + enter. Затем следует стрелка влево. Это поместило бы курсор каждый в чередующиеся строки (те же шаги, которые объяснил Джо Дейли)
^.*\n.*$
Вы можете попробовать с плагином: 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).
Если вы хотите иметь все в одном ярлыке, вы можете изменить плагин следующим образом:
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})
Последняя строка предназначена только для удаления выделения, оставляя несколько курсоров в начале выделенных строк.