web-dev-qa-db-ja.com

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

100 GBのxmlドキュメントがあり、ウェーブでデータベースに移行しています。
vimでは、ファイルを編集できますが、:wq:qまたは:xxで変更を保存できません。

エラーメッセージthis file is read only - press ! to overrideが表示されます。
何も機能しないため、変更を無視してvimを終了する:q!を使用します。

変更を保存するにはどうすればよいですか?

ボーナス質問

ファイル全体がメモリに読み込まれるのを待たずにCtrl + cを押して、入力された内容を表示した場合、そのドキュメントを保存すると、メモリに読み込まれた内容のみが保存され、残りは削除されますか?

3

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

最も簡単な解決策は、編集したファイルの内容を:w file_nameを使用して他のファイルに書き込むことです。ただし、file_nameは、書き込み権限があるファイルへのパスであると想定しています。

それ以外の場合は、元のファイルに書き込む権限がない理由を調べる必要があります。
これはls -l file_nameで実行できます。
ls -l file_namehere の出力について説明しました。)

権限についてもう少し理解を深めた今、3つのオプションがあります。

  1. Sudo vim file_nameを使用して、rootユーザーとしてファイルを編集します。

  2. chmod を使用して、他のユーザーにwrite権限を付与します。

  3. chown でファイルの所有者を変更します。

2
Iskustvo