Vimで読み取り専用モードを終了するにはどうすればよいですか?
On 2月 18, 2021 by adminファイルを読み取り専用モードで開きました。読み取り専用モードを終了する方法はありますか?
コメント
回答
これを行うことができます:
:set noro
これにより読み取り専用フラグが設定解除されますが、基になるファイルはまだ書き込み可能ではなく、vimはそれを書き込むことができません。
コメント
- これを元に戻して戻る方法読み取り専用ですか?
- @LouisHong非常に簡単:
:set ro
。 - これは、
しかし、それを編集することにしました。
psql
にはSQLビューを編集するためのメタコマンド(\ev
)があり、vimを開いて書き込みます。ただし、'実際にビューを変更しないようにしたい場合は(本番環境で!)、すぐに:set ro
できます。 🙂 回答
chmod
は内部から実行できますvim:
:!chmod +w %
!
はシェルコマンドを実行することを意味し、%
は現在のファイル名です。ファイルを強制的に書き込むこともできます:
:w!
回答
さらに Michael Mrozekの回答に、ファイルに書き込むことができる行を.vimrc
に追加できます。昇格された権限で開くことを怠ったこと:
" Allows writing to files with root priviledges cmap w!! w !sudo tee % > /dev/null
ファイルが読み取り専用の場合は、: <と入力するだけです。 kbd> w ! !の場合、パスワードの入力を求められ、ファイルが正常に書き込まれます。
回答
:set noro
はジョブを実行しますが、ファイルが別のvimインスタンスによって開かれているかどうかはチェックしません。外部で変更された場合、ファイルを更新します。
編集可能にしてスワップファイル(vimでファイルを開くデフォルト)を確認するには、編集コマンド(:help edit)を使用します。
:e
注:それ以降(vimの外部でも)ファイルが操作されている場合は、現在のバッファーの変更が更新されます(通常は望ましいと思います)。
回答
ここに行きますが、少し遅れていますが、おそらくあなたはすでに疑問を解決しています;)私は vim で私が知っているコメントのいずれかなので、追加します:
一度ファイルを編集しているときに、:w
または:wq
を押すと、迷惑なメッセージ「 E45「読み取り専用」オプションが設定されています(オーバーライドするには!を追加) “
入力できます
:w !sudo tee %
-
w
がバッファを書き込み、 -
!sudo
がsudoを使用してシェルを呼び出します。 -
tee
は、vim :w
の出力をteeを使用した出力にリダイレクトし、 - は現在のファイル名です
これでうまくいくはずです。 Lキーを押す必要があるため、vimでファイルをリロードするように求められることに注意してください。
回答
これを試してください:
vim -R "filename"
読み取り専用モードで開き、次のコマンドを実行します:q
試してみましたが、うまくいきました
コメント
- ごめんなさい。何を言っているのかわかりません。
回答
sudo
。 root
として、ファイルを開く必要があります。 Sudo
は、Linuxに許可を要求できるコマンドです。
eg。
sudo vim "filename"
コメント
- これは権限や特権とは何の関係もありません。また、エディターの実行に
sudo
を使用しないでください。 代わりにsudoedit
を使用してください。
!
をw
コマンドでうまくいきます。w
の後に感嘆符を付けます。 heh