Как переписать строки текста в vi / vim?

В vi / vim я бы хотел перезаписать строки текста, идущие вниз по странице. Подобно переписыванию символов в строке – я нажимаю R , затем вставляю, а charcters перезаписываются, но вместо этого я хочу сделать то же самое, что и на странице.

Пример:

У меня есть файл со следующим текстом:

  var1: 7FBzezsLKyzYmVeM var2: kL8RIBJVNrlEUyYV var3: 1FkmXFSXtH4msKnL 

Я хотел бы заменить эти строки следующим текстом:

  var1: 7PmuHKKRx9OYt9mR var2: nuRAS5dAKfUrvECJ var3: km11I7HuXOWuu43X 

То, что я обычно делаю, это удалить существующие строки и вставить новые строки вместо них или наоборот.

Новый текст поступает из буфера пасты, независимо от того, дергается или копируется из другого места.

Я много раз искал, но не могу найти никакой ссылки на то, как это сделать. Даже с макросами я не могу придумать, как бы я это сделал.

Кто-нибудь смог это сделать? Если это невозможно, то я точно знаю.

3 Solutions collect form web for “Как переписать строки текста в vi / vim?”

Попробуйте следующее:

  • скопируйте / выдержите строки, которые хотите скопировать
  • переключитесь на буфер, который хотите изменить
  • g R Ctrl-r 0 Esc

Перевод:

  • g R переходит в режим визуальной замены (см :h gR )
  • Ctrl-r 0 – вставляет из регистра 0 (см :h i_CTRL-R :h quote0 )
  • Esc – режим замены.

не уверен о чем ты.

перейдите к первой строке соответствия, затем используйте

 .,.+2d r /tmp/var 
  • .,.+2d удалит 3 строки (отрегулируйте 2 по вашему желанию)
  • r /tmp/var будет читать (вставить) файл шаблона.

Встроенный gR (как предложено @SatoKatsura) отлично, если длина старого и нового идентична. В общем случае это не работает, и нужно принять другой подход. Мне нужно это так часто, я написал плагин, чтобы упростить и разрешить максимальную скорость: ReplaceWithRegister .

Этот плагин предлагает команду «два-в-одном», которая заменяет текст, охватываемый {motion} / текстовым объектом, целыми линиями (линиями) или текущим выбором с содержимым регистра; старый текст удаляется в регистр черных дыр, т. е. он ушел. Он прозрачно обрабатывает многие угловые шкафы и позволяет быстро повторять по стандарту . команда. Если вам это не нравится, на его странице есть ссылки на альтернативы.

  • Может ли vim предупредить о переполнении tabpagemax?
  • Проблема с визуализацией латексных команд после установки шрифтов
  • Существуют ли cygwin vim команды, отличные от обычного vim?
  • Тип файла не обнаружен
  • Ошибка Vim E138: не удается написать файл viminfo $ HOME / .viminfo!
  • vipe misbehaving при замене процесса bash
  • Окончание файла в gvim
  • Как я могу выборочно изменять строки в файле, где изменения зависят от анализа строк выбора в целом, а не по отдельности
  • Как повторно запустить автоиндексирование vim в файле tex?
  • Использовать vimrc другого пользователя, а также папку vim
  • Настройка редактора в mutt: vim с параметрами?
  • Interesting Posts

    Обратитесь к переменной цикла в аргументе

    Как вручную обновить libc6?

    Поиск файлов, содержащих определенные строки в каталоге

    Предварительный просмотр команды, созданной find -exec

    Как я могу выбрать всю копию из vim и вставить в другую программу, например, почтовый клиент?

    Как смонтировать диск под моим домашним каталогом при загрузке?

    Когда символическая ссылка рассматривается как вещь, на которую она ссылается, и как символическая ссылка?

    Может ли программа, выполняемая sudo-сервером NOPASSWD, использовать sudo для получения доступа root?

    Как запустить процесс и узнать, сколько памяти он использует?

    Как уменьшить размер группы рупий в LVM?

    Прогресс уведомления в лотке из командной строки

    Ошибка получения данных репозитория для epel, репозитория не найдена

    Улучшение скорости записи SD-карты

    Маршрутная клавиатура через только / dev / ttys000 в Mac OS X

    Избегание обычного текстового пароля в http_proxy

    Linux и Unix - лучшая ОС в мире.