Como executar seu código-fonte a partir do Vim

Publicado por Fábio Berbert de Paula em 20/12/2018

[ Hits: 7.475 ]

Blog: https://fabio.automatizando.dev

 


Como executar seu código-fonte a partir do Vim



Essa dica saiu a partir de uma thread aqui no fórum onde um dos moderadores perguntou se havia no Vim algo similar ao Geany, que ao pressionar a tecla F5 ele abre um terminal para testar o script que você está criando, auto-detectando a linguagem utilizada.

Acredito que a única coisa que não seja possível fazer no Vim seja café.

Então bora adaptar o editor para executar seus arquivos. A solução será criar uma função que contempla alguns tipos de arquivo e os executa através de if-else. Ao final mapearemos uma tecla para invocar a função.

Insira as seguintes linhas ao seu ~/.vimrc:

vim ~/.vimrc

"declaração da função
function! Executar(arq)
    "o vim possui uma variável built-in chamada &filetype
    "seu conteúdo corresponde ao tipo de arquivo auto-detectado
    "executaremos os arquivos usando a chamada :exec seguida do
    "comando e o nome do arquivo que você está editando
    "
    "o parâmetro arq é passado à função via shellescape, que é
    "traduzido para o nome do arquivo que você está editando
    "
    "antes de começar a estrutura if-else, estou invocando o
    "comando :w para salvar o arquivo que você está editando
    "dessa forma o Vim terá acesso à versão atual do seu código,
    "mesmo que tenhas esquecido de salvá-lo

    "salvar edição atual

    :w

    if &filetype == 'html'
        :exec '!google-chrome' a:arq
    elseif &filetype == 'python'
        :exec '!python3' a:arq
    elseif &filetype == 'c'
        :exec '!gcc -o /tmp/a.out' a:arq ';/tmp/a.out'
    endif
endfunction

"mapear a tecla F5 para chamar a função Executar,
"passando como parâmetro o nome do arquivo em edição
nnoremap <F5> :call Executar(shellescape(@%, 1))<CR>

O código acima é bem simples, caso tenha curiosidade para com algum comando utilizado, o sistema de help do Vim é bem intuitivo. Por exemplo, dentro do editor digite:

:help shellescape

Bons códigos!

Outras dicas deste autor

Habilitando conversão de PDF em Imagem usando o ImageMagick

Alterando nome de placa de rede FÁCIL usando arquivos de LINK

Área de Troca (swap)

Gmail - Como evitar que emails do VOL sejam bloqueados

TEG - Clone do WAR de tabuleiro para GNU/Linux

Leitura recomendada

Enviando comandos ao modem pelo shell

PrintScreen em modo texto

Várias maneiras de se tirar um screenshot

GitHubDesktop no Fedora 33

Remover Beagle do login, mas não do sistema

  

Comentários
[1] Comentário enviado por ElmiroDuarte em 09/11/2020 - 18:07h

Maravilhosa ferramenta o vim, me ajudou muito !!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts