読み取り専用モードでファイルを開きました。読み取り専用モードを終了する方法はありますか?
あなたはこれを行うことができます:
:set noro
これは読み取り専用フラグの設定を解除しますが、基礎となるファイルがまだ書き込み可能でない場合は、vimはそのファイルに書き込むことができません。
Vim内からchmod
を実行できます。
:!chmod +w %
!
は、シェルコマンドを実行することを意味し、%
は現在のファイル名です。ファイルを強制的に書き込むこともできます。
:w!
Michael Mrozek's answer に加えて、.vimrc
に行を追加して、昇格されたアクセス許可で開いていないファイルに書き込むことができます。
" Allows writing to files with root priviledges
cmap w!! w !Sudo tee % > /dev/null
ファイルが読み取り専用の場合は、入力するだけです :w!!、パスワードの入力を求められ、ファイルが正常に書き込まれます。
:set noro
はジョブを実行します。ファイルが別のvimインスタンスによって開かれているかどうかはチェックせず、外部で変更された場合はファイルを更新しません。
編集可能にしてスワップファイル(vimでファイルを開くデフォルト)を確認するには、編集コマンド(:help edit)を使用します。
:e
それ以降(vimの外でも)ファイルが操作されている場合は、現在のバッファーの変更が更新されることに注意してください(通常は望ましいと思います)。
少し遅れましたが、おそらくあなたはすでにあなたの疑念を解決したかもしれません;)私はvimで知っている方法でコメントの中に見たことがないので、追加しますそれ:
ファイルを編集したら、:w
または:wq
を押すと、迷惑なメッセージ「E45 'readonly'オプションが設定されています(上書きするには!を追加)」
入力できます
:w !Sudo tee %
w
はバッファを書き込み、!Sudo
はSudoでシェルを呼び出し、tee
は、vim :w
の出力をtee付きの出力にリダイレクトし、%
は現在のファイル名ですこれでうまくいくはずです。これは、Lキーを押す必要があるものについて、vimでファイルを再ロードするように要求することに注意してください。