Открытие новой вкладки отменяет свертывание кода в 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.,,)