Como posso sair do modo somente leitura no Vim?
On Fevereiro 18, 2021 by adminEu abri um arquivo no modo somente leitura; existe uma maneira de sair do modo somente leitura?
Comentários
Resposta
Você pode fazer isso:
:set noro
Isso cancela a sinalização somente leitura, mas se o arquivo subjacente ainda não pode ser gravado por você, então o vim ainda não será capaz de escrever nele.
Comentários
- como reverter isso e voltar para leitura?
- @LouisHong Muito facilmente:
:set ro
. - Isso é perfeito se você abrir um arquivo gravável com
view
mas decida editá-lo. - O reverso também pode ser útil. Por exemplo,
psql
tem um meta comando (\ev
) para editar uma visualização SQL, que abre o vim para gravação. Mas, se eu quiser ter certeza de que não ' realmente altero a visualização (em produção!), Posso:set ro
imediatamente. 🙂
Resposta
Você pode executar chmod
de dentro vim:
:!chmod +w %
!
significa executar um comando shell e %
é o nome do arquivo atual. Você também pode simplesmente forçar a gravação do arquivo:
:w!
Resposta
Além disso à resposta de Michael Mrozek , você pode adicionar uma linha à sua .vimrc
que permite 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ê só precisa inserir : w ! ! , sua senha será solicitada e o arquivo será gravado com sucesso.
Resposta
Embora :set noro
faça 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 verificar se há arquivos de troca (que é o padrão para abrir um arquivo com o vim), basta usar o comando edit (: help edit):
:e
Note, se o arquivo foi manipulado desde então (mesmo fora do vim), ele irá atualizar as mudanças no buffer atual (o que eu acho normalmente desejável).
Resposta
Lá vou eu, embora um pouco tarde, talvez você já tenha resolvido sua dúvida;) Eu não vi em qualquer um dos comentários da forma que eu conheço com vim , então, eu o adiciono:
Assim que você estão editando um arquivo, você pressiona :w
ou :wq
e vê a mensagem irritante “ A opção E45 “somente leitura” está definida (adicione! para substituir) “
Você pode digitar
:w !sudo tee %
-
w
grava 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 atual
E isso deve resolver. Observe que isso solicitará que o arquivo seja recarregado no vim, para o que você deve pressionar L
Resposta
Experimente este aqui:
vim -R "filename"
ele abre em modo somente leitura, então é só fazer este comando: q
Eu tentei e funcionou para mim
Comentários
- Desculpe. Não tenho ideia do que você está dizendo.
Resposta
Tente usar sudo
. Como root
, você precisa abrir o arquivo. Sudo
é um comando onde você pode solicitar permissão do linux.
por exemplo.
sudo vim "filename"
Comentários
- Isso não tem nada a ver com permissões ou privilégios.Além disso, você nunca deve usar
sudo
para executar um editor; usesudoedit
em vez disso.
!
aow
comando fará o truque, como Michael afirmou.w
toda vez que quiser salvar. heh