Добавить общий буфер в конец каждой строки в VI - PullRequest
0 голосов
/ 19 апреля 2011

Я пытаюсь добавить содержимое общего буфера в конец каждой строки. Я уверен, что это довольно просто, однако час поисков в Google ни к чему не привел.

Вот так выглядит мой файл

:: Вещи для кемпинга
--matches
--tent
- спальные мешки
- надувная кровать
--firewood
- походная плита
--skillet

Я хочу добавить ":: Вещи, чтобы привести в поход" в конце каждой строки.

Это я уже выяснил.

  1. / :: -> приводит меня к рассматриваемой строке
  2. Y -> возвращает всю строку в общий буфер
  3. Я пытался :% s / $ / \ p -> это добавляло " p " в конец каждой строки.

Моя проблема связана с шагом 3. Как сказать команде «поиск и замена» использовать « p » (содержимое общего буфера) вместо « p персонаж

Большое спасибо за вашу помощь.

Ответы [ 5 ]

0 голосов
/ 16 июня 2011

Изучил что-то, что вычислило это ...

:%s/$/\=getreg()/

\ = говорит, что ниже следует выражение для оценки, и вызов getreg () по умолчанию получает содержимое регистра«общий буфер», как он назывался vi.

0 голосов
/ 22 апреля 2011

Я согласен с использованием макросов - они очень мощные.В этом случае я взял ваш пример списка и разместил его в первом двоеточии.Я использовал y $, чтобы получить оставшуюся часть строки в буфере.Затем я записал макрос - я выбрал 1. q1 j $ pq

Затем вы можете вызвать его для любого числа строк в вашем списке.Например, 10 @ 1

0 голосов
/ 19 апреля 2011

Для третьего шага вместо \ p вы должны использовать ctrl-R-a. Удерживая нажатой клавишу управления, введите заглавную букву «R», продолжайте удерживать клавишу управления и наберите строчную букву «a».

Для строки с несколькими словами используйте вместо нее ctrl-R-.

0 голосов
/ 19 апреля 2011

Извините, мне пришлось зайти в vim и выяснить.

Способ копирования всей вашей строки в командном режиме:

^ r "

(это CTRL и r, затем ")

Это должно вставить всю строку, которую вы дернули, в команду поиска и замены

0 голосов
/ 19 апреля 2011

Просто предложение: если вы попытаетесь сделать это с помощью макроса, вы сможете использовать 'p', чтобы добавить содержимое общего буфера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...