winheight()
und winwidth()
geben Sie die Anzahl der Spalten / Zeilen im aktuellen Fenster zurück. Was ich suche, ist etwas näher an der tatsächlichen Höhe und Breite des Bearbeitungsbereichs oder des angezeigten Bereichs, wenn er in einem Terminal ausgeführt wird. Das Problem mit winheight()
und winwidth()
ist, dass das aus diesen Werten berechnete Seitenverhältnis nicht mit dem tatsächlichen Seitenverhältnis übereinstimmt.
:echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%')
104 51 2.039216
Ein Screenshot des Pufferbereichs hat eine Größe von 936 x 918 Pixel und ein angezeigtes Seitenverhältnis von 1.019608
. Ich denke, ich kann den tatsächlichen Wert anhand der Schriftgröße ermitteln, aber wie?
Dies ist eine Fortsetzung von Wie kann ich Vim open dazu bringen, in einem vertikalen Split zu helfen? . Ich versuche, die Lösung von Nobe4 anzupassen .
==#
Operator wusste, der zur Aufklärung :h
beigetragen hat, den gesamten Freaking-Befehl verstanden habe. Macht mich das zu einem Vim-Experten? Muss so etwas sein. Müssen mehr raus.
cnoreabbrev h <C-r>=(&columns >= 160 && getcmdtype() ==# ':' && getcmdpos() == 1 ? 'vertical botright help' : 'h')<CR>
.