Подтвердить что ты не робот

Возвышенный текст сначала выбирается в каждой строке

В Vim есть действительно хорошая функция, чтобы найти/заменить первое вхождение в каждой строке. Это фактически поведение по умолчанию. Как я могу получить такое же поведение в возвышенном тексте?

Мне нужно иметь возможность отмечать/находить символ FIRST (и только первый!), например. '=' в каждой строке, так что я легко могу отметить/скопировать/вырезать то, что раньше и что после этого конкретного символа. Имейте в виду, что в каждой строке может быть много этого конкретного символа.

Конкретный пример:

У меня есть длинный список java-свойств в форме:

my.property.link1=<a href="asdfs">Link 1</a>
my.property.link22=<a href="asdfs">Link 22</a>
my.property.link333=<a href="asdfs">Link 333</a>
my.property.link4444=<a href="asdfs">Link 4444</a>

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

my.property.link1
my.property.link22
my.property.link333
my.property.link4444
4b9b3361

Ответ 1

Предположим, что у вас есть следующий текст:

my.property.link1=<a href="asdfs">Link 1</a>
my.property.link22=<a href="asdfs">Link 22</a>
my.property.link333=<a href="asdfs">Link 333</a>
my.property.link4444=<a href="asdfs">Link 4444</a>

Нажмите Ctrl + F (или выберите Find- > Find)

Включить регулярные выражения

Введите поле поиска: ^.*?(?==)

Preess Alt + Enter (или нажмите "Найти все" )

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

Ответ 2

На самом деле я написал возвышенный плагин под названием SelectUntil, который обращается к этой точной проблеме: https://github.com/xavi-/sublime-selectuntil

После установки вы можете сделать следующее

  • Выберите всю строку, которую вы хотите отредактировать или частично скопировать.
  • Нажмите Cmd/Ctrl + Shift + L - это дает каждой строке собственный указатель.
  • Подведите курсор к началу строки, нажав Home или Ctrl + A, если вы используете OSX
  • Нажмите Ctrl/Alt + Shift + S, чтобы активировать SelectUntil
  • Скажите SelectUntil, чтобы выбрать знак равенства, набрав = + Enter
  • Нажмите Shift + , чтобы отменить знак равенства
  • В этот момент должны быть выбраны имена всех свойств, чтобы вы могли скопировать/вставить, как вы хотели бы

Опыт должен выглядеть примерно так:

enter image description here

Ответ 3

Пробовал это и, похоже, работает:

Найти выражение с помощью ^ (. *) (STRING_TO_MATCH)

\ 1 даст все вещи перед вашим матчем, \2 дает совпадение.

Вы также можете использовать ^ (. *) (STRING_TO_MATCH) (. *), а затем \3 будет всем после.

Изменить - если вы хотите выбрать и скопировать, я попробовал это: ^[^CHAR]*

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

Ответ 4

Предположим, что у вас есть следующий текст:

AAAABBBCCCC
ABC
BBBAAACCC
ABCABCABC

.. и вы хотите заменить каждое первое вхождение A в каждой строке на X:

Нажмите Ctrl + H (или выберите Find- > Replace)

Найти что: A(.*)

Заменить с помощью: X\1

Затем нажмите "Заменить все".

Ответ 5

Выберите все с помощью Ctrl + A, затем нажмите Ctrl + Shift + L и, наконец, перейдите к разделу "Выбор- > Инвертировать выбор", как картинка et Voila!: Инвертировать выбор