Quais são as limitações no modo somente leitura que estão incomodando você? Se você deseja gravar o arquivo, mesmo que o opere somente para leitura, adicionar um !ao wcomando fará o truque, como Michael afirmou.
Bananguin
11
@ user1129682 é apenas o inconveniente de lembrar de colocar um ponto de exclamação depois de wcada vez que eu quiser salvar. heh
wrongusername
Respostas:
44
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.
Além da resposta de Michael Mrozek , você pode adicionar uma linha à sua .vimrcque 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 norofaz 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 :wou :wqe 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,
teeredireciona a saída de vim :wpara a saída com tee e
% é o nome do arquivo atual
E 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.w
cada vez que eu quiser salvar. hehRespostas:
Você pode fazer isso:
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.
fonte
:set ro
.view
mas decidir editá-lo.Você pode executar a
chmod
partir do vim:!
significa executar um comando shell e%
é o nome do arquivo atual. Você também pode forçar a gravação do arquivo:fonte
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:Se o arquivo for somente leitura, você precisará digitar apenas :w!!, será solicitada sua senha e o arquivo será gravado com êxito.
fonte
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):
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).
fonte
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
escreve o buffer,!sudo
chama o shell com sudo,tee
redireciona a saída devim :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
fonte