: wq no Vim não salva


8

Estou tentando usar :wqpara salvar um arquivo de texto que editei no Vim, mas quando entro :wqrecebo o erro

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

Quando adiciono !ao :wqgosto :wq!, recebo o seguinte:

"/etc/dhcp/dhcpd.conf"

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

O arquivo que quero editar está dhcpdno /etc/dhcpdcaminho.

Como posso fazer isso?


Prefira :xou ZZpara sair e salvar. Ele escreverá apenas em alterações.
Hauleth 25/05

Respostas:


14

Você precisa abrir o arquivo usando permissões de superusuário, da seguinte maneira:

sudo vi /etc/dhcp/dhcpd.conf

edite o arquivo pressionando ie, em seguida, salve e saia pressionando Esce depois ou :wqou :xou apenas :wpara salvar.


Agradecemos a Riking por sugerir sudoedit: você pode usar sudoedit /path/to/file/filenamepara editar arquivos pertencentes à raiz, em vez de usar sudo <editor> /pat/to/file/filename. Isso é útil para máquinas de nível corporativo ou máquinas de produção, desde que o sudoedit faça logon /var/log/auth.log.

Se você deseja alterar o editor padrão para sudoedit, faça o seguinte:

sudo update-alternatives --config editor

pressione Returne escolha o editor de sua escolha e pressione novamente Return.


Veja também: Uma discussão sobre redit sobre por que o sudoedit pode ser vantajoso


3
Eu prefiro sudoeditpara essas situações - ele cria uma cópia temporária, executa o editor e copia o resultado. Se você escolheu anteriormente nanopara esse comando, execute EDITOR=vi sudoedit /etc/file.
Riking

1
@ Vikings: Obrigado por sudoedit, nem sabia que existia. No entanto, deparei com isso enquanto pesquisava sudoedit. Vou sugerir, mas deixe para o usuário se achar necessário.
Jobin

sudoedittambém pega na EDITORvariável, é mais fácil de conjunto que do que as alternativas do configure
Muru

9

/etcconsiste em todos os arquivos de configuração. Para editar os arquivos, /etcvocê precisa das permissões de superusuário, mas às vezes esquecemos de usá-lo sudo. mas nesse momento também podemos usar

:w !sudo tee %

depois digite sua senha de administrador

:q!

sair com sucesso


1
Você pode adicionar cmap w!! w !sudo tee > /dev/null %ao seu .vimrcpara permitir salvar através deste método com :w!!. Se você estiver interessado em saber por que esse método funciona, veja stackoverflow.com/questions/2600783/…
Gerhard Burger
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.