2010-12-06 11 views
6

検索や検索に使用した最後の文字列を返すにはどうすればいいですか?&を置き換えますか?最後の検索や検索を行い、文字列をvimで元に戻しますか?

たとえば、:%s/some_text/some_other_text/gcと入力し、vimからエラーメッセージE486: Patterns not found: some_textが返されたとします。私は実際にsome_textの代わりにsome_magic_textと書くことを意味していました。その時点で、元の文字列を一番下のコマンド行(またはそれが呼び出されているもの)に戻して、それを変更して2回目の検索を行うにはどうすればよいでしょうか?そのための素晴らしいコマンドがありますか?

この簡単な例では、見た目は不要ですが、置き換えようとしているテキストが長すぎて1つの文字を間違って入力しただけでは、すべてを再入力する必要があります。

MacVimで違いがあれば使用しています。

答えて

3

あなたが望むものを説明しているvimvcastをご覧ください。

+2

Ctrl-pです。どうもありがとう。 – c00kiemonster

+3

'/'レジスタを使うこともできます。例: '%s/ /'とし、そこから進みます。 – rossipedia

0

さらに一般的には、最初に入力したコマンドを呼び出すことができます。その後、矢印を複数回使用して履歴をナビゲートします。あなたのケースでは

、次のように入力します
:%s<Up>

は、検索履歴をナビゲートするq/を打つ、通常モードから:help history

6

を参照してください!

1

この回答は、結局のところ、あなたが何をしているかを改善するのに役立つかもしれません。

ハイライト付きの検索を使用して、作成している正規表現が間違いなく機能しているかどうかを対話形式で確認し、検索置換に使用します。 n/N

  1. :se isincsearch、より良いあなたの.vimrcにse isを入れる)
  2. /<search term>
  3. チェック省略する場合、あなたは試合
  4. :s%//<replace term>/g

に満足している場合検索の置換の<search term>4.に、l ast used検索が使用されます。

last(検索置換)コマンドのリストを使用するには、q:を使用するか、または最後に検索語のリストとしてq/と入力します。

ボーナス:
s/<search>/<replace>/gのように動作します:se gds/<search>/<replace>を使用。

/gを追加して各行の最初の検索一致にアクセスすることができます。したがって、基本的に両方の動作が切り替えられます。

関連する問題