I’d like to add that few programs litter the filesystem like this. It is
much more common for multi-user systems via ssh to get disconnected and
leave a swap. It would make more sense to recreate a temporary directory
for this. I’m not so much in for the security, but I believe in retaining
the ability to trigger a warning on editing the same file on multi-user -
meanwhile avoiding using the whole filesystem and network shares for this
unless explicitly enabled. There could be multiple solutions for this and I
believe Bram would have a say that could improve this refactoring if it
could be done.

On Mon, 6 Nov 2017 at 22.26, Nikolay Aleksandrovich Pavlov <
zyx....@gmail.com> wrote:

> 2017-11-06 23:33 GMT+03:00 Bram Moolenaar <b...@moolenaar.net>:
> >
> > Scott Court wrote:
> >
> >> Those are very valid points, and I agree that the way Neovim handles
> >> .swp files is better. I've already explained on here and on Openwall
> >> numerous reasons why I believe that is the best solution and made the
> >> case that .swp files should be stored in ~/.vim/swap by default. However
> >> Bram has veto power and shot that idea down.
> >>
> >> So instead I'm trying to find the next best way to address this.
> >> /var/lib being writable only by root and therefore requiring cooperation
> >> from packagers did not occur to me, but that's definitely a problem.
> >> Maybe it would be doable as a major change in the next major release of
> >> Vim, but you're right; that definitely won't work as a security patch.
> >> So much for that idea.
> >>
> >> I maintain a Linux Distribution (Cucumber Linux) and have already
> >> adopted the Neovim style ~/.vim/swap approach on there. Maybe we'll just
> >> have to hope that other distributions independently start doing
> >> something similar, as Bram seems pretty convinced this problem is
> >> completely a user error and has nothing to do with the way Vim works;
> >> he's also pretty set on not changing the default .swp location.
> >
> > There are a few situations you need to consider:
> > - Removable media, editing a file on a USB stick.
> > - Remote file systems (where the mount point may change over time).
> > - Multiple users editing a shared file.
> > - Renaming directories.
> >
> > There are likely many more
>
> - Remote file systems is a case *against* using swap files in the
> current directory, should they be slow Vim starts being unresponsive
> when it does something with swap file.
> - Removable media is a case against swap files as well: while nowadays
> you are unlikely to exhaust write cycles or cause unresponsiveness by
> using swap files there, there are still considerations like
>
>   1. Whether “user saved and removed the media without properly
> closing the editor or wiping out buffer” is less common scenario then
> “user removed the media without …, but did not save and now wants to
> restore on another machine”. Swap files there are welcome only if
> second scenario is more common, but there is a second point as well.
>   2. Removable media is also commonly used for sharing not between
> computers belonging to one user, but between computers belonging to
> different users. Swap files would be nothing other then annoying
> garbage when shared with a user not using *Vim and either using
> Windows (i.e. OS which does not hide dotfiles) or having his file
> manager configured to show hidden files. Also if files with swap files
> nearby were edited on such a machine trying to restore something from
> them will do more harm then good.
>
> - Swap files are utterly useless for preventing editing a single file
> by multiple users: way too many conditions need to be true for that to
> work: users need to both use *Vim, users need to both have configured
> to save swap files in the current directory, users need to pay
> attention and not discard the message thinking e.g. that it was an
> artifact from previous disconnect.
>
>   Also Vim does not provide any way to do anything sensible with the
> situation “two users simultaneously edit the same file”. False
> positives and negatives do not make the situation better as well:
> neither Vim checks whether currently running process with PID stored
> in swap file has anything to do with the creator of swap files, nor
> there is any way to determine whether simultaneous editing actually
> happens in “remote file system with access from different machines”
> and “access from same machine, but separated via various means like
> PID namespaces” cases. Enough false alarms and users will stop caring
> about them.
>
> - Yet another case *against* the idea of `set directory=.`: consider
> the simple script which simulates renaming directory without closing
> the file:
>
>       mkdir test-br.d
>       #vim -u NONE -i NONE -N \
>       #    test-br.d/file \
>       #    -c write -c '!mv test-br.d test-ar.d' \
>       #    -c 'file test-ar.d/file' \
>       vim -u NONE -i NONE -N \
>           test-br.d/file \
>           -c write \
>           -c '!mv test-br.d test-ar.d' \
>           -c 'bw' \
>           -c 'edit test-ar.d/file'
>
>   What will you see in both commented and uncommented cases? Right,
> E325: ATTENTION! Is there any value in seeing it? No, file was already
> saved, PID belongs to the same Vim instance, but, unfortunately, you
> can’t delete that swap file from Vim menu for Vim process being
> “already running”. But should you have
>
>       rm -rf test-br?.d
>       mkdir test-br.d
>       mkdir test-swap.d
>       vim -u NONE -i NONE -N \
>           --cmd 'let &directory=getcwd()."/test-swap.d//"' \
>           test-br.d/file \
>           -c write \
>           -c '!mv test-br.d test-ar.d' \
>           -c 'bw' \
>           -c 'edit test-ar.d/file'
>
>   and Vim automatically and correctly deletes the no-longer-needed
> swap file attached to the previous location of the file.
>
>
> >
> > --
> > FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing.
> >
> >  /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net
>  \\\
> > ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/
> \\\
> > \\\  an exciting new programming language -- http://www.Zimbu.org
>   ///
> >  \\\            help me help AIDS victims -- http://ICCF-Holland.org
> ///
> >
> > --
> > --
> > You received this message from the "vim_dev" 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
> >
> > ---
> > You received this message because you are subscribed to the Google
> Groups "vim_dev" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to vim_dev+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> --
> You received this message from the "vim_dev" 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
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "vim_dev" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/vim_dev/sRT9BtjLWMk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> vim_dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-- 

Best Regards/Venlig Hilsen
Christoffer Aasted

-- 
-- 
You received this message from the "vim_dev" 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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui