When I was in a folder and tried to edit multiple files using glob pattern with the following Neovim command:

:edit *.vim


I was surprised to find that Neovim gives the following error message:

E77: Too many file names.

This is because the command :edit only supports editing one file. There are several ways to open multiple files at once.

# Use argument list

We can Neovim’s builtin in argument list feature to open multiple files. When we open Neovim from command line with multiple files, argument list will be filled with a list of file names. To replace the argument list with new file names, we can use :args {glob_pattern} or :next {glob_pattern}.

For example, to open all files in current directory with extension .vim, use :args *.vim or :next *.vim. You can then traverse the list of files using : next and :previous command.

For more info, see :h argument-list.

# Define your own custom command

The second way is to define a custom :Edit command that can take glob patterns. Something like the following should work:

function! MultipleEdit(p_list)
for p in a:p_list
for c in glob(p, 0, 1)
execute 'edit ' . c
endfor
endfor
endfunction

command! -bar -bang -nargs=+ -complete=file Edit call MultipleEdit([<f-args>])


Then we can use :Edit *.vim or :Edit *.vim *.py to open multiple files.