在ruby methaprogramming中,我们在多行字符串中有特殊类型的注释,将被评估。它们看起来像这样:https://github.com/rails/rails/blob/8775ffa37231d381cba34f0ecacb8a7bbcf0573f/activesupport/lib/active_support/memoizable.rb#L77
这个字符串在两部分上逐行划分:带有插值的字符串,将在左侧进行评估,代码示例在右侧。手动输入此评论是一项艰苦的工作。它需要许多手动缩进。
vim中是否有一些插件或工具可以帮助代码进行此类评论?
答案 0 :(得分:5)
首先,在vim中了解使这样的事情更容易生活的功能:
视觉阻止模式
virtualedit;您可以将光标移动到没有任何文本的位置。这被称为"虚拟空间"。用户指南有extensive samples talking about editing ascii tables(在某些方面类似于您的情况):
以下是两种方法:
假设垂直分割始终在固定列中(如本示例中的84):
/\%84v#\zs
将找到垂直分隔条。现在你可以对此进行操作,例如
这会导致评论行在'模板之后立即折叠。行:
:g//s//\r /
注意:已选择(9)空格以匹配OP样本的起始缩进级别。
IRL,您可以使用indent('.')
以编程方式计算出多少空格
的Presto:
重组:
:g//join!
可能与某些东西结合起来吃“吃”。冗余缩进(9个空格)
:g//j!|norm! n9x
我通常选择将块拆分为物理文件。重新组合它们会花费更多精力,但编辑更舒适,你可以利用vim的diffmode。
快速入门:
ggn<C-v>ND
:tabnew | 0put
:tabprev
gvVxgvVd
:tabnext | vert new | 0put
将窗口放在diffmode中:
:windo diffthis
现在,您可以使用实时差异突出显示独立编辑两个窗口。
如果您希望获得有关此策略的更多信息,请与我们联系。我可能会尝试从拆分临时窗口配置重新组合。