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чтобы получить курсоры в каждой строке, но как я могу получить курсоры перед каждым числом для одновременного массового редактирования?


Возможно, уже поздно отвечать на этот вопрос, но здесь есть ссылка, где вы можете найти ответ на вопрос. 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.

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


Ссылки:



3

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

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

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


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

2

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

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

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


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 + щелчок правой кнопкой мыши работает лучше, таким образом


-1

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.