Estou usando o graphViz em bash / Cygwin, mas, de alguma forma, ao chamá-lo, o preenchimento automático da guia bash não faz nada.
Arquivos de exemplo:
myGraph.graphviz
é o arquivo de entradamyGraph.graphviz.png
deve ser o arquivo de saída.
O comando para fazer o gráfico é
dot -T png -o myGraph.graphviz.png myGraph.graphviz
Claro que eu quero inserir
ponto -T png -o meu Tab.png meuTab
para preencher automaticamente esses nomes de arquivo, mas nada acontece! Eu posso entrar e dá , mas porque não funciona depois ? O bash precisa de um módulo extra de preenchimento automático para cada comando que eu possa inserir?cat myTab
cat myGraph.graphviz
dot
Eu criei os arquivos de exemplo no meu Debian. De fato, não funciona. Então (após completar manualmente) também não funciona. Existem duas questões distintas.
dot -T png -o myTab
dot -T png -o myGraph.graphviz.png myTab
O manual geral para programas Graphviz especifica:
A conclusão do bash no meu Debian obedece literalmente: ele suporta , não . Mesmo que o último funcione (e eu não sei disso), a conclusão não o suporta. Você deve proceder assim:
-ooutfile
-o outfile
dot
sem nenhum espaço depois
-o
. Nos meus testes, o acima funciona.Para fazer o segundo Tabtrabalho eu inspecionei
/usr/share/bash-completion/completions/dot
. A linha relevante perto do final é:Isso oferecerá diretórios para descer e arquivos para especificar, mas apenas arquivos com nomes que terminam com
.dot
ou.DOT
. Provavelmente, você pode fornecer manualmente um arquivo que não corresponda a esse padrão e nada de ruim acontecerá, mas se você confiar no mecanismo de conclusão, o nome do arquivo deve terminar corretamente.Na verdade, não sei
dot
nada, conheço um pouco as conclusões do Bash. Talvez o requisito não faça sentido e o preenchimento paradot
seria mais útil se permitisse qualquer arquivo. Nesse caso, copio o arquivo original/etc/bash_completion.d/
e modifico a cópia, de modo que a linhano final da função torna-se
Esta é uma mudança em todo o sistema. A alteração não afetará os shells existentes, portanto, inicie um novo
bash
para testá-lo. Se você não pode (ou não quer) modificar/etc/bash_completion.d/
, veja esta resposta . Ele fornece uma maneira de ter seu arquivobash_completion.d/
.Observe que essa alteração permitirá que você digite e a conclusão funcionará. Porém neste caso em particular não tem nada a ver internamente, é a complementação geral para operandos e funcionaria mesmo após alguma opção inesperada ou inválida (ex . ).
dot -T png -o myTab
-o
dot -T png -: myTab
Isso pode acontecer se houver outro
dot
comando no sistema para o qual uma definição de preenchimento automático real está instalada e esse comando não espera um arquivo nesse ponto. Você obtém o preenchimento automático de arquivo em todos os parâmetros por padrão para comandos desconhecidos, mas comandos específicos podem definir seu próprio preenchimento automático específico. Verifique/etc/bash_completion
e/etc/bash_completion.d/
.PS: Outra explicação é que o
dot
script de preenchimento automático não é coerente com o doc, ou que você cometeu um erro em seus argumentos.