再フォーマットしようとしていた大きなファイルがあり、複製ごとに 2 から 100 行の 2 番目から n 番目の繰り返しセットを削除する必要がありました。
データは次のように見えました
element1.element2.element...field.comment
最初のインスタンスの後の要素の繰り返しを削除したかったので、もちろん複雑になりました:)そして、次のようなマクロを実行しました
マクロでは、現在の行の最初の要素をレジスタ p にヤンクし、次に行を処理して、最初の要素をレジスタにヤンクしo
てから、マクロ内で実行します
:if (@p=!@o)|:.s/paste register p//g|else|:norm! j|endif
これで、手動で1回か2回エスケープしてから コマンドを実行するまで@p<>@o
、:norm! j
パーツがモードのままだった行に到達した場合を除いて、これは問題なく機能しました。:
:norm! j
私はより簡単な方法で問題を解決しましたが、なぜそれが :ex モードを離れないのが else の部分だけだったのか知りたいです。