2012-01-04 15 views
4

私はバッファリストを歩き回り、各バッファから1行を選択し、すべてを1つのファイル(または他のバッファ)に連結しようとしています。以下のように:VIM - 複数のファイルの行を1つのファイルにまとめる

file1の

... LINE2 ...

FILE2

... LINE2 ...

FILE3

.. 。 line2 ...

など。私は私のレジスタが働いて得るように見えることはできません

myfileを

LINE2(FILE1)

LINE2(FILE2)

LINE2(FILE3)

:すべてに

bufdoは何らかの理由で私に心痛を与えています...

[解説] bufdoを使ってすべてのバッファを歩き、それぞれから2行目をヤンクしてレジスタに追加することができればと思っていました。

次に、別のファイルに、すべてのバッファの2行目を含むレジスタの内容を貼り付けます。

+0

(1)あなたの質問は完全ではありません(実際に何をしていて、「私の登録簿を働かせていない」と「心苦しい」という意味ですか?)、そして(2) Vimでは、通常の* nixユーティリティを使って各ファイルの2行目を取得できますか? – Cascabel

+0

申し訳ありませんが、私は明確にする必要があります。 Win 7ではgVIM 7.3.46であるため、通常の* nixコマンドにはアクセスできません。ちょうどすぐにVIMから直接これらを組み合わせることができるようにしたかったのです。私はちょうど私のバッファをロードし、レジスタ(追加)に各バッファから2番目の行をヤンクすることができ、私のファイルにレジスタを貼り付けることができることを望んでいた。 –

答えて

4

次のようなものでこれを行うことができる必要があります:

bufdo normal 2G"Ayy 

反復するバッファを介して、通常モードで特定のコマンドを実行します。 2Gが適切な行にジャンプし、"Ayは、aが大文字にされているため、上書きの代わりに追加することで、レジスタaにヤンクします。あなたが始める前に、レジスタaが空であることを確認してください!

バッファの代わりにウィンドウまたはタブがある場合は、windoまたはtabdoを使用できます。

+0

ああ、そこには顔が私を見つめている。どうもありがとうございました! –

+1

私はレジスタに追加する方法を知らなかった。ありがとうございました! – gpojd

+3

@Pat代わりにコマンドモードコマンド ':bufdo 2yank A'を使うことができます。 – ZyX

関連する問題