Abri um arquivo no modo somente leitura; existe uma maneira de sair do modo somente leitura?
w
cada vez que eu quiser salvar. heh
Abri um arquivo no modo somente leitura; existe uma maneira de sair do modo somente leitura?
w
cada vez que eu quiser salvar. heh
Respostas:
Você pode fazer isso:
:set noro
Isso desativa o sinalizador somente leitura, mas se o arquivo subjacente ainda não for gravável por você, o vim ainda não poderá gravar nele.
:set ro
.
view
mas decidir editá-lo.
Você pode executar a chmod
partir do vim:
:!chmod +w %
!
significa executar um comando shell e %
é o nome do arquivo atual. Você também pode forçar a gravação do arquivo:
:w!
Além da resposta de Michael Mrozek , você pode adicionar uma linha à sua .vimrc
que permita gravar em um arquivo que você esqueceu de abrir com permissões elevadas:
" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null
Se o arquivo for somente leitura, você precisará digitar apenas :w!!, será solicitada sua senha e o arquivo será gravado com êxito.
Enquanto :set noro
faz o trabalho, ele não verifica se o arquivo foi aberto por outra instância do vim ou atualiza o arquivo se alterado externamente.
Para torná-lo editável e procurar arquivos de troca (que é o padrão para abrir um arquivo com o vim), basta usar o comando edit (: help edit):
:e
Observe que, se o arquivo tiver sido manipulado desde então (mesmo fora do vim), ele atualizará as alterações no buffer atual (o que eu acho normalmente desejável).
Aqui vou eu, embora um pouco atrasado, talvez você já tenha resolvido sua dúvida;) Eu não vi nenhum dos comentários de uma maneira que conheço com o vim , então adiciono:
Depois de editar um arquivo, pressione :w
ou :wq
e você verá a mensagem irritante " A opção E45 'readonly' está definida (adicione! Para substituir) "
Você pode digitar
:w !sudo tee %
w
escreve o buffer, !sudo
chama o shell com sudo, tee
redireciona a saída de vim :w
para a saída com tee e%
é o nome do arquivo atualE isso deve fazer o truque. Observe que isso solicitará o recarregamento do arquivo no vim, para o que você precisa pressionar L
!
aow
comando fará o truque, como Michael afirmou.