VimエラーE138:viminfoファイル$ HOME / .viminfoを書き込めません!

VimエラーE138:viminfoファイル$ HOME / .viminfoを書き込めません!

ちょっと変なことを経験したと思います。正常にファイルを開くと、vim README.txtすべてが正常です。ただし、ファイルが空白でレンダリングされ、終了しよsudo vim README.txtうとするとエラーが発生します。E138: Can't write viminfo file $HOME/.viminfo!

ファイルが破損していると思われ、.viminfo削除しました。問題はまだ存在します。誰でも助けることができますか?

答え1

実行すると、sudo vimvimはrootで始まります。これは/ rootのviminfoファイルに問題があることを意味します。あなたはそれをしなければなりませんrm /root/.viminf*

これを確認するには、sudo vim次のコマンドを実行して実行します:!echo $HOME。これにより、ホームディレクトリが/ rootであることがわかります。

vimをrootとして実行しないでくださいsudoedit。プラグインが何をするかは決してわかりません。また、root vimrcの代わりにvimで独自の設定とプラグインを使用できます。sudoedit走るのと同じですsudo -e。 sudoeditは、呼び出し元のユーザーが所有するファイルの一時コピーを作成するように機能します。編集が完了すると、変更内容が物理ファイルに書き込まれ、一時ファイルは削除されます。

一般的な経験則:必須でない場合はrootとして実行しないでください。

答え2

終了するたびにこのエラーが発生します。私はそれを使用しませんでしたsudo。私のユーザーホームディレクトリは明示的に言及されています。

E138: Can't write viminfo file /Users/henrik/.viminfo!

削除しても~/.viminfoエラーは解決されませんでした。

viminfo 一時ファイルが複数あり、削除すると問題が解決しました。

 ls ~/.viminf*      # If you want to see the files.
 rm -rf ~/.viminf*  # Remove them.

このソリューションを見つけましたここ

答え3

:wq完全に完全なディスク上のファイルにアクセスしようとすると、同じエラーが発生します。このメッセージを受け取ったら、利用可能なディスク容量を確認してください。

答え4

たとえば、ホームディレクトリを作成するよりきれいな方法は、Linuxが提供するフレームワークを使用することです。

sudo cp -a /etc/skel /home/usernmae && sudo chown -R usernmae:usernmae /home/usernmae

関連情報