Вставка текста в новый буфер - PullRequest
1 голос
/ 23 сентября 2019

Я нашел вопросы, которые похожи , но на самом деле не касаются того, что я пытаюсь выучить.Я хочу восстановить или удалить текст и добавить его в новый (или существующий) буфер без с изменением буферов.Я хочу в основном перенаправить вставленный текст к месту назначения в конце отдельного буфера, не выходя из исходного буфера, подобно тому, что вы могли бы сделать с перенаправлением файла оболочки.Мне трудно поверить, что vim / nvim не может этого сделать, но пока не нашел подходящего ответа.

:'a, 'bw ~/path/to/file.txt

Это скопирует текст между двумя метками 'a и' b и запишет его в файл в файловой системе.Это хорошо, но файл не может быть добавлен ... и он не открывается в буфере.

1 Ответ

1 голос
/ 23 сентября 2019

Там - это вариант :w >> {file}, который позволяет добавить файл (:help :write_a).

Как уже заметил @Matt, обычным способомбудет включать переключение буферов.Использование Vimscript тесно связано с (в основном, Ex-) командами, которые пользователь будет использовать в интерактивном режиме.Однако в последних версиях Vim вы можете вызвать низкоуровневую функцию appendbufline().Это может обойти любые автокоманды, настройки буфера и т. Д. В зависимости от вашего случая использования это может быть желательным или нет.

Если целевой буфер уже виден или может оставаться видимым в качестве побочного эффекта, временно переключаясь наэто легко (в основном с участием :sbuffer).Мой плагин ingo-library имеет функцию ingo#buffer#visible#Execute(), которая также прозрачно обрабатывает скрытые буферы.

...