パーソナルツール

2つのテキスト集合を、1行ずつ、交互に組み合わせる。

作者: 小見 拓 最終変更 2012年01月08日 11時58分

2つのテキスト集合があるとして、それぞれの集合から1行ずつ抜き出して、 それらが交互に並ぶように加工する方法を紹介します。 (Windows, Mac)

概要

2つのテキスト集合があるとして、それぞれの集合から1行ずつ抜き出して、
それらが交互に並ぶように加工する方法を紹介します。

この説明では何をするのかわかりづらいと思うので、 詳細はドキュメント中の例をご覧下さい。

編集例の紹介

例えば、下図(↓)のような、2つのテキストの集合があるとして、

jp.nanasi.up.a1 = 1
jp.nanasi.up.a2 = 2
jp.nanasi.up.a3 = 3
jp.nanasi.up.a4 = 4
jp.nanasi.up.a5 = 5
jp.nanasi.up.a6 = 6
jp.nanasi.up.a7 = 7

bottom.jp.nanasi.z1 = 1
bottom.jp.nanasi.z2 = 2
bottom.jp.nanasi.z3 = 3
bottom.jp.nanasi.z4 = 4
bottom.jp.nanasi.z5 = 5
bottom.jp.nanasi.z6 = 6
bottom.jp.nanasi.z7 = 7

このテキストの集合2つを、1行ずつ、交互に組み合わせる方法を説明します。

jp.nanasi.up.a1 = 1
bottom.jp.nanasi.z1 = 1
jp.nanasi.up.a2 = 2
bottom.jp.nanasi.z2 = 2
jp.nanasi.up.a3 = 3
bottom.jp.nanasi.z3 = 3
jp.nanasi.up.a4 = 4
bottom.jp.nanasi.z4 = 4
jp.nanasi.up.a5 = 5
bottom.jp.nanasi.z5 = 5
jp.nanasi.up.a6 = 6
bottom.jp.nanasi.z6 = 6
jp.nanasi.up.a7 = 7
bottom.jp.nanasi.z7 = 7

この例のような編集を行いたいケースというのは、割とあることだと思います。

編集方法

2つのテキスト集合のうち、下側のテキスト集合を選択する。

2つのテキスト集合のうち、下側のテキスト集合を、ビジュアルモードかコマンドラインで選択します。
(この記事ではビジュアルモードで選択したものと仮定して話を進めます。)

jp.nanasi.up.a1 = 1
jp.nanasi.up.a2 = 2
jp.nanasi.up.a3 = 3
jp.nanasi.up.a4 = 4
jp.nanasi.up.a5 = 5
jp.nanasi.up.a6 = 6
jp.nanasi.up.a7 = 7

bottom.jp.nanasi.z1 = 1
bottom.jp.nanasi.z2 = 2
bottom.jp.nanasi.z3 = 3
bottom.jp.nanasi.z4 = 4
bottom.jp.nanasi.z5 = 5
bottom.jp.nanasi.z6 = 6
bottom.jp.nanasi.z7 = 7

下側のテキスト集合を1行ずつ、上のテキスト集合にコピーする。

今回の例では、上と下のテキスト集合の間に空行が1行あり、上側のテキスト集合が7行あるので、
各行をそれぞれ、カレント行より8行分、上にコピーしましょう。

各行ごとの処理は「:global/^/」で実現し、
カレント行より上の行へのコピーは「copy -N」行で実現します。

:'<,'>g/^/copy -8

Note

「copy」コマンドの代わりに「t」コマンドを利用しても良い。
「t」コマンドの方が、入力量が少なく済む。

" copyコマンドの代わりに、
:'<,'>g/^/copy -8

" tコマンドを使っても良い。
:'<,'>g/^/t -8

後始末する。

コマンド実行後は下図のような状態になるので、
最後に後始末として、不要になった下側のテキスト集合を削除しましょう。
これで完成となります。

jp.nanasi.up.a1 = 1
bottom.jp.nanasi.z1 = 1
jp.nanasi.up.a2 = 2
bottom.jp.nanasi.z2 = 2
jp.nanasi.up.a3 = 3
bottom.jp.nanasi.z3 = 3
jp.nanasi.up.a4 = 4
bottom.jp.nanasi.z4 = 4
jp.nanasi.up.a5 = 5
bottom.jp.nanasi.z5 = 5
jp.nanasi.up.a6 = 6
bottom.jp.nanasi.z6 = 6
jp.nanasi.up.a7 = 7
bottom.jp.nanasi.z7 = 7

bottom.jp.nanasi.z1 = 1
bottom.jp.nanasi.z2 = 2
bottom.jp.nanasi.z3 = 3
bottom.jp.nanasi.z4 = 4
bottom.jp.nanasi.z5 = 5
bottom.jp.nanasi.z6 = 6
bottom.jp.nanasi.z7 = 7
ドキュメントアクション
コメント
blog comments powered by Disqus