Як замінити текст усередині () текстом раніше?


9

Припустимо, у мене текст Fnordвидобутий раніше, і що мій курсор знаходиться Bв рядку:

M:mock(Baz)

Як я можу змінити текст всередині () з попередньо витягнутим текстом?

В даний час я часто роблю помилку, роблячи:

  • di( aka "видалити всередині ()"
  • SHIFT + P

але це знову залишає мені точний текст, оскільки видалений текст буде переміщений до реєстру.

Я хочу мати:

M:mock(Fnord)


1
@Rich Наведене питання охоплює більш загальний випадок заміни сломанного слова. Я думаю, що це питання дещо конкретніше і не залучає однакових відповідей.
k0pernikus

Підказка: 0Реєстр буде містити останній викреслений текст. :h quote0
Пітер Рінкер

1
Ту ж ідею із прийнятої відповіді на вказане питання можна застосувати і тут. За допомогою курсору в дужках просто натисніть vi)p. Це те саме, що у цій відповіді, лише з i)текстовим об’єктом замість wтекстового об’єкта,
EvergreenTree

1
@ k0pernikus Боюся, що нам доведеться погодитися з цим. Для мене важливою частиною обох питань є заміна, а не текстовий об’єкт, який використовується для його застосування.
Багатий

Відповіді:


13

Ви можете використовувати візуальний вибір, щоб вибрати текст для заміни, а потім вставити його наступним чином:

vi(p

vi(вибирає Baz (оскільки він укладений в круглі дужки), pвставляє Fnord над ним.

Однак це призведе База до реєстру після вставки, що може бути не тим, що ви хочете.


10

Якщо ви не вказали реєстр, p(або P) буде використовувати останній реєстр, який був заповнений. У неназваному реєстрі ""міститься останній вилучений або видалений текст (якщо не вказано інший регістр, наприклад, з "ay), але вони також входять в "0янки або "1для видалення / зміни. Дивіться регістри .

Якщо останній текст був пошкоджений, yви можете вставити його з 0реєстру "0P. Якщо його було видалено, ви можете отримати доступ до нього за допомогою 2реєстру за допомогою "2P( "1є зараз Baz).

Крім того, ви можете уникнути возитися зі своїми регістрами та видалити в регістр чорної дуги"_ :

"_di(P

3

Якщо встановлення плагінів є опцією, ви можете використовувати yankstack.vim . Тоді ви можете зберегти поточний робочий процес:

В даний час я часто роблю помилку, роблячи:

  • di (він же "видалити всередині ()"
  • SHIFT + P
  • Alt + p - цикл до попереднього yank

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.