dshimizu/blog

アルファ版

Neovim で「E382: 'buftype' オプションが設定されているので書き込めません」のメッセージが出たので調べた

はじめに

Neovimで :checkhealth コマンドとかを実行した時に開かれたファイルを保存しようとしたら、以下のエラーメッセージが出て保存できない状態に遭遇しました。

E382: 'buftype' オプションが設定されているので書き込めません

バッファと buftype

バッファはメモリに保持されているファイルの内容であるとのことです。

いろんな種類のバッファがあるようで、それが buftype に格納されるようです。 buftypは以下のコマンドで確認できます。

:set buftype?

普通に Vim/Neovim で開いたファイルの buftype は空ですが、:checkhealth コマンドとかを実行した時に開かれたファイルは特殊なバッファに保持されるようです。 今回の場合は nofile となっていました。

ドキュメントによると以下とのことでした。

nofile ファイルと関連がなく、書き込まれる予定のないバッファ

保存するには

以下のコマンドでbuftypeを空にすれば普通のファイルとして扱えるようになり、保存可能になりました。

:set buftype=
:saveas /tmp/hogehoge.txt

参考