runtime(openPlugin): fix E480 when opening URLs with wildcards on Windows Commit: https://github.com/vim/vim/commit/9301b437bca880c10921a7d0369d671a716e85f2 Author: Christian Brabandt <c...@256bit.org> Date: Wed Apr 2 19:32:03 2025 +0200
runtime(openPlugin): fix E480 when opening URLs with wildcards on Windows This might be a bug in Windows Vim, as when using the following command it throws E480: ``` :com! -complete=file -nargs=1 :Echo echo <q-args> :Echo ? E480: No match ? ``` Work-around this by using `-nargs=*` to allow more arguments, even though this is not completely correct. fixes: #17029 Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 7ea768aef..170d2d037 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.1. Last change: 2025 Mar 30 +*eval.txt* For Vim version 9.1. Last change: 2025 Apr 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -5149,7 +5149,7 @@ executable. It takes the following arguments: filetype string executable string - *dist#vim9#Open()* *:Open* + *dist#vim9#Open()* *:Open* *:URLOpen* *g:Openprg* *gx* dist#vim9#Open(file: string) ~ @@ -5157,6 +5157,8 @@ Opens `path` with the system default handler (macOS `open`, Windows `explorer.exe`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the string specified in the variable is used instead. +The |:Open| user command uses file completion for its argument. + This function is by default called using the gx mapping. In visual mode tries to open the visually selected text. @@ -5175,13 +5177,18 @@ Usage: >vim :call dist#vim9#Open(<path>) :Open <path> < + *package-open* +The |:Open| and |:Launch| command are provided by the included plugin +$VIMRUNTIME/plugin/openPlugin.vim - *dist#vim9#Launch()* *:Launch* + *dist#vim9#Launch()* *:Launch* dist#vim9#Launch(file: string) ~ Launches <args> with the appropriate system programs. Intended for launching GUI programs within Vim. +The |:Launch| user command uses shell completion for its first argument. + NOTE: escaping of <args> is left to the user Examples: >vim diff --git a/runtime/doc/tags b/runtime/doc/tags index fa4709224..acb225101 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2188,6 +2188,7 @@ $quote eval.txt /*$quote* :TermdebugCommand terminal.txt /*:TermdebugCommand* :Texplore pi_netrw.txt /*:Texplore* :Tutor pi_tutor.txt /*:Tutor* +:URLOpen eval.txt /*:URLOpen* :Until terminal.txt /*:Until* :Up terminal.txt /*:Up* :UseVimball pi_vimball.txt /*:UseVimball* @@ -9448,6 +9449,7 @@ package-hlyank usr_05.txt /*package-hlyank* package-justify usr_25.txt /*package-justify* package-matchit usr_05.txt /*package-matchit* package-nohlsearch usr_05.txt /*package-nohlsearch* +package-open eval.txt /*package-open* package-termdebug terminal.txt /*package-termdebug* package-translate_example repeat.txt /*package-translate_example* package-translation repeat.txt /*package-translation* diff --git a/runtime/plugin/openPlugin.vim b/runtime/plugin/openPlugin.vim index 51592f09b..09f5ad2c4 100644 --- a/runtime/plugin/openPlugin.vim +++ b/runtime/plugin/openPlugin.vim @@ -3,12 +3,20 @@ vim9script # Vim runtime support library # # Maintainer: The Vim Project <https://github.com/vim/vim> -# Last Change: 2025 Feb 01 +# Last Change: 2025 Apr 02 + +if exists("g:loaded_openPlugin") || &cp + finish +endif +g:loaded_openPlugin = 1 import autoload 'dist/vim9.vim' command -complete=shellcmd -nargs=1 Launch vim9.Launch(trim(<q-args>)) -command -complete=file -nargs=1 Open vim9.Open(trim(<q-args>)) + +# technically, -nargs=1 is correct, but this throws E480: No match +# when the argument contains a wildchar on Windows +command -complete=file -nargs=* Open vim9.Open(trim(<q-args>)) const no_gx = get(g:, "nogx", get(g:, "netrw_nogx", false)) if !no_gx -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1u029D-00Ds6a-5p%40256bit.org.