Vimで読み取り専用モードを終了するにはどうすればよいですか?


38

ファイルを読み取り専用モードで開きました。読み取り専用モードから抜け出す方法はありますか?


あなたを悩ませている読み取り専用モードの制限は何ですか?ファイルを読み取り専用で開いたとしても、ファイルを書き込みたいだけの場合は、Michaelが述べた!ように、wコマンドにa を追加するとうまくいきます。
バナンイン

1
@ user1129682 w保存するたびに感嘆符を付けるのを忘れてしまうのは不便です。heh
wrongusername

回答:


44

これを行うことができます:

:set noro

これにより、読み取り専用フラグが設定解除されますが、基になるファイルがまだ書き込み可能でない場合、vimは書き込みできません。


これを逆にして読み取り専用に戻す方法は?
ルイ・ホン

2
非常に簡単に@LouisHong: :set ro
フィリップカーンズ

1
これは、書き込み可能なファイルを開いてviewから編集することにした場合に最適です。
ウィスバッキー

9

chmodvim内から実行できます。

:!chmod +w %

!はシェルコマンドを実行することを意味し%、現在のファイル名です。ファイルの書き込みを強制することもできます:

:w!

3

加えて、マイケルMrozekの答えは、あなたに行を追加することができ.vimrc、あなたが昇格権限で開くことを怠ってきたことをファイルに書き込むことができます:

" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null

ファイルが読み取り専用の場合、入力するだけ:w!!で、パスワードの入力を求められ、ファイルに正常に書き込まれます。


2

ながら:set noro仕事をして、ファイルを別のvimのインスタンスによって開かれたり、外部から変更された場合は、ファイルを更新している場合、それはチェックしません。

編集可能にし、スワップファイル(デフォルトではvimでファイルを開く)を確認するには、編集コマンド(:help edit)を使用します。

:e

ファイルが(vimの外部であっても)それ以降操作されている場合、現在のバッファーの変更が更新されることに注意してください(通常は望ましいと思います)。


1

ここに行きますが、少し遅れていますが、あなたはすでにあなたの疑問を解決しているかもしれません;)vimで私が知っている方法でコメントを見たことがないので、それを追加します:

ファイルを編集したら、:wまたはを押すと:wq、「E45 'readonly' option is set(add!to add)」という迷惑なメッセージが表示されます

E45読み取り専用オプションが設定されています(オーバーライドするには!を追加)

入力できます

:w !sudo tee %

w!sudo tee%

  • w バッファに書き込み、
  • !sudo sudoでシェルを呼び出し、
  • teevim :wの出力をtee の出力にリダイレクトし、
  • % 現在のファイル名です

そして、これでうまくいくはずです。Lキーを押す必要があるため、vimでファイルをリロードするよう求められます。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.