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 built-in 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.