2012-10-06 3 views
3

Я хотел бы заменить прямоугольную область на одну одиночную строку (в отличие от другой прямоугольной области).Vim: Как выбрать область прямоугольника и вставить одну строку

Например, держите строку «foobar», выберите числовые символы в следующей таблице и вставьте строку в прямоугольную область.

poum 123 pam 
poum 456 pam 
poum 789 pam 

Какой бы выход этот выход:

poum foobar pam 
poum foobar pam 
poum foobar pam 

BBEdit имеет такую ​​возможность и я нахожу это очень удобно. Единственный способ, которым я нашел это с помощью Vi, - вывести строку в заданный регистр (например, регистр «a»), выбрать регион, удалить его, повторно выбрать, используя gv и, наконец, вставить строку, используя яCtrl - г ESC.

Я ищу более простой способ сделать это. Например, выберите регион, вставьте строку. Он должен быть таким же простым, как вставка прямоугольной области в другую прямоугольную область (операция, описанная здесь: Vim: how to select a rect area and do copy/paste).

+0

Вы можете добавить пример результата, который вы ожидаете после вашей пасты? – pb2q

+0

Здесь вы идете. Обратите внимание, что я также исправил опечатку, которая могла вас смутить. – lionel

ответ

5

Yank строку, которую вы хотите вставить. Выберите область, которую вы хотите заменить (с помощью Ctrl + v). Нажмите с сократить площадь, и перейти в режим вставки, а затем Ctrl + г затем (ноль), чтобы вставить содержимое регистра 0 (так как текст вы режете вошел в ") и, наконец, Esc, чтобы выйти из режима вставки. Или рвануть в определенный регистр явно ("у) и вставить из этого одного (Ctrl + г).

+0

Спасибо. Я еще не использовал 'c', поэтому я не пробовал это. Я думаю, ваше решение просто, так как он может получить. – lionel

+1

Всегда больше, чтобы учиться в vim. Поскольку вы не использовали 'c', вы можете посмотреть' C', 's', и 'S' тоже. Все весьма полезно, например. Я использую 'ciw' и' ci ('довольно часто. – Kevin

+0

@yoplait,': h motion.txt' взорвет ваш ум. – romainl

Смежные вопросы