Открытие новой вкладки отменяет свертывание кода в Vim

У меня есть HTML-файл с CSS в голове. Обычно я открываю файл на 2 вкладках, чтобы легко переключаться между HTML и CSS, но я также хотел бы сложить большую часть кода (особенно объявления font-face.) К сожалению, каждый раз, когда я открываю вторую вкладку, каждый единый сгиб отменяется.

После этого я могу просто все сложить, но если я открою другую вкладку, все снова будет отменено.

У меня есть свёртывание кода, настроенное так в моем.vimrc:

 set foldmethod=indent " fold based on indent                          
 set nofoldenable " don't fold by default                            
 set foldlevel=1 " only close/open one foldlevel at a time             
 au BufWinLeave * silent! mkview " save view when closing buffer       
 au BufWinEnter * silent! loadview " load view when opening buffer

1 ответ

Во-первых, необходимо знать, что вкладки - это не то же самое, что буферизация. Есть много мест, где это объясняется. Вам нужно поместить это в свой файл ".vimrc":

autocmd TabLeave * mkview

autocmd TabEnter * тихий просмотр загрузки

Попробуй сделать :mkview в исходном буфере, чем перейти в тот же буфер в другой вкладке и сделать :loadview, Это должно сделать сгибы одинаковыми, что указывает на то, что BufWinLeave и BufWinEnter не те события, которые вы хотите.,,, Возможно, это также потому, что сворачиваемость зависит от окна, и в этом случае вам также необходимо включить сгибы в окне на новой вкладке.,,

Кроме того, вам даже не нужно беспокоиться о mkview/loadview, если вы просто разбили (:split или же :vsplit) окно в текущей вкладке. Это должно дать вам два вида одного и того же буфера с одинаковыми настройками сгиба. После разделения складки в каждом окне будут работать независимо. (:set winwidth=999; :set winminwidth=1 при использовании вертикальных разбиений текущее окно будет автоматически заполнять ширину экрана Vim.,,)

Другие вопросы по тегам