Редактируйте разные слова одновременно, одну и ту же строку, как в Sublime Text, с множественным выбором


14

Можно ли редактировать более одного слова одновременно, которые находятся на одной строке?

Например, допустим, у меня есть это:

Spam and Eggs is all you need for a healthy breakfast

и я хотел бы изменить строку на:

organic_Spam and organic_Eggs is all you need for a healthy breakfast

Я хотел бы выделить «Спам» и «Яйца» и добавить «органические» одновременно к «Спаму» и «Яйцам». Немного похоже на использование визуального блока для одновременной записи в разных строках, но здесь пишем вещи в одной строке. Я видел, как коллега делал это с помощью Sublime Text, и попытался поискать, но безрезультатно.



Я всегда думаю, что в vim функция множественных выделений / курсоров просто конфетка ...
Кент,

Ответы:


18

Я согласен с Александром здесь. В повседневном редактировании я бы, вероятно, также использовал .команду, но если вы хотите выполнить только одну команду, я бы использовал команду замещения:

:s/S\|E/organic_&/g

в то время &как сопоставленный образец от /S\|E/.


21

В Vim нет мультикурсоров, как в Sublime Text (но я помню несколько плагинов). Но для vim это не так важно, потому что есть другой способ добиться этого. Например, у вас есть эта строка

Spam and Eggs is all you need for a healthy breakfast

Я бы сделал что-то вроде этого: поместите курсор в обычном режиме на первую букву Spamи введите iorganic_Esc, затем два раза, wчтобы перейти наEggs и нажмите .(точка), чтобы повторить последнее действие. Так что для меня это намного более продуктивно, чем в Sumlime Text, но, может быть, не так интересно и интуитивно.

В любом случае, есть некоторая предварительная обработка для этого действия в обоих редакторах, в Sublime Text есть места выбора для новой позиции с несколькими курсорами с помощью некоторой горячей клавиши, и после всего этого вы можете редактировать слова одновременно. В Vim такая «предварительная обработка» происходит на самом деле во время редактирования строки, я имею в виду все эти ww.вещи.


3

Если вам действительно нужна поддержка нескольких курсоров, таких как Sublime, вы можете использовать этот плагин: https://github.com/terryma/vim-multiple-cursors

Это не тот путь , но я часто использую его, и он хорошо работает

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