直到最近,當我在TextMate中保存對.dot文件的更改時,Graphviz纔會檢測到更改並重繪。現在它不。我試着將文件移到不同的位置無濟於事。所有文件現在都是如此。Graphviz不刷新
0
A
回答
1
我不使用TextMate,因此我無法提供TextMate特定的答案(儘管我的確發現this answer on SuperUser這可能會有所幫助)。我想可能是文件夾操作,但它們似乎只是在將文件添加到文件夾時才起作用,而不是當現有文件發生更改時。所以我決定尋找一個bash特定的答案。我遇到了fswatch。使用這個,你可以完成你想要的。
創建以下文件夾結構:
我實現了這個問題的方法,fswatch
和rundot.sh
必須在同一文件夾作爲您的Graphviz文件。
rundot.sh
遍歷您的Graphviz文件,並在必要時編譯它們:
#!/bin/sh
graphvizExtension=gv #Change "gv" to the extension you use for your Graphviz files
graphicFormat=png #Change "png" to the file format you are using
for gvfile in *.$graphvizExtension
do
filename=$(basename "$gvfile")
outfile="../output/${filename%.*}.$graphicFormat" #build output file name
if [[ ! -f $outfile || $gvfile -nt $outfile ]]; then
#output file doesn't exist or Graphviz file is newer than output file
echo "compiling" $gvfile "to" $outfile
dot -T$graphicFormat "$gvfile" -o"$outfile"
else
#This is mainly for testing. You can delete the else clause if you want
echo "not necessary to compile" $gvfile
fi
done
轉到在終端中gv
文件夾,然後鍵入以下命令:每當有在一個變化
./fswatch . "./rundot.sh"
現在gv
文件夾中,比相應的輸出文件更新的任何Graphviz文件將被編譯並且其輸出存儲在output
文件夾中。您可以將輸出文件存儲在gv
文件夾中,但當輸出文件更改時,它會再次觸發rundot.sh
。我的原始版本每次都會編譯每個Graphviz文件,從而以無限循環結束。這個檢查時間戳的版本會再次觸發,但不會再次更改任何輸出文件,所以不會陷入無限循環。
提取基本文件名的代碼來自from this answer。
相關問題
- 1. 刷新不刷新
- 2. PFQueryCollectionView不會刷新刷新
- 3. 刷新圖像不刷新
- 4. Tablayout刷卡不刷新android
- 5. UIWebView不刷新
- 6. 不上刷新
- 7. iPhone:UITableView不刷新
- 8. UIWebView不刷新
- 9. UITableView不刷新
- 10. UITableViewController不刷新
- 11. DataGridView不刷新
- 12. DrawingVisual不刷新
- 13. NSTableView不刷新
- 14. Datatable不刷新
- 15. PowerBI不刷新
- 16. FuncAnimation不刷新
- 17. UITableView不刷新
- 18. Primefaces:GraphicImage不刷新
- 19. MySQL不刷新?
- 20. System.out不刷新
- 21. Datagridview不刷新
- 22. getCurrentPosition不刷新
- 23. notifyDataSetChanged();不刷新
- 24. tabcontrol不刷新
- 25. Recyclerview不刷新
- 26. 表不刷新
- 27. Gridview不刷新
- 28. Android:ListFragment不刷新
- 29. 刷新Gridview而不刷新整頁(ASP.Net)
- 30. 刷新內容不刷新頁面
一般來說,GraphViz不會自動重繪更改後的'.dot'文件,而不會自動運行任何程序。必須有一些其他程序檢查,以查看任何圖像文件是否過時了.dot文件。一個經常運行的'make'和一個合適的'makefile'就可以做到這一點。我自己並不使用Textmate,但我懷疑它可能是Textmate爲您做的。我在標籤列表中添加了「Textmate」,以查看Textmate專家是否可以提供幫助。 – Simon