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

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

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

bye

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

vim
17 голосов | спросил codecompleting 17 +04002011-10-17T21:02:59+04:00312011bEurope/MoscowMon, 17 Oct 2011 21:02:59 +0400 2011, 21:02:59

7 ответов


0

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

viwp

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

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

xnoremap p pgvy
ответил Benoit 17 +04002011-10-17T21:39:31+04:00312011bEurope/MoscowMon, 17 Oct 2011 21:39:31 +0400 2011, 21:39:31
0

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

viw"0p

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

ответил ib. 18 +04002011-10-18T10:06:16+04:00312011bEurope/MoscowTue, 18 Oct 2011 10:06:16 +0400 2011, 10:06:16
0

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

ciw<C-r>0

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

.

Вы можете использовать поиск с ним так:

/foo<Cr>

.n.n.n

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

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

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

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

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

ответил Heikki Naski 19 +04002011-10-19T22:31:47+04:00312011bEurope/MoscowWed, 19 Oct 2011 22:31:47 +0400 2011, 22:31:47
0

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

ответил JJJ 17 +04002011-10-17T21:04:21+04:00312011bEurope/MoscowMon, 17 Oct 2011 21:04:21 +0400 2011, 21:04:21
0

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

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

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

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

ответил Kevin 17 +04002011-10-17T21:16:21+04:00312011bEurope/MoscowMon, 17 Oct 2011 21:16:21 +0400 2011, 21:16:21
0

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

ответил beta 17 +04002011-10-17T22:39:26+04:00312011bEurope/MoscowMon, 17 Oct 2011 22:39:26 +0400 2011, 22:39:26
0

Вы можете y ank внести в регистр, добавив в него "a (где a - это имя регистра). См. Как использовать регистры vim

b"aye

ответил Daenyth 17 +04002011-10-17T21:06:12+04:00312011bEurope/MoscowMon, 17 Oct 2011 21:06:12 +0400 2011, 21:06:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132