В Linux при редактировании file_B
в vim я хочу добавить строку 10-25 из file_A
. Пример: у каждого есть целый набор HTML-документов с совершенно одинаковым заголовком, и да, можно создать шаблон и начать с него, но все же:
Я ищу простой [и элегантный] способ вставить диапазон строк из одного файла и добавить его в файл, который я сейчас редактирую. В Vim.
Решения, которые я нашел до сих пор, но не совсем то, что я ищу,
- внутри
file_B
команда:read file_A
добавит * весь файл_A * в файл_B. Перебор - внутри vim есть копия и вставка - но для этого надо было открыть
file_A
- внутри file_A
:10,25w! file_B
будет «отправлять» заданный диапазон строкfile_B
.
Это похоже на копирование и вставку - в vim можно открыть несколько окон.
Но когда я работаю на 8-дюймовом экране, несколько окон затрудняют ориентацию
Поскольку я не смог найти удобного решения, мне было бы интересно, не понял ли я что-то неправильно, или способы, которые я нашел до сих пор, обычно используются и воспринимаются как стандартный способ.
linux
vim
copy-paste
erch
источник
источник
vim
. Но это кажется недосягаемым. И мне действительно интересно, достижимо ли это только с помощью внешних команд, потому что, насколько я понялvim
, я дошел до небольших ограничений.Ответы:
Лучшее решение, которое я могу придумать - это внешне позвонить
sed
и объединить это с:read !
источник
:r
сокращение отread
vim. Я не знаю,sed
как и как его использовать. Конечно, я заменилfileB
на фактический файл :):10r
и т. Д., Содержимое из строки десять будет помещено в [до тех пор, пока оно существует]. Работает как шарм сейчас. Отлично. Большое спасибо!:r!sed 10,25\!d
. Обратите внимание, что вам не нужны-e
ни кавычки, ни кавычки, так что вы можете написать это:r!sed -n 10,25p
для краткости.:r sed '10,$\!d;25q'
чтобы не читать весь файл.