diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 7ea768aef5..170d2d0377 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() :Open < + *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 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 is left to the user Examples: >vim diff --git a/runtime/doc/tags b/runtime/doc/tags index fa4709224c..acb2251019 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 51592f09be..09f5ad2c43 100644 --- a/runtime/plugin/openPlugin.vim +++ b/runtime/plugin/openPlugin.vim @@ -3,12 +3,20 @@ vim9script # Vim runtime support library # # Maintainer: The Vim Project -# 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()) -command -complete=file -nargs=1 Open vim9.Open(trim()) + +# 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()) const no_gx = get(g:, "nogx", get(g:, "netrw_nogx", false)) if !no_gx