# First pipe member may need to be modified for a desired history file (path and splitting).
-awk -F';' '{sub("^" $1 ";", ""); print}' ~/.zsh_history | awk '{curr = $1; links[NR, prev] = curr; prev = curr} END {printf "digraph G {"; for (node in links) {split(node, n, SUBSEP); printf "\"%s\" -> \"%s\"\n", n[2], links[node]}; printf "}\n"}' | neato -T png | feh -
+awk -F';' '{sub("^" $1 ";", ""); print}' ~/.zsh_history | awk '{curr = $1; links[NR, prev] = curr; prev = curr} END {printf "digraph G {"; for (node in links) {split(node, n, SUBSEP); printf "\"%s\" -> \"%s\"\n", n[2], links[node]}; printf "}\n"}' | neato -T png -Goverlap=false | feh -