Vimエディタでファイルに変更を書き込めません

Vimエディタでファイルに変更を書き込めません

データベースに一括移行する100GBのXML文書があります。
ではvimファイルを編集できますが、使用したり:wq変更:qを保存したりすることはできません:xx

エラーメッセージが表示されますthis file is read only - press ! to override
何の効果もなかったので、:q!変更を無視して終了しましたvim

変更内容をどのように保存できますか?

ボーナス質問

ファイル全体がメモリに読み込まれるのを待たずに埋め込まれCtrl + cた内容を確認するために押すと、文書を保存するとメモリに読み込まれた内容だけが保存され、残りは削除されますか?

答え1

このメッセージは、file is read only - press ! to override編集中のファイルに書き込む権限がないため、変更をファイルに書き込むことができないことを意味します。

最も簡単な解決策は、編集したファイルの内容を別のファイルに書き込むことです。この時点で、このパスが書き込み権限を持つファイルへのパスであるとします:w file_namefile_name

それ以外にも、元のファイルに書き込む権限がない理由を調べる必要があります。
これを行うために使用できますls -l file_name
(私は出力を解釈しました。ls -l file_name ここ.)

これで権限について詳しく知りましたので、次の3つのオプションがあります。

  1. sudo vim file_nameユーザーとしてファイルを編集するために使用されますroot

  2. write他のユーザーへの許可chmod

  3. ファイル所有者の変更ジョン

関連情報