Sublime Text 2 многострочное редактирование

147

Я хочу редактировать несколько строк и каждое слово в этой строке. Например:

45 28 42 65
24 87 47 95
01 25 87 98

Я хочу выделить каждое целое число во всех строках и поставить перед ним «0x», чтобы оно выглядело так:

0x45 0x28 0x42 0x65
0x24 0x87 0x47 0x95
0x01 0x25 0x87 0x98

Я знаю Ctrl+ shift+, Lчтобы получить курсоры в каждой строке, но как я могу получить курсоры перед каждым числом для одновременного массового редактирования?

Syperus
источник
Возможно, уже поздно отвечать на этот вопрос, но здесь есть ссылка, где вы можете найти ответ на вопрос. sublimetext.com/docs/3/…
Александр

Ответы:

282

Выделите строки и используйте:

  • Windows: Ctrl+ Shift+L
  • Mac: Cmd ⌘+ Shift+L

Затем вы можете переместить курсор к содержанию вашего сердца и редактировать все строки одновременно.

Он также называется «Разделить на строки» в меню «Выбор».

Оуэн
источник
Да, но как я могу редактировать каждое число в строках одновременно? Например, если бы я делал только первую строку, я мог бы редактировать каждое число в первой строке сразу? Если это имеет какой-либо смысл
Syperus
Вы не можете - у вас может быть только курсор в одном месте на любой данной строке. Но вы можете переместить его в начало строки, добавить 0x, использовать alt> для перемещения по одному слову и снова добавить 0x.
Оуэн
28
Это неправда - в строке может быть столько курсоров, сколько вы хотите. Все, что вам нужно сделать, это Ctrl-click(в Windows), чтобы разместить их.
MattDMo
3
@MattDMo ДА !! Это именно то, что я искал. Вы случайно не знаете, как сочетать клавиши, чтобы выбрать все их? Я посмотрю вокруг и посмотрю, смогу ли я найти это.
Syperus
когда я использовал Ctrl+ Shift+ L, он выбирает все строки, но курсор на каждой строке находится либо в начале, либо в конце строки. если я затем нажимаю стрелку влево, пытаясь вернуть все курсоры в начало каждой строки, они перемещают курсоры назад относительно их положения, поэтому они все еще не находятся равномерно в одной и той же позиции в строке. как получить все курсоры в начале строки? (для контекста, я просто пытаюсь добавить [space]*[space]в начале каждой строки).
user1063287
84

Используйте несколько курсоров и выбор столбцов.

В вашем случае вам просто нужно поместить курсоры в начале каждого столбца, содержащего «слова».

Linux и Windows

  • Нажмите и перетащите, чтобы выбрать столбцы: Shift+RightMouseBtn
  • Добавьте другие столбцы к выделению, нажав и перетащив: Ctrl+ Shift+RightMouseBtn
  • Вычтите столбец (столбцы) из выбора: Alt+ Shift+RightMouseBtn
  • Добавить отдельные курсоры: Ctrl+LeftMouseBtn
  • Удалить отдельные курсоры: Alt+LeftMouseBtn

макинтош

  • Нажмите и перетащите, чтобы выбрать столбцы: Option⌥+LeftMouseBtn
  • Добавьте другие столбцы к выделению, нажав и перетащив: Option⌥+LeftMouseBtn
  • Вычтите столбец (столбцы) из выбора: Cmd⌘+ Option⌥+ shift+LeftMouseBtn
  • Добавить отдельные курсоры: Cmd⌘+LeftMouseBtn
  • Удалить отдельные курсоры: Cmd⌘+ Option⌥+ shift+LeftMouseBtn

Затем отредактируйте по мере необходимости. В вашем случае, типа 0, x.

Вы также можете перемещаться по мере необходимости до конца или начала слов, выбирать слова и заключать их в кавычки или круглые скобки и т. Д.


Ссылки:

elomage
источник
10

Работал для меня на OS X + Sublime build 3083:

OPTION (ALT) + select lines
Хосе Албан
источник
3

Я не уверен, что это возможно "из коробки". И, к сожалению, я тоже не знаю подходящего плагина. Для решения предложенной вами проблемы вы можете использовать регулярные выражения.

  1. Cmd + F (Найти)
  2. Regexp: [^ ]+(или \d+, или как вы предпочитаете)
  3. Option + F (Найти все)
  4. Редактировать это

Горячие клавиши могут различаться в зависимости от вашей ОС и личных предпочтений (мои для OS X).

FreeNickname
источник
Плагин не требуется. Используйте Alt + Enter в конце для Linux.
красноречие
2

Я столкнулся с той же проблемой в Linux, что я сделал, чтобы выбрать весь контент (Ctrl-A) и затем нажать Ctrl + Shift + L, он дает вам курсор на каждой строке, а затем вы можете добавить аналогичный контент для каждого столбца ,

Также вы можете выполнять другие операции, такие как вырезать, копировать и вставлять столбцы.

PS: - Если вы хотите выбрать прямоугольный набор данных из текста, вы также можете нажать Shift и удерживать правую кнопку мыши, а затем выбрать данные в прямоугольной форме. Затем нажмите CTRL + SHIFT + L, чтобы навести курсор на каждую строку.

StuckWithSpring
источник
2

Windows: я предпочитаю Alt + F3 для поиска строки и одновременного изменения всех экземпляров строки поиска.

http://www.sublimetext.com/docs/selection

Кот
источник
Alt + F3 работает и в Linux, и с Sublime Text 3. Это быстрый и простой способ редактирования той же строки в файле.
kiamlaluno
2

В Windows я предпочитаю Ctrl+ Alt+ Down.

Он выбирает строки одну за другой и автоматически запускает режим многострочного редактора. Это немного быстрее, таким образом. Если у вас есть много строк для редактирования, тогда лучше выбрать текст и Ctrl+ Shift+ L.

Семих Сезер
источник
0

Ctrl + Shift + щелчок правой кнопкой мыши работает лучше, таким образом

chris_cx
источник
-1

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

Ctrl+ Fоткроет панель поиска.

Поиск по регулярному выражению включается нажатием на кнопку «. *» Слева.

Введите "\ d +", чтобы найти все вхождения из 1 или более цифр. Нажав кнопку «Найти все», вы выберете каждый из этих номеров отдельно.

Затем вы можете использовать Ctrl+ Shift+, Lчтобы преобразовать выделение в несколько курсоров. Отсюда вы можете делать как хотите.

Нолан Лакетт
источник