Не легко найти хороший заголовок для моей проблемы.
Мне известно о вставке перед текстовым блоком:
Ctrl- v выберите строки I типа текста ESC
Теперь я хотел бы сделать это, но также и заменить часть в моем выборе блока. В настоящее время я делаю две операции
Ctrl- v выберите блок x вернуться к началу
Затем следует последовательность, упомянутая выше.
Есть ли способ объединить эти две операции, выбрав ( Ctrl- v) блок только один раз?
Вот небольшой пример:
Я хотел бы преобразовать следующий блок
1 text
2 text
3 text
4 text
5 text
в
new text
new text
new text
new text
new text
делать только одну «операцию».
visual-mode
replace
Патрик Б.
источник
источник
Ответы:
Ввод cпосле выбора блока вместо xудаления текста в блоке выбора и перехода в режим вставки. После того, как вы что-то напечатаете и выйдете из режима вставки, вы должны иметь одинаковые изменения в каждой строке.
Пытаться
Ctrl- v- выберите блок - c- вставьте что угодно -Esc
источник
Изобразите ряд из трех различных печатных букв, как показано выше.
^V
выбрав выше, я не мог изменить все наA
последнюю букву в строке из-за неравной длины строк. Предыдущие печатные буквы хорошо работали с:s/\%V1/T/g
«Предыдущей печатной буквой была буква Т, сделанная из 1. Измените/T/
на что угодно.Но при выборе последней заглавной буквы, показанной выше, она только изменила все «1» на «А» до точки «А», а остальные остались.
* Самая короткая строка.
Чтобы сделать все строки одинаковой длины, я добавил их пробелами. (Я новичок в vim, поэтому уверен, что можно написать лучший сценарий.)
Примечание. Пик А начался в строке 2.
После этого
:s/\%V1/T/g
работал так, как рекламируется на последней печатной букве в ряду.PS Я читал, что
execute
строка выше должна работать без точек, но у меня это не сработало.источник