Parece haver algumas abordagens diferentes, dependendo do seu problema atual:
-
Somente leitura pelo vi. Se o seu arquivo tiver
:set readonly
, você pode- Use
:w!
para forçar a gravação ou - Emita
:set noreadonly
e, em seguida, use apenas% normal:w
- Use
- Um problema permissão ( sudo ): você não pode escrever, mas tem direitos de sudo.
- Problema:
:w !sudo tee %
. Isso gravará o buffer emtee
, um comando que recebe informações sobre pipe e pode gravar em arquivos. E como tee é executado com poderes sudo, tee pode modificar o arquivo.
- Problema:
- Um problema permissão ( não sudo ): você não tem direitos para gravar o arquivo e não tem acesso de administrador.
- Use
:w! ~/tempfile.ext
para gravar suas alterações em um arquivo temporário e, em seguida, tome medidas para mover o arquivo temporário para o diretório (envie o arquivo temporário para o proprietário / admin do diretório).
- Use
Você pode ler mais sobre isso aqui:
Atalho
Como é frequentemente o caso # 2 (problema permissão , com sudo ), você pode ao seu /etc/vim/vimrc
(ou ~/.vimrc
) o seguinte atalho :
-
cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
Em seguida, você pode digitar :w!!
para salvar com os poderes sudo . Não vou explicar aqui, mas as referências acima abrangem muitos atalhos.