web-dev-qa-db-ja.com

vi [m]別のファイルから行の範囲を読み取ります

Linuxでは、vimでfile_Bを編集して、file_Aから10-25行目を追加したいと思います。例:まったく同じヘッダーを持つHTMLドキュメントのセット全体があり、はい、テンプレートを作成してそこから開始できますが、それでも次のようになります。

私が探しているのは1つのファイルからある範囲の行を挿入し、それを現在編集中のファイルに追加する簡単な[そしてエレガントな]方法です。vimで。

私がこれまでに見つけた解決策ですが正確ではありません私が探しているものは

  • insidefile_Bコマンド:read file_Aは、* file_A *全体をfile_Bに追加します。過度に
  • vim内にコピー&ペーストがありますが、これにはfile_Aを開いている必要があります
  • insidefile_A :10,25w! file_Bは、指定された範囲の行をfile_Bに「送信」します。
    これはコピー&ペーストに非常に近いようです
  • vimで複数のウィンドウを開くことができます
    しかし、8インチの画面で作業していると、ウィンドウが複数あると向きが難しくなります

快適な解決策を見つけることができなかったので、私は何かを誤解しただけなのか、それともこれまでに見つけた方法が一般的に使用され、標準的な方法として採用されているのだろうかと思います。

9
erch

私が思いつくことができる最善の解決策は、外部からsedを呼び出し、それを:read !と組み合わせることです。

:r !sed -n -e '10,25p' fileB
11
Bernhard