vim скопировать и заменить текст - PullRequest
8 голосов
/ 06 марта 2009

Допустим, у меня есть этот текст:

$test = 'lorem';
$test2= 'ipsum';

и я хочу скопировать lorem и вставить в ipsum. Я попытался сделать yi' на лореме, а затем пошел на ipsum и сделал ci', но это заменило мой пастин на ipsum. и моя предыдущая копия была потеряна.

Ответы [ 10 ]

9 голосов
/ 11 июня 2009

Легко:

"kyi 'on lorem, перейти к i of ipsum, ve" kp

Это возвращает lorem в регистр k, вставляет его в ipsum из регистра k, и сохраняет его в регистре k, готовом для вставки снова в любое другое место, где вы можете хочу поставить это. ipsum по-прежнему попадает в регистр по умолчанию, но это больше не проблема и может быть полезно.

Если у вас уже есть что-то в регистре k, вы можете использовать другой регистр (просто используйте другой ключ).

7 голосов
/ 06 марта 2009

yi ' на лореме, перейти к i ipsum, vep ?

5 голосов
/ 06 марта 2009

Я обычно иду к команде sed.

:%s/ipsum/lorem/g
  • % означает сделать это для каждой строки
  • s означает sed, или найдите и замените
  • g в конце означает заменить каждый ipsum на lorem; если вы пропустите это, он заменит только первое.
3 голосов
/ 06 марта 2009

Идите ко л лорем, йе (дергайте до конца слова). Перейти к i из ipsum, "_de (удалить до конца слова, поместив удаленный текст в регистр черной дыры. P (вставить регистр перед курсором).

Всего: yej "_deP

2 голосов
/ 06 марта 2009

Почему бы вам не войти в именованный буфер, используя "ayi', затем удалить и вставить с помощью d'i"aP?

1 голос
/ 06 марта 2009

Я не уверен, что именно вы хотите.

У вас есть это в двух строках:

$test = 'lorem';
$test2= 'ipsum';

Если вы идете к л и у, это дергает Лорема, затем перейдите к i of ipsum, и cw, и p, и он заменит ipsum на lorem. В регистрах по-прежнему будут присутствовать как лорем, так и ипсум.

Вы можете получить содержимое этих регистров с помощью: reg

Если вы хотите вставить что-то из них, то "* p, или": p или "0p (вы увидите это при вводе: reg)

0 голосов
/ 06 марта 2009

vi'y на Lorem

vi'p on ipsum

gvy для копирования обратно lorem для регистрации возможного макроса с помощью vi'p

(qa - gvy - j - vi'p - q - @a - @@ - @@ ...)

0 голосов
/ 06 марта 2009

После того, как вы наберете ci' на вашем счету, ваш счет будет в регистре "0. Таким образом, вы можете сделать ci'^R0 (^R означает Ctrl+r) и вставить свою полость вместо ipsum.

См. :help quote_number для получения дополнительной информации о пронумерованных регистрах.

0 голосов
/ 06 марта 2009

Слова здесь, чтобы Markdown не обрабатывал код, который следует за обычным текстом.

/lorem
"adw
/ipsum
"aP"bdw
``
"bp

Первый текст ищет «lorem»; следующий удаляет слово в буфер с именем «а», оставляя в тексте пару пустых кавычек. Следующий поиск находит 'ipsum'; "aP вытягивает буфер с именем «a» перед словом ipsum; "bdw удаляет слово в буфер с именем «b», оставляя «lorem» позади. Двойной обратный тик возвращается к месту последнего поиска - пустые кавычки; и "bp извлекает именованный буфер после первой кавычки.

Вы также можете опустить "a и "b, но таким образом, значения находятся в именованных буферах "a и "b и могут быть скопированы снова, и снова, и снова, пока не произойдет нужны значения больше.

0 голосов
/ 06 марта 2009

Вы хотите использовать y для копирования выделения и p для вставки.

Вот хороший список, чтобы держать под рукой.

...