Você pode fazer isso:
:set noro
Isso anula o sinalizador somente leitura, mas se o arquivo subjacente ainda não puder ser escrito por você, então o vim ainda não poderá gravar nele.
Eu abri um arquivo no modo readonly; Existe uma maneira de sair do modo somente leitura?
Você pode fazer isso:
:set noro
Isso anula o sinalizador somente leitura, mas se o arquivo subjacente ainda não puder ser escrito por você, então o vim ainda não poderá gravar nele.
Você pode executar chmod
de dentro do vim:
:!chmod +w %
!
significa executar um comando shell e %
é o nome do arquivo atual. Você também pode apenas forçar a gravação do arquivo:
:w!
Além da resposta de Michael Mrozek , você pode adicionar uma linha ao seu .vimrc
que permite que você 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 é somente leitura, você tem que entrar : w ! ! , você irá ser solicitada a sua senha e, em seguida, o arquivo será gravado com sucesso.
Enquanto :set noro
faz o trabalho, ele não verifica se o arquivo é aberto por outra instância vim ou atualiza o arquivo se alterado externamente.
Para torná-lo editável e verificar se há arquivos de troca (que é o padrão para abrir um arquivo com o vim), basta usar o comando edit (: help editing):
:e
Note, se o arquivo foi manipulado desde então (mesmo fora do vim), ele irá atualizar as mudanças no buffer atual (que eu acho normalmente desejável).