Pytanie Zmień styl wcięcia R w vim za pomocą wtyczki Vim-R


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.

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
              )

Żądany styl naśladuje styl wcięcia for pętle i definicje 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)
}

Spojrzałem na kod wtyczki Vim-R, ale jest zbyt gęsty, by zrozumieć. Czy istnieje sposób, aby to zmienić?


12
2017-11-28 03:23


pochodzenie


Pamiętam, że wyłączam automatyczne wcięcie i robię to ręcznie. Wygląda na to, że ktoś ostatnio zapytał podobne pytanie i powiedziano mu, że nie istnieją żadne plany, aby to umożliwić. - BenBarnes


Odpowiedzi:


Jeśli ktoś szuka tego pytania:

: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 przez OP.


5
2018-06-17 09:18



Chociaż nie pojawił się w Wtyczka Nvim-R ręczne, to rozwiązanie doskonale współpracuje z Nvim-R. - jomuller


Spojrzeć na :help 'cindent' i :help 'smartindent' dla początkujących; możesz stosunkowo łatwo skonfigurować wcięcie, używając jednej z tych dwóch opcji. Możesz także spróbować pisać własne indentexpr, ale robi się to nieco zaawansowane. To wymagałoby zrzucenia wtyczki Vim-R na rzecz rozwiązania Vim-natywnego wcięcia.


1
2018-04-10 19:48