winheight()
e winwidth()
restituisce il numero di colonne / righe nella finestra corrente. Quello che sto cercando è qualcosa di più vicino all'altezza e alla larghezza effettive dell'area di modifica o all'area visualizzata se eseguita in un terminale. Il problema con winheight()
e winwidth()
è che le proporzioni calcolate da questi valori non sono in contatto con le proporzioni effettive.
:echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%')
104 51 2.039216
Uno screenshot dell'area buffer ha dimensioni di 936x918 pixel, con una proporzione visualizzata di 1.019608
. Penso di poter ottenere il valore effettivo utilizzando la dimensione del carattere, ma come?
Questo è il seguito di Come posso fare in modo che Vim apra aiuto in una divisione verticale? . Sto cercando di adattare la soluzione di Nobe4 .
==#
operatore che ha :h
aiutato a chiarire, ho effettivamente compreso l'intero comando impazzito. Questo mi rende un esperto di Vim? Devo essere qualcosa del genere. Ho bisogno di uscire di più.
cnoreabbrev h <C-r>=(&columns >= 160 && getcmdtype() ==# ':' && getcmdpos() == 1 ? 'vertical botright help' : 'h')<CR>
.