バッファ全体を置き換える最も効率的な方法は?


10

現在、バッファ全体を他のテキスト(クリップボードなど)に置き換える2つの類似した方法があります。

方法1:

  1. すべての行を削除::%d

  2. テキストを貼り付け:("+Pまたは類似:):put+

方法#2:

  1. すべての行を視覚的に選択しますggVG

  2. テキストを貼り付け:"+P

しかし、私はそれを行うための1つのコマンドを発射する方法を見つけることができなかったようです。私が見つけた最も近いものは:changeコマンドです。しかし、それはレジスターではうまく機能しないようです。もちろん、関数を作成したり、そのためのキーをマップしたりできます。しかし、これらすべてのカスタマイズを行う前に、以下を確認したいと思います。

ある範囲の行を他のテキストで置き換える組み込みコマンドはありますか?同様に、:%replace+バッファ全体をクリップボードのテキストに置き換えることができますか?


2
私は頭の上から何も知りませんが、これをたくさんするなら、マッピング/コマンドを作成してみませんか?
Matt Boehm、

5
うーん、1,$s/\_./\=@+解決策ではありません:P、:%d|put+近いですが、そこにはありません。
Runium、2015

1
ドット...の後のアスタリスクを忘れました。この場合改行を含む任意の文字1,$s/\_.*/\=@+\_.一致します。
Runium、2015

2
あなたは、ください持っているバッファを再利用するか、新しいバッファを始めるにしてもよいでしょうか?
200_success

3
Sukminder's :%d|put+はその目的に合うと思います。短くて印象的です。他のコマンドはあまりに難解で、覚えて正しく入力することができません。
リーライアン

回答:


2

ggvG<CTRL-G>バッファ全体を視覚的に選択してと入力することができますSelect-mode。これは、入力する予定のテキストでバッファを置き換える最も簡単な方法です。あなたはあなたの問題を解決することでSelect-modeマッピングを作ることができるかもしれません:smap


0

バッファ全体をクリップボードで置き換える1つの方法は、次のような外部コマンドを使用することです。

:%!pbpaste
:%!echo my_text

参照:Mac OS Xクリップボード共有

または置換を使用して:

:%s/\_.*/\=@+/
:%s/\_.*/my text/

あるいは、:%d|put+(コメントですでに提案されているように)使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.