在vim中支持特定类型的注释

时间:2012-05-01 15:50:39

标签: vim

在ruby methaprogramming中,我们在多行字符串中有特殊类型的注释,将被评估。它们看起来像这样:https://github.com/rails/rails/blob/8775ffa37231d381cba34f0ecacb8a7bbcf0573f/activesupport/lib/active_support/memoizable.rb#L77

这个字符串在两部分上逐行划分:带有插值的字符串,将在左侧进行评估,代码示例在右侧。手动输入此评论是一项艰苦的工作。它需要许多手动缩进。

vim中是否有一些插件或工具可以帮助代码进行此类评论?

1 个答案:

答案 0 :(得分:5)

首先,在vim中了解使这样的事情更容易生活的功能:

以下是两种方法:

假设垂直分割始终在固定列中(如本示例中的84):

/\%84v#\zs

将找到垂直分隔条。现在你可以对此进行操作,例如

快速和肮脏:成对折叠评论

这会导致评论行在'模板之后立即折叠。行:

:g//s//\r         /
  

注意:已选择(9)空格以匹配OP样本的起始缩进级别。
IRL,您可以使用indent('.')以编程方式计算出多少空格

的Presto:

enter image description here

重组:

:g//join!

可能与某些东西结合起来吃“吃”。冗余缩进(9个空格)

:g//j!|norm! n9x

备选方案:

我通常选择将块拆分为物理文件。重新组合它们会花费更多精力,但编辑更舒适,你可以利用vim的diffmode。

快速入门:

ggn<C-v>ND
:tabnew  | 0put
:tabprev
gvVxgvVd
:tabnext | vert new | 0put

将窗口放在diffmode中:

:windo diffthis

现在,您可以使用实时差异突出显示独立编辑两个窗口。

enter image description here

如果您希望获得有关此策略的更多信息,请与我们联系。我可能会尝试从拆分临时窗口配置重新组合。