7

vim 7.4.9 で永続的な取り消しを使用しようとしています

私のvimrcには、次のものがあります。

set undodir=/home/myname/.vim/undo//
set undofile
set undolevels=1000
set undoreload=10000

もちろん /home/myname/.vim/undo ディレクトリは存在します。

vim でいくつかのファイルを開き、いくつかの変更を加えました。

/home/myname/.vim/undo/ に undofile が作成されています:

$ ll /home/myname/.vim/undo/
total 23K
-rw-r--r-- 1 hpcpcollab hpcpcollab  523 18 sept. 11:23 %home%myname%foo
-rw-r--r-- 1 hpcpcollab hpcpcollab  14K 18 sept. 11:03 %home%myname%bar
-rw-r--r-- 1 hpcpcollab hpcpcollab 2,2K 18 sept. 11:52 %home%myname%test

ただし、これらのファイルを閉じて再度開き、「u」を押して元に戻すと、vim は「すでに最も古い変更です」と応答します。

私は何が欠けていますか?

どうも

ジュリアン

4

3 に答える 3

3

パッチ 7.4.24 で問題を解決できますか? いずれにせよ、明示的に undofile を読んでみて:verbose :rundo ~/.vim/undo/undofile、Vim が報告するエラーを確認してください。これは、vim が undofile を使用しない理由を特定するのに役立ちます。

于 2013-09-18T13:20:06.793 に答える
1

//定義の最後にある を除いて、まったく同じ構成がありますundodir。それらを削除してみてください。コマンドを試して、:undolistvim が実際に何かを読み取ったかどうかを確認することもできます。

Gundoプラグインを使用して元に戻すツリーを管理することをお勧めしますか? これは私が使用している最も強力なプラグインの 1 つであり、vim で元に戻す/やり直しを管理するための多くの機能を提供します。

于 2013-09-18T12:44:10.423 に答える
0

理由はわかりませんが、回避策を使用できます。編集するファイルを読み込んだ直後に、履歴autocommandを保存するディレクトリを読み取る を作成します。undo

au FileReadPost * rundo /home/myname/.vim/undo
于 2013-09-18T10:50:47.000 に答える