Vim: замена конца строки - PullRequest
       3

Vim: замена конца строки

5 голосов
/ 27 августа 2010

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

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

Ответы [ 6 ]

12 голосов
/ 27 августа 2010

Два способа заменить текст в конце строки на ранее вытянутый текст:

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

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

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

2 голосов
/ 27 августа 2010

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

См. :h quote_.

2 голосов
/ 27 августа 2010

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

Итак:

v$y

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

v$p

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

1 голос
/ 27 августа 2010

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

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

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

1 голос
/ 27 августа 2010
y$ - yank to end of line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...