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

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

Ответы:

18

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

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

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

rathrio
источник
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

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

craigp
источник