Suggestion: follow link to .viminfo when vim quit

121 views
Skip to first unread message

cs86661

unread,
Apr 27, 2014, 11:32:39 PM4/27/14
to vim...@googlegroups.com
when I set ~/.viminfo to be symbolic link to /tmp/.viminfo, then close vim.
The symbolic link will be replaced with an reqular .viminfo file ?
So I can't simply use symbolic link on ~/.viminfo :(

reproduce:
cd
mv .viminfo /tmp/
ln -s /tmp/.viminfo .viminfo
file .viminfo (.viminfo: symbolic link to `/tmp/.viminfo')
vi (then close it)
file .viminfo (.viminfo: UTF-8 Unicode text)

Christian Brabandt

unread,
Apr 30, 2014, 3:04:18 PM4/30/14
to vim...@googlegroups.com
I think, this patch does it:

diff --git a/src/ex_cmds.c b/src/ex_cmds.c
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1771,6 +1771,16 @@ write_viminfo(file, forceit)
fname = viminfo_filename(file); /* may set to default if NULL */
if (fname == NULL)
return;
+#ifdef HAVE_READLINK
+ {
+ char_u buf[MAXPATHL];
+ if (resolve_symlink(fname, buf) == OK)
+ {
+ vim_free(fname);
+ fname = vim_strsave(buf);
+ }
+ }
+#endif

fp_in = mch_fopen((char *)fname, READBIN);
if (fp_in == NULL)


Best,
Christian
--
Beurteile einen Menschen lieber nach seinen Handlungen als nach seinen
Worten; denn viele handeln schlecht und sprechen vortrefflich.
-- Matthias Claudius

Ken Takata

unread,
May 3, 2014, 10:16:06 AM5/3/14
to vim...@googlegroups.com
Hi,

Maybe it is intended.
See ":help viminfo-write":

(snip)
Notes for Unix:
(snip)
- The viminfo file cannot be a symbolic link. This is to avoid security
issues.

Regards,
Ken Takata

Reply all
Reply to author
Forward
0 new messages