1

ruby メタプログラミングでは、評価される複数行の文字列内に特別な種類のコメントがあります。それらは次のようになります: https://github.com/rails/rails/blob/8775ffa37231d381cba34f0ecacb8a7bbcf0573f/activesupport/lib/active_support/memoizable.rb#L77

この文字列は行ごとに 2 つの部分に分割されています。左側は評価される補間を含む文字列、右側はコードの例です。このコメントを手動で入力するのは大変な作業です。多くの手動のインデントが必要です。

このタイプのコメントのコードを作成するのに役立つプラグインやツールが vim にありますか?

4

1 に答える 1

5

まず最初に、vim で次のような作業を容易にする機能を理解してください。

以下に 2 つのアプローチを示します。

垂直分割が常に固定列 (このサンプルでは 84 のように) にあると仮定すると、次のようになります。

/\%84v#\zs

垂直分割バーを見つけます。これで、それを操作できます。

クイック アンド ダーティ: コメントをペアごとに折りたたむ

これにより、'template' 行の直後にコメント行が折り畳まれます。

: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

ウィンドウを diffmode にします:

:windo diffthis

両方のウィンドウを個別に編集できるようになり、ライブの差分が強調表示されます。

ここに画像の説明を入力

この戦略についてさらに情報が必要な場合はお知らせください。分割一時ウィンドウ構成からの再結合を試みるかもしれません。

于 2012-05-01T20:19:28.317 に答える