10

vimバッファにはvilsのようなものを使いたいです。

例:

a
b
a
b

「a」を検索(:g/a/

出力:

a
a

次に、通常のバッファであるかのように出力を編集します。完了すると、変更を1行ずつ元のバッファにマップする必要があります。

それ、どうやったら出来るの?

PS:私はおそらく:%s/../../それかそのようなものを使うことができました、しかしそれはそれができるほど快適ではないでしょう。CTRL( +Fバッファーでの完了が機能する場合でも。)

4

5 に答える 5

4

Qfreplacehttp://github.com/thinca/vim-qfreplaceを使用します

  1. クイックフィックスにいくつか追加します。例:grep foo * /
  2. タイプ:Qfreplace on quickfix
  3. 必要に応じて行を変更します。
  4. :w
于 2012-06-12T04:22:50.233 に答える
2

あなたが話している機能は、emacsのoccure/のように聞こえます。narrow-to-region

vimでは、次のコマンドを入力できます。

:vimgrep pattern %

次に、と入力:cwしてクイックフィックスリストを開きます。

マウスクリックまたは:cn/:cpを使用してナビゲートし、変更を加えることができます。

于 2012-06-12T04:40:02.620 に答える
1

一致する行が連続する行の単一の範囲にまたがっている限り、NrrwRgnプラグインが機能する可能性があります。

于 2012-06-11T15:20:19.393 に答える
0

私は通常、行をドキュメントの最後にコピーします

:g/a/t$

必要に応じて、「以前の」ドキュメントの終わりにマークを設定できます。

:$mark a

これで、ドキュメントの一部を通常どおりに編集できるように'a,$なりました。これには、別の場所に保存することも含まれます。

:'a,$d | new | put!

以下も同様に機能します:レジスターに追加して、ヤンクすることができますa

:g/a/yank A

もちろん、開始する前に登録をクリアすることをお勧めします。

:let @a=""
于 2012-06-11T16:59:48.567 に答える
-1

g/../次のようなコマンドと組み合わせることができます

:g/^a/ s/a/a.txt/

たとえば、すべての「a」を「a.txt」に変更します。':h:g'を参照してください

于 2012-06-11T15:04:38.957 に答える