vimの奇妙なエラー
nvimでファイルを編集をしようとすると、swapファイルを作成できない、というような一見よくわからないエラーが出たことがあった。
奇妙なエラー
#aaaaa~aaaaは開こうとした任意のファイル
E303: Unable to open swap file for "aaaaa~aaaa", recovery impossible
普通のテキストファイルなのに開けない。 ファイルのpermissionは問題なし。 swapディレクトリの指定も問題なし。 他のファイルであればnvimで開ける。 不思議なことに、開けなかったファイルを他のパスに移動させると開ける。
原因
結局は、ファイルの名前が長すぎたことが原因だった。 直接touchで長い名前のファイルを作ろうとすると明確なエラーが出るのだが、nvimだと名前が長いことを指摘してくれない。
touch "aaaaa~aaaa"
touch: cannot touch 'aaaaa~aaaa': Filename too long
swapファイルは、パスを含めるため、パスによりswapファイル名は長くなったり、短くなったりする。 その関係で、このパスだと開けるし、別のパスでは開けないということが起こったようだ。
ちなみに、もともとのファイル自体はwindowsで作成していた。 OSによって対応できるファイル名の上限は違うので、windowsでは開けても、linuxでは開けないということだったらしい。