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



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

791   10  

10 ответов:

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

*~

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

*.swp
*.swo

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

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

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

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

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

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

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

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

другими словами, ничего не кладите в .gitignore или core.excludes in $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, мы не хотим, чтобы очистить все. Проверьте Vim помощь для получения дополнительной информации о 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]

что в значительной степени входит в собственный файл gitignore github для ВИМ.

Как уже правильно сказали .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

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

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

замена '.'с' _ ' делается, чтобы избежать проблем с Файловые системы, совместимые с 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

Comments

    Ничего не найдено.