1

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

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

vim 中是否有一些插件或工具可以帮助编写此类注释?

4

1 回答 1

5

首先,了解在 vim 中使此类事情变得更轻松的功能:

这里有两种方法:

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

/\%84v#\zs

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

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

这导致注释行在“模板”行之后被折叠:

:g//s//\r         /

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

快速:

在此处输入图像描述

重组:

:g//join!

可能与“吃掉”多余缩进的东西结合在一起(9 个空格)

:g//j!|norm! n9x

备择方案:

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

快速入门:

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

将窗口置于差异模式:

:windo diffthis

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

在此处输入图像描述

如果您想对此策略有更多意见,请告诉我。我可能会尝试从拆分临时窗口配置中重新组合。

于 2012-05-01T20:19:28.317 回答