Vim Menu for Tab Completion

When you are working on the Vim command line, you can press the Tab key to complete the current command. Vim will fill in a complete file name or option depending on what letters you've typed so far. Then, each press of Tab will cycle through the possible completions. Each time the command will be fully typed. And each possible completion is based on only what the user typed.

One way to preview possible completions is by using Ctrl-D. To see this, type as much of your command as you want. Then press Ctrl-D. This prints all the options above the command line. But none of these can be selected. They're just visual aids for you.

It would be nice if I could select from among the possible completions.

Set 'wildmenu'

Vim is able to provide a dynamic menu which will give you a list of options. This list pops up above the command line. And you can use the arrow keys or tab key to select which option you want. After selecting your option, you would press the Enter key to execute the complete command.

You need a vimrc file. I have mine saved here:


To enable the menu, you have to add the following options to your vimrc file and save.

set wildmenu
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx

'wildignore' specifies a list of file types which won't be offered while using tab completion.

After saving your vimrc, close Vim and reopen it.

Now, when you press Tab to complete a command, you will be presented with a menu.

For example, pressing Tab after ":help vimrc" shows the following options above the command line:

vimrc  .vimrc  _vimrc  vimrc-intro  vimrc-filetype  vimrc_example.vim ...
:help vimrc

By default, the 'wildmenu' option shows possible completions horizontally. There is an alternative menu which will show completions vertically.

Add the pum option to show the vertical menu instead.

set wildmenu
set wildoptions=pum
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx


Tab Completion | Vim Help

c_Ctrl-D | Vim Help

'wildmenu' example | freeCodeCamp

vimrc | Vim Help

'wildmenu' and "pum" menu | Vim Help

'wildoptions' | Vim Help

'wildmode' | Vim Help

Created: Sunday, October 23, 2022

Updated: Sunday, October 23, 2022