Estou usando o graphViz no 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 quero inserir
ponto -T png -o meu Tab.png meuTab
para preencher automaticamente esses nomes de arquivos, mas nada acontece! Posso entrar e dá , mas por que não funciona depois ? O bash precisa de um módulo de preenchimento automático extra para cada comando que eu possa inserir?cat myTab
cat myGraph.graphviz
dot
Responder1
Criei os arquivos de exemplo no meu Debian. Na verdade, 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 geralpara programas Graphviz especifica:
-ooutfile
Gravar saída em arquivoarquivo de saída. […]
A conclusão do Bash no meu Debian obedece literalmente: suporta , não . Mesmo que este último funcione (e eu não sei disso), a conclusão não suporta isso. Você deve proceder assim:-ooutfile
-o outfile
dot
ponto -T png -omyTab
sem nenhum espaço depois -o
. Em meus testes, o acima funciona.
Para fazer o segundo Tabtrabalho eu inspecionei /usr/share/bash-completion/completions/dot
. A linha relevante perto do final é:
_filedir dot
Isso oferecerá diretórios para descer e arquivos para especificar, mas apenas arquivos com nomes que terminam com .dot
ou .DOT
. Provavelmente você podemanualmenteforneça 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 deverá 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 dot
seria mais útil se permitissequalquerarquivo. Nesse caso, copio o arquivo original /etc/bash_completion.d/
e modifico a cópia, então a linha
_filedir dot
no final da função torna-se
_filedir
Esta é uma mudança em todo o sistema. A mudança não afetará os shells existentes, então inicie um novo bash
para testá-lo. Se você não pode (ou não deseja) modificar, /etc/bash_completion.d/
consulteesta resposta. Ele fornece uma maneira de ter seu arquivo privado (específico do usuário) bash_completion.d/
.
Observe que esta alteração permitirá que você digite e o preenchimento funcionará. Porém, neste caso específico, não tem nada a ver internamente, é a conclusão geral dos operandos e funcionaria mesmo após alguma opção inesperada ou inválida (por exemplo ).dot -T png -o myTab
-o
dot -T png -: myTab
Responder2
Isso pode acontecer se houver outro dot
comando no sistema para o qual uma definição real de preenchimento automático esteja instalada e esse comando não esperar um arquivo nesse ponto. Você obtém o preenchimento automático de arquivos 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 documento ou que você cometeu um erro em seus argumentos.