I've been wondering why vim on my server behaves so stupidly when it comes to the mouse: it can't jump, copy, and paste like it normally does. Although it has been set in /etc/vim/vimrc.local.
set mouse=
Finally I figured out why, thanks bug #864074 and fixed it. The reason is that when there is no ~/.vimrc, vim loads defaults.vim after vimrc.local, thus overriding several settings.
There is a comment (although I don't see it) in /etc/vim/vimrc that explains this:
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc. " This happens after /etc/vim/vimrc(.local) are loaded, so it will override " any settings in these files. " If you don't want that to happen, uncomment the below line to prevent " defaults.vim from being loaded. " let g:skip_defaults_vim = 1
I agree that this is a good way to set up vim after installing vim normally, but the Debian package can do better. The problem is clearly stated in the bug report: without ~/.vimrc, settings in /etc/vim/vimrc.local are overwritten. This is counter-intuitive in Debian - and I don't know if a similar approach is taken in other packages.
Since the settings in defaults.vim are very reasonable, I hope to use it, but only modify a few items that I don't agree with, such as the mouse. Finally, I did the following in /etc/vim/vimrc.local:
if filereadable("/usr/share/vim/vim80/defaults.vim") source /usr/share/vim/vim80/defaults.vim endif " now set the line that the defaults file is not reloaded afterwards! let g:skip_defaults_vim = 1 " turn of mouse set mouse= " other override settings go here
There's probably a better way to get a universal load statement that doesn't depend on the vim version, but for now I'm happy with this.
The above is the detailed content of vim bug in Debian. For more information, please follow other related articles on the PHP Chinese website!