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