Копирование слова и вставка слова

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

Чтобы скопировать слово:

bye

Как скопировать слово?

Ответ 1

Возможно, вы просто хотите это сделать:

viwp

который будет визуально выбирать новое слово и вставлять его.

Теперь, если вы не хотите потерять свой реестр при этом, вы также можете добавить vimrc:

xnoremap p pgvy

Ответ 2

Простое решение - сделать это наоборот: сначала вставьте новое слово, а затем удалите старый.

Ответ 3

Вы можете использовать регистр 0, который содержит только что перезаписанный текст "буфер обмена". Для вашего примера вы можете вытащить текст для вставки, поместить курсор где-нибудь в слово "bye" и набрать

ciw [сокращение слова; удаляет слово под курсором и переходит в режим вставки]

ctrl-r 0 [register 0; вставить текст из регистра 0]

Вы можете видеть, что во всех регистрах с :disp. Как говорит Даенит, вы можете вырваться в конкретный регистр с помощью команды "x [del/cut/yank] и вставить с помощью "xp из командного режима или ctrl-r x из вставки/замены.

Ответ 4

Когда вы удаляете слово, оно помещается в регистр ", который является регистром по умолчанию для вставки, поэтому, когда вы удаляете слово, которое хотите заменить, оно займет место предыдущего слова в регистре ". Однако предыдущее слово будет в регистре 0, раньше в 1 и т.д. - вы можете в любое время увидеть это, запустив :reg и просмотрите содержимое регистров. Итак, чтобы заменить слово, вы можете сначала скопировать первое слово (yiw), затем "изменить" слово, которое вы хотите заменить (ciw), а затем вставить из регистра 0, нажав ctrl-r, 0. (Вы также можете сначала удалить слово (diw), а затем вставить из регистра 0: "0p.

Ответ 5

Скопируйте слово как обычно (например, yiw) и используйте

viw"0p

для вставки над словом. Поскольку команда p в визуальном режиме (см. :help v_p) не меняет нумерованный регистр 0, содержащий текст из самых недавняя команда yank, одно и то же скопированное слово может быть вставлено снова и снова.

Ответ 6

Сделайте это один раз:

ciw<C-r>0

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

.

Вы можете использовать поиск следующим образом:

/foo<Cr>

.n.n.n

Это работает, потому что:

ciw заменяет внутреннее слово и

<C-r>0 использует последний зарегистрированный регистр для замены, который затем использует ..

К сожалению, это не работает, если вы визуально выбираете текст, который хотите заменить, и используйте ..

Обратите внимание, что если вы первоначально использовали визуальный выбор для выбора текста для замены и сделали c<C-r>0, то после этого . заменит ту же длину символов, что и в визуальном выборе.