patch 8.0.0504: looking up an Ex command is a bit slow

Problem:    Looking up an Ex command is a bit slow.
Solution:   Instead of just using the first letter, also use the second letter
            to skip ahead in the list of commands. Generate the table with a
            Perl script. (Dominique Pelle, closes #1589)
diff --git a/src/Makefile b/src/Makefile
index 1309a63..e8314ea 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1884,6 +1884,16 @@
 	-rm -rf autom4te.cache
 	-rm -f auto/config.status auto/config.cache
 
+# Run Perl to generate the Ex command lookup table.  This only needs to be run
+# when a command name has been added or changed.
+# NOTE: Only works when perl and vim executables are available
+cmdidxs: ex_cmds.h
+	if test X`perl -e "print 123"` = "X123"; then \
+	   vim ex_docmd.c -c '/Beginning.*create_cmdidxs/,/End.*create_cmdidxs/! perl create_cmdidxs.pl' -c wq; \
+	else \
+	   echo Cannot run Perl; \
+	fi
+
 # Re-execute this Makefile to include the new auto/config.mk produced by
 # configure Only used when typing "make" with a fresh auto/config.mk.
 myself: