2014-10-11 14 views

risposta

6

credo, si dovrebbe essere in grado di ottenere che la larghezza utilizzando:

:set virtualedit=all 
:norm! g$ 
:echo virtcol('.') 

In alternativa, potreste controllare, se un signcolumn è presente (ad esempio utilizzando redir)

:redir =>a |exe "sil sign place buffer=".bufnr('')|redir end 
:let signlist=split(a, '\n') 
:let width=winwidth(0) - ((&number||&relativenumber) ? &numberwidth : 0) - &foldcolumn - (len(signlist) > 2 ? 2 : 0) 
+0

Vado con il secondo, la prima soluzione avrà un effetto visivo, qualcosa che non vuoi in una sceneggiatura. Non accetterò la tua risposta, per ora, (ma grazie :-) per vedere se qualcuno può inventare qualcosa come "editareawidth()". –

+0

Non esiste tale funzione e non è necessaria. –

+0

@ChristianBrabandt Non direi che non è necessario. Non è necessario se tutto ciò che si desidera per i buffer è la modifica di un testo, ma non se si vuole avere qualche interfaccia lì. Però sarebbe bastata un'interfaccia di scripting sensata per i segni. – ZyX

1

Il mio ingo-library plugin ha una funzione ingo#window#dimensions#NetWindowWidth() per quello.

Problemi correlati