git игнорировать Vim временные файлы

Как правильно заставить git игнорировать временные файлы, созданные vim во всех каталогах (глобально по всей системе или локально для одного проекта)?

10 ответов


Vim временные файлы заканчиваются на~, Поэтому вы можете добавить в файл .gitignore строку

*~

Vim также создает файлы подкачки с расширениями swp и swo. для удаления этих строк:

*.swp
*.swo

это будет игнорировать все временные файлы vim в одном проекте

если вы хотите сделать это глобально, можно создать .файл gitignore в вашем доме (вы можете дать ему другое имя или местоположение) и использовать следующее команда:

git config --global core.excludesfile ~/.gitignore

тогда вам просто нужно добавить файлы, которые вы хотите проигнорировать в файл


кроме того, вы можете настроить vim для сохранения файлов подкачки в отдельном месте, например, добавляя строки, похожие на следующие к вашему :

set backupdir=$TEMP//
set directory=$TEMP//

посмотреть этот ВИМ совет для получения дополнительной информации.


это то, что должно выполняться только для каждого пользователя, а не для каждого репозитория. Если Джо использует emacs, он захочет, чтобы файлы резервных копий emacs игнорировались, но Бетти (которая использует vi) захочет, чтобы файлы резервных копий vi игнорировались (во многих случаях они похожи, но существует около 24,893 общих редакторов, и довольно смешно пытаться игнорировать все различные расширения резервных копий.)

другими словами, Не ставьте ничего в .gitignore или core.excludes на $GIT_DIR/config. Поставить информация в $HOME/.gitconfig вместо этого (как предлагает nunopolonia с --global.) Отмечают, что "глобальный" означает для каждого пользователя, а не системы.

если вы хотите конфигурацию по всей системе для всех пользователей (чего вы не делаете), вам понадобится другой механизм. (Возможно, с настройкой шаблонов до инициализации репозитория.)


Я бы также рекомендовал подумать, чтобы игнорировать файлы, такие как:

.*.swp
.*.swo

поскольку у вас могут быть файлы, заканчивающиеся на .swp


закройте vim перед "git commit".

сделать vim используйте другие папки для резервных копий файлов, (/tmp например):

set bdir-=.
set bdir+=/tmp

чтобы vim перестал использовать текущую папку для .swp файлы:

set dir-=.
set dir+=/tmp

использовать -=, += было бы вообще хорошо, потому что vim имеет другие значения по умолчанию для bdir, dir, мы не хотим, чтобы очистить все. Регистрация ВИМ помочь подробнее о bdir, dir:

:h bdir
:h dir

Я обнаружил, что это будет иметь git игнорировать временные файлы, созданные vim:

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

его также можно просмотреть здесь.


здесь является фактическим кодом VIM, который генерирует расширения файлов подкачки:

/* 
 * 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. */

это создаст файлы подкачки формата:

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

что в значительной степени то, что включено в собственный файл GitHub gitignore для VIM.

Как уже правильно сказали .gitignore также будет игнорировать .svg файлы изображений и .SWF-файлом файлы adobe flash.


# VIM: Temperory files
*~

# VIM: Swap-files
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]

# VIM: Commands :cs, :ctags
tags
cscope.*

# VIM session
Session.vim

# VIM: netrw.vim: Network oriented reading, writing, browsing (eg: ftp scp) 
.netrwhist

имя файла подкачки обычно совпадает с именем файла, который вы редактируете, с расширением ".swp".

  • в Unix, a '.'добавляется для замены имен файлов в том же каталоге, что и отредактированный файл. Это позволяет избежать того, что файл подкачки отображается в список каталогов.
  • на машинах MS-DOS и когда опция "shortname" включена, любая ".'в исходном файле имя заменяется на'_'.
  • если этот файл уже существует (например, когда вы восстанавливаетесь после сбоя), выдается предупреждение и используется другое расширение ".меча.", ".swn " и др.
  • существующий файл не будет перезаписан.
  • файл подкачки удаляется, как только Vim прекращает редактирование файла.

замена '.'with' _ ' делается, чтобы избежать проблем с MS-DOS совместимые файловые системы (например, crossdos, multidos).

http://vimdoc.sourceforge.net/htmldoc/recover.html

http://www.vim.org/scripts/script.php?script_id=1075


конечно,

просто нужно создать ".gitignore" в домашнем каталоге вашего проекта и должны содержать

*.swp

вот это

в одну команду

project-home-directory$ echo '*.swp' >> .gitignore

Если вы используете управление версиями. временные файлы vim совершенно бесполезны.
Поэтому вы можете настроить vim не для их создания.

просто отредактировать ~/.vimrc и добавьте эти строки:

set nobackup
set noswapfile