Hi Bram! On So, 27 Nov 2011, Bram Moolenaar wrote:
> > Christian Brabandt wrote: > > > On Wed, November 16, 2011 9:38 pm, Paul wrote: > > > On Nov 16, 1:42 am, "Christian Brabandt" <[email protected]> wrote: > > > > > >> Well, first check that > > >> :echo undofile(@%) points to the same undofile across each platform. > > > > > > Aha, thanks. That helped me determine that my Vim silently ignores me > > > when I try to set relative directories for undodir. > > > > > > :set undodir=. works fine, but no undo file is created when I :set > > > undodir=./undodir > > > > > > This seems to be a different behavior than that of backupdir, even > > > though :help undodir says "See |'backupdir'| for details of the > > > format." Is this expected/documented/fixable? > > > > Hm, setting 'undodir' to a relative directory works for me. I can't > > reproduce this. However there is a bug when using rundo with those > > files. > > > > When using a separate 'undodir' directory to store the undofiles, Vim > > uses the complete path of the file as filename, replacing the path > > separators ('/') by '%'. So far this works as documented by :h > > 'undodir'. > > > > Now when using :rundo with a filename, that contains the complete path > > and using '%' as directory separators, those '%' will be replaced by > > the current file name (as documented by :h filename-modifiers) and > > surprise surprise Vim won't be able to read the undofile. > > > > So this is just plain wrong in this case. So here is a patch, that > > fixes that. This applies only to :rundo and I am not sure, whether > > this should also apply to :wundo (I tend not to apply it there) but > > this should be kept in mind. > > > > Bram, please check and apply. > > In most places where you can use a file name % is expanded. And it's > also useful, especially in the form "%:h" to get the directory. I don't understand. Using '%' as path separators contradicts the usage your pointing out. How am I supposed to :rundo an undofile, that contains the '%'-separator? #v+ ~$ mkdir -p /tmp/undo ~$ vim -u NONE -U NONE -N -i NONE -c ':set undodir=/tmp/undo|set undofile|exe "wundo" undofile(@%)|q' ~/.vimrc ~$ vim -u NONE -U NONE -N -i NONE -c ':set undodir=/tmp/undo|set undofile|exe "verbose rundo" undofile(@%)' ~/.vimrc "~/.vimrc" 438L, 13769C Reading undo file: /tmp/undo/.vimrchome.vimrcchrisbra.vimrc.vim.vimrcvimrc Fehler beim Ausführen von "command line": E822: Cannot open undo file for reading: /tmp/undo/.vimrchome.vimrcchrisbra.vim rc.vim.vimrcvimrc #v- regards, Christian -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
