Я пытаюсь использовать, :wq
чтобы сохранить текстовый файл, который я отредактировал в Vim, но при вводе :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
выйти и сохранить. Это будет писать только при изменении.Ответы:
Вам необходимо открыть файл с правами суперпользователя следующим образом:
отредактируйте файл, нажав, 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, сделайте следующее:
а затем нажмите Returnи выберите нужный редактор и снова нажмите Return.
Читайте также: обсуждение Redit о том, почему sudoedit может быть полезным
источник
sudoedit
для этих ситуаций - он создает временную копию, запускает редактор и копирует результат. Если вы ранее выбралиnano
эту команду, запуститеEDITOR=vi sudoedit /etc/file
.sudoedit
, даже не знал, что он существует. Однако наткнулся на это, пока гуглилsudoedit
. Я предложу это, но оставьте это пользователю, если они считают необходимым использовать.sudoedit
также выбираетEDITOR
переменную, это легче установить, чем настраивать альтернативы/etc
состоит из всех файлов конфигурации, поэтому для редактирования файлов/etc
вам необходимы права суперпользователя, но иногда мы забываем об этомsudo
. но в то время мы также можем использоватьзатем введите пароль администратора
успешно выйти
источник
cmap w!! w !sudo tee > /dev/null %
в свой,.vimrc
чтобы разрешить сохранение с помощью этого метода с:w!!
. Если вам интересно, почему этот метод работает, см. Stackoverflow.com/questions/2600783/…