4

VIM では、特定のテキスト ブロック上またはその周辺の変更を元に戻すことはできますか? のすぐ上"if yes"で A を変更し、ファイルの他の場所で B、C、D、および E を変更するとします。vimに「から+/- 10行で行われた変更を元に戻すことはできif yesますか?

これが不可能であるか、少なくともバニラvimでは不可能であることを示唆する別の質問に出くわしました。この動作を可能にするプラグインを知っている人はいますか?

4

2 に答える 2

10

@Zsoltの答えはおそらく非常に興味深いものです。私はそれを理解する必要があります。

私が普段していることは、

100g-(復元したいものが含まれていた履歴スナップショットに戻ります)

なんらかの方法を使用して「レスキュー」テキストをヤンクします。

:12,17yank

999g+(歴史の先端に戻る)

通常の編集アクションを使用して、ヤンクされた線を元の位置に戻します。

于 2011-04-07T23:16:31.550 に答える
4

このプラグイン: http://www.vim.org/scripts/script.php?script_id=3304を使用すると、元に戻すツリーを簡単に移動できます。

  1. 元のセクション ( のあたり) に戻り if yes、 でマークしますma
  2. ツリーの以前の状態に戻ります (他の変更を元に戻したとしても)。
  3. 保持したい領域をレジスターにコピー (ヤンク) します (例: select visual lines - V5j"by)。
  4. 元の状態に戻る(群道ツリーの最後のアイテム)。
  5. 変更したいセクションに戻る ( 'a)
  6. 元に戻したいセクションを削除し、bレジスタの内容に置き換えます。
于 2011-04-07T19:38:39.277 に答える