Patch to try out: v:oldfiles

4 views
Skip to first unread message

Bram Moolenaar

unread,
Sep 14, 2008, 4:06:01 PM9/14/08
to vim...@vim.org
Now and then I start editing a file and want to go back to a file I
edited in a previous edit session. But the name doesn't appear in the
marks or buffer list. Still, I know the file name is in the viminfo
file. There are plugins for this, but I thought it would be nice if Vim
could retrieve file names natively.

The idea is simple: when reading the viminfo file on startup, store the
file names from the list of buffer marks in v:oldfiles. This already
makes it possible to use them. For convenience I added the ":oldfiles"
command to list them (nicer than ":echo v:oldfiles"). And the #<N item
to be able to use the file name in most places on the command line.

Please try the patch and tell me what you think.

-
ERROR 047: Keyboard not found. Press RETURN to continue.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

oldfiles_patch.diff

John Beckett

unread,
Sep 16, 2008, 5:54:52 AM9/16/08
to vim...@googlegroups.com
Bram Moolenaar wrote:
> Now and then I start editing a file and want to go back to a
> file I edited in a previous edit session. But the name
> doesn't appear in the marks or buffer list. Still, I know
> the file name is in the viminfo file. There are plugins for
> this, but I thought it would be nice if Vim could retrieve
> file names natively.
>
> The idea is simple: when reading the viminfo file on startup,
> store the file names from the list of buffer marks in
> v:oldfiles. This already makes it possible to use them. For
> convenience I added the ":oldfiles"
> command to list them (nicer than ":echo v:oldfiles"). And
> the #<N item to be able to use the file name in most places
> on the command line.
>
> Please try the patch and tell me what you think.

Bram - I think there is a glitch in the patch that you attached. It looks like a
couple of lines are missing -- lines that should say that runtime/doc/starting.txt
is being patched.

I've just tried building with this patch. I haven't done any testing yet, but the
patch fails because it is trying to patch eval.txt with hunks intended for
starting.txt.

I use Yegappan Lakshmanan's wonderful mru.vim for tracking recently-used files, but
some built-in support would be great.

John

Bram Moolenaar

unread,
Sep 16, 2008, 2:49:11 PM9/16/08
to John Beckett, vim...@googlegroups.com
John Beckett wrote:

Sorry for the broken patch. Here is a new attempt.

-
hundred-and-one symptoms of being an internet addict:
61. Your best friends know your e-mail address, but neither your phone number
nor the address where you live.

oldfiles_patch.diff

Charles Campbell

unread,
Sep 16, 2008, 3:00:28 PM9/16/08
to vim...@googlegroups.com
The new patch went in cleanly, but when I tried to do a make:
ex_cmds.c: In function 'do_viminfo':
ex_cmds.c:2094: error: too many arguments to function 'copy_viminfo_marks'
  
I'm using vim7.2.018

Regards,
Chip Campbell

Charles Campbell

unread,
Sep 16, 2008, 3:06:55 PM9/16/08
to vim...@googlegroups.com
The problem is that the updated proto/mark.pro was omitted from the
patch; the prototype for copy_viminfo_marks() should be:
void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count,
int eof, int flags));

(ie. ", int flags" was missing)

Regards,
Chip Campbell

Bram Moolenaar

unread,
Sep 17, 2008, 3:25:53 PM9/17/08
to Charles Campbell, vim...@googlegroups.com

Sorry for another broken patch. Yet another attempt. I'll probably do
something different wrong this time...

-
hundred-and-one symptoms of being an internet addict:

69. Yahoo welcomes you with your own start page

oldfiles_patch.diff

char101

unread,
Sep 18, 2008, 1:57:03 AM9/18/08
to vim_dev
On Sep 18, 2:25 am, Bram Moolenaar <B...@moolenaar.net> wrote:
> Sorry for another broken patch.  Yet another attempt.  I'll probably do
> something different wrong this time...

Works for me. It seems that not only (old) files are listed there but
also
buffers without real file, for example

~/1221717155_NERD_tree_
.../_TSkeletonScratch_1__

Bram Moolenaar

unread,
Sep 18, 2008, 6:56:21 AM9/18/08
to char101, vim_dev

Yes, any buffer with a name and some mark will show up. It's a bit
difficult to decide what buffers are not useful to store. Unlisted
buffers are still useful (e.g. for help files you visited).
Perhaps when 'buftype' is "nofile"?

--

hundred-and-one symptoms of being an internet addict:

74. Your most erotic dreams are about cybersex

Reply all
Reply to author
Forward
0 new messages