vimでファイルを編集すると、現在のファイルと名前は同じですが、.swp
拡張子を持つスワップファイルが作成されます。
すでに占有されている場合は、1対.swp
1で作成されます.swo
。すでに占有されている場合.swa
などを取得します。
これらのファイルの正確な名前付け置換順序に関するドキュメントが見つかりません。拡張子がどの規則に従って選択されたかを明確に知っている人はいますか?
ベストアンサー1
長すぎます。 swp
, swo
, ..., swa
, svz
, svy
, ..., sva
, ..., saa
.最後の項目に達するとエラーが発生します。
あなたが探している(そしてコメントした)特定のコードスニペットがあります。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. */