github/gitignore · Global/Vim.gitignore
Vim .gitignore テンプレート解説
Vim.gitignore のスワップファイルのブラケットパターン([._]*.s[a-v][a-z])、!*.svg の例外、セッション・undo・tags ファイルのルールを 1 つずつ解きほぐして説明します。
Vim.gitignore はブラケットの範囲パターンを最も積極的に使うテンプレートである。Vim は編集中のファイルごとに .ファイル名.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] | スワップファイル1 行目はドット(.)またはアンダースコア(_)で始まり .saa〜.svz で終わるファイルを捉える。[._]*.sw[a-p] は .swa〜.swp を、下の 3 行は .swp のように拡張子の前にファイル名がないスワップファイルを捉える。 |
!*.svg | SVG の例外[._]*.s[a-v][a-z] が .icon.svg や _logo.svg のようにドット・アンダースコアで始まる SVG ファイルまで無視するため、すべての .svg を再び含める。ルールの順序が重要であることを示す例である。 |
Session.vimSessionx.vim | セッション:mksession が保存するウィンドウ配置と開いているバッファの一覧である。個人の作業状態なので共有しない。 |
[._]*.un~*~ | アンドゥ・バックアップundofile オプションを有効にしたときに作られる永続 undo ファイルと、backup オプションのバックアップファイルである。 |
.netrwhisttags | netrw・タグ内蔵ファイルブラウザー netrw の訪問履歴と、ctags が作ったタグファイルである。tags は名前がちょうど tags であるファイルとフォルダーの両方を無視する。 |
実務での注意点
tagsルールのせいでsrc/tags/のようなソースフォルダーが無視されることがある。そのようなフォルダーがあるなら!src/tags/を追加するか、ルールを/tagsに絞る。- Vim の設定で
set directory=~/.vim/swap//のようにスワップファイルを 1 か所に集めれば、プロジェクトフォルダーにはそもそも作られない。 - Neovim も同じ形式のスワップファイルを使うが、既定の場所が状態ディレクトリなので、プロジェクト内に作られることはまれである。
元のテンプレート
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