2017-09-25 7 views
-2

編集:私はこれをViとVimのサイトに移動しました:https://vi.stackexchange.com/questions/13689/how-to-find-and-replace-in-vim-without-having-to-type-the-original-wordVimで見つけて置き換えるより良い方法はありますか?

私はVimの「検索と置換」ワークフローを最適化したいと思います。あなたの大部分がそうしていると確信しているので、私は頻繁に行うことです。通常、-の行に沿って何かがブロックをコピーし、いくつかの場所で変数の名前を変更します。私は知っています、おそらく、あなたはなぜあなたのコードをコピーして貼り付けているのですか?そのような道を歩かないでください...

私はよく知っています検索と置換コマンドの::sまたは:%sが、私はそれらを好きではない。それは私が探している完全な変数名とそれを何に変更するのかを入力するように強制します。多分、入力の量を:%sで修正するより良い方法がありますか?私はしばしば長い記述変数名を使うので、それは本当に私のためのディール・ブレーカーです。私は、最初から変数名をタイプミングするのは、タイプミスで、時間と脳力を浪費してタイプミスを起こすのが嫌いです。私はそれを一度入力して、コピーして貼り付けて、できるだけこれを完全に避ける方がはるかに好きです。

現在のワークフローでは、move/yank/select/search/putの組み合わせを使用してファイルを移動し、1つずつ置き換えます。それは素晴らしいことではありませんが、完全な変数名の入力を避けるという利点があります。最初の数文字を/と入力するか、周囲の状況に応じて別の移動コマンド(fx)を使用して、単語全体を選択する場合はveを押すだけです。私はまた、すべてのインスタンスに対して繰り返さなければならないことに気をつけません。私は、それぞれの変更を確認せずに完全な置換を見つけることは決してしません。しかし、1回のキーストロークで置換操作を繰り返すことができれば非常に好ましいでしょう(私はこの方法ではできません)。各交換は通常nその後、ve、その後p(または"0pさらに悪い)のようなもの

より高速な方法はありますか?

+1

ワークフローで改善できる点はたくさんあります(f.iを参照)。 Kanaの[textobj-user plugin](https://github.com/kana/vim-textobj-user)、およびDrew Neilの[vimcasts] (http://vimcasts.org/episodes/)。また、[vi.se]について尋ねると、ここでのように拒否メカニズムが少なくなる可能性があります。 –

+0

偉大な点は、私はVi/Vim専用のコミュニティがあることを完全に忘れていました。 https://vi.stackexchange.com/questions/13689/is-there-a-better-method-for-find-and-replace-in-vim – Joel

+2

私はこの質問を議論の対象外としていますVi/Vimの方が意味があります。私はそこに再転記した。 – Joel

答えて

1

私自身のワークフローは、あなたのようになります。

  • おそらく/またはナビゲーションにより、1つのインスタンス上のカーソルを取得し、起動します。
  • *を入力して、その単語の次のインスタンスを見つけます。
  • cwで1つのインスタンスを変更し、新しい変数名を変更します。
  • 次に、次の/前のインスタンスに移動するためにはn/N、最後の編集を繰り返すには.です。

このワークフローでは、変更を適用する前にそれぞれのケースを確認できますが、変更を加えるたびに2回のキーストロークが必要です。

これが役に立ちます。

+0

'gn'モーションを使って検索パターンを操作することができます。 'cgnfoo 'を実行し、 'をつけて繰り返します。コマンド。詳細は ':h gn'を参照してください。 –

0

私は「視覚的な強調表示と編集」アプローチが好きです。

  • shift + v修正したい領域を強調表示します。

  • 次に:s/old/new/roldは、newと置き換えたい単語です。

  • rは、その単語の最初のインスタンスを変更します。old

注:単語を置き換える方法を変更する場合は、r以外のオプションがあります。

関連する問題