github/gitignore · Global/Vim.gitignore
Разбор шаблона .gitignore для Vim
Пошаговый разбор шаблона со скобками для swap-файлов в Vim.gitignore ([._]*.s[a-v][a-z]), исключения !*.svg и правил для файлов сеансов, undo и tags.
Vim.gitignore активнее всех шаблонов использует диапазоны в скобках. Vim создаёт для каждого редактируемого файла swap-файл .имя_файла.swp, а если такой уже есть, берёт новое имя, меняя последнюю букву: .swo, .swn и т. д.
Вместо перечисления всех возможных расширений они охватываются сразу диапазоном вроде [a-v][a-z], но в него попадает и .svg, поэтому рядом есть строка !*.svg, которая его возвращает.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
[._]*.s[a-v][a-z][._]*.sw[a-p][._]s[a-rt-v][a-z][._]ss[a-gi-z][._]sw[a-p] | Swap-файлыПервая строка охватывает файлы, которые начинаются с точки (.) или подчёркивания (_) и оканчиваются на .saa–.svz. [._]*.sw[a-p] охватывает .swa–.swp, а три строки ниже — swap-файлы без имени перед расширением, например .swp. |
!*.svg | Исключение для SVG[._]*.s[a-v][a-z] игнорирует даже SVG-файлы, начинающиеся с точки или подчёркивания, например .icon.svg или _logo.svg, поэтому все .svg снова включаются. Это пример того, как важен порядок правил. |
Session.vimSessionx.vim | СеансыРасположение окон и список открытых буферов, которые сохраняет :mksession. Это личное рабочее состояние, им не делятся. |
[._]*.un~*~ | Отмена и резервные копииПостоянные undo-файлы, появляющиеся при включённом параметре undofile, и резервные копии параметра backup. |
.netrwhisttags | netrw и тегиИстория посещений встроенного файлового обозревателя netrw и файлы тегов, созданные ctags. tags игнорирует и файлы, и папки с именем ровно tags. |
На что обратить внимание на практике
- Из-за правила
tagsмогут игнорироваться папки исходников вродеsrc/tags/. Если такая папка есть, добавьте!src/tags/или сузьте правило до/tags. - Если в настройках Vim собрать swap-файлы в одном месте, например
set directory=~/.vim/swap//, в папке проекта они вообще не появятся. - Neovim использует swap-файлы того же формата, но по умолчанию хранит их в каталоге состояния, так что в проекте они появляются редко.
Исходный шаблон
Vim.gitignore
# Swap[._]*.s[a-v][a-z]# comment out the next line if you don't need vector files!*.svg[._]*.sw[a-p][._]s[a-rt-v][a-z][._]ss[a-gi-z][._]sw[a-p]# SessionSession.vimSessionx.vim# Temporary.netrwhist*~# Auto-generated tag filestags# Persistent undo[._]*.un~
Источник шаблонов: github/gitignore/Global/Vim.gitignore @356fd7b (2026-09-11) · CC0-1.0