かなり奇妙なことに遭遇したのではないかと思います。ファイルを正常に開くと、vim README.txt
、 すべて順調。しかし、Sudo vim README.txt
、ファイルは空白になり、E138: Can't write viminfo file $HOME/.viminfo!
終了しようとしたときのエラー。
.viminfo
ファイルが壊れていたので削除しました。この問題は残っています。誰か助けてもらえますか?
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として実行しないでください。
すべての出口でこのエラーが発生しました。 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.
このソリューションが見つかりました ここ 。
:wq
完全にいっぱいになったディスク上のファイル。このメッセージが表示された場合は、使用可能なディスク容量を確認してください。
ホームディレクトリを作成するよりクリーンな方法は、たとえばlinuxが提供するスケルトンを使用することです。
Sudo cp -a /etc/skel /home/usernmae && Sudo chown -R usernmae:usernmae /home/usernmae
私にとっての問題は、ホームディレクトリをNFSマウント内の場所に変更したことです。何らかの理由で、この結果、ディレクトリの所有者は「誰も」ではなくなりました。私が明らかにファイルの所有者ではなかったため、「その他」の書き込み権限を追加すると問題が解決しました。
chmod o+w ~/.viminfo
Makefileのコンテンツを更新するときにも同じ問題が発生しました。ローカル変数が必要で、HOME
という名前を付けることにしたので、HOME=2.154
。これにより、vim-HOME
存在しないディレクトリに置き換えられる設定。他の目的でHOME
変数を使用しないでください。
私のシナリオでは、それは/root/.viminfo
ファイル全体。ファイルに触れた後、エラーは停止し、ファイルはvimの終了時に更新されました。 PS:これはwindriver組み込みLinuxです。
ホームディレクトリがディスク領域を使い果たし、新しいvim操作が.viminfoファイルに書き込むことができないため、これが発生している可能性があります。
これはかなり古いバージョンのlinux/viにのみ当てはまると思いますが、ルートのホームディレクトリにファイル名/root/.viminfa.tmp ... /root/.viminfz.tmpを持つ一時ファイルがあり、そのうちの26はタイムスタンプが数年にわたるものでした。 a-zがすべて取得されたため、アルファベットの文字が足りなくなりました。私はそれらのファイルをすべて削除し、問題は消えました。もちろんヘンリックの# rm -rf ~/.viminf*
はこの問題をうまく解決します。
環境変数をクリアしたようです。
これを行う:
hOME =/rootをエクスポート
これで問題が解決するはずです。
私がSudo vim
が各:q
のようなファイルを取得しました。「viminfoに書き込むことができません。
rm ~/.viminfo
はそれを解決せず、~/.vim/
は空でした。
chmod 666 ~/.viminfo
Vimでファイルを終了するときの警告メッセージを解決しました。私はこれが最善の解決策であるかどうかはわかりませんが?以前は.viminfoがrw ------だったので警告が停止したのは理にかなっており、vimコマンドの履歴で書き込まれていると思います。