2015-02-19 6 views
15

Per esempio, Vim non trattino correttamente il seguente codice:Come posso fare il codice dplyr vim indent con l'operatore pipe (%>%) correttamente?

flights <- flights %>% 
    group_by(year, month, day) %>% 
    select(arr_delay, dep_delay) %>% 
    summarise(
     arr = mean(arr_delay, na.rm = TRUE), 
     dep = mean(dep_delay, na.rm = TRUE) 
    ) %>% 
    filter(arr > 30 | dep > 30) 

C'è un modo per risolvere questo problema?

Sto usando il Vim-R-Plugin, il problema correlato è here.

+0

stai usando ': set smartindent'? – rawr

+0

@rawr: si, lo so. – enricoferrero

risposta

1

Una cosa che puoi fare è imparare vimscript e modificare questo comportamento tu stesso. Se funziona bene, puoi contribuire alla modifica dell'autore originale.

Ho iniziato in questo modo ma ho finito per scrivere da zero il mio codice di indentazione che fa tutto proprio come piace a me. Ho parlato con l'autore del plugin R riguardo la sostituzione del suo codice con il mio ma il mio codice ha un paio di bug che non ho mai trovato il tempo e che non mi infastidiscono molto (si blocca se si ha una parentesi graffa chiusa senza corrispondenza , per esempio). Non ho mai avuto la motivazione di ripulirlo per tutto il resto e provare a inserirlo nel repository VIM.

In risposta alla richiesta, I have put my code on github. Puoi provare a usare il mio codice di indent invece del codice del plugin r se vuoi. Può o non può risolvere il tuo problema (nessuna promessa). Se sono abbastanza motivato, potrei risolverlo abbastanza da renderlo il codice predefinito di rientro di vim.

Problemi correlati