summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS5
-rw-r--r--.github/workflows/ci.yml11
-rw-r--r--Filelist4
-rw-r--r--READMEdir/README_vimlogo.txt4
-rw-r--r--nsis/gvim.nsi2
-rw-r--r--runtime/compiler/jq.vim25
-rw-r--r--runtime/doc/builtin.txt4
-rw-r--r--runtime/doc/cmdline.txt8
-rw-r--r--runtime/doc/gui_x11.txt6
-rw-r--r--runtime/doc/os_dos.txt7
-rw-r--r--runtime/doc/pattern.txt15
-rw-r--r--runtime/doc/sponsor.txt14
-rw-r--r--runtime/doc/syntax.txt24
-rw-r--r--runtime/doc/tags5
-rw-r--r--runtime/doc/uganda.txt9
-rw-r--r--runtime/doc/usr_05.txt14
-rw-r--r--runtime/doc/usr_41.txt4
-rw-r--r--runtime/doc/version9.txt3
-rw-r--r--runtime/filetype.vim3
-rw-r--r--runtime/ftplugin/jq.vim18
-rw-r--r--runtime/ftplugin/ondir.vim18
-rw-r--r--runtime/indent/asm.vim11
-rw-r--r--runtime/pack/dist/opt/comment/autoload/comment.vim58
-rw-r--r--runtime/pack/dist/opt/comment/doc/comment.txt59
-rw-r--r--runtime/pack/dist/opt/comment/plugin/comment.vim9
-rw-r--r--runtime/syntax/java.vim40
-rw-r--r--runtime/syntax/jq.vim130
-rw-r--r--runtime/syntax/json.vim2
-rw-r--r--runtime/syntax/ondir.vim35
-rw-r--r--runtime/syntax/shared/debversions.vim4
-rw-r--r--runtime/syntax/ssa.vim16
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_indent_00.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_indent_01.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_indent_02.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_indent_03.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_indent_99.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_style_00.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_style_01.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_style_02.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_style_03.dump20
-rw-r--r--runtime/syntax/testdir/dumps/java_methods_style_99.dump20
-rw-r--r--runtime/syntax/testdir/input/java_methods_indent.java70
-rw-r--r--runtime/syntax/testdir/input/java_methods_style.java66
-rw-r--r--src/Make_mvc.mak6
-rw-r--r--src/dosinst.c2
-rw-r--r--src/drawscreen.c2
-rw-r--r--src/evalvars.c1
-rw-r--r--src/ex_cmds.h8
-rw-r--r--src/getchar.c51
-rw-r--r--src/misc1.c13
-rw-r--r--src/move.c14
-rw-r--r--src/ops.c107
-rw-r--r--src/po/sr.po88
-rw-r--r--src/popupwin.c4
-rw-r--r--src/proto/misc1.pro2
-rw-r--r--src/scriptfile.c13
-rw-r--r--src/testdir/test_autocmd.vim15
-rw-r--r--src/testdir/test_filetype.vim5
-rw-r--r--src/testdir/test_mapping.vim24
-rw-r--r--src/testdir/test_registers.vim13
-rw-r--r--src/testdir/test_remote.vim2
-rw-r--r--src/testdir/test_textformat.vim26
-rw-r--r--src/testdir/test_vim9_builtin.vim2230
-rw-r--r--src/testdir/test_vim9_class.vim64
-rw-r--r--src/testdir/test_vim9_disassemble.vim28
-rw-r--r--src/testdir/test_vim9_enum.vim11
-rw-r--r--src/testdir/test_vim9_func.vim31
-rw-r--r--src/testdir/test_vim9_import.vim50
-rw-r--r--src/testdir/test_vim9_typealias.vim8
-rw-r--r--src/testdir/test_winfixbuf.vim261
-rw-r--r--src/testdir/vim9.vim214
-rw-r--r--src/textformat.c3
-rw-r--r--src/version.c36
-rw-r--r--src/version.h17
-rw-r--r--src/vim.h4
-rw-r--r--src/vim9.h1
-rw-r--r--src/vim9class.c7
-rw-r--r--src/vim9compile.c715
-rw-r--r--src/vim9execute.c14
-rw-r--r--src/vim9instr.c9
-rw-r--r--src/vim9type.c24
-rw-r--r--src/window.c1
82 files changed, 3155 insertions, 1872 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 63d6735c59..ac41ed5678 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -70,6 +70,7 @@ runtime/compiler/jest.vim @dkearns
runtime/compiler/jjs.vim @dkearns
runtime/compiler/jshint.vim @dkearns
runtime/compiler/jsonlint.vim @dkearns
+runtime/compiler/jq.vim @vito-c
runtime/compiler/lazbuild.vim @dkearns
runtime/compiler/perl.vim @petdance @heptite
runtime/compiler/perlcritic.vim @petdance @dkearns
@@ -164,6 +165,7 @@ runtime/ftplugin/json.vim @dbarnett
runtime/ftplugin/json5.vim @dkearns
runtime/ftplugin/jsonc.vim @izhakjakov
runtime/ftplugin/julia.vim @carlobaldassi
+runtime/ftplugin/jq.vim @vito-c
runtime/ftplugin/kconfig.vim @chrisbra
runtime/ftplugin/kotlin.vim @udalov
runtime/ftplugin/less.vim @genoma
@@ -316,6 +318,7 @@ runtime/lang/menu_ru_ru.cp1251.vim @RestorerZ
runtime/lang/menu_ru_ru.koi8-r.vim @RestorerZ
runtime/lang/menu_ru_ru.utf-8.vim @RestorerZ
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @yegappan
+runtime/pack/dist/opt/comment/ @habamax
runtime/pack/dist/opt/matchit/ @chrisbra
runtime/plugin/manpager.vim @Konfekt
runtime/syntax/shared/hgcommitDiff.vim @vegerot
@@ -403,8 +406,10 @@ runtime/syntax/j.vim @glts
runtime/syntax/jargon.vim @h3xx
runtime/syntax/java.vim @zzzyxwvut
runtime/syntax/javascript.vim @fleiner
+runtime/syntax/json.vim @vito-c
runtime/syntax/jsonc.vim @izhakjakov
runtime/syntax/julia.vim @carlobaldassi
+runtime/syntax/jq.vim @vito-c
runtime/syntax/kconfig.vim @chrisbra
runtime/syntax/kotlin.vim @udalov
runtime/syntax/krl.vim @KnoP-01
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4f6021634f..0307b454bf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -96,6 +96,8 @@ jobs:
- name: Install packages
run: |
+ # This is added by default, and it is often broken, but we don't need anything from it
+ sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
PKGS=( \
gettext \
libgtk2.0-dev:${{ matrix.architecture }} \
@@ -129,6 +131,9 @@ jobs:
- name: Install gcc-${{ env.GCC_VER }}
if: matrix.compiler == 'gcc'
run: |
+ # ubuntu-toolchain-r/test PPA for gcc-13 compiler
+ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
+ sudo apt-get update -y
sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ matrix.architecture }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100
sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }}
@@ -409,9 +414,11 @@ jobs:
WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
# libsodium
SODIUM_VER: '1.0.19'
- SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip
+ # SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip
+ SODIUM_MSVC_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-msvc.zip
SODIUM_MSVC_VER: v143
- SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz
+ # SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz
+ SODIUM_MINGW_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-mingw.tar.gz
SODIUM_MINGW_VER: 26
# Escape sequences
COL_RED: "\x1b[31m"
diff --git a/Filelist b/Filelist
index 57eb8dd402..ff474bc642 100644
--- a/Filelist
+++ b/Filelist
@@ -755,6 +755,10 @@ RT_ALL = \
runtime/tutor/tutor.vim \
runtime/vimrc_example.vim \
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim \
+ runtime/pack/dist/opt/comment/plugin/comment.vim \
+ runtime/pack/dist/opt/comment/doc/comment.txt \
+ runtime/pack/dist/opt/comment/doc/tags \
+ runtime/pack/dist/opt/comment/autoload/comment.vim \
runtime/pack/dist/opt/dvorak/plugin/dvorak.vim \
runtime/pack/dist/opt/dvorak/dvorak/enable.vim \
runtime/pack/dist/opt/dvorak/dvorak/disable.vim \
diff --git a/READMEdir/README_vimlogo.txt b/READMEdir/README_vimlogo.txt
index 9798b108d1..570e876548 100644
--- a/READMEdir/README_vimlogo.txt
+++ b/READMEdir/README_vimlogo.txt
@@ -1,8 +1,8 @@
The Python project that creates `vimlogo.svg` can be found at
`https://github.com/ShayHill/vimlogo`. The Vim license applies.
-`vimlogo.svg` is an effort to remove errors and inadvertant inconsistencies
-from the original vim logo while maintaing the original design. `vimlogo.svg`
+`vimlogo.svg` is an effort to remove errors and inadvertent inconsistencies
+from the original vim logo while maintaining the original design. `vimlogo.svg`
is based on the `vimlogo.svg` file (previously?) found at
`https://www.vim.org/logos.php`
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index b8ef079dba..31f6260d95 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -225,7 +225,7 @@ Page custom SetCustom ValidateCustom
# Version resources
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Vim"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Vim Developers"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The Vim Project"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Vim"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (C) 1996"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Vi Improved - A Text Editor"
diff --git a/runtime/compiler/jq.vim b/runtime/compiler/jq.vim
new file mode 100644
index 0000000000..a656223e51
--- /dev/null
+++ b/runtime/compiler/jq.vim
@@ -0,0 +1,25 @@
+" Vim compiler file
+" Compiler: jq
+" Maintainer: Vito <vito.blog@gmail.com>
+" Last Change: 2024 Apr 17
+" Upstream: https://github.com/vito-c/jq.vim
+
+if exists('b:current_compiler')
+ finish
+endif
+let b:current_compiler = 'jq'
+
+let s:save_cpoptions = &cpoptions
+set cpoptions&vim
+
+if has('unix')
+ CompilerSet makeprg=jq\ -f\ %:S\ /dev/null
+else
+ CompilerSet makeprg=jq\ -f\ %:S\ nul
+endif
+CompilerSet errorformat=%E%m\ at\ \\<%o\\>\\,\ line\ %l:,
+ \%Z,
+ \%-G%.%#
+
+let &cpoptions = s:save_cpoptions
+unlet s:save_cpoptions
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index a426124a03..79f3cd7c68 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -9980,6 +9980,10 @@ synconcealed({lnum}, {col}) *synconcealed()*
synconcealed(lnum, 5) [1, 'X', 2]
synconcealed(lnum, 6) [0, '', 0]
+ Note: Doesn't consider |matchadd()| highlighting items,
+ since syntax and matching highlighting are two different
+ mechanisms |syntax-vs-match|.
+
synstack({lnum}, {col}) *synstack()*
Return a |List|, which is the stack of syntax items at the
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 13c4d729b7..214571f289 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 9.1. Last change: 2023 Dec 09
+*cmdline.txt* For Vim version 9.1. Last change: 2024 Apr 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -650,6 +650,12 @@ followed by another Vim command:
:[range]!
a user defined command without the "-bar" argument |:command|
+ and the following |Vim9-script| keywords:
+ :abstract
+ :class
+ :enum
+ :interface
+
Note that this is confusing (inherited from Vi): With ":g" the '|' is included
in the command, with ":s" it is not.
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index bc2ba5437e..dbd4b10843 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt* For Vim version 9.1. Last change: 2024 Jan 30
+*gui_x11.txt* For Vim version 9.1. Last change: 2024 Apr 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -636,8 +636,8 @@ that version.
For Motif, you need at least Motif version 1.2 and/or X11R5. Motif 2.0 and
X11R6 are OK. Motif 1.1 and X11R4 might work, no guarantee (there may be a
few problems, but you might make it compile and run with a bit of work, please
-send me the patches if you do). The newest releases of LessTif have been
-reported to work fine too.
+send patches if you do). The newest releases of LessTif have been reported to
+work fine too.
*gui-x11-athena* *gui-x11-neXtaw*
Support for the Athena GUI and neXtaw was removed in patch 8.2.4677.
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index e81ba9a5ab..1b738f43ac 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,4 +1,4 @@
-*os_dos.txt* For Vim version 9.1. Last change: 2006 Mar 30
+*os_dos.txt* For Vim version 9.1. Last change: 2024 Apr 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -330,6 +330,11 @@ following values:
'shellpipe' >%s 2>&1
'shellredir' >%s 2>&1
+Note: those options are only set after reading the |.vimrc| file, in
+particular setting the 'shell' option via |-c| is too late to take effect for
+the other shell related settings. Consider using |--cmd| to override this
+option via the command line.
+
If you find that PowerShell commands are taking a long time to run then try
with "-NoProfile" at the beginning of the 'shellcmdflag'. Note this will
prevent any PowerShell environment setup by the profile from taking place.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 2d1898de52..f16e7d2d6b 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt* For Vim version 9.1. Last change: 2023 Oct 23
+*pattern.txt* For Vim version 9.1. Last change: 2024 Apr 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1394,6 +1394,19 @@ Finally, these constructs are unique to Perl:
==============================================================================
10. Highlighting matches *match-highlight*
+ *syntax-vs-match*
+ Note that the match highlight mechanism is independent
+ of |syntax-highlighting|, which is (usually) a buffer-local
+ highlighting, while matching is window-local, both methods
+ can be freely mixed. Match highlighting functions give you
+ a bit more flexibility in when and how to apply, but are
+ typically only used for temporary highlighting, without strict
+ rules. Both methods can be used to conceal text.
+
+ Thus the matching functions like |matchadd()| won't consider
+ syntax rules and functions like |synconcealed()| and the
+ other way around.
+
*:mat* *:match*
:mat[ch] {group} /{pattern}/
Define a pattern to highlight in the current window. It will
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index 6f4e9f353a..169816896b 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt* For Vim version 9.1. Last change: 2023 Mar 24
+*sponsor.txt* For Vim version 9.1. Last change: 2024 Apr 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -60,9 +60,7 @@ Credit card Through PayPal, see the PayPal site for information:
Other methods See |iccf-donations|.
Include "Vim sponsor" or "Vim registration" in the comment of
- your money transfer. Send me an e-mail that mentions the
- amount you transferred if you want to vote for features and
- show others you are a registered Vim user or sponsor.
+ your money transfer.
QUESTIONS AND ANSWERS *sponsor-faq* *register-faq*
@@ -135,10 +133,10 @@ for features.
I donated $$$, now please add feature XYZ!
-There is no direct relation between your donation and the work developers
-does. Otherwise you would be paying for work and we would have to pay tax
-over the donation. If you want to hire one of the developers for specific
-work, contact them directly, don't use the donation system.
+There is no direct relation between your donation and the work developers do.
+Otherwise you would be paying for work and we would have to pay tax over the
+donation. If you want to hire one of the developers for specific work,
+contact them directly, don't use the donation system.
Are the donations tax deductible?
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 619046ec84..bfc464534e 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2024 Apr 21
+*syntax.txt* For Vim version 9.1. Last change: 2024 Apr 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2086,6 +2086,15 @@ To disable syntax highlighting of errors: >
let g:vim_json_warnings = 0
+JQ *jq.vim* *jq_quote_highlight* *ft-jq-syntax*
+
+To disable numbers having their own color add the following to your vimrc: >
+ hi link jqNumber Normal
+
+If you want quotes to have different highlighting than strings >
+ let g:jq_quote_highlight = 1
+
+
LACE *lace.vim* *ft-lace-syntax*
Lace (Language for Assembly of Classes in Eiffel) is case insensitive, but the
@@ -2685,8 +2694,8 @@ perl_string_as_statement, it will be highlighted as in the second line.
The syncing has 3 options. The first two switch off some triggering of
synchronization and should only be needed in case it fails to work properly.
If while scrolling all of a sudden the whole screen changes color completely
-then you should try and switch off one of those. Let me know if you can
-figure out the line that causes the mistake.
+then you should try and switch off one of those. Let the developer know if
+you can figure out the line that causes the mistake.
One triggers on "^\s*sub\s*" and the other on "^[$@%]" more or less. >
@@ -4314,7 +4323,9 @@ Whether or not it is actually concealed depends on the value of the
'conceallevel' option. The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to
edit the line.
-Another way to conceal text is with |matchadd()|.
+
+Another way to conceal text is with |matchadd()|, but internally this works a
+bit differently |syntax-vs-match|.
concealends *:syn-concealends*
@@ -4322,7 +4333,9 @@ When the "concealends" argument is given, the start and end matches of
the region, but not the contents of the region, are marked as concealable.
Whether or not they are actually concealed depends on the setting on the
'conceallevel' option. The ends of a region can only be concealed separately
-in this way when they have their own highlighting via "matchgroup"
+in this way when they have their own highlighting via "matchgroup". The
+|synconcealed()| function can be used to retrieve information about conealed
+items.
cchar *:syn-cchar*
*E844*
@@ -6133,4 +6146,5 @@ literal text specify the size of that text (in bytes):
many places.
"<\@1<=span" Matches the same, but only tries one byte before "span".
+
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 6ad9022591..8096f5d981 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6515,6 +6515,7 @@ command-block vim9.txt /*command-block*
command-line-functions usr_41.txt /*command-line-functions*
command-line-window cmdline.txt /*command-line-window*
command-mode intro.txt /*command-mode*
+comment-install usr_05.txt /*comment-install*
compatible-default starting.txt /*compatible-default*
compile-changes-5 version5.txt /*compile-changes-5*
compile-changes-6 version6.txt /*compile-changes-6*
@@ -7291,6 +7292,7 @@ ft-inform-syntax syntax.txt /*ft-inform-syntax*
ft-java-plugin filetype.txt /*ft-java-plugin*
ft-java-syntax syntax.txt /*ft-java-syntax*
ft-javascript-omni insert.txt /*ft-javascript-omni*
+ft-jq-syntax syntax.txt /*ft-jq-syntax*
ft-json-plugin filetype.txt /*ft-json-plugin*
ft-json-syntax syntax.txt /*ft-json-syntax*
ft-ksh-syntax syntax.txt /*ft-ksh-syntax*
@@ -8408,6 +8410,8 @@ job_start() channel.txt /*job_start()*
job_status() channel.txt /*job_status()*
job_stop() channel.txt /*job_stop()*
join() builtin.txt /*join()*
+jq.vim syntax.txt /*jq.vim*
+jq_quote_highlight syntax.txt /*jq_quote_highlight*
js_decode() builtin.txt /*js_decode()*
js_encode() builtin.txt /*js_encode()*
jsbterm-mouse options.txt /*jsbterm-mouse*
@@ -10186,6 +10190,7 @@ syntax-latex syntax.txt /*syntax-latex*
syntax-loading syntax.txt /*syntax-loading*
syntax-printing usr_06.txt /*syntax-printing*
syntax-tex syntax.txt /*syntax-tex*
+syntax-vs-match pattern.txt /*syntax-vs-match*
syntax.txt syntax.txt /*syntax.txt*
syntax_cmd syntax.txt /*syntax_cmd*
sys-file-list help.txt /*sys-file-list*
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index 6b77050453..513759f60c 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt* For Vim version 9.1. La