2017-11-28 27 views

答えて

5

これは、最新の変更までのすべての変更をやり直します:exec 'undo' undotree()['seq_last']

を試してみてください。

あなたはCTRL +シフト + Rのようなものにマッピングします。あなたのvimrcファイル内 置き、これを:アンドゥツリー内のn番目の変化にジャンプundo {N}

nnoremap <C-S-R> :exec 'undo' undotree()['seq_last']<CR>

説明

undotree()は、元に戻すツリーの状態で辞書を返す関数です。

undotree()['seq_last']は、辞書内のキーseq_lastを検索します。

:help undotreeから、我々はseq_lastに関連付けられた値であることを参照してください。 The highest undo sequence number used.

:execは、私たちの表現から文字列を評価します。 たとえば、undotree()['seq_last']42を返すとします。 この例の式はundo 42で、最新の変更である42番目の変更になります。

+1

これはまったく動作していないし、エラーメッセージも表示されないので、私はしばらく間違いましたが、私は誤って 'vi'で作業していたことに気付きました。これは 'vim'で完璧に動作します –

3

Vimがの元に戻すブランチでは、線形元に戻すシーケンスだけでなく、これは覚えておくことが重要です。最新のテキスト状態に進むには、9999g+9999は任意の高い数値です)を使用できます。また、:later 1dを使用することもできます。

+0

私は元に戻すブランチをある程度は理解していますが、この場合、私が望むのは、現在の 'ブランチ'(' 9999u'の結果)の最新の状態に到達する方法です任意の数を選択する –

関連する問題