git ignore vim temporary files

后端 未结 12 924
刺人心
刺人心 2020-12-12 08:38

What is the correct way to make git ignore temporary files produced by vim in all directories (either globally across the system or locally for a single project)?

相关标签:
12条回答
  • 2020-12-12 09:01

    In myy case the temporary files are already commited by previous actions, so modifying .gitignore will not affect those commited files..., you have to git rm files_to_be_ignored --cache first, then commit, then DONE.

    0 讨论(0)
  • 2020-12-12 09:06

    Here is the actual VIM code that generates the swap file extensions:

    /* 
     * Change the ".swp" extension to find another file that can be used. 
     * First decrement the last char: ".swo", ".swn", etc. 
     * If that still isn't enough decrement the last but one char: ".svz" 
     * Can happen when editing many "No Name" buffers. 
     */
    if (fname[n - 1] == 'a')        /* ".s?a" */
    {   
        if (fname[n - 2] == 'a')    /* ".saa": tried enough, give up */
        {   
            EMSG(_("E326: Too many swap files found"));
            vim_free(fname);
            fname = NULL;
            break;  
        }
        --fname[n - 2];             /* ".svz", ".suz", etc. */
        fname[n - 1] = 'z' + 1;
    }
    --fname[n - 1];                 /* ".swo", ".swn", etc. */
    

    This will generate swap files of the format:

    [._]*.s[a-v][a-z]
    [._]*.sw[a-p]
    [._]s[a-v][a-z]
    [._]sw[a-p]
    

    Which is pretty much what is included in github's own gitignore file for VIM.

    As others have correctly noted, this .gitignore will also ignore .svg image files and .swf adobe flash files.

    0 讨论(0)
  • 2020-12-12 09:09

    This is something that should only be done on a per-user basis, not per-repository. If Joe uses emacs, he will want to have emacs backup files ignored, but Betty (who uses vi) will want vi backup files ignored (in many cases, they are similar, but there are about 24,893 common editors in existence and it is pretty ridiculous to try to ignore all of the various backup extensions.)

    In other words, do not put anything in .gitignore or in core.excludes in $GIT_DIR/config. Put the info in $HOME/.gitconfig instead (as nunopolonia suggests with --global.) Note that "global" means per-user, not per-system.

    If you want configuration across the system for all users (which you don't), you'll need a different mechanism. (Possibly with templates setup prior to initialization of the repository.)

    0 讨论(0)
  • 2020-12-12 09:11

    I found this will have git ignore temporary files created by vim:

    [._]*.s[a-w][a-z]
    [._]s[a-w][a-z]
    *.un~
    Session.vim
    .netrwhist
    *~
    

    It can also be viewed here.

    0 讨论(0)
  • 2020-12-12 09:13

    This works on a Mac as noted by Alex Moore-Niemi:

    set backupdir=$TMPDIR//
    set directory=$TMPDIR//
    

    Make sure to use TMPDIR and not TEMPDIR.

    0 讨论(0)
  • 2020-12-12 09:15

    If You are using source control. vim temp files are quite useless.
    So You might want to configure vim not to create them.

    Just edit Your ~/.vimrc and add these lines:

    set nobackup
    set noswapfile
    
    0 讨论(0)
提交回复
热议问题