winheight()
и winwidth()
вернуть количество столбцов / строк в текущем окне. То, что я ищу, - это что-то ближе к реальной высоте и ширине области редактирования или отображаемой области, если выполняется в терминале. Проблема с winheight()
и в winwidth()
том , что соотношение сторон рассчитаны из этих значений вне связи с фактическим соотношением сторон.
:echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%')
104 51 2.039216
Снимок экрана области буфера имеет размер 936x918 пикселей, что дает отображаемое соотношение сторон 1.019608
. Я думаю, что я могу получить фактическое значение, используя размер шрифта, но как?
Это продолжение того, как я могу сделать Vim открытой справкой в вертикальном разделении? , Я пытаюсь адаптировать решение Nobe4 .
==#
операторе, который :h
помог мне разобраться, я на самом деле понимал всю эту команду. Это делает меня экспертом по Vim? Должно быть что-то в этом роде. Нужно больше убираться.
cnoreabbrev h <C-r>=(&columns >= 160 && getcmdtype() ==# ':' && getcmdpos() == 1 ? 'vertical botright help' : 'h')<CR>
.