winheight()
et winwidth()
retourner le nombre de colonnes / lignes dans la fenêtre courante. Ce que je recherche, c'est quelque chose de plus proche de la hauteur et de la largeur réelles de la zone d'édition, ou de la zone affichée si elle est exécutée dans un terminal. Le problème avec winheight()
et winwidth()
est que le rapport d'aspect calculé à partir de ces valeurs est déconnecté du rapport d'aspect réel.
:echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%')
104 51 2.039216
Une capture d'écran de la zone tampon a une taille de 936x918 pixels, ce qui donne un rapport hauteur / largeur affiché de 1.019608
. Je pense que je peux obtenir la valeur réelle en utilisant la taille de la police, mais comment?
Ceci est un suivi de Comment puis-je faire pour ouvrir l'aide Vim dans une division verticale? . J'essaie d'adapter la solution de Nobe4 .
==#
opérateur qui a :h
aidé à éclaircir, j'ai en fait compris toute la commande. Cela fait-il de moi un expert Vim? Ça doit être quelque chose comme ça. Besoin de sortir plus.
cnoreabbrev h <C-r>=(&columns >= 160 && getcmdtype() ==# ':' && getcmdpos() == 1 ? 'vertical botright help' : 'h')<CR>
.