:Vimの:wqは保存されません


8

:wqVimで編集したテキストファイルを保存しようとしていますが、入力する:wqとエラーが発生します

E45: 'readonly' option is set (add ! to override)`  

「いいね」に追加!する:wq:wq!、次のようになります。

"/etc/dhcp/dhcpd.conf"

"/etc/dhcp/dhcpd.conf" E212: Can't open file for writing

編集したいファイルdhcpd/etc/dhcpdパス上にあります。

これどうやってするの?


優先:xまたはZZ終了して保存します。変更時のみ書き込みます。
Hauleth 2014年

回答:


14

次のようにスーパーユーザー権限を使用してファイルを開く必要があります。

sudo vi /etc/dhcp/dhcpd.conf

を押してファイルを編集してiから保存し、を押して終了するEscか、:wqまたは:xまたは単に:w保存します。


提案してくれたRikingに感謝しsudoeditます。を使用するsudoedit /path/to/file/filename代わりに、rootが所有するファイルを編集するために使用できますsudo <editor> /pat/to/file/filename。これは、sudoeditがにログを記録するため、エンタープライズレベルのマシンや本番マシンで役立ち/var/log/auth.logます。

sudoeditのデフォルトのエディターを変更する場合は、次のようにします。

sudo update-alternatives --config editor

次に、を押してReturn、お好みのエディターを選択し、もう一度を押しReturnます。


参照:sudoeditが有利になる理由についてのreditに関するディスカッション


3
sudoeditはこれらの状況を好む-一時的なコピーを作成し、エディターを実行し、結果をコピーします。以前nanoにそのコマンドを選択した場合は、を実行しEDITOR=vi sudoedit /etc/fileます。
Riking

1
@Riking:ありがとう、sudoeditそれが存在することすら知らなかった。しかし、グーグルしながらこれに出くわしましたsudoedit。お勧めしますが、必要な場合はユーザーにお任せください。
Jobin、2014年

sudoeditEDITOR変数も選択するため、代替を構成するよりも簡単に設定できます
muru

9

/etcすべての構成ファイルで構成されているため、ファイルを編集/etcするにはスーパーユーザー権限が必要ですが、使用を忘れることがありますsudo。でもその時は

:w !sudo tee %

次に、管理者パスワードを入力します

:q!

正常に終了する


1
に追加cmap w!! w !sudo tee > /dev/null %して.vimrc、でこのメソッドを介して保存できるようにすることができます:w!!。このメソッドが機能する理由に興味がある場合は、stackoverflow.com / questions / 2600783
Gerhard Burger
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.