2012-11-28 7 views
11

Sto utilizzando il plug-in Vim-R con Vim per fornire l'evidenziazione della sintassi per il mio codice R. Lo stile di indentazione regolare allinea i parametri in una funzione all'apertura delle parentesi. Mi piacerebbe cambiare questo per essere più simile al codice all'interno di parentesi graffe, dove le nuove linee sono rientrate di due spazi anziché in linea con le parentesi graffe.Cambia stile indentazione R in vim con plug-in Vim-R

I nomi delle mie funzioni tendono ad essere prolissi e lo stile di indentazione predefinito lascia tutti i miei parametri spinti completamente alla destra dello schermo.

Ecco alcuni esempi:

# Default indentation style 
result <- fun(
       par1 = "abc", 
       par2 = "def", 
       par3 = 3 
      ) 

I imita stile desiderato lo stile di rientro per for loop e definizioni di funzioni.

# Desired indentation style 
result <- fun(
    par1 = "abc", 
    par2 = "def", 
    par3 = 3 
) 

# Similar to for loop indentation 
for(i in 1:10) { 
    print(i) 
} 

# ... and function definitions 
fun <- function(par1 = 1) { 
print(par1 + 1) 
} 

ho guardato il codice di Vim-R-plugin ma è troppo densa per me capire. C'è un modo per me di cambiarlo?

+1

Mi ricordo di aver disattivato l'indentazione automatica e di averlo fatto manualmente. E sembra che qualcuno abbia recentemente fatto una [domanda simile] (https://github.com/jcfaria/Vim-R-plugin/issues/18) e gli è stato detto che non esistono piani per renderlo possibile. – BenBarnes

risposta

1

Dai uno sguardo a :help 'cindent' e :help 'smartindent' per i principianti; puoi configurare il rientro relativamente facilmente usando una di queste due opzioni. Puoi anche provare a scrivere il tuo indentexpr, ma sta diventando un po 'più avanzato. Ciò richiederebbe l'ammaraggio del plugin Vim-R in favore di una soluzione di indentazione Vim nativa.

4

Se qualcuno guarda per questa domanda:

:help r-plugin-indenting 

Risposta breve. In Vimrc, aggiungere quelle linee:

" set vim-r-plugin to 
let r_indent_align_args = 0 

" Set vim-r-plugin to mimics ess : 
let r_indent_ess_comments = 0 
let r_indent_ess_compatible = 0 

indentazione sarà come descritto da OP.

+0

Sebbene non sia stato visualizzato nel manuale [Nvim-R plugin] (https://github.com/jalvesaq/Nvim-R), questa soluzione funziona perfettamente con Nvim-R. – jomuller