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>.