Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide Vim backups (*~) in Windows Explorer

On Windows, I normally work with Total Commander, which can easily be configured to ignore these *.*~ and *~ completely. But occasionally when I switch to Windows Explorer, I get little bit confused with all that "unknown" files/.

Can I set up Vim so that for every backup it creates it will also set "hidden" attribute?

Or set up some nice workaround?

I know I can set up Vim to put these in other directory, but I'd like to avoid that, since IIUC, it could suffer from naming conflicts.

like image 278
Alois Mahdal Avatar asked Mar 27 '12 08:03

Alois Mahdal


1 Answers

If the backup option is set, vim updates the backup file every time we write the file with :w. And every time, it creates a file which is not hidden even though you had forcibly hidden it previously! So we need to do something everytime we write the buffer into file.

You can do this on windows. In your _vimrc file ( generally found at C:\Program Files (x86)\Vim ), add this line

autocmd BufWritePost,FileWritePost * silent ! attrib +h <afile>~

Where,

attrib=Windows File attribute changinf command
<afile>= Name of the file being sourced
silent= Prevent an annoying command window from popping up and asking user to press a key

This will make sure that the backup file gets hidden with every write to file from buffer. Why every time? Cos vim creates a non-hidden file at every write!

But you have to live with a flashing black window ( command window where we are running attrib command ) every time you save your file, but worth the pain :)

On linux/unix systems you can add this in your .vimrc

autocmd BufWritePost,FileWritePost * silent ! mv <afile>~ .<afile>

Hope this helps all those trying to find how to hide vim backup files.

like image 114
Pavan Manjunath Avatar answered Oct 12 '22 02:10

Pavan Manjunath