インデントされた行のブロックが {{{ と }}} で囲まれるように、テキストファイルを操作したいと考えています。
これは私が立ち往生している場所です:
1 /^\ [^\ ]/,/^[^\ ]/{ # match range: all indented plus line after that
2 b fixIndented # branch
3 }
4
5 /^[^\ ]/{p;b} # print all non-indented outside range and exit.
6
7 :fixIndented
8 /^[^\ ]/{ # match last line of range
9 x; # swap Holdbuffer und patternSpace, edit patternSpace
10 i\
11 {{{
12 a\
13 }}}
14 p;
15 x;p;
16 }
17 H; # write each line in range into holdBuffer
15 行目はホールド バッファー (9 行目で交換したものを含む) を読み込んでから、操作されたパターン スペース (10 行目から 13 行目) が出力された後(14 行目)に出力する必要があると思います。しかし、そうはなりません。代わりに、ホールド バッファーからの行をパターン スペースにマージするように見えます。そのようです:
bla
blubb
foo1
bla2
foo3
sadgfasdf
bar
foo
になります:
bla
blubb
{{{
foo1
bla2
foo3
sadgfasdf
}}}
bar
foo
誰かがここで私を正しい方向に向けるために時間を割いてくれたら、とても感謝しています. ありがとう、