runtime(openPlugin): Add URLOpen to not expand special chars

closes: #17424

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2025-06-04 21:59:01 +02:00
parent dfed077e06
commit a2dd40c057
2 changed files with 12 additions and 5 deletions

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.1. Last change: 2025 Apr 02 *eval.txt* For Vim version 9.1. Last change: 2025 Jun 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -5149,6 +5149,10 @@ executable. It takes the following arguments:
filetype string filetype string
executable string executable string
*package-open*
The |:Open| and |:Launch| command are provided by the included plugin
$VIMRUNTIME/plugin/openPlugin.vim
*dist#vim9#Open()* *:Open* *:URLOpen* *dist#vim9#Open()* *:Open* *:URLOpen*
*g:Openprg* *gx* *g:Openprg* *gx*
dist#vim9#Open(file: string) ~ dist#vim9#Open(file: string) ~
@ -5159,6 +5163,9 @@ string specified in the variable is used instead.
The |:Open| user command uses file completion for its argument. The |:Open| user command uses file completion for its argument.
The |:URLOpen| user command works the same but does not perform file
completion and therefore does not expand special characters |cmdline-special|.
This function is by default called using the gx mapping. In visual mode This function is by default called using the gx mapping. In visual mode
tries to open the visually selected text. tries to open the visually selected text.
@ -5176,11 +5183,8 @@ NOTE: Escaping of the path is automatically applied.
Usage: >vim Usage: >vim
:call dist#vim9#Open(<path>) :call dist#vim9#Open(<path>)
:Open <path> :Open <path>
:URLOpen <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) ~ dist#vim9#Launch(file: string) ~

View File

@ -17,6 +17,9 @@ command -complete=shellcmd -nargs=1 Launch vim9.Launch(trim(<q-args>))
# technically, -nargs=1 is correct, but this throws E480: No match # technically, -nargs=1 is correct, but this throws E480: No match
# when the argument contains a wildchar on Windows # when the argument contains a wildchar on Windows
command -complete=file -nargs=* Open vim9.Open(trim(<q-args>)) command -complete=file -nargs=* Open vim9.Open(trim(<q-args>))
# Use URLOpen when you don't want completion to happen
# (or because you want to avoid cmdline-special)
command -nargs=1 URLOpen vim9.Open(trim(<q-args>))
const no_gx = get(g:, "nogx", get(g:, "netrw_nogx", false)) const no_gx = get(g:, "nogx", get(g:, "netrw_nogx", false))
if !no_gx if !no_gx