Use wilder to improve vim's command menu
diff --git a/modules/neovim/wilder/default.nix b/modules/neovim/wilder/default.nix
new file mode 100644
index 0000000..fb0bde4
--- /dev/null
+++ b/modules/neovim/wilder/default.nix
@@ -0,0 +1,6 @@
+{pkgs, ...}: {
+  programs.neovim = {
+    plugins = [pkgs.vimPlugins.wilder-nvim];
+    extraConfig = builtins.readFile ./wilder.vim;
+  };
+}
diff --git a/modules/neovim/wilder/wilder.vim b/modules/neovim/wilder/wilder.vim
new file mode 100644
index 0000000..20f2bc0
--- /dev/null
+++ b/modules/neovim/wilder/wilder.vim
@@ -0,0 +1,34 @@
+call wilder#setup({'modes': [':', '/', '?']})
+
+call wilder#set_option('pipeline', [
+      \   wilder#branch(
+      \     wilder#cmdline_pipeline({
+      \       'fuzzy': 1,
+      \       'set_pcre2_pattern': 1,
+      \     }),
+      \     wilder#python_search_pipeline({
+      \       'pattern': 'fuzzy',
+      \     }),
+      \   ),
+      \ ])
+
+let s:highlighters = [
+        \ wilder#pcre2_highlighter(),
+        \ wilder#basic_highlighter(),
+        \ ]
+
+call wilder#set_option('renderer', wilder#renderer_mux({
+      \ ':': wilder#popupmenu_renderer(wilder#popupmenu_border_theme({
+      \   'highlighter': s:highlighters,
+      \   'highlights': {
+      \     'border': 'Normal',
+      \   },
+      \   'border': 'rounded',
+      \ })),
+      \ '/': wilder#wildmenu_airline_theme({
+      \   'highlighter': s:highlighters,
+      \ }),
+      \ '?': wilder#wildmenu_airline_theme({
+      \   'highlighter': s:highlighters,
+      \ }),
+      \ }))