Як я можу вибрати будь-який інший рядок із декількома курсорами у піднесеному тексті?


162

Чи можливо в тексті Sublime Text 2 миттєво вибрати кожен інший (або непарний / парний) рядок і розмістити на цих рядках кілька курсорів?

Дякую.


5
Ви не хочете прийняти відповідь?
Мартін Тома

Відповіді:


381
  1. Знайдіть: Ctrl+F
  2. Якщо регулярні вирази вже не включені, увімкніть їх: Alt+R
  3. Введіть у вираз .*\n.*\n
  4. Знайти всіх: Alt+Enter
  5. Натисніть стрілку вліво, щоб позбутися від виділених елементів, залишивши лише курсори:
  6. Тепер у вас є курсор на початку кожного рядка з непарними номерами. Якщо ви хотіли парних ліній, натисніть:
  7. Залежно від файлу, може бути один курсор, який відсутній внизу. За допомогою миші (чорт!) Прокрутіть донизу, утримуйте Ctrlта натисніть, де має бути відсутній курсор, щоб додати його.

83
Ви також можете використовувати (.*\n){10}кожні 10 рядків
Джо Дейлі


3
приємно! Рішення @ zessx (.*(\n|$)){2}включає останній рядок
woojoo666

3
Зауважимо, що в Sublime 2, який працює на OS X 10.11.5, ярлик для пошуку в RegEx - це Alt + Command + R. Ви також можете ввімкнути пошук RegEx, натиснувши Command + F, а потім клацнувши на значку, який виглядає приблизно так: [. *]
люстиг

97

Ви можете це зробити легко:

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

Редагувати:


12
хоча це не правильна відповідь на це питання, я цього хотів. дякую за обмін
Раджані Карутурі

Чудовий і простий натяк!
Філіп

5
Це рішення - це те, що мені було потрібно, але не те, що хоче ОП.
крик

13

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

Спасибі Джо Дейлі за дуже гарну відповідь. Хоча я зрозумів, що якщо ви використовуєте регулярний вираз, він не вибере останній рядок у файлі, якщо в кінці файлу немає нового рядка.

Я хотів покращити цю відповідь, але, здається, наразі у мене недостатньо репутації, щоб прокоментувати відповідь вище.

Ви можете використовувати наступний рядок пошуку із увімкненим регулярним виразом, а потім натисніть клавіші alt + enter. Далі йде стрілка вліво. Це покладе курсор кожен на альтернативні лінії (ті ж кроки, що й пояснив Джо Дейлі)

^.*\n.*$

7

Ви можете спробувати з плагіном: 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})

Останній рядок полягає лише у видаленні виділення, залишаючи кілька курсорів на початку вибраних рядків.


1
Уау це виглядає перспективно - я спробую це, як тільки зможу!
користувач2136580

Велике спасибі! Я досить новачок у плагінах. Має бути весело. Почати вміти вибирати будь-який інший рядок було б просто фантастично. Ура!
користувач2136580
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.