回答:
あなたが探している(そしてコメントしている)コードの特定の部分はmemline.c
:
/*
* 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. */
コードスニペットからの情報は Vimのヘルプにあります。参照:h swap-file
:
The name of the swap file is normally the same as the file you are editing,
with the extension ".swp".
- On Unix, a '.' is prepended to swap file names in the same directory as the
edited file. This avoids that the swap file shows up in a directory
listing.
- On MS-DOS machines and when the 'shortname' option is on, any '.' in the
original file name is replaced with '_'.
- If this file already exists (e.g., when you are recovering from a crash) a
warning is given and another extension is used, ".swo", ".swn", etc.
- An existing file will never be overwritten.
- The swap file is deleted as soon as Vim stops editing the file.
Technical: The replacement of '.' with '_' is done to avoid problems with
MS-DOS compatible filesystems (e.g., crossdos, multidos). If Vim
is able to detect that the file is on an MS-DOS-like filesystem, a
flag is set that has the same effect as the 'shortname' option.
This flag is reset when you start editing another file.
*E326*
If the ".swp" file name already exists, the last character is
decremented until there is no file with that name or ".saa" is
reached. In the last case, no swap file is created.
.gitignore
ここの他の答えは明らかに技術的に完全ですが、ここではほとんどの人にとって十分なエントリです。.gitignore
これは私が最も頻繁に気にしている場所です:
# vim swap files
##################
*.sw[a-p]
他の回答からわかるように、他のvim
何百もの名前を作成できますが、これが失敗する前に16個のスワップファイルをスタックする必要があります。*.s[a-z][a-z]
より正確に見えるようなものに一般化することにより、多くの有効な拡張子にも一致します。.gitignore
これらの拡張子は、これらのファイルがによって追跡されないことを意味しますgit
。使用してvim
から20年以内に同じファイルに対して16個のスワップファイルを作成することはできなかったので、同じことを何とかできればうまくいくと思います。
コメントで指摘されているように、Flash開発者は.swf
ファイルを持っている可能性があります。
*.sw[g-p]
ほとんどの人にとって十分な10個のスワップファイルはまだ無視されます。唯一の悲しい部分は、「スワップ」ニーモニックを失うことです。
.sw2
または.sw$
リポジトリで追跡する必要のあるものを無視しないようにします。
.swf
ファイルを含めることを忘れないでください。または、Flash開発者をHTML5にアップグレードします:-)
.
または_
追加されたファイルをチェックすることにより、ほとんどの正当なファイルがキャッチされることを回避できます。
*.sw[a-p]
自分でニーモニックを発見しました。私はそれが大好きです:)