Когда я показываю файл справки vim, запустив, например, :h au
, справка отображается в горизонтальном разделенном окне:
В настоящее время я всегда использую Ctrl+w _
, но я бы предпочел, чтобы буфер справки автоматически открывался в развернутом окне.
Я попытался создать autocmd для решения проблемы:
"Automatically maximize help buffers
augroup filetype_help
autocmd!
autocmd BufWinEnter,FileType help wincmd _
augroup END
Который работает только от случая к случаю.
РЕДАКТИРОВАТЬ:
Я провел дополнительную отладку.
Открытие определенной страницы справки в первый раз , например :h au
отображает его в максимальном размере, если в моем .vimrc
есть группа выше.
При закрытии окна файлов справки через :q
и повторном открытии того же файла справки второй раз файл справки отображается разделенным, как на скриншоте выше.
Закрытие окна буфера файлов справки с помощью :bd
и последующее его открытие приводит к его максимальному отображению по желанию.
Как я могу переписать мою группу так, чтобы она также увеличивала размер уже открытого буфера справки?
4 ответа
Событие BufWinEnter
соответствует имени файла справки, поэтому шаблон help
(который подходит для совпадения FileType
) не будет работать. Параметр 'filetype'
устанавливается только один раз для буфера, поэтому при его повторном использовании (после :q
, но не после :bd
) ваша максимизация не удастся, как вы сообщили.
Вместо этого сделайте так, чтобы :autocmd
соответствовал всем буферам, и проверьте наличие 'buftype'
:
augroup filetype_help
autocmd!
autocmd BufWinEnter * if &l:buftype ==# 'help' | wincmd _ | endif
augroup END
Я предполагаю, что вы хотите, чтобы окно справки было развернуто по горизонтали.
Извините, я не могу воспроизвести вашу ошибку (пробовал на MacVim 7.4-258 и vim 7.4-258), но вот несколько предложений:
- Попробуйте изменить
wincmd _
наset winheight=9999
в сценарии вашей группы. - Как насчет того, чтобы вместо этого открыть справку в новой вкладке с помощью
wincmd T
?
Я думаю, что вы можете достичь своей цели по максимальному увеличению буферов помощи, просто поместив следующее в свой .vimrc (или где-то еще) вместо augroup / autocmd:
:set helpheight=9999
|CTRL-W_o| CTRL-W o close all but current window (like |:only|)
Похожие вопросы
Новые вопросы
vim
Vim - это бесплатный модальный текстовый редактор с открытым исходным кодом, доступный для большинства основных платформ. Это позволяет с высокой эффективностью выполнять многие задачи по редактированию текста, но имеет крутую кривую обучения. Чтобы изучить основы, запустите ": help vimtutor". Для вопросов, не связанных с программированием, используйте https://vi.stackexchange.com/.
&l:
и==#
? Я не уверен, что делает&l
и почему вы использовали символ#
в сравнении.l:
выбирает значение:setlocal
; вы также можете оставить это.==#
— сравнение с учетом регистра. Как видите, в Vimscript я стараюсь быть предельно точным.