2016-02-09 6 views
5

Ho appena scoperto wid <- options()$width in RStudio, e sembra essere la fonte (o meglio, molto più vicina alla fonte) di molta irritazione nel mio uso quotidiano della console. Devo dire in anticipo che sono attualmente su R 3.2.2, RStudio 0.99.491, su Linux Mint 17.3 (costruito su Ubuntu 14.04.3 LTS)In che modo RStudio determina la larghezza della console e perché sembra che sia costantemente sbagliato?

Come ho capito, wid deve essere misurato in caratteri - - se wid è uguale a 52, dire, allora si dovrebbe essere in grado di adattarsi l'alfabeto sullo schermo due volte (dato il carattere predefinito larghezza fissa), ma questo non sembra essere il caso:

width vs. actual width discrepancy

Come potete vedere, nonostante abbia wid uguale a 52, non riesco a inserire l'alfabeto due volte - I up 6 caratteri brevi. Nota inoltre che ciò significa che è non semplicemente per la presenza della freccia e dello spazio del prompt dei comandi (>).

Il problema sembra un po 'proporzionale: se ho wid fino a 78, posso inserire solo 70 caratteri; fino a 104, 93, quindi wid è circa l'88% di sconto abbastanza consistente (nota a margine: questo suggerisce anche che il mio assunto wid sia misurato in caratteri probabilmente è giusto).

Il problema che questo genera è che spesso l'uscita della console trabocca oltre la linea prevista, rendendo l'output brutto e difficile da digerire; Prendiamo, per esempio, la semplice snipped setDT(lapply(1:30, function(x) 1:3))[] che produce per me:

whoops

Mi sembra chiaro che l'uscita è stata tentata su una larghezza dello schermo, che non era disponibile nella pratica - che internamente, una più grande la larghezza dello schermo effettivamente esistente è stata utilizzata per la stampa.

Questo mi lascia con tre domande:

  1. Come viene determinato options()$width?
  2. Perché è così costantemente sbagliato?
  3. Cosa possiamo fare per ignorare questo errore?

risposta

1

Trovato un post about this on Rstudio support e sembra che il problema abbia a che fare con gli alti DPI Display; v'è una correzione di bug rivendicato nella RStudio version 0.99.878, secondo le release notes (uscito proprio oggi come la fortuna ha voluto che!):

Bug Fixes

...

  • calcolo corretto del getOption(“width”) in alto DPI mostra

Spero che questo aiuti chiunque altro vivendo t il suo! Sono tentato di postare su questo su /r/oddlysatisfying B-)

Mi piacerebbe vedere il commit rilevante sulla pagina RStudio GitHub se qualcuno può rintracciarlo (non ho avuto fortuna).