Найефективніший спосіб замінити весь буфер?


10

Наразі у мене є два подібних способи замінити весь буфер на якийсь інший текст (скажімо, у буфер обміну).

Спосіб №1:

  1. видалити всі рядки: :%d.

  2. вставити текст: "+P(або подібне :put+:).

Спосіб №2:

  1. візуально виділити всі рядки: ggVG.

  2. вставити текст: "+P.

Однак я, здається, не міг знайти спосіб ведення вогню з однією командою. Найбільш близьким, який я знайшов, є :changeкоманда. Але це, схоже, не працює з регістрами. Звичайно, я можу створити якусь функцію та / або скласти ключ для цього. Але перш ніж я зміг зробити всі ці налаштування, я хочу переконатися:

Чи є якась вбудована команда для заміни діапазону рядків на інший текст? Мовляв, ви могли :%replace+б замінити весь буфер текстом у буфері обміну?


2
Я нічого не знаю вгорі голови, але якщо ти це робиш багато, чому б не створити відображення / команду?
Метт Боем

5
Хм, 1,$s/\_./\=@+це не рішення: Р, :%d|put+ближче, але не зовсім там.
Руніум

1
Я забув зірочку після крапки ... 1,$s/\_.*/\=@+, де \_.відповідає будь-якому символу, включаючи новий рядок.
Руніум

2
Чи є у повторно використовувати буфер, або було б прийнятно , щоб почати новий буфер?
200_успіх

3
Я думаю, що Sukminder :%d|put+підходить до законопроекту. Це коротко і запам'ятовується. Інша команда - це занадто таємничий вигляд, щоб запам'ятати і ввести правильно.
Лежати Райан

Відповіді:


2

Можна ggvG<CTRL-G>візуально вибрати весь буфер і ввести Select-mode. Це найпростіший спосіб замінити буфер текстом, який ви плануєте вводити. Можливо, вам навіть вдасться скласти Select-modeкартування, :smapщо вирішує вашу проблему.


0

Один із способів замінити весь буфер на буфер обміну можна за допомогою зовнішньої команди, наприклад:

:%!pbpaste
:%!echo my_text

Дивіться також: Обмін буфером обміну для Mac OS X

Або за допомогою заміни:

:%s/\_.*/\=@+/
:%s/\_.*/my text/

Альтернативно використовувати :%d|put+(як уже запропоновано в коментарях).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.