【问题标题】:how to write a function to fold certain patterns如何编写一个函数来折叠某些模式
【发布时间】:2013-06-14 07:29:48
【问题描述】:

您好,我正在编写 R 代码并希望能够折叠功能 在 R I 代码函数中是这样的:

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

我的问题是如何编写一个函数,即使在函数内部按下某个键时也会自动取消该函数。我知道我可以设置fdm=manual,但我必须在我拥有的 100 个函数上进行设置。

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

【问题讨论】:

  • 你试过:set foldmethod=indent吗?
  • 确定我做到了,但它没有工作......

标签: vim folding


【解决方案1】:

indent 什么“不起作用”?

syntaxindent 都有效,但您的问题可能是这两种方法都没有考虑 cmets,因此它们不会为您的样本做任何事情(它们只看到一行,所以没有什么可折叠的) .

只要你有超过一行的实际代码,zazMzR 和朋友们就可以完美地工作。

另一个值得尝试的方法是marker,使用:set foldmarker={,}可以让你转:

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

进入:

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

使用简单的za

无论如何,如果您想要更多控制权,我推荐这两个 vimcast:

【讨论】:

  • 谢谢罗曼!你的foldmarker 很好用,对我来说已经足够了
【解决方案2】:

检查是否有插件可以做到这一点。

阅读有关如何为 R 文件类型编写自定义折叠函数的帮助::h 'foldexpr':h fold-expr

阅读 Steve Losh 的 Learn Vim Script the Hard Way 中关于自定义折叠的深入教程:"Advanced Folding"

【讨论】:

    猜你喜欢
    • 2023-02-09
    • 1970-01-01
    • 2018-12-07
    • 2018-04-23
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多