2011-11-23 8 views
7

最近、私はを手にしていましたが、多少の変更が必要なコード(通常は単純な代替コード)を使用しています。貼り付けた後に手動で選択できます。貼り付けた行数(20 new lines)を参照して20:s...を使用しても構わないと思われますが、それがvimだとすれば、より簡単で簡単な方法これを行う。Vimは、入力された直後にテキストを変更します。

テキストの置換を選択または実行する方法はありますか?p ut?

答えて

8

直ちにpの実行後、[]マークは(同様にy中に適用される)貼り付け領域の開始と終了行番号を指します。説明のために'[および']のヘルプを参照してください。

したがって、これらのマークを使用して:sを動作させる範囲を:'[,']s///とすることができます。これは、ちょうどヤンクされたまたはペーストされた領域で動作します。確かに、それは短くはありませんが、あなたが気にしていればそれをマップすることができます。おそらくnnoremap <Leader>p p:'[,']s/のようなものでしょう。

+1

完璧、ありがとうございます。 vimが想像することができるすべてのもののもう一つの例です。 – Kevin

3

Chris Morganはすでに最高のソリューションを投稿しています。しかし、あなたはまた、登録簿のテキスト上でいくつかの種類の操作を直接行うことができます。その後、変更されたレジスタのテキストを貼り付け

:let @" = substitute(@",'someword', 'somedifferentword','g') 

:あなたが何かを行うことができますので、ヤンクのデフォルトのレジスタは、"です。レジスタ内のテキストは、1つの開始パターン(^)と1つの終了($)の1つの文字列であるため、複数行レジスタテキストの行コンテキストに関連する操作は容易ではありません。しかし、それでも役に立つことができます。

ちょうど私がそこに投げ捨てると思ったのは、これは私がときどき行うことだからです。

+0

おかげさまで、ありがとう、ありがとう。 – Kevin

関連する問題