2012-11-28 8 views
11

Używam wtyczki Vim-R z Vimem, aby zapewnić podświetlanie składni dla mojego kodu R. Styl regularnego wcięcia wyrównuje parametry w funkcji na początku nawiasów. Chciałbym zmienić to tak, aby było bardziej jak kod w nawiasach klamrowych, gdzie nowe linie są wcięte w dwie spacje zamiast w nawiasy klamrowe.Zmień styl wcięć w vim za pomocą wtyczki Vim-R

Moje nazwy funkcji wydają się być pełne, a domyślny styl wcięcia pozostawia wszystkie moje parametry przesunięte do końca na prawo od ekranu.

Oto kilka przykładów:

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

Żądane naśladuje styl styl wcięcie dla for pętli i definicji funkcji.

# 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) 
} 

patrzyłem na kod Vim-R-plugin, ale to jest zbyt gęsty dla mnie do zrozumienia. Czy istnieje sposób, aby to zmienić?

+1

Pamiętam, że wyłączam automatyczne wcięcie i robię to ręcznie. Wygląda na to, że ktoś ostatnio zadał [podobne pytanie] (https://github.com/jcfaria/Vim-R-plugin/issues/18) i powiedziano mu, że nie istnieją żadne plany, aby to umożliwić. – BenBarnes

Odpowiedz

1

Spójrz na :help 'cindent' i :help 'smartindent' na początek; możesz stosunkowo łatwo skonfigurować wcięcie, używając jednej z tych dwóch opcji. Możesz także spróbować napisać własną wersję indentexpr, ale to jest trochę zaawansowane. To wymagałoby zrzucenia wtyczki Vim-R na rzecz rozwiązania Vim-natywnego wcięcia.

4

Jeśli ktoś patrzy na to pytanie:

:help r-plugin-indenting 

Krótka odpowiedź. W .vimrc dodaj te linie:

" 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 

Wcięcie będzie podobne do opisanego w OP.

+0

Chociaż nie pojawił się w instrukcji [Nvim-R plugin] (https://github.com/jalvesaq/Nvim-R), to rozwiązanie działa idealnie z Nvim-R. – jomuller