Vim:可能なスワップファイル拡張子は何ですか?

Vim:可能なスワップファイル拡張子は何ですか?

vimでファイルを編集すると、現在のファイルと名前は同じですが、.swp拡張子を持つスワップファイルが作成されます。

すでに占有されている場合は、1対.swp1で作成されます.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. */

おすすめ記事