Можно ли открыть часть файла как отдельное окно с вертикальным разделением в Vim?
Скажем, у меня есть файл с сотнями строк, и начиная с сороковой и вплоть до шестидесятых строк, я хочу, чтобы он отображался как отдельное заблокированное окно в главном окне как разделенная «вкладка», чтобы лучше сфокусироваться на этой части файла, и изменения, которые я сделал там, отразятся и на всем файле в главном окне.
У меня очень длинный файл, и я хотел бы реализовать такую вещь, чтобы лучше управлять ее содержимым.
Ответы:
Как уже указывалось, вы можете использовать сплиты, отображающие один и тот же буфер, чтобы получить большую часть пути туда.
или же
Что касается отображения только определенного раздела файла, один из способов сделать это состоит в том, чтобы сложить части, которые вам не интересны. Есть несколько способов сложить произвольные части файлов.
Самый простой способ - выбрать линии, которые вы не хотите видеть в визуальном режиме, и использовать
zf
сопоставление, чтобы сложить их.Вы также можете использовать метки для свертывания, поэтому вы можете поместить метку чуть выше текста, который хотите увидеть, переместиться в верхнюю часть файла, а затем сложить до этой метки, которая будет выглядеть примерно так:
Складывание выполняется для каждого окна (разделение), поэтому любые складки, которые есть в одном окне, не влияют на другие окна, даже если в каждом из них отображается один и тот же буфер.
Если у вас возникли проблемы с созданием складок, попробуйте установить метод складывания вручную:
источник
Это на самом деле довольно просто, и, к счастью, не нужно никаких настроек. Как только вы откроете свой файл, запустите
или сочетание клавиш
который делает то же самое. Это сделает другое окно в тот же буфер. Хорошая вещь в этом состоит в том, что любое изменение, внесенное вами в одном разделении, будет автоматически применено к другому разделению. Вам даже не нужно экономить!
Это работает так, потому что у вас есть только один буфер, только несколько представлений в одном буфере.
Вы также можете сделать
или же
который работает так же, но с горизонтальным разделением.
Этот общий подход затем может быть расширен до произвольного числа буферов, разделений и вкладок.
источник
Разместите нижеприведенное, прежде чем внимательно прочитать и убедиться, что изменения, внесенные вами в новый раздел, должны быть отражены в исходном файле. Что в значительной степени делает мой ответ устаревшим. Все еще собираюсь оставить это здесь на случай, если это будет полезно для всех.
Вдохновленный этим: http://vim.1045645.n5.nabble.com/How-to-read-specific-lines-from-a-file-into-current-buffer-td1180012.html
Допустим, у вас есть
~/.vimrc
открытый,Вы могли бы сначала открыть новый файл в разделении
:vsp file
тогда
:r! sed -n '22,25p;26q' ~/.vimrc
поставить строки с 22 по 25
file
Я уверен, что это может быть сценарий и рефакторинг. Я посмотрю на возможности, когда у меня будет время.
источник