2010-08-27 2 views
5

В Vim, как можно заменить оставшуюся линию на дернутый текст? Если я нажму «D», трясущийся текст будет заменен удаленным текстом.Vim: Замена конца строки

Кроме того, как можно вырваться до конца строки? Если я нажму «Y», он выдержит всю строку.

ответ

2

Нажмите v ввести визуальный режим на исходный характер выбора. Затем нажмите $, чтобы перейти в конец строки. После этого нажмите y, чтобы вынуть выбор.

Итак:

v$y

Вместо дергает, используйте p для вставки. Это будет вставляться над выбором. Таким образом, после того, как вы используете D удалить какой-нибудь текст, сделайте следующее:

v$p

Это вставит удаленный текст по выбору.

+0

О, извините, я думал, что вы хотите нажать v $ y, чтобы выдернуть. Да, это работает, спасибо. – Rafid

12

Два способа вы можете заменить текст в конце строки с ранее скопированного текста:

  1. v$p - v войти визуальный режим; $ для перехода к концу строки; p для вставки выделенного текста.
  2. D"0p - последний дернутый (а не удаленный) текст сохраняется в регистре 0, поэтому: D удалить до конца строки; "0 для выбора регистра 0; p, чтобы вставить этот реестр.
+0

Не знаю, что такое регистр '0'. Это круто. – wuputah

+0

+1 - не знал о реестре. –

+0

Да, я также не знал о комментарии к регистру. Есть ли способ выбрать два ответа в качестве принятого ответа? :) – Rafid

4

Ваши вопросы, кажется, полностью отвечает другим в этой точке (v$p и y$), но я хотел бы одну дополнительную часть информации:

дергать до конца строки, путь по умолчанию y$ , Тем не менее, это довольно распространенная практика: map Y y$ в вашем , так как поведение по умолчанию Y является избыточным с yy и несовместимо с другими сопоставлениями, такими как D и C.

+0

Спасибо за этот комментарий, это очень полезно. Я добавлю это в мой .vimrc :) – Rafid

+0

Это замечательно. благодаря – devth

1

Вот как я это сделать:

  1. "ay$ (дергать от курсора до конца строки в регистр a)
  2. Перемещение курсора в нужное положение замены.
  3. D (удаление до конца строки)
  4. "ap (вставить текст дергал на шаге 1)

Следует признать, что это очень похож на another answer, но я предпочитаю явное указание регистра, потому что она заставляет мне подумать о том, что я делаю.Я мог видеть, как я случайно перезаписываю регистратор 0, если я отвлекся или попытаюсь сделать что-то еще.

2

Если вы хотите удалить текст, не затрагивая основной (безымянный) регистр, удалите свой текст в «регистр черных дыр», который называется "_. Сделайте это через "_D. Тогда неназванный регистр не будет затронут, и вы можете вставить свой ранее дернутый текст как обычно.

См. :h quote_.

Смежные вопросы