2013-06-14 4 views
0

Привет Я кодирования R, и хотел бы, чтобы иметь возможность свернуть функции В функции RI кода, как это:, как написать функцию, чтобы сбросить некоторые модели

myFnName <- function(some, args){ 
    #some description or not 
    some code 
} 

Мой вопрос, как я могу написать функцию который будет освещать функцию, как автоматически, когда вы нажимаете какой-либо ключ даже внутри функции. Я знаю, что могу установить fdm=manual, но тогда я должен сделать это на 100-й из функций, которые у меня есть.

myFnName <- function(some, args){ 
+---------------- 
+0

ли вы попробовать ': установить foldmethod = indent'? – romainl

+0

уверен, что я сделал, и это не сработало ... – statquant

ответ

1

Что «не работает» с indent?

Как работает syntax и indent, но ваша проблема может заключаться в том, что оба метода не учитывают комментарии, поэтому они ничего не делают для вашего образца (они видят только одну строку, поэтому нечего делать сбрасывать).

Как только у вас есть несколько строк кода, za, zM, zR и друзья работают отлично.

Другой метод стоит попробовать это , используя :set foldmarker={,} позволяет включить:

myFnName <- function(some, args){ 
    #some description or not 
    some code 
} 

в:

+-- 4 lines : myFnName <- function(some, args)-------- 

с простым za.

Во всяком случае, я рекомендую эти два vimcasts, если вы хотите большего контроля:

+0

Merci Romain! Ваш 'foldmarker' работает хорошо, это достаточно хорошо для меня – statquant

0

Проверьте, есть ли плагин, который это делает.

Прочитайте справку о том, как написать пользовательскую функцию складывания для файла типа R: :h 'foldexpr', :h fold-expr.

Прочтите углубленное учебное пособие по пользовательскому складу в Изучите Vim Script Hard Way от Steve Losh: "Advanced Folding".