Vim 7.3の新機能の1つは「永続的アンドゥ」です。これにより、バッファーを終了するときにアンドゥツリーをファイルに保存できます。
残念ながら、私はそれを適切に有効にすることができなかったか、間違って使用しているに違いありません。これまでに試したことは次のとおりです。
以下を〜/ .vimrcに追加しました
set undofile " Save undos after file closes
set undodir=$HOME/.vim/undo " where to save undo histories
set undolevels=1000 " How many undos
set undoreload=10000 " number of lines to save for undo
この後、ファイルを開いて編集し、保存して閉じることができるはずです。もう一度開くと、元に戻らないように元に戻す/やり直すことができるはずです。残念ながら、これは事実ではないようです。undofileが書き込まれることはありません。
ノート:
私はWin 7で、VimのクリームなしプロジェクトからVim 7.3を使用しています。永続的な取り消しはベイクインされます。
$ HOME/.vim/undoがファイルシステムに存在します
これを.vimrc
存在しない場合はundodir
を作成し、永続的な取り消しを有効にします。 WindowsとLinuxの両方でテスト済み。
" Put plugins and dictionaries in this dir (also on Windows)
let vimDir = '$HOME/.vim'
let &runtimepath.=','.vimDir
" Keep undo history across sessions by storing it in a file
if has('persistent_undo')
let myUndoDir = expand(vimDir . '/undodir')
" Create dirs
call system('mkdir ' . vimDir)
call system('mkdir ' . myUndoDir)
let &undodir = myUndoDir
set undofile
endif
私は_gvimrcでこれを試しました:
" Persistent undo
try
set undodir=C:\vim\undodir
set undofile
catch
endtry
Try-catchブラケットを削除すると、宣伝どおりに機能し始めました。したがって、
" Persistent undo
set undodir=C:\vim\undodir
set undofile
ディレクトリを作成する必要がありました。
$ HOMEが宣伝どおりに機能しないと思います。
私のシステムでは、:echo $HOME
はH:\を表示しますが、: e $HOME/
言う:~/
無効なファイル名。
絶対パスで試してみて、それが治癒するかどうかを確認する
これは期待どおりに動作するようになりました:file.txt
Windows 7のVim 7.4バッファーで開く:setlocal undofile
、その後、バッファへの変更を保存し、取り消しファイル.file.txt.un~
は、:set undodir?
は、「undodir =」と報告します。デフォルトでは-つまり、これを手動で指定する必要はありません。あなたもすることができます :set undofile
モードラインで。