719

Vim では、元に戻す操作が多すぎました。これを元に戻す (やり直す) にはどうすればよいですか?

4

10 に答える 10

932

Ctrl+r

于 2009-10-12T17:12:27.867 に答える
137

:undolistまた、元に戻す履歴を介して複数のパスを提供するも確認してください。これは、元に戻しすぎて誤って何かを入力してしまった場合に便利です。

于 2009-10-12T18:20:35.500 に答える
55

:earlier/を使用し:laterます。やるべきことをすべてやり直すには

later 9999999d

(最大で 9999999 日前にファイルを最初に編集したと仮定)、または、現在の元に戻す状態と必要な元に戻す状態の違いを覚えている場合は、時間、分、秒にそれぞれNh,Nmまたはを使用します。Ns+ :later N<CR><=>Ng+および:later Nfファイル書き込み用。

于 2012-06-23T11:38:55.403 に答える
47

Vimのドキュメント

<Undo>      or                  *undo* *<Undo>* *u*
u           Undo [count] changes.  {Vi: only one level}

                            *:u* *:un* *:undo*
:u[ndo]         Undo one change.  {Vi: only one level}

                            *CTRL-R*
CTRL-R          Redo [count] changes which were undone.  {Vi: redraw screen}

                            *:red* *:redo* *redo*
:red[o]         Redo one change which was undone.  {Vi: no redo}

                            *U*
U           Undo all latest changes on one line.  {Vi: while not
            moved off of it}
于 2009-10-12T17:15:47.453 に答える
30

コマンドモードでは、Uキーを使用して元に戻し、Ctrl+rを使用してやり直します。http://www.vim.org/htmldoc/undo.htmlをご覧ください。

于 2009-10-12T17:12:31.470 に答える
11

Vim ドキュメント の「元に戻す」と「やり直し」の部分を参照してください。

:red[o] (取り消された 1 つの変更をやり直す) と {count} Ctrl+ r(元に戻された {count} 個の変更をやり直す) はどちらも問題ありません。

また、:earlier {count} (古いテキスト状態に {count} 回移動する) は、常に元に戻すとやり直しの代わりになる可能性があります。

于 2014-02-17T03:22:25.750 に答える
5

CTRL+r

「r」は小文字です。

于 2009-10-12T17:14:08.503 に答える
4

Visual Studio に VsVim を使用していますか?

Visual Studio で Vim コマンドのバインドを提供する VsVim を試しているときに、これに遭遇しました。

私は Vim 自体で知ってCtrlrいますが、この特定のバインドは VsVim では機能しません (少なくとも私の設定では?)。

ただし、機能するのはコマンド:redです。これは上記よりも少し手間がかかりますが、本当に必要な場合は問題ありません。

于 2018-02-08T08:35:01.057 に答える
2

実際には、:undolistは使いにくく、Vim:earlier:later変更のタイム トラッキングは粗粒度の修正にのみ使用できます。

そこで私は、これらの機能を組み合わせてブラウズ可能なアンドゥのビジュアル ツリーを提供する「Gundo」というプラグインに頼っています。</p>

明らかに、これは細かい修正が必要な場合、または戻りたいドキュメントの正確な状態が不明な場合にのみ使用するものです。参照:群道。Vim undo ツリーをスタイリッシュにグラフ化する

于 2018-06-07T14:59:54.153 に答える