web-dev-qa-db-ja.com

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

かなり奇妙なことに遭遇したのではないかと思います。ファイルを正常に開くと、vim README.txt、 すべて順調。しかし、Sudo vim README.txt、ファイルは空白になり、E138: Can't write viminfo file $HOME/.viminfo!終了しようとしたときのエラー。

.viminfoファイルが壊れていたので削除しました。この問題は残っています。誰か助けてもらえますか?

20

Sudo vimを実行すると、vimをrootとして起動します。つまり、問題となっているのは/ root内のviminfoファイルです。 rm /root/.viminf*を実行してください。

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

Rootとしてvimを実行するのではなく、sudoeditを使用することをお勧めします。エディターがルートとして実行されていないため、これはより安全なソリューションです。プラグインが何をするかわからない。さらに、独自の設定とプラグインをvimで使用でき、root vimrcのプラグインは使用できません。 sudoeditは、Sudo -eを実行するのと同じです。 sudoeditは、呼び出し側のユーザー(あなた)が所有するファイルの一時的なコピーを作成することによって機能します。編集を完了すると、変更が実際のファイルに書き込まれ、一時ファイルが削除されます。

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

30
arnefm

すべての出口でこのエラーが発生しました。 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.

このソリューションが見つかりました ここ

16
Henrik N

:wq完全にいっぱいになったディスク上のファイル。このメッセージが表示された場合は、使用可能なディスク容量を確認してください。

5
duhaime

ホームディレクトリを作成するよりクリーンな方法は、たとえばlinuxが提供するスケルトンを使用することです。

Sudo cp -a /etc/skel /home/usernmae && Sudo chown -R usernmae:usernmae /home/usernmae
3
Rick

私にとっての問題は、ホームディレクトリをNFSマウント内の場所に変更したことです。何らかの理由で、この結果、ディレクトリの所有者は「誰も」ではなくなりました。私が明らかにファイルの所有者ではなかったため、「その他」の書き込み権限を追加すると問題が解決しました。

chmod o+w ~/.viminfo
3
Jon Deaton

Makefileのコンテンツを更新するときにも同じ問題が発生しました。ローカル変数が必要で、HOMEという名前を付けることにしたので、HOME=2.154。これにより、vim-HOME存在しないディレクトリに置き換えられる設定。他の目的でHOME変数を使用しないでください。

0
user191855

私のシナリオでは、それは/root/.viminfoファイル全体。ファイルに触れた後、エラーは停止し、ファイルはvimの終了時に更新されました。 PS:これはwindriver組み込みLinuxです。

0
Naveen Gara

ホームディレクトリがディスク領域を使い果たし、新しいvim操作が.viminfoファイルに書き込むことができないため、これが発生している可能性があります。

0
psglinux

これはかなり古いバージョンのlinux/viにのみ当てはまると思いますが、ルートのホームディレクトリにファイル名/root/.viminfa.tmp ... /root/.viminfz.tmpを持つ一時ファイルがあり、そのうちの26はタイムスタンプが数年にわたるものでした。 a-zがすべて取得されたため、アルファベットの文字が足りなくなりました。私はそれらのファイルをすべて削除し、問題は消えました。もちろんヘンリックの# rm -rf ~/.viminf*はこの問題をうまく解決します。

0
Stephen Edge

環境変数をクリアしたようです。

これを行う:

hOME =/rootをエクスポート

これで問題が解決するはずです。

0
Ashfaq

私がSudo vimが各:qのようなファイルを取得しました。「viminfoに書き込むことができません。

rm ~/.viminfoはそれを解決せず、~/.vim/は空でした。

chmod 666 ~/.viminfo Vimでファイルを終了するときの警告メッセージを解決しました。私はこれが最善の解決策であるかどうかはわかりませんが?以前は.viminfoがrw ------だったので警告が停止したのは理にかなっており、vimコマンドの履歴で書き込まれていると思います。

0