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

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

[ Hits: 7.219 ]

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

Unetbootin - Failed to load COM32 file menu.c32 [RESOLVIDO]

Auto indentar linhas selecionadas no Vim

G-Desktop-Suite - Google Drive para Desktop Linux

Como testar a velocidade da Internet via linha de comando

React Native: Package Ignored Invalid Configuration [Resolvido]

Leitura recomendada

ImageShack Uploader

Comando dd - Truque para visualizar progresso de cópia de arquivos

Saiba como incluir sua foto no gerenciador de login do KDE (kdm)

Dropbox no Arch Linux

Mixando logs do Asterisk (ou quaisquer arquivos de áudio)

  

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