代码之家  ›  专栏  ›  技术社区  ›  Josh

获取R代码段以接受插入文本中的空白

  •  0
  • Josh  · 技术社区  · 7 年前

    我试图编写一个代码片段,以便使用我的标准格式快速插入注释文本:

    #######################################><###################
    ##  [date and time goes here] ------------------------------
    ##  [comment goes here, can span multiple
    ##  lines]
    #######################################><###################
    

    这就是我目前所拥有的:

    snippet comm
        `r paste0(
            "#######################################><###################\n##  ", 
            date(), 
            " -------------------------------\n##  ", 
            eval(
                paste0(
                    gsub(
                        ".{1,51}\\s?\\K\\b", 
                        "\n##  ", 
                        gsub("\\.", " ", paste0(text)), 
                        perl = T
                    )
                )
            ), 
            "###################################><###################\n"
        )`
    

    此代码段有效,但要求注释文本中没有空格。为了解决这个问题,我写了一个片段来解释 . 作为一个空间。

    commlong.comment.text.1111111.aaaaaaa.2222222.bbbbbbb.3333333.ccccccc.4444444.ddddddd.5555555.eeeeeee.6666666.fffffff.7777777.ggggggg.8888888.9999999.0000000
    
    #######################################><###################
    ##  Tue Jul 24 12:40:55 2018 -------------------------------
    ##  1111111 aaaaaaa 2222222 bbbbbbb 3333333 ccccccc 
    ##  4444444 ddddddd 5555555 eeeeeee 6666666 fffffff 
    ##  7777777 ggggggg 8888888 9999999 0000000
    ##  ###################################><###################
    

    由于键入带有句点而不是空格的注释是一件痛苦的事,所以我想修改代码片段以接受带有空格的注释文本。有什么办法吗?谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Josh    7 年前

    结果发现这比预期的要容易得多。我发现代码片段中任何不在ticks中的东西 ` 被解释为它直接键入RStudio的源窗格。里面的任何东西 `r ... ` 将其视为直接键入控制台窗格中,但将输出插入到源窗格中的当前位置(相对于现有文本或周围片段)。所以我写了这个片段,它基本上就是我想要的:

    snippet commentblock
        ######################################## # # # # # # # # # #  ##  ##  ##  ##  ##
        # `r date()`
        # ${1:title} -------------------------------------------------------
        # ${2:text}
        ######################################## # # # # # # # # # #  ##  ##  ##  ##  ##
    

    我添加了 --- 因为我希望这一行被文档大纲解释为节标题。可能会编写一个代码段,用于计算 title 并插入 - 我们需要 --- 一直走到边缘,但弄清楚这一点似乎并不能很好地利用我的时间。