Verwandt mit meiner Antwort auf die verlinkte Frage und teilweise basierend auf [https://tex.stackexchange.com/a/432147/121799](https://tex.stackexchange.com/a/432147/121799). Wenn Du `calc` lädst, kannst Du Dir all die `\pgfgetlastxy` und `\pgfmathsetmacro` sparen, und alles in einen Style für einen `edge` path stecken. Du brauchst dann nur noch `\draw (A) edge[Pfeil] (B);` zu sagen.
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows,calc}
\tikzset{Pfeil/.style=%
{to path={let \p1 = ($(\tikztotarget)-(\tikztostart)$),
\n1 = {int(mod(scalar(atan2(\y1,\x1))+360, 360))}, % calculate angle in range [0,360)
\n2 = {veclen(\x1,\y1)}
in \pgfextra{\typeout{\n1,\n2,\x1,\y1}}
(\tikztotarget)
node[draw,single arrow,
minimum height=\n2-\pgflinewidth,
% minimum width=5ex,
%minimum height=13ex,
inner sep=1ex,
%text height=1ex,
%text depth=0ex,
single arrow head extend=1ex,
rotate=\n1, % not shape border rotate, because that for some reason didn't work
anchor=tip, % anchor=tip added, pos=0.5 removed
]{}
}}}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,2);
\draw (A) edge[Pfeil] (B);
\draw[red] (A) -- (B);
\end{tikzpicture}
\end{document}
[![alt text][1]][1]
text][1]][2]
___
**Ergänzung:**
Mit kleineren Anpassungen kann `Pfeil=double` als optionales Argument verwendet werden; gegenüber `Pfeil` bzw. gleichbedeutend `Pfeil=single` (default).
Z.B.
`\draw[] (A) edge[Pfeil=double] (B);`
[![alt text][3]][3]
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows,calc}
\tikzset{
Pfeil/.style args={#1}{
to path={let \p1 = ($(\tikztotarget)-(\tikztostart)$),
\n1 = {int(mod(scalar(atan2(\y1,\x1))+360, 360))}, % calculate angle in range [0,360)
\n2 = {veclen(\x1,\y1)} in \pgfextra{\typeout{\n1,\n2,\x1,\y1}} (\tikztotarget)
node[
#1 arrow, % single arrow,
#1 arrow head extend=1ex,
draw,
minimum height=\n2-\pgflinewidth,
% minimum width=5ex,
% minimum height=13ex,
inner sep=1ex,
%text height=1ex,
%text depth=0ex,
rotate=\n1,%
anchor=east,% ehgemals: tip bei single / tip 1 bei double arrow
]{}
}},
Pfeil/.default=single
}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,-1);
\coordinate (B) at (2,2);
\draw (A) edge[Pfeil] (B);
\draw[red] (A) -- (B);
\draw[] ([xshift=2cm]A) edge[Pfeil=double] ([xshift=2cm]B);
\end{tikzpicture}
\end{document}
[1]: https://texwelt.de/wissen/upfiles/Screen_Shot_2018-07-05_at_2.59.21_PM.png
[2]: https://texwelt.de/wissen/upfiles/Screen_Shot_2018-07-05_at_2.59.21_PM.png
[3]: https://texwelt.de/wissen/upfiles/55555555_176.png