vimで2つの垂直ブロックをマージする


回答:


7

例えば行を選択します:垂直ブロックをヤンクfile2.txtしてCTRLv、とヤンクyとの最初の行の最後に移動した後に貼り付けるfile1.txtp

vimGNUスタックで実行する場合は、pasteプログラムを使用して同じことを行うこともできます。使用し-dたファイルからのフィールド間で使用するためにどのような区切り文字を指定します。

paste -d "" 1 2 > merged.txt

1

純粋なvimでも動作します:

 % vim -O file1.txt file2.txt  # open both files vertically splitted

次に、file1.txtでブロックを名前付きレジスタにヤンクし、「a」と言います。

  • gg ファイルの先頭に移動
  • ctrlv ブロックモードを選択してください
  • G 最後の行に行く
  • $ 最後の行の最後の文字に移動する
  • "ay 「a」を登録するヤンク

次に、file2.txtに切り替えて、以下を実行します。

  • gg ファイルの先頭に移動
  • "aP レジスタ 'a'の内容をテキストの前に貼り付けます

0

UnixまたはLinuxで作業している場合は、pasteコマンドを使用します。

:%!paste-file2.txt

これは古典的なviでも機能するか、コマンドラインから直接機能します:

$ paste file1.txt file2.txt> out.txt

お役に立てれば


0

また、Linuxでコマンド:readを使用して、あるファイルのテキストを別のファイルに貼り付けることもできますか、たとえば:

どちらの場合も、ファイルのセクションに配置して実行した後、最初にvimでファイルを開きます。

:read file1.txt

または

:読んでください!cat file1.txt

2つ以上のファイルのコンテンツを結合するのに非常に便利です...


これは質問に答えません。あなたの答えはカット/ペーストについてですが、質問はマージについて非常に明確です。質問を注意深く読み、無関係な情報を投稿しないでください。
music2myear
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.