duc*_*thd 91 vim undo undo-redo
Vim 7.3的一个新功能是"持久性撤销",它允许在退出缓冲区时将非文本保存到文件中.
不幸的是,我还没能完全启用它,或者我必须使用它错了.这是我到目前为止所尝试的:
我在〜/ .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
Run Code Online (Sandbox Code Playgroud)
在此之后,我应该能够打开任何文件,编辑它,然后保存关闭它,当我再次打开它时,我应该能够撤消/重做,好像我永远不会离开.不幸的是,情况似乎并非如此,因为从未写过任何无人事务所.
笔记:
我在Win 7上使用来自Vim的Vim 7.3而没有奶油项目.持久撤消是烘焙的.
$ HOME/.vim/undo存在于我的文件系统中
Mat*_*aun 45
如果它不存在则将其放入您.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
Run Code Online (Sandbox Code Playgroud)
我在_gvimrc中试过这个:
" Persistent undo
try
set undodir=C:\vim\undodir
set undofile
catch
endtry
Run Code Online (Sandbox Code Playgroud)
当我删除try-catch括号时,它开始像宣传的那样工作,因此:
" Persistent undo
set undodir=C:\vim\undodir
set undofile
Run Code Online (Sandbox Code Playgroud)
我不得不创建目录.
我想 $HOME 并不像宣传的那样工作。
在我的系统上,:echo $HOME显示 H:\,但: e $HOME/显示:~/文件名无效。
你可以尝试用绝对路径看看是否能解决这个问题