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