Merge remote-tracking branch 'vim/master'

This commit is contained in:
Yee Cheng Chin
2025-08-04 23:42:22 -07:00
733 changed files with 6723 additions and 3008 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ freebsd_task:
- sudo -u cirrus make test
on_failure:
test_artifacts:
name: "Cirrus-CI-freebsd-failed-tests"
name: "Cirrus-${CIRRUS_BUILD_ID}-freebsd-failed-tests"
path: |
runtime/indent/testdir/*.fail
runtime/syntax/testdir/failed/*
+1 -1
View File
@@ -7,7 +7,7 @@ runs:
uses: actions/upload-artifact@v4
with:
# Name of the artifact to upload.
name: ${{ github.workflow }}-${{ github.job }}-${{ join(matrix.*, '-') }}-failed-tests
name: GH-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.job }}-${{ join(matrix.*, '-') }}-failed-tests
# A file, directory or wildcard pattern that describes what
# to upload.
+43 -1
View File
@@ -3,7 +3,7 @@ vim9script noclear
# Vim completion script
# Language: C
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2024 Jun 06
# Last Change: 2025 Jul 24
# Rewritten in Vim9 script by github user lacygoill
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
@@ -121,6 +121,10 @@ export def Complete(findstart: bool, abase: string): any # {{{1
endif
endwhile
if complete_check()
return v:none
endif
# Find the variable items[0].
# 1. in current function (like with "gd")
# 2. in tags file(s) (like with ":tag")
@@ -135,6 +139,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
# Handle multiple declarations on the same line.
var col2: number = col - 1
while line[col2] != ';'
if complete_check()
return res
endif
--col2
endwhile
line = line[col2 + 1 :]
@@ -145,6 +152,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
# declaration.
var col2: number = col - 1
while line[col2] != ','
if complete_check()
return res
endif
--col2
endwhile
if line[col2 + 1 : col - 1] =~ ' *[^ ][^ ]* *[^ ]'
@@ -215,6 +225,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
res = []
for i: number in len(diclist)->range()
if complete_check()
return res
endif
# New ctags has the "typeref" field. Patched version has "typename".
if diclist[i]->has_key('typename')
res = res->extend(diclist[i]['typename']->StructMembers(items[1 :], true))
@@ -246,6 +259,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
var last: number = len(items) - 1
var brackets: string = ''
while last >= 0
if complete_check()
return res
endif
if items[last][0] != '['
break
endif
@@ -311,6 +327,9 @@ def Dict2info(dict: dict<any>): string # {{{1
# Use all the items in dictionary for the "info" entry.
var info: string = ''
for k: string in dict->keys()->sort()
if complete_check()
return info
endif
info ..= k .. repeat(' ', 10 - strlen(k))
if k == 'cmd'
info ..= dict['cmd']
@@ -346,6 +365,9 @@ def ParseTagline(line: string): dict<any> # {{{1
endwhile
endif
for i: number in range(n + 1, len(l) - 1)
if complete_check()
return d
endif
if l[i] == 'file:'
d['static'] = 1
elseif l[i] !~ ':'
@@ -441,6 +463,9 @@ def Nextitem( # {{{1
# Try to recognize the type of the variable. This is rough guessing...
var res: list<dict<string>>
for tidx: number in len(tokens)->range()
if complete_check()
return res
endif
# Skip tokens starting with a non-ID character.
if tokens[tidx] !~ '^\h'
@@ -467,6 +492,11 @@ def Nextitem( # {{{1
# Use the tags file to find out if this is a typedef.
var diclist: list<dict<any>> = taglist('^' .. tokens[tidx] .. '$')
for tagidx: number in len(diclist)->range()
if complete_check()
return res
endif
var item: dict<any> = diclist[tagidx]
# New ctags has the "typeref" field. Patched version has "typename".
@@ -559,6 +589,9 @@ def StructMembers( # {{{1
endif
if !cached
while 1
if complete_check()
return []
endif
execute 'silent! keepjumps noautocmd '
.. n .. 'vimgrep ' .. '/\t' .. typename .. '\(\t\|$\)/j '
.. fnames
@@ -581,6 +614,9 @@ def StructMembers( # {{{1
var idx: number = 0
var target: string
while 1
if complete_check()
return []
endif
if idx >= len(items)
target = '' # No further items, matching all members
break
@@ -619,6 +655,9 @@ def StructMembers( # {{{1
# Skip over next [...] items
++idx
while 1
if complete_check()
return matches
endif
if idx >= len(items)
return matches # No further items, return the result.
endif
@@ -646,6 +685,9 @@ def SearchMembers( # {{{1
# When "all" is true find all, otherwise just return 1 if there is any member.
var res: list<dict<string>>
for i: number in len(matches)->range()
if complete_check()
return res
endif
var typename: string = ''
var line: string
if matches[i]->has_key('dict')
+31 -36
View File
@@ -2,12 +2,9 @@ vim9script
# Language: Vim script
# Maintainer: github user lacygoill
# Last Change: 2025 Apr 13
# Last Change: 2025 Jul 25
#
# Includes changes from The Vim Project:
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
# - 2024 Nov 08: Fix indent after :silent! function (D. Kearns via #16009)
# - 2024 Dec 26: Fix indent for enums (Jim Zhou via #16293)
# NOTE: Whenever you change the code, make sure the tests are still passing:
#
@@ -23,9 +20,8 @@ def IndentMoreInBracketBlock(): number # {{{2
if get(g:, 'vim_indent', {})
->get('more_in_bracket_block', false)
return shiftwidth()
else
return 0
endif
return 0
enddef
def IndentMoreLineContinuation(): number # {{{2
@@ -35,9 +31,8 @@ def IndentMoreLineContinuation(): number # {{{2
if n->typename() == 'string'
return n->eval()
else
return n
endif
return n
enddef
# }}}2
@@ -145,7 +140,7 @@ const HEREDOC_OPERATOR: string = '\s=<<\s\@=\%(\s\+\%(trim\|eval\)\)\{,2}'
# A better regex would be:
#
# [^-+*/%.:# \t[:alnum:]\"|]\@=.\|->\@!\%(=\s\)\@!\|[+*/%]\%(=\s\)\@!
# [^-+*/%.:#[:blank:][:alnum:]\"|]\|->\@!\%(=\s\)\@!\|[+*/%]\%(=\s\)\@!
#
# But sometimes, it can be too costly and cause `E363` to be given.
const PATTERN_DELIMITER: string = '[-+*/%]\%(=\s\)\@!'
@@ -193,10 +188,9 @@ const MODIFIERS: dict<string> = {
patterns =<< trim eval END
argdo\>!\=
bufdo\>!\=
cdo\>!\=
[cl]f\=do\>!\=
folddoc\%[losed]\>
foldd\%[oopen]\>
ldo\=\>!\=
tabdo\=\>
windo\>
au\%[tocmd]\>!\=.*
@@ -290,9 +284,9 @@ patterns = []
for kwds: list<string> in BLOCKS
for kwd: string in kwds[0 : -2]
if MODIFIERS->has_key(kwd->Unshorten())
patterns += [$'\%({MODIFIERS[kwd]}\)\={kwd}']
patterns->add($'\%({MODIFIERS[kwd]}\)\={kwd}')
else
patterns += [kwd]
patterns->add(kwd)
endif
endfor
endfor
@@ -348,7 +342,8 @@ patterns =<< trim eval END
{'\'}<argd\%[elete]\s\+\*\s*$
\<[lt]\=cd!\=\s\+-\s*$
\<norm\%[al]!\=\s*\S\+$
\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)map!\=\s
\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)\=map!\=\s
\<set\%(\%[global]\|\%[local]\)\>.*,$
{PLUS_MINUS_COMMAND}
END
@@ -430,6 +425,9 @@ export def Expr(lnum = v:lnum): number # {{{2
elseif line_A.lnum->IsRightBelow('HereDoc')
var ind: number = b:vimindent.startindent
unlet! b:vimindent
if line_A.text =~ ENDS_BLOCK_OR_CLAUSE
return ind - shiftwidth()
endif
return ind
endif
@@ -444,9 +442,8 @@ export def Expr(lnum = v:lnum): number # {{{2
if line_A.text =~ BACKSLASH_AT_SOL
if line_B.text =~ BACKSLASH_AT_SOL
return Indent(line_B.lnum)
else
return Indent(line_B.lnum) + IndentMoreLineContinuation()
endif
return Indent(line_B.lnum) + IndentMoreLineContinuation()
endif
if line_A->AtStartOf('FuncHeader')
@@ -459,9 +456,8 @@ export def Expr(lnum = v:lnum): number # {{{2
unlet! b:vimindent
if line_A.text =~ ENDS_FUNCTION
return startindent
else
return startindent + shiftwidth()
endif
return startindent + shiftwidth()
endif
var past_bracket_block: dict<any>
@@ -542,8 +538,9 @@ export def Expr(lnum = v:lnum): number # {{{2
if line_B.text =~ STARTS_CURLY_BLOCK
return Indent(line_B.lnum) + shiftwidth() + IndentMoreInBracketBlock()
endif
elseif line_A.text =~ CLOSING_BRACKET_AT_SOL
if line_A.text =~ CLOSING_BRACKET_AT_SOL
var start: number = MatchingOpenBracket(line_A)
if start <= 0
return -1
@@ -565,9 +562,8 @@ export def Expr(lnum = v:lnum): number # {{{2
var block_start: number = SearchPairStart(start, middle, end)
if block_start > 0
return Indent(block_start)
else
return -1
endif
return -1
endif
var base_ind: number
@@ -591,8 +587,7 @@ export def Expr(lnum = v:lnum): number # {{{2
endif
endif
var ind: number = base_ind + Offset(line_A, line_B)
return [ind, 0]->max()
return base_ind + Offset(line_A, line_B)
enddef
def g:GetVimIndent(): number # {{{2
@@ -611,29 +606,31 @@ def Offset( # {{{2
if line_B->AtStartOf('FuncHeader')
&& IsInInterface()
return 0
endif
# increase indentation inside a block
elseif line_B.text =~ STARTS_NAMED_BLOCK
if line_B.text =~ STARTS_NAMED_BLOCK
|| line_B->EndsWithCurlyBlock()
# But don't indent if the line starting the block also closes it.
if line_B->AlsoClosesBlock()
return 0
endif
# Indent twice for a line continuation in the block header itself, so that
# we can easily distinguish the end of the block header from the start of
# the block body.
elseif (line_B->EndsWithLineContinuation()
if (line_B->EndsWithLineContinuation()
&& !line_A.isfirst)
|| (line_A.text =~ LINE_CONTINUATION_AT_SOL
&& line_A.text !~ PLUS_MINUS_COMMAND)
|| line_A.text->Is_IN_KeywordForLoop(line_B.text)
return 2 * shiftwidth()
else
return shiftwidth()
endif
return shiftwidth()
endif
# increase indentation of a line if it's the continuation of a command which
# started on a previous line
elseif !line_A.isfirst
if !line_A.isfirst
&& (line_B->EndsWithLineContinuation()
|| line_A.text =~ LINE_CONTINUATION_AT_SOL)
&& !(line_B->EndsWithComma() && line_A.lnum->IsInside('EnumBlock'))
@@ -653,12 +650,11 @@ def HereDocIndent(line_A: string): number # {{{2
# will need to be indented relative to the start of the heredoc. It
# must know where it starts; it needs the cache.
return 0
else
var ind: number = b:vimindent.startindent
# invalidate the cache so that it's not used for the next heredoc
unlet! b:vimindent
return ind
endif
var ind: number = b:vimindent.startindent
# invalidate the cache so that it's not used for the next heredoc
unlet! b:vimindent
return ind
endif
# In a non-trimmed heredoc, all of leading whitespace is semantic.
@@ -700,7 +696,7 @@ def HereDocIndent(line_A: string): number # {{{2
b:vimindent.startindent = new_startindent
endif
return [0, Indent(v:lnum) + b:vimindent.offset]->max()
return Indent(v:lnum) + b:vimindent.offset
enddef
def CommentIndent(): number # {{{2
@@ -727,9 +723,8 @@ def CommentIndent(): number # {{{2
endif
if getline(next) =~ ENDS_BLOCK
return ind + shiftwidth()
else
return ind
endif
return ind
enddef
def BracketBlockIndent(line_A: dict<any>, block: dict<any>): number # {{{2
+2 -2
View File
@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.1. Last change: 2025 Jul 21
*builtin.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12370,7 +12370,7 @@ wildtrigger() *wildtrigger()*
produce a beep when no matches are found and generally
operates more quietly. This makes it suitable for triggering
completion automatically, such as from an |:autocmd|.
*cmdline-autocompletion*
*cmdline-autocompletion*
Example: To make the completion menu pop up automatically as
you type on the command line, use: >
autocmd CmdlineChanged [:/?] call wildtrigger()
+15 -16
View File
@@ -1,4 +1,4 @@
*develop.txt* For Vim version 9.1. Last change: 2025 Jul 21
*develop.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -297,16 +297,16 @@ count.
==============================================================================
3. Assumptions *design-assumptions*
The following sections define the portability and compatibility constraints that
all Vim code and build tools must adhere to.
The following sections define the portability and compatibility constraints
that all Vim code and build tools must adhere to.
MAKEFILES *assumptions-makefiles*
*POSIX.1-2001*
Vims main Makefiles target maximum portability, relying solely on features
defined in POSIX.1-2001 `make` and ignoring later POSIX standards or
GNU/BSD extensions. In practical terms, avoid:
Vim's main Makefiles target maximum portability, relying solely on features
defined in POSIX.1-2001 `make` and ignoring later POSIX standards or GNU/BSD
extensions. In practical terms, avoid:
% pattern rules
modern assignment (`:=`, `::=`) outside POSIX.1-2001
@@ -314,19 +314,18 @@ GNU/BSD extensions. In practical terms, avoid:
order-only prerequisites (`|`) or automatic directory creation
GNU/BSD conditionals (`ifdef`, `ifndef`, `.for`/`.endfor`, …)
Since POSIX.1-2001 supports only traditional suffix rules, every object
built in a separate directory must have an explicit rule. For example:
Since POSIX.1-2001 supports only traditional suffix rules, every object built
in a separate directory must have an explicit rule. For example:
objects/evalbuffer.o: evalbuffer.c
$(CCC) -o $@ evalbuffer.c
This verbosity ensures that the same Makefile builds Vim unchanged with
the default `make` on Linux, *BSD, macOS, Solaris, AIX, HP-UX and virtually
any Unix-like OS.
This verbosity ensures that the same Makefile builds Vim unchanged with the
default `make` on Linux, *BSD, macOS, Solaris, AIX, HP-UX and virtually any
Unix-like OS.
Some platform-specific Makefiles (e.g., for Windows, NSIS, or Cygwin) may
use more advanced features when compatibility with basic make is not
required.
Some platform-specific Makefiles (e.g., for Windows, NSIS, or Cygwin) may use
more advanced features when compatibility with basic make is not required.
C COMPILER *assumptions-C-compiler*
@@ -343,8 +342,8 @@ In addition, the following two `C99` features are explicitly allowed:
`//` comments, as required by |style-comments|;
the `_Bool` type.
Platform-specific code may use any newer compiler features supported on
that platform.
Platform-specific code may use any newer compiler features supported on that
platform.
SIZE OF VARIABLES *assumptions-variables*
+2 -2
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.1. Last change: 2025 Jul 20
*eval.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3327,7 +3327,7 @@ text...
CODE
<
*E121*
:let {var-name} .. List the value of variable {var-name}. Multiple
:let {var-name} ... List the value of variable {var-name}. Multiple
variable names may be given. Special names recognized
here: *E738*
g: global variables
+3 -4
View File
@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 9.1. Last change: 2024 Nov 17
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Jul 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -658,9 +658,8 @@ X11R5 with a library for X11R6 probably doesn't work (although the linking
won't give an error message, Vim will crash later).
*gui-wayland*
Initial support for the Wayland display server protocol has landed in patch
9.1.0064. To enable it, you need to set the environment variable
"$GVIM_ENABLE_WAYLAND" in your shell.
Support for the Wayland display server protocol has landed in patch
9.1.0064.
Note: The Wayland protocol is subject to some restrictions, so the following
functions won't work: |getwinpos()|, |getwinposx()|, |getwinposy()| and the
+18 -2
View File
@@ -1,4 +1,4 @@
*insert.txt* For Vim version 9.1. Last change: 2025 Jul 17
*insert.txt* For Vim version 9.1. Last change: 2025 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1133,6 +1133,22 @@ Stop completion *compl-stop*
CTRL-X CTRL-Z Stop completion without changing the text.
AUTOCOMPLETION *ins-autocompletion*
Vim can display a completion menu as you type, similar to using |i_CTRL-N|,
but triggered automatically. See |'autocomplete'|. The menu items are
collected from the sources listed in the |'complete'| option.
Unlike manual |i_CTRL-N| completion, this mode uses a decaying timeout to keep
Vim responsive. Sources earlier in the |'complete'| list are given more time
(higher priority), but every source is guaranteed a time slice, however small.
This mode is fully compatible with other completion modes. You can invoke
any of them at any time by typing |CTRL-X|, which temporarily suspends
autocompletion. To use |i_CTRL-N| specifically, press |CTRL-E| first to
dismiss the popup menu (see |complete_CTRL-E|).
FUNCTIONS FOR FINDING COMPLETIONS *complete-functions*
This applies to 'completefunc', 'thesaurusfunc' and 'omnifunc'.
@@ -1475,7 +1491,7 @@ Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
For Exuberant ctags, version 5.6 or later is recommended. For version 5.5.4
you should add a patch that adds the "typename:" field:
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
https://ftp.nluug.nl/pub/vim/unstable/patches/ctags-5.5.4.patch
A compiled .exe for MS-Windows can be found at:
http://ctags.sourceforge.net/
https://github.com/universal-ctags/ctags-win32
+14 -4
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2025 Jul 21
*options.txt* For Vim version 9.1. Last change: 2025 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -908,6 +908,13 @@ A jump table for the options with a short description can be found at |Q_op|.
the current directory won't change when navigating to it.
Note: When this option is on some plugins may not work.
*'autocomplete'* *'ac'* *'noautocomplete'* *'noac'*
'autocomplete' 'ac' boolean (default off)
global
{only available on platforms with timing support}
When on, Vim shows a completion menu as you type, similar to using
|i_CTRL-N|, but triggered automatically. See |ins-autocompletion|.
*'autoindent'* *'ai'* *'noautoindent'* *'noai'*
'autoindent' 'ai' boolean (default off)
local to buffer
@@ -2144,9 +2151,9 @@ A jump table for the options with a short description can be found at |Q_op|.
If the Dict returned by the {func} includes {"refresh": "always"},
the function will be invoked again whenever the leading text
changes.
If generating matches is potentially slow, |complete_check()|
should be used to avoid blocking and preserve editor
responsiveness.
If generating matches is potentially slow, call
|complete_check()| periodically to keep Vim responsive. This
is especially important for |ins-autocompletion|.
F equivalent to using "F{func}", where the function is taken from
the 'completefunc' option.
o equivalent to using "F{func}", where the function is taken from
@@ -2293,6 +2300,9 @@ A jump table for the options with a short description can be found at |Q_op|.
completion in the preview window. Only works in
combination with "menu" or "menuone".
Only "fuzzy", "popup", "popuphidden" and "preview" have an effect when
'autocomplete' is enabled.
This option does not apply to |cmdline-completion|. See 'wildoptions'
for that.
+12 -4
View File
@@ -1,4 +1,4 @@
*os_amiga.txt* For Vim version 9.1. Last change: 2010 Aug 14
*os_amiga.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -111,12 +111,12 @@ would be better to enter:
vim --noplugins <of course you can add a file>
Installation ~
Installation of a binary archive ~
1) Please copy the binary 'VIM' file to c:
2) Get the Vim runtime package from:
2) Get the Vim runtime package from (Note: that server is no longer updated):
ftp://ftp.vim.org/pub/vim/amiga/vim62rt.tgz
https://ftp.nluug.nl/pub/vim/amiga/vim90src.tgz
and unpack it in your 'Apps' directory of the MorphOS installation. For me
this would create following directory hierarchy:
@@ -143,5 +143,13 @@ Installation ~
Cls
;End VIM
Compiling~
You can download the Vim source code from the official Vim site:
https://github.com/vim/vim/archive/refs/heads/master.zip
Or using git: >
git clone https://github.com/vim/vim.git
For compiling see "src/INSTALLami.txt"
vim:tw=78:ts=8:noet:ft=help:norl:
+12 -4
View File
@@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 9.1. Last change: 2024 May 11
*os_vms.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM REFERENCE MANUAL
@@ -33,10 +33,18 @@ Vim on other operating systems.
2. Download files *vms-download*
You can download the Vim source code by ftp from the official Vim site:
ftp://ftp.vim.org/pub/vim/
You can download the Vim source code from the official Vim site:
https://github.com/vim/vim/archive/refs/heads/master.zip
Or using git: >
git clone https://github.com/vim/vim.git
Older release archives are also available at:
https://ftp.nluug.nl/pub/vim/
ftp://ftp.nluug.nl/pub/vim/
Or use one of the mirrors:
ftp://ftp.vim.org/pub/vim/MIRRORS
https://ftp.nluug.nl/pub/vim/MIRRORS
Note: the ftp server has been retired and is no longer updated.
You can download precompiled executables from:
http://www.polarhome.com/vim/
-12
View File
@@ -90,7 +90,6 @@ Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
Marked Files: Grep..................................|netrw-mg|
Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
Marked Files: Moving................................|netrw-mm|
Marked Files: Printing..............................|netrw-mp|
Marked Files: Sourcing..............................|netrw-ms|
Marked Files: Setting the Target Directory..........|netrw-mt|
Marked Files: Tagging...............................|netrw-mT|
@@ -1066,7 +1065,6 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
mg Apply vimgrep to marked files |netrw-mg|
mh Toggle marked file suffices' presence on hiding list |netrw-mh|
mm Move marked files to marked-file target directory |netrw-mm|
mp Print marked files |netrw-mp|
mr Mark files using a shell-style |regexp| |netrw-mr|
mt Current browsing directory becomes markfile target |netrw-mt|
mT Apply ctags to marked files |netrw-mT|
@@ -2001,7 +1999,6 @@ The following netrw maps make use of marked files:
|netrw-mF| Unmark marked files
|netrw-mg| Apply vimgrep to marked files
|netrw-mm| Move marked files to target
|netrw-mp| Print marked files
|netrw-ms| Netrw will source marked files
|netrw-mt| Set target for |netrw-mm| and |netrw-mc|
|netrw-mT| Generate tags using marked files
@@ -2266,15 +2263,6 @@ from the current window (where one does the mf) to the target.
Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
MARKED FILES: PRINTING *netrw-mp* {{{2
(See |netrw-mf| and |netrw-mr| for how to mark files)
(uses the local marked file list)
When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
What netrw does is open each file in a one-line window, execute hardcopy, then
close the one-line window.
MARKED FILES: SOURCING *netrw-ms* {{{2
(See |netrw-mf| and |netrw-mr| for how to mark files)
(uses the local marked file list)
+2 -1
View File
@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 9.1. Last change: 2025 Jul 16
*quickref.txt* For Vim version 9.1. Last change: 2025 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -607,6 +607,7 @@ Short explanation of each option: *option-list*
'arabic' 'arab' for Arabic as a default second language
'arabicshape' 'arshape' do shaping for Arabic characters
'autochdir' 'acd' change directory to the file in the current window
'autocomplete' 'ac' automatic completion in insert mode
'autoindent' 'ai' take indent for new line from previous line
'autoread' 'ar' autom. read file when changed outside of Vim
'autoshelldir' 'asd' change directory to the shell's current directory
+7 -1
View File
@@ -41,6 +41,7 @@ $quote eval.txt /*$quote*
'] motion.txt /*']*
'^ motion.txt /*'^*
'a motion.txt /*'a*
'ac' options.txt /*'ac'*
'acd' options.txt /*'acd'*
'ai' options.txt /*'ai'*
'akm' options.txt /*'akm'*
@@ -62,6 +63,7 @@ $quote eval.txt /*$quote*
'as' todo.txt /*'as'*
'asd' options.txt /*'asd'*
'autochdir' options.txt /*'autochdir'*
'autocomplete' options.txt /*'autocomplete'*
'autoindent' options.txt /*'autoindent'*
'autoprint' vi_diff.txt /*'autoprint'*
'autoread' options.txt /*'autoread'*
@@ -567,6 +569,7 @@ $quote eval.txt /*$quote*
'mzschemedll' options.txt /*'mzschemedll'*
'mzschemegcdll' options.txt /*'mzschemegcdll'*
'nf' options.txt /*'nf'*
'noac' options.txt /*'noac'*
'noacd' options.txt /*'noacd'*
'noai' options.txt /*'noai'*
'noakm' options.txt /*'noakm'*
@@ -583,6 +586,7 @@ $quote eval.txt /*$quote*
'noas' todo.txt /*'noas'*
'noasd' options.txt /*'noasd'*
'noautochdir' options.txt /*'noautochdir'*
'noautocomplete' options.txt /*'noautocomplete'*
'noautoindent' options.txt /*'noautoindent'*
'noautoread' options.txt /*'noautoread'*
'noautosave' todo.txt /*'noautosave'*
@@ -4671,6 +4675,8 @@ E143 autocmd.txt /*E143*
E1432 vim9.txt /*E1432*
E1433 vim9.txt /*E1433*
E1434 vim9.txt /*E1434*
E1435 vim9class.txt /*E1435*
E1436 vim9class.txt /*E1436*
E144 various.txt /*E144*
E145 starting.txt /*E145*
E146 change.txt /*E146*
@@ -8693,6 +8699,7 @@ inputlist() builtin.txt /*inputlist()*
inputrestore() builtin.txt /*inputrestore()*
inputsave() builtin.txt /*inputsave()*
inputsecret() builtin.txt /*inputsecret()*
ins-autocompletion insert.txt /*ins-autocompletion*
ins-completion insert.txt /*ins-completion*
ins-completion-menu insert.txt /*ins-completion-menu*
ins-expandtab insert.txt /*ins-expandtab*
@@ -9371,7 +9378,6 @@ netrw-mm pi_netrw.txt /*netrw-mm*
netrw-modify pi_netrw.txt /*netrw-modify*
netrw-mouse pi_netrw.txt /*netrw-mouse*
netrw-move pi_netrw.txt /*netrw-move*
netrw-mp pi_netrw.txt /*netrw-mp*
netrw-mr pi_netrw.txt /*netrw-mr*
netrw-ms pi_netrw.txt /*netrw-ms*
netrw-mt pi_netrw.txt /*netrw-mt*
+2 -2
View File
@@ -1,4 +1,4 @@
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jun 03
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM USER MANUAL - by Bram Moolenaar
@@ -614,7 +614,7 @@ Summary: *help-summary* >
< for how the '|' is handled in mappings.
15) Command definitions are talked about :h command-topic, so use >
:help command-bar
:help command-bang
< to find out about the '!' argument for custom commands.
16) Window management commands always start with CTRL-W, so you find the
+2 -2
View File
@@ -1,4 +1,4 @@
*usr_23.txt* For Vim version 9.1. Last change: 2020 Dec 19
*usr_23.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM USER MANUAL - by Bram Moolenaar
@@ -118,7 +118,7 @@ Someone sends you an e-mail message, which refers to a file by its URL. For
example:
You can find the information here: ~
ftp://ftp.vim.org/pub/vim/README ~
https://ftp.nluug.nl/pub/vim/README
You could start a program to download the file, save it on your local disk and
then start Vim to edit it.
+25 -45
View File
@@ -1,4 +1,4 @@
*usr_90.txt* For Vim version 9.1. Last change: 2025 Mar 03
*usr_90.txt* For Vim version 9.1. Last change: 2025 Jul 24
VIM USER MANUAL - by Bram Moolenaar
@@ -189,69 +189,49 @@ source code yourself!
==============================================================================
*90.2* MS-Windows
There are two ways to install the Vim program for Microsoft Windows. You can
uncompress several archives, or use a self-installing big archive. Most users
with fairly recent computers will prefer the second method. For the first
one, you will need:
There are several ways to install the Vim program for Microsoft Windows:
- An archive with binaries for Vim.
- The Vim runtime archive.
- A program to unpack the zip files.
1. Official Website Download (Stable)~
To get the Vim archives, look in this file for a mirror near you, this should
provide the fastest download:
Visit the official Vim website at https://www.vim.org to download the latest
stable version. The site links to the Windows installer that works out of the
box for most users.
ftp://ftp.vim.org/pub/vim/MIRRORS
2. Using winget (Windows Package Manager) ~
Or use the home site ftp.vim.org, if you think it's fast enough. Go to the
"pc" directory and you'll find a list of files there. The version number is
embedded in the file name. You will want to get the most recent version.
We will use "82" here, which is version 8.2.
If you prefer using the command line, you can quickly install Vim using
Windows' built-in package manager for the stable version: >
gvim82.exe The self-installing archive.
winget install vim.vim
This is all you need for the second method. Just launch the executable, and
follow the prompts.
Or to download the latest nightly version, use: >
For the first method you must choose one of the binary archives. These are
available:
winget install vim.vim.nightly
gvim82.zip The normal MS-Windows GUI version.
gvim82ole.zip The MS-Windows GUI version with OLE support.
Uses more memory, supports interfacing with
other OLE applications.
vim82w32.zip 32 bit MS-Windows console version.
This method ensures you get an up-to-date version with minimal hassle.
You only need one of them. Although you could install both a GUI and a
console version. You always need to get the archive with runtime files.
3. GitHub Installer (All Architectures) ~
vim82rt.zip The runtime files.
For more control over the installation (or if you're using a specific CPU
architecture like ARM), visit the official GitHub repository:
Use your un-zip program to unpack the files. For example, using the "unzip"
program: >
https://github.com/vim/vim-win32-installer/
cd c:\
unzip path\gvim82.zip
unzip path\vim82rt.zip
This repo provides daily installer and portable zip archives for:
This will unpack the files in the directory "c:\vim\vim82". If you already
have a "vim" directory somewhere, you will want to move to the directory just
above it.
Now change to the "vim\vim82" directory and run the install program: >
- x86 (32-bit)
- x64 (64-bit)
- ARM64
install
Carefully look through the messages and select the options you want to use.
If you finally select "do it" the install program will carry out the actions
you selected.
The install program doesn't move the runtime files. They remain where you
unpacked them.
It's a great option if you want nightly builds or specific configuration
In case you are not satisfied with the features included in the supplied
binaries, you could try compiling Vim yourself. Get the source archive from
the same location as where the binaries are. You need a compiler for which a
makefile exists. Microsoft Visual C, MinGW and Cygwin compilers can be used.
Check the file src/INSTALLpc.txt for hints.
Check the file src/INSTALLpc.txt for hints. You can get the source from:
https://github.com/vim/vim
==============================================================================
*90.3* Upgrading
+2 -2
View File
@@ -1,4 +1,4 @@
*version6.txt* For Vim version 9.1. Last change: 2022 Apr 06
*version6.txt* For Vim version 9.1. Last change: 2025 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12624,7 +12624,7 @@ Solution: Use ":compiler!" to set a compiler globally, otherwise it's local
to the buffer and "b:current_compiler" is used. Give an error
when no compiler script could be found.
Note: updated compiler plugins can be found at
ftp://ftp.vim.org/pub/vim/runtime/compiler/
https://github.com/vim/vim/tree/master/runtime/compiler
Files: runtime/compiler/msvc.vim, runtime/doc/quickfix.txt, src/eval.c,
src/ex_cmds2.c
+3 -1
View File
@@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2025 Jul 21
*version9.txt* For Vim version 9.1. Last change: 2025 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41604,6 +41604,7 @@ Completion~
"preinsert" - highlight to be inserted values
"nearest" - sort completion results by distance to cursor
- new function |wildtrigger()| to trigger wildcard expansion
- Support for Autocompletion has been added |ins-autocompletion|
Platform specific~
-----------------
@@ -41809,6 +41810,7 @@ Ex-Commands: ~
Options: ~
'autocompletion' Enable auto completion |ins-autocompletion|
'chistory' Size of the quickfix stack |quickfix-stack|.
'completefuzzycollect' Enable fuzzy collection of candidates for (some)
|ins-completion| modes
+4 -2
View File
@@ -1,4 +1,4 @@
*vim9class.txt* For Vim version 9.1. Last change: 2025 Apr 21
*vim9class.txt* For Vim version 9.1. Last change: 2025 Jul 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -584,6 +584,8 @@ protected object methods, class variables and class methods.
An interface can extend another interface using "extends". The sub-interface
inherits all the instance variables and methods from the super interface.
An interface cannot be defined inside a function. *E1436*
==============================================================================
6. More class details *Vim9-class* *Class* *class*
@@ -971,7 +973,7 @@ of that class. Unlike typical object instantiation with the |new()| method,
enum instances cannot be created this way.
An enum can only be defined in a |Vim9| script file. *E1414*
An enum cannot be defined inside a function.
An enum cannot be defined inside a function. *E1435*
*E1415*
An enum name must start with an uppercase letter. The name of an enum value
+3 -2
View File
@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: gpg(1) configuration file
" Maintainer: This runtime file is looking for a new maintainer.
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-09-19 (simplify keywordprg #15696)
" Latest Revision: 2025-07-22 (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -17,7 +18,7 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 GpgKeywordPrg
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+--' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'gpg'
\ silent exe ':hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+--' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'gpg'
setlocal iskeyword+=-
setlocal keywordprg=:GpgKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer GpgKeywordPrg'
+2 -2
View File
@@ -2,7 +2,7 @@
" Language: modules.conf(5) configuration file
" Maintainer: This runtime file is looking for a new maintainer.
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-09-20 (remove erroneous endif)
" Latest Revision: 2025-07-22 (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -19,7 +19,7 @@ setlocal formatoptions-=t formatoptions+=croql
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 ModconfKeywordPrg
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'modprobe.d'
\ silent exe ':hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'modprobe.d'
setlocal iskeyword+=-
setlocal keywordprg=:ModconfKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer ModconfKeywordPrg'
+3 -2
View File
@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: mutt RC File
" Maintainer: This runtime file is looking for a new maintainer.
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-09-19 (simplify keywordprg #15696)
" Latest Revision: 2025-07-22 (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -20,7 +21,7 @@ let &l:include = '^\s*source\>'
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 MuttrcKeywordPrg
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'muttrc'
\ silent exe 'hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'muttrc'
setlocal iskeyword+=-
setlocal keywordprg=:MuttrcKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer MuttrcKeywordPrg'
+2 -1
View File
@@ -5,6 +5,7 @@
" 2024 Jan 14 by Vim Project (browsefilter)
" 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
" 2024 Sep 19 by Konfekt (simplify keywordprg #15696)
" 2025 Jul 22 by phanium (use :hor term #17822)
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin") | finish | endif
@@ -51,7 +52,7 @@ endif
if exists('s:pwsh_cmd')
if exists(':terminal') == 2
command! -buffer -nargs=1 GetHelp silent exe 'term ' . s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full "<args>"' . (executable('less') ? ' | less' : '')
command! -buffer -nargs=1 GetHelp silent exe 'hor term ' . s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full "<args>"' . (executable('less') ? ' | less' : '')
else
command! -buffer -nargs=1 GetHelp echo system(s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full <args>')
endif
+2 -1
View File
@@ -3,6 +3,7 @@
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Last Change: 2024 Sep 19 (simplify keywordprg #15696)
" 2024 Jul 22 by Vim project (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -36,7 +37,7 @@ endif
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 ReadlineKeywordPrg
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . '3 readline'
\ silent exe 'hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . '3 readline'
setlocal iskeyword+=-
setlocal keywordprg=:ReadlineKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer ReadlineKeywordPrg'
+2 -1
View File
@@ -7,6 +7,7 @@
" Last Change: 2024 Sep 19 by Vim Project (compiler shellcheck)
" 2024 Dec 29 by Vim Project (improve setting shellcheck compiler)
" 2025 Mar 09 by Vim Project (set b:match_skip)
" 2025 Jul 22 by phanium (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -53,7 +54,7 @@ let s:is_kornshell = get(b:, "is_kornshell", get(g:, "is_kornshell", 0))
if s:is_bash
if exists(':terminal') == 2
command! -buffer -nargs=1 ShKeywordPrg silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
command! -buffer -nargs=1 ShKeywordPrg silent exe ':hor term bash -c "help "<args>" 2>/dev/null || man "<args>""'
else
command! -buffer -nargs=1 ShKeywordPrg echo system('bash -c "help <args>" 2>/dev/null || MANPAGER= man "<args>"')
endif
+2 -2
View File
@@ -2,7 +2,7 @@
" Language: OpenSSH client configuration file
" Maintainer: This runtime file is looking for a new maintainer.
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-09-19 (simplify keywordprg #15696)
" Latest Revision: 2025-07-22 (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -17,7 +17,7 @@ let b:undo_ftplugin = 'setlocal com< cms< fo<'
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 SshconfigKeywordPrg
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '$', '\') . ''' --hilite-search" man ' . 'ssh_config'
\ silent exe 'hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '$', '\') . ''' --hilite-search" man ' . 'ssh_config'
setlocal iskeyword+=-
setlocal keywordprg=:SshconfigKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SshconfigKeywordPrg'
+2 -2
View File
@@ -2,7 +2,7 @@
" Language: sudoers(5) configuration files
" Maintainer: This runtime file is looking for a new maintainer.
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-09-19 (simplify keywordprg #15696)
" Latest Revision: 2025-07-22 (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -18,7 +18,7 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 SudoersKeywordPrg
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('\b' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'sudoers'
\ silent exe ':hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('\b' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'sudoers'
setlocal iskeyword+=-
setlocal keywordprg=:SudoersKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SudoersKeywordPrg'
+2 -2
View File
@@ -2,7 +2,7 @@
" Language: udev(8) rules file
" Maintainer: This runtime file is looking for a new maintainer.
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-09-19 (simplify keywordprg #15696)
" Latest Revision: 2025-07-22 (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -18,7 +18,7 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
if has('unix') && executable('less') && exists(':terminal') == 2
command -buffer -nargs=1 UdevrulesKeywordPrg
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'udev'
\ silent exe ':hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'udev'
setlocal iskeyword+=-
setlocal keywordprg=:UdevrulesKeywordPrg
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer UdevrulesKeywordPrg'
+3 -1
View File
@@ -5,6 +5,8 @@
" Latest Revision: 2024 Sep 19
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh
" Last Change:
" 2025 Jul 23 by Vim Project (use :hor term #17822)
if exists("b:did_ftplugin")
finish
@@ -20,7 +22,7 @@ let b:undo_ftplugin = "setl com< cms< fo< "
if executable('zsh') && &shell !~# '/\%(nologin\|false\)$'
if exists(':terminal') == 2
command! -buffer -nargs=1 ZshKeywordPrg silent exe ':term zsh -c "autoload -Uz run-help; run-help <args>"'
command! -buffer -nargs=1 ZshKeywordPrg silent exe ':hor term zsh -c "autoload -Uz run-help; run-help <args>"'
else
command! -buffer -nargs=1 ZshKeywordPrg echo system('MANPAGER= zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null"')
endif
+22
View File
@@ -196,3 +196,25 @@ silent! function Bar()
return 42
endfunction
" END_INDENT
" START_INDENT
if true
nmap xxx,
else
endif
" END_INDENT
" START_INDENT
if true
var heredoc =<< END
foo
bar
baz
END
endif
" END_INDENT
" START_INDENT
set path=.,,
set clipboard=unnamed,unnamedplus
" END_INDENT
+22
View File
@@ -196,3 +196,25 @@ silent! function Bar()
return 42
endfunction
" END_INDENT
" START_INDENT
if true
nmap xxx,
else
endif
" END_INDENT
" START_INDENT
if true
var heredoc =<< END
foo
bar
baz
END
endif
" END_INDENT
" START_INDENT
set path=.,,
set clipboard=unnamed,unnamedplus
" END_INDENT
+5 -3
View File
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jul 16
" Last Change: 2025 Jul 25
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" If there already is an option window, jump to that one.
@@ -892,13 +892,15 @@ endif
if has("insert_expand")
call <SID>AddOption("complete", gettext("specifies how Insert mode completion works for CTRL-N and CTRL-P"))
call append("$", "\t" .. s:local_to_buffer)
call <SID>OptionL("cfc")
call <SID>AddOption("completefuzzycollect", gettext("use fuzzy collection for specific completion modes"))
call <SID>OptionL("cpt")
call <SID>AddOption("autocomplete", gettext("automatic completion in insert mode"))
call <SID>BinOptionG("ac", &ac)
call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion"))
call <SID>OptionL("cot")
call <SID>AddOption("completeitemalign", gettext("popup menu item align order"))
call <SID>OptionG("cia", &cia)
call <SID>AddOption("completefuzzycollect", gettext("use fuzzy collection for specific completion modes"))
call <SID>OptionL("cfc")
if exists("+completepopup")
call <SID>AddOption("completepopup", gettext("options for the Insert mode completion info popup"))
call <SID>OptionG("cpp", &cpp)
-3
View File
@@ -1,3 +0,0 @@
#!/bin/sh
zip -r editorconfig-vim-$*.zip autoload/* doc/* ftdetect/* plugin/*
+10 -63
View File
@@ -19,7 +19,7 @@ if &cp || exists("g:loaded_netrw")
finish
endif
let g:loaded_netrw = "v183"
let g:loaded_netrw = "v184"
if !has("patch-9.1.1054") && !has('nvim')
echoerr 'netrw needs Vim v9.1.1054'
@@ -4861,7 +4861,6 @@ function s:NetrwMaps(islocal)
nnoremap <buffer> <silent> <nowait> mg :<c-u>call <SID>NetrwMarkFileGrep(1)<cr>
nnoremap <buffer> <silent> <nowait> mh :<c-u>call <SID>NetrwMarkHideSfx(1)<cr>
nnoremap <buffer> <silent> <nowait> mm :<c-u>call <SID>NetrwMarkFileMove(1)<cr>
nnoremap <buffer> <silent> <nowait> mp :<c-u>call <SID>NetrwMarkFilePrint(1)<cr>
nnoremap <buffer> <silent> <nowait> mr :<c-u>call <SID>NetrwMarkFileRegexp(1)<cr>
nnoremap <buffer> <silent> <nowait> ms :<c-u>call <SID>NetrwMarkFileSource(1)<cr>
nnoremap <buffer> <silent> <nowait> mT :<c-u>call <SID>NetrwMarkFileTag(1)<cr>
@@ -4973,7 +4972,6 @@ function s:NetrwMaps(islocal)
nnoremap <buffer> <silent> <nowait> mg :<c-u>call <SID>NetrwMarkFileGrep(0)<cr>
nnoremap <buffer> <silent> <nowait> mh :<c-u>call <SID>NetrwMarkHideSfx(0)<cr>
nnoremap <buffer> <silent> <nowait> mm :<c-u>call <SID>NetrwMarkFileMove(0)<cr>
nnoremap <buffer> <silent> <nowait> mp :<c-u>call <SID>NetrwMarkFilePrint(0)<cr>
nnoremap <buffer> <silent> <nowait> mr :<c-u>call <SID>NetrwMarkFileRegexp(0)<cr>
nnoremap <buffer> <silent> <nowait> ms :<c-u>call <SID>NetrwMarkFileSource(0)<cr>
nnoremap <buffer> <silent> <nowait> mT :<c-u>call <SID>NetrwMarkFileTag(0)<cr>
@@ -5932,39 +5930,6 @@ function s:NetrwMarkFileMove(islocal)
endfunction
" s:NetrwMarkFilePrint: (invoked by mp) This function prints marked files {{{2
" using the hardcopy command. Local marked-file list only.
function s:NetrwMarkFilePrint(islocal)
let curbufnr= bufnr("%")
" sanity check
if !exists("s:netrwmarkfilelist_{curbufnr}") || empty(s:netrwmarkfilelist_{curbufnr})
call netrw#msg#Notify('ERROR', 'there are no marked files in this window (:help netrw-mf)')
return
endif
let curdir= s:NetrwGetCurdir(a:islocal)
if exists("s:netrwmarkfilelist_{curbufnr}")
let netrwmarkfilelist = s:netrwmarkfilelist_{curbufnr}
call s:NetrwUnmarkList(curbufnr,curdir)
for fname in netrwmarkfilelist
if a:islocal
if g:netrw_keepdir
let fname= netrw#fs#ComposePath(curdir,fname)
endif
else
let fname= curdir.fname
endif
1split
" the autocmds will handle both local and remote files
exe "sil NetrwKeepj e ".fnameescape(fname)
hardcopy
q
endfor
2match none
endif
endfunction
" s:NetrwMarkFileRegexp: (invoked by mr) This function is used to mark {{{2
" files when given a regexp (for which a prompt is
" issued) (matches to name of files).
@@ -6195,37 +6160,20 @@ endfunction
" s:NetrwOpenFile: query user for a filename and open it {{{2
function s:NetrwOpenFile(islocal)
let ykeep= @@
call inputsave()
let fname= input("Enter filename: ")
let fname = input("Enter filename: ")
call inputrestore()
" determine if Lexplore is in use
if exists("t:netrw_lexbufnr")
" check if t:netrw_lexbufnr refers to a netrw window
let lexwinnr = bufwinnr(t:netrw_lexbufnr)
if lexwinnr != -1 && exists("g:netrw_chgwin") && g:netrw_chgwin != -1
exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd w"
exe "NetrwKeepj e ".fnameescape(fname)
let @@= ykeep
endif
if empty(fname)
return
endif
" Does the filename contain a path?
if fname !~ '[/\\]'
if exists("b:netrw_curdir")
" save position for benefit of Rexplore
let s:rexposn_{bufnr("%")}= winsaveview()
if b:netrw_curdir =~ '/$'
exe "NetrwKeepj e ".fnameescape(b:netrw_curdir.fname)
else
exe "e ".fnameescape(b:netrw_curdir."/".fname)
endif
endif
else
exe "NetrwKeepj e ".fnameescape(fname)
endif
let @@= ykeep
" save position for benefit of Rexplore
let s:rexposn_{bufnr("%")}= winsaveview()
execute "NetrwKeepj e " . fnameescape(!isabsolutepath(fname)
\ ? netrw#fs#ComposePath(b:netrw_curdir, fname)
\ : fname)
endfunction
" netrw#Shrink: shrinks/expands a netrw or Lexplorer window {{{2
@@ -6425,7 +6373,6 @@ function s:NetrwMenu(domenu)
exe 'sil! menu '.g:NetrwMenuPriority.'.14.8 '.g:NetrwTopLvlMenu.'Marked\ Files.Exe\ Cmd<tab>mx mx'
exe 'sil! menu '.g:NetrwMenuPriority.'.14.9 '.g:NetrwTopLvlMenu.'Marked\ Files.Move\ To\ Target<tab>mm mm'
exe 'sil! menu '.g:NetrwMenuPriority.'.14.10 '.g:NetrwTopLvlMenu.'Marked\ Files.Obtain<tab>O O'
exe 'sil! menu '.g:NetrwMenuPriority.'.14.11 '.g:NetrwTopLvlMenu.'Marked\ Files.Print<tab>mp mp'
exe 'sil! menu '.g:NetrwMenuPriority.'.14.12 '.g:NetrwTopLvlMenu.'Marked\ Files.Replace<tab>R R'
exe 'sil! menu '.g:NetrwMenuPriority.'.14.13 '.g:NetrwTopLvlMenu.'Marked\ Files.Set\ Target<tab>mt mt'
exe 'sil! menu '.g:NetrwMenuPriority.'.14.14 '.g:NetrwTopLvlMenu.'Marked\ Files.Tag<tab>mT mT'
-12
View File
@@ -90,7 +90,6 @@ Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
Marked Files: Grep..................................|netrw-mg|
Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
Marked Files: Moving................................|netrw-mm|
Marked Files: Printing..............................|netrw-mp|
Marked Files: Sourcing..............................|netrw-ms|
Marked Files: Setting the Target Directory..........|netrw-mt|
Marked Files: Tagging...............................|netrw-mT|
@@ -1066,7 +1065,6 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
mg Apply vimgrep to marked files |netrw-mg|
mh Toggle marked file suffices' presence on hiding list |netrw-mh|
mm Move marked files to marked-file target directory |netrw-mm|
mp Print marked files |netrw-mp|
mr Mark files using a shell-style |regexp| |netrw-mr|
mt Current browsing directory becomes markfile target |netrw-mt|
mT Apply ctags to marked files |netrw-mT|
@@ -2001,7 +1999,6 @@ The following netrw maps make use of marked files:
|netrw-mF| Unmark marked files
|netrw-mg| Apply vimgrep to marked files
|netrw-mm| Move marked files to target
|netrw-mp| Print marked files
|netrw-ms| Netrw will source marked files
|netrw-mt| Set target for |netrw-mm| and |netrw-mc|
|netrw-mT| Generate tags using marked files
@@ -2266,15 +2263,6 @@ from the current window (where one does the mf) to the target.
Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
MARKED FILES: PRINTING *netrw-mp* {{{2
(See |netrw-mf| and |netrw-mr| for how to mark files)
(uses the local marked file list)
When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
What netrw does is open each file in a one-line window, execute hardcopy, then
close the one-line window.
MARKED FILES: SOURCING *netrw-ms* {{{2
(See |netrw-mf| and |netrw-mr| for how to mark files)
(uses the local marked file list)
+1 -1
View File
@@ -15,7 +15,7 @@ if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v183"
let g:loaded_netrwPlugin = "v184"
let s:keepcpo = &cpo
set cpo&vim
+1 -1
View File
@@ -1,5 +1,5 @@
# Aap recipe for Portuguese Vim spell files.
# See ftp://ftp.vim.org/pub/vim/runtime/spell/README.txt
# See https://github.com/vim/vim/blob/master/runtime/spell/README.txt
# Use a freshly compiled Vim if it exists.
@if os.path.exists('../../../src/vim'):
+2 -2
View File
@@ -13,7 +13,7 @@ VIMRUNTIME = ../..
# Uncomment this line to use valgrind for memory leaks and extra warnings.
# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=45 --log-file=valgrind.$*
# Trace ruler liveness on demand.
# Trace liveness on demand.
# VIM_SYNTAX_TEST_LOG = `pwd`/testdir/failed/00-TRACE_LOG
# ENVVARS = LC_ALL=C VIM_SYNTAX_TEST_LOG="$(VIM_SYNTAX_TEST_LOG)"
@@ -39,7 +39,7 @@ test:
@# the "vimcmd" file is used by the screendump utils
@echo "../$(VIMPROG)" > testdir/vimcmd
@echo "$(RUN_VIMTEST)" >> testdir/vimcmd
@# Trace ruler liveness on demand.
@# Trace liveness on demand.
@#mkdir -p testdir/failed
@#touch "$(VIM_SYNTAX_TEST_LOG)"
VIMRUNTIME=$(VIMRUNTIME) $(ENVVARS) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim > /dev/null
+79 -20
View File
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
" Last Change: 2025 Jul 18
" Last Change: 2025 Aug 01
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -109,6 +109,7 @@ syn case match
" Function Names {{{2
" GEN_SYN_VIM: vimFuncName, START_STR='syn keyword vimFuncName contained', END_STR=''
" Predefined variable names {{{2
" GEN_SYN_VIM: vimVarName, START_STR='syn keyword vimVimVarName contained', END_STR=''
@@ -120,6 +121,8 @@ syn case match
if s:has("nvim")
syn keyword vimOptionVarName contained channel inccommand mousescroll pumblend redrawdebug scrollback shada shadafile statuscolumn termpastefilter termsync winbar winblend winhighlight
syn keyword vimFuncName contained api_info buffer_exists buffer_name buffer_number chanclose chansend ctxget ctxpop ctxpush ctxset ctxsize dictwatcheradd dictwatcherdel file_readable highlight_exists highlightID jobclose jobpid jobresize jobsend jobstart jobstop jobwait last_buffer_nr menu_get msgpackdump msgpackparse reg_recorded rpcnotify rpcrequest rpcstart rpcstop serverstart serverstop sockconnect stdioopen stdpath termopen test_write_list_log wait
syn match vimFuncName contained "\<nvim_\w\+\>"
syn keyword vimVimVarName contained lua msgpack_types relnum stderr termrequest virtnum
endif
@@ -267,6 +270,8 @@ syn match vimVimVar "\<v:" nextgroup=vimSubscript,vimVimVarName,vimVarNameError
syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscript,vimOptionVarName,vimVarNameError
syn cluster vimSpecialVar contains=vimEnvvar,vimLetRegister,vimOptionVar,vimVimVar
Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+[-+/*%]\=="
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+\.\.="
Vim9 syn match vim9LhsVariable "\s\=\%([bwgt]:\)\=\h[a-zA-Z0-9#_]*\ze\s\+=<<" skipwhite nextgroup=vimLetHeredoc contains=vimVarScope
@@ -468,7 +473,7 @@ syn match vimFunctionName contained
\ contains=vimFunctionError,vimFunctionScope,vimFunctionSID,Tag
syn match vimDefName contained
\ "\%(<[sS][iI][dD]>\|[bwglstav]:\)\=\%([[:alnum:]_#.]\+\|{.\{-1,}}\)\+"
\ nextgroup=vimDefParams,vimCmdSep,vimComment,vim9Comment
\ nextgroup=vimDefTypeParams,vimDefParams,vimCmdSep,vimComment,vim9Comment
\ contains=vimFunctionError,vimFunctionScope,vimFunctionSID,Tag
syn match vimFunction "\<fu\%[nction]\>" skipwhite nextgroup=vimFunctionBang,vimFunctionName,vimFunctionPattern,vimCmdSep,vimComment
@@ -498,8 +503,15 @@ syn region vimDefParams contained
\ end=")"
\ skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError
\ contains=vimDefParam,vim9Comment,vimFunctionParamEquals,vimOperParen
syn region vimDefTypeParams contained
\ matchgroup=Delimiter
\ start="<"
\ end=">"
\ nextgroup=vimDefParams
\ contains=vim9DefTypeParam
syn match vimFunctionParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFunctionParamEquals
syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFunctionParamEquals
syn match vim9DefTypeParam contained "\<\u\w*\>"
syn match vimFunctionParamEquals contained "=" skipwhite nextgroup=@vimExprList
syn match vimFunctionMod contained "\<\%(abort\|closure\|dict\|range\)\>" skipwhite skipempty nextgroup=vimFunctionBody,vimFunctionComment,vimEndfunction,vimFunctionMod,vim9CommentError
@@ -531,7 +543,7 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
syn region vimDefFold
\ start="\<def!"
"\ assume no dict literal in curly-brace name expressions
\ start="\<def\>\s*\%([[:alnum:]_:<>.#]\+\|{.\{-1,}}\)\+("
\ start="\<def\>\s*\%([[:alnum:]_:<>.#]\+\|{.\{-1,}}\)\+[<(]"
\ end="^\s*:\=\s*enddef\>"
\ contains=vimDef
\ extend fold keepend transparent
@@ -573,14 +585,20 @@ if s:vim9script
" Methods {{{3
syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName,vim9ConstructorDefName
syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName
syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams,vim9MethodDefTypeParams contains=@vim9MethodName
syn region vim9MethodDefParams contained
\ matchgroup=Delimiter start="(" end=")"
\ skipwhite skipnl nextgroup=vim9MethodDefBody,vim9MethodDefComment,vimEnddef,vim9MethodDefReturnType,vimCommentError
\ contains=vimDefParam,vim9Comment,vimFunctionParamEquals
syn region vim9MethodDefTypeParams contained
\ matchgroup=Delimiter
\ start="<"
\ end=">"
\ nextgroup=vim9MethodDefParams
\ contains=vim9DefTypeParam
syn match vim9ConstructorDefName contained "\<_\=new\w*\>"
\ nextgroup=vim9ConstructorDefParams
\ nextgroup=vim9ConstructorDefParams,vim9ConstuctorDefTypeParams
\ contains=@vim9MethodName
syn match vim9ConstructorDefParam contained "\<\%(this\.\)\=\h\w*\>"
\ skipwhite nextgroup=vimParamType,vimFunctionParamEquals
@@ -589,6 +607,12 @@ if s:vim9script
\ matchgroup=Delimiter start="(" end=")"
\ skipwhite skipnl nextgroup=vim9MethodDefBody,vim9MethodDefComment,vimEnddef,vimCommentError
\ contains=vim9ConstructorDefParam,vim9Comment,vimFunctionParamEquals
syn region vim9ConstuctorDefTypeParams contained
\ matchgroup=Delimiter
\ start="<"
\ end=">"
\ nextgroup=vim9ConstructorDefParams
\ contains=vim9DefTypeParam
syn region vim9MethodDefReturnType contained
\ start=":\%(\s\|\n\)\@="
@@ -622,8 +646,11 @@ if s:vim9script
syn cluster vim9MethodName contains=vim9MethodName,vim9MethodNameError
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
syn region vim9MethodDefFold contained start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent
syn region vim9MethodDefFold contained start="^\s*:\=def\s\+_\=new\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent
syn region vim9MethodDefFold contained
\ start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\w*[<(]"
\ end="^\s*:\=enddef\>"
\ contains=vim9MethodDef
\ fold keepend extend transparent
endif
syn cluster vim9MethodDef contains=vim9MethodDef,vim9MethodDefFold
@@ -674,12 +701,19 @@ if s:vim9script
syn cluster vim9EnumNameContinue contains=vim9EnumNameContinue,vim9EnumNameContinueComment
" enforce enum value list location
syn match vim9EnumValue contained "\<\a\w*\>" nextgroup=vim9EnumValueArgList,vim9EnumValueListComma,vim9Comment
syn match vim9EnumValue contained "\<\a\w*\>" nextgroup=vim9EnumValueTypeArgs,vim9EnumValueArgList,vim9EnumValueListComma,vim9Comment
syn match vim9EnumValueListComma contained "," skipwhite skipempty nextgroup=vim9EnumValue,vim9EnumValueListCommaComment
syn region vim9EnumValueListCommaComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumValueListCommaComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
syn region vim9EnumValueTypeArgs contained
\ matchgroup=Delimiter
\ start="<\ze\a"
\ end=">"
\ nextgroup=vim9EnumValueArgList
\ contains=@vimType
\ oneline
syn region vim9EnumValueArgList contained
\ matchgroup=vimParenSep start="(" end=")"
\ nextgroup=vim9EnumValueListComma
@@ -703,7 +737,7 @@ if s:vim9script
syn match vim9InterfaceName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends
syn keyword vim9AbstractDef contained def skipwhite nextgroup=vim9AbstractDefName
syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams contains=@vim9MethodName
syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams,vim9AbstractDefTypeParams contains=@vim9MethodName
syn region vim9AbstractDefParams contained
\ matchgroup=Delimiter start="(" end=")"
\ skipwhite skipnl nextgroup=vimDefComment,vim9AbstractDefReturnType,vimCommentError
@@ -713,6 +747,12 @@ if s:vim9script
\ skipwhite skipnl nextgroup=vimDefComment,vimCommentError
\ contains=vimTypeSep
\ transparent
syn region vim9AbstractDefTypeParams contained
\ matchgroup=Delimiter
\ start="<"
\ end=">"
\ nextgroup=vim9AbstractDefParams
\ contains=vim9DefTypeParam
VimFoldi syn region vim9InterfaceBody start="\<interface\>" matchgroup=vimCommand end="\<endinterface\>" contains=@vim9InterfaceBodyList transparent
@@ -1368,9 +1408,20 @@ syn match vimMapLhs contained "\%(.\|\S\)\+" contains=vimCtrlChar,vimNotation,
syn match vimMapLhs contained "\%(.\|\S\)\+\ze\s*$" contains=vimCtrlChar,vimNotation,vimMapLeader skipwhite skipnl nextgroup=vimMapRhsContinue
syn match vimMapBang contained "\a\@1<=!" skipwhite nextgroup=vimMapMod,vimMapLhs
syn match vimMapMod contained "\%#=1<\%(buffer\|expr\|nowait\|script\|silent\|special\|unique\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
syn region vimMapRhs contained start="\S" skip=+\\|\|\@1<=|\|\n\s*\\\|\n\s*"\\ + end="|" end="$" contains=@vimContinue,vimCtrlChar,vimNotation,vimMapLeader skipnl nextgroup=vimMapRhsContinue
" assume a continuation comment introduces the RHS
syn region vimMapRhsContinue contained start=+^\s*\%(\\\|"\\ \)+ skip=+\\|\|\@1<=|\|\n\s*\\\|\n\s*"\\ + end="|" end="$" contains=@vimContinue,vimCtrlChar,vimNotation,vimMapLeader
syn region vimMapRhs contained
\ start="\S"
\ skip=+\\|\|\@1<=|\|\n\s*\%(\\\|["#]\\ \)+
\ end="\ze|"
\ end="$"
\ nextgroup=vimCmdSep
\ contains=@vimContinue,vimCtrlChar,vimNotation,vimMapLeader
syn region vimMapRhsContinue contained
\ start=+^\s*\%(\\\|["#]\\ \)+
\ skip=+\\|\|\@1<=|\|\n\s*\%(\\\|["#]\\ \)+
\ end="\ze|"
\ end="$"
\ nextgroup=vimCmdSep
\ contains=@vimContinue,vimCtrlChar,vimNotation,vimMapLeader
syn match vimMapLeader contained "\%#=1\c<\%(local\)\=leader>" contains=vimMapLeaderKey
syn keyword vimMapModKey contained buffer expr nowait script silent special unique
syn case ignore
@@ -1431,7 +1482,7 @@ syn match vimBracket contained "[\\<>]"
syn case match
" User Command Highlighting: {{{2
syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!'
syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!'
" Vim user commands
@@ -2088,18 +2139,26 @@ unlet s:interfaces
" Function Call Highlighting: {{{2
" (following Gautam Iyer's suggestion)
" ==========================
syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName
syn match vimUserFunc contained "\.\@1<=\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen
syn match vimUserFunc contained "\<\%([[:upper:]_]\|\%(\h\w*\.\)\+\h\)\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vim9MethodName,vim9Super,vim9This
syn match vimUserFunc contained "\<\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimVarScope
syn match vimUserFunc contained "\%(\<[sgbwtlav]:\|<[sS][iI][dD]>\)\%(\h\w*\.\)*\h\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimVarScope,vimNotation
syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName
syn match vimUserFunc contained "\.\@1<=\l\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs
syn match vimUserFunc contained "\<\%([[:upper:]_]\|\%(\h\w*\.\)\+\h\)\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vim9MethodName,vim9Super,vim9This
syn match vimUserFunc contained "\<\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen contains=vimVarScope
syn match vimUserFunc contained "\%(\<[sgbwtlav]:\|<[sS][iI][dD]>\)\%(\h\w*\.\)*\h\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation
Vim9 syn match vim9UserFunc "^\s*\zs\%([sgbwtv]:\|<[sS][iI][dD]>\)\=\%(\h\w*[.#]\)*\h\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This
Vim9 syn match vim9Func "^\s*\zs\l\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimFuncName
Vim9 syn match vim9UserFunc "^\s*\zs\%([sgbwtv]:\|<[sS][iI][dD]>\)\=\%(\h\w*[.#]\)*\h\w*\ze[<(]" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This
Vim9 syn match vim9Func "^\s*\zs\l\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimFuncName
syn cluster vimFunc contains=vimFunc,vimUserFunc
syn cluster vim9Func contains=vim9Func,vim9UserFunc
syn region vim9TypeArgs contained
\ matchgroup=Delimiter
\ start="<\ze\a"
\ end=">"
\ nextgroup=vimOperParen
\ contains=@vimType
\ oneline
" Beginners - Patterns that involve ^ {{{2
" =========
Vim9 syn region vim9LineComment start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle extend
+14 -2
View File
@@ -61,8 +61,6 @@ an "input/setup/java.vim" script file with the following lines:
Both inline setup commands and setup scripts may be used at the same time, the
script file will be sourced before any VIM_TEST_SETUP commands are executed.
Every line of a source file must not be longer than 1425 (19 x 75) characters.
If there is no further setup required, you can now run all tests:
make test
@@ -112,6 +110,20 @@ If they look OK, move them to the "dumps" directory:
If you now run the test again, it will succeed.
Limitations for syntax plugin tests
-----------------------------------
Do not compose ASCII lines that do not fit a 19 by 75 window (1425 columns).
Use multibyte characters, if at all, sparingly (see #16559). When possible,
move multibyte characters closer to the end of a line and keep the line short:
no more than a 75-byte total of displayed characters. A poorly rendered line
may otherwise become wrapped when enough of spurious U+FFFD (0xEF 0xBF 0xBD)
characters claim more columns than are available (75) and then invalidate line
correspondence under test. Refrain from mixing non-spurious U+FFFD characters
with other multibyte characters in the same line.
Adjusting a syntax plugin test
------------------------------
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[🍌]+?+ge
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,2 +0,0 @@
" Replace known non-Latin-1 characters.
%s+[ƒɐɘʬʭΑ-Ωα-ω]+?+Ige
@@ -1,7 +1,6 @@
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|#+0#0000e05&| |V|i|m|9| |b|l|o|c|k|s| +0#0000000&@61
|#+0#0000e05&| |V|I|M|_|T|E|S|T|S|E|T|U|P| |s|e|t| |l|i|s|t| |l|i|s|t|c|h|a|r|s|=|t|a|b|:|>| |,|t|r|a|i|l|:|-|,|e|x|t|e|n|d|s|:|>|,|p|r|e|c|e|d|e|s|:|<|,|n|b|s|p
|:|+| +0#0000000&@72
|#+0#0000e05&| |V|I|M|_|T|E|S|T|S|E|T|U|P| |s|e|t| |l|i|s|t| |l|i|s|t|c|h|a|r|s|=|t|r|a|i|l|:|-| +0#0000000&@32
@75
@75
|{+0#e000e06&| +0#0000000&@73
@@ -17,4 +16,5 @@
@6|}+0#e000e06&| +0#0000000&@67
@6|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@56
@4|}+0#e000e06&| +0#0000000&@69
@4|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@58
@57|1|,|1| @10|T|o|p|
@@ -1,10 +1,9 @@
| +0&#ffffff0@3|{+0#e000e06&| +0#0000000&@69
@6|{+0#e000e06&| +0#0000000&@67
| +0&#ffffff0@5|{+0#e000e06&| +0#0000000&@67
@8|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@54
@6|}+0#e000e06&| +0#0000000&@67
@6|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@56
@4>}+0#e000e06&| +0#0000000&@69
@4|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@58
@4|}+0#e000e06&| +0#0000000&@69
@4>v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@58
@2|}+0#e000e06&| +0#0000000&@71
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
|}+0#e000e06&| +0#0000000&@73
@@ -17,4 +16,5 @@
@2|}+0#e000e06&| +0#0000000&@71
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
@57|1|8|,|5| @9|4|0|%|
@75
@57|1|9|,|5| @9|4|3|%|
@@ -1,10 +1,9 @@
| +0&#ffffff0@74
@75
|#+0#0000e05&| |s|t|a|r|t|/|e|n|d| |p|a|t@1|e|r|n|s| +0#0000000&@54
@75
|{+0#e000e06&| +0#0000000&@73
@2>v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
|}+0#e000e06&| +0#0000000&@73
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
>}+0#e000e06&| +0#0000000&@73
@75
|{+0#e000e06&| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
@@ -17,4 +16,5 @@
|#+0#0000e05&| |d|i|c|t|i|o|n|a|r|y| +0#0000000&@62
|{+0#e000e06&|}|-+0#af5f00255&|>|i+0#00e0e07&|t|e|m|s|(+0#e000e06&|)| +0#0000000&@63
@75
@57|3|6|,|3| @9|B|o|t|
|~+0#4040ff13&| @73
| +0#0000000&@56|3|7|,|1| @9|B|o|t|
@@ -1,10 +1,9 @@
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
@75
|#+0#0000e05&| |V|i|m| |||b|u|i|l|t|i|n|-|o|b|j|e|c|t|-|m|e|t|h|o|d|s||| |a|n|d| |n|a|m|e|s|a|k|e| |b|u|i|l|t|i|n| |f|u|n|c|t|i|o|n|s| +0#0000000&@13
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|M|e|t|h|o|d|N|a|m|e| |S|p|e|c|i|a|l| +0#0000000&@27
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|T|h|i|s| |T|o|d|o| +0#0000000&@36
@75
@75
|#+0#0000e05&| |V|i|m| |||b|u|i|l|t|i|n|-|o|b|j|e|c|t|-|m|e|t|h|o|d|s||| |a|n|d| |n|a|m|e|s|a|k|e| |b|u|i|l|t|i|n| |f|u|n|c|t|i|o|n|s|.| +0#0000000&@12
|c+0#af5f00255&|l|a|s@1| +0#0000000&|P|a|i|r|C|l|a|s@1|T|e|s|t| @55
@8|p+0#af5f00255&|u|b|l|i|c| +0#0000000&|c+0#af5f00255&|o|n|s|t| +0#0000000&|a+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@47
@8|p+0#af5f00255&|u|b|l|i|c| +0#0000000&|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@47
@@ -17,4 +16,5 @@
@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#e000e06&|m|p|t|y|(|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@46
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#e000e06&|e|n|(|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
@57|1|,|1| @10|T|o|p|

Some files were not shown because too many files have changed in this diff Show More