Usando um Makefile
SOURCES:=$(shell find . -maxdepth 1 -name '*.gv')
ifndef OTYPE
OTYPE:=png
endif
# use 'make OTYPE=pdf' to generate pdfs
TARGETS:=$(SOURCES:.gv=.$(OTYPE))
.PHONY: all clean
all: $(TARGETS)
clean:
rm $(TARGETS)
%.$(OTYPE) : %.gv
neato -T$(OTYPE) $< -o$(basename $<).$(OTYPE)
Agora você pode usar
$ ls *.gv | entr make
Há espaço para melhorias: há dois comandos para listar arquivos com a extensão .gv que contradiz uma única fonte de verdade (SSOT).
Notas do Vim
Você também pode usar o Makefile dentro do editor de texto vim
:mak[e]
Você pode ligar automaticamente para salvar, configurando um autocommand com
:au BufWritePost <buffer> make
Você pode considerar usar um plugin para runnning make async: veja os plugins vim-dispatch (mapeamento em modo normal m<CR>
), neomake ou asyncrun .vim .
No entanto, já existem definições de compilador para os comandos dot e neato:
Isso significa que você não precisa escrever um Makefile.
Você pode definir o makeprg por :comp[iler] neato
ou :comp dot
. Observe que você vê todas as definições do compilador por :comp <C-d>
e pode concluir a guia :comp n<Tab>
to :comp neato
e :comp d<tab>
to :comp dot
.
Agora você precisa chamar o make com um argumento para especificar seu formato de saída:
:make png
:au BufWritePost <buffer> make png
Se você usa o vim-dispatch, isso parece
:Make png
m<Space>png<CR>
:au BufWritePost <buffer> Make png