It was created as a tikz picture. Source below
\documentclass[tikz,convert={outfile=\jobname.svg}]{standalone}
\newcommand{\Esc}{\framebox{\texttt{Esc}}}
\newcommand{\Enter}{\framebox{\texttt{Enter}}}
\usetikzlibrary{positioning,automata}
\tikzset{ %inner sep = 0.5mm,
%minimum size = 5mm,
>=latex,
every state/.style={draw=blue!50,thick,fill=blue!20,minimum size=1.8cm},
{small point/.style} ={circle,draw=blue!60,fill=blue!30,inner sep=0, minimum size= 1mm},
box/.style ={circle,draw=black!60,fill=black!20,inner
sep=5pt,fill=blue!30,draw=blue!60,rectangle},
{edge/.style} ={thick,draw},
{dedge/.style} ={draw,->},
}
\begin{document}
\begin{tikzpicture}[node distance=1.5cm,/tikz/initial text=,
initial distance=5ex]
\node[state,initial] (n) at (0,0) {normal};
\node[state] (c) [above=of n]
{\parbox[c]{1.5cm}{\small command-line}};
\node[state] (v) [right=2cm of n] {visual};
\node[state] (i) [below=1.5cm of n] {insert};
%\node (h) [below=.5cm of i] {:help vim-modes};
\path[dedge] (n) edge[bend left=15] node[left,near end] {:,/,?} (c)
edge[bend left=15] node[above] {v,V,Ctrl-V} (v)
edge[bend right=15] node[left,near end] {iIaAoOc\ldots} (i);
%\path[dedge] (-1.5cm,0) -- (n);
\path[dedge] (i) edge[bend right=15] node[right,near start] {\Esc} (n);
\path[dedge] (v) edge[bend left=15] node[below] {\Esc} (n);
\path[dedge] (c) edge[bend left=15] node[right,near start]
{\Esc,\Enter} (n);
\end{tikzpicture}
\end{document}
I could only create PDF (direct SVG creation didn't work for me) and then I used pdf2svg command on Linux to convert into SVG.
On Fedora and similar use the package texlive-collection-latexextra on Debian and similar texlive-latex-extra