Mercurial > vim
diff runtime/doc/vim9.txt @ 19473:b09afbebffee v8.2.0294
patch 8.2.0294: cannot use Ex command that is also a function name
Commit: https://github.com/vim/vim/commit/5b1c8fe3d588ab450d4646a0088db4efda88200a
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Feb 21 18:42:43 2020 +0100
patch 8.2.0294: cannot use Ex command that is also a function name
Problem: Cannot use Ex command that is also a function name.
Solution: Recognize an Ex command by a colon prefix.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 21 Feb 2020 18:45:06 +0100 |
parents | 7be3663e2f2b |
children | c27837cbe922 |
line wrap: on
line diff
--- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 8.2. Last change: 2020 Feb 13 +*vim9.txt* For Vim version 8.2. Last change: 2020 Feb 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -140,6 +140,13 @@ identifier or can't be an Ex command. I "foobar"->Process() " does NOT work eval "foobar"->Process() " works +In case there is ambiguity between a function name and an Ex command, use ":" +to make clear you want to use the Ex command. For example, there is both the +`:substitute` command and the `substitute()` function. When the line starts +with `substitute(` this will use the function, prepend a colon to use the +command instead: > + :substitute(pattern(replacement( + No curly braces expansion ~ @@ -175,6 +182,9 @@ White space is not allowed: call Func(arg) " OK call Func( \ arg) " OK + call Func( + \ arg " OK + \ ) Conditions and expressions ~ @@ -254,6 +264,12 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHI :enddef End of a function defined with `:def`. +If the script the function is defined in is Vim9 script, then script-local +variables can be accessed without the "s:" prefix. They must be defined +before the function. If the script the function is defined in is legacy +script, then script-local variables must be accessed with the "s:" prefix. + + *:disa* *:disassemble* :disa[ssemble] {func} Show the instructions generated for {func}. This is for debugging and testing.