Vim comandos · 3 min read · Nov 16, 2025

Como acessar o shell ou executar comandos externos dentro do Vim

Vim, como você já deve saber, é um editor poderoso e repleto de recursos. Aqui no HowtoForge, escrevemos vários tutoriais sobre o Vim, cobrindo seu uso básico, plugins, bem como algumas outras funcionalidades úteis. Mas, dada a quantidade de recursos que o Vim oferece, sempre encontramos algo útil para compartilhar com nossos leitores.

Neste tutorial, vamos nos concentrar em como você pode executar comandos externos, bem como acessar o shell da linha de comando a partir da janela do editor.

Executar comandos externos no Vim

Às vezes, você pode querer executar comandos externos a partir da janela do editor Vim. Por exemplo, considere uma situação em que você abriu um arquivo no Vim, fez algumas alterações e, ao tentar salvar essas alterações, o Vim exibe um erro dizendo que você não tem permissões suficientes.

Agora, sair da sessão atual do Vim e abrir novamente o arquivo com privilégios suficientes significará a perda de todas as alterações que você fez, então, você concordará que isso não será uma opção na maioria dos casos. É em situações como essas que a capacidade de executar comandos externos a partir do editor se torna útil.

Voltaremos ao caso de uso acima mais tarde (), mas por enquanto, vamos entender como você pode executar comandos básicos a partir do Vim.

Suponha que, enquanto edita um arquivo, você queira saber o número de linhas, palavras e caracteres que o arquivo contém. Para fazer isso, no modo de comando do Vim, basta digitar dois pontos (:) seguidos de um ponto de exclamação (!) e, finalmente, o comando (‘wc’ neste caso) seguido do nome do arquivo (use % para o arquivo atual).

:! wc %

Aqui está um exemplo:

Arquivo com o comando mencionado pronto para ser executado:

Comando pronto para ser executado no VIM

e aqui está a saída no terminal:

Depois de ver a saída, pressione a tecla Enter e você será levado de volta à sua sessão do Vim.

Esse recurso pode ser realmente útil em situações em que, digamos, você está escrevendo um código ou script e quer saber rapidamente se o código/script contém erros de compilação ou de sintaxe.

Seguindo em frente, caso a necessidade seja adicionar a saída ao arquivo, use o comando ‘:read !’. Aqui está um exemplo:

:read ! wc %

O comando ‘read’ insere a saída do comando externo em uma nova linha abaixo da linha atual no arquivo que está sendo editado. Se você quiser, também pode especificar um número de linha específico - a saída será adicionada após essa linha específica.

Por exemplo, o seguinte comando adicionará a saída do ‘wc’ após a segunda linha do arquivo.

:2read ! wc %

Nota: Use ‘$’ para inserir após a última linha e ‘0’ para inserir antes da primeira linha.

Agora, voltando ao caso de uso que discutimos no início (), aqui está o comando que ajudará você a salvar o arquivo sem precisar fechá-lo primeiro (o que significa que não haverá perda de alterações não salvas) e, em seguida, abri-lo com, digamos, sudo.

:w ! sudo tee %

Acessar Shell no Vim

Além de executar comandos individuais, você também pode ser levado a um shell recém-lançado a partir do Vim. Para isso, tudo o que você precisa fazer é executar o seguinte comando a partir do editor:

:shell

ou

:sh

e digite ‘exit’ quando terminar o trabalho no shell - isso o levará de volta à sessão do Vim de onde você saiu inicialmente.

A brecha a ser lembrada

Embora a capacidade de acessar um shell definitivamente tenha suas próprias utilidades no mundo real, ela também pode ser usada como uma técnica de escalonamento de privilégios. Como explicamos em um de nossos tutoriais anteriores (sobre sudoedit), mesmo que você forneça a um usuário acesso sudo apenas para editar um arquivo através do Vim, ele pode lançar um novo shell a partir do editor usando essa técnica e, em seguida, poderá fazer qualquer coisa como ‘root’ ou superusuário.

A capacidade de executar comandos externos a partir do Vim é um recurso importante que pode ser útil em muitas situações (algumas das quais mencionamos neste tutorial). A curva de aprendizado para esse recurso não é íngreme, então tanto iniciantes quanto usuários experientes podem aproveitá-lo.

Você tem usado esse recurso há algum tempo? Tem algo para compartilhar? Por favor, deixe seus pensamentos nos comentários abaixo. Talvez você também esteja interessado no comando tee do Linux.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.