Você entrou no editor de texto vim mas esqueceu de usar sudo e agora, depois de ter digitado muito, descobre que não tem permissão para salvar. Como usar sudo dentro do vim?
Podemos usar sudo dentro do vim para não precisarmos sair e entrar novamente. Para isso execute :w !sudo tee %
:w !sudo tee %
Você será solicitado a digitar a senha para gravar os dados dentro do vim.
O que que esse comando faz? Ele irá escrever o conteúdo do arquivo atual no terminal usando o comando tee. O comando tee irá então redirecionar a saída para o arquivo original.
Temos um post falando sobre sudo ou visudo, veja: Linux: no VISUDO, o que quer dizer “ALL=(ALL:ALL) ALL”
Podemos especificar o nome de um arquivo que queremos que sejam salvos os dados:
:w !sudo tee arquivo.txt
Mapeando dentro de .vimrc
.vimrc é um arquivo de configuração para o editor de texto Vim. Nele, podemos definir preferências, atalhos, cores, e outras configurações personalizadas para o funcionamento do Vim.
Geralmente, o arquivo .vimrc é encontrado no diretório home do usuário, ou seja, em /home/seu_usuario/.vimrc mas também pode ser achado em /etc/vim/vimrc
Veja que o arquivo .vimrc contém um ponto e isso quer dizer que ele é um arquivo oculto no sistema.
A diferença entre eles é que todas as configurações que fizermos dentro de /etc/vim/vimrc serão aplicados e afetarão todos os usuários, enquanto o que fizermos dentro de /home/seu_usuario/.vimrc afetará apenas o usuário especificado.
Bom, agora que já sabemos o que é o arquivo vimrc, vamos ver como fazer o mapeamento, de forma que podemos digitar apenas S, por exemplo, e será executada toda esse comando :w !sudo tee.
Abra o arquivo .vimrc e digite,
map <leader>S :w !sudo tee %<CR>
Aqui está uma explicação do que cada parte do comando faz:
:w
– Este comando salva o arquivo atual.!
– Este caractere executa o comando subsequente com privilégios de root.sudo
– Este comando solicita sua senha de sudo.tee
– Este comando redireciona a saída de um comando para outro.%
– Este símbolo representa o nome do arquivo atual.

Veja outros posts sobre sudo no linux que poderá ser útil: