diff --git a/.cirrus.yml b/.cirrus.yml
index b8d9c785..a9745141 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -5,12 +5,12 @@ env:
freebsd_task:
name: FreeBSD
matrix:
- - name: FreeBSD 14.3
+ - name: FreeBSD 15.0
freebsd_instance:
- image_family: freebsd-14-3
+ image_family: freebsd-15-0-amd64-ufs
timeout_in: 20m
install_script:
- - pkg install -y gettext
+ - pkg install -y gettext diffutils
build_script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure --with-features=${FEATURES}
diff --git a/.gitattributes b/.gitattributes
index bad1d9ed..8e1788a7 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,13 @@
-src/testdir/test42.in diff
+# The old test .ok files are expected to use LF line endings, even on Windows.
+# In src/testdir/Make_mvc.mak and src/testdir/Make_ming.mak, the test result
+# files .out are converted to LF line endings before being compared.
+# Therefore, if the .ok files' line endings are not specified and are
+# converted to CRLF, the comparison between .ok and .out will fail.
+src/testdir/test*.ok text eol=lf
+
+# This ok file contains literal CR LF endings. Should not be touched by git,
+# so handle as binary
+src/testdir/test21.ok -text
# `vim.pot` is updated every time any of the *.c files are modified. And as it
# contains line numbers for strings from *.c files, inserting a line into a
@@ -24,8 +33,11 @@ src/po/vim.pot -diff
src/po/vim.pot diff=ignore_vim_pot
# GitHub reacts to the `linguist-generated` attribute, by ignoring marked files
-# for the repository's language statistics and hiddning changes in these files
+# for the repository's language statistics and hiding changes in these files
# by default in diffs.
#
# https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github
src/po/vim.pot linguist-generated=true
+*.dump linguist-generated=true
+
+runtime/syntax/testdir/input/vim_ex_help.vim -text diff linguist-language=vim linguist-detectable=true
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b37315d0..6b14c623 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -12,10 +12,10 @@ A pull request has the advantage that it will trigger the Continuous
Integration tests, you will be warned of problems (you can ignore the coverage
warning, it's noisy).
-Please consider adding a test. All new functionality should be tested and bug
-fixes should be tested for regressions: the test should fail before the fix and
-pass after the fix. Look through recent patches for examples and find help
-with ":help testing". The tests are located under "src/testdir".
+Please always add a test, if possible. All new functionality should be tested
+and bug fixes should be tested for regressions: the test should fail before the
+fix and pass after the fix. Look through recent patches for examples and find
+help with ":help testing". The tests are located under "src/testdir".
Contributions will be distributed with Vim under the Vim license. Providing a
change to be included implies that you agree with this and your contribution
@@ -46,6 +46,15 @@ When merging PRs into Vim, the current maintainer @chrisbra usually adds missing
anybody that explicitly *ACK*s a pull request as a statement that those
approvers are happy with that particular change.
+## Using AI
+
+When using AI for contributions, please disclose this. Any AI-generated code
+must follow the Vim code style. In particular, [test_codestyle.vim][18]
+must not report any failures. Check the CI output for any test failures.
+
+Ensure that changes are properly tested. Do not submit a single PR that
+addresses multiple unrelated issues.
+
# Reporting issues
We use GitHub [issues][17], but that is not a requirement. Writing to the Vim
@@ -138,8 +147,9 @@ For the recommended documentation style, please check [helphelp.txt][16].
# I have a question
If you have some question on the style guide, please contact the [vim-dev][0]
-mailing list. For other questions please use the [Vi Stack Exchange][8] website, the
-[vim-use][9] mailing list or make use of the [discussion][10] feature here at github.
+mailing list. For other questions you can join [`#vim`][19], use the
+[Vi Stack Exchange][8] website, the [vim-use][9] mailing list or make use of the
+[discussion][10] feature here at github.
[todo list]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
[0]: http://www.vim.org/maillist.php#vim-dev
@@ -160,3 +170,5 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
[15]: https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin
[16]: https://github.com/vim/vim/blob/master/runtime/doc/helphelp.txt
[17]: https://github.com/vim/vim/issues
+[18]: https://github.com/vim/vim/blob/master/src/testdir/test_codestyle.vim
+[19]: https://web.libera.chat/#vim
diff --git a/Filelist b/Filelist
index 9ab71cb8..82329c70 100644
--- a/Filelist
+++ b/Filelist
@@ -27,7 +27,6 @@ SRC_ALL = \
ci/if_feat_check.vim \
ci/lychee.toml \
ci/setup-xvfb.sh \
- ci/setup-sway.sh \
ci/remove_snap.sh \
ci/ddebs.list \
ci/pinned-pkgs \
@@ -214,6 +213,7 @@ SRC_ALL = \
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.po \
src/testdir/runtest.vim \
src/testdir/samples/*.html \
+ src/testdir/samples/*.swp \
src/testdir/samples/*.txt \
src/testdir/samples/*.vim \
src/testdir/samples/evil.zip \
@@ -224,6 +224,8 @@ SRC_ALL = \
src/testdir/samples/test000 \
src/testdir/samples/test_undo.txt.undo \
src/testdir/samples/testa.zip \
+ src/testdir/samples/crypt_utf8_test.txt \
+ src/testdir/samples/uncrypt_utf8_test.txt \
src/testdir/sautest/autoload/*.vim \
src/testdir/silent.wav \
src/testdir/test77a.com \
@@ -248,6 +250,7 @@ SRC_ALL = \
src/testdir/util/view_util.vim \
src/testdir/util/vim9.vim \
src/testdir/util/window_manager.vim \
+ src/testdir/util/socketserver.vim \
src/testdir/viewdumps.vim \
src/proto.h \
src/protodef.h \
@@ -540,7 +543,6 @@ SRC_UNIX = \
src/wayland.c \
src/wayland.h \
src/which.sh \
- src/gen-wayland-protocols.sh \
src/xxd/Makefile \
# Source files for both MS Windows and Unix-like.
@@ -804,6 +806,10 @@ RT_ALL = \
runtime/tutor/en/vim-01-beginner.tutor.json \
runtime/tutor/en/vim-02-beginner.tutor \
runtime/tutor/en/vim-02-beginner.tutor.json \
+ runtime/tutor/sv/vim-01-beginner.tutor \
+ runtime/tutor/sv/vim-01-beginner.tutor.json \
+ runtime/tutor/sv/vim-02-beginner.tutor \
+ runtime/tutor/sv/vim-02-beginner.tutor.json \
runtime/tutor/tutor.tutor \
runtime/tutor/tutor.tutor.json \
runtime/tutor/tutor.vim \
@@ -821,7 +827,6 @@ RT_ALL = \
runtime/pack/dist/opt/editorconfig/.editorconfig \
runtime/pack/dist/opt/editorconfig/CONTRIBUTORS \
runtime/pack/dist/opt/editorconfig/LICENSE* \
- runtime/pack/dist/opt/editorconfig/mkzip.sh \
runtime/pack/dist/opt/editorconfig/README.md \
runtime/pack/dist/opt/editorconfig/autoload/*.vim \
runtime/pack/dist/opt/editorconfig/autoload/editorconfig_core/*.vim \
@@ -829,6 +834,10 @@ RT_ALL = \
runtime/pack/dist/opt/editorconfig/doc/editorconfig.txt \
runtime/pack/dist/opt/editorconfig/ftdetect/editorconfig.vim \
runtime/pack/dist/opt/editorconfig/plugin/editorconfig.vim \
+ runtime/pack/dist/opt/helpcurwin/autoload/helpcurwin.vim \
+ runtime/pack/dist/opt/helpcurwin/doc/helpcurwin.txt \
+ runtime/pack/dist/opt/helpcurwin/doc/tags \
+ runtime/pack/dist/opt/helpcurwin/plugin/helpcurwin.vim \
runtime/pack/dist/opt/helptoc/autoload/helptoc.vim \
runtime/pack/dist/opt/helptoc/doc/helptoc.txt \
runtime/pack/dist/opt/helptoc/doc/tags \
@@ -852,7 +861,12 @@ RT_ALL = \
runtime/pack/dist/opt/netrw/autoload/netrw_gitignore.vim \
runtime/pack/dist/opt/netrw/doc/netrw.txt \
runtime/pack/dist/opt/netrw/plugin/netrwPlugin.vim \
- runtime/pack/dist/opt/netrw/syntax/netrw.vim
+ runtime/pack/dist/opt/netrw/syntax/netrw.vim \
+ runtime/pack/dist/opt/osc52/plugin/osc52.vim \
+ runtime/pack/dist/opt/osc52/autoload/osc52.vim \
+ runtime/pack/dist/opt/osc52/doc/osc52.txt \
+ runtime/pack/dist/opt/osc52/doc/tags \
+ runtime/xdg.vim
# Runtime files for all distributions without CR/LF translation.
RT_ALL_BIN = \
@@ -907,7 +921,6 @@ RT_SCRIPTS = \
runtime/syntax/testdir/input/selftestdir/* \
runtime/syntax/testdir/input/setup/*.* \
runtime/syntax/testdir/dumps/*.dump \
- runtime/syntax/testdir/dumps/*.vim \
runtime/syntax/testdir/tools/* \
runtime/syntax/generator/Makefile \
runtime/syntax/generator/README.md \
@@ -928,12 +941,15 @@ RT_UNIX_DOS_BIN = \
runtime/vim16x16.gif \
runtime/vim16x16.png \
runtime/vim16x16.xpm \
+ runtime/vim16x16_png.h \
runtime/vim32x32.gif \
runtime/vim32x32.png \
runtime/vim32x32.xpm \
+ runtime/vim32x32_png.h \
runtime/vim48x48.gif \
runtime/vim48x48.png \
runtime/vim48x48.xpm \
+ runtime/vim48x48_png.h \
# Runtime not for Unix-like or extra.
RT_NO_UNIX = \
@@ -979,8 +995,7 @@ RT_AMI = \
runtime/macros/maze/*.info \
runtime/macros/urm/*.info \
runtime/tools.info \
- runtime/tutor.info \
- runtime/tutor/*.info \
+ runtime/tutor.info
# Runtime files in extra archive.
RT_EXTRA = \
@@ -1095,6 +1110,8 @@ LANG_GEN = \
runtime/doc/*-pl.UTF-8.1 \
runtime/doc/*-ru.1 \
runtime/doc/*-ru.UTF-8.1 \
+ runtime/doc/*-sv.1 \
+ runtime/doc/*-sv.UTF-8.1 \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
runtime/lang/README.txt \
@@ -1114,6 +1131,8 @@ LANG_GEN = \
runtime/tutor/sr/vim-01-beginner.tutor.json \
runtime/tutor/sr/vim-02-beginner.tutor \
runtime/tutor/sr/vim-02-beginner.tutor.json \
+ runtime/tutor/zh/vim-01-beginner.tutor \
+ runtime/tutor/zh/vim-01-beginner.tutor.json \
runtime/tutor/tutor1.?? \
runtime/tutor/tutor1.??_?? \
runtime/tutor/tutor1.bar \
diff --git a/Makefile b/Makefile
index c3346134..94fd2446 100644
--- a/Makefile
+++ b/Makefile
@@ -98,7 +98,7 @@ syntaxtest:
# Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 9
-MINOR = 1
+MINOR = 2
# CHECKLIST for creating a new version:
#
@@ -460,6 +460,7 @@ dosrt_files: dist prepare
$(LANG_GEN_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
-rm $(IN_README_DIR)
+ mv dist/vim/$(VIMRTDIR)/lang/ dist/vim/$(VIMRTDIR)/readme/
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
# Add the message translations. Trick: skip ja.mo/ja.euc-jp.mo and use
diff --git a/README.md b/README.md
index 30b0bd7b..949fcd7b 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,3 @@
-
-
Special thanks for supporting Vim by donating to the ICCF :
-
-
-
-
-
-
-### [Warp, built for coding with multiple AI agents.](https://www.warp.dev/vim)
-[Available for MacOS, Linux, & Windows](https://www.warp.dev/vim)
-
-
-
# [](https://www.vim.org)
[](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
@@ -25,7 +12,9 @@
If you find a bug or want to discuss the best way to add a new feature, please
[open an issue](https://github.com/vim/vim/issues/new/choose).
If you have a question or want to discuss the best way to do something with
-Vim, you can use [StackExchange](https://vi.stackexchange.com/)
+Vim, you can join [`#vim`](https://web.libera.chat/#vim),
+[reddit.com/r/vim](https://reddit.com/r/vim),
+use [StackExchange](https://vi.stackexchange.com/),
or one of the [Maillists](https://www.vim.org/community.php).
## What is Vim?
@@ -167,4 +156,4 @@ Most of Vim was created by Bram Moolenaar ``
Send any other comments, patches, flowers and suggestions to the vim-dev mailing list:
``
-This is `README.md` for version 9.1 of Vim: Vi IMproved.
+This is `README.md` for version 9.2 of Vim: Vi IMproved.
diff --git a/README.txt b/README.txt
index 80ec9e3c..18c3e53b 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-README.txt for version 9.1 of Vim: Vi IMproved.
+README.txt for version 9.2 of Vim: Vi IMproved.
WHAT IS VIM?
diff --git a/README_VIM9.md b/README_VIM9.md
index c9ce73a2..7442b0bc 100644
--- a/README_VIM9.md
+++ b/README_VIM9.md
@@ -28,7 +28,7 @@ way:
* Local variables are not available in an l: dictionary.
* A few more things that slow us down, such as exception handling details.
-I Implemented a "proof of concept" and measured the time to run a simple
+I implemented a "proof of concept" and measured the time to run a simple
for loop with an addition (Justin used this example in his presentation,
full code is below):
@@ -224,7 +224,7 @@ Eventually this will lead to Vim 9!
## Code for sum time measurements
-Vim was build with -O2.
+Vim was built with -O2.
``` vim
func VimOld()
diff --git a/READMEdir/Contents b/READMEdir/Contents
index 48b7c59e..f01a3fc5 100644
--- a/READMEdir/Contents
+++ b/READMEdir/Contents
@@ -9,15 +9,15 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
messages, shows current file name in window title, on-line
help, rectangular cut/paste, etc., etc., etc...
- Version 9.1. Also runs under UNIX, MS-Windows, Mac, etc.
- vim91rt.tgz contains the documentation and syntax files.
- vim91bin.tgz contains the binaries.
- vim91src.tgz contains the sources.
+ Version 9.2. Also runs under UNIX, MS-Windows, Mac, etc.
+ vim92rt.tgz contains the documentation and syntax files.
+ vim92bin.tgz contains the binaries.
+ vim92src.tgz contains the sources.
Author: Bram Moolenaar et al.
Xxd Hex dumper and reader. Can be used to view files as hex, edit
them and write them back. Can also be used to patch files.
- Version 2023 Oct 25
- Author: Juergen Weigert
+ Version 2025 Nov 26
+ Author: Juergen Weigert et al.
diff --git a/READMEdir/README_ami.txt b/READMEdir/README_ami.txt
index f9815108..a321fa06 100644
--- a/READMEdir/README_ami.txt
+++ b/READMEdir/README_ami.txt
@@ -1,4 +1,4 @@
-README_ami.txt for version 9.1 of Vim: Vi IMproved.
+README_ami.txt for version 9.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim.
@@ -16,8 +16,8 @@ easily upgrade to a new version. For example:
You would then unpack the archives like this:
cd dh0:editors
- tar xf t:vim91bin.tar
- tar xf t:vim91rt.tar
+ tar xf t:vim92bin.tar
+ tar xf t:vim92rt.tar
Set the $VIM environment variable to point to the top directory of your Vim
files. For the above example:
diff --git a/READMEdir/README_amibin.txt b/READMEdir/README_amibin.txt
index 224ff36c..69b5320f 100644
--- a/READMEdir/README_amibin.txt
+++ b/READMEdir/README_amibin.txt
@@ -1,8 +1,8 @@
-README_amibin.txt for version 9.1 of Vim: Vi IMproved.
+README_amibin.txt for version 9.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.
-These files are in the runtime archive (vim91rt.tgz).
+These files are in the runtime archive (vim92rt.tgz).
The Amiga "bin" archive contains the Vim executable for the Amiga. It was
diff --git a/READMEdir/README_amisrc.txt b/READMEdir/README_amisrc.txt
index 5fd4cf2c..fb3a4559 100644
--- a/READMEdir/README_amisrc.txt
+++ b/READMEdir/README_amisrc.txt
@@ -1,8 +1,8 @@
-README_amisrc.txt for version 9.1 of Vim: Vi IMproved.
+README_amisrc.txt for version 9.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.
-These files are in the runtime archive (vim91rt.tgz).
+These files are in the runtime archive (vim92rt.tgz).
The Amiga source archive contains the files needed to compile Vim on the
diff --git a/READMEdir/README_bindos.txt b/READMEdir/README_bindos.txt
index 51fc2c59..43a54553 100644
--- a/READMEdir/README_bindos.txt
+++ b/READMEdir/README_bindos.txt
@@ -1,16 +1,16 @@
-README_bindos.txt for version 9.1 of Vim: Vi IMproved.
+README_bindos.txt for version 9.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
-These files are in the runtime archive (vim91rt.zip).
+These files are in the runtime archive (vim92rt.zip).
There are several binary distributions of Vim for the PC. You would normally
pick only one of them, but it's also possible to install several.
These ones are available (the version number may differ):
- vim91w32.zip Windows console version
- gvim91.zip Windows GUI version
- gvim91ole.zip Windows GUI version with OLE
+ vim92w32.zip Windows console version
+ gvim92.zip Windows GUI version
+ gvim92ole.zip Windows GUI version with OLE
-You MUST also get the runtime archive (vim91rt.zip).
-The sources are also available (vim91src.zip).
+You MUST also get the runtime archive (vim92rt.zip).
+The sources are also available (vim92src.zip).
diff --git a/READMEdir/README_dos.txt b/READMEdir/README_dos.txt
index c6509804..ce1779b0 100644
--- a/READMEdir/README_dos.txt
+++ b/READMEdir/README_dos.txt
@@ -1,4 +1,4 @@
-README_dos.txt for version 9.1 of Vim: Vi IMproved.
+README_dos.txt for version 9.2 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-Windows systems.
See "README.txt" for general information about Vim.
@@ -41,19 +41,19 @@ These are the normal steps to install Vim from the .zip archives:
located. Check the $VIM setting to see where it points to:
set VIM
For example, if you have
- C:\vim\vim91
+ C:\vim\vim92
do
cd C:\
Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other.
-2. Unpack the zip archives. This will create a new directory "vim\vim91",
+2. Unpack the zip archives. This will create a new directory "vim\vim92",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
- pkunzip -d gvim91.zip
- unzip vim91w32.zip
+ pkunzip -d gvim92.zip
+ unzip vim92w32.zip
You need to unpack the runtime archive and at least one of the binary
archives. When using more than one binary version, be careful not to
@@ -65,7 +65,7 @@ These are the normal steps to install Vim from the .zip archives:
won't move or copy the runtime files.
3. Change to the new directory:
- cd vim\vim91
+ cd vim\vim92
Run the "install.exe" program. It will ask you a number of questions about
how you would like to have your Vim setup. Among these are:
- You can tell it to write a "_vimrc" file with your preferences in the
@@ -76,8 +76,8 @@ These are the normal steps to install Vim from the .zip archives:
console or in a shell. You can select one of the directories in your
$PATH. If you skip this, you can add Vim to the search path manually:
The simplest is to add a line to your autoexec.bat. Examples:
- set path=%path%;C:\vim\vim91
- set path=%path%;D:\editors\vim\vim91
+ set path=%path%;C:\vim\vim92
+ set path=%path%;D:\editors\vim\vim92
- Create entries for Vim on the desktop and in the Start menu.
That's it!
@@ -89,8 +89,8 @@ Remarks:
won't show a menubar. Then you need to set the $VIM environment variable to
point to the top directory of your Vim files. Example:
set VIM=C:\editors\vim
- Vim version 9.1 will look for your vimrc file in $VIM, and for the runtime
- files in $VIM/vim91. See ":help $VIM" for more information.
+ Vim version 9.2 will look for your vimrc file in $VIM, and for the runtime
+ files in $VIM/vim92. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout:
@@ -101,14 +101,14 @@ Remarks:
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
C:\vim\... Other files you made.
Distributed files:
- C:\vim\vim91\vim.exe The Vim version 9.1 executable.
- C:\vim\vim91\doc\*.txt The version 9.1 documentation files.
- C:\vim\vim91\bugreport.vim A Vim version 9.1 script.
- C:\vim\vim91\... Other version 9.1 distributed files.
+ C:\vim\vim92\vim.exe The Vim version 9.2 executable.
+ C:\vim\vim92\doc\*.txt The version 9.2 documentation files.
+ C:\vim\vim92\bugreport.vim A Vim version 9.2 script.
+ C:\vim\vim92\... Other version 9.2 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim
- Then $VIMRUNTIME will automatically be set to "$VIM\vim91". Don't add
- "vim91" to $VIM, that won't work.
+ Then $VIMRUNTIME will automatically be set to "$VIM\vim92". Don't add
+ "vim92" to $VIM, that won't work.
- You can put your Vim executable anywhere else. If the executable is not
with the other Vim files, you should set $VIM. The simplest is to add a line
diff --git a/READMEdir/README_extra.txt b/READMEdir/README_extra.txt
index ca88e2d0..7029f501 100644
--- a/READMEdir/README_extra.txt
+++ b/READMEdir/README_extra.txt
@@ -1,4 +1,4 @@
-README_extra.txt for version 9.1 of Vim: Vi IMproved.
+README_extra.txt for version 9.2 of Vim: Vi IMproved.
These extra files of Vim are for special purposes. This README explains what
the files are for. For general information about Vim, see the "README.txt"
diff --git a/READMEdir/README_haiku.txt b/READMEdir/README_haiku.txt
index e4caf71a..c6d42f58 100644
--- a/READMEdir/README_haiku.txt
+++ b/READMEdir/README_haiku.txt
@@ -1,4 +1,4 @@
-README_haiku.txt for version 9.1 of Vim: Vi IMproved.
+README_haiku.txt for version 9.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Haiku operating system.
See "README.txt" for general information about Vim.
diff --git a/READMEdir/README_mac.txt b/READMEdir/README_mac.txt
index ff7ef5ca..5146cdf5 100644
--- a/READMEdir/README_mac.txt
+++ b/READMEdir/README_mac.txt
@@ -1,4 +1,4 @@
-README_mac.txt for version 9.1 of Vim: Vi IMproved.
+README_mac.txt for version 9.2 of Vim: Vi IMproved.
This file explains the installation of Vim on MacOS systems.
See "README.txt" for general information about Vim.
diff --git a/READMEdir/README_ole.txt b/READMEdir/README_ole.txt
index f34b679a..17638a92 100644
--- a/READMEdir/README_ole.txt
+++ b/READMEdir/README_ole.txt
@@ -1,4 +1,4 @@
-README_ole.txt for version 9.1 of Vim: Vi IMproved.
+README_ole.txt for version 9.2 of Vim: Vi IMproved.
This archive contains gvim.exe with OLE interface.
This version of gvim.exe can also load a number of interface dynamically (you
diff --git a/READMEdir/README_os2.txt b/READMEdir/README_os2.txt
index a440918e..1e6b344c 100644
--- a/READMEdir/README_os2.txt
+++ b/READMEdir/README_os2.txt
@@ -1,4 +1,4 @@
-README_os2.txt for version 9.1 of Vim: Vi IMproved.
+README_os2.txt for version 9.2 of Vim: Vi IMproved.
This file used to explain the installation of Vim on OS/2 systems.
However, support for OS/2 has been removed in patch 7.4.1008.
diff --git a/READMEdir/README_os390.txt b/READMEdir/README_os390.txt
index 94709792..94f2a1cc 100644
--- a/READMEdir/README_os390.txt
+++ b/READMEdir/README_os390.txt
@@ -1,4 +1,4 @@
-README_os390.txt for version 9.1 of Vim: Vi IMproved.
+README_os390.txt for version 9.2 of Vim: Vi IMproved.
This readme explains how to build Vim on z/OS. Formerly called OS/390.
See "README.txt" for general information about Vim.
diff --git a/READMEdir/README_src.txt b/READMEdir/README_src.txt
index fc5ea15d..df1c97c8 100644
--- a/READMEdir/README_src.txt
+++ b/READMEdir/README_src.txt
@@ -1,8 +1,8 @@
-README_src.txt for version 9.1 of Vim: Vi IMproved.
+README_src.txt for version 9.2 of Vim: Vi IMproved.
The source archive contains the files needed to compile Vim on Unix systems.
It is packed for Unix systems (NL line separator).
For more information, see the README.txt file that comes with the runtime
-archive (vim-9.1-rt.tar.gz). To be able to run Vim you MUST get the runtime
+archive (vim-9.2-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too!
diff --git a/READMEdir/README_srcdos.txt b/READMEdir/README_srcdos.txt
index e7ae7a26..1ec96d52 100644
--- a/READMEdir/README_srcdos.txt
+++ b/READMEdir/README_srcdos.txt
@@ -1,8 +1,8 @@
-README_srcdos.txt for version 9.1 of Vim: Vi IMproved.
+README_srcdos.txt for version 9.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-Windows.
-These files are in the runtime archive (vim91rt.zip).
+These files are in the runtime archive (vim92rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-Windows.
diff --git a/READMEdir/README_unix.txt b/READMEdir/README_unix.txt
index 196628f1..fefe58d8 100644
--- a/READMEdir/README_unix.txt
+++ b/READMEdir/README_unix.txt
@@ -1,4 +1,4 @@
-README_unix.txt for version 9.1 of Vim: Vi IMproved.
+README_unix.txt for version 9.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim.
diff --git a/READMEdir/README_vms.txt b/READMEdir/README_vms.txt
index 4c47921c..6c697bb0 100644
--- a/READMEdir/README_vms.txt
+++ b/READMEdir/README_vms.txt
@@ -1,4 +1,4 @@
-README_vms.txt for version 9.1 of Vim: Vi IMproved.
+README_vms.txt for version 9.2 of Vim: Vi IMproved.
This file explains the installation of Vim on VMS systems.
See "README.txt" in the runtime archive for information about Vim.
diff --git a/READMEdir/README_w32s.txt b/READMEdir/README_w32s.txt
index d71faeb4..bbd21750 100644
--- a/READMEdir/README_w32s.txt
+++ b/READMEdir/README_w32s.txt
@@ -1,4 +1,4 @@
-README_w32s.txt for version 9.1 of Vim: Vi IMproved.
+README_w32s.txt for version 9.2 of Vim: Vi IMproved.
This file used to explain the installation of Vim on MS-Windows 3.1 and 3.11
systems. However, support for MS-Windows 3.1 and 3.11 has been removed in
diff --git a/ci/config.mk.sed b/ci/config.mk.sed
index d8889019..f667b2c0 100644
--- a/ci/config.mk.sed
+++ b/ci/config.mk.sed
@@ -1,3 +1,3 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Werror -Wno-deprecated-declarations/
-/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-shadow/
+/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-strict-prototypes -Wno-shadow/
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter -Wno-strict-prototypes/
diff --git a/ci/ddebs.list b/ci/ddebs.list
index e4491a60..f767e936 100644
--- a/ci/ddebs.list
+++ b/ci/ddebs.list
@@ -1,3 +1,2 @@
deb http://ddebs.ubuntu.com noble main restricted universe multiverse
deb http://ddebs.ubuntu.com noble-updates main restricted universe multiverse
-deb http://ddebs.ubuntu.com noble-proposed main restricted universe multiverse
diff --git a/ci/hlgroups.ignore b/ci/hlgroups.ignore
index a046eb12..681b1208 100644
--- a/ci/hlgroups.ignore
+++ b/ci/hlgroups.ignore
@@ -67,3 +67,4 @@ Visual
VisualNOS
WarningMsg
WildMenu
+WinColor
diff --git a/debian/changelog b/debian/changelog
index 503e54eb..5b009de0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,75 @@
-vim (2:9.1.1882-1deepin1) unstable; urgency=medium
+vim (2:9.2.0218-1deepin1) unstable; urgency=medium
* Set NoDisplay=true for vim.desktop
- -- Tianyu Chen Thu, 15 Jan 2026 10:29:01 +0800
+ -- lichenggang Mon, 23 Mar 2026 10:45:09 +0800
+
+vim (2:9.2.0218-1) unstable; urgency=medium
+
+ * New upstream tag
+ + 9.2.0168: Fix invalid pointer casting in string_convert(), causing test
+ failures on big-endian systems
+ + Security fixes
+ - 9.2.0137: crash when composing character as end of range in a regexp
+ collection (Closes: #1130658, CVE-2026-32249)
+ - 9.2.0202: command injection via newline in glob(), CVE-2026-33412
+
+ -- James McCoy Sat, 21 Mar 2026 07:38:26 -0400
+
+vim (2:9.2.0136-1) unstable; urgency=medium
+
+ * Merge upstream patch v9.2.0136
+ + 9.2.0132: Skip Test_recover_corrupted_swap_file1 on big-endian systems
+
+ -- James McCoy Wed, 11 Mar 2026 11:11:47 -0400
+
+vim (2:9.2.0119-1) unstable; urgency=medium
+
+ * New upstream release
+ + See ":help vim-9.2" for new features
+ + Security fixes
+ - 9.1.2148: buffer overflow in netbeans special_keys() handling (Closes:
+ #1127930, CVE-2026-26269)
+ * Merge upstream tag v9.2.0119
+ + Security fixes
+ - 9.2.0073: possible command injection using netrw (Closes: #1129427,
+ CVE-2026-28417)
+ - 9.2.0074: crash with overlong emacs tag file (Closes: #1129428,
+ CVE-2026-28418)
+ - 9.2.0075: buffer underflow with emacs tag file (Closes: #1129429,
+ CVE-2026-28419)
+ - 9.2.0076: buffer-overflow with combining characters in terminal
+ handling (Closes: #1129430, CVE-2026-28420)
+ - 9.2.0077: crash when recovering a corrupted swap file (Closes:
+ #1129431, CVE-2026-28421)
+ - 9.2.0078: stack buffer overflow when rendering a statusline with a
+ multi-byte fill character on a very wide terminal (Closes: #1129432,
+ CVE-2026-28422)
+
+ -- James McCoy Mon, 09 Mar 2026 06:50:59 -0400
+
+vim (2:9.1.2141-1) unstable; urgency=medium
+
+ * Merge upstream tag v9.1.2141
+ + Security fixes
+ - 9.1.2132: Fix buffer-overflow in 'helpfile' option handling,
+ CVE-2026-25749
+
+ -- James McCoy Mon, 09 Feb 2026 07:06:42 -0500
+
+vim (2:9.1.2103-1) unstable; urgency=medium
+
+ * Merge upstream patch v9.1.2103
+ + syntax/debcontrol.vim:
+ - Only highlight email addresses in Maintainer / Uploaders fields
+ - Add support for highlighting build profiles and architecture
+ restrictions (Closes: #1124089)
+ * Disable flaky Test_client_server_stopinsert test
+ * Remove Rules-Requires-Root, since no is the default value
+ * Remove Priority field, since optional is the default value
+ * Declare compliance with Policy 4.7.3
+
+ -- James McCoy Fri, 23 Jan 2026 06:27:15 -0500
vim (2:9.1.1882-1) unstable; urgency=medium
diff --git a/debian/changelog.upstream b/debian/changelog.upstream
deleted file mode 100644
index d0569804..00000000
--- a/debian/changelog.upstream
+++ /dev/null
@@ -1,1698 +0,0 @@
-Patches for Vim - Vi IMproved 9.0
-
-The files in this directory contain source code changes to fix problems
-in a released version of Vim. Each file also contains an explanation of
-the problem that is fixed, like the message that was sent to the vim-dev
-maillist.
-
-The best is to apply the patches in sequence. This avoids problems when
-a patch depends on a previous patch.
-
-Before patching, change to the top Vim directory, where the "src" and
-"runtime" directories are located.
-Depending on the version of "patch" that you use, you may have add an
-argument to make it patch the right file:
- patch -p < 9.0.0001
- patch -p0 < 9.0.0001
-
-After applying a patch, you need to compile Vim. There are no patches
-for binaries.
-
-Checksums for the patch files can be found in the file MD5SUMS.
-
-
-Individual patches for Vim 9.0:
-
- SIZE NAME FIXES
- 10943 9.0.0001 Travis CI is no longer used
- 7187 9.0.0002 map functionality outside of map.c
- 13500 9.0.0003 functions are global while they could be local
- 3161 9.0.0004 plural messages not translated properly
- 1987 9.0.0005 hare files are not recognized
- 7042 9.0.0006 not all Visual Basic files are recognized
- 23035 9.0.0007 no support for double, dotted and dashed underlines
- 6874 9.0.0008 cannot specify the variable name for "xxd -i"
- 2278 9.0.0009 going past the end of a menu item with only modifier
- 3026 9.0.0010 returning 0 for has('patch-9.0.0') is inconsistent
- 1982 9.0.0011 reading beyond the end of the line with put command
- 5607 9.0.0012 signature files not detected properly
- 22831 9.0.0013 reproducing memory access errors can be difficult
- 2178 9.0.0014 missing part of the test override change
- 2455 9.0.0015 with EXITFREE defined terminal menus are not cleared
- 6026 9.0.0016 comparing line pointer for 'breakindent' is not reliable
- 1968 9.0.0017 accessing memory beyond the end of the line
- 2237 9.0.0018 going over the end of the typahead
- 2038 9.0.0019 timers test not run where possible
- 2512 9.0.0020 with some completion reading past end of string
- 3392 9.0.0021 invalid memory access when adding word to spell word list
- 1537 9.0.0022 spell test fails
- 7528 9.0.0023 on Solaris timer_create() exists but does not work
- 1807 9.0.0024 may access part of typeahead buf that isn't filled
- 2411 9.0.0025 accessing beyond allocated memory with the cmdline window
- 2597 9.0.0026 accessing freed memory with diff put
- 28245 9.0.0027 the command line test is getting quite big
- 3048 9.0.0028 MS-Windows: tests fail if there is a "runtime" directory
- 4014 9.0.0029 the bitmaps/vim.ico file is not in the distribution
- 1834 9.0.0030 matchfuzzy test depends on path of current directory
- 6659 9.0.0031 of user command does not have correct verbose value
- 3962 9.0.0032 in the quickfix window 'cursorline' overrules QuickFixLine
- 2617 9.0.0033 on a Belgian keyboard CTRL-[ does not work
- 3121 9.0.0034 spell tests do not always clear the word list
- 2749 9.0.0035 spell dump may go beyond end of an array
- 43198 9.0.0036 'fillchars' cannot have window-local values
- 1806 9.0.0037 build error
- 3496 9.0.0038 'listchars' test fails
- 1584 9.0.0039 not all systems have GDK_KEY_dead_circumflex
- 15109 9.0.0040 use of set_chars_option() is confusing
- 5565 9.0.0041 a couple of filetype patterns do not have "*" before "/etc"
- 1498 9.0.0042 missing change for filetype detection
- 3054 9.0.0043 insufficient testing for bracket commands
- 4013 9.0.0044 typos in comments, wrapping lines
- 8646 9.0.0045 reading past end of completion with a long line
- 2228 9.0.0046 reading past end of completion with duplicate match
- 2821 9.0.0047 using freed memory with recursive substitute
- 21444 9.0.0048 cursor in wrong column with mouse click after concealed text
- 2452 9.0.0049 csv and tsv files are not recognized
- 1553 9.0.0050 split else-if is confusing
- 2767 9.0.0051 using CTRL-C wih :append may hang Vim
- 3201 9.0.0052 "zG" may throw an error if invalid character follows
- 2194 9.0.0053 E1281 not tested with the old regexp engine
- 1608 9.0.0054 compiler warning for size_t to int conversion
- 4433 9.0.0055 bitbake files are not detected
- 2158 9.0.0056 wrong line number reported when :cexpr fails in :def function
- 2009 9.0.0057 has('patch-xxx') returns true
- 8298 9.0.0058 Win32: cannot test low level events
- 11801 9.0.0059 test file has wrong name
- 2022 9.0.0060 accessing uninitialized memory when completing long line
- 5900 9.0.0061 ml_get error with nested autocommand
- 1889 9.0.0062 compiler warnings for signed/unsigned char
- 57792 9.0.0063 too many type casts for dict_get functions
- 2537 9.0.0064 confusing error when using "q:" in command line window
- 6470 9.0.0065 cross-compiling doesn't work because of timer_create check
- 2828 9.0.0066 switching window uneccarily when getting buffer options
- 76728 9.0.0067 cannot show virtual text
- 1896 9.0.0068 build fails with tiny features
- 1595 9.0.0069 leaking memory when using text prop with inserted text
- 2892 9.0.0070 using utfc_ptr2char_len() when length is negative
- 2635 9.0.0071 command overlaps with printed text in scrollback
- 1617 9.0.0072 compiler warning for uninitialized variable
- 3866 9.0.0073 too many files recognized as bsdl
- 2538 9.0.0074 Coverity warns for double free
- 2021 9.0.0075 some compilers warn for using an uninitialized variable
- 2302 9.0.0076 no test for what patch 8.1.1424 fixes
- 4067 9.0.0077 wrong restored cursor position if switching window in autocmd
- 4153 9.0.0078 star register is unexpectedly changed when deleting
- 3168 9.0.0079 error in autoload script not reported for 'foldexpr'
- 2242 9.0.0080 compiler warning for size_t to int conversion
- 2614 9.0.0081 command line completion of user command may have duplicates
- 3965 9.0.0082 cannot interrupt global command from command line
- 8265 9.0.0083 ModeChanged event not triggered when leaving cmdline window
- 2596 9.0.0084 using "terraform" filetype for .tfvars file is bad
- 2232 9.0.0085 ":write" fails after ":file name" and then ":edit"
- 2801 9.0.0086 tabline is not redrawn when entering command line
- 9266 9.0.0087 MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc
- 2810 9.0.0088 pattern for detecting bitbake files is not sufficient
- 2771 9.0.0089 fuzzy argument completion doesn't work for shell commands
- 3448 9.0.0090 no error when assigning bool to a string option
- 1571 9.0.0091 duplicate error number
- 3344 9.0.0092 plugins cannot change v:completed_item
- 2610 9.0.0093 sway config files are recognized as i3config
- 3305 9.0.0094 cursor restored unexpected with nested autocommand
- 3211 9.0.0095 conditions are always true
- 9909 9.0.0096 flag "new_value_alloced" is always true
- 3080 9.0.0097 long quickfix line is truncated for :clist
- 4463 9.0.0098 missing include file in timer_create configure check
- 6440 9.0.0099 scrollback can be wrong after redrawing the command line
- 1791 9.0.0100 get hit-enter prompt for system() when '!' is in 'guioptions'
- 2794 9.0.0101 invalid memory access in diff mode with "dp" and undo
- 1977 9.0.0102 reading past end of line with insert mode completion
- 10290 9.0.0103 if running configure with cached results -lrt may be missing
- 2192 9.0.0104 going beyond allocated memory when evaluating string constant
- 4082 9.0.0105 illegal memory access when pattern starts with illegal byte
- 1965 9.0.0106 illegal byte regexp test doesn't fail when fix is reversed
- 1679 9.0.0107 condition always has the same value
- 3603 9.0.0108 configure check for timer_create may give wrong error
- 3041 9.0.0109 writing over the end of a buffer on stack
- 6200 9.0.0110 help tag generation picks up words in code examples
- 3507 9.0.0111 "nocombine" is missing from synIDattr()
- 2215 9.0.0112 MS-Windows: test fails because file already exists
- 3585 9.0.0113 has() is not strict about parsing the patch version
- 20547 9.0.0114 the command line takes up space even when not used
- 3596 9.0.0115 when 'cmdheight' is zero pressing ':' may scroll a window
- 4387 9.0.0116 virtual text not displayed if 'signcolumn' is "yes"
- 4359 9.0.0117 text of removed textprop with text is not freed
- 5408 9.0.0118 no test for what patch 9.0.0115 fixes
- 2331 9.0.0119 tiny chance that creating a backup file fails
- 2374 9.0.0120 MS-Windows GUI: cannot use AltGr + Space
- 25626 9.0.0121 cannot put virtual text after or below a line
- 2021 9.0.0122 breakindent test fails
- 1599 9.0.0123 cannot build with small features
- 20585 9.0.0124 code has more indent than needed
- 3234 9.0.0125 cursor positioned wrong with virtual text after the line
- 3110 9.0.0126 expanding file names fails in dir with more than 255 entries
- 1607 9.0.0127 unused variable
- 2669 9.0.0128 Coverity complains about possible double free
- 1558 9.0.0129 compiler warning for int/size_t usage
- 5275 9.0.0130 cursor position wrong when inserting around virtual text
- 4402 9.0.0131 virtual text with Tab is not displayed correctly
- 9119 9.0.0132 multi-byte characters in virtual text not handled correctly
- 8894 9.0.0133 virtual text after line moves to joined line
- 2416 9.0.0134 no test for text property with column zero
- 2321 9.0.0135 comment about tabpage line above the wrong code
- 2556 9.0.0136 after CTRL-Left-mouse click a mouse scroll also has CTRL
- 1489 9.0.0137 debugger test may fail when $CWD is very long
- 4083 9.0.0138 not enough characters accepted for 'spellfile'
- 19135 9.0.0139 truncating virtual text after a line not implemented
- 3634 9.0.0140 execute() does not use the "legacy" command modifier
- 3107 9.0.0141 "delmenu" does not remove autocmmands
- 4144 9.0.0142 crash when adding and removing virtual text
- 7209 9.0.0143 cursor positioned after virtual text in empty line
- 6648 9.0.0144 text property cannot override 'cursorline' highlight
- 9354 9.0.0145 substitute that joins lines drops text properties
- 4116 9.0.0146 missing part of change for "override" flag
- 3791 9.0.0147 cursor positioned wrong after two "below" text properties
- 3348 9.0.0148 a "below" aligned text property gets 'showbreak' displayed
- 2744 9.0.0149 test for fuzzy completion fails sometimes
- 4119 9.0.0150 error for using #{ in an expression is a bit confusing
- 73530 9.0.0151 a "below" aligned text property does not work with 'nowrap'
- 1616 9.0.0152 warning for unused argument in small build
- 85848 9.0.0153 no fold and sign column for virtual text with "below" align
- 10213 9.0.0154 text properties wrong after splitting a line
- 7252 9.0.0155 text properties "right" and "after" wrong with 'nowrap'
- 5883 9.0.0156 giving E1170 only in an expression is confusing
- 5456 9.0.0157 'showbreak' displayed below truncated "after" text prop
- 6984 9.0.0158 with 'nowrap' "below" property not displayed correctly
- 1981 9.0.0159 cannot build with small features
- 1612 9.0.0160 some diff mode tests fail
- 1692 9.0.0161 warning for uninitialized variable
- 3263 9.0.0162 text property "below" gets indent if 'breakindent' is set
- 2771 9.0.0163 text property not adjusted for text inserted with "p"
- 2051 9.0.0164 using freed memory with put command
- 10170 9.0.0165 looking up a text property type by ID is slow
- 2762 9.0.0166 when using text properties line text length computed twice
- 2445 9.0.0167 checking for text properties could be a bit more efficient
- 12352 9.0.0168 cursor positioned wrong with two virtual text properties
- 2982 9.0.0169 insufficient testing for line2byte() with text properties
- 4918 9.0.0170 various minor code formatting issues
- 1929 9.0.0171 quickfix line highlight is overruled by 'cursorline'
- 2292 9.0.0172 trying to allocate zero bytes
- 1718 9.0.0173 assert fails only on MS-Windows
- 2230 9.0.0174 no error for using "#{ comment" in a compiled function
- 3698 9.0.0175 spell checking for capital not working with trailing space
- 5960 9.0.0176 checking character options is duplicated and incomplete
- 3553 9.0.0177 cursor position wrong with 'virtualedit' and mouse click
- 12603 9.0.0178 cursor position wrong with virtual text before Tab
- 10693 9.0.0179 cursor pos wrong with wrapping virtual text in empty line
- 1599 9.0.0180 stray logfile appears when running tests
- 8334 9.0.0181 textprop test with line2byte() fails on MS-Windows
- 2585 9.0.0182 quarto files are not recognized
- 4622 9.0.0183 extra space after virtual text when 'linebreak' is set
- 2851 9.0.0184 virtual text prop highlight continues after truncation
- 5393 9.0.0185 virtual text does not show if text prop at same position
- 10322 9.0.0186 virtual text without highlighting does not show
- 2194 9.0.0187 command line height changes when maximizing window height
- 2491 9.0.0188 strange effects when using "text_align" with non-zero column
- 2050 9.0.0189 invalid memory access for text prop without highlight
- 6751 9.0.0190 the way 'cmdheight' can be made zero is inconsistent
- 3834 9.0.0191 messages test fails; window size incorrect
- 2600 9.0.0192 possible invalid memory access when 'cmdheight' is zero
- 11352 9.0.0193 search and match highlight interfere with virtual text
- 5895 9.0.0194 cursor displayed in wrong position after removing text prop
- 2540 9.0.0195 metafun files are not recogized
- 17289 9.0.0196 finding value in list may require a for loop
- 2045 9.0.0197 astro files are not detected
- 2284 9.0.0198 ml_get error when switching buffer in Visual mode
- 5503 9.0.0199 cursor position wrong with two right-aligned virtual texts
- 8402 9.0.0200 cursor wrong if 'nowrap' and two right aligned text props
- 6257 9.0.0201 CursorLine highlight overrules virtual text highlight
- 10832 9.0.0202 code and help for indexof() is not ideal
- 7107 9.0.0203 confusing variable name
- 5210 9.0.0204 indexof() may leak memory
- 8258 9.0.0205 cursor in wrong position when inserting after virtual text
-175700 9.0.0206 redraw flags are not named specifically
- 2859 9.0.0207 stacktrace not shown when debugging
- 5593 9.0.0208 the override flag has no effect for virtual text
- 2383 9.0.0209 build error with small features
- 7914 9.0.0210 'list' mode does not work properly with virtual text
- 2315 9.0.0211 invalid memory access when compiling :lockvar
- 2221 9.0.0212 invalid memory access when compiling :unlet
- 3090 9.0.0213 using freed memory with error in assert argument
- 11813 9.0.0214 splitting a line may duplicate virtual text
- 1732 9.0.0215 not passing APC_INDENT flag
- 2211 9.0.0216 undo earlier test sometimes fails on MS-Windows
- 4327 9.0.0217 'shellslash' works differently when sourcing a script again
- 2922 9.0.0218 reading before the start of the line
- 4005 9.0.0219 cannot make a funcref with "s:func" in a def function
- 3758 9.0.0220 invalid memory access with for loop over NULL string
- 3307 9.0.0221 accessing freed memory if compiling nested function fails
- 14260 9.0.0222 no good reason why text objects are only in larger builds
- 1750 9.0.0223 typo in diffmode test
- 2841 9.0.0224 Using NULL pointer when skipping compiled code
- 8498 9.0.0225 using freed memory with multiple line breaks in expression
- 1744 9.0.0226 job_start() test may fail under valgrind
- 1826 9.0.0227 cannot read error message when abort() is called
- 3601 9.0.0228 crash when pattern looks below the last line
- 7271 9.0.0229 Vim9: error message for missing type is not clear
- 8754 9.0.0230 no error for comma missing in list in :def function
- 3663 9.0.0231 expanding "**" may loop forever with directory links
- 2439 9.0.0232 test with BufNewFile autocmd is flaky
- 16452 9.0.0233 removing multiple text properties takes many calls
- 3115 9.0.0234 cannot make difference between :normal end and argument char
- 3539 9.0.0235 'autoshelldir' does not work with chunked respose
- 2162 9.0.0236 popup menu not removed when 'wildmenu' reset while visible
- 1521 9.0.0237 Mac: cannot build if dispatch.h is not available
- 2690 9.0.0238 Shift-Tab shows matches on cmdline when 'wildmenu' is off
- 1646 9.0.0239 build failure without the +wildmenu feature
- 2485 9.0.0240 crash when using ":mkspell" with an empty .dic file
- 3716 9.0.0241 "make install" does not install shared syntax file
- 2533 9.0.0242 "make install" still fails
- 2016 9.0.0243 text properties "below" sort differently on MS-Windows
- 8292 9.0.0244 cannot easily get the list of sourced scripts
- 15012 9.0.0245 mechanism to prevent recursive screen updating is incomplete
- 2774 9.0.0246 using freed memory when 'tagfunc' deletes the buffer
- 36292 9.0.0247 cannot add padding to virtual text without highlight
- 2721 9.0.0248 duplicate code in finding a script in the execution stack
- 2079 9.0.0249 no test for what 9.0.0234 fixes
- 2009 9.0.0250 slightly inconsistent error messages
- 1562 9.0.0251 test output shows up in git
- 4311 9.0.0252 cursor in wrong place after virtual text
- 16714 9.0.0253 a symlink to an autoload script results in two entries
- 2502 9.0.0254 typo in function name
- 1616 9.0.0255 build failure without the eval feature
- 2188 9.0.0256 compiler warning for uninitialized variables
- 1895 9.0.0257 "->" in ":scriptnames" output not tested yet
- 2518 9.0.0258 MS-Windows installer skips syntax/shared
- 5477 9.0.0259 crash with mouse click when not initialized
- 2511 9.0.0260 using freed memory when using 'quickfixtextfunc' recursively
- 4085 9.0.0261 bufload() reads a file even if the name is not a file name
- 1367 9.0.0262 build failure without the +quickfix feature
- 19310 9.0.0263 too many #ifdefs
- 2628 9.0.0264 CI still runs on Ubuntu 18.04
- 32267 9.0.0265 no good reason why the "gf" command isn't in the tiny version
- 1874 9.0.0266 compiler warning for unused argument
- 1374 9.0.0267 Coverity workflow still uses Ubuntu 18.04
- 1546 9.0.0268 build error without the +eval feature
- 10096 9.0.0269 getscriptinfo() does not include the version
- 20354 9.0.0270 some values of 'path' and 'tags' invalid in the tiny version
- 2819 9.0.0271 using INIT() in non-header files
- 4566 9.0.0272 BufReadCmd not triggered when loading a "nofile" buffer
- 3480 9.0.0273 Konsole termresponse not recognized
- 4905 9.0.0274 netrw plugin does not show remote files
- 2497 9.0.0275 BufEnter not triggered when using ":edit" in "nofile" buffer
- 5701 9.0.0276 'buftype' values not sufficiently tested
- 1876 9.0.0277 Coverity CI: update-alternatives not needed with Ubuntu 20.04
- 11316 9.0.0278 the +wildignore feature is nearly always available
- 22379 9.0.0279 the tiny version has the popup menu but not 'wildmenu'
- 13858 9.0.0280 the builtin termcap list depends on the version
- 2212 9.0.0281 build failure without the +eval feature
- 2709 9.0.0282 a nested timout stops the previous timeout
- 4048 9.0.0283 cannot complete "syn list @cluster"
- 5126 9.0.0284 using static buffer for multiple completion functions
- 12614 9.0.0285 it is not easy to change the command line from a plugin
- 6956 9.0.0286 using freed memory when location list changed in autocmd
- 10182 9.0.0287 Irix systems no longer exist
- 26570 9.0.0288 when 'cmdheight' is zero some messages are not displayed
- 2637 9.0.0289 invalid memory write
- 2739 9.0.0290 compiler warning for variable set but not used
- 1475 9.0.0291 test failing
- 1891 9.0.0292 test causes another test to fail
- 2452 9.0.0293 messages window not hidden when starting a command line
- 5546 9.0.0294 crash when 'cmdheight' is 0 and popup_clear() used
- 2056 9.0.0295 GUI drop files test sometimes fails
- 4522 9.0.0296 message in popup is shortened unnecessary
- 6894 9.0.0297 cursor position wrong after right aligned virtual text
- 1687 9.0.0298 compiler warning for size_t to int conversion
- 3958 9.0.0299 error messages for setcmdline() could be better
- 8873 9.0.0300 'cpoptions' tests are flaky
- 1923 9.0.0301 the message window popup is delayed after an error message
- 1673 9.0.0302 CI for Coverity is bothered by deprecation warnings
- 12644 9.0.0303 it is not easy to get information about a script
- 4880 9.0.0304 WinScrolled is not triggered when only skipcol changes
- 1864 9.0.0305 CI lists useless deprecation warnings
- 3492 9.0.0306 buffer write message is two lines in message popup window
- 5221 9.0.0307 :echomsg doesn't work properly with cmdheight=0
- 2493 9.0.0308 when cmdheight is zero the attention prompt doesn't show
- 2070 9.0.0309 invalid memory access when cmdheight is zero
- 2186 9.0.0310 output of :messages dissappears when cmdheight is zero
- 1495 9.0.0311 test for hit-Enter prompt fails
- 1458 9.0.0312 test for cmdheight zero fails
- 20026 9.0.0313 using common name in tests leads to flaky tests
- 2196 9.0.0314 VDM files are not recognized
- 2325 9.0.0315 shell command is displayed in message window
- 4143 9.0.0316 screen flickers when 'cmdheight' is zero
- 7030 9.0.0317 when updating the whole screen a popup may not be redrawn
- 14668 9.0.0318 clearing screen causes flicker
- 2314 9.0.0319 Godot shader files are not recognized
- 7900 9.0.0320 command line type of CmdlineChange differs from getcmdtype()
- 14484 9.0.0321 cannot use the message popup window directly
- 2301 9.0.0322 crash when no errors and 'quickfixtextfunc' is set
-121190 9.0.0323 using common name in tests leads to flaky tests
- 7684 9.0.0324 MS-Windows: resolve() test fails
- 2966 9.0.0325 MS-Windows: completion test fails
- 2011 9.0.0326 some changes for cmdheight=0 are not needed
- 8874 9.0.0327 items() does not work on a list
- 9308 9.0.0328 OLD_DIGRAPHS is unused
- 2410 9.0.0329 ":highlight" hangs when 'cmdheight' is zero
- 2910 9.0.0330 method tests fail
- 11851 9.0.0331 cannot use items() on a string
- 3042 9.0.0332 overwrite check may block BufWriteCmd
- 2328 9.0.0333 method test fails
- 1797 9.0.0334 test does not properly clean up
- 46698 9.0.0335 checks for Dictionary argument often give a vague error
- 60128 9.0.0336 tests are flaky because of using a common file name
- 1480 9.0.0337 flicker when resetting cmdline_row after updating the screen
- 6289 9.0.0338 return value of list_append_list() not always checked
- 2092 9.0.0339 no check if the return value of XChangeGC() is NULL
- 38773 9.0.0340 the 'cmdheight' zero support causes too much trouble
- 4041 9.0.0341 mapset() does not restore mapping properly
- 11317 9.0.0342 ":wincmd =" equalizes in two directions
- 3601 9.0.0343 ColorScheme autocommand triggered when colorscheme not found
- 2907 9.0.0344 MS-Windows: background color wrong in Console
- 22292 9.0.0345 error message for list argument could be clearer
- 4941 9.0.0346 :horizontal modifier not fully supported
- 5486 9.0.0347 MS-Windows: cannot set cursor shape in Windows Terminal
- 3960 9.0.0348 MS-Windows: GUI mouse move event test is flaky
- 5394 9.0.0349 filetype of *.sil files not well detected
- 9580 9.0.0350 :echowindow does not work in a compiled function
- 4158 9.0.0351 message window may obscure the command line
- 3141 9.0.0352 using :echowindow in a timer clears part of message
- 1359 9.0.0353 missing entry in switch
- 1768 9.0.0354 MS-Windows: starting a python server for test sometimes fails
- 2781 9.0.0355 check for uppercase char in autoload name is wrong
- 3771 9.0.0356 :echowindow sets the in_echowindow flag too early
- 6055 9.0.0357 'linebreak' interferes with text property highlight
- 4452 9.0.0358 'breakindent' does not indent non-lists
- 28606 9.0.0359 error message for wrong argument type is not specific
- 2741 9.0.0360 crash when invalid line number on :for is ignored
- 3593 9.0.0361 removing a listener may result in a memory leak
- 3554 9.0.0362 expanding ":e %" does not work for remote files
-138526 9.0.0363 common names in test files causes tests to be flaky
- 6137 9.0.0364 clang static analyzer gives warnings
- 2234 9.0.0365 file name used in test is unusual
- 4430 9.0.0366 cannot use import->Func() in lambda
- 3837 9.0.0367 Coverity complains about dropping sign of character
- 1418 9.0.0368 old Coverity warning for using NULL pointer
- 3607 9.0.0369 a failing flaky test doesn't mention the time
- 44716 9.0.0370 cleaning up afterwards can make a function messy
- 1721 9.0.0371 compiler warning for uninitialized variable
- 2872 9.0.0372 MS-Windows: "%T" time format does not appear to work
- 2620 9.0.0373 Coverity warns for NULL check and unused return value
- 4174 9.0.0374 Coverity still complains about dropping sign of character
- 9141 9.0.0375 the footer feature is unused
- 7546 9.0.0376 clang warns for dead assignments
- 1474 9.0.0377 argument assignment does not work
- 1579 9.0.0378 compiler warning for uninitialized variable
- 20849 9.0.0379 cleaning up after writefile() is a hassle
- 24808 9.0.0380 deleting files in tests is a hassle
- 1810 9.0.0381 writefile test leaves files behind
- 2314 9.0.0382 freeing the wrong string on failure
- 2230 9.0.0383 Coverity complains about unused value
- 2611 9.0.0384 Covertity still complains about using return value of getc()
- 1839 9.0.0385 GUI: when CTRL-D is mapped in Insert mode it gets inserted
- 13495 9.0.0386 some code blocks are nested too deep
- 7860 9.0.0387 repeat mapping doesn't use right script context
- 19268 9.0.0388 the do_arg_all() function is too long
- 2957 9.0.0389 crash when 'tagfunc' closes the window
- 5208 9.0.0390 cannot use a partial with :defer
- 14502 9.0.0391 using separate delete() call instead of writefile() 'D' flag
- 2145 9.0.0392 inverted condition is a bit confusing
- 3728 9.0.0393 signals test often fails on FreeBSD
- 3364 9.0.0394 Cygwin: multibyte characters may be broken in terminal window
- 1518 9.0.0395 clang warnings for function prototypes
- 2583 9.0.0396 :findrepl does not escape '&' and '~' properly
- 12285 9.0.0397 :defer not tested with exceptions and ":qa!"
- 45368 9.0.0398 members of funccall_T are inconsistently named
- 6152 9.0.0399 using :defer in expression funcref not tested
- 2081 9.0.0400 GUI test sometimes hangs on CI
- 3132 9.0.0401 CI uses older clang version
- 2823 9.0.0402 javascript module files are not recoginzed
- 2770 9.0.0403 'equalalways' may be off when 'laststatus' is zero
- 3587 9.0.0404 crash when passing invalid arguments to assert_fails()
- 10100 9.0.0405 arguments in a partial not used by a :def function
- 6599 9.0.0406 deferred functions not invoked when partial func exits
- 4141 9.0.0407 matchstr() does match column offset
- 1499 9.0.0408 GUI test sometimes fails on MS-Windows
- 2760 9.0.0409 #{g:x} was seen as a curly-braces expression
- 1911 9.0.0410 struct member cts_lnum is unused
- 16064 9.0.0411 only created files can be cleaned up with one call
- 1454 9.0.0412 compiler warning for unused argument
- 1981 9.0.0413 ASAN reports a memory leak
- 3680 9.0.0414 matchstr() still does not match column offset
- 4598 9.0.0415 on MS-Windows some tests are flaky
- 3613 9.0.0416 ml_get error when appending lines in popup window
- 2142 9.0.0417 Jsonnet files are not recognized
- 55521 9.0.0418 manually deleting temp test files
- 18265 9.0.0419 the :defer command does not check the function arguments
- 1909 9.0.0420 function went missing
- 5398 9.0.0421 MS-Windows makefiles are inconsistently named
- 5509 9.0.0422 not enough testing of the :all command
- 4742 9.0.0423 "for" and "while" not recognized after :vim9cmd and :legacy
- 3382 9.0.0424 gitattributes files are not recognized
- 2312 9.0.0425 autocmd test is a bit flaky on MS-Windows
- 1935 9.0.0426 failed flaky tests report only start time
- 7066 9.0.0427 Drupal theme files are not recognized
- 8383 9.0.0428 autocmd test uses common file name
- 6733 9.0.0429 not all keys are tested for the MS-Windows GUI
- 10107 9.0.0430 cannot use repeat() with a blob
- 2905 9.0.0431 current mode shows in message window
- 4425 9.0.0432 crash when using for loop variable in closure
- 2249 9.0.0433 Coverity warns for not checking allocation failure
- 3938 9.0.0434 gitignore files are not recognized
- 1488 9.0.0435 compiler warning for uninitialized variable
- 19155 9.0.0436 CI: running tests in parallel causes flakiness
- 3634 9.0.0437 no error when custom completion function returns wrong type
- 24613 9.0.0438 cannot put virtual text above a line
- 3606 9.0.0439 cursor wrong if inserting before line with virtual text above
- 13683 9.0.0440 crash when using mkdir() with "R" flag in compiled function
- 1751 9.0.0441 closure in for loop test fails on some systems
- 6910 9.0.0442 virtual text "above" doesn't handel line numbers
- 2761 9.0.0443 blueprint files are not recognized
- 10590 9.0.0444 trying to declare g:variable gives confusing error
- 20440 9.0.0445 when opening/closing window text moves up/down
- 2512 9.0.0446 message window may be positioned too low
- 7933 9.0.0447 using :echowin while at the hit-enter prompt causes problems
- 2151 9.0.0448 SubRip files are not recognized
- 14239 9.0.0449 there is no easy way to translate a key code into a string
- 5741 9.0.0450 return value of argument check functions is inconsistent
- 9832 9.0.0451 virtual text "above" does not work with 'nowrap'
- 8727 9.0.0452 Visual highlighting extends into virtual text prop
- 20323 9.0.0453 on an AZERTY keyboard digit keys get the shift modifier
- 2537 9.0.0454 incorrect color for modeless selection with GTK
- 7400 9.0.0455 a few problems with 'splitscroll'
- 1563 9.0.0456 function called at debug prompt is also debugged
- 3188 9.0.0457 substitute prompt does not highlight an empty match
- 4858 9.0.0458 splitting a line with a text prop "above" moves it down
- 4237 9.0.0459 Vim9: block in for loop doesn't behave like a code block
- 10731 9.0.0460 loop variable can't be found
- 2896 9.0.0461 'scroll' is not always updated
- 1593 9.0.0462 ASAN warning for integer overflow
- 2544 9.0.0463 command line test leaves directory behind
- 3720 9.0.0464 with virtual text "above" indenting doesn't work well
- 2960 9.0.0465 cursor moves when cmdwin is closed when 'splitscroll' is off
- 8559 9.0.0466 virtual text wrong after adding line break after line
- 1877 9.0.0467 build failure
- 1498 9.0.0468 exectution stack underflow without the +eval feature
- 3213 9.0.0469 cursor moves if cmdwin is closed when 'splitscroll' is off
- 36637 9.0.0470 in :def function all closures in loop get the same variables
- 2340 9.0.0471 no test for what patch 9.0.0469 fixes
- 3010 9.0.0472 virtual text "below" doesn't show in list mode
- 7607 9.0.0473 fullcommand() only works for the current script version
- 1735 9.0.0474 fullcommand() test failure
- 17026 9.0.0475 not using deferred delete in tests
- 6049 9.0.0476 varargs does not work for replacement function of substitute()
- 2580 9.0.0477 missing dependency may cause crashes on incomplete build
- 13833 9.0.0478 test for 'splitscroll' takes too much time
- 2079 9.0.0479 Valve Date Format files are not recognized
- 2648 9.0.0480 cannot use a :def varargs function with substitute()
- 34795 9.0.0481 in :def function all closures in loop get the same variables
- 8567 9.0.0482 "g0" moves to wrong location with virtual text "above"
- 2832 9.0.0483 illegal memory access when replacing in virtualedit mode
- 14182 9.0.0484 in :def function all closures in loop get the same variables
- 14923 9.0.0485 in :def function all closures in loop get the same variables
- 4175 9.0.0486 text scrolled with 'nosplitscroll', autocmd win and help
- 5318 9.0.0487 using freed memory with combination of closures
- 2797 9.0.0488 cursor wrong with virtual text "above" and 'showbreak'
- 4184 9.0.0489 using "end_lnum" with virtual text causes problems
- 2988 9.0.0490 using freed memory with cmdwin and BufEnter autocmd
-184992 9.0.0491 no good reason to build without the float feature
- 1442 9.0.0492 cmdwin test fails on MS-Windows
- 1424 9.0.0493 Perl test fails
- 1620 9.0.0494 small build misses float function declaraitons
- 2933 9.0.0495 closure doesn't work properly in nested loop
- 29507 9.0.0496 no good reason to keep supporting Windows-XP
- 2026 9.0.0497 LyRiCs files are not recognized
- 7048 9.0.0498 various small issues
- 2145 9.0.0499 in :def function list created after const is locked
- 6401 9.0.0500 when quitting cmdline window with CTRL-C it remains visible
- 2109 9.0.0501 warning for using uninitialized value in mouse test
- 53374 9.0.0502 a closure in a nested loop in a :def function does not work
- 2485 9.0.0503 build failure
- 3179 9.0.0504 still a build failure
- 8175 9.0.0505 various problems with 'nosplitscroll'
- 2364 9.0.0506 line number argument for :badd does not work
- 3311 9.0.0507 cmdline cleared when using :redrawstatus in CmdlineChanged
- 3765 9.0.0508 when the channel test fails there is no clue why
- 3075 9.0.0509 confusing error for "saveas" command with "nofile" buffer
- 2001 9.0.0510 Chatito files are not recognized
- 3877 9.0.0511 unnecessary scrolling for message of only one line
- 4147 9.0.0512 cannot redraw the status lines when editing a command
- 3391 9.0.0513 may not be able to use a pattern ad the debug prompt
- 1945 9.0.0514 terminal test sometimes hangs
- 31656 9.0.0515 virtual text highlight starts too early when 'number' is set
- 16914 9.0.0516 virtual text "above" highlights gap after it
- 6543 9.0.0517 when at the command line :redrawstatus does not work well
- 4905 9.0.0518 virtual text highlight starts too early with 'nowrap'
- 28323 9.0.0519 the win_line() function is much too long
- 5674 9.0.0520 declaring a loop variable at the start of a block is clumsy
- 1602 9.0.0521 compiler warns for unused argument in small version
- 1572 9.0.0522 build fails on Appveyor
- 1944 9.0.0523 more compiler warnings for arguments in small version
- 10035 9.0.0524 build instructions for MS-Windows are outdated
- 31804 9.0.0525 manually deleting temp test files
- 3185 9.0.0526 MS-Windows: still some support for XP and old compilers
- 3003 9.0.0527 long sign text may overflow buffer
- 6979 9.0.0528 MS-Windows: no batch files for more recent MSVC versions
- 1880 9.0.0529 appveyor setup contains outdated lines
- 2786 9.0.0530 using freed memory when autocmd changes mark
- 27822 9.0.0531 the win_line() function is much too long
- 10830 9.0.0532 edit test is flaky when run under valgrind
- 14739 9.0.0533 the win_line() function is much too long
- 14926 9.0.0534 line number is displayed at virtual text "above"
- 4280 9.0.0535 closure gets wrong value in for loop with two loop variables
- 1670 9.0.0536 CI: codecov action update available
- 28246 9.0.0537 the do_set() function is much too long
- 23687 9.0.0538 manually deleting test temp files
- 1862 9.0.0539 long message test can be flaky
- 6536 9.0.0540 assigning stack variable to argument confuses Coverity
- 1845 9.0.0541 terminal pwd test fails with a very long path name
-381180 9.0.0542 MSVC build still has support for 2012 edition
- 5607 9.0.0543 insufficient testing for assert and test functions
- 3662 9.0.0544 minor issues with setting a string option
- 3964 9.0.0545 when a test is slow and CI times out there is no time info
- 33364 9.0.0546 supporting Ruby 1.8 makes code complicated
- 2645 9.0.0547 looping over empty out_loop[] entries
- 10294 9.0.0548 reduce() with a compiled lambda could be faster
- 4584 9.0.0549 duplicated code in calling a :def function
- 4594 9.0.0550 crash when closing a tabpage and buffer is NULL
- 2356 9.0.0551 mode message is delayed when :echowin was used
- 2710 9.0.0552 crash when using NUL in buffer that uses :source
- 2986 9.0.0553 no error for "|" after "{" in lamda
- 4521 9.0.0554 using freed memory when command follows lambda
- 5644 9.0.0555 scrolling with 'nosplitscroll' in callback changing curwin
- 1457 9.0.0556 leaking memory with nested functions
- 3437 9.0.0557 valgrind reports possibly leaked memory
- 1691 9.0.0558 Coverity warns for possibly using NULL pointer
- 1885 9.0.0559 timer test may get stuck at hit-enter prompt
- 10335 9.0.0560 elapsed time since testing started is not visible
- 2335 9.0.0561 when a test gets stuck it just hangs forever
- 1959 9.0.0562 HSL playlist files are not recognized
- 2975 9.0.0563 timer_info() test fails
- 5357 9.0.0564 a few tests keep failing on MacOS M1
- 1914 9.0.0565 cscope test causes problems with test timeout timer
- 2312 9.0.0566 Nim files are not recognized
- 4245 9.0.0567 'completeopt' "longest" is not used for complete()
- 13084 9.0.0568 autocmd code is indented more than needed
- 3445 9.0.0569 cannot easily get out when using "vim file | grep word"
- 1749 9.0.0570 CI for Windows is still using codecov action 3.1.0
- 3247 9.0.0571 MS-Windows: CTRL-C can make Vim exit
- 2549 9.0.0572 insert complete tests leave a mapping behind
- 1399 9.0.0573 outdated dependencies go unnoticed
- 1678 9.0.0574 timer garbage collect test hangs on Mac M1
- 3412 9.0.0575 the getchar() function behaves strangely with bracketed paste
- 2292 9.0.0576 unused loop variables
- 26127 9.0.0577 buffer underflow with unexpected :finally
- 1393 9.0.0578 one timer test fails on Mac M1
- 7070 9.0.0579 using freed memory when 'tagfunc' wipes out buffer
- 1925 9.0.0580 no CI running for MacOS on M1
- 1642 9.0.0581 adding a character for incsearch fails at end of line
- 1793 9.0.0582 channel cwd test fails on Cirrus CI
- 2388 9.0.0583 only recognizing .m3u8 files is inconsistent
- 5103 9.0.0584 cscope test with wrong executable name fails
- 1373 9.0.0585 when long message test fails the error message is not visible
- 2237 9.0.0586 missing change in test
- 13050 9.0.0587 Unicode tables are outdated
- 1480 9.0.0588 MorphOS build is broken
- 1907 9.0.0589 on AmigaOS4 the pid is available but the task address is used
- 5395 9.0.0590 after exiting Insert mode spelling not checked in next line
- 2596 9.0.0591 message window popup shows on only one tab page
- 9411 9.0.0592 display not cleared when scrolling back in messages
- 2638 9.0.0593 CI actions have too many permissions
- 1617 9.0.0594 Makefile error message causes a shell error
- 9695 9.0.0595 extra newline in messages after a verbose shell message
- 1700 9.0.0596 CI on Mac M1 has the channel feature disabled
- 2222 9.0.0597 cannot close a tab page with the middle mouse button
- 2730 9.0.0598 using negative array index with negative width window
- 2364 9.0.0599 latexmkrc files are not recognized
- 1970 9.0.0600 GYP files are not recognized
- 16421 9.0.0601 too much indent
- 3714 9.0.0602 new TypeScript extensions are not recognized
- 17743 9.0.0603 with 'nosplitscroll' folds are not handled correctly
- 2210 9.0.0604 luacheckrc file is not recognized
- 2210 9.0.0605 dump file missing
- 1926 9.0.0606 system() opens a terminal window when "!" is in 'guioptions'
- 2482 9.0.0607 verbose echo message test fails on Mac OS
- 5539 9.0.0608 with spelling, deleting a full stop does not update next line
- 2463 9.0.0609 blockedit test fails because of wrong indent
- 2615 9.0.0610 global interrupt test fails when run under valgrind
- 38835 9.0.0611 tests delete files with a separate delete() call
- 3632 9.0.0612 blockedit test passes with wrong result
- 6924 9.0.0613 running source tests leaves file behind
- 3093 9.0.0614 SpellFileMissing autocmd may delete buffer
- 6698 9.0.0615 using reduce() on a list from range() is a bit slow
- 1666 9.0.0616 spell test fails because error message changed
- 4125 9.0.0617 calling function for reduce() has too much overhead
- 18102 9.0.0618 calling function for reduce() has too much overhead
- 21042 9.0.0619 too many delete() calls in tests
- 31200 9.0.0620 matchaddpos() can only add up to 8 matches
- 1599 9.0.0621 filetype test leaves file behind
- 7942 9.0.0622 matchaddpos() can get slow when adding many matches
- 29942 9.0.0623 error for modifying a const is not detected at compile time
- 1659 9.0.0624 leaking argument type array
- 25852 9.0.0625 too many delete() calls in tests
- 34764 9.0.0626 too many delete() calls in tests
- 9737 9.0.0627 "const" and "final" both make the type a constant
- 2159 9.0.0628 Coverity warns for not checking return value
- 15922 9.0.0629 get an error for using const only when executing
- 2659 9.0.0630 in Vim9 script a numbered function cannot be called
- 70969 9.0.0631 too many delete() calls in tests
- 12167 9.0.0632 calling a function from an "expr" option has overhead
- 1584 9.0.0633 FEAT_TITLE was removed but is still used
- 34670 9.0.0634 evaluating "expr" options has more overhead than needed
- 2376 9.0.0635 build error and compiler warnings
- 2507 9.0.0636 underline color may not work in some terminals
- 8394 9.0.0637 syntax of commands in Vim9 script depends on +eval feature
- 10454 9.0.0638 popup menu highlight wrong on top of preview popup
- 6591 9.0.0639 checking for popup in screen_char() is too late
- 24804 9.0.0640 cannot scroll by screen line if a line wraps
- 1285 9.0.0641 missing part of the new option code
- 1777 9.0.0642 breakindent test fails
- 1759 9.0.0643 smoothscroll test fails
- 5141 9.0.0644 'smoothscroll' is not copied to a new window on :split
- 2747 9.0.0645 CTRL-Y does not stop at line 1
- 7806 9.0.0646 with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
- 50958 9.0.0647 the 'splitscroll' option is not a good name
- 7514 9.0.0648 when using powershell input redirection does not work
- 6670 9.0.0649 no indication the first line is broken for 'smoothscroll'
- 8417 9.0.0650 some tests are failing
- 1521 9.0.0651 build fails without the +conceal feature
- 10143 9.0.0652 'smoothscroll' not tested with 'number' and "n" in 'cpo'
- 3528 9.0.0653 BS and DEL do not work properly in an interacive shell
- 2094 9.0.0654 breakindent test fails
- 4830 9.0.0655 passing modifier codes to a shell running in the GUI
- 17786 9.0.0656 cannot specify another character to use instead of '@'
- 73298 9.0.0657 too many #ifdefs
- 1504 9.0.0658 tiny build fails on Mac OS
- 1757 9.0.0659 wrong type of comment in SetSyn() function
- 2422 9.0.0660 mapping with CTRL keys does not work in the GUI
- 4452 9.0.0661 multi-byte "lastline" in 'fillchars' does not work properly
- 3664 9.0.0662 concealed characters do not work correctly
- 4694 9.0.0663 tests check for +cmdwin feature which is always present
- 6316 9.0.0664 bad redrawing with spell checking, using "C" and "$" in 'cpo'
- 4408 9.0.0665 setting 'cmdheight' has no effect if last window was resized
- 13734 9.0.0666 spacing-combining characters handled as composing
- 2575 9.0.0667 ml_get error when 'splitkeep' is "screen"
- 2139 9.0.0668 CI on Mac M1 only uses clang
- 43322 9.0.0669 too many delete() calls in tests
- 4492 9.0.0670 no space for command line when there is a tabline
- 7090 9.0.0671 negative topline using CTRL-Y with 'smoothscroll' and 'diff'
- 6788 9.0.0672 line partly shows with 'smoothscroll' and 'scrolloff' zero
- 4657 9.0.0673 first line wong with 'smoothscroll' and 'scrolloff' zero
- 1600 9.0.0674 build error with tiny version
- 2009 9.0.0675 search test screendump is outdated
- 2574 9.0.0676 CI on Mac M1 with gcc actually uses clang
- 4766 9.0.0677 breakindent test accepts wrong result
- 8428 9.0.0678 using exclamation marks on :function
- 2261 9.0.0679 tests failing with 'smoothscroll', 'number' and "n" in 'cpo'
- 2219 9.0.0680 tests failing with 'breakindent', 'number' and "n" in 'cpo'
- 3259 9.0.0681 "<<<" shows for 'smoothscroll' even when 'showbreak is set
- 4054 9.0.0682 crash when popup with deleted timer is closed
- 22129 9.0.0683 cannot specify a time for :echowindow
- 2037 9.0.0684 skipped :exe command fails compilation on MS-Windows
- 2316 9.0.0685 FORTIFY_SOURCE causes a crash in Vim9 script
- 1857 9.0.0686 the right ALT key does not work on some MS-Windows keyboards
- 12188 9.0.0687 "export def" does not work in a nested block
- 2505 9.0.0688 debugger does not display the whole command
- 1581 9.0.0689 compiler warning for unused function
- 2020 9.0.0690 buffer size for expanding tab not correctly computed
- 4206 9.0.0691 lalloc(0) error in listchars test
- 1963 9.0.0692 PoE filter files are not recognized
- 1841 9.0.0693 browse() first argument cannot be a bool
- 17159 9.0.0694 no native sound support on Mac OS
- 2759 9.0.0695 failing check for dictionary type for const any
- 1754 9.0.0696 it is unclear if the +rightleft and +arabic features are used
- 11218 9.0.0697 cursor in wrong position with Visual substitute
-185711 9.0.0698 VisVim is outdated, does not work with current Visual Studio
- 1443 9.0.0699 tiny build fails
- 33631 9.0.0700 there is no real need for a "big" build
- 8331 9.0.0701 with 'smoothscroll' cursor position not adjusted in long line
- 5538 9.0.0702 incomplete testing cursor position with 'linebreak' set
- 24166 9.0.0703 failing check for argument type for const any
- 2348 9.0.0704 CI runs "tiny" and "small" builds, which are the same
- 4892 9.0.0705 virtual text truncation does not take padding into account
- 1555 9.0.0706 :help in a narrow window always opens at the top
- 8191 9.0.0707 with 'smoothscroll' cursor position not adjusted in long line
- 15032 9.0.0708 :confirm does not work properly for a terminal buffer
- 8523 9.0.0709 virtual text "after" not correct with 'nowrap'
- 6676 9.0.0710 quitting/unloading/hiding a terminal does not work properly
- 2119 9.0.0711 SubStation Alpha files are not recognized
- 6563 9.0.0712 wrong column when calling setcursorcharpos() with zero lnum
- 2735 9.0.0713 of MenuPopup event is expanded like a file name
- 5862 9.0.0714 with 'nowrap' two virtual text below not displayed correctly
- 2327 9.0.0715 wrong argument for append() gives two error messages
- 10149 9.0.0716 with 'nowrap' virtual text "after" does not scroll left
- 2222 9.0.0717 compiler warning for unused variable in tiny build
- 3645 9.0.0718 extra empty line between two virtual text "below"
- 93680 9.0.0719 too many delete() calls in tests
- 3255 9.0.0720 MS-Windows GUI may have pixel dust from antialiasing
- 4965 9.0.0721 virtual text "above" with padding not displayed correctly
- 5794 9.0.0722 virtual text "after" does not show with 'list' set
- 3699 9.0.0723 extra empty line below virtual text when 'list' is set
- 7387 9.0.0724 closure in compiled function gets same variable in block
- 4585 9.0.0725 virtual text "after" wraps to next line when 'wrap' is off
- 2940 9.0.0726 looping over list of lists works in script, not in function
- 72218 9.0.0727 help in the repository differs from patched version too much
- 2036 9.0.0728 extend() test fails
- 3036 9.0.0729 the rightleft and arabic features are disabled
- 1905 9.0.0730 startup test fails with right-left feature
- 2303 9.0.0731 clang-tidy configuration files are not recognized
- 3043 9.0.0732 no check for white space before and after "=<<"
- 4948 9.0.0733 use of strftime() is not safe
- 11913 9.0.0734 cursor position invalid when scrolling with 'smoothscroll'
- 2324 9.0.0735 breakindent and scrolloff tests fail
- 14099 9.0.0736 quickfix listing does not handle very long messages
- 9733 9.0.0737 Lisp word only recognized when a space follows
- 5701 9.0.0738 cannot suppress completion "scanning" messages
- 6502 9.0.0739 mouse column not correctly used for popup_setpos
- 3974 9.0.0740 prop_add_list() gives multiple errors for invalid argument
- 5709 9.0.0741 cannot specify an ID for each item with prop_add_list()
- 8373 9.0.0742 reading past end of the line when compiling a function
- 1968 9.0.0743 starting cscope on Unix does not quote the arguments right
- 3923 9.0.0744 in script in autoload dir exported variable is not found
- 7523 9.0.0745 wrong cursor position when using "gj" and "gk" in a long line
- 12953 9.0.0746 breakindent test cases are commented out
- 36080 9.0.0747 too many #ifdefs
- 5454 9.0.0748 Kitty may send key without modifiers with CSI u code
- 10870 9.0.0749 alloc/free of buffer for each quickfix entry is inefficient
- 4024 9.0.0750 crash when popup closed in callback
- 14245 9.0.0751 'scrolloff' does not work well with 'smoothscroll'
- 2995 9.0.0752 Rprofile files are not recognized
- 6086 9.0.0753 some Ex commands are not in the help index
- 2715 9.0.0754 'indentexpr' overrules lisp indenting in one situation
- 1820 9.0.0755 huge build on macos always fails on CI
- 5798 9.0.0756 no autocmd event for changing text in a terminal window
- 4321 9.0.0757 line number not visisble with 'smoothscroll', 'nu' and 'rnu'
- 4353 9.0.0758 "precedes" from 'listchars' overwritten by <<<
- 1852 9.0.0759 huge build on macos does not use Perl
- 1807 9.0.0760 display test for 'listchars' "precedes" fails
- 12998 9.0.0761 cannot use 'indentexpr' for Lisp indenting
- 1514 9.0.0762 build failure
- 1441 9.0.0763 MS-Windows: warning for using int for size_t
- 2328 9.0.0764 indent and option tests fail
- 2356 9.0.0765 with a Visual block a put command column may go negative
- 66370 9.0.0766 too many delete() calls in tests
- 84754 9.0.0767 too many delete() calls in tests
- 30413 9.0.0768 too many delete() calls in tests
- 19609 9.0.0769 too many delete() calls in tests
- 2778 9.0.0770 quickfix commands may keep memory allocated
- 2031 9.0.0771 cannot always tell the difference beween tex and rexx files
- 29673 9.0.0772 the libvterm code is outdated
- 2153 9.0.0773 huge build on macos uses dynamic Perl
- 82901 9.0.0774 the libvterm code is outdated
- 13727 9.0.0775 MS-Windows: mouse scrolling not supported in the console
- 13452 9.0.0776 MSVC can't have field name "small"
- 22669 9.0.0777 code is indented too much
- 4584 9.0.0778 indexing of unknown const type fails during compilation
- 5256 9.0.0779 lsl and lm3 file extensions are not recognized
- 1999 9.0.0780 'scroll' value computed in unexpected location
- 13795 9.0.0781 workaround to rename "small" to "smallfont" is clumsy
- 2298 9.0.0782 OpenVPN files are not recognized
- 4194 9.0.0783 ":!" doesn't do anything but does update the previous command
- 5943 9.0.0784 text prop "above" not right with 'number' and "n" in 'cpo'
- 1552 9.0.0785 memory leak with empty shell command
- 2750 9.0.0786 user command does not get number from :tab modifier
- 2163 9.0.0787 mouse scrolling in terminal misbehaves without dll
- 2887 9.0.0788 ModeChanged autocmd not executed when Visual ends with CTRL-C
- 2449 9.0.0789 dummy buffer ends up in a window
- 1801 9.0.0790 test for dummy buffer does not always produce the E86 error
- 4171 9.0.0791 at the hit-Enter prompt the End and Home keys may not work
- 2031 9.0.0792 MS-Windows: compiler complains about unused function
- 4958 9.0.0793 MS-Windows: mouse scroll events only work with the dll
- 7012 9.0.0794 there is no way to find out if modifyOtherKeys has been seen
- 11700 9.0.0795 readblob() always reads the whole file
- 2290 9.0.0796 mapping test fails in some situations
- 3480 9.0.0797 order of assert function arguments is reverted
- 2296 9.0.0798 clang format configuration files are not recognized
- 3071 9.0.0799 in compiled function ->() on next line not recognized
- 1366 9.0.0800 compiler complains about repeated typedef
- 2075 9.0.0801 the modifyOtherKeys flag is set when it should not
- 3737 9.0.0802 MS-Windows: cannot map console mouse scroll events
- 4453 9.0.0803 readblob() cannot read from character device
- 2833 9.0.0804 crash when trying to divide a number by -1
- 2483 9.0.0805 filetype autocmd may cause freed memory access
- 4065 9.0.0806 'langmap' works differently when there are modifiers
- 6922 9.0.0807 with 'smoothscroll' typing "0" may not go to the first column
- 2800 9.0.0808 jsonnet filetype detection has a typo
- 1995 9.0.0809 test for job writing to buffer fails
- 4716 9.0.0810 readblob() returns empty when trying to read too much
- 2291 9.0.0811 error if :echowin is preceded by a command modifier
- 2382 9.0.0812 GUI mouse scrollwheel mappings don't work
- 9540 9.0.0813 Kitty terminal is not recognized
- 2981 9.0.0814 aws config files are not recognized
- 477 9.0.0815 ":!" does not switch to the alternate screen
- 7365 9.0.0816 CTRL-Z at end of file is always dropped
- 346 9.0.0817 build error
- 365 9.0.0818 "!ls" does not work
- 5613 9.0.0819 still a build error, tests are failing
- 2542 9.0.0820 memory leak with empty shell command
- 3493 9.0.0821 crash when using win_move_statusline() in another tab page
- 6795 9.0.0822 crash when dragging the statusline with a mapping
- 3461 9.0.0823 mouse drag test fails
- 4296 9.0.0824 crash when using win_move_separator() in other tab page
- 9381 9.0.0825 cannot drag an entry in the tabpage line
- 10599 9.0.0826 if 'endofline' is set CTRL-Z may be written in a wrong place
- 1815 9.0.0827 key in tmux doesn't work when 'term' set to "xterm"
- 53763 9.0.0828 various typos
- 1648 9.0.0829 wrong counts in macro comment
- 1541 9.0.0830 compiling with Perl on Mac 12 fails
- 1392 9.0.0831 compiler warning for redefining HAVE_DUP
- 1545 9.0.0832 deprecation warning causes build failure
- 1621 9.0.0833 Mac: no +sound feature in huge build
- 2056 9.0.0834 warning for missing return type
- 2709 9.0.0835 the window title is not redrawn when 'endoffile' changes
- 5620 9.0.0836 wrong error when using extend() with funcref
- 9800 9.0.0837 append() reports failure when not appending anything
- 3775 9.0.0838 compiler warnings for unused variables
- 1682 9.0.0839 test may fail depending on sequence of events
- 2437 9.0.0840 cannot change a slice of a const list
- 4209 9.0.0841 deletebufline() does not always return 1 on failure
- 2874 9.0.0842 Unicode range for Apple SF symbols is outdated
- 2372 9.0.0843 VHS tape files are not recognized
- 14682 9.0.0844 handling 'statusline' errors is spread out
- 3536 9.0.0845 shell command with just space gives strange error
- 2953 9.0.0846 using assert_fails() may cause hit-enter prompt
- 2615 9.0.0847 CI: not totally clear what MS-Windows version is used
- 1774 9.0.0848 help item for --log argument is not aligned nicely
- 9217 9.0.0849 terminal mouse test is a bit flaky
- 19592 9.0.0850 MS-Windows Terminal has unstable color control
- 1702 9.0.0851 terminal mouse test is still flaky
- 2945 9.0.0852 crypt test is skipped if xxd is not found
- 6039 9.0.0853 terminal mouse test is still flaky on MacOS M1
- 2438 9.0.0854 no proper test for what 9.0.0846 fixes
- 1610 9.0.0855 comment not located above the code it refers to
- 3488 9.0.0856 MS-Windows: executable not found when running test
- 1748 9.0.0857 selecting MSVC 2017 does not set $PLATFORM
- 4357 9.0.0858 "!!sort" in a closed fold sorts too many lines
- 1452 9.0.0859 compiler warning for unused variable
- 1447 9.0.0860 MS-Windows: windres fails with clang 15.0.4
- 9023 9.0.0861 solution for "!!sort" in closed fold is not optimal
- 3334 9.0.0862 default value of 'endoffile' is wrong
- 15740 9.0.0863 col() and charcol() only work for the current window
- 3370 9.0.0864 crash when using "!!" without a previous shell command
- 3418 9.0.0865 duplicate arguments are not always detected
- 2288 9.0.0866 no test for what patch 8.2.2207 fixes
- 17133 9.0.0867 wildmenu redrawing code is spread out
- 6919 9.0.0868 MS-Windows: after Vim exits console resizing problem
- 2773 9.0.0869 bogus error when string used after :elseif
- 3172 9.0.0870 get E967 when using text property in quickfix window
- 4228 9.0.0871 using freed memory when clearing augroup at more prompt
- 8665 9.0.0872 code is indented more than needed
- 4999 9.0.0873 using freed memory when executing mapclear at more prompt
- 4581 9.0.0874 using freed memory when executing unmenu at more prompt
- 6267 9.0.0875 using freed memory when executing delfunc at more prompt
- 8530 9.0.0876 code is indented more than needed
- 5872 9.0.0877 using freed memory with :comclear while listing commands
- 1823 9.0.0878 Coverity warns for dead code
- 1618 9.0.0879 unnecessary nesting in makefile
- 12543 9.0.0880 preprocessor indenting is off
- 8313 9.0.0881 cannot get the currently showing mouse shape
- 2517 9.0.0882 using freed memory after SpellFileMissing autocmd uses bwipe
- 2477 9.0.0883 a silent mapping may cause dots on the command line
- 3820 9.0.0884 mouse shape remains in op-pending mode after failed change
- 2032 9.0.0885 informational message has an error message number
- 20507 9.0.0886 horizontal mouse scroll only works in the GUI
- 10111 9.0.0887 cannot easily try out what codes various keys produce
- 2707 9.0.0888 MS-Windows GUI: CTRL-] does not work on Swiss keyboard
- 14964 9.0.0889 keycode check script has a few flaws
- 4277 9.0.0890 no test for what patch 9.0.0827 fixes
- 13194 9.0.0891 virtual text below after match has wrong highlight
- 5879 9.0.0892 may redraw when not needed
- 5729 9.0.0893 'smoothscroll' cursor calculations wrong when 'number' is set
- 5100 9.0.0894 virtual text property highlight ignores window background
- 1676 9.0.0895 file renamed twice in test, missing feature check
- 3371 9.0.0896 test for home key fails when 'term' is "tmux"
- 2303 9.0.0897 Clinical Quality Language files are not recognized
- 4074 9.0.0898 with 'smoothscroll' cursor is one screen line too far down
- 42751 9.0.0899 the builtin terminals are in one long list
- 14743 9.0.0900 cursor moves too far with 'smoothscroll'
- 7730 9.0.0901 setting w_leftcol and handling side effects is confusing
- 30317 9.0.0902 some mouse scroll code is not in a good place
- 10000 9.0.0903 key code checker doesn't check modifyOtherKeys resource
- 16523 9.0.0904 various comment and indent flaws
- 3684 9.0.0905 virtual text after the line wraps when 'wrap' is off
- 10218 9.0.0906 mouse scroll code is not optimal
- 8219 9.0.0907 restoring window after WinScrolled may fail
- 14961 9.0.0908 with 'smoothscroll' cursor may end up in wrong position
- 7001 9.0.0909 error message for layout change does not match action
- 3574 9.0.0910 setting lines in another buffer may not work well
- 5547 9.0.0911 with 'smoothscroll' set mouse click position may be wrong
- 11512 9.0.0912 libvterm with modifyOtherKeys level 2 does not match xterm
- 10168 9.0.0913 only change in current window triggers the WinScrolled event
- 8339 9.0.0914 deletebufline() may move marks in the wrong window
- 8232 9.0.0915 WinScrolled may trigger immediately when defined
- 9192 9.0.0916 getbufline() is inefficient for getting a single line
- 31022 9.0.0917 the WinScrolled autocommand event is not enough
- 5015 9.0.0918 MS-Windows: modifier keys do not work with mouse scroll event
- 6721 9.0.0919 build failure with tiny features
- 2710 9.0.0920 cannot find an import prefixed with "s:"
- 5975 9.0.0921 missing defined(PROTO) in #ifdef
- 2486 9.0.0922 Mermaid files are not recognized
- 3691 9.0.0923 second SIGWINCH signal may be ignored
- 1651 9.0.0924 the first termcap entry of a builtin termcap is not used
- 8191 9.0.0925 two conditions are always false
- 1677 9.0.0926 Coverity warns for not using return value of dict_add()
- 1517 9.0.0927 Coverity warns for using a NULL pointer
- 3320 9.0.0928 using Ruby LDFLAGS may cause build problems
- 1501 9.0.0929 build failure with tiny version
- 37601 9.0.0930 cannot debug the Kitty keyboard protocol with TermDebug
- 4393 9.0.0931 MS-Windows: mouse column limited to 223
- 2305 9.0.0932 Oblivion files are not recognized
- 1627 9.0.0933 Kitty shows "already at oldest change" on startup
- 8116 9.0.0934 various code formatting issues
- 3075 9.0.0935 when using dash it may not be recognize as filetype "sh"
- 2244 9.0.0936 wrong type for "isunnamed" returned by getreginfo()
- 3439 9.0.0937 forked repositories send out useless email
- 1489 9.0.0938 MS-Windows: debug executable not found when running test
- 9897 9.0.0939 still using simplified mappings when using kitty protocol
- 2690 9.0.0940 crash when typing a letter in a terminal window
- 2674 9.0.0941 CI failures in sound dummy
- 2037 9.0.0942 Workflow Description Language files are not recognized
- 2694 9.0.0943 pretending to go out of Insert mode when Esc is received
- 7508 9.0.0944 'cursorline' causes virtual text highlight to continue
- 2565 9.0.0945 failures in the cursorline test
- 4904 9.0.0946 CI: Error in Coverity flow is not reported
- 5009 9.0.0947 invalid memory access in substitute with function
- 8713 9.0.0948 'ttyfast' is set for arbitrary terminals
- 34680 9.0.0949 crash when unletting a variable while listing variables
- 6732 9.0.0950 the pattern "\_s\zs" matches at EOL
- 5462 9.0.0951 trying every character position for a match is inefficient
- 2937 9.0.0952 Eclipse preference files are not recognized
- 1901 9.0.0953 part of making search more efficient is missing
- 34769 9.0.0954 cannot detect whether modifyOtherKeys is enabled
- 12644 9.0.0955 libvterm does not support the XTQMODKEYS request
- 5568 9.0.0956 terminal tests fail when using key with modifier
- 4513 9.0.0957 tests fail without the terminal feature
- 3700 9.0.0958 messages test is flaky
- 1712 9.0.0959 error when using the "File Settings / Text Width" menu
- 2915 9.0.0960 error when using the "Spelling / Find More Languages" menu
- 2537 9.0.0961 using deletebufline() may jump to another window
- 5562 9.0.0962 virtual text below cannot be placed below empty lines
- 4144 9.0.0963 function name does not match autocmd event name
- 3220 9.0.0964 status line not redrawn when 'splitkeep' is "screen"
- 55529 9.0.0965 using one window for executing autocommands is insufficient
- 1810 9.0.0966 some compilers don't allow a declaration after a label
- 6928 9.0.0967 leaking memory from autocmd windows
- 3429 9.0.0968 GUI mouse event test is a bit flaky
- 4950 9.0.0969 matchparen highlight is not updated when switching buffers
- 1579 9.0.0970 Coverity warns for uninitialized variable
- 8206 9.0.0971 escape sequences not recognized without termresponse feature
- 13919 9.0.0972 build failure on some systems
- 3912 9.0.0973 Kitty keyboard protocol key with NumLock not decoded
- 4608 9.0.0974 even when Esc is encoded a timeout is used
- 3196 9.0.0975 virtual text below empty line misplaced when 'number' set
- 4061 9.0.0976 enabling the kitty keyboard protocol uses push/pop
- 44129 9.0.0977 it is not easy to see what client-server commands are doing
- 5428 9.0.0978 build errors without the +channel feature
- 2949 9.0.0979 ch_log() text can be hard to find in the log file
- 17841 9.0.0980 the keyboard state response may end up in a shell command
- 1329 9.0.0981 build error in tiny version
- 15447 9.0.0982 'cursorline' not drawn before virtual text below
- 1562 9.0.0983 stray characters displayed when starting the GUI
- 2477 9.0.0984 GUI: remote_foreground() does not always work
- 16603 9.0.0985 when using kitty keyboard protocol function keys may not work
- 1738 9.0.0986 build failure with tiny version
- 1441 9.0.0987 file missing from list of distributed files
- 4902 9.0.0988 using feedkeys() does not show up in a channel log
- 2343 9.0.0989 popupwin test is more flaky on MacOS
- 10013 9.0.0990 callback name argument is changed by setqflist()
- 4158 9.0.0991 crash when reading help index with various options set
- 2255 9.0.0992 Vim9 script: get E1096 when comment follows return
- 14593 9.0.0993 display errors when adding or removing text property type
- 3825 9.0.0994 tests for empty prop type name fail
- 9164 9.0.0995 padding before virtual text is highlighted
- 1984 9.0.0996 if 'keyprotocol' is empty "xterm" still uses modifyOtherKeys
- 1654 9.0.0997 Coverity warns for dead code
- 4856 9.0.0998 "gk" may reset skipcol when not needed
- 1422 9.0.0999 memory may leak
- 3551 9.0.1000 with 'smoothscroll' skipcol may be reset unnecessarily
- 52789 9.0.1001 classes are not documented or implemented yet
- 1477 9.0.1002 command list test fails
- 1523 9.0.1003 tiny build fails
- 1945 9.0.1004 suspend test sometimes fails on MacOS
- 8662 9.0.1005 a failed test may leave a swap file behind
- 2002 9.0.1006 suspend test still sometimes fails on MacOS
- 21303 9.0.1007 there is no way to get a list of swap file names
- 2777 9.0.1008 test for swapfilelist() fails on MS-Windows
- 1444 9.0.1009 test for catch after interrupt is flaky on MS-Windows
- 2549 9.0.1010 stray warnings for existing swap files
- 2140 9.0.1011 ml_get error when using screenpos()
- 1918 9.0.1012 tests may get stuck in buffer with swap file
- 2408 9.0.1013 suspend test often fails on Mac OS
- 2658 9.0.1014 zir files are not recognized
- 2972 9.0.1015 without /dev/urandom srand() seed is too predictable
- 2226 9.0.1016 screenpos() does not count filler lines for diff mode
- 2310 9.0.1017 test for srand() fails on MS-Windows
- 2181 9.0.1018 suspend test still fails on Mac OS
- 20179 9.0.1019 'smoothscroll' and virtual text above don't work together
- 1900 9.0.1020 tests call GetSwapFileList() before it is defined
- 1317 9.0.1021 test trips over g:name
- 2610 9.0.1022 suspend test fails on Mac OS when suspending Vim
- 5046 9.0.1023 MS-Windows: dynamic loading of libsodium doesn't work
- 1694 9.0.1024 CI doesn't use the latest FreeBSD version
- 12645 9.0.1025 WinScrolled is not triggered when filler lines change
- 2041 9.0.1026 type of w_last_topfill is wrong
- 1640 9.0.1027 LGTM is soon shutting down
- 9473 9.0.1028 mouse shape test is flaky, especially on Mac OS
- 1500 9.0.1029 autoload directory missing from distribution
- 5547 9.0.1030 using freed memory with the cmdline popup menu
- 68685 9.0.1031 Vim9 class is not implemented yet
- 1387 9.0.1032 test fails when terminal feature is missing
- 1525 9.0.1033 tiny build fails because of conflicting typedef
- 1568 9.0.1034 reporting swap file when windows are split
- 19685 9.0.1035 object members are not being marked as used
- 4742 9.0.1036 undo misbehaves when writing from an insert mode mapping
- 2427 9.0.1037 lalloc(0) error for a class without members
- 4091 9.0.1038 function name does not match what it is used for
- 4861 9.0.1039 using a mapping CmdlineChanged may be triggered twice
- 2367 9.0.1040 test for mapping with CmdlineChanged fails
- 34754 9.0.1041 cannot define a method in a class
- 1969 9.0.1042 ASAN gives false alarm about array access.
- 6350 9.0.1043 macro has confusing name and is duplicated
- 2716 9.0.1044 setting window height using Python may cause errors
- 24554 9.0.1045 in a class object members cannot be initialized
- 1741 9.0.1046 class method disassemble test fails on MS-Windows
- 4885 9.0.1047 matchparen is slow
- 7613 9.0.1048 with "screenline" in 'culopt' cursorline highlight is wrong
- 2118 9.0.1049 crash when opening a very small terminal window
- 2916 9.0.1050 using freed memory when assigning to variable twice
- 2594 9.0.1051 after a failed CTRL-W ] next command splits window
- 3901 9.0.1052 using freed memory on exit when EXITFREE is defined
- 22945 9.0.1053 default constructor arguments are not optional
- 8623 9.0.1054 object member can't get type from initializer
- 1686 9.0.1055 Coverity warns for using uninitialized memory
- 4841 9.0.1056 leaking memory when disassembling an object method
- 2955 9.0.1057 conflict between supercollider and scala filetype detection
- 4005 9.0.1058 string value of class and object do not have information
- 3186 9.0.1059 build failure with some compilers
- 10743 9.0.1060 private and public object members are not implemented yet
- 16670 9.0.1061 cannot display 'showcmd' somewhere else
- 4285 9.0.1062 some test function names do not match what they are doing
- 2432 9.0.1063 when using Kitty a shell command may mess up the key state
- 8990 9.0.1064 code for making 'shortmess' temporarily empty is repeated
- 8027 9.0.1065 a shell command switching screens may still have a problem
- 2169 9.0.1066 test function name is wrong
- 6283 9.0.1067 in diff mode virtual text is highlighted incorrectly
- 4244 9.0.1068 no information about whether request term codes has an effect
- 2031 9.0.1069 diff mode highlight fails for special characters
- 3370 9.0.1070 reading beyond array size
- 2461 9.0.1071 Codecov action version is too specific
- 3493 9.0.1072 screenpos() column result in fold may be too small
- 5765 9.0.1073 using "xterm-kitty" for 'term' causes problems
- 52002 9.0.1074 class members are not supported yet
- 3542 9.0.1075 build fails if compiler doesn't allow declaration after case
- 2010 9.0.1076 ASAN complains about NULL argument
- 7282 9.0.1077 can add text property with negative ID before virtual text
- 2573 9.0.1078 with the +vartabs feature indent folding may use wrong 'ts'
- 3826 9.0.1079 leaking memory when defining a user command fails
- 6684 9.0.1080 the "kitty" terminfo entry is not widespread
- 4099 9.0.1081 using "->" with split lines does not always work
- 4099 9.0.1082 some jsonc files are not recognized
- 2369 9.0.1083 empty and comment lines in a class cause an error
- 72522 9.0.1084 code handling low level MS-Windows events cannot be tested
- 2473 9.0.1085 compiler warns for uninitialized variable
- 4073 9.0.1086 display wrong in Windows terminal after exiting Vim
- 1624 9.0.1087 autocommand test sometimes fails
- 1825 9.0.1088 clang warns for unused variable
- 1404 9.0.1089 unnessary assignment
- 2015 9.0.1090 FHIR Shorthand files are not recognized
- 3245 9.0.1091 assignment to non-existing member causes a crash
- 7222 9.0.1092 search error message doesn't show used pattern
- 3186 9.0.1093 using freed memory of object member
- 1523 9.0.1094 compiler warning when HAS_MESSAGE_WINDOW is not defined
- 2329 9.0.1095 using freed memory when declaration fails
- 1435 9.0.1096 reallocating hashtab when the size didn't change
- 1787 9.0.1097 tests are failing
- 18179 9.0.1098 code uses too much indent
- 1825 9.0.1099 trying to resize a hashtab may cause a problem
- 2890 9.0.1100 a hashtab with many removed items is not cleaned up
- 1707 9.0.1101 unused global variable
- 1698 9.0.1102 complicated use of #ifdef
- 2075 9.0.1103 jq files are not recognized
- 2550 9.0.1104 invalid memory access when checking function argument types
- 14738 9.0.1105 code is indented too much
- 2861 9.0.1106 not all postfix files are recognized
- 2740 9.0.1107 float constant not recognized as float
- 26788 9.0.1108 type error when using "any" type and adding to float
- 1426 9.0.1109 leaking allocated type
- 3121 9.0.1110 build fails on Mac OS X 10.4/10.5
- 4520 9.0.1111 termcap entries for RGB colors are not set automatically
- 40649 9.0.1112 test_mswin_event() can hang
- 1553 9.0.1113 users cannot easily try out a PR
- 1892 9.0.1114 CI does not use the latest Python version
- 28319 9.0.1115 code is indented more than needed
- 1557 9.0.1116 compiler may complain about an unused function
- 3951 9.0.1117 terminfo entries for bracketed paste are not used
- 2668 9.0.1118 sporadic test failures when using a terminal window
- 5133 9.0.1119 type of arguments not checked when calling a partial
- 2644 9.0.1120 tex filetype detection not sufficiently tested
- 17738 9.0.1121 cursor positioning and display problems with 'smoothscroll'
- 2336 9.0.1122 class member access is not fully tested yet
- 15554 9.0.1123 class function not implemented yet
- 3479 9.0.1124 virtual text at a column position is truncated
- 1686 9.0.1125 memory leak when using class functions
- 9363 9.0.1126 bracketed paste can be enabled when it is not recognized
- 10202 9.0.1127 no error if function argument shadows class member
- 2686 9.0.1128 build failure
- 2633 9.0.1129 sporadic Test_range() failure
- 5538 9.0.1130 unexpected output when autoloading a script
- 2614 9.0.1131 build failure without the +eval feature
- 52006 9.0.1132 code is indented more than needed
- 28798 9.0.1133 error message names do not match the items
- 12691 9.0.1134 comparing objects uses identity instead of equality
- 1857 9.0.1135 missing function argument
- 1458 9.0.1136 memory leak when getting class member type from expr
- 2357 9.0.1137 some conditions are always false
- 3384 9.0.1138 crash when expecting varargs but it is something else
- 4762 9.0.1139 cannot create a new object in a compiled function
- 10405 9.0.1140 cannot call an object method in a compiled function
- 4701 9.0.1141 'cursorcolumn' and 'colorcolumn' wrong after concealing
- 3603 9.0.1142 crash and/or memory leak when redefining function
- 2094 9.0.1143 invalid memory access with bad 'statusline' value
- 3839 9.0.1144 reading beyond text
- 2220 9.0.1145 invalid memory access with recursive substitute expression
- 18651 9.0.1146 MS-Windows: various special keys/modifiers are not mappable
- 4227 9.0.1147 cannot access a class member in a compiled function
- 1500 9.0.1148 cmdline test fails in the GUI
- 3523 9.0.1149 class members may be garbage collected
- 22923 9.0.1150 :interface is not implemented yet
- 2109 9.0.1151 build failure
- 14924 9.0.1152 class "implements" argument not implemented
- 1689 9.0.1153 build error with some compilers
- 1817 9.0.1154 Coverity warns for dead code
- 3352 9.0.1155 cannot use a class as a type
- 1722 9.0.1156 tests fail because of a different error message
- 5132 9.0.1157 "implements" only handles one interface name
-104529 9.0.1158 code is indented more than necessary
- 16298 9.0.1159 extends argument for class not implemented yet
- 4261 9.0.1160 ASAN error for ufunc_T allocated with wrong size
- 2073 9.0.1161 Coverity warns for using strcpy()
- 4487 9.0.1162 configure does not handle all FORTIFY_SOURCE variants
- 1876 9.0.1163 compiler warning for implicit size_t/int conversion
- 2357 9.0.1164 evaluating string expression advances function line
- 7132 9.0.1165 tests using IPv6 sometimes fail
- 71279 9.0.1166 code is indented more than necessary
- 3586 9.0.1167 EditorConfig files do not have their own filetype
- 8422 9.0.1168 code to enable/disable mouse is not from terminfo/termcap
- 25135 9.0.1169 some key+modifier tests fail on some AppVeyor images
- 4834 9.0.1170 LGTM badge no longer works
- 3512 9.0.1171 screen is not redrawn after using setcellwidths()
- 2386 9.0.1172 when 'selection' is "exclusive" then "1v" is one char short
- 1659 9.0.1173 compiler warning for unused variable on non-Unix systems
- 2098 9.0.1174 smali files are not recognized
- 14197 9.0.1175 the set_ref_in_item() function is too long
- 3110 9.0.1176 smithy files are not recognized
- 3779 9.0.1177 AppVeyor uses some older tools
- 14601 9.0.1178 a child class cannot override functions from a base class
- 5372 9.0.1179 not all errors around inheritance are tested
- 3058 9.0.1180 compiler warnings without the +job feature
- 5335 9.0.1181 class inheritance and typing insufficiently tested
- 2078 9.0.1182 go checksum files are not recognized
- 29160 9.0.1183 code is indented more than necessary
- 6037 9.0.1184 interface of an object is not recognized when checking type
- 7056 9.0.1185 using class from imported script not tested
- 2346 9.0.1186 imported class does not work when used twice in a line
- 1622 9.0.1187 test for using imported class fails
- 5834 9.0.1188 return value of type() for class and object unclear
- 2168 9.0.1189 invalid memory access with folding and using "L"
- 9139 9.0.1190 AppVeyor runs much slower with MSVC 2022
- 2659 9.0.1191 some Bazel files are not recognized
- 3259 9.0.1192 no error when class function argument shadows a member
- 3391 9.0.1193 cannot map when using the Kitty key protocol
- 1808 9.0.1194 compiler warning for comparing pointer with int
- 11657 9.0.1195 restoring KeyTyped when building statusline not tested
- 56012 9.0.1196 code is indented more than necessary
- 1394 9.0.1197 dump file missing from patch
- 4690 9.0.1198 abstract class not supported yet
- 3210 9.0.1199 crash when using kitty and using a mapping with
- 3141 9.0.1200 AppVeyor builds with an old Python version
- 4108 9.0.1201 assignment with operator doesn't work in object method
- 2584 9.0.1202 crash when iterating over list of objects
- 7599 9.0.1203 return type of values() is always list
- 4417 9.0.1204 expression compiled the wrong way after using an object
- 2853 9.0.1205 crash when handling class that extends another class
- 5694 9.0.1206 testing with Python on AppVeyor does not work properly
- 2884 9.0.1207 error when object type is expected but getting "any"
-106340 9.0.1208 code is indented more than necessary
- 14140 9.0.1209 getting interface member does not always work
- 1614 9.0.1210 compiler complains about declaration after label
- 6796 9.0.1211 storing value in interface member does not always work
- 8468 9.0.1212 cannot read back what setcellwidths() has done
- 4548 9.0.1213 adding a line below the last one does not expand fold
- 1350 9.0.1214 file left behind after running tests
- 3102 9.0.1215 using isalpha() adds dependency on current locale
- 1897 9.0.1216 Coverity warns for ignoring return value
- 2207 9.0.1217 using an object member in a closure doesn't work
- 2210 9.0.1218 completion includes functions that don't work
- 4577 9.0.1219 handling of FORTIFY_SOURCE flags doesn't match Fedora usage
- 5273 9.0.1220 termcap/terminfo entries do not indicate possible modifiers
- 63563 9.0.1221 code is indented more than necessary
- 3430 9.0.1222 terminal tests are flaky on MacOS
- 6587 9.0.1223 cannot use setcellwidths() below 0x100
- 24030 9.0.1224 cannot call a :def function with a number for float argument
- 2385 9.0.1225 reading past the end of a line when formatting text
- 4383 9.0.1226 spurious empty line when using text properties
- 8179 9.0.1227 no cmdline completion for :runtime
- 2843 9.0.1228 fuzzy menu completion is only tested in the GUI
- 2275 9.0.1229 Cap'n Proto files are not recognized
- 2119 9.0.1230 Apache thrift files are not recognized
- 21477 9.0.1231 completion of :runtime does not handle {where} argument
- 8307 9.0.1232 ColorTable saving and restoring does not work properly
- 2341 9.0.1233 search() loops forever if "skip" is TRUE for all matches
- 49698 9.0.1234 the code style has to be checked manually
- 3802 9.0.1235 MS-Windows console: not flushing termguicolors
- 2096 9.0.1236 code in same_leader() can be simplified
- 82217 9.0.1237 code is indented more than necessary
- 20339 9.0.1238 :runtime completion can be further improved
- 2895 9.0.1239 cannot have a line break before an object member access
- 3830 9.0.1240 cannot access a private object member in a lambda
- 1593 9.0.1241 Coverity warns for not checking function return value
- 6488 9.0.1242 code for :runtime completion is not consistent
- 13480 9.0.1243 :setglobal cannot use script-local function for "expr" option
- 2191 9.0.1244 cursor displayed in wrong position when leaving Insert mode
- 69126 9.0.1245 code is indented more than necessary
- 45824 9.0.1246 code is indented more than necessary
- 3302 9.0.1247 divide by zero with 'smoothscroll' set and a narrow window
- 2692 9.0.1248 cannot export an interface
- 4145 9.0.1249 cannot export an abstract class
- 13907 9.0.1250 cannot use an object method with :defer
- 9117 9.0.1251 checking returned value of ga_grow() is inconsistent
- 7988 9.0.1252 MS-Windows: scrollback cropped off on Vim exit
- 1673 9.0.1253 CI adds repository unnecessarily
- 21462 9.0.1254 calling a method on an interface does not work
- 2405 9.0.1255 changing 'virtualedit' does not have immediate effect
- 2953 9.0.1256 NetworkManager connection files are not recognized
- 90498 9.0.1257 code style is not check in test scripts
- 4335 9.0.1258 code style test fails
- 4061 9.0.1259 diffmode test fails
- 1785 9.0.1260 Coverity warns for possible NULL pointer usage
- 1978 9.0.1261 Elsa files are not recognized
-108325 9.0.1262 the did_set_string_option function is too long
- 2070 9.0.1263 KDL files are not recognized
- 1527 9.0.1264 Motif: compiler warning for unused argument
- 2789 9.0.1265 using an interface method may give a compilation error
- 4607 9.0.1266 error for space before ": type" is inconsistent
- 45803 9.0.1267 the did_set_string_option function is too long
- 4297 9.0.1268 .clangd and .stylelintrc files don't get a filetype
- 2164 9.0.1269 channel test often fails on Mac OS
- 2619 9.0.1270 crash when using search stat in narrow screen
- 7365 9.0.1271 using sizeof() and subtract array size is tricky
- 3272 9.0.1272 typo in pattern for filetype detection
- 2482 9.0.1273 "1v" may select block with wrong size
- 1944 9.0.1274 FIRRTL files are not recognized
- 33922 9.0.1275 the code for setting options is too complicated
- 6682 9.0.1276 some mappings with Meta and Shift do not work
- 3741 9.0.1277 cursor may move with autocmd in Visual mode
- 2651 9.0.1278 go.work.sum files are not recognized
- 3741 9.0.1279 display shows lines scrolled down erroneously
- 2452 9.0.1280 inssufficient testing for what 9.0.1265 fixes
- 2009 9.0.1281 Cadence files are not recognized
- 2298 9.0.1282 Ron files are not recognized
- 23372 9.0.1283 the code for setting options is too complicated
- 2237 9.0.1284 compiler warnings for uninitialized variables
- 4511 9.0.1285 various small problems
- 2757 9.0.1286 Coverity warns for using a NULL pointer
- 1583 9.0.1287 with the Kitty key protocol Esc with NumLock cannot be mapped
- 1973 9.0.1288 FunC files are not recognized
- 3126 9.0.1289 a newer version of clang can be used for CI
- 3352 9.0.1290 CTRL-N and -P on cmdline don't trigger CmdlineChanged
- 2579 9.0.1291 Move language files are not recognized
- 10731 9.0.1292 :defer may call the wrong method for an object
- 27843 9.0.1293 the set_num_option() is too long
- 36538 9.0.1294 the set_bool_option() function is too long
- 24726 9.0.1295 the option initialization function is too long
- 3302 9.0.1296 calling an object method with arguments does not work
- 1982 9.0.1297 wrong value for $LC_CTYPE makes the environ test fail
- 4437 9.0.1298 inserting register on the cmdline does not trigger incsearch
- 4064 9.0.1299 change for triggering incsearch not sufficiently tested
- 10452 9.0.1300 'statusline' only supports one "%=" item
- 10876 9.0.1301 virtual text below empty line not displayed
- 2739 9.0.1302 on a Belgian keyboard CTRL-] does not work
- 3208 9.0.1303 Motif: scrollbar width/height wrong when maximized
- 5471 9.0.1304 "$" for 'list' option displayed in wrong position
- 3442 9.0.1305 cursor in wrong line with virtual text above
- 3334 9.0.1306 no regression test for solved problem of #11959
- 6853 9.0.1307 setting 'formatoptions' with :let doesn't check for errors
- 30751 9.0.1308 the code for setting options is too complicated
- 17056 9.0.1309 scrolling two lines with even line count and 'scrolloff' set
- 2204 9.0.1310 'splitkeep' test has failures
- 1455 9.0.1311 Coverity warns for using a NULL pointer
- 3770 9.0.1312 Cursor position wrong when splitting window in insert mode
- 8934 9.0.1313 some settings use the current codepage instead of 'encoding'
- 6431 9.0.1314 :messages behavior depends on 'fileformat' of current buffer
- 3972 9.0.1315 escaping for completion of map command not properly tested
- 3699 9.0.1316 MS-Windows: vimfiles dir created with admin group
- 4096 9.0.1317 crash when using an unset object variable
- 1914 9.0.1318 code style test fails
- 1978 9.0.1319 PRQL files are not recognized
- 21416 9.0.1320 checking the type of a null object causes a crash
- 1613 9.0.1321 vimscript test fails where using {expr} syntax
- 8302 9.0.1322 crash when indexing "any" which is an object
- 1725 9.0.1323 build failure with +eval feature
- 3412 9.0.1324 "gj" and "gk" do not move correctly over a closed fold
- 10274 9.0.1325 'colorcolumn' highlight wrong with virtual text above
- 4782 9.0.1326 relative line number not updated with virtual text above
- 3553 9.0.1327 cursor in wrong position below line with virtual text below
- 2888 9.0.1328 error when using "none" for GUI color is confusing
- 2935 9.0.1329 completion of map includes simplified ones
-334145 9.0.1330 handling new value of an option has a long "else if" chain
- 2273 9.0.1331 illegal memory access when using :ball in Visual mode
- 2423 9.0.1332 crash when using buffer-local user command in cmdline window
- 2563 9.0.1333 when redo'ing twice may not get the script ID
- 26315 9.0.1334 using tt_member for the class leads to mistakes
- 3265 9.0.1335 no test for bad use of spaces in help files
- 33216 9.0.1336 functions without arguments are not always declared properly
- 1980 9.0.1337 yuck files are not recognized
- 15614 9.0.1338 :defcompile and :disassemble can't find class method
- 2243 9.0.1339 no test for :disassemble with class function
- 1762 9.0.1340 Coverity warns for using NULL pointer
- 2633 9.0.1341 build error with mzscheme but without GUI
- 3364 9.0.1342 MS-Windows: linking may fail with space in directory name
- 1708 9.0.1343 check for OSC escape sequence doesn't work
- 1719 9.0.1344 check for OSC escape sequence doesn't work
- 29100 9.0.1345 too many "else if" statements for handling options
- 2371 9.0.1346 Starlark files are not recognized
- 4368 9.0.1347 "gr CTRL-O" stays in Insert mode
- 2096 9.0.1348 Un-grammar files are not recognized
- 1723 9.0.1349 "gr" with a count fails
- 2262 9.0.1350 CPON files are not recognized
- 2098 9.0.1351 Dhall files are not recognized
- 3431 9.0.1352 "ignore" files are outdated
- 32810 9.0.1353 too many "else if" statements to handle option values
- 2721 9.0.1354 "gr CTRL-G" stays in virtual replace mode
- 3729 9.0.1355 no error when declaring a class twice
- 7758 9.0.1356 cannot cancel "gr" with Esc
- 7449 9.0.1357 using null_object results in an internal error
- 4335 9.0.1358 compilation error with some compilers
- 27252 9.0.1359 too many "else if" statements in handling options
- 3035 9.0.1360 Cue files are not recognized
- 2134 9.0.1361 extendnew() not sufficiently tested
- 3781 9.0.1362 ml_get error when going to another tab
- 3024 9.0.1363 crash when :def function has :break in skipped block
- 1700 9.0.1364 build error with older Mac OS
- 2266 9.0.1365 dead test code
- 93919 9.0.1366 functions for setting options are in random order
- 4727 9.0.1367 divide by zero in zero-width window
- 2271 9.0.1368 Bass files are not recognized
- 35571 9.0.1369 still some "else if" constructs for setting options
- 2330 9.0.1370 crash when using a NULL object
- 5603 9.0.1371 ballooneval interferes with Insert completion
- 1552 9.0.1372 test for 'toolbariconsize' may fail
- 2878 9.0.1373 wrong text displayed when using both 'linebreak' and 'list'
- 35878 9.0.1374 function for setting options not used consistently
- 2801 9.0.1375 crash when getting member of obj of unknown class
- 2624 9.0.1376 accessing invalid memory with put in Visual block mode
- 2083 9.0.1377 job_status() may return "dead" if the process parent changed
- 1883 9.0.1378 illegal memory access when using virtual editing
- 86479 9.0.1379 functions for handling options are not ordered
- 14186 9.0.1380 CTRL-X on 2**64 subtracts two
- 4444 9.0.1381 ACCESS_ names have a conflict with on some systems
- 2290 9.0.1382 failing test for strptime() doesn't show returned value
- 3322 9.0.1383 xxd: combination of little endian and cols fails
- 1533 9.0.1384 setting HOMEBREW_NO_AUTO_UPDATE is not needed with version 4
- 4721 9.0.1385 g'Esc is considered an error
- 2458 9.0.1386 options test fails with some window width
- 1637 9.0.1387 scrollbar test sporadically fails
- 1583 9.0.1388 Amiga: not all builds use gethostname()
- 2175 9.0.1389 Amiga: a couple of include files are included twice
- 35427 9.0.1390 FOR_ALL_ macros are defined in an unexpected file
- 19230 9.0.1391 "clear" macros are not always used
- 6145 9.0.1392 using NULL pointer with nested :open command
- 2253 9.0.1393 Cairo files are not recognized
- 2069 9.0.1394 Unx Tal files are not recognized
- 2137 9.0.1395 Odin files are not recognized
- 6768 9.0.1396 sort(list, 'N') does not work in Vim9 script context
- 17681 9.0.1397 highlight for popupmenu kind and extra cannot be set
- 23658 9.0.1398 profile test repeats the headers many times
- 9320 9.0.1399 highlight test script has a few problems
- 20504 9.0.1400 find_file_in_path() is not reentrant
- 2384 9.0.1401 condition is always true
- 2022 9.0.1402 crash when using null_class
- 16119 9.0.1403 unused variables and functions
- 1944 9.0.1404 compilation error with some compilers
- 3140 9.0.1405 missing check for out-of-memory
- 1878 9.0.1406 ILE RPG files are not recognized
- 2330 9.0.1407 TableGen files are not recognized
- 2359 9.0.1408 QMLdir files are not recognized
- 3511 9.0.1409 racket files are recognized as scheme
- 32822 9.0.1410 MacOS: sed fails on .po files
- 18704 9.0.1411 accuracy of profiling is not optimal
- 2310 9.0.1412 Pony files are not recognized
- 2629 9.0.1413 compiler warning for unused variable
- 2619 9.0.1414 in Kitty does not use the Shift modifier
- 2047 9.0.1415 Crystal files are not recognized
- 8420 9.0.1416 crash when collection is modified when using filter()
- 2177 9.0.1417 ESDL files are not recognized
- 30354 9.0.1418 the included xdiff code is a bit outdated
- 1948 9.0.1419 Lean files are not recognized
- 1609 9.0.1420 build failure because SIZE_MAX is not defined
- 2665 9.0.1421 Nu files are not recognized
- 1924 9.0.1422 Sage files are not recognized
- 2041 9.0.1423 WebAssembly Interface Type files are not recognized
- 1746 9.0.1424 unused macros are defined
- 2367 9.0.1425 "wat" and "wast" files are one filetype
- 3011 9.0.1426 indent wrong after "export namespace" in C++
- 1814 9.0.1427 warning for uninitialized variable
- 3988 9.0.1428 cursor in wrong position when leaving insert mode
- 2155 9.0.1429 invalid memory access when ending insert mode
- 2480 9.0.1430 Livebook files are not recognized
- 4920 9.0.1431 getscriptinfo() loops even when specific SID is given
- 4346 9.0.1432 completion popup in wrong position with virtual text "above"
- 3439 9.0.1433 on some systems the Lua library is not found
- 2731 9.0.1434 crash when adding package already in 'runtimepath'
- 2256 9.0.1435 scrolling too many lines when 'wrap' and 'diff' are set
- 4449 9.0.1436 cannot compare a typed variable with v:none
- 2376 9.0.1437 test fails with different error number
- 3134 9.0.1438 .fs files are falsely recognized as forth files
- 3987 9.0.1439 start Insert mode when accessing a hidden prompt buffer
- 2651 9.0.1440 "rvim" can execute a shell through :diffpatch
- 3147 9.0.1441 MacOS: Python 3 using framework do not set dll name properly
- 4125 9.0.1442 mapset() does not restore non-script context
- 3584 9.0.1443 ending Insert mode when accessing a hidden prompt buffer
- 2519 9.0.1444 crash when passing NULL to setcmdline()
- 5465 9.0.1445 openSUSE: configure doesn't find the Motif library
- 4254 9.0.1446 unnecessary checks for the "skip" flag when skipping
- 5489 9.0.1447 condition is always true
- 1614 9.0.1448 diff test fails on MacOS 13
- 2485 9.0.1449 test for prompt buffer is flaky
- 7678 9.0.1450 MacOS: building fails if clock_gettime() is not available
- 2233 9.0.1451 unnecessary redrawing when 'showcmdloc' is not "last"
- 5395 9.0.1452 code using EVAL_CONSTANT is dead, it is never set
- 11114 9.0.1453 typos in source code and tests
- 16731 9.0.1454 code indenting is confused by macros
- 2904 9.0.1455 C++ 20 modules are not recognized
- 1533 9.0.1456 shortmess test depends on order of test execution
- 2022 9.0.1457 no regression test for what patch 9.0.1333 fixes
- 2855 9.0.1458 buffer overflow when expanding long file name
- 5419 9.0.1459 typo in name of type
- 3340 9.0.1460 insufficient testing for getcmdcompltype()
- 3739 9.0.1461 ruler not drawn correctly when using 'rulerformat'
- 3424 9.0.1462 recursively calling :defer function if it does :qa
- 7105 9.0.1463 virtual text truncation only works with Unicode 'encoding'
- 2492 9.0.1464 strace filetype detection is expensive
- 1315 9.0.1465 Haiku build fails
- 4688 9.0.1466 cannot use an object member name as a method argument
- 3375 9.0.1467 Jenkinsfiles are not recognized as groovy
- 5659 9.0.1468 recursively calling :defer function if it does :qa
- 3757 9.0.1469 deferred functions not called from autocommands
- 4567 9.0.1470 deferred functions invoked in unexpected order
- 8745 9.0.1471 warnings for function declarations
- 2785 9.0.1472 ":drop fname" may change the last used tab page
- 6088 9.0.1473 CI does not run sound tests
- 6544 9.0.1474 CI runs with old version of Ubuntu and tools
- 2735 9.0.1475 busted configuration files are not recognized
-146210 9.0.1476 lines put in non-current window are not displayed
- 6336 9.0.1477 crash when recovering from corrupted swap file
- 4502 9.0.1478 filetypes for *.v files not detected properly
- 13467 9.0.1479 small source file problems; outdated list of distrib. files
- 3561 9.0.1480 using popup menu may leave text in the command line
- 46058 9.0.1481 decrypting with libsodium may fail if the library changes
- 3107 9.0.1482 crash when textprop has a very large "padding" value
- 4433 9.0.1483 += operator does not work on class member
- 3761 9.0.1484 Coverity warns for using invalid array index
- 44419 9.0.1485 no functions for converting from/to UTF-16 index
- 7210 9.0.1486 parallel make might not work
- 6187 9.0.1487 Content-type header for LSP channel not according to spec
- 13432 9.0.1488 xchacha20v2 crypt header is platform dependent
- 7615 9.0.1489 crypt with libsodium is not tested on CI
- 4831 9.0.1490 the ModeChanged event may be triggered too often
- 3986 9.0.1491 wrong scrolling with ls=0 and :botright split
- 3735 9.0.1492 using uninitialized memory when argument is missing
- 4832 9.0.1493 popup menu position wrong in window with toolbar
- 5368 9.0.1494 crash when recovering from corrupted swap file
- 1801 9.0.1495 GTK3: hiding the mouse pointer does not work
- 1849 9.0.1496 test restoring register with wrong value
- 2939 9.0.1497 the ruler percentage can't be localized
- 3227 9.0.1498 in a terminal window the cursor may jump around
- 5808 9.0.1499 using uninitialized memory with fuzzy matching
- 2087 9.0.1500 The falsy operator is not tested properly
- 5401 9.0.1501 crash with nested :try and :throw in catch block
- 3221 9.0.1502 no test for deleting the end of a long wrapped line
- 2089 9.0.1503 Luau files are not recognized
- 4440 9.0.1504 no error when calling remote_startserver("")
- 10660 9.0.1505 error when heredoc content looks like heredoc
- 8212 9.0.1506 line number not displayed when using 'smoothscroll'
- 7346 9.0.1507 assert message is confusing with boolean result
- 3136 9.0.1508 catch does not work when lines are joined with a newline
- 2263 9.0.1509 error message lacks mentioning the erroneous argument
- 3486 9.0.1510 misleading variable name for error message
- 4929 9.0.1511 crash when using wrong arg types to assert_match()
- 5477 9.0.1512 inserting lines when scrolling with 'smoothscroll' set
- 4203 9.0.1513 text scrolls unnecessarily when splitting
- 1629 9.0.1514 test waits unnecessarily long before checking screendump
- 8641 9.0.1515 reverse() does not work for a String
- 7109 9.0.1516 cannot use special keys in mapping
- 5117 9.0.1517 MacOS: configure removes -O2 from $CFLAGS
- 7424 9.0.1518 search stats not always visible when searching backwards
- 17356 9.0.1519 global 'filetype' is set when detected from file content
- 6413 9.0.1520 completion for option name includes all bool options
- 4499 9.0.1521 failing redo of command with control characters
- 5122 9.0.1522 some functions give two error messages
- 2526 9.0.1523 some error messages are not marked for translation
- 5969 9.0.1524 passing -1 for bool is not always rejected
- 8938 9.0.1525 'smoothscroll' does not always work properly
- 3380 9.0.1526 condition is always true
- 3118 9.0.1527 crash when using negative value for term_cols
- 1576 9.0.1528 libsodium encryption is only used with "huge" features
- 7225 9.0.1529 code style test doesn't check for space after "if"
- 7689 9.0.1530 cursor moves to wrong line when 'foldmethod' is "diff"
- 3027 9.0.1531 crash when register contents ends up being invalid
- 4668 9.0.1532 crash when expanding "~" in substitute causes very long text
- 4623 9.0.1533 test for 'smoothscroll' is ineffective
- 2282 9.0.1534 test for expanding "~" in substitute takes too long
- 2318 9.0.1535 test commented out in a wrong way
- 2993 9.0.1536 CI: sound dummy stopped working
- 3049 9.0.1537 message for opening the cmdline window is not translated
- 4314 9.0.1538 :wqall does not trigger ExitPre
- 5461 9.0.1539 typst filetype is not recognized
- 9207 9.0.1540 reverse() on string doesn't work in compiled function
- 3264 9.0.1541 CI: sound dummy is disabled
- 4354 9.0.1542 line not fully displayed if it doesn't fit in the screen
- 10337 9.0.1543 display errors when making topline shorter
- 26213 9.0.1544 recent glibc marks sigset() as a deprecated
- 2426 9.0.1545 text not scrolled when cursor moved with "g0" and "h"
- 7589 9.0.1546 some commands for opening a file don't use 'switchbuf'
- 3078 9.0.1547 Coveralls workflow on CI is commented out
- 2578 9.0.1548 CI: check in sound-dummy module may throw an error
- 2698 9.0.1549 USD filetype is not recognized
- 2717 9.0.1550 in cmdline window S-Tab does not select previous completion
- 8446 9.0.1551 position of marker for 'smoothscroll' not computed correctly
- 3006 9.0.1552 CI: sound-dummy module is not installed
- 2308 9.0.1553 CI: using slightly outdated gcc version
- 6368 9.0.1554 code for handling 'switchbuf' is repeated
- 3551 9.0.1555 setcharsearch() does not clear last searched char properly
- 2303 9.0.1556 Vim9: error for missing "return" after "throw"
- 6423 9.0.1557 test failures for unreachable code
- 5718 9.0.1558 wrong error for unreachable code after :throw
- 6620 9.0.1559 function argument types not always checked
- 5061 9.0.1560 Win32: When 'encoding' is set $PATH has duplicate entries
- 7462 9.0.1561 display wrong when moving cursor to above the top line
- 2470 9.0.1562 mixing package managers is not a good idea
- 2093 9.0.1563 GTK3: window manager resize hints are incomplete
- 4589 9.0.1564 display moves up and down with 'incsearch' and 'smoothscroll'
- 2166 9.0.1565 json lines files are not recognized
- 2124 9.0.1566 Motif: GUI scrollbar test fails in 24 lines terminal
- 2086 9.0.1567 profiler calculation may be wrong on 32 bit builds
- 9580 9.0.1568 with 'smoothscroll' cursor may move below botline
- 5488 9.0.1569 cannot use "this.member" in lambda in class method
- 83083 9.0.1570 some tests are slow
- 22802 9.0.1571 RedrawingDisabled not used consistently
- 21449 9.0.1572 error messages are not translated
- 2053 9.0.1573 error for function name has wrong line number
- 6459 9.0.1574 MS-Windows: list of translation input files incomplete
- 2381 9.0.1575 "file N of M" message is not translated
- 22118 9.0.1576 users may not know what to do with an internal error
- 19768 9.0.1577 MS-Windows: context menu translations may be wrong
- 14033 9.0.1578 SpellCap highlight not always updated when needed
- 7083 9.0.1579 some error messages are not translated
- 2250 9.0.1580 CI: indent test hangs on FreeBSD
- 11347 9.0.1581 translation does not work for plural argument
- 3082 9.0.1582 :stopinsert may not work in a popup close handler
- 22942 9.0.1583 get E304 when using 'cryptmethod' "xchacha20v2"
- 3543 9.0.1584 not all meson files are recognized
- 15757 9.0.1585 weird use of static variables for spell checking
- 2923 9.0.1586 error for using two messages with ngettext() differing in "%"
- 2231 9.0.1587 Corn config files are not recognized
- 2538 9.0.1588 Incsearch not triggered when pasting clipboard register
- 93794 9.0.1589 filetype test contains too many special characters
- 1767 9.0.1590 filetype test has trailing white space
- 2506 9.0.1591 some "gomod" files are not recognized
- 2946 9.0.1592 not all timer tests are marked as flaky
- 3317 9.0.1593 MS-Windows: assert error when compiled with debug mode
- 42607 9.0.1594 some internal error messages are translated
- 9015 9.0.1595 line pointer becomes invalid when using spell checking
- 2534 9.0.1596 :registers command does not work in sandbox
- 4531 9.0.1597 cursor ends up below the window after a put
- 7852 9.0.1598 screenchar() and others are wrong with DBCS 'encoding'
- 16484 9.0.1599 Cursor not adjusted when 'splitkeep' is not "cursor"
- 3210 9.0.1600 screenpos() does not take w_skipcol into account
- 3354 9.0.1601 filetype detection fails for *.conf file without comments
- 5533 9.0.1602 stray character visible if marker on top of double-wide char
- 4553 9.0.1603 display wrong if scrolling multiple lines with 'smoothscroll'
- 7819 9.0.1604 errors from the codestyle test are a bit confusing
- 3198 9.0.1605 crash when calling method on super in child constructor
- 3720 9.0.1606 using freed memory when 'foldcolumn' is set
- 4792 9.0.1607 screenpos() returns wrong row with diff filler lines
- 2305 9.0.1608 update_topline() is called twice
- 3892 9.0.1609 crash when an object indirectly references itself
- 4765 9.0.1610 display is wrong when 'smoothscroll' is set
- 2038 9.0.1611 v:maxcol can be changed in a :for loop
- 3201 9.0.1612 "skipcol" not reset when using multi-byte characters
- 3687 9.0.1613 some make output gets picked up by 'errorformat'
- 4091 9.0.1614 strlen() called too often for :spellrepall
- 2627 9.0.1615 URL shortcut files are not recognized
- 7074 9.0.1616 quickfix text field is truncated
- 30480 9.0.1617 charidx() result is not consistent with byteidx()
- 1891 9.0.1618 Trace32 files are not recognized
- 2801 9.0.1619 the focus gained/lost escape sequences cause trouble
- 3271 9.0.1620 Nix files are not recognized from the hashbang line
- 5775 9.0.1621 FILETYPE_FILE is defined to the same value multiple times
- 2410 9.0.1622 filetype name t32 is a bit obscure
- 14787 9.0.1623 the program to filetype translation is not exported
- 5183 9.0.1624 crash when calling object constructor
- 3843 9.0.1625 "super" is not considered a reserved name
- 4084 9.0.1626 Visual area not shown when using 'showbreak'
- 30553 9.0.1627 no generic mechanism to test syntax plugins
- 2986 9.0.1628 syntax tests fail on FreeBSD
- 5558 9.0.1629 having utf16idx() rounding up is inconvenient
- 1842 9.0.1630 "make clean" at the toplevel fails
- 16874 9.0.1631 passing wrong variable type to option gives multiple errors
- 7622 9.0.1632 not all cabal config files are recognized
- 2782 9.0.1633 duplicate code for converting float to string
- 4106 9.0.1634 message is cleared when removing mode message
- 4538 9.0.1635 error message is cleared when removing mode message
- 5071 9.0.1636 expanding a pattern interferes with cmdline completion
- 2908 9.0.1637 compiler warning for uninitialized variable
- 2730 9.0.1638 crypt tests hang and cause memory errors
- 2950 9.0.1639 build failure without the crypt feature
- 2917 9.0.1640 compiler warning for unused variables without crypt feature
- 4085 9.0.1641 the log file does not give information about window sizes
- 2843 9.0.1642 build failure with tiny features
- 2383 9.0.1643 filetype detection fails if file name ends in many '~'
- 2283 9.0.1644 not all filetype file name matches are tested
- 2215 9.0.1645 zserio files are not recognized
- 1750 9.0.1646 CI: codecov may take a very long time to run
-180457 9.0.1647 insufficient testing for syntax plugins
- 4510 9.0.1648 result of syntax tests is hard to see
- 1660 9.0.1649 syntax test failure causes script to abort
- 3265 9.0.1650 MS-Windows: default 'viewdir' may include read-only directory
- 1812 9.0.1651 unclear why syntax test fails on Mac
- 1984 9.0.1652 unclear why syntax test fails on Mac
- 3629 9.0.1653 Amiga: default 'viewdir' may not work
- 1874 9.0.1654 MS-Windows: test for default 'viewdir' fails
- 1728 9.0.1655 syntax test fails when Vim window is not tall enough
- 22058 9.0.1656 syntax test fails when detected shell type differs
- 2749 9.0.1657 one more syntax test depends on the system
- 4550 9.0.1658 autoload files for "zig" are not installed
- 3465 9.0.1659 Termdebug: default highlight cleared if changing colorscheme
- 4091 9.0.1660 error for using matchfuzzy() returning a list of dicts
- 3041 9.0.1661 BUCK files are not recognized
- 2545 9.0.1662 crash when using a class member twice
- 5301 9.0.1663 Termdebug on MS-Windows: some file names are not recognized
- 4425 9.0.1664 divide by zero when scrolling with 'smoothscroll' set
- 2996 9.0.1665 empty CmdlineEnter autocommand causes errors in Ex mode
- 1546 9.0.1666 compiler may warn for uninitialized variable
- 3981 9.0.1667 regression test doesn't fail when fix is reverted
- 2085 9.0.1668 PEM files are not recognized
- 7173 9.0.1669 Crash syncing swapfile in new buffer when using sodium crypt
- 3751 9.0.1670 resetting local option to global value is inconsistent
- 4189 9.0.1671 Termdebug: error with more than 99 breakpoints
- 3897 9.0.1672 tabline highlight wrong after truncated double width label
diff --git a/debian/control b/debian/control
index 016a94a0..3baecdde 100644
--- a/debian/control
+++ b/debian/control
@@ -1,11 +1,9 @@
Source: vim
Section: editors
-Priority: optional
Maintainer: Debian Vim Maintainers
Uploaders:
James McCoy ,
-Standards-Version: 4.7.0
-Rules-Requires-Root: no
+Standards-Version: 4.7.3
Build-Depends:
autoconf,
cscope ,
diff --git a/debian/copyright b/debian/copyright
index d828e8df..bb159678 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -68,6 +68,7 @@ Files:
runtime/indent/astro.vim
runtime/indent/glsl.vim
runtime/indent/graphql.vim
+ runtime/indent/handlebars.vim
runtime/indent/julia.vim
runtime/indent/just.vim
runtime/indent/nu.vim
@@ -77,6 +78,7 @@ Files:
runtime/syntax/bitbake.vim
runtime/syntax/glsl.vim
runtime/syntax/graphql.vim
+ runtime/syntax/handlebars.vim
runtime/syntax/jq.vim
runtime/syntax/json.vim
runtime/syntax/jsonc.vim
@@ -117,6 +119,8 @@ Copyright:
2015-2017 Samsung Electronics Co., Ltd
2015-2017 Red Hat Inc.
2014 John Hawthorn
+ 2026 Devin Weaver
+ 2015 Jouke van der Maas
License: Expat
Files: runtime/syntax/tmux.vim
diff --git a/debian/patches/Revert-patch-9.1.0949-popups-inconsistently-shifted-to-th.patch b/debian/patches/Revert-patch-9.1.0949-popups-inconsistently-shifted-to-th.patch
index b4218458..73b5a717 100644
--- a/debian/patches/Revert-patch-9.1.0949-popups-inconsistently-shifted-to-th.patch
+++ b/debian/patches/Revert-patch-9.1.0949-popups-inconsistently-shifted-to-th.patch
@@ -12,14 +12,13 @@ Closes: #1091729
runtime/doc/popup.txt | 1 +
src/popupwin.c | 23 ++++++++++++-----------
src/testdir/test_popupwin.vim | 26 ++++++--------------------
- src/version.c | 2 --
- 4 files changed, 19 insertions(+), 33 deletions(-)
+ 3 files changed, 19 insertions(+), 31 deletions(-)
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
-index 41f4da5..8c6bc32 100644
+index e968a21..af485cf 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
-@@ -713,6 +713,7 @@ The second argument of |popup_create()| is a dictionary with options:
+@@ -714,6 +714,7 @@ The second argument of |popup_create()| is a dictionary with options:
present. Use zero to reset.
fixed When FALSE (the default), and:
- "pos" is "botleft" or "topleft", and
@@ -28,10 +27,10 @@ index 41f4da5..8c6bc32 100644
the screen, then
the popup is moved to the left so as to fit the
diff --git a/src/popupwin.c b/src/popupwin.c
-index 96f669a..53e2e86 100644
+index fe06777..9ffe2ba 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
-@@ -1443,7 +1443,17 @@ popup_adjust_position(win_T *wp)
+@@ -1501,7 +1501,17 @@ popup_adjust_position(win_T *wp)
len = linetabsize(wp, lnum);
wp->w_width = w_width;
@@ -50,7 +49,7 @@ index 96f669a..53e2e86 100644
&& allow_adjust_left
&& (wp->w_popup_pos == POPPOS_TOPLEFT
|| wp->w_popup_pos == POPPOS_BOTLEFT))
-@@ -1455,6 +1465,7 @@ popup_adjust_position(win_T *wp)
+@@ -1513,6 +1523,7 @@ popup_adjust_position(win_T *wp)
{
int truncate_shift = shift_by - wp->w_wincol;
@@ -58,7 +57,7 @@ index 96f669a..53e2e86 100644
shift_by -= truncate_shift;
}
-@@ -1462,16 +1473,6 @@ popup_adjust_position(win_T *wp)
+@@ -1520,16 +1531,6 @@ popup_adjust_position(win_T *wp)
maxwidth += shift_by;
wp->w_width = maxwidth;
}
@@ -76,7 +75,7 @@ index 96f669a..53e2e86 100644
{
wp->w_width = len + margin_width;
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
-index 4b616a8..6894aba 100644
+index 41cd6f0..b24733f 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -29,7 +29,7 @@ func Test_simple_popup()
@@ -97,7 +96,7 @@ index 4b616a8..6894aba 100644
call popup_create('right aligned text', #{line: 11, col: 56, wrap: 0, padding: [0, 3, 0, 3], border: [0, 1, 0, 1]})
call popup_create('X', #{line: 2, col: 73})
call popup_create('X', #{line: 3, col: 74})
-@@ -1969,7 +1969,7 @@ func Test_popup_position_adjust()
+@@ -1974,7 +1974,7 @@ func Test_popup_position_adjust()
" Anything placed past the last cell on the right of the screen is moved to
" the left.
"
@@ -106,7 +105,7 @@ index 4b616a8..6894aba 100644
" screen, unless fixed is set.
" Entries for cases which don't vary based on wrapping.
-@@ -1994,10 +1994,9 @@ func Test_popup_position_adjust()
+@@ -1999,10 +1999,9 @@ func Test_popup_position_adjust()
" - expected height
let tests = [
\ #{
@@ -118,7 +117,7 @@ index 4b616a8..6894aba 100644
\ pos: 'botleft',
\ },
\ tests: both_wrap_tests + [
-@@ -2022,22 +2021,9 @@ func Test_popup_position_adjust()
+@@ -2027,22 +2026,9 @@ func Test_popup_position_adjust()
\ ],
\ },
\ #{
@@ -142,7 +141,7 @@ index 4b616a8..6894aba 100644
\ pos: 'botleft',
\ },
\ tests: both_wrap_tests + [
-@@ -2061,7 +2047,7 @@ func Test_popup_position_adjust()
+@@ -2066,7 +2052,7 @@ func Test_popup_position_adjust()
\ ],
\ },
\ #{
@@ -151,16 +150,3 @@ index 4b616a8..6894aba 100644
\ options: #{
\ wrap: 0,
\ fixed: 1,
-diff --git a/src/version.c b/src/version.c
-index 2526c09..92397ee 100644
---- a/src/version.c
-+++ b/src/version.c
-@@ -2578,8 +2578,6 @@ static int included_patches[] =
- 951,
- /**/
- 950,
--/**/
-- 949,
- /**/
- 948,
- /**/
diff --git a/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch b/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch
index 88957622..2579d6b8 100644
--- a/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch
+++ b/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch
@@ -13,10 +13,10 @@ Signed-off-by: James McCoy
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
-index 6131cf5..23f91e0 100644
+index a90655f..604f8f7 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
-@@ -1274,7 +1274,7 @@ export def FTtex()
+@@ -1317,7 +1317,7 @@ export def FTtex()
var firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
if firstNC > 0
# Check the next thousand lines for a LaTeX or ConTeXt keyword.
diff --git a/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch b/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch
index 5b9cae29..6539ff96 100644
--- a/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch
+++ b/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch
@@ -8,10 +8,10 @@ Closes: #382541
1 file changed, 8 insertions(+)
diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim
-index 5fb45cc..e3d84e2 100644
+index de168f0..f2b273f 100644
--- a/runtime/autoload/dist/script.vim
+++ b/runtime/autoload/dist/script.vim
-@@ -426,6 +426,14 @@ def DetectFromText(line1: string)
+@@ -430,6 +430,14 @@ def DetectFromText(line1: string)
elseif line1 =~ 'exec\s\+\S*scheme' || line2 =~ 'exec\s\+\S*scheme'
setl ft=scheme
diff --git a/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch b/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch
index bb703b5d..9b835760 100644
--- a/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch
+++ b/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch
@@ -15,10 +15,10 @@ Signed-off-by: James McCoy
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
-index 837edfe..e240bb4 100644
+index bddfa99..6b3438b 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
-@@ -6129,7 +6129,7 @@ A jump table for the options with a short description can be found at |Q_op|.
+@@ -6145,7 +6145,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'modeline'* *'ml'* *'nomodeline'* *'noml'*
'modeline' 'ml' boolean (Vim default: on (off for root),
diff --git a/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch b/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch
index 7138f701..a242fd98 100644
--- a/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch
+++ b/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch
@@ -17,42 +17,42 @@ Signed-off-by: James Vega
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/main.c b/src/main.c
-index d3730fe..a913f1d 100644
+index 9f9fd12..9ae001d 100644
--- a/src/main.c
+++ b/src/main.c
-@@ -2050,6 +2050,10 @@ parse_command_name(mparm_T *parmp)
+@@ -2056,6 +2056,10 @@ parse_command_name(mparm_T *parmp)
}
else if (STRNICMP(initstr, "vim", 3) == 0)
initstr += 3;
-+#ifdef SYS_TINYRC_FILE
++# ifdef SYS_TINYRC_FILE
+ else if (STRNICMP(initstr, "vi", 2) == 0)
+ parmp->vi_mode = TRUE;
-+#endif
++# endif
// Catch "[r][g]vimdiff" and "[r][g]viewdiff".
if (STRICMP(initstr, "diff") == 0)
-@@ -3369,7 +3373,12 @@ source_startup_scripts(mparm_T *parmp)
+@@ -3378,7 +3382,12 @@ source_startup_scripts(mparm_T *parmp)
* Get system wide defaults, if the file name is defined.
*/
- #ifdef SYS_VIMRC_FILE
+ # ifdef SYS_VIMRC_FILE
- (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE, NULL);
-+# if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC)
++# if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC)
+ if (parmp->vi_mode)
+ (void)do_source((char_u *)SYS_TINYRC_FILE, FALSE, DOSO_NONE, NULL);
+ else
-+# endif
++# endif
+ (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE, NULL);
- #endif
- #ifdef MACOS_X
+ # endif
+ # ifdef MACOS_X
(void)do_source((char_u *)"$VIMRUNTIME/macmap.vim", FALSE,
-@@ -3412,13 +3421,25 @@ source_startup_scripts(mparm_T *parmp)
- #ifdef USR_EXRC_FILE2
+@@ -3421,13 +3430,25 @@ source_startup_scripts(mparm_T *parmp)
+ # ifdef USR_EXRC_FILE2
&& do_source((char_u *)USR_EXRC_FILE2, FALSE,
DOSO_NONE, NULL) == FAIL
-+#endif
-+#if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC)
++# endif
++# if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC)
+ && !parmp->vi_mode
- #endif
+ # endif
&& !has_dash_c_arg)
{
// When no .vimrc file was found: source defaults.vim.
@@ -64,18 +64,18 @@ index d3730fe..a913f1d 100644
+ * don't want to error due to missing defaults.vim. That's provided by
+ * vim-runtime, which isn't typically installed with vim-tiny.
+ */
-+#ifndef TINY_VIMRC
++# ifndef TINY_VIMRC
emsg(_(e_failed_to_source_defaults));
-+#endif
++# endif
+ }
}
}
diff --git a/src/os_unix.h b/src/os_unix.h
-index 145a404..ff205f9 100644
+index a507392..d1f7ea1 100644
--- a/src/os_unix.h
+++ b/src/os_unix.h
-@@ -203,6 +203,9 @@ typedef struct dsc$descriptor DESC;
+@@ -187,6 +187,9 @@ typedef struct dsc$descriptor DESC;
/*
* Unix system-dependent file names
*/
@@ -86,10 +86,10 @@ index 145a404..ff205f9 100644
# define SYS_VIMRC_FILE "$VIM/vimrc"
#endif
diff --git a/src/structs.h b/src/structs.h
-index c64ca82..20c67e8 100644
+index 2b8cb3d..69bcbaf 100644
--- a/src/structs.h
+++ b/src/structs.h
-@@ -4747,6 +4747,9 @@ typedef struct
+@@ -4811,6 +4811,9 @@ typedef struct
#ifdef FEAT_DIFF
int diff_mode; // start with 'diff' set
#endif
diff --git a/debian/rules b/debian/rules
index 5d9860f8..fa73b60a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -37,7 +37,7 @@ else
endif
# Set to TEST_SKIP_PAT= to exclude running tests matching the pattern
-EXCLUDE_PAT = TEST_SKIP_PAT='Test_crash1\|glvs\|termdebug'
+EXCLUDE_PAT = TEST_SKIP_PAT='Test_crash1\|glvs\|termdebug\|Test_client_server_stopinsert'
CFGFLAGS = --prefix=/usr --mandir='$${prefix}'/share/man --without-local-dir
CFGFLAGS += --with-modified-by="$(BUILDER)"
@@ -161,7 +161,7 @@ NAME = vim
VERSION = $(basename $(DEB_VERSION_UPSTREAM))
VIMMAJOR = $(basename $(VERSION))
VIMCUR = $(NAME)$(subst .,,$(VERSION))
-LANGS = da de fr it ja pl ru tr
+LANGS = da de fr it ja pl ru sv tr
DOT_IN_DEPS = debian/vim-runtime.postrm
DOT_IN_DEPS += debian/vim-runtime.preinst
@@ -175,10 +175,6 @@ foreach-variant = \
%:
dh $@
-update-changelog:
- dh_testdir
- wget -O debian/changelog.upstream http://ftp.vim.org/pub/vim/patches/$(VERSION)/README
-
override_dh_auto_clean:
# The vim-basic variant is always enabled, so we can rely on it when checking
# whether we can call "make distclean". The config.cache check is to avoid
@@ -332,9 +328,6 @@ override_dh_install-indep:
debian/vim-gui-common/$$DIR/man1/gvimtutor.1; \
done
-override_dh_installchangelogs:
- dh_installchangelogs -A debian/changelog.upstream
-
install-xxd: DESTDIR=$(CURDIR)/debian/xxd
install-xxd:
$(MAKE) -C src/vim-basic STRIP=: DESTDIR=$(DESTDIR) installtools install-tool-languages
diff --git a/debian/vim-common.install b/debian/vim-common.install
index a54efc1a..4865f845 100644
--- a/debian/vim-common.install
+++ b/debian/vim-common.install
@@ -6,20 +6,7 @@ usr/share/vim/${env:VIMCUR}/doc/sponsor.txt
usr/share/vim/${env:VIMCUR}/doc/uganda.txt
usr/share/vim/${env:VIMCUR}/doc/version${env:VIMMAJOR}.txt
usr/share/icons/
-usr/share/man/da/man1/vim.1
-usr/share/man/da/man1/vimdiff.1
-usr/share/man/de/man1/vim.1
-usr/share/man/fr/man1/vim.1
-usr/share/man/fr/man1/vimdiff.1
-usr/share/man/it/man1/vim.1
-usr/share/man/it/man1/vimdiff.1
-usr/share/man/ja/man1/vim.1
-usr/share/man/ja/man1/vimdiff.1
+usr/share/man/*/man1/vim.1
+usr/share/man/*/man1/vimdiff.1
usr/share/man/man1/vim.1
usr/share/man/man1/vimdiff.1
-usr/share/man/pl/man1/vim.1
-usr/share/man/pl/man1/vimdiff.1
-usr/share/man/ru/man1/vim.1
-usr/share/man/ru/man1/vimdiff.1
-usr/share/man/tr/man1/vim.1
-usr/share/man/tr/man1/vimdiff.1
diff --git a/debian/vim-gtk3.alternatives b/debian/vim-gtk3.alternatives
index 0a173e5e..d0103b76 100644
--- a/debian/vim-gtk3.alternatives
+++ b/debian/vim-gtk3.alternatives
@@ -10,6 +10,7 @@ Dependents:
/usr/share/man/ja/man1/editor.1.gz editor.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/editor.1.gz editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/editor.1.gz editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/editor.1.gz editor.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/editor.1.gz editor.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
@@ -35,6 +36,7 @@ Dependents:
/usr/share/man/ja/man1/ex.1.gz ex.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/ex.1.gz ex.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/ex.1.gz ex.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/ex.1.gz ex.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/ex.1.gz ex.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
@@ -85,6 +87,7 @@ Dependents:
/usr/share/man/ja/man1/vi.1.gz vi.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/vi.1.gz vi.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/vi.1.gz vi.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/vi.1.gz vi.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/vi.1.gz vi.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
@@ -100,6 +103,7 @@ Dependents:
/usr/share/man/ja/man1/view.1.gz view.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/view.1.gz view.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/view.1.gz view.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/view.1.gz view.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/view.1.gz view.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
diff --git a/debian/vim-gui-common.install b/debian/vim-gui-common.install
index 303d7579..df7a3d35 100644
--- a/debian/vim-gui-common.install
+++ b/debian/vim-gui-common.install
@@ -1,10 +1,5 @@
debian/runtime/gvimrc etc/vim/
usr/bin/gvimtutor
usr/share/applications/gvim.desktop
-usr/share/man/fr/man1/evim.1
-usr/share/man/it/man1/evim.1
-usr/share/man/ja/man1/evim.1
+usr/share/man/*/man1/evim.1
usr/share/man/man1/evim.1
-usr/share/man/pl/man1/evim.1
-usr/share/man/ru/man1/evim.1
-usr/share/man/tr/man1/evim.1
diff --git a/debian/vim-motif.alternatives b/debian/vim-motif.alternatives
index df58a5b0..97eb47d0 100644
--- a/debian/vim-motif.alternatives
+++ b/debian/vim-motif.alternatives
@@ -10,6 +10,7 @@ Dependents:
/usr/share/man/ja/man1/editor.1.gz editor.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/editor.1.gz editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/editor.1.gz editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/editor.1.gz editor.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/editor.1.gz editor.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
@@ -35,6 +36,7 @@ Dependents:
/usr/share/man/ja/man1/ex.1.gz ex.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/ex.1.gz ex.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/ex.1.gz ex.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/ex.1.gz ex.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/ex.1.gz ex.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
@@ -85,6 +87,7 @@ Dependents:
/usr/share/man/ja/man1/vi.1.gz vi.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/vi.1.gz vi.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/vi.1.gz vi.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/vi.1.gz vi.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/vi.1.gz vi.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
@@ -100,6 +103,7 @@ Dependents:
/usr/share/man/ja/man1/view.1.gz view.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/view.1.gz view.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/view.1.gz view.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/view.1.gz view.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/view.1.gz view.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 50
diff --git a/debian/vim-nox.alternatives b/debian/vim-nox.alternatives
index a72eef64..cd3dc022 100644
--- a/debian/vim-nox.alternatives
+++ b/debian/vim-nox.alternatives
@@ -10,6 +10,7 @@ Dependents:
/usr/share/man/ja/man1/editor.1.gz editor.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/editor.1.gz editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/editor.1.gz editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/editor.1.gz editor.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/editor.1.gz editor.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 40
@@ -25,6 +26,7 @@ Dependents:
/usr/share/man/ja/man1/ex.1.gz ex.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/ex.1.gz ex.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/ex.1.gz ex.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/ex.1.gz ex.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/ex.1.gz ex.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 40
@@ -50,6 +52,7 @@ Dependents:
/usr/share/man/ja/man1/vi.1.gz vi.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/vi.1.gz vi.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/vi.1.gz vi.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/vi.1.gz vi.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/vi.1.gz vi.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 40
@@ -65,6 +68,7 @@ Dependents:
/usr/share/man/ja/man1/view.1.gz view.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/view.1.gz view.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/view.1.gz view.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/view.1.gz view.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/view.1.gz view.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 40
diff --git a/debian/vim-runtime.install b/debian/vim-runtime.install
index e24dd324..d68ea897 100644
--- a/debian/vim-runtime.install
+++ b/debian/vim-runtime.install
@@ -1,10 +1,4 @@
usr/bin/vimtutor
-usr/share/man/da/man1/vimtutor.1
-usr/share/man/fr/man1/vimtutor.1
-usr/share/man/it/man1/vimtutor.1
-usr/share/man/ja/man1/vimtutor.1
+usr/share/man/*/man1/vimtutor.1
usr/share/man/man1/vimtutor.1
-usr/share/man/pl/man1/vimtutor.1
-usr/share/man/ru/man1/vimtutor.1
-usr/share/man/tr/man1/vimtutor.1
usr/share/vim/
diff --git a/debian/vim-runtime.lintian-overrides b/debian/vim-runtime.lintian-overrides
index 8cf9655b..f7bd4fdd 100644
--- a/debian/vim-runtime.lintian-overrides
+++ b/debian/vim-runtime.lintian-overrides
@@ -1,7 +1,6 @@
# These are intentionally in non-UTF-8 encodings
national-encoding [usr/share/vim/vim*/keymap/*]
national-encoding [usr/share/vim/vim*/lang/*]
-national-encoding [usr/share/vim/vim*/tutor/*]
# This is Vim's builtin help
package-contains-documentation-outside-usr-share-doc [usr/share/vim/vim*/doc/*]
diff --git a/debian/vim-tiny.alternatives b/debian/vim-tiny.alternatives
index 2f4877f4..bb8714c4 100644
--- a/debian/vim-tiny.alternatives
+++ b/debian/vim-tiny.alternatives
@@ -10,6 +10,7 @@ Dependents:
/usr/share/man/ja/man1/editor.1.gz editor.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/editor.1.gz editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/editor.1.gz editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/editor.1.gz editor.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/editor.1.gz editor.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 15
@@ -25,6 +26,7 @@ Dependents:
/usr/share/man/ja/man1/ex.1.gz ex.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/ex.1.gz ex.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/ex.1.gz ex.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/ex.1.gz ex.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/ex.1.gz ex.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 15
@@ -45,6 +47,7 @@ Dependents:
/usr/share/man/ja/man1/vi.1.gz vi.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/vi.1.gz vi.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/vi.1.gz vi.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/vi.1.gz vi.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/vi.1.gz vi.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 15
@@ -60,5 +63,6 @@ Dependents:
/usr/share/man/ja/man1/view.1.gz view.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/view.1.gz view.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/view.1.gz view.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/view.1.gz view.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/view.1.gz view.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 15
diff --git a/debian/vim.alternatives b/debian/vim.alternatives
index 67100513..e24b6cfa 100644
--- a/debian/vim.alternatives
+++ b/debian/vim.alternatives
@@ -10,6 +10,7 @@ Dependents:
/usr/share/man/ja/man1/editor.1.gz editor.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/editor.1.gz editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/editor.1.gz editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/editor.1.gz editor.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/editor.1.gz editor.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 30
@@ -25,6 +26,7 @@ Dependents:
/usr/share/man/ja/man1/ex.1.gz ex.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/ex.1.gz ex.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/ex.1.gz ex.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/ex.1.gz ex.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/ex.1.gz ex.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 30
@@ -50,6 +52,7 @@ Dependents:
/usr/share/man/ja/man1/vi.1.gz vi.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/vi.1.gz vi.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/vi.1.gz vi.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/vi.1.gz vi.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/vi.1.gz vi.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 30
@@ -65,6 +68,7 @@ Dependents:
/usr/share/man/ja/man1/view.1.gz view.ja.1.gz /usr/share/man/ja/man1/vim.1.gz
/usr/share/man/pl/man1/view.1.gz view.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
/usr/share/man/ru/man1/view.1.gz view.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ /usr/share/man/sv/man1/view.1.gz view.sv.1.gz /usr/share/man/sv/man1/vim.1.gz
/usr/share/man/tr/man1/view.1.gz view.tr.1.gz /usr/share/man/tr/man1/vim.1.gz
Priority: 30
diff --git a/lang/LICENSE.ru.txt b/lang/LICENSE.ru.txt
index ba9deae9..d51f178c 100644
--- a/lang/LICENSE.ru.txt
+++ b/lang/LICENSE.ru.txt
@@ -1,3 +1,8 @@
+Примечание. Данный текÑÑ‚ перевода лицензии Vim предоÑтавлÑетÑÑ Ñ Ñ†ÐµÐ»ÑŒÑŽ
+Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ не ÑвлÑетÑÑ ÑŽÑ€Ð¸Ð´Ð¸Ñ‡ÐµÑки значимым. Переводчик не неÑёт
+ответÑтвенноÑти за возможные неточноÑти и ошибки при переводе лицензии.
+ЕдинÑтвенно юридичеÑки значимым ÑвлÑетÑÑ Ñ‚ÐµÐºÑÑ‚ лицензии Vim на английÑком Ñзыке.
+
ЛИЦЕÐЗИЯ VIM
I) Ðеизменённые копии программы Vim могут раÑпроÑтранÑтьÑÑ Ð±ÐµÐ· ограничениÑ
@@ -29,15 +34,15 @@ II) Изменённую (или дополненную) верÑию прогр
будут раÑпроÑтранÑтьÑÑ Ð½Ð° уÑловиÑÑ… наÑтоÑщей лицензии или более
поздней её верÑии. Лица, в данное Ð²Ñ€ÐµÐ¼Ñ ÑвлÑющиеÑÑ Ð¾Ñ‚Ð²ÐµÑ‚Ñтвенными
за разработку, указаны в перечне, размещённом по адреÑу:
- https://github.com/orgs/vim/people. Ð’ Ñлучае Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтой
- информации, актуальные данные будут опубликованы на
- ÑоответÑтвующих реÑурÑах (вероÑтнее вÑего по интернетâ€Ð°Ð´Ñ€ÐµÑам
- vim.sf.net, www.vim.org и/или comp.editors). Ð’ Ñлучае полной
- невозможноÑти уÑтановить контакт Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ñтвенным разработчиком,
- обÑзательÑтва по отправке изменений утрачивают Ñилу. ПоÑле
- передачи Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¾ получении изменений от ответÑтвенного
- разработчика, необходимоÑть в повторной отправке копии изменённой
- программы Vim неприменима.
+ https://github.com/orgs/vim/people.
+ При изменении Ñтой информации, актуальные данные будут
+ опубликованы на ÑоответÑтвующих реÑурÑах (вероÑтнее вÑего
+ по интернетâ€Ð°Ð´Ñ€ÐµÑам vim.sf.net, www.vim.org и/или comp.editors).
+ Ð’ Ñлучае полной невозможноÑти ÑвÑзатьÑÑ Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ñтвенным
+ разработчиком, обÑзательÑтва по отправке изменений утрачивают
+ Ñилу. ПоÑле передачи Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¾ получении изменений
+ от ответÑтвенного разработчика, необходимоÑть в повторной
+ отправке копии изменённой программы Vim неприменима.
b) ЕÑли лицом получена Ð¸Ð·Ð¼ÐµÐ½Ñ‘Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Vim,
раÑпроÑтранÑющаÑÑÑ Ð½Ð° уÑловиÑÑ…, указанных в ч. II) п. 2) пп. а)
допуÑкаетÑÑ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐµ её раÑпроÑтранение Ñтим лицом без внеÑениÑ
diff --git a/lang/LICENSE.sv.txt b/lang/LICENSE.sv.txt
new file mode 100644
index 00000000..29a34222
--- /dev/null
+++ b/lang/LICENSE.sv.txt
@@ -0,0 +1,78 @@
+VIM-LICENS
+
+I) Det finns inga begränsningar för distribution av oförändrade kopior av Vim förutom
+ att de måste innehålla denna licenstext. Du kan också distribuera
+ oförändrade delar av Vim, likaså utan begränsningar förutom att de måste
+ innehålla denna licenstext. Du får också inkludera körbara filer
+ som du har skapat från de oförändrade Vim-källorna, samt dina egna användningsexempel
+ och Vim-skript.
+
+II) Det är tillåtet att distribuera en modifierad (eller utökad) version av Vim,
+ inklusive körbara filer och/eller källkod, när följande fyra
+ villkor är uppfyllda:
+ 1) Denna licenstext måste inkluderas oförändrad.
+ 2) Den modifierade Vim måste distribueras på ett av följande fem sätt:
+ a) Om du själv gör ändringar i Vim måste du tydligt beskriva
+ distributionen hur man kan kontakta dig. När underhållaren ber dig
+ (på något sätt) om en kopia av den modifierade Vim du distribuerat, måste du
+ måste du göra dina ändringar, inklusive källkoden, tillgängliga för
+ underhållaren utan kostnad. Underhållaren förbehåller sig rätten att
+ inkludera dina ändringar i den officiella versionen av Vim. Vad
+ underhållaren kommer att göra med dina ändringar och under vilken licens de
+ kommer att distribueras är förhandlingsbart. Om ingen förhandling har ägt rum
+ gäller denna licens, eller en senare version, även för dina ändringar.
+ De nuvarande underhållarna finns listade här: https://github.com/orgs/vim/people.
+ Om detta ändras kommer det att meddelas på lämpliga platser (troligen
+ vim.sf.net, www.vim.org och/eller comp.editors). När det är helt
+ omöjligt att kontakta underhållaren upphör skyldigheten att skicka
+ dina ändringar upphör. När underhållaren har bekräftat att han har
+ mottagit dina ändringar behöver de inte skickas igen.
+ b) Om du har fått en modifierad Vim som distribuerats enligt
+ nämnts under a) får du distribuera den vidare
+ oförändrat, enligt vad som anges i I). Om du gör ytterligare ändringar gäller
+ gäller texten under a) för dessa ändringar.
+ c) Tillhandahåll alla ändringar, inklusive källkod, med varje kopia av
+ den modifierade Vim du distribuerar. Detta kan göras i form av en
+ kontextdiff. Du kan välja vilken licens du vill använda för ny kod som du
+ lägger till. Ändringarna och deras licens får inte hindra andra från att
+ göra egna ändringar i den officiella versionen av Vim.
+ d) När du har en modifierad Vim som innehåller ändringar enligt
+ under c), kan du distribuera den utan källkoden för
+ ändringarna om följande tre villkor är uppfyllda:
+ - Licensen som gäller för ändringarna tillåter dig att distribuera
+ ändringarna till Vim-underhållaren utan avgift eller begränsningar, och
+ tillåter Vim-underhållaren att inkludera ändringarna i den officiella
+ versionen av Vim utan avgift eller begränsningar.
+ - Du behåller ändringarna i minst tre år efter senaste
+ distribution av motsvarande modifierade Vim. När underhållaren
+ eller någon som du distribuerat den modifierade Vim till ber dig (på
+ något sätt) om ändringarna inom denna period måste du göra dem
+ tillgängliga för honom.
+ - Du beskriver tydligt i distributionen hur man kan kontakta dig. Denna
+ kontaktinformationen måste vara giltig i minst tre år
+ efter den sista distributionen av motsvarande modifierade Vim, eller så länge
+ som möjligt.
+ e) När GNU General Public License (GPL) gäller för ändringarna,
+ kan du distribuera den modifierade Vim under GNU GPL version 2 eller
+ någon senare version.
+ 3) Ett meddelande måste läggas till, åtminstone i utdata från kommandot ":version"
+ och i introduktionsskärmen, så att användaren av den modifierade Vim
+ kan se att den har modifierats. Vid distribution enligt
+ under 2)e) krävs det endast att meddelandet läggs till i den mån detta
+ inte strider mot den licens som används för ändringarna.
+ 4) Kontaktinformationen som krävs enligt 2)a) och 2)d) får inte
+ tas bort eller ändras, förutom att personen själv kan göra
+ korrigeringar.
+
+III) Om du distribuerar en modifierad version av Vim uppmuntras du att använda
+ Vim-licensen för dina ändringar och göra dem tillgängliga för
+ underhållaren, inklusive källkoden. Det bästa sättet att göra detta är
+ via e-post eller genom att ladda upp filerna till en server och e-posta URL:en.
+ Om antalet ändringar är litet (t.ex. en modifierad Makefile) räcker det att skicka ett
+ kontextdiff. E-postadressen som ska användas är
+
+
+IV) Det är inte tillåtet att ta bort denna licens från distributionen av Vim
+ källkoden, delar av den eller från en modifierad version. Du får använda denna
+ licensen för tidigare Vim-utgåvor istället för den licens som de levererades med
+ med, om du så önskar.
diff --git a/lang/LICENSE.zh_cn.txt b/lang/LICENSE.zh_cn.txt
new file mode 100644
index 00000000..e3eef9a3
--- /dev/null
+++ b/lang/LICENSE.zh_cn.txt
@@ -0,0 +1,60 @@
+注æ„: 本译文仅供å‚è€ƒã€‚è‹¥å› è¯‘æ–‡é”™æ¼å¼•å‘ä»»ä½•é—®é¢˜ï¼Œè¯‘è€…æ¦‚ä¸æ‰¿æ‹…责任。VIM 许å¯è¯çš„
+å®Œæ•´è‹±æ–‡ç‰ˆæœ¬ä¸ºå”¯ä¸€æ³•å¾‹ä¾æ®ã€‚如有任何疑问,以英文原文为准。
+
+VIM 许å¯è¯
+
+I) å¯ä»¥ä»»æ„å‘布没有修改的 Vim 的拷è´ï¼Œä½†æ˜¯å¿…é¡»ä¿è¯åŒ…嫿œ¬è®¸å¯è¯ã€‚您也å¯ä»¥å‘布
+ 未ç»ä¿®æ”¹çš„部分 Vimï¼ŒåŒæ ·ä¹Ÿå¿…须包å«è¿™ä»½è®¸å¯è¯ã€‚å‘布由未ç»ä¿®æ”¹çš„ Vim æºä»£ç
+ 所编译出的 Vim 坿‰§è¡Œæ–‡ä»¶ï¼Œå¤–åŠ æ‚¨è‡ªå·±çš„åº”ç”¨å®žä¾‹å’Œ Vim 脚本也是å…许的。
+
+II) 在满足以下全部四个æ¡ä»¶çš„å‰æä¸‹ï¼Œæ‚¨å¯ä»¥å‘布ç»è¿‡ä¿®æ”¹ (或扩充) çš„ Vim 版本,
+ åŒ…æ‹¬å¯æ‰§è¡Œæ–‡ä»¶ å’Œ/或 æºä»£ç :
+ 1) 本许å¯è¯å¿…须包å«åœ¨å†…,并且ä¸èƒ½è¢«ä¿®æ”¹ã€‚
+ 2) ç»è¿‡ä¿®æ”¹çš„ Vim å¿…é¡»ä»¥ä¸‹è¿°äº”ç§æ–¹å¼ä¹‹ä¸€å‘布:
+ a) 如果您本人对 Vim åšäº†æ”¹åŠ¨ï¼Œæ‚¨å¿…é¡»åœ¨å‘布版本里清楚地说明如何与您è”系。
+ 当 Vim 的维护者 (以任何方å¼) 呿‚¨ç´¢å–您所å‘布的 Vim 时,您必须把所åš
+ 的改动包括æºä»£ç æ— å¿åœ°æä¾›å‡ºæ¥ã€‚维护者ä¿ç•™æŠŠè¿™äº›æ”¹åŠ¨åŠ å…¥ Vim æ£å¼ç‰ˆæœ¬
+ çš„æƒåˆ©ã€‚è‡³äºŽç»´æŠ¤è€…æ€Žæ ·å¤„ç†è¿™äº›æ”¹åŠ¨ï¼Œä»¥åŠç”¨ä»€ä¹ˆè®¸å¯è¯å‘布,å¯ä»¥å商。
+ 如果没有å商,那么,本许å¯è¯ï¼Œæˆ–è€…å®ƒæ›´æ–°çš„ç‰ˆæœ¬ï¼ŒåŒæ ·é€‚用于您åšå‡ºçš„æ”¹
+ 动。Vim çŽ°åœ¨çš„å‡ ä½ç»´æŠ¤è€…å¯è§:
+ https://github.com/orgs/vim/people
+ 如果维护者å‘生å˜åŠ¨ï¼Œä¼šåœ¨åˆé€‚的地方 (很å¯èƒ½æ˜¯ vim.sf.netã€www.vim.org
+ å’Œ/或 comp.editors) 公布,当完全ä¸èƒ½ä¸Žç»´æŠ¤è€…è”系时,å‘é€å˜æ›´çš„约定自
+ 动终æ¢ã€‚一旦维护者确认收到了您所åšçš„修改,您就ä¸å¿…冿¬¡å‘é€äº†ã€‚
+
+ b) 如果您得到的是一个修改过的 Vim,并且它是在æ¡ä»¶ a) 下å‘布的,那么您å¯
+ 以ä¸åŠ æ”¹åŠ¨åœ°åœ¨æ¡ä»¶ I) 下å‘布它;如果您åˆåšäº†é¢å¤–的改动,则这些改动å—
+ 到 a) æ¬¾æ¡æ–‡çš„约æŸã€‚
+
+ c) 在您å‘布的ç»è¿‡ä¿®æ”¹çš„ Vim çš„æ¯ä¸€ä»½æ‹·è´é‡Œï¼Œæä¾›æ‰€æœ‰çš„å˜æ›´éƒ¨åˆ†ï¼ŒåŒ…括æºä»£
+ ç 。æä¾›çš„å½¢å¼å¯ä»¥é‡‡ç”¨ä¸Šä¸‹æ–‡é£Žæ ¼çš„差异比较记录 (context diff)。您å¯ä»¥
+ ä¸ºæ·»åŠ çš„æ–°ä»£ç 选择许å¯è¯ï¼Œä½†æ˜¯è¿™äº›æ›´æ”¹å’Œä¸ºå…¶é€‰æ‹©çš„许å¯è¯ä¸èƒ½é™åˆ¶ä»–人
+ 对 Vim æ£å¼ç‰ˆæœ¬ä½œå‡ºè‡ªå·±çš„æ”¹åŠ¨ã€‚
+
+ d) 在满足以下全部三个æ¡ä»¶çš„å‰æä¸‹ï¼Œæ‚¨å¯ä»¥ç»§ç»å‘布带有æ¡ä»¶ c) 所æåŠä¹‹å˜
+ æ›´çš„ç»è¿‡ä¿®æ”¹çš„ Vim,而ä¸å¿…在å‘布时æä¾›æ›´æ”¹éƒ¨åˆ†çš„æºä»£ç :
+ - è¿™äº›å˜æ›´æ‰€é™„带的许å¯è¯å…è®¸æ‚¨æŠŠè¿™äº›å˜æ›´æ— å¿åœ°å¹¶ä¸”没有任何é™åˆ¶åœ°æä¾›
+ ç»™ Vim 的维护者,而且å…许 Vim çš„ç»´æŠ¤è€…æ— å¿åœ°å¹¶ä¸”没有任何é™åˆ¶åœ°æŠŠè¿™
+ äº›æ›´æ”¹åŠ å…¥åˆ° Vim çš„æ£å¼ç‰ˆæœ¬ä¸ã€‚
+ - 从您最åŽä¸€æ¬¡å‘布更改的 Vim 之日起,您è¦ä¿å˜è¿™äº›æ”¹åŠ¨è‡³å°‘ä¸‰å¹´æ—¶é—´ã€‚åœ¨
+ 这期间,维护者或别人 (以任何方å¼) 呿‚¨è¦æ±‚æä¾›è¿™äº›å˜æ›´æ—¶ï¼Œæ‚¨å¿…é¡»æ
+ 供给他。
+ - 您è¦åœ¨å‘å¸ƒç‰ˆæœ¬ä¸æ¸…楚地说明如何与您è”系,这个è”系方å¼å¿…é¡»ä¿è¯è‡ªæœ€åŽ
+ 一次å‘布相应的ç»è¿‡ä¿®æ”¹çš„ Vim 之日起至少三年有效,或尽å¯èƒ½é•¿ã€‚
+ e) å½“è¿™äº›å˜æ›´ä»¥ GPL (GNU General Public License,GNU 通用公共许å¯è¯) å‘
+ 布时,您å¯ä»¥åœ¨ GPL 版本 2,或更高版本的 GPL 下å‘布修改过的 Vim。
+ 3) å¿…é¡»æ·»åŠ ä¸€æ¡æ”¹åŠ¨çš„ä¿¡æ¯ã€‚è‡³å°‘è¦æ”¾åœ¨ "version" 命令的输出和å¯åŠ¨ç”»é¢é‡Œï¼Œå¥½
+ 让用户知é“自己用的是一个修改过的 Vim。当以 2)e) æ¡ä»¶å‘å¸ƒæ—¶ï¼Œåªæœ‰ä¸ä¸Žå˜
+ 更适用的许å¯è¯å†²çªï¼Œè¿™ä¸ªä¿¡æ¯çš„æ·»åŠ æ‰æ˜¯å¿…è¦çš„。
+ 4) 在 2)a) å’Œ 2)d) æ¡ä»¶é‡Œè¦æ±‚çš„è”系方å¼ä¸èƒ½éšä¾¿æ›´æ”¹æˆ–åˆ é™¤ï¼Œé™¤éžæ˜¯ä½œè€…自己
+ 作出的更æ£ã€‚
+
+III) 如果您å‘布一个更改过的 Vimï¼Œå¼ºçƒˆå»ºè®®æ‚¨å¯¹å˜æ›´éƒ¨åˆ†ä½¿ç”¨ Vim 的许å¯è¯ï¼Œå¹¶ä¸”对
+ 维护者æä¾›å˜æ›´éƒ¨åˆ†å¹¶å¼€æ”¾æºä»£ç ã€‚æœ€å¥½çš„æ–¹å¼æ˜¯é€šè¿‡ç”µå邮件或者把文件放到æœ
+ 务器上,通过电åé‚®ä»¶ä¼ é€ URL。如果åªä¿®æ”¹äº†å¾ˆå°‘的部分 (ä¾‹å¦‚ï¼Œåªæ˜¯ä¸€ä¸ªä¿®æ”¹
+ 过的 Makefile)ï¼Œé‚£ä¹ˆä¼ é€ä¸€ä¸ªä¸Šä¸‹æ–‡é£Žæ ¼çš„差异比较记录 (context diff) å°±å¯
+ 以了。电åé‚®ä»¶çš„åœ°å€æ˜¯
+
+IV) ä¸å…许从 Vim çš„æºä»£ç çš„å‘行版本或其ä¸éƒ¨åˆ†çš„æºä»£ç é‡Œåˆ é™¤æœ¬è®¸å¯è¯ï¼Œå³ä½¿æ¥è‡ª
+ 更改过的版本也是如æ¤ã€‚您å¯èƒ½æƒ³ç”¨è¿™ä»½è®¸å¯è¯ä»£æ›¿ä»¥å‰ç‰ˆæœ¬çš„ Vim 里的许å¯è¯ï¼Œ
+ è¿™å¯ä»¥ç”±æ‚¨è‡ªè¡Œå†³å®šã€‚
diff --git a/lang/README.sv.txt b/lang/README.sv.txt
new file mode 100644
index 00000000..43d70648
--- /dev/null
+++ b/lang/README.sv.txt
@@ -0,0 +1,139 @@
+README.txt för version 9.1 av Vim: Vi IMproved.
+
+
+VAD ÄR VIM?
+
+Vim är en kraftigt förbättrad version av den gamla goda UNIX-editorn Vi. Många nya
+funktioner har lagts till: ångra på flera nivåer, syntaxmarkering, kommandoradshistorik
+historik, onlinehjälp, stavningskontroll, filnamns komplettering, blockoperationer,
+skriptspråk etc. Det finns också ett grafiskt användargränssnitt (GUI) tillgängligt.
+Vi-kompatibiliteten bibehålls dock, så de som har Vi "i fingrarna" kommer
+känna sig som hemma. Se "runtime/doc/vi_diff.txt" för skillnader jämfört med Vi.
+
+Denna editor är mycket användbar för att redigera program och andra vanliga textfiler.
+Alla kommandon ges med vanliga tangentbordstecken, så de som kan skriva
+med tio fingrar kan arbeta mycket snabbt. Dessutom kan funktionsknapparna
+mappas till kommandon av användaren, och musen kan användas.
+
+Vim syftar också till att tillhandahålla en (mestadels) POSIX-kompatibel vi-implementering när
+kompileras med en minimal uppsättning funktioner (vanligtvis kallad vim.tiny), som används
+av många Linux-distributioner som standardvi-redigerare.
+
+Vim körs under MS-Windows (7, 8, 10, 11), macOS, Haiku, VMS och nästan alla
+varianter av UNIX. Det bör inte vara särskilt svårt att porta till andra system.
+Äldre versioner av Vim körs på MS-DOS, MS-Windows 95/98/Me/NT/2000/XP/Vista,
+Amiga DOS, Atari MiNT, BeOS, RISC OS och OS/2. Dessa underhålls inte längre.
+
+
+DISTRIBUTION
+
+Du kan ofta använda din favoritpakethanterare för att installera Vim. På Mac och
+Linux är en liten version av Vim förinstallerad, men du behöver ändå installera Vim
+om du vill ha fler funktioner.
+
+Det finns separata distributioner för Unix, PC, Amiga och vissa andra system.
+Denna README.txt-fil medföljer runtime-arkivet. Den innehåller
+dokumentation, syntaxfiler och andra filer som används vid körning. För att köra
+Vim måste du skaffa antingen ett av binärarkiven eller ett källarkiv.
+Vilket du behöver beror på vilket system du vill köra det på och om du
+vill eller måste kompilera det själv. Se "https://www.vim.org/download.php" för
+en översikt över de distributioner som för närvarande finns tillgängliga.
+
+Några populära ställen att hämta den senaste versionen av Vim:
+* Kolla in git-arkivet från github: https://github.com/vim/vim.
+* Hämta källkoden som ett arkiv: https://github.com/vim/vim/tags.
+* Hämta en Windows-körbar fil från vim-win32-installer-arkivet:
+ https://github.com/vim/vim-win32-installer/releases.
+
+
+KOMPILERING
+
+Om du har skaffat en binär distribution behöver du inte kompilera Vim. Om du
+har skaffat en källkodsdistribution finns allt du behöver för att kompilera Vim i
+katalogen "src". Se src/INSTALL för instruktioner.
+
+
+INSTALLATION
+
+Se någon av dessa filer för systemspecifika instruktioner. Antingen i
+READMEdir-katalogen (i arkivet) eller i toppkatalogen (om du packar upp en
+arkiv):
+
+README_ami.txt Amiga
+README_unix.txt Unix
+README_dos.txt MS-DOS och MS-Windows
+README_mac.txt Macintosh
+README_haiku.txt Haiku
+README_vms.txt VMS
+
+Det finns andra README_*.txt-filer, beroende på vilken distribution du använde.
+
+
+DOKUMENTATION
+
+Vim-tutorn är en timmes lång utbildningskurs för nybörjare. Ofta kan den
+startas som "vimtutor". Se ":help tutor" för mer information.
+
+Det bästa är att använda ":help" i Vim. Om du ännu inte har en körbar fil, läs
+"runtime/doc/help.txt". Den innehåller hänvisningar till andra dokumentationsfiler.
+Användarhandboken läses som en bok och rekommenderas för att lära sig använda Vim. Se
+":help user-manual".
+
+
+KOPIERING
+
+Vim är Charityware. Du kan använda och kopiera det så mycket du vill, men du
+uppmuntras att göra en donation för att hjälpa föräldralösa barn i Uganda. Läs filen
+"runtime/doc/uganda.txt" för mer information (skriv ":help uganda" i Vim).
+
+Sammanfattning av licensen: Det finns inga begränsningar för användning eller distribution av en
+oförändrad kopia av Vim. Delar av Vim får också distribueras, men licenstexten
+texten måste alltid inkluderas. För modifierade versioner gäller några begränsningar.
+Licensen är GPL-kompatibel, du kan kompilera Vim med GPL-bibliotek och
+distribuera det.
+
+
+SPONSRING
+
+Att fixa buggar och lägga till nya funktioner tar mycket tid och ansträngning. För att visa
+din uppskattning för arbetet och motivera utvecklarna att fortsätta arbeta med
+Vim, skicka gärna en donation.
+
+Pengarna du donerar kommer huvudsakligen att användas för att hjälpa barn i Uganda. Se
+"runtime/doc/uganda.txt". Men samtidigt ökar donationerna
+utvecklingsteamets motivation att fortsätta arbeta med Vim!
+
+För den senaste informationen om sponsring, se Vims webbplats:
+ https://www.vim.org/sponsor/
+
+
+BIDRA
+
+Om du vill hjälpa till att förbättra Vim, se filen CONTRIBUTING.md.
+
+
+INFORMATION
+
+Om du använder macOS kan du använda MacVim: https://macvim.org
+
+De senaste nyheterna om Vim finns på Vims hemsida:
+ https://www.vim.org/
+
+Om du har problem, ta en titt på Vims dokumentation eller tips:
+ https://www.vim.org/docs.php
+ https://vim.fandom.com/wiki/Vim_Tips_Wiki
+
+Om du fortfarande har problem eller andra frågor, använd någon av mailinglistorna
+för att diskutera dem med Vim-användare och utvecklare:
+ https://www.vim.org/maillist.php
+
+Om inget annat fungerar, rapportera buggar direkt till vim-dev-maillistan:
+
+
+
+HUVUDFÖRFATTARE
+
+Det mesta av Vim har skapats av Bram Moolenaar , ":help Bram-Moolenaar"
+
+Skicka övriga kommentarer, patchar, blommor och förslag till vim-dev
+:
diff --git a/lang/README.zh_cn.txt b/lang/README.zh_cn.txt
new file mode 100644
index 00000000..94e8d8dd
--- /dev/null
+++ b/lang/README.zh_cn.txt
@@ -0,0 +1,122 @@
+Vim: Vi IMproved 9.1 版本的 README.txt 文件
+
+
+什 么 是 VIM ?
+
+Vim 是ç»å…¸ UNIX 编辑器 Vi 的一个æžå¤§æ”¹è¿›ç‰ˆæœ¬ã€‚它新增了许多功能:多级撤销ã€è¯æ³•高
+亮ã€å‘½ä»¤è¡Œåކå²ã€åœ¨çº¿å¸®åŠ©ã€æ‹¼å†™æ£€æŸ¥ã€æ–‡ä»¶å补全ã€å—æ“作ã€è„šæœ¬è¯è¨€ç‰ã€‚åŒæ—¶ä¹Ÿæä¾›äº†
+图形用户界é¢ï¼ˆGUI)。尽管如æ¤ï¼ŒVi 兼容性ä¾ç„¶å¾—以ä¿ç•™ï¼Œä¹ 惯使用 Vi 的用户æ“作时ä»
+会感到得心应手。与 Vi 的差异请å‚阅 "runtime/doc/vi_diff.txt"。
+
+æ¤ç¼–辑器对于编辑代ç 和其他纯文本文件éžå¸¸æœ‰ç”¨ã€‚所有命令都通过常规键盘å—符输入,å›
+æ¤ç†Ÿç»ƒç›²æ‰“的用户能够高效工作。æ¤å¤–,用户å¯ä»¥å°†åŠŸèƒ½é”®æ˜ å°„åˆ°å‘½ä»¤ï¼Œå¹¶ä¸”å¯ä»¥ä½¿ç”¨é¼ æ ‡ã€‚
+
+Vim 也致力于æä¾›ä¸€ä¸ªï¼ˆåŸºæœ¬ï¼‰ç¬¦åˆ POSIX æ ‡å‡†çš„ vi 实现。当它以最å°åŠŸèƒ½é›†ï¼ˆé€šå¸¸ç§°
+为 vim.tiny)编译时,被许多 Linux å‘行版用作默认的 vi 编辑器。
+
+Vim å¯åœ¨ MS-Windows (7, 8, 10, 11)ã€macOSã€Haikuã€VMS 以åŠå‡ 乎所有 UNIX å˜ä½“上è¿
+行。移æ¤åˆ°å…¶ä»–系统应该ä¸å¤ªå›°éš¾ã€‚旧版本的 Vim 曾在 Amiga DOSã€Atari MiNTã€BeOSã€
+MS-DOSã€MS-Windows 95/98/Me/NT/2000/XP/Vistaã€RISC OS å’Œ OS/2 上è¿è¡Œã€‚这些版本的
+维护现已终æ¢ã€‚
+
+
+获 å– é€” 径
+
+é€šå¸¸ä½ å¯ä»¥ä½¿ç”¨ä½ 喜欢的软件包管ç†å™¨æ¥å®‰è£… Vim。在 Mac å’Œ Linux 上,会预装一个简化
+版的 Vimï¼Œå¦‚æžœä½ éœ€è¦æ›´å¤šåŠŸèƒ½ï¼Œä»éœ€è¦å®‰è£…完整的 Vim。
+
+有针对 Unixã€PCã€Amiga 和其他一些系统的独立å‘行版。本 README.txt 文件éšè¿è¡Œæ—¶å˜
+档一起æä¾›ã€‚è¯¥å˜æ¡£åŒ…嫿–‡æ¡£ã€è¯æ³•文件以åŠå…¶ä»–è¿è¡Œæ—¶ä½¿ç”¨çš„æ–‡ä»¶ã€‚è¦è¿è¡Œ Vimï¼Œä½ å¿…é¡»
+获å–äºŒè¿›åˆ¶å˜æ¡£æˆ–æºä»£ç å˜æ¡£ä¹‹ä¸€ã€‚您需è¦å“ªä¸€ç§å–决于您想è¦è¿è¡Œ Vim çš„ç³»ç»Ÿä»¥åŠæ‚¨æ˜¯
+å¦å¸Œæœ›æˆ–必须自行编译。请查阅 "https://www.vim.org/download.php" 以了解当å‰å¯ç”¨çš„
+å‘行版概览。
+
+èŽ·å–æœ€æ–°ç‰ˆ Vim çš„å¸¸è§æ–¹å¼ï¼š
+* 从 github 检出 git 仓库:https://github.com/vim/vim。
+* ä»¥å˜æ¡£å½¢å¼èŽ·å–æºä»£ç :https://github.com/vim/vim/tags。
+* 从 vim-win32-installer ä»“åº“èŽ·å– Windows 坿‰§è¡Œæ–‡ä»¶ï¼š
+ https://github.com/vim/vim-win32-installer/releases。
+
+
+编 译
+
+å¦‚æžœä½ èŽ·å¾—çš„æ˜¯äºŒè¿›åˆ¶å‘è¡Œç‰ˆï¼Œåˆ™æ— éœ€ç¼–è¯‘ Vimã€‚å¦‚æžœä½ èŽ·å¾—çš„æ˜¯æºä»£ç å‘行版,编译 Vim
+所需的所有内容都在 "src" 目录ä¸ã€‚请å‚阅 src/INSTALL 文件ä¸çš„说明。
+
+
+安 装
+
+请查阅以下文件之一以获å–系统特定的安装说明。这些文件ä½äºŽä»“库ä¸çš„ READMEdir 目录,
+æˆ–è€…åœ¨ä½ è§£åŽ‹ç¼©å˜æ¡£åŽçš„顶级目录ä¸ï¼š
+
+README_ami.txt Amiga
+README_unix.txt Unix
+README_dos.txt MS-DOS 和 MS-Windows
+README_mac.txt Macintosh
+README_haiku.txt Haiku
+README_vms.txt VMS
+
+æ ¹æ®ä½ 使用的å‘行版,å¯èƒ½è¿˜æœ‰å…¶ä»– README_*.txt 文件。
+
+
+æ–‡ æ¡£
+
+Vim tutor 是为åˆå¦è€…è®¾è®¡çš„ä¸€å°æ—¶åŸ¹è®è¯¾ç¨‹ã€‚通常å¯ä»¥é€šè¿‡ "vimtutor" 命令å¯åŠ¨ã€‚æ›´å¤š
+ä¿¡æ¯è¯·å‚阅 ":help tutor"。
+
+æœ€ä½³æ–¹å¼æ˜¯åœ¨ Vim ä¸ä½¿ç”¨ ":help" å‘½ä»¤ã€‚å¦‚æžœæ‚¨å°šæœªå®‰è£…å¯æ‰§è¡Œæ–‡ä»¶ï¼Œè¯·é˜…读
+"runtime/doc/help.txt"ã€‚è¯¥æ–‡ä»¶åŒ…å«æŒ‡å‘其他文档文件的指引。用户手册采用书ç±ä½“例编
+排,是å¦ä¹ 使用 Vim 的推è资料。具体请å‚阅 ":help user-manual"。
+
+
+å¤ åˆ¶ 与 版 æƒ
+
+Vim 是慈善软件。您å¯ä»¥å°½æƒ…使用和å¤åˆ¶å®ƒï¼Œä½†é¼“åŠ±æ‚¨ææ¬¾ä»¥å¸®åŠ©ä¹Œå¹²è¾¾çš„å¤å„¿ã€‚请阅读
+"runtime/doc/uganda.txt" 文件了解详情(在 Vim 䏿‰§è¡Œ ":help uganda")。
+
+è®¸å¯æ‘˜è¦ï¼šå¯¹äºŽæœªç»ä¿®æ”¹çš„ Vim 副本,其使用或分å‘ä¸å—任何é™åˆ¶ã€‚Vim 的部分内容亦å¯
+分å‘,但必须始终包å«è®¸å¯æ–‡æœ¬ã€‚对于修改版本,则需éµå¾ªè‹¥å¹²é™åˆ¶æ¡æ¬¾ã€‚本许å¯è¯ä¸Ž GPL
+兼容,您å¯ä½¿ç”¨ GPL 库编译 Vim 并进行分å‘。
+
+
+赞 助
+
+ä¿®å¤é”™è¯¯ä¸Žå¢žæ·»æ–°åŠŸèƒ½å‡éœ€æŠ•入大釿—¶é—´ä¸Žç²¾åŠ›ã€‚ä¸ºæ”¯æŒå¼€å‘工作并激励开å‘者æŒç»å®Œå–„
+Vim,敬请通过æèµ 表达您的认å¯ã€‚
+
+您æèµ 的资金将主è¦ç”¨äºŽå¸®åŠ©ä¹Œå¹²è¾¾çš„å„¿ç«¥ã€‚è¯·å‚阅 "runtime/doc/uganda.txt"ã€‚ä½†åŒæ—¶ï¼Œ
+您的æèµ 也将激励开å‘团队æŒç»æŠ•å…¥ Vim 的开å‘工作。
+
+关于赞助的最新信æ¯ï¼Œè¯·æŸ¥çœ‹ Vim 网站:
+ https://www.vim.org/sponsor/
+
+
+贡 献
+
+如果您想帮助改进 Vim,请å‚阅 CONTRIBUTING.md 文件。
+
+
+ä¿¡ æ¯ ä¸Ž 支 æŒ
+
+如果您在 macOS 上,å¯ä»¥ä½¿ç”¨ MacVim:https://macvim.org
+
+关于 Vim 的最新消æ¯å¯ä»¥åœ¨ Vim 主页上找到:
+ https://www.vim.org/
+
+如果您é‡åˆ°é—®é¢˜ï¼Œè¯·æŸ¥é˜… Vim 文档或使用技巧:
+ https://www.vim.org/docs.php
+ https://vim.fandom.com/wiki/Vim_Tips_Wiki
+
+å¦‚æžœæ‚¨ä»æœ‰é—®é¢˜æˆ–其他疑问,请使用其ä¸ä¸€ä¸ªé‚®ä»¶åˆ—表与 Vim 用户和开å‘者讨论:
+ https://www.vim.org/maillist.php
+
+å¦‚æžœå…¶ä»–æ–¹æ³•éƒ½æ— æ•ˆï¼Œè¯·ç›´æŽ¥å°†é”™è¯¯æŠ¥å‘Šå‘é€åˆ° vim-dev 邮件列表:
+
+
+
+主 è¦ ä½œ 者
+
+Vim 主è¦ç”± Bram Moolenaar 创建,å¯é€šè¿‡ ":help Bram-Moolenaar" 命
+令了解更多信æ¯ã€‚
+
+请将任何其他评论ã€è¡¥ä¸ã€é²œèŠ±å’Œå»ºè®®å‘é€åˆ° vim-dev 邮件列表:
diff --git a/nsis/README.txt b/nsis/README.txt
index c4f3645a..01c6c5d3 100644
--- a/nsis/README.txt
+++ b/nsis/README.txt
@@ -35,7 +35,7 @@ Preparatory stage
and for the 64-bit version — "winpty.dll" from x64/bin to "winpty64.dll".
Put the renamed file and "winpty-agent.exe" in "../.." (above the "vim91"
directory). However, you can specify a different directory by specifying
- the appropriate makefile value. How to do this is described below.
+ the appropriate makefile value. How to do this is described below.
6. To use stronger encryption, add the Sodium library. You can get it here:
https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip
@@ -64,7 +64,7 @@ Preparatory stage
The default is "../..". However, you can specify a
different directory by specifying the appropriate makefile value. How to do
- this is described below.
+ this is described below.
8. Install NSIS if you didn't do that already.
Download Unicode version the ShellExecAsUser plug-in for NSIS from:
@@ -80,7 +80,7 @@ Installer assembly stage
After the installer is created and you copy it to the desired location, run
the following command in the "/nsis" directory
nmake.exe -lf Make_mvc.mak clean
-
+
On UNIX-like systems, go to the "/nsis" directory and type the command
make -f Makefile [variables] all
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index 5cfc0512..9843ff08 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -240,6 +240,7 @@ Page custom SetCustom ValidateCustom
!include "lang\russian.nsi"
!include "lang\serbian.nsi"
!include "lang\simpchinese.nsi"
+ !include "lang\swedish.nsi"
!include "lang\tradchinese.nsi"
!include "lang\turkish.nsi"
!endif
diff --git a/nsis/lang/japanese.nsi b/nsis/lang/japanese.nsi
index c28529cb..6bacf493 100644
--- a/nsis/lang/japanese.nsi
+++ b/nsis/lang/japanese.nsi
@@ -32,14 +32,14 @@ LangString ^InstallBtn ${LANG_JAPANESE} \
##############################################################################
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
-#LicenseLangString page_lic_file ${LANG_JAPANESE} "..\lang\LICENSE.ja.nsis.txt"
+#LicenseLangString page_lic_file ${LANG_JAPANESE} "..\lang\LICENSE.ja.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
-#LangString vim_readme_file ${LANG_JAPANESE} "README.ja.txt"
+#LangString vim_readme_file ${LANG_JAPANESE} "README.jax.txt"
##############################################################################
# MUI Configuration Strings {{{1
diff --git a/nsis/lang/simpchinese.nsi b/nsis/lang/simpchinese.nsi
index 0c9290ea..fb4d5087 100644
--- a/nsis/lang/simpchinese.nsi
+++ b/nsis/lang/simpchinese.nsi
@@ -22,16 +22,14 @@ LangString ^UninstallCaption ${LANG_SIMPCHINESE} \
# Translated license file for the license page {{{1
##############################################################################
-LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
-#LicenseLangString page_lic_file ${LANG_SIMPCHINESE} \
-# "..\lang\LICENSE.zh_cn.nsis.txt"
+LicenseLangString page_lic_file ${LANG_SIMPCHINESE} \
+ "..\lang\LICENSE.zh_cn.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
-LangString vim_readme_file 0 "README.txt"
-#LangString vim_readme_file ${LANG_SIMPCHINESE} "README.zh_cn.txt"
+LangString vim_readme_file ${LANG_SIMPCHINESE} "README.zh_cn.txt"
##############################################################################
# MUI Configuration Strings {{{1
diff --git a/nsis/lang/swedish.nsi b/nsis/lang/swedish.nsi
new file mode 100644
index 00000000..b512175a
--- /dev/null
+++ b/nsis/lang/swedish.nsi
@@ -0,0 +1,288 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# swedish.nsi: Svenska strängar för gvim NSIS-installationsprogram.
+#
+# Lokalisering-ID : 1053
+# Lokalt namn : sv
+# filkodning : UTF-8
+# Översättare : Daniel Nylander
+
+!insertmacro MUI_LANGUAGE "Swedish"
+
+
+# Skriv över standardöversättningen.
+# Dessa strängar ska alltid vara på engelska. Annars misslyckas dosinst.c.
+LangString ^SetupCaption ${LANG_SWEDISH} \
+ "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_SWEDISH} \
+ "$(^Name) Uninstall"
+
+##############################################################################
+# Licensfil för licenssidan {{{1
+##############################################################################
+
+LicenseLangString page_lic_file ${LANG_SWEDISH} "..\lang\LICENSE.sv.nsis.txt"
+
+##############################################################################
+# README.txt-fil, som öppnas efter installationen {{{1
+##############################################################################
+
+LangString vim_readme_file ${LANG_SWEDISH} "README.sv.txt"
+
+##############################################################################
+# MUI-konfigurationssträngar {{{1
+##############################################################################
+
+#LangString str_dest_folder ${LANG_SWEDISH} \
+# "Målmapp (måste sluta med $\"vim$\")"
+
+LangString str_show_readme ${LANG_SWEDISH} \
+ "Visa README efter avslutad installation"
+
+# Installationstyper:
+LangString str_type_typical ${LANG_SWEDISH} \
+ "Typisk"
+
+LangString str_type_minimal ${LANG_SWEDISH} \
+ "Minimal"
+
+LangString str_type_full ${LANG_SWEDISH} \
+ "Fullständig"
+
+
+##############################################################################
+# Avsnittstitlar och beskrivning {{{1
+##############################################################################
+
+LangString str_section_old_ver ${LANG_SWEDISH} \
+ "Avinstallera befintliga versioner"
+LangString str_desc_old_ver ${LANG_SWEDISH} \
+ "Avinstallera befintliga Vim-versioner från ditt system."
+
+LangString str_section_exe ${LANG_SWEDISH} \
+ "Vim GUI och runtime-filer"
+LangString str_desc_exe ${LANG_SWEDISH} \
+ "Vim GUI-körbara filer och runtime-filer. Denna komponent krävs."
+
+LangString str_section_console ${LANG_SWEDISH} \
+ "Vim-konsolprogram"
+LangString str_desc_console ${LANG_SWEDISH} \
+ "Konsolversion av Vim (vim.exe)."
+
+LangString str_section_batch ${LANG_SWEDISH} \
+ "Skapa .bat-filer"
+LangString str_desc_batch ${LANG_SWEDISH} \
+ "Skapa .bat-filer för Vim-varianter i Windows-katalogen för \
+ kommandoradsanvändning."
+
+LangString str_group_icons ${LANG_SWEDISH} \
+ "Skapa ikoner för Vim"
+LangString str_desc_icons ${LANG_SWEDISH} \
+ "Skapa ikoner för Vim på olika platser för att underlätta åtkomsten."
+
+LangString str_section_desktop ${LANG_SWEDISH} \
+ "PÃ¥ skrivbordet"
+LangString str_desc_desktop ${LANG_SWEDISH} \
+ "Skapa ikoner för gVim-körbara filer på skrivbordet."
+
+LangString str_section_start_menu ${LANG_SWEDISH} \
+ "I startmenyns programmapp"
+LangString str_desc_start_menu ${LANG_SWEDISH} \
+ "Lägg till Vim i programmappen i startmenyn."
+
+#LangString str_section_quick_launch ${LANG_SWEDISH} \
+# "I snabbstartfältet"
+#LangString str_desc_quick_launch ${LANG_SWEDISH} \
+# "Lägg till Vim-genväg i snabbstartfältet."
+
+LangString str_section_edit_with ${LANG_SWEDISH} \
+ "Lägg till Vim-kontextmeny"
+LangString str_desc_edit_with ${LANG_SWEDISH} \
+ "Lägg till Vim i listan över snabbmenyn $\"Öppna med...$\"."
+
+#LangString str_section_edit_with32 ${LANG_SWEDISH} \
+# "32-bitarsversion"
+#LangString str_desc_edit_with32 ${LANG_SWEDISH} \
+# "Lägg till Vim i listan över snabbmenyn $\"Öppna med...$\" \
+# för 32-bitarsprogram."
+
+#LangString str_section_edit_with64 ${LANG_SWEDISH} \
+# "64-bitarsversion"
+#LangString str_desc_edit_with64 ${LANG_SWEDISH} \
+# "Lägg till Vim i listan över kontextmenyn $\"Öppna med...$\" \
+# för 64-bitarsprogram."
+
+LangString str_section_vim_rc ${LANG_SWEDISH} \
+ "Skapa standardkonfiguration"
+LangString str_desc_vim_rc ${LANG_SWEDISH} \
+ "Skapa en standardkonfigurationsfil (_vimrc) om det inte redan finns en."
+
+LangString str_group_plugin ${LANG_SWEDISH} \
+ "Skapa plugin-kataloger"
+LangString str_desc_plugin ${LANG_SWEDISH} \
+ "Skapa plugin-kataloger. Plugin-kataloger gör det möjligt att utöka Vim \
+ genom att släppa en fil i en katalog."
+
+LangString str_section_plugin_home ${LANG_SWEDISH} \
+ "Privat"
+LangString str_desc_plugin_home ${LANG_SWEDISH} \
+ "Skapa plugin-kataloger i HOME-katalogen."
+
+LangString str_section_plugin_vim ${LANG_SWEDISH} \
+ "Delad"
+LangString str_desc_plugin_vim ${LANG_SWEDISH} \
+ "Skapa plugin-kataloger i Vim-installationskatalogen, den används för \
+ alla på systemet."
+
+LangString str_section_nls ${LANG_SWEDISH} \
+ "Stöd för modersmål"
+LangString str_desc_nls ${LANG_SWEDISH} \
+ "Installera filer för stöd för modersmål."
+
+LangString str_unsection_register ${LANG_SWEDISH} \
+ "Avregistrera Vim"
+LangString str_desc_unregister ${LANG_SWEDISH} \
+ "Avregistrera Vim från systemet."
+
+LangString str_unsection_exe ${LANG_SWEDISH} \
+ "Ta bort Vim-körbara filer/körningsfiler"
+LangString str_desc_rm_exe ${LANG_SWEDISH} \
+ "Ta bort alla Vim-körbara filer och runtime-filer."
+
+LangString str_ungroup_plugin ${LANG_SWEDISH} \
+ "Ta bort plugin-kataloger"
+LangString str_desc_rm_plugin ${LANG_SWEDISH} \
+ "Ta bort plugin-katalogerna om de är tomma."
+
+LangString str_unsection_plugin_home ${LANG_SWEDISH} \
+ "Privat"
+LangString str_desc_rm_plugin_home ${LANG_SWEDISH} \
+ "Ta bort plugin-katalogerna från HOME-katalogen."
+
+LangString str_unsection_plugin_vim ${LANG_SWEDISH} \
+ "Delad"
+LangString str_desc_rm_plugin_vim ${LANG_SWEDISH} \
+ "Ta bort plugin-katalogerna från Vim-installationskatalogen."
+
+LangString str_unsection_rootdir ${LANG_SWEDISH} \
+ "Ta bort Vim-rotkatalogen"
+LangString str_desc_rm_rootdir ${LANG_SWEDISH} \
+ "Ta bort Vim-rotkatalogen. Den innehåller dina Vim-konfigurationsfiler!"
+
+
+##############################################################################
+# Meddelanden {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver ${LANG_SWEDISH} \
+# "Hittade $vim_old_ver_count Vim-versioner på ditt system.$\r$\n\
+# Denna installationsprogram kan endast hantera ${VIM_MAX_OLD_VER} versioner \
+# .$\r$\n\
+# Ta bort några versioner och börja om."
+
+#LangString str_msg_invalid_root ${LANG_SWEDISH} \
+# "Ogiltig installationsväg: $vim_install_root!$\r$\n\
+# Den ska sluta med $\"vim$\"."
+
+#LangString str_msg_bin_mismatch ${LANG_SWEDISH} \
+# "Binär sökväg stämmer inte!$\r$\n$\r$\n\
+# Förväntar mig att binärvägen är $\"$vim_bin_path$\",$\r$\n\
+# men systemet anger att binärvägen är $\"$INSTDIR$\"."
+
+#LangString str_msg_vim_running ${LANG_SWEDISH} \
+# "Vim körs fortfarande på ditt system.$\r$\n\
+# Stäng alla instanser av Vim innan du fortsätter."
+
+#LangString str_msg_register_ole ${LANG_SWEDISH} \
+# "Försöker registrera Vim med OLE. \
+# Det finns inget meddelande som anger om detta fungerar eller inte."
+
+#LangString str_msg_unreg_ole ${LANG_SWEDISH} \
+# "Försöker avregistrera Vim från OLE. \
+# Det finns inget meddelande som anger om detta fungerar eller inte."
+
+#LangString str_msg_rm_start ${LANG_SWEDISH} \
+# "Avinstallera följande version:"
+
+#LangString str_msg_rm_fail ${LANG_SWEDISH} \
+# "Det gick inte att avinstallera följande version:"
+
+#LangString str_msg_no_rm_key ${LANG_SWEDISH} \
+# "Kan inte hitta avinstallationsnyckeln i registret."
+
+#LangString str_msg_no_rm_reg ${LANG_SWEDISH} \
+# "Kan inte hitta avinstallationsprogrammet i registret."
+
+#LangString str_msg_no_rm_exe ${LANG_SWEDISH} \
+# "Kan inte komma åt avinstallationsprogrammet."
+
+#LangString str_msg_rm_copy_fail ${LANG_SWEDISH} \
+# "Det gick inte att kopiera avinstallationsprogrammet till den tillfälliga katalogen."
+
+#LangString str_msg_rm_run_fail ${LANG_SWEDISH} \
+# "Det gick inte att köra avinstallationsprogrammet."
+
+#LangString str_msg_abort_install ${LANG_SWEDISH} \
+# "Installationsprogrammet avbryts."
+
+LangString str_msg_install_fail ${LANG_SWEDISH} \
+ "Installationen misslyckades. Bättre lycka nästa gång."
+
+LangString str_msg_rm_exe_fail ${LANG_SWEDISH} \
+ "Vissa filer i $0 har inte raderats!$\r$\n\
+ Du måste göra det manuellt."
+
+#LangString str_msg_rm_root_fail ${LANG_SWEDISH} \
+# "VARNING: Kan inte ta bort $\"$vim_install_root$\", den är inte tom!"
+
+LangString str_msg_uninstalling ${LANG_SWEDISH} \
+ "Avinstallerar den gamla versionen..."
+
+LangString str_msg_registering ${LANG_SWEDISH} \
+ "Registrerar..."
+
+LangString str_msg_unregistering ${LANG_SWEDISH} \
+ "Avregistrerar..."
+
+
+##############################################################################
+# Dialogruta {{{1
+##############################################################################
+
+LangString str_vimrc_page_title ${LANG_SWEDISH} \
+ "Välj _vimrc-inställningar"
+LangString str_vimrc_page_subtitle ${LANG_SWEDISH} \
+ "Välj inställningar för förbättringar, tangentbord och mus."
+
+LangString str_msg_compat_title ${LANG_SWEDISH} \
+ " Vi / Vim-beteende "
+LangString str_msg_compat_desc ${LANG_SWEDISH} \
+ "&Kompatibilitet och förbättringar"
+LangString str_msg_compat_vi ${LANG_SWEDISH} \
+ "Vi-kompatibel"
+LangString str_msg_compat_vim ${LANG_SWEDISH} \
+ "Vim original"
+LangString str_msg_compat_defaults ${LANG_SWEDISH} \
+ "Vim med vissa förbättringar (ladda defaults.vim)"
+LangString str_msg_compat_all ${LANG_SWEDISH} \
+ "Vim med alla förbättringar (ladda vimrc_example.vim) (Standard)"
+
+LangString str_msg_keymap_title ${LANG_SWEDISH} \
+ " Mappningar "
+LangString str_msg_keymap_desc ${LANG_SWEDISH} \
+ "&Omkonfigurera några tangenter för Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_SWEDISH} \
+ "Omkonfigurera inte tangenter (standard)"
+LangString str_msg_keymap_windows ${LANG_SWEDISH} \
+ "Omkonfigurera några tangenter"
+
+LangString str_msg_mouse_title ${LANG_SWEDISH} \
+ " Mus "
+LangString str_msg_mouse_desc ${LANG_SWEDISH} \
+ "&Funktion för höger- och vänsterknapp"
+LangString str_msg_mouse_default ${LANG_SWEDISH} \
+ "Höger: popup-meny, Vänster: visuellt läge (Standard)"
+LangString str_msg_mouse_windows ${LANG_SWEDISH} \
+ "Höger: popup-meny, Vänster: välj läge (Windows)"
+LangString str_msg_mouse_unix ${LANG_SWEDISH} \
+ "Höger: utökar valet, Vänster: visuellt läge (Unix)"
diff --git a/runtime/autoload/ccomplete.vim b/runtime/autoload/ccomplete.vim
index cb4bb2c1..51237be9 100644
--- a/runtime/autoload/ccomplete.vim
+++ b/runtime/autoload/ccomplete.vim
@@ -3,7 +3,7 @@ vim9script noclear
# Vim completion script
# Language: C
# Maintainer: The Vim Project
-# Last Change: 2025 Jul 24
+# Last Change: 2026 Feb 18
# Rewritten in Vim9 script by github user lacygoill
# Former Maintainer: Bram Moolenaar
@@ -489,7 +489,7 @@ def Nextitem( # {{{1
continue
endif
- # Use the tags file to find out if this is a typedef.
+ # Use the tags file to find out if this is a typedef or struct
var diclist: list> = taglist('^' .. tokens[tidx] .. '$')
for tagidx: number in len(diclist)->range()
@@ -509,6 +509,13 @@ def Nextitem( # {{{1
continue
endif
+ # handle struct
+ if item['kind'] == 's'
+ res = StructMembers('struct:' .. tokens[tidx], items, all)
+ break
+ endif
+
+
# Only handle typedefs here.
if item['kind'] != 't'
continue
@@ -733,4 +740,4 @@ def SearchMembers( # {{{1
enddef
#}}}1
-# vim: noet sw=2 sts=2
+# vim: et sw=2 sts=2
diff --git a/runtime/autoload/context.vim b/runtime/autoload/context.vim
index 07edd9ae..5736406a 100644
--- a/runtime/autoload/context.vim
+++ b/runtime/autoload/context.vim
@@ -3,13 +3,13 @@ vim9script
# Language: ConTeXt typesetting engine
# Maintainer: Nicola Vitacolonna
# Former Maintainers: Nikolai Weibull
-# Latest Revision: 2023 Dec 26
+# Latest Revision: 2026 Feb 03
# Typesetting {{{
import autoload './typeset.vim'
export def ConTeXtCmd(path: string): list
- var cmd = ['mtxrun', '--script', 'context', '--nonstopmode', '--autogenerate']
+ var cmd = ['mtxrun', '--script', 'context', '--paranoid', '--autogenerate']
if !empty(get(g:, 'context_extra_options', ''))
cmd += g:context_extra_options
endif
@@ -30,14 +30,21 @@ export def StopJobs()
enddef
export def Log(bufname: string)
- execute 'edit' typeset.LogPath(bufname)
+ var logpath = typeset.LogPath(bufname)
+
+ if filereadable(logpath)
+ execute 'edit' typeset.LogPath(bufname)
+ return
+ endif
+
+ echomsg $'[ConTeXt] No log file found ({logpath})'
enddef
# }}}
# Completion {{{
def BinarySearch(base: string, keywords: list): list
- const pat = '^' .. base
- const len = len(keywords)
+ var pat = '^' .. base
+ var len = len(keywords)
var res = []
var lft = 0
var rgt = len
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index 39ee2a94..5b54b1c4 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project
-# Last Change: 2025 Oct 09
+# Last Change: 2026 Mar 20
# Former Maintainer: Bram Moolenaar
# These functions are moved here from runtime/filetype.vim to make startup
@@ -29,6 +29,28 @@ export def Check_inp()
endif
enddef
+# Erlang Application Resource Files (*.app.src is matched by extension)
+# See: https://erlang.org/doc/system/applications
+export def FTapp()
+ if exists("g:filetype_app")
+ exe "setf " .. g:filetype_app
+ return
+ endif
+ const pat = '^\s*{\s*application\s*,\s*\(''\=\)' .. expand("%:t:r:r") .. '\1\s*,'
+ var line: string
+ for lnum in range(1, min([line("$"), 100]))
+ line = getline(lnum)
+ # skip Erlang comments, might be something else
+ if line =~ '^\s*%' || line =~ '^\s*$'
+ continue
+ elseif line =~ '^\s*{' &&
+ getline(lnum, lnum + 9)->filter((_, v) => v !~ '^\s*%')->join(' ') =~# pat
+ setf erlang
+ endif
+ return
+ endfor
+enddef
+
# This function checks for the kind of assembly that is wanted by the user, or
# can be detected from the beginning of the file.
export def FTasm()
@@ -76,7 +98,7 @@ export def FTasmsyntax()
b:asmsyntax = "masm"
return
elseif line =~ 'Texas Instruments Incorporated' || (line =~ '^\*' && !is_slash_star_encountered)
- # tiasm uses `* commment`, but detection is unreliable if '/*' is seen
+ # tiasm uses `* comment`, but detection is unreliable if '/*' is seen
b:asmsyntax = "tiasm"
return
elseif ((line =~? '\.title\>\|\.ident\>\|\.macro\>\|\.subtitle\>\|\.library\>'))
@@ -173,6 +195,7 @@ export def FTcl()
endif
enddef
+# Determines whether a *.cls file is ObjectScript, TeX, Rexx, Visual Basic, or Smalltalk.
export def FTcls()
if exists("g:filetype_cls")
exe "setf " .. g:filetype_cls
@@ -189,7 +212,20 @@ export def FTcls()
endif
var nonblank1 = getline(nextnonblank(1))
- if nonblank1 =~ '^\v%(\%|\\)'
+ var lnum = nextnonblank(1)
+ while lnum > 0 && lnum <= line("$")
+ var line = getline(lnum)
+ if line =~? '^\s*\%(import\|include\|includegenerator\)\>'
+ lnum = nextnonblank(lnum + 1)
+ else
+ nonblank1 = line
+ break
+ endif
+ endwhile
+
+ if nonblank1 =~? '^\s*class\>\s\+[%A-Za-z][%A-Za-z0-9_.]*\%(\s\+extends\>\|\s*\[\|\s*{\|$\)'
+ setf objectscript
+ elseif nonblank1 =~ '^\v%(\%|\\)'
setf tex
elseif nonblank1 =~ '^\s*\%(/\*\|::\w\)'
setf rexx
@@ -451,12 +487,19 @@ def IsHareModule(dir: string, depth: number): bool
endif
# Check all files in the directory before recursing into subdirectories.
- return glob(dir .. '/*', true, true)
+ const items = glob(dir .. '/*', true, true)
->sort((a, b) => isdirectory(a) - isdirectory(b))
- ->reduce((acc, n) => acc
- || n =~ '\.ha$'
- || isdirectory(n) && IsHareModule(n, depth - 1),
- false)
+ for n in items
+ if isdirectory(n)
+ if IsHareModule(n, depth - 1)
+ return true
+ endif
+ elseif n =~ '\.ha$'
+ return true
+ endif
+ endfor
+
+ return false
enddef
# Determines whether a README file is inside a Hare module and should receive
@@ -1484,7 +1527,7 @@ export def FTdsp()
# Test the file contents
for line in getline(1, 200)
- # Chech for comment style
+ # Check for comment style
if line =~ '^#.*'
setf make
return
@@ -1659,6 +1702,7 @@ const ft_from_ext = {
# XA65 MOS6510 cross assembler
"a65": "a65",
# Applescript
+ "applescript": "applescript",
"scpt": "applescript",
# Applix ELF
"am": "elf",
@@ -1723,7 +1767,7 @@ const ft_from_ext = {
"bst": "bst",
# Bicep
"bicep": "bicep",
- "bicepparam": "bicep",
+ "bicepparam": "bicep-params",
# BIND zone
"zone": "bindzone",
# Blank
@@ -1735,6 +1779,8 @@ const ft_from_ext = {
# BSDL
"bsd": "bsdl",
"bsdl": "bsdl",
+ # Bpftrace
+ "bt": "bpftrace",
# C3
"c3": "c3",
"c3i": "c3",
@@ -1743,6 +1789,8 @@ const ft_from_ext = {
"cairo": "cairo",
# Cap'n Proto
"capnp": "capnp",
+ # Common Package Specification
+ "cps": "json",
# C#
"cs": "cs",
"csx": "cs",
@@ -1800,6 +1848,8 @@ const ft_from_ext = {
"tlh": "cpp",
# Cascading Style Sheets
"css": "css",
+ # Common Expression Language (CEL) - https://cel.dev
+ "cel": "cel",
# Century Term Command Scripts (*.cmd too)
"con": "cterm",
# ChordPro
@@ -1838,6 +1888,8 @@ const ft_from_ext = {
"cr": "crystal",
# CSV Files
"csv": "csv",
+ # Concertor
+ "cto": "concerto",
# CUDA Compute Unified Device Architecture
"cu": "cuda",
"cuh": "cuda",
@@ -1851,6 +1903,9 @@ const ft_from_ext = {
"elv": "elvish",
# Faust
"lib": "faust",
+ # Fennel
+ "fnl": "fennel",
+ "fnlm": "fennel",
# Libreoffice config files
"xcu": "xml",
"xlb": "xml",
@@ -1889,6 +1944,9 @@ const ft_from_ext = {
# Diff files
"diff": "diff",
"rej": "diff",
+ # Djot
+ "dj": "djot",
+ "djot": "djot",
# DOT
"dot": "dot",
"gv": "dot",
@@ -1951,6 +2009,8 @@ const ft_from_ext = {
"fish": "fish",
# Flix
"flix": "flix",
+ # Fluent
+ "ftl": "fluent",
# Focus Executable
"fex": "focexec",
"focexec": "focexec",
@@ -2093,6 +2153,8 @@ const ft_from_ext = {
"tmpl": "template",
# Hurl
"hurl": "hurl",
+ # Hylo
+ "hylo": "hylo",
# Hyper Builder
"hb": "hb",
# Httest
@@ -2202,6 +2264,10 @@ const ft_from_ext = {
"k": "kwt",
# Kivy
"kv": "kivy",
+ # Koka
+ "kk": "koka",
+ # Kos
+ "kos": "kos",
# Kotlin
"kt": "kotlin",
"ktm": "kotlin",
@@ -2225,6 +2291,8 @@ const ft_from_ext = {
"ldg": "ledger",
"ledger": "ledger",
"journal": "ledger",
+ # Leex
+ "xrl": "leex",
# Leo
"leo": "leo",
# Less
@@ -2332,6 +2400,13 @@ const ft_from_ext = {
# N1QL
"n1ql": "n1ql",
"nql": "n1ql",
+ # Neon
+ "neon": "neon",
+ # NetLinx
+ "axs": "netlinx",
+ "axi": "netlinx",
+ # Nickel
+ "ncl": "nickel",
# Nim file
"nim": "nim",
"nims": "nim",
@@ -2344,6 +2419,8 @@ const ft_from_ext = {
"norg": "norg",
# Novell netware batch files
"ncf": "ncf",
+ # N-Quads
+ "nq": "nq",
# Not Quite C
"nqc": "nqc",
# NSE - Nmap Script Engine - uses Lua syntax
@@ -2473,6 +2550,7 @@ const ft_from_ext = {
"textproto": "pbtxt",
"textpb": "pbtxt",
"pbtxt": "pbtxt",
+ "aconfig": "pbtxt", # Android aconfig files
# Poke
"pk": "poke",
# Nvidia PTX (Parallel Thread Execution)
@@ -2513,6 +2591,9 @@ const ft_from_ext = {
"rakumod": "raku",
"rakudoc": "raku",
"rakutest": "raku",
+ # Razor
+ "cshtml": "razor",
+ "razor": "razor",
# Renderman Interface Bytestream
"rib": "rib",
# Rego Policy Language
@@ -2569,6 +2650,8 @@ const ft_from_ext = {
"builder": "ruby",
"rxml": "ruby",
"rjs": "ruby",
+ # Sorbet (Ruby typechecker)
+ "rbi": "ruby",
# Rust
"rs": "rust",
# S-lang
@@ -2701,6 +2784,7 @@ const ft_from_ext = {
"nut": "squirrel",
# Starlark
"ipd": "starlark",
+ "sky": "starlark",
"star": "starlark",
"starlark": "starlark",
# OpenVPN configuration
@@ -2778,6 +2862,8 @@ const ft_from_ext = {
"txi": "texinfo",
# Thrift (Apache)
"thrift": "thrift",
+ # Tiger
+ "tig": "tiger",
# TLA+
"tla": "tla",
# TPP - Text Presentation Program
@@ -2951,6 +3037,9 @@ const ft_from_ext = {
"raml": "raml",
# YANG
"yang": "yang",
+ # YARA, YARA-X
+ "yara": "yara",
+ "yar": "yara",
# Yuck
"yuck": "yuck",
# Zimbu
@@ -2967,6 +3056,7 @@ const ft_from_ext = {
"usd": "usd",
# Rofi stylesheet
"rasi": "rasi",
+ "rasinc": "rasi",
# Zsh module
# mdd: https://github.com/zsh-users/zsh/blob/57248b88830ce56adc243a40c7773fb3825cab34/Etc/zsh-development-guide#L285-L288
# mdh, pro: https://github.com/zsh-users/zsh/blob/57248b88830ce56adc243a40c7773fb3825cab34/Etc/zsh-development-guide#L268-L271
@@ -2981,6 +3071,9 @@ const ft_from_ext = {
"blp": "blueprint",
# Blueprint build system file
"bp": "bp",
+ # Tiltfile
+ "Tiltfile": "tiltfile",
+ "tiltfile": "tiltfile"
}
# Key: file name (the final path component, excluding the drive and root)
# Value: filetype
@@ -2997,6 +3090,8 @@ const ft_from_name = {
"apt.conf": "aptconf",
# BIND zone
"named.root": "bindzone",
+ # Brewfile (uses Ruby syntax)
+ "Brewfile": "ruby",
# Busted (Lua unit testing framework - configuration files)
".busted": "lua",
# Bun history
@@ -3065,6 +3160,8 @@ const ft_from_name = {
".editorconfig": "editorconfig",
# Elinks configuration
"elinks.conf": "elinks",
+ # Erlang
+ "rebar.config": "erlang",
# Exim
"exim.conf": "exim",
# Exports
@@ -3243,6 +3340,9 @@ const ft_from_name = {
# Screen RC
".screenrc": "screen",
"screenrc": "screen",
+ # skhd (simple hotkey daemon for macOS)
+ ".skhdrc": "skhd",
+ "skhdrc": "skhd",
# SLRN
".slrnrc": "slrnrc",
# Squid
@@ -3263,6 +3363,9 @@ const ft_from_name = {
# TF (TinyFugue) mud client
".tfrc": "tf",
"tfrc": "tf",
+ # Tilefile
+ "Tiltfile": "tiltfile",
+ "tiltfile": "tiltfile",
# Trustees
"trustees.conf": "trustees",
# Vagrant (uses Ruby syntax)
diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim
index 5fb45ccc..de168f0c 100644
--- a/runtime/autoload/dist/script.vim
+++ b/runtime/autoload/dist/script.vim
@@ -4,7 +4,7 @@ vim9script
# Invoked from "scripts.vim" in 'runtimepath'
#
# Maintainer: The Vim Project
-# Last Change: 2025 Aug 09
+# Last Change: 2025 Dec 22
# Former Maintainer: Bram Moolenaar
export def DetectFiletype()
@@ -233,6 +233,10 @@ export def Exe2filetype(name: string, line1: string): string
elseif name =~ '^execlineb\>'
return 'execline'
+ # Bpftrace
+ elseif name =~ '^bpftrace\>'
+ return 'bpftrace'
+
# Vim
elseif name =~ '^vim\>'
return 'vim'
diff --git a/runtime/autoload/dist/vim.vim b/runtime/autoload/dist/vim.vim
index 1632aed2..5a0f3505 100644
--- a/runtime/autoload/dist/vim.vim
+++ b/runtime/autoload/dist/vim.vim
@@ -1,9 +1,9 @@
" Vim runtime support library,
" runs the Vim9 script version or legacy script version
-" on demand (mostly for Neovim compatability)
+" on demand (mostly for Neovim compatibility)
"
" Maintainer: The Vim Project
-" Last Change: 2025 Apr 27
+" Last Change: 2026 Jan 11
" enable the zip and gzip plugin by default, if not set
diff --git a/runtime/autoload/dist/vim9.vim b/runtime/autoload/dist/vim9.vim
index fa14bdaf..87b3dbb8 100644
--- a/runtime/autoload/dist/vim9.vim
+++ b/runtime/autoload/dist/vim9.vim
@@ -3,7 +3,7 @@ vim9script
# Vim runtime support library
#
# Maintainer: The Vim Project
-# Last Change: 2025 Aug 15
+# Last Change: 2026 Mar 10
export def IsSafeExecutable(filetype: string, executable: string): bool
if empty(exepath(executable))
@@ -60,15 +60,20 @@ if has('unix')
enddef
else
export def Launch(args: string)
- const fork = has('gui_running') ? '' : '&'
- execute $':silent ! nohup {args} {Redir()} {fork}' | redraw!
+ # Use job_start, because using !xdg-open is known not to work with zsh
+ # ignore signals on exit
+ job_start(split(args), {'stoponexit': ''})
enddef
endif
elseif has('win32')
export def Launch(args: string)
- const shell = (&shell =~? '\') ? '' : 'cmd.exe /c'
- const quotes = empty(shell) ? '' : '""'
- execute $'silent ! {shell} start {quotes} /b {args} {Redir()}' | redraw!
+ try
+ execute ':silent !start' args | redraw!
+ catch /^Vim(!):E371:/
+ echohl ErrorMsg
+ echom "dist#vim9#Launch(): can not start" args
+ echohl None
+ endtry
enddef
else
export def Launch(dummy: string)
@@ -81,7 +86,10 @@ var os_viewer = null_string
if has('win32unix')
# (cyg)start suffices
os_viewer = ''
-# Windows / WSL
+# Windows
+elseif has('win32')
+ os_viewer = '' # Use :!start
+# WSL
elseif executable('explorer.exe')
os_viewer = 'explorer.exe'
# Linux / BSD
@@ -126,7 +134,18 @@ export def Open(file: string)
&shellslash = false
defer setbufvar('%', '&shellslash', true)
endif
- Launch($"{Viewer()} {shellescape(file, 1)}")
+ if &shell == 'pwsh' || &shell == 'powershell'
+ const shell = &shell
+ setlocal shell&
+ defer setbufvar('%', '&shell', shell)
+ endif
+ if has('unix') && !has('win32unix') && !exists('$WSL_DISTRO_NAME')
+ # Linux: using job_start, so do not use shellescape.
+ Launch($"{Viewer()} {file}")
+ else
+ # Windows/WSL/Cygwin: NEEDS shellescape because Launch uses '!'
+ Launch($"{Viewer()} {shellescape(file, 1)}")
+ endif
enddef
# Uncomment this line to check for compilation errors early
diff --git a/runtime/autoload/getscript.vim b/runtime/autoload/getscript.vim
index 1e3b5b39..27a5a495 100644
--- a/runtime/autoload/getscript.vim
+++ b/runtime/autoload/getscript.vim
@@ -14,6 +14,7 @@
" 2024 Nov 12 by Vim Project: fix problems on Windows (#16036)
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
" 2025 May 11 by Vim Project: check network connectivity (#17249)
+" 2025 Dec 21 by Vim Project: make the wget check more robust (#18987)
" }}}
"
" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
@@ -58,7 +59,10 @@ endif
" wget vs curl {{{2
if !exists("g:GetLatestVimScripts_wget")
- if executable("wget")
+ if executable("wget.exe")
+ " enforce extension: windows powershell desktop version has a wget alias that hides wget.exe
+ let g:GetLatestVimScripts_wget= "wget.exe"
+ elseif executable("wget")
let g:GetLatestVimScripts_wget= "wget"
elseif executable("curl.exe")
" enforce extension: windows powershell desktop version has a curl alias that hides curl.exe
@@ -73,7 +77,7 @@ endif
" options that wget and curl require:
if !exists("g:GetLatestVimScripts_options")
- if g:GetLatestVimScripts_wget == "wget"
+ if g:GetLatestVimScripts_wget =~ "wget"
let g:GetLatestVimScripts_options= "-q -O"
elseif g:GetLatestVimScripts_wget =~ "curl"
let g:GetLatestVimScripts_options= "-s -o"
diff --git a/runtime/autoload/gnat.vim b/runtime/autoload/gnat.vim
index 0def6723..585be2e1 100644
--- a/runtime/autoload/gnat.vim
+++ b/runtime/autoload/gnat.vim
@@ -3,7 +3,7 @@
" Language: Ada (GNAT)
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
-" Maintainer: Martin Krischi k
+" Maintainer: Martin Krischi
" Ned Okie
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
diff --git a/runtime/autoload/hare.vim b/runtime/autoload/hare.vim
index 479b0f68..d85a05b3 100644
--- a/runtime/autoload/hare.vim
+++ b/runtime/autoload/hare.vim
@@ -1,13 +1,13 @@
vim9script
# Helper functions for Hare.
-# Language: Hare
-# Maintainer: Amelia Clarke
-# Last Updated: 2025 Sep 06
-# Upstream: https://git.sr.ht/~sircmpwn/hare.vim
+# Language: Hare
+# Maintainer: Amelia Clarke
+# Last Change: 2026 Jan 24
+# Upstream: https://git.sr.ht/~sircmpwn/hare.vim
-# Returns the value of HAREPATH, if it exists. Otherwise, returns a safe
-# default.
+# Returns the value of $HAREPATH, if it exists. Otherwise, returns a safe
+# default value.
export def GetPath(): string
var path: list
if !empty($HAREPATH)
@@ -18,24 +18,7 @@ export def GetPath(): string
return '/usr/src/hare/stdlib,/usr/src/hare/third-party'
endif
endif
- return mapnew(path, (_, n) => escape(n, ' ,;'))->join(',')
-enddef
-
-# Converts a module identifier into a path.
-export def IncludeExpr(): string
- var path = trim(v:fname, ':', 2)->substitute('::', '/', 'g')
-
- # If the module cannot be found, it might be a member instead. Try removing
- # the final component until a directory is found.
- while !finddir(path)
- const head = fnamemodify(path, ':h')
- if head == '.'
- break
- endif
- path = head
- endwhile
-
- return path
+ return map(path, (_, n) => escape(n, ' ,;'))->join(',')
enddef
# Modifies quickfix or location list entries to refer to the correct paths after
@@ -61,14 +44,14 @@ export def QuickFixPaths()
SetList([], 'r', list)
enddef
-# Attempts to parse the directories in $HAREPATH from the output of `hare
-# version -v`. Otherwise, returns an empty list.
+# Attempts to parse a list of directories from the output of `hare version -v`.
+# Otherwise, returns an empty list.
def ParsePath(): list
if !executable('hare')
return []
endif
- silent const lines = systemlist('hare version -v')
+ silent final lines = systemlist('hare version -v')
const min = match(lines, '^HAREPATH') + 1
if min == 0
return []
@@ -76,7 +59,7 @@ def ParsePath(): list
const max = match(lines, '^\S', min)
return (max < 0 ? slice(lines, min) : slice(lines, min, max))
- ->mapnew((_, n) => matchstr(n, '^\s*\zs.*'))
+ ->map((_, n) => matchstr(n, '^\s*\zs.*'))
enddef
# vim: et sts=2 sw=2 ts=8 tw=80
diff --git a/runtime/autoload/haskellcomplete.vim b/runtime/autoload/haskellcomplete.vim
index 759ff874..2b282090 100644
--- a/runtime/autoload/haskellcomplete.vim
+++ b/runtime/autoload/haskellcomplete.vim
@@ -3,10 +3,9 @@
" Maintainer: Daniel Campoverde
" URL: https://github.com/alx741/haskellcomplete.vim
" Last Change: 2019 May 14
-
+" 2026 Feb 04 by Vim project: fix undefined buffer variable: #19259
" Usage: setlocal omnifunc=haskellcomplete#Complete
-
" Language extensions from:
" https://hackage.haskell.org/package/Cabal-2.2.0.1/docs/Language-Haskell-Extension.html
"
@@ -15,12 +14,6 @@
" https://downloads.haskell.org/~ghc/8.4.3/docs/html/users_guide/flags.html
-
-" Available completions
-let b:completingLangExtension = 0
-let b:completingOptionsGHC = 0
-let b:completingModule = 0
-
function! haskellcomplete#Complete(findstart, base)
if a:findstart
let l:line = getline('.')
@@ -52,7 +45,7 @@ function! haskellcomplete#Complete(findstart, base)
return start
endif
- if b:completingLangExtension
+ if get(b:, 'completingLangExtension', 0)
if a:base ==? ""
" Return all possible Lang extensions
return s:langExtensions
@@ -68,7 +61,7 @@ function! haskellcomplete#Complete(findstart, base)
endif
- elseif b:completingOptionsGHC
+ elseif get(b:, 'completingOptionsGHC', 0)
if a:base ==? ""
" Return all possible GHC options
return s:optionsGHC
@@ -84,7 +77,7 @@ function! haskellcomplete#Complete(findstart, base)
endif
- elseif b:completingModule
+ elseif get(b:, 'completingModule', 0)
if a:base ==? ""
" Return all possible modules
return s:commonModules
diff --git a/runtime/autoload/python3complete.vim b/runtime/autoload/python3complete.vim
index ea0a3313..3e54433f 100644
--- a/runtime/autoload/python3complete.vim
+++ b/runtime/autoload/python3complete.vim
@@ -448,7 +448,7 @@ class PyParser:
def _parseassignment(self):
assign=''
tokentype, token, indent = self.donext()
- if tokentype == tokenize.STRING or token == 'str':
+ if tokentype == tokenize.STRING or token == 'str':
return '""'
elif token == '(' or token == 'tuple':
return '()'
@@ -556,7 +556,7 @@ class PyParser:
freshscope = True
dbg("new scope: class")
self.scope = self.scope.add(cls)
-
+
elif token == 'import':
imports = self._parseimportlist()
for mod, alias in imports:
@@ -578,7 +578,7 @@ class PyParser:
elif tokentype == STRING:
if freshscope: self.scope.doc(token)
elif tokentype == NAME:
- name,token = self._parsedotname(token)
+ name,token = self._parsedotname(token)
if token == '=':
stmt = self._parseassignment()
dbg("parseassignment: %s = %s" % (name, stmt))
diff --git a/runtime/autoload/rustfmt.vim b/runtime/autoload/rustfmt.vim
index 268a1c02..3d905296 100644
--- a/runtime/autoload/rustfmt.vim
+++ b/runtime/autoload/rustfmt.vim
@@ -1,7 +1,8 @@
" Author: Stephen Sugden
" Last Modified: 2023-09-11
" Last Change:
-" 2025 Oct 27 by Vim project don't use rustfmt as 'formatprg' by default
+" 2025 Oct 27 by Vim project: don't use rustfmt as 'formatprg' by default
+" 2026 Jan 25 by Vim project: don't hide rustfmt errors, restore default var
"
"
" Adapted from https://github.com/fatih/vim-go
@@ -69,6 +70,12 @@ function! s:RustfmtWriteMode()
endfunction
function! s:RustfmtConfigOptions()
+ let default = '--edition 2018'
+
+ if !get(g:, 'rustfmt_find_toml', 0)
+ return default
+ endif
+
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
if l:rustfmt_toml !=# ''
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
@@ -199,7 +206,7 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
echo "rust.vim: was not able to parse rustfmt messages. Here is the raw output:"
echo "\n"
for l:line in l:stderr
- echo l:line
+ echomsg l:line
endfor
endif
@@ -218,7 +225,10 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
" Open lwindow after we have changed back to the previous directory
if l:open_lwindow == 1
+ try
lwindow
+ catch /^Vim\%((\S\+)\)\=:E776:/
+ endtry
endif
call winrestview(l:view)
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index adbdbab8..4017ae9b 100644
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -3,6 +3,7 @@
" Maintainer: David Fishburn
" Version: 16.0
" Last Change: 2017 Oct 15
+" 2025 Nov 11 by Vim project: only set 'omnifunc' if dbext script was loaded #18716
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
@@ -98,12 +99,11 @@
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
-if exists('&omnifunc')
- " Do not set the option if already set since this
- " results in an E117 warning.
- if &omnifunc == ""
- setlocal omnifunc=sqlcomplete#Complete
- endif
+"
+" Do not set the option if already set since this
+" results in an E117 warning.
+if exists('&omnifunc') && &omnifunc == "" && exists('g:loaded_dbext')
+ setlocal omnifunc=sqlcomplete#Complete
endif
if exists('g:loaded_sql_completion')
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 74a5b38f..73829a2d 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -18,6 +18,8 @@
" 2025 May 19 by Vim Project: restore working directory after read/write
" 2025 Jul 13 by Vim Project: warn with path traversal attacks
" 2025 Jul 16 by Vim Project: update minimum vim version
+" 2026 Feb 06 by Vim Project: consider 'nowrapscan' (#19333)
+" 2026 Feb 07 by Vim Project: make the path traversal detection more robust (#19341)
"
" Contains many ideas from Michael Toren's
"
@@ -110,7 +112,7 @@ if !exists("g:tar_shq")
endif
let g:tar_secure=' -- '
-let g:tar_leading_pat='^\%([.]\{,2\}/\)\+'
+let g:tar_leading_pat='\m^\%([.]\{,2\}/\)\+'
" ----------------
" Functions: {{{1
@@ -226,7 +228,7 @@ fun! tar#Browse(tarfile)
" remove tar: Removing leading '/' from member names
" Note: the message could be localized
- if search('^tar: ') > 0 || search(g:tar_leading_pat) > 0
+ if search('\m^g\?tar: ', 'w') > 0 || search(g:tar_leading_pat, 'w') > 0
call append(3,'" Note: Path Traversal Attack detected!')
let b:leading_slash = 1
" remove the message output
diff --git a/runtime/autoload/tutor.vim b/runtime/autoload/tutor.vim
index c3b5df37..a31f7468 100644
--- a/runtime/autoload/tutor.vim
+++ b/runtime/autoload/tutor.vim
@@ -211,7 +211,7 @@ function! tutor#TutorCmd(tutor_name)
endif
call tutor#SetupVim()
- exe "drop ".l:to_open
+ exe "drop ".fnameescape(l:to_open)
call tutor#EnableInteractive(v:true)
endfunction
diff --git a/runtime/autoload/typeset.vim b/runtime/autoload/typeset.vim
index a1a80922..14bbcf03 100644
--- a/runtime/autoload/typeset.vim
+++ b/runtime/autoload/typeset.vim
@@ -2,7 +2,7 @@ vim9script
# Language: Generic TeX typesetting engine
# Maintainer: Nicola Vitacolonna
-# Latest Revision: 2022 Aug 12
+# Latest Revision: 2026 Feb 19
# Constants and helpers {{{
const SLASH = !exists("+shellslash") || &shellslash ? '/' : '\'
@@ -11,25 +11,25 @@ def Echo(msg: string, mode: string, label: string)
redraw
echo "\r"
execute 'echohl' mode
- echomsg printf('[%s] %s', label, msg)
+ echomsg $'[{label}] {msg}'
echohl None
enddef
-def EchoMsg(msg: string, label = 'Notice')
+def EchoMsg(msg: string, label = gettext('Notice'))
Echo(msg, 'ModeMsg', label)
enddef
-def EchoWarn(msg: string, label = 'Warning')
+def EchoWarn(msg: string, label = gettext('Warning'))
Echo(msg, 'WarningMsg', label)
enddef
-def EchoErr(msg: string, label = 'Error')
+def EchoErr(msg: string, label = gettext('Error'))
Echo(msg, 'ErrorMsg', label)
enddef
# }}}
# Track jobs {{{
-var running_jobs = {} # Dictionary of job IDs of jobs currently executing
+var running_jobs: dict> = {}
def AddJob(label: string, j: job)
if !has_key(running_jobs, label)
@@ -54,8 +54,8 @@ enddef
def ProcessOutput(qfid: number, wd: string, efm: string, ch: channel, msg: string)
# Make sure the quickfix list still exists
if getqflist({'id': qfid}).id != qfid
- EchoErr("Quickfix list not found, stopping the job")
- call job_stop(ch_getjob(ch))
+ EchoErr(gettext("Quickfix list not found, stopping the job"))
+ job_stop(ch_getjob(ch))
return
endif
@@ -74,13 +74,13 @@ def ExitCb(label: string, jobid: job, exitStatus: number)
if exitStatus == 0
botright cwindow
- EchoMsg('Success!', label)
+ EchoMsg(gettext('Success!'), label)
elseif exitStatus < 0
- EchoWarn('Job terminated', label)
+ EchoWarn(gettext('Job terminated'), label)
else
botright copen
wincmd p
- EchoWarn('There are errors.', label)
+ EchoWarn(gettext('There are errors.'), label)
endif
enddef
# }}}
@@ -106,31 +106,81 @@ enddef
#
# This function searches for the magic line in the first ten lines of the
# given buffer, and returns the full path of the root document.
-#
-# NOTE: the value of "% !TEX root" *must* be a relative path.
export def FindRootDocument(bufname: string = bufname("%")): string
- const bufnr = bufnr(bufname)
+ var docpath = fnamemodify(bufname, ":p")
+ var bufnr = bufnr(bufname)
+ var header: list
+ var rootpath = docpath
+
+ if bufexists(bufnr)
+ header = getbufline(bufnr, 1, 10)
+ elseif filereadable(bufname)
+ header = readfile(bufname, "", 10)
+ else
+ return simplify(rootpath)
+ endif
+
+ # Search for magic line `% !TEX root = ...` in the first ten lines
+ var idx = match(header, '^\s*%\s\+!TEX\s\+root\s*=\s*\S')
- if !bufexists(bufnr)
- return bufname
+ if idx > -1
+ rootpath = matchstr(header[idx], '!TEX\s\+root\s*=\s*\zs.*$')
+
+ if !isabsolutepath(rootpath) # Path is relative to the buffer's path
+ rootpath = fnamemodify(docpath, ":h") .. SLASH .. rootpath
+ endif
endif
- var rootpath = fnamemodify(bufname(bufnr), ':p')
+ return simplify(rootpath)
+enddef
+
+# ConTeXt documents may specify an output directory in a comment using the
+# following syntax:
+#
+# runpath=texruns:
+#
+# This function looks for such a comment in the first ten lines of the given
+# buffer, and returns the full path of the output directory. If the comment is
+# not found then the output directory coincides with the directory of the
+# buffer.
+export def GetOutputDirectory(bufname: string = bufname("%")): string
+ var basedir = fnamemodify(bufname, ':p:h')
+ var bufnr = bufnr(bufname)
+ var header: list
+ var outdir = basedir
+
+ if bufexists(bufnr)
+ header = getbufline(bufnr, 1, 10)
+ elseif filereadable(bufname)
+ header = readfile(bufname, "", 10)
+ else
+ return simplify(outdir)
+ endif
+
+ # Search for output path in the first ten lines
+ var idx = match(header, '^\s*%.*\ -1
- const main = matchstr(header[idx], '!TEX\s\+root\s*=\s*\zs.*$')
- rootpath = simplify(fnamemodify(rootpath, ":h") .. SLASH .. main)
+ outdir = matchstr(header[idx], '\,
- path: string,
- efm: string,
- env: dict = {}
-): bool
- var fp = fnamemodify(path, ":p")
- var wd = fnamemodify(fp, ":h")
+ label: string,
+ Cmd: func(string): list,
+ path: string,
+ efm: string,
+ env: dict = {}
+ ): bool
+ var fp = fnamemodify(path, ':p')
+ var name = fnamemodify(fp, ':t')
+ var wd = fnamemodify(fp, ':h')
var qfid = NewQuickfixList(fp)
if qfid == -1
- EchoErr('Could not create quickfix list', label)
+ EchoErr(gettext('Could not create quickfix list'), label)
return false
endif
if !filereadable(fp)
- EchoErr(printf('File not readable: %s', fp), label)
+ var msg = gettext('File not readable:')
+ EchoErr($'{msg} {fp}', label)
return false
endif
- var jobid = job_start(Cmd(path), {
+ # Make sure to pass only the base name of the path to Cmd as this usually
+ # works better with TeX commands (note that the command is executed inside
+ # the file's directory). For instance, ConTeXt writes the path in .synctex
+ # files, and full paths break syncing from the editor to the viewer.
+ var jobid = job_start(Cmd(name), {
env: env,
cwd: wd,
in_io: "null",
callback: (c, m) => ProcessOutput(qfid, wd, efm, c, m),
close_cb: CloseCb,
exit_cb: (j, e) => ExitCb(label, j, e),
- })
+ })
if job_status(jobid) ==# "fail"
- EchoErr("Failed to start job", label)
+ EchoErr(gettext("Failed to start job"), label)
return false
endif
AddJob(label, jobid)
- EchoMsg('Typesetting...', label)
+ EchoMsg(gettext('Typesetting...'), label)
return true
enddef
export def JobStatus(label: string)
- EchoMsg('Jobs still running: ' .. string(len(GetRunningJobs(label))), label)
+ var msg = gettext('Jobs still running:')
+ EchoMsg($'{msg} {len(GetRunningJobs(label))}', label)
enddef
export def StopJobs(label: string)
@@ -196,7 +253,7 @@ export def StopJobs(label: string)
job_stop(job)
endfor
- EchoMsg('Done.', label)
+ EchoMsg(gettext('Done.'), label)
enddef
# Typeset the specified buffer
@@ -211,20 +268,20 @@ enddef
# true if the job is started successfully;
# false otherwise.
export def TypesetBuffer(
- name: string,
- Cmd: func(string): list,
- env = {},
- label = 'Typeset'
-): bool
- const bufname = bufname(name)
+ name: string,
+ Cmd: func(string): list,
+ env = {},
+ label = gettext('Typeset')
+ ): bool
+ var bufname = bufname(name)
if empty(bufname)
- EchoErr('Please save the buffer first.', label)
+ EchoErr(gettext('Please save the buffer first.'), label)
return false
endif
- const efm = getbufvar(bufnr(bufname), "&efm")
- const rootpath = FindRootDocument(bufname)
+ var efm = getbufvar(bufnr(bufname), "&efm")
+ var rootpath = FindRootDocument(bufname)
return Typeset('ConTeXt', Cmd, rootpath, efm, env)
enddef
diff --git a/runtime/autoload/vimgoto.vim b/runtime/autoload/vimgoto.vim
index cb41cc7d..32756e07 100644
--- a/runtime/autoload/vimgoto.vim
+++ b/runtime/autoload/vimgoto.vim
@@ -4,7 +4,8 @@ vim9script
# Contributers: @lacygoill
# Shane-XB-Qian
# Andrew Radev
-# Last Change: 2025 Oct 17
+# thinca
+# Last Change: 2026 Feb 10
#
# Vim script to handle jumping to the targets of several types of Vim commands
# (:import, :packadd, :runtime, :colorscheme), and to autoloaded functions of
@@ -41,9 +42,9 @@ export def Find(editcmd: string) #{{{2
if stridx(curfunc, '#') >= 0
var parts = split(curfunc, '#')
var path = $"autoload/{join(parts[0 : -2], '/')}.vim"
- var resolved_path = globpath(&runtimepath, path)
+ var resolved_path = globpath(&runtimepath, path, 1, 1)
- if resolved_path != ''
+ if !resolved_path->empty()
var function_pattern: string = $'^\s*\%(:\s*\)\=fun\%[ction]!\=\s\+\zs{curfunc}('
resolved_path->Open(editcmd, function_pattern)
endif
diff --git a/runtime/autoload/xmlformat.vim b/runtime/autoload/xmlformat.vim
index c89c8784..c541e657 100644
--- a/runtime/autoload/xmlformat.vim
+++ b/runtime/autoload/xmlformat.vim
@@ -1,5 +1,5 @@
" Vim plugin for formatting XML
-" Last Change: 2020 Jan 06
+" Last Change: 2023 March 15th
" Version: 0.3
" Author: Christian Brabandt
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
@@ -37,13 +37,17 @@ func! xmlformat#Format() abort
" Keep empty input lines?
if empty(line)
call add(result, '')
+ let current += 1
continue
elseif line !~# '<[/]\?[^>]*>'
- let nextmatch = match(list, '<[/]\?[^>]*>', current)
- if nextmatch > -1
- let line .= ' '. join(list[(current + 1):(nextmatch-1)], " ")
- call remove(list, current+1, nextmatch-1)
+ let nextmatch = match(list, '^\s*$\|<[/]\?[^>]*>', current)
+ if nextmatch > -1
+ let lineEnd = nextmatch
+ else
+ let lineEnd = len(list)
endif
+ let line .= ' '. join(list[(current + 1):(lineEnd-1)], " ")
+ call remove(list, current+1, lineEnd-1)
endif
" split on `>`, but don't split on very first opening <
" this means, items can be like ['', 'tag content ']
@@ -79,9 +83,13 @@ func! xmlformat#Format() abort
if s:EndTag(t[1])
call s:DecreaseIndent()
endif
- "for y in t[1:]
- let result+=s:FormatContent(t[1:])
- "endfor
+ let result+=s:FormatContent(t[1:])
+ if s:IsTag(t[1])
+ let lastitem = t[1]
+ continue
+ endif
+ elseif s:IsComment(item)
+ let result+=s:FormatContent([item])
else
call add(result, s:Indent(item))
endif
@@ -94,7 +102,7 @@ func! xmlformat#Format() abort
if !empty(result)
let lastprevline = getline(v:lnum + count_orig)
let delete_lastline = v:lnum + count_orig - 1 == line('$')
- exe v:lnum. ",". (v:lnum + count_orig - 1). 'd'
+ exe 'silent ' .. v:lnum. ",". (v:lnum + count_orig - 1). 'd'
call append(v:lnum - 1, result)
" Might need to remove the last line, if it became empty because of the
" append() call
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index 49e4e819..e81308fa 100644
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -1,4 +1,4 @@
- " zip.vim: Handles browsing zipfiles
+" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: 2024 Aug 21
" Version: 34
@@ -17,6 +17,9 @@
" 2025 Mar 11 by Vim Project: handle filenames with leading '-' correctly
" 2025 Jul 12 by Vim Project: drop ../ on write to prevent path traversal attacks
" 2025 Sep 22 by Vim Project: support PowerShell Core
+" 2025 Dec 20 by Vim Project: use :lcd instead of :cd
+" 2026 Feb 08 by Vim Project: use system() instead of :!
+" 2026 Mar 08 by Vim Project: Make ZipUpdatePS() check for powershell
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
@@ -138,7 +141,7 @@ endfunction
function! s:ZipReadPS(zipfile, fname, tempfile)
" Read a filename within a zipped file to a temporary file.
" Equivalent to `unzip -p -- zipfile fname > tempfile`
- if a:fname =~ '/'
+ if &shell =~ 'pwsh'
call s:Mess('WarningMsg', "***warning*** PowerShell can display, but cannot update, files in archive subfolders")
endif
let cmds = [
@@ -157,7 +160,7 @@ endfunction
function! s:ZipUpdatePS(zipfile, fname)
" Update a filename within a zipped file
" Equivalent to `zip -u zipfile fname`
- if a:fname =~ '/'
+ if &shell =~ 'pwsh' && a:fname =~ '/'
call s:Mess('Error', "***error*** PowerShell cannot update files in archive subfolders")
return ':'
endif
@@ -334,7 +337,8 @@ fun! zip#Read(fname,mode)
let temp = tempname()
let fn = expand('%:p')
- let gnu_cmd = 'sil !' . g:zip_unzipcmd . ' -p -- ' . s:Escape(zipfile, 1) . ' ' . s:Escape(fname, 1) . ' > ' . s:Escape(temp, 1)
+ let gnu_cmd = g:zip_unzipcmd . ' -p -- ' . s:Escape(zipfile, 0) . ' ' . s:Escape(fname, 0) . ' > ' . s:Escape(temp, 0)
+ let gnu_cmd = 'call system(''' . substitute(gnu_cmd, "'", "''", 'g') . ''')'
let ps_cmd = 'sil !' . s:ZipReadPS(zipfile, fname, temp)
call s:TryExecGnuFallBackToPs(g:zip_unzipcmd, gnu_cmd, ps_cmd)
@@ -371,7 +375,7 @@ fun! zip#Write(fname)
call mkdir(tmpdir,"p")
" attempt to change to the indicated directory
- if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory")
+ if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot lcd to temporary directory")
return
endif
@@ -380,7 +384,7 @@ fun! zip#Write(fname)
call delete("_ZIPVIM_", "rf")
endif
call mkdir("_ZIPVIM_")
- cd _ZIPVIM_
+ lcd _ZIPVIM_
if has("unix")
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
@@ -390,7 +394,7 @@ fun! zip#Write(fname)
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
endif
if fname =~ '^[.]\{1,2}/'
- let gnu_cmd = g:zip_zipcmd . ' -d ' . s:Escape(fnamemodify(zipfile,":p"),0) . ' ' . s:Escape(fname,0)
+ let gnu_cmd = g:zip_zipcmd . ' -d ' . s:Escape(fnamemodify(zipfile,":p"),0) . ' ' . s:Escape(fname,0)
let gnu_cmd = 'call system(''' . substitute(gnu_cmd, "'", "''", 'g') . ''')'
let ps_cmd = $"call system({s:Escape(s:ZipDeleteFilePS(zipfile, fname), 1)})"
call s:TryExecGnuFallBackToPs(g:zip_zipcmd, gnu_cmd, ps_cmd)
@@ -419,7 +423,7 @@ fun! zip#Write(fname)
let fname = substitute(fname, '[', '[[]', 'g')
endif
- let gnu_cmd = g:zip_zipcmd . ' -u '. s:Escape(fnamemodify(zipfile,":p"),0) . ' ' . s:Escape(fname,0)
+ let gnu_cmd = g:zip_zipcmd . ' -u '. s:Escape(fnamemodify(zipfile,":p"),0) . ' ' . s:Escape(fname,0)
let gnu_cmd = 'call system(''' . substitute(gnu_cmd, "'", "''", 'g') . ''')'
let ps_cmd = s:ZipUpdatePS(s:Escape(fnamemodify(zipfile, ':p'), 0), s:Escape(fname, 0))
let ps_cmd = 'call system(''' . substitute(ps_cmd, "'", "''", 'g') . ''')'
@@ -455,7 +459,7 @@ fun! zip#Write(fname)
endif
" cleanup and restore current directory
- cd ..
+ lcd ..
call delete("_ZIPVIM_", "rf")
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
call delete(tmpdir, "rf")
@@ -536,7 +540,7 @@ endfun
" s:ChgDir: {{{2
fun! s:ChgDir(newdir,errlvl,errmsg)
try
- exe "cd ".fnameescape(a:newdir)
+ exe "lcd ".fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
if a:errlvl == s:NOTE
diff --git a/runtime/colors/catppuccin.vim b/runtime/colors/catppuccin.vim
new file mode 100644
index 00000000..96e9c963
--- /dev/null
+++ b/runtime/colors/catppuccin.vim
@@ -0,0 +1,808 @@
+" Name: Catppuccin Latte (for light) and Mocha (for dark)
+" Description: Soothing pastel theme for the high-spirited!
+" Author: The Catppuccin Community
+" Maintainer: Mao-Yining
+" URL: https://www.github.com/vim/colorschemes
+" Last Change: 2026 Jan 31
+
+" Generated by Colortemplate v3.0.0-beta10
+
+hi clear
+let g:colors_name = 'catppuccin'
+
+let s:t_Co = has('gui_running') ? 16777216 : str2nr(&t_Co)
+let s:tgc = has('termguicolors') && &termguicolors
+
+hi! link Boolean Constant
+hi! link CursorLineFold FoldColumn
+hi! link CursorLineSign SignColumn
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Float Constant
+hi! link Ignore Comment
+hi! link IncSearch CurSearch
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link Number Constant
+hi! link PopupNotification WarningMsg
+hi! link PreCondit PreProc
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link SpecialKey NonText
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link Terminal Normal
+hi! link Typedef Type
+
+if &background == 'dark'
+ hi Normal guifg=#cdd6f4 guibg=#1e1e2e guisp=NONE gui=NONE ctermfg=189 ctermbg=233 cterm=NONE term=NONE
+ hi Added guifg=#a6e3a1 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
+ hi Bold guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold
+ hi Changed guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi Character guifg=#94e2d5 guibg=NONE guisp=NONE gui=NONE ctermfg=158 ctermbg=NONE cterm=NONE term=NONE
+ hi ColorColumn guifg=NONE guibg=#181825 guisp=NONE gui=NONE ctermfg=NONE ctermbg=232 cterm=NONE term=reverse
+ hi Comment guifg=#9399b2 guibg=NONE guisp=NONE gui=NONE ctermfg=103 ctermbg=NONE cterm=NONE term=bold
+ hi Conceal guifg=#7f849c guibg=NONE guisp=NONE gui=NONE ctermfg=102 ctermbg=NONE cterm=NONE term=NONE
+ hi Conditional guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi Constant guifg=#fab387 guibg=NONE guisp=NONE gui=NONE ctermfg=216 ctermbg=NONE cterm=NONE term=NONE
+ hi CurSearch guifg=#cdd6f4 guibg=#89556b guisp=NONE gui=NONE ctermfg=189 ctermbg=126 cterm=NONE term=reverse
+ hi Cursor guifg=#1e1e2e guibg=#f5e0dc guisp=NONE gui=NONE ctermfg=233 ctermbg=224 cterm=NONE term=reverse
+ hi CursorColumn guifg=NONE guibg=#181825 guisp=NONE gui=NONE ctermfg=NONE ctermbg=232 cterm=NONE term=NONE
+ hi CursorIM guifg=#1e1e2e guibg=#cba6f7 guisp=NONE gui=NONE ctermfg=233 ctermbg=183 cterm=NONE term=NONE
+ hi CursorLine guifg=NONE guibg=#2a2b3c guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=underline
+ hi CursorLineNr guifg=#b4befe guibg=NONE guisp=NONE gui=NONE ctermfg=147 ctermbg=NONE cterm=NONE term=bold
+ hi Delimiter guifg=#9399b2 guibg=NONE guisp=NONE gui=NONE ctermfg=103 ctermbg=NONE cterm=NONE term=NONE
+ hi DiffAdd guifg=NONE guibg=#364143 guisp=NONE gui=NONE ctermfg=NONE ctermbg=22 cterm=NONE term=reverse
+ hi DiffChange guifg=NONE guibg=#25293c guisp=NONE gui=NONE ctermfg=NONE ctermbg=235 cterm=NONE term=NONE
+ hi DiffDelete guifg=NONE guibg=#443244 guisp=NONE gui=NONE ctermfg=NONE ctermbg=52 cterm=NONE term=reverse
+ hi DiffText guifg=NONE guibg=#3e4b6b guisp=NONE gui=NONE ctermfg=NONE ctermbg=23 cterm=NONE term=reverse
+ hi Directory guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi EndOfBuffer guifg=#45475a guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
+ hi Error guifg=#f38ba8 guibg=NONE guisp=NONE gui=NONE ctermfg=211 ctermbg=NONE cterm=NONE term=bold,reverse
+ hi ErrorMsg guifg=#f38ba8 guibg=NONE guisp=NONE gui=bold ctermfg=211 ctermbg=NONE cterm=bold term=bold,reverse
+ hi Exception guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi FoldColumn guifg=#6c7086 guibg=NONE guisp=NONE gui=NONE ctermfg=59 ctermbg=NONE cterm=NONE term=NONE
+ hi Folded guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi Function guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi Identifier guifg=#f2cdcd guibg=NONE guisp=NONE gui=NONE ctermfg=181 ctermbg=NONE cterm=NONE term=NONE
+ hi Include guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi Italic guifg=NONE guibg=NONE guisp=NONE gui=italic ctermfg=NONE ctermbg=NONE cterm=italic term=italic
+ hi Keyword guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi Label guifg=#74c7ec guibg=NONE guisp=NONE gui=NONE ctermfg=117 ctermbg=NONE cterm=NONE term=NONE
+ hi LineNr guifg=#45475a guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
+ hi Macro guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi MatchParen guifg=#fab387 guibg=NONE guisp=NONE gui=bold ctermfg=216 ctermbg=NONE cterm=bold term=bold,underline
+ hi ModeMsg guifg=#cdd6f4 guibg=NONE guisp=NONE gui=bold ctermfg=189 ctermbg=NONE cterm=bold term=bold
+ hi MoreMsg guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi NonText guifg=#6c7086 guibg=NONE guisp=NONE gui=NONE ctermfg=59 ctermbg=NONE cterm=NONE term=NONE
+ hi Operator guifg=#89dceb guibg=NONE guisp=NONE gui=NONE ctermfg=116 ctermbg=NONE cterm=NONE term=NONE
+ hi Pmenu guifg=#9399b2 guibg=#181825 guisp=NONE gui=NONE ctermfg=103 ctermbg=232 cterm=NONE term=reverse
+ hi PmenuExtra guifg=#6c7086 guibg=#181825 guisp=NONE gui=NONE ctermfg=59 ctermbg=232 cterm=NONE term=NONE
+ hi PmenuExtraSel guifg=#6c7086 guibg=#313244 guisp=NONE gui=bold ctermfg=59 ctermbg=236 cterm=bold term=bold
+ hi PmenuMatch guifg=#cdd6f4 guibg=NONE guisp=NONE gui=bold ctermfg=189 ctermbg=NONE cterm=bold term=bold
+ hi PmenuMatchSel guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold
+ hi PmenuSbar guifg=NONE guibg=#313244 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
+ hi PmenuSel guifg=NONE guibg=#313244 guisp=NONE gui=bold ctermfg=NONE ctermbg=236 cterm=bold term=bold
+ hi PmenuThumb guifg=NONE guibg=#6c7086 guisp=NONE gui=NONE ctermfg=NONE ctermbg=59 cterm=NONE term=NONE
+ hi PreInsert guifg=#9399b2 guibg=NONE guisp=NONE gui=NONE ctermfg=103 ctermbg=NONE cterm=NONE term=NONE
+ hi PreProc guifg=#f5c2e7 guibg=NONE guisp=NONE gui=NONE ctermfg=225 ctermbg=NONE cterm=NONE term=NONE
+ hi Question guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=standout
+ hi QuickFixLine guifg=NONE guibg=#52476a guisp=NONE gui=bold ctermfg=189 ctermbg=60 cterm=bold term=NONE
+ hi Removed guifg=#f38ba8 guibg=NONE guisp=NONE gui=NONE ctermfg=211 ctermbg=NONE cterm=NONE term=NONE
+ hi Repeat guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi Search guifg=#cdd6f4 guibg=#3e5767 guisp=NONE gui=NONE ctermfg=189 ctermbg=24 cterm=NONE term=reverse
+ hi SignColumn guifg=#45475a guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=reverse
+ hi Special guifg=#f5c2e7 guibg=NONE guisp=NONE gui=NONE ctermfg=225 ctermbg=NONE cterm=NONE term=NONE
+ hi SpellBad guifg=NONE guibg=NONE guisp=#f38ba8 gui=undercurl ctermfg=211 ctermbg=NONE cterm=underline term=underline
+ hi SpellCap guifg=NONE guibg=NONE guisp=#f9e2af gui=undercurl ctermfg=222 ctermbg=NONE cterm=underline term=underline
+ hi SpellLocal guifg=NONE guibg=NONE guisp=#89b4fa gui=undercurl ctermfg=111 ctermbg=NONE cterm=underline term=underline
+ hi SpellRare guifg=NONE guibg=NONE guisp=#a6e3a1 gui=undercurl ctermfg=114 ctermbg=NONE cterm=underline term=underline
+ hi Statement guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi StatusLine guifg=#cdd6f4 guibg=#11111b guisp=NONE gui=NONE ctermfg=189 ctermbg=16 cterm=NONE term=bold,reverse
+ hi StatusLineNC guifg=#45475a guibg=#181825 guisp=NONE gui=NONE ctermfg=240 ctermbg=232 cterm=NONE term=bold,underline
+ hi StorageClass guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+ hi String guifg=#a6e3a1 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
+ hi Structure guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+ hi TabLine guifg=#6c7086 guibg=#11111b guisp=NONE gui=NONE ctermfg=59 ctermbg=16 cterm=NONE term=bold,underline
+ hi TabLineFill guifg=NONE guibg=#181825 guisp=NONE gui=NONE ctermfg=NONE ctermbg=232 cterm=NONE term=NONE
+ hi TabLineSel guifg=#cdd6f4 guibg=#1e1e2e guisp=NONE gui=NONE ctermfg=189 ctermbg=233 cterm=NONE term=bold,reverse
+ hi Tag guifg=#b4befe guibg=NONE guisp=NONE gui=bold ctermfg=147 ctermbg=NONE cterm=bold term=bold
+ hi Title guifg=#89b4fa guibg=NONE guisp=NONE gui=bold ctermfg=111 ctermbg=NONE cterm=bold term=NONE
+ hi TitleBar guifg=#cdd6f4 guibg=#181825 guisp=NONE gui=NONE ctermfg=189 ctermbg=232 cterm=NONE term=NONE
+ hi TitleBarNC guifg=#6c7086 guibg=#11111b guisp=NONE gui=NONE ctermfg=59 ctermbg=16 cterm=NONE term=NONE
+ hi Todo guifg=#f2cdcd guibg=NONE guisp=NONE gui=bold ctermfg=181 ctermbg=NONE cterm=bold term=bold,reverse
+ hi ToolbarButton guifg=#f5e0dc guibg=NONE guisp=NONE gui=NONE ctermfg=224 ctermbg=NONE cterm=NONE term=bold,reverse
+ hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
+ hi Type guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+ hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
+ hi VertSplit guifg=#11111b guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
+ hi Visual guifg=NONE guibg=#45475a guisp=NONE gui=NONE ctermfg=240 ctermbg=189 cterm=reverse term=reverse
+ hi VisualNOS guifg=NONE guibg=#45475a guisp=NONE gui=bold ctermfg=NONE ctermbg=240 cterm=bold term=NONE
+ hi WarningMsg guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=standout
+ hi WildMenu guifg=NONE guibg=#6c7086 guisp=NONE gui=NONE ctermfg=NONE ctermbg=59 cterm=NONE term=bold
+ hi csvCol0 guifg=#f38ba8 guibg=NONE guisp=NONE gui=NONE ctermfg=211 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol1 guifg=#fab387 guibg=NONE guisp=NONE gui=NONE ctermfg=216 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol2 guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol3 guifg=#a6e3a1 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol4 guifg=#89dceb guibg=NONE guisp=NONE gui=NONE ctermfg=116 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol5 guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol6 guifg=#b4befe guibg=NONE guisp=NONE gui=NONE ctermfg=147 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol7 guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol8 guifg=#f5c2e7 guibg=NONE guisp=NONE gui=NONE ctermfg=225 ctermbg=NONE cterm=NONE term=NONE
+ hi debugBreakpoint guifg=#6c7086 guibg=#1e1e2e guisp=NONE gui=NONE ctermfg=59 ctermbg=233 cterm=NONE term=NONE
+ hi debugPC guifg=NONE guibg=#11111b guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=NONE
+ hi diffAdded guifg=#a6e3a1 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
+ hi diffChanged guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi diffFile guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi diffIndexLine guifg=#94e2d5 guibg=NONE guisp=NONE gui=NONE ctermfg=158 ctermbg=NONE cterm=NONE term=NONE
+ hi diffLine guifg=#6c7086 guibg=NONE guisp=NONE gui=NONE ctermfg=59 ctermbg=NONE cterm=NONE term=NONE
+ hi diffNewFile guifg=#fab387 guibg=NONE guisp=NONE gui=NONE ctermfg=216 ctermbg=NONE cterm=NONE term=NONE
+ hi diffOldFile guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+ hi diffRemoved guifg=#f38ba8 guibg=NONE guisp=NONE gui=NONE ctermfg=211 ctermbg=NONE cterm=NONE term=NONE
+ hi lCursor guifg=#1e1e2e guibg=#f38ba8 guisp=NONE gui=NONE ctermfg=233 ctermbg=211 cterm=NONE term=NONE
+ hi markdownCode guifg=#f2cdcd guibg=NONE guisp=NONE gui=NONE ctermfg=181 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownCodeBlock guifg=#f2cdcd guibg=NONE guisp=NONE gui=NONE ctermfg=181 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH1 guifg=#f38ba8 guibg=NONE guisp=NONE gui=NONE ctermfg=211 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH2 guifg=#fab387 guibg=NONE guisp=NONE gui=NONE ctermfg=216 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH3 guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH4 guifg=#a6e3a1 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH5 guifg=#74c7ec guibg=NONE guisp=NONE gui=NONE ctermfg=117 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH6 guifg=#b4befe guibg=NONE guisp=NONE gui=NONE ctermfg=147 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownHeadingDelimiter guifg=#fab387 guibg=NONE guisp=NONE gui=bold ctermfg=216 ctermbg=NONE cterm=bold term=bold
+ hi markdownLinkText guifg=#89b4fa guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
+ hi qfFileName guifg=#89b4fa guibg=NONE guisp=NONE gui=NONE ctermfg=111 ctermbg=NONE cterm=NONE term=NONE
+ hi qfLineNr guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
+
+ if s:tgc || s:t_Co >= 256
+ if s:tgc
+ hi QuickFixLine cterm=NONE
+ hi Visual cterm=NONE
+ endif
+ finish
+ endif
+
+ if s:t_Co >= 16
+ hi Normal ctermfg=White ctermbg=Black cterm=NONE
+ hi Added ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Bold ctermfg=NONE ctermbg=NONE cterm=bold
+ hi Changed ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Character ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi Comment ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Conditional ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi CurSearch ctermfg=White ctermbg=Red cterm=NONE
+ hi Cursor ctermfg=Black ctermbg=Yellow cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi CursorIM ctermfg=Black ctermbg=DarkMagenta cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=White ctermbg=NONE cterm=NONE
+ hi Delimiter ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi DiffAdd ctermfg=Black ctermbg=DarkGreen cterm=NONE
+ hi DiffChange ctermfg=Black ctermbg=DarkYellow cterm=NONE
+ hi DiffDelete ctermfg=Black ctermbg=DarkRed cterm=NONE
+ hi DiffText ctermfg=Black ctermbg=DarkCyan cterm=NONE
+ hi Directory ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Error ctermfg=Red ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=Red ctermbg=NONE cterm=bold
+ hi Exception ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Function ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi Include ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Italic ctermfg=NONE ctermbg=NONE cterm=italic
+ hi Keyword ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Label ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Macro ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi ModeMsg ctermfg=White ctermbg=NONE cterm=bold
+ hi MoreMsg ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=Grey ctermbg=DarkGrey cterm=NONE
+ hi PmenuExtra ctermfg=Grey ctermbg=DarkGrey cterm=NONE
+ hi PmenuExtraSel ctermfg=Grey ctermbg=DarkYellow cterm=bold
+ hi PmenuMatch ctermfg=White ctermbg=NONE cterm=bold
+ hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
+ hi PmenuSbar ctermfg=NONE ctermbg=DarkYellow cterm=NONE
+ hi PmenuSel ctermfg=NONE ctermbg=DarkYellow cterm=bold
+ hi PmenuThumb ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi PreInsert ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi Question ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=Black ctermbg=Magenta cterm=bold
+ hi Removed ctermfg=Red ctermbg=NONE cterm=NONE
+ hi Repeat ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Search ctermfg=White ctermbg=DarkBlue cterm=NONE
+ hi SignColumn ctermfg=Black ctermbg=NONE cterm=NONE
+ hi Special ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=Red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=Yellow ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=Blue ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=Green ctermbg=NONE cterm=underline
+ hi Statement ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=White ctermbg=DarkGrey cterm=bold,reverse
+ hi StatusLineNC ctermfg=Grey ctermbg=DarkGrey cterm=NONE
+ hi StorageClass ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi String ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Structure ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi TabLine ctermfg=Grey ctermbg=Black cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi TabLineSel ctermfg=White ctermbg=Black cterm=NONE
+ hi Tag ctermfg=LightGrey ctermbg=NONE cterm=bold
+ hi Title ctermfg=Blue ctermbg=NONE cterm=bold
+ hi TitleBar ctermfg=White ctermbg=DarkGrey cterm=NONE
+ hi TitleBarNC ctermfg=Grey ctermbg=Black cterm=NONE
+ hi Todo ctermfg=Yellow ctermbg=NONE cterm=bold
+ hi ToolbarButton ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+ hi VertSplit ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=Blue ctermbg=Black cterm=bold,reverse
+ hi VisualNOS ctermfg=NONE ctermbg=Black cterm=bold
+ hi WarningMsg ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi csvCol0 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi csvCol1 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi csvCol2 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi csvCol3 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi csvCol4 ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi csvCol5 ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi csvCol6 ctermfg=LightGrey ctermbg=NONE cterm=NONE
+ hi csvCol7 ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi csvCol8 ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi debugBreakpoint ctermfg=Grey ctermbg=Black cterm=NONE
+ hi debugPC ctermfg=NONE ctermbg=Black cterm=NONE
+ hi diffAdded ctermfg=Green ctermbg=NONE cterm=NONE
+ hi diffChanged ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffFile ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffIndexLine ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi diffLine ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi diffNewFile ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi diffOldFile ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi diffRemoved ctermfg=Red ctermbg=NONE cterm=NONE
+ hi lCursor ctermfg=Black ctermbg=Red cterm=NONE
+ hi markdownCode ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownCodeBlock ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownH1 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi markdownH2 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi markdownH3 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownH4 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi markdownH5 ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi markdownH6 ctermfg=LightGrey ctermbg=NONE cterm=NONE
+ hi markdownHeadingDelimiter ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi markdownLinkText ctermfg=Blue ctermbg=NONE cterm=underline
+ hi qfFileName ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi qfLineNr ctermfg=Yellow ctermbg=NONE cterm=NONE
+ finish
+ endif
+
+ if s:t_Co >= 8
+ hi Normal ctermfg=White ctermbg=Black cterm=NONE
+ hi Added ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Bold ctermfg=NONE ctermbg=NONE cterm=bold
+ hi Changed ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Character ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=Black ctermbg=Grey cterm=NONE
+ hi Comment ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Conditional ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi CurSearch ctermfg=White ctermbg=Red cterm=NONE
+ hi Cursor ctermfg=Black ctermbg=Yellow cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi CursorIM ctermfg=Black ctermbg=DarkMagenta cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=White ctermbg=NONE cterm=NONE
+ hi Delimiter ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi DiffAdd ctermfg=Black ctermbg=DarkGreen cterm=NONE
+ hi DiffChange ctermfg=Black ctermbg=DarkYellow cterm=NONE
+ hi DiffDelete ctermfg=Black ctermbg=DarkRed cterm=NONE
+ hi DiffText ctermfg=Black ctermbg=DarkCyan cterm=NONE
+ hi Directory ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Error ctermfg=Red ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=Red ctermbg=NONE cterm=bold
+ hi Exception ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Function ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi Include ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Italic ctermfg=NONE ctermbg=NONE cterm=italic
+ hi Keyword ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Label ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Macro ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi ModeMsg ctermfg=White ctermbg=NONE cterm=bold
+ hi MoreMsg ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=Grey ctermbg=DarkGrey cterm=NONE
+ hi PmenuExtra ctermfg=Grey ctermbg=DarkGrey cterm=NONE
+ hi PmenuExtraSel ctermfg=Grey ctermbg=DarkYellow cterm=bold
+ hi PmenuMatch ctermfg=White ctermbg=NONE cterm=bold
+ hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
+ hi PmenuSbar ctermfg=NONE ctermbg=DarkYellow cterm=NONE
+ hi PmenuSel ctermfg=NONE ctermbg=DarkYellow cterm=bold
+ hi PmenuThumb ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi PreInsert ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi Question ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=White ctermbg=Magenta cterm=bold
+ hi Removed ctermfg=Red ctermbg=NONE cterm=NONE
+ hi Repeat ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Search ctermfg=White ctermbg=DarkBlue cterm=NONE
+ hi SignColumn ctermfg=Black ctermbg=NONE cterm=NONE
+ hi Special ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=Red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=Yellow ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=Blue ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=Green ctermbg=NONE cterm=underline
+ hi Statement ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=White ctermbg=DarkGrey cterm=bold,reverse
+ hi StatusLineNC ctermfg=Grey ctermbg=DarkGrey cterm=reverse
+ hi StorageClass ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi String ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Structure ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi TabLine ctermfg=Grey ctermbg=Black cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi TabLineSel ctermfg=White ctermbg=DarkGrey cterm=bold
+ hi Tag ctermfg=LightGrey ctermbg=NONE cterm=bold
+ hi Title ctermfg=Blue ctermbg=NONE cterm=bold
+ hi TitleBar ctermfg=White ctermbg=DarkGrey cterm=NONE
+ hi TitleBarNC ctermfg=Grey ctermbg=Black cterm=NONE
+ hi Todo ctermfg=Yellow ctermbg=NONE cterm=bold
+ hi ToolbarButton ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+ hi VertSplit ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=Blue ctermbg=Black cterm=bold,reverse
+ hi VisualNOS ctermfg=NONE ctermbg=Black cterm=bold
+ hi WarningMsg ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi csvCol0 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi csvCol1 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi csvCol2 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi csvCol3 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi csvCol4 ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi csvCol5 ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi csvCol6 ctermfg=LightGrey ctermbg=NONE cterm=NONE
+ hi csvCol7 ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi csvCol8 ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi debugBreakpoint ctermfg=Grey ctermbg=Black cterm=NONE
+ hi debugPC ctermfg=NONE ctermbg=Black cterm=NONE
+ hi diffAdded ctermfg=Green ctermbg=NONE cterm=NONE
+ hi diffChanged ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffFile ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffIndexLine ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi diffLine ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi diffNewFile ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi diffOldFile ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi diffRemoved ctermfg=Red ctermbg=NONE cterm=NONE
+ hi lCursor ctermfg=Black ctermbg=Red cterm=NONE
+ hi markdownCode ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownCodeBlock ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownH1 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi markdownH2 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi markdownH3 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownH4 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi markdownH5 ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi markdownH6 ctermfg=LightGrey ctermbg=NONE cterm=NONE
+ hi markdownHeadingDelimiter ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi markdownLinkText ctermfg=Blue ctermbg=NONE cterm=underline
+ hi qfFileName ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi qfLineNr ctermfg=Yellow ctermbg=NONE cterm=NONE
+ finish
+ endif
+
+ if s:t_Co >= 0
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Float term=NONE
+ hi Ignore term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi Number term=NONE
+ hi SpecialKey term=bold
+ hi StatusLineTerm term=bold,reverse
+ hi StatusLineTermNC term=bold,underline
+ hi Terminal term=NONE
+ finish
+ endif
+
+ finish
+endif
+
+if &background == 'light'
+ hi Normal guifg=#4c4f69 guibg=#eff1f5 guisp=NONE gui=NONE ctermfg=236 ctermbg=231 cterm=NONE term=NONE
+ hi Added guifg=#40a02b guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
+ hi Bold guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold
+ hi Changed guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi Character guifg=#179299 guibg=NONE guisp=NONE gui=NONE ctermfg=30 ctermbg=NONE cterm=NONE term=NONE
+ hi ColorColumn guifg=NONE guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=NONE ctermbg=255 cterm=NONE term=reverse
+ hi Comment guifg=#7c7f93 guibg=NONE guisp=NONE gui=NONE ctermfg=103 ctermbg=NONE cterm=NONE term=bold
+ hi Conceal guifg=#8c8fa1 guibg=NONE guisp=NONE gui=NONE ctermfg=246 ctermbg=NONE cterm=NONE term=NONE
+ hi Conditional guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi Constant guifg=#fe640b guibg=NONE guisp=NONE gui=NONE ctermfg=202 ctermbg=NONE cterm=NONE term=NONE
+ hi CurSearch guifg=#4c4f69 guibg=#fc8fc3 guisp=NONE gui=NONE ctermfg=236 ctermbg=211 cterm=NONE term=reverse
+ hi Cursor guifg=#eff1f5 guibg=#dc8a78 guisp=NONE gui=NONE ctermfg=231 ctermbg=174 cterm=NONE term=reverse
+ hi CursorColumn guifg=NONE guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=NONE ctermbg=255 cterm=NONE term=NONE
+ hi CursorIM guifg=#eff1f5 guibg=#8839ef guisp=NONE gui=NONE ctermfg=231 ctermbg=93 cterm=NONE term=NONE
+ hi CursorLine guifg=NONE guibg=#e9ebf1 guisp=NONE gui=NONE ctermfg=NONE ctermbg=253 cterm=NONE term=underline
+ hi CursorLineNr guifg=#7287fd guibg=NONE guisp=NONE gui=NONE ctermfg=69 ctermbg=NONE cterm=NONE term=bold
+ hi Delimiter guifg=#7c7f93 guibg=NONE guisp=NONE gui=NONE ctermfg=103 ctermbg=NONE cterm=NONE term=NONE
+ hi DiffAdd guifg=NONE guibg=#d0e2d1 guisp=NONE gui=NONE ctermfg=NONE ctermbg=152 cterm=NONE term=reverse
+ hi DiffChange guifg=NONE guibg=#e0e7f5 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=NONE
+ hi DiffDelete guifg=NONE guibg=#eac8d3 guisp=NONE gui=NONE ctermfg=NONE ctermbg=224 cterm=NONE term=reverse
+ hi DiffText guifg=NONE guibg=#b0c7f5 guisp=NONE gui=NONE ctermfg=NONE ctermbg=153 cterm=NONE term=reverse
+ hi Directory guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi EndOfBuffer guifg=#bcc0cc guibg=NONE guisp=NONE gui=NONE ctermfg=250 ctermbg=NONE cterm=NONE term=NONE
+ hi Error guifg=#d20f39 guibg=NONE guisp=NONE gui=NONE ctermfg=161 ctermbg=NONE cterm=NONE term=bold,reverse
+ hi ErrorMsg guifg=#d20f39 guibg=NONE guisp=NONE gui=bold ctermfg=161 ctermbg=NONE cterm=bold term=bold,reverse
+ hi Exception guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi FoldColumn guifg=#9ca0b0 guibg=NONE guisp=NONE gui=NONE ctermfg=247 ctermbg=NONE cterm=NONE term=NONE
+ hi Folded guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi Function guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi Identifier guifg=#dd7878 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE term=NONE
+ hi Include guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi Italic guifg=NONE guibg=NONE guisp=NONE gui=italic ctermfg=NONE ctermbg=NONE cterm=italic term=italic
+ hi Keyword guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi Label guifg=#209fb5 guibg=NONE guisp=NONE gui=NONE ctermfg=38 ctermbg=NONE cterm=NONE term=NONE
+ hi LineNr guifg=#bcc0cc guibg=NONE guisp=NONE gui=NONE ctermfg=250 ctermbg=NONE cterm=NONE term=NONE
+ hi Macro guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi MatchParen guifg=#fe640b guibg=NONE guisp=NONE gui=bold ctermfg=202 ctermbg=NONE cterm=bold term=bold,underline
+ hi ModeMsg guifg=#4c4f69 guibg=NONE guisp=NONE gui=bold ctermfg=236 ctermbg=NONE cterm=bold term=bold
+ hi MoreMsg guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi NonText guifg=#9ca0b0 guibg=NONE guisp=NONE gui=NONE ctermfg=247 ctermbg=NONE cterm=NONE term=NONE
+ hi Operator guifg=#04a5e5 guibg=NONE guisp=NONE gui=NONE ctermfg=39 ctermbg=NONE cterm=NONE term=NONE
+ hi Pmenu guifg=#7c7f93 guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=103 ctermbg=255 cterm=NONE term=reverse
+ hi PmenuExtra guifg=#9ca0b0 guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=247 ctermbg=255 cterm=NONE term=NONE
+ hi PmenuExtraSel guifg=#9ca0b0 guibg=#ccd0da guisp=NONE gui=bold ctermfg=247 ctermbg=253 cterm=bold term=bold
+ hi PmenuMatch guifg=#4c4f69 guibg=NONE guisp=NONE gui=bold ctermfg=236 ctermbg=NONE cterm=bold term=bold
+ hi PmenuMatchSel guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold
+ hi PmenuSbar guifg=NONE guibg=#ccd0da guisp=NONE gui=NONE ctermfg=NONE ctermbg=253 cterm=NONE term=reverse
+ hi PmenuSel guifg=NONE guibg=#ccd0da guisp=NONE gui=bold ctermfg=NONE ctermbg=253 cterm=bold term=bold
+ hi PmenuThumb guifg=NONE guibg=#9ca0b0 guisp=NONE gui=NONE ctermfg=NONE ctermbg=247 cterm=NONE term=NONE
+ hi PreInsert guifg=#7c7f93 guibg=NONE guisp=NONE gui=NONE ctermfg=103 ctermbg=NONE cterm=NONE term=NONE
+ hi PreProc guifg=#ea76cb guibg=NONE guisp=NONE gui=NONE ctermfg=206 ctermbg=NONE cterm=NONE term=NONE
+ hi Question guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=standout
+ hi QuickFixLine guifg=NONE guibg=#d0baf3 guisp=NONE gui=bold ctermfg=236 ctermbg=183 cterm=bold term=NONE
+ hi Removed guifg=#d20f39 guibg=NONE guisp=NONE gui=NONE ctermfg=161 ctermbg=NONE cterm=NONE term=NONE
+ hi Repeat guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi Search guifg=#4c4f69 guibg=#a8daf0 guisp=NONE gui=NONE ctermfg=236 ctermbg=117 cterm=NONE term=reverse
+ hi SignColumn guifg=#bcc0cc guibg=NONE guisp=NONE gui=NONE ctermfg=250 ctermbg=NONE cterm=NONE term=reverse
+ hi Special guifg=#ea76cb guibg=NONE guisp=NONE gui=NONE ctermfg=206 ctermbg=NONE cterm=NONE term=NONE
+ hi SpellBad guifg=NONE guibg=NONE guisp=#d20f39 gui=undercurl ctermfg=161 ctermbg=NONE cterm=underline term=underline
+ hi SpellCap guifg=NONE guibg=NONE guisp=#df8e1d gui=undercurl ctermfg=172 ctermbg=NONE cterm=underline term=underline
+ hi SpellLocal guifg=NONE guibg=NONE guisp=#1e66f5 gui=undercurl ctermfg=27 ctermbg=NONE cterm=underline term=underline
+ hi SpellRare guifg=NONE guibg=NONE guisp=#40a02b gui=undercurl ctermfg=34 ctermbg=NONE cterm=underline term=underline
+ hi Statement guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi StatusLine guifg=#4c4f69 guibg=#dce0e8 guisp=NONE gui=NONE ctermfg=236 ctermbg=254 cterm=NONE term=bold,reverse
+ hi StatusLineNC guifg=#bcc0cc guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=250 ctermbg=255 cterm=NONE term=bold,underline
+ hi StorageClass guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+ hi String guifg=#40a02b guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
+ hi Structure guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+ hi TabLine guifg=#9ca0b0 guibg=#dce0e8 guisp=NONE gui=NONE ctermfg=247 ctermbg=254 cterm=NONE term=bold,underline
+ hi TabLineFill guifg=NONE guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=NONE ctermbg=255 cterm=NONE term=NONE
+ hi TabLineSel guifg=#4c4f69 guibg=#eff1f5 guisp=NONE gui=NONE ctermfg=236 ctermbg=231 cterm=NONE term=bold,reverse
+ hi Tag guifg=#7287fd guibg=NONE guisp=NONE gui=bold ctermfg=69 ctermbg=NONE cterm=bold term=bold
+ hi Title guifg=#1e66f5 guibg=NONE guisp=NONE gui=bold ctermfg=27 ctermbg=NONE cterm=bold term=NONE
+ hi TitleBar guifg=#4c4f69 guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=236 ctermbg=255 cterm=NONE term=NONE
+ hi TitleBarNC guifg=#9ca0b0 guibg=#dce0e8 guisp=NONE gui=NONE ctermfg=247 ctermbg=254 cterm=NONE term=NONE
+ hi Todo guifg=#dd7878 guibg=NONE guisp=NONE gui=bold ctermfg=167 ctermbg=NONE cterm=bold term=bold,reverse
+ hi ToolbarButton guifg=#dc8a78 guibg=NONE guisp=NONE gui=NONE ctermfg=174 ctermbg=NONE cterm=NONE term=bold,reverse
+ hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
+ hi Type guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+ hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
+ hi VertSplit guifg=#dce0e8 guibg=NONE guisp=NONE gui=NONE ctermfg=254 ctermbg=NONE cterm=NONE term=NONE
+ hi Visual guifg=NONE guibg=#bcc0cc guisp=NONE gui=NONE ctermfg=250 ctermbg=236 cterm=reverse term=reverse
+ hi VisualNOS guifg=NONE guibg=#bcc0cc guisp=NONE gui=bold ctermfg=NONE ctermbg=250 cterm=bold term=NONE
+ hi WarningMsg guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=standout
+ hi WildMenu guifg=NONE guibg=#9ca0b0 guisp=NONE gui=NONE ctermfg=NONE ctermbg=247 cterm=NONE term=bold
+ hi csvCol0 guifg=#d20f39 guibg=NONE guisp=NONE gui=NONE ctermfg=161 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol1 guifg=#fe640b guibg=NONE guisp=NONE gui=NONE ctermfg=202 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol2 guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol3 guifg=#40a02b guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol4 guifg=#04a5e5 guibg=NONE guisp=NONE gui=NONE ctermfg=39 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol5 guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol6 guifg=#7287fd guibg=NONE guisp=NONE gui=NONE ctermfg=69 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol7 guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
+ hi csvCol8 guifg=#ea76cb guibg=NONE guisp=NONE gui=NONE ctermfg=206 ctermbg=NONE cterm=NONE term=NONE
+ hi debugBreakpoint guifg=#9ca0b0 guibg=#eff1f5 guisp=NONE gui=NONE ctermfg=247 ctermbg=231 cterm=NONE term=NONE
+ hi debugPC guifg=NONE guibg=#dce0e8 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=NONE
+ hi diffAdded guifg=#40a02b guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
+ hi diffChanged guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi diffFile guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi diffIndexLine guifg=#179299 guibg=NONE guisp=NONE gui=NONE ctermfg=30 ctermbg=NONE cterm=NONE term=NONE
+ hi diffLine guifg=#9ca0b0 guibg=NONE guisp=NONE gui=NONE ctermfg=247 ctermbg=NONE cterm=NONE term=NONE
+ hi diffNewFile guifg=#fe640b guibg=NONE guisp=NONE gui=NONE ctermfg=202 ctermbg=NONE cterm=NONE term=NONE
+ hi diffOldFile guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+ hi diffRemoved guifg=#d20f39 guibg=NONE guisp=NONE gui=NONE ctermfg=161 ctermbg=NONE cterm=NONE term=NONE
+ hi lCursor guifg=#eff1f5 guibg=#d20f39 guisp=NONE gui=NONE ctermfg=231 ctermbg=161 cterm=NONE term=NONE
+ hi markdownCode guifg=#dd7878 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownCodeBlock guifg=#dd7878 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH1 guifg=#d20f39 guibg=NONE guisp=NONE gui=NONE ctermfg=161 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH2 guifg=#fe640b guibg=NONE guisp=NONE gui=NONE ctermfg=202 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH3 guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH4 guifg=#40a02b guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH5 guifg=#209fb5 guibg=NONE guisp=NONE gui=NONE ctermfg=38 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownH6 guifg=#7287fd guibg=NONE guisp=NONE gui=NONE ctermfg=69 ctermbg=NONE cterm=NONE term=NONE
+ hi markdownHeadingDelimiter guifg=#fe640b guibg=NONE guisp=NONE gui=bold ctermfg=202 ctermbg=NONE cterm=bold term=bold
+ hi markdownLinkText guifg=#1e66f5 guibg=NONE guisp=NONE gui=underline ctermfg=27 ctermbg=NONE cterm=underline term=underline
+ hi qfFileName guifg=#1e66f5 guibg=NONE guisp=NONE gui=NONE ctermfg=27 ctermbg=NONE cterm=NONE term=NONE
+ hi qfLineNr guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
+
+ if s:tgc || s:t_Co >= 256
+ if s:tgc
+ hi QuickFixLine cterm=NONE
+ hi Visual cterm=NONE
+ endif
+ finish
+ endif
+
+ if s:t_Co >= 16
+ hi Normal ctermfg=Black ctermbg=White cterm=NONE
+ hi Added ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Bold ctermfg=NONE ctermbg=NONE cterm=bold
+ hi Changed ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Character ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi Comment ctermfg=Black ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Conditional ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi CurSearch ctermfg=Black ctermbg=Red cterm=NONE
+ hi Cursor ctermfg=White ctermbg=Red cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi CursorIM ctermfg=White ctermbg=DarkMagenta cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=Black ctermbg=NONE cterm=NONE
+ hi Delimiter ctermfg=Black ctermbg=NONE cterm=NONE
+ hi DiffAdd ctermfg=White ctermbg=Green cterm=NONE
+ hi DiffChange ctermfg=White ctermbg=Yellow cterm=NONE
+ hi DiffDelete ctermfg=White ctermbg=Red cterm=NONE
+ hi DiffText ctermfg=White ctermbg=Cyan cterm=NONE
+ hi Directory ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Error ctermfg=Red ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=Red ctermbg=NONE cterm=bold
+ hi Exception ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Function ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=DarkRed ctermbg=NONE cterm=NONE
+ hi Include ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Italic ctermfg=NONE ctermbg=NONE cterm=italic
+ hi Keyword ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Label ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Macro ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi ModeMsg ctermfg=Black ctermbg=NONE cterm=bold
+ hi MoreMsg ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=Black ctermbg=Grey cterm=NONE
+ hi PmenuExtra ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi PmenuExtraSel ctermfg=DarkGrey ctermbg=Grey cterm=bold
+ hi PmenuMatch ctermfg=Black ctermbg=NONE cterm=bold
+ hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
+ hi PmenuSbar ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi PmenuSel ctermfg=NONE ctermbg=Grey cterm=bold
+ hi PmenuThumb ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi PreInsert ctermfg=Black ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi Question ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=White ctermbg=Magenta cterm=bold
+ hi Removed ctermfg=Red ctermbg=NONE cterm=NONE
+ hi Repeat ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Search ctermfg=Black ctermbg=Cyan cterm=NONE
+ hi SignColumn ctermfg=White ctermbg=NONE cterm=NONE
+ hi Special ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=Red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=Yellow ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=Blue ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=Green ctermbg=NONE cterm=underline
+ hi Statement ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=Black ctermbg=Grey cterm=bold,reverse
+ hi StatusLineNC ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi StorageClass ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi String ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Structure ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi TabLine ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi TabLineSel ctermfg=Black ctermbg=White cterm=NONE
+ hi Tag ctermfg=DarkBlue ctermbg=NONE cterm=bold
+ hi Title ctermfg=Blue ctermbg=NONE cterm=bold
+ hi TitleBar ctermfg=Black ctermbg=Grey cterm=NONE
+ hi TitleBarNC ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi Todo ctermfg=DarkRed ctermbg=NONE cterm=bold
+ hi ToolbarButton ctermfg=Red ctermbg=NONE cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+ hi VertSplit ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=Blue ctermbg=White cterm=bold,reverse
+ hi VisualNOS ctermfg=NONE ctermbg=White cterm=bold
+ hi WarningMsg ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi csvCol0 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi csvCol1 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi csvCol2 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi csvCol3 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi csvCol4 ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi csvCol5 ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi csvCol6 ctermfg=DarkBlue ctermbg=NONE cterm=NONE
+ hi csvCol7 ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi csvCol8 ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi debugBreakpoint ctermfg=DarkGrey ctermbg=White cterm=NONE
+ hi debugPC ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi diffAdded ctermfg=Green ctermbg=NONE cterm=NONE
+ hi diffChanged ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffFile ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffIndexLine ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi diffLine ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi diffNewFile ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi diffOldFile ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi diffRemoved ctermfg=Red ctermbg=NONE cterm=NONE
+ hi lCursor ctermfg=White ctermbg=Red cterm=NONE
+ hi markdownCode ctermfg=DarkRed ctermbg=NONE cterm=NONE
+ hi markdownCodeBlock ctermfg=DarkRed ctermbg=NONE cterm=NONE
+ hi markdownH1 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi markdownH2 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi markdownH3 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownH4 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi markdownH5 ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi markdownH6 ctermfg=DarkBlue ctermbg=NONE cterm=NONE
+ hi markdownHeadingDelimiter ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi markdownLinkText ctermfg=Blue ctermbg=NONE cterm=underline
+ hi qfFileName ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi qfLineNr ctermfg=Yellow ctermbg=NONE cterm=NONE
+ finish
+ endif
+
+ if s:t_Co >= 8
+ hi Normal ctermfg=Black ctermbg=White cterm=NONE
+ hi Added ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Bold ctermfg=NONE ctermbg=NONE cterm=bold
+ hi Changed ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Character ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=White ctermbg=DarkGrey cterm=NONE
+ hi Comment ctermfg=Black ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=Grey ctermbg=NONE cterm=NONE
+ hi Conditional ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi CurSearch ctermfg=Black ctermbg=Red cterm=NONE
+ hi Cursor ctermfg=White ctermbg=Red cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi CursorIM ctermfg=White ctermbg=DarkMagenta cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=Black ctermbg=NONE cterm=NONE
+ hi Delimiter ctermfg=Black ctermbg=NONE cterm=NONE
+ hi DiffAdd ctermfg=White ctermbg=Green cterm=NONE
+ hi DiffChange ctermfg=White ctermbg=Yellow cterm=NONE
+ hi DiffDelete ctermfg=White ctermbg=Red cterm=NONE
+ hi DiffText ctermfg=White ctermbg=Cyan cterm=NONE
+ hi Directory ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Error ctermfg=Red ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=Red ctermbg=NONE cterm=bold
+ hi Exception ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Function ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=DarkRed ctermbg=NONE cterm=NONE
+ hi Include ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Italic ctermfg=NONE ctermbg=NONE cterm=italic
+ hi Keyword ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Label ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Macro ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi ModeMsg ctermfg=Black ctermbg=NONE cterm=bold
+ hi MoreMsg ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=Black ctermbg=Grey cterm=NONE
+ hi PmenuExtra ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi PmenuExtraSel ctermfg=DarkGrey ctermbg=Grey cterm=bold
+ hi PmenuMatch ctermfg=Black ctermbg=NONE cterm=bold
+ hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
+ hi PmenuSbar ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi PmenuSel ctermfg=NONE ctermbg=Grey cterm=bold
+ hi PmenuThumb ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi PreInsert ctermfg=Black ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi Question ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=Black ctermbg=Magenta cterm=bold
+ hi Removed ctermfg=Red ctermbg=NONE cterm=NONE
+ hi Repeat ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi Search ctermfg=Black ctermbg=Cyan cterm=NONE
+ hi SignColumn ctermfg=White ctermbg=NONE cterm=NONE
+ hi Special ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=Red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=Yellow ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=Blue ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=Green ctermbg=NONE cterm=underline
+ hi Statement ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=Black ctermbg=Grey cterm=bold,reverse
+ hi StatusLineNC ctermfg=DarkGrey ctermbg=Grey cterm=reverse
+ hi StorageClass ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi String ctermfg=Green ctermbg=NONE cterm=NONE
+ hi Structure ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi TabLine ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi TabLineSel ctermfg=Black ctermbg=Grey cterm=bold
+ hi Tag ctermfg=DarkBlue ctermbg=NONE cterm=bold
+ hi Title ctermfg=Blue ctermbg=NONE cterm=bold
+ hi TitleBar ctermfg=Black ctermbg=Grey cterm=NONE
+ hi TitleBarNC ctermfg=DarkGrey ctermbg=Grey cterm=NONE
+ hi Todo ctermfg=DarkRed ctermbg=NONE cterm=bold
+ hi ToolbarButton ctermfg=Red ctermbg=NONE cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+ hi VertSplit ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=Blue ctermbg=White cterm=bold,reverse
+ hi VisualNOS ctermfg=NONE ctermbg=White cterm=bold
+ hi WarningMsg ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+ hi csvCol0 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi csvCol1 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi csvCol2 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi csvCol3 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi csvCol4 ctermfg=Cyan ctermbg=NONE cterm=NONE
+ hi csvCol5 ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi csvCol6 ctermfg=DarkBlue ctermbg=NONE cterm=NONE
+ hi csvCol7 ctermfg=DarkMagenta ctermbg=NONE cterm=NONE
+ hi csvCol8 ctermfg=Magenta ctermbg=NONE cterm=NONE
+ hi debugBreakpoint ctermfg=DarkGrey ctermbg=White cterm=NONE
+ hi debugPC ctermfg=NONE ctermbg=Grey cterm=NONE
+ hi diffAdded ctermfg=Green ctermbg=NONE cterm=NONE
+ hi diffChanged ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffFile ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi diffIndexLine ctermfg=DarkGreen ctermbg=NONE cterm=NONE
+ hi diffLine ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+ hi diffNewFile ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi diffOldFile ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi diffRemoved ctermfg=Red ctermbg=NONE cterm=NONE
+ hi lCursor ctermfg=White ctermbg=Red cterm=NONE
+ hi markdownCode ctermfg=DarkRed ctermbg=NONE cterm=NONE
+ hi markdownCodeBlock ctermfg=DarkRed ctermbg=NONE cterm=NONE
+ hi markdownH1 ctermfg=Red ctermbg=NONE cterm=NONE
+ hi markdownH2 ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+ hi markdownH3 ctermfg=Yellow ctermbg=NONE cterm=NONE
+ hi markdownH4 ctermfg=Green ctermbg=NONE cterm=NONE
+ hi markdownH5 ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+ hi markdownH6 ctermfg=DarkBlue ctermbg=NONE cterm=NONE
+ hi markdownHeadingDelimiter ctermfg=DarkYellow ctermbg=NONE cterm=bold
+ hi markdownLinkText ctermfg=Blue ctermbg=NONE cterm=underline
+ hi qfFileName ctermfg=Blue ctermbg=NONE cterm=NONE
+ hi qfLineNr ctermfg=Yellow ctermbg=NONE cterm=NONE
+ finish
+ endif
+
+ if s:t_Co >= 0
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Float term=NONE
+ hi Ignore term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi Number term=NONE
+ hi SpecialKey term=bold
+ hi StatusLineTerm term=bold,reverse
+ hi StatusLineTermNC term=bold,underline
+ hi Terminal term=NONE
+ finish
+ endif
+
+endif
+
+" vim: et ts=8 sw=2 sts=2
diff --git a/runtime/compiler/biome.vim b/runtime/compiler/biome.vim
new file mode 100644
index 00000000..57a80d4b
--- /dev/null
+++ b/runtime/compiler/biome.vim
@@ -0,0 +1,23 @@
+" Vim compiler file
+" Compiler: Biome (= linter for JavaScript, TypeScript, JSX, TSX, JSON,
+" JSONC, HTML, Vue, Svelte, Astro, CSS, GraphQL and GritQL files)
+" Maintainer: @Konfekt
+" Last Change: 2025 Nov 12
+if exists("current_compiler") | finish | endif
+let current_compiler = "biome"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+exe 'CompilerSet makeprg=' .. escape('biome check --linter-enabled=true --formatter-enabled=false --assist-enabled=false --reporter=github '
+ \ .. get(b:, 'biome_makeprg_params', get(g:, 'biome_makeprg_params', '')), ' \|"')
+
+CompilerSet errorformat=::%trror%.%#file=%f\\,line=%l\\,%.%#col=%c\\,%.%#::%m
+CompilerSet errorformat+=::%tarning%.%#file=%f\\,line=%l\\,%.%#col=%c\\,%.%#::%m
+CompilerSet errorformat+=::%totice%.%#file=%f\\,line=%l\\,%.%#col=%c\\,%.%#::%m
+CompilerSet errorformat+=%-G\\s%#
+CompilerSet errorformat+=%-Gcheck\ %.%#
+CompilerSet errorformat+=%-G%.%#Some\ errors\ were\ emitted\ while\ running\ checks%.
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/cabal.vim b/runtime/compiler/cabal.vim
new file mode 100644
index 00000000..02d4d9b8
--- /dev/null
+++ b/runtime/compiler/cabal.vim
@@ -0,0 +1,39 @@
+" Vim compiler file
+" Compiler: Haskell Cabal Build file
+" Maintainer: Mateo Gjika <@mateoxh>
+
+if exists('current_compiler')
+ finish
+endif
+
+let current_compiler = 'cabal'
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+CompilerSet makeprg=cabal\ build
+
+CompilerSet errorformat=
+ \%W%f:(%l\\,%c)-(%e\\,%k):\ %tarning:\ [%.%#],
+ \%W%f:(%l\\,%c)-(%e\\,%k):\ %tarning:%m,
+ \%W%f:(%l\\,%c)-(%e\\,%k):\ %tarning:,
+ \%W%f:%l:%c-%k:\ %tarning:\ [%.%#],
+ \%W%f:%l:%c-%k:\ %tarning:%m,
+ \%W%f:%l:%c-%k:\ %tarning:,
+ \%W%f:%l:%c:\ %tarning:\ [%.%#],
+ \%W%f:%l:%c:\ %tarning:%m,
+ \%W%f:%l:%c:\ %tarning:,
+ \%E%f:(%l\\,%c)-(%e\\,%k):\ %trror:\ [%.%#],
+ \%E%f:(%l\\,%c)-(%e\\,%k):\ %trror:%m,
+ \%E%f:(%l\\,%c)-(%e\\,%k):\ %trror:,
+ \%E%f:%l:%c-%k:\ %trror:\ [%.%#],
+ \%E%f:%l:%c-%k:\ %trror:%m,
+ \%E%f:%l:%c-%k:\ %trror:,
+ \%E%f:%l:%c:\ %trror:\ [%.%#],
+ \%E%f:%l:%c:\ %trror:%m,
+ \%E%f:%l:%c:\ %trror:,
+ \%Z\ %\\+\|%.%#,
+ \%C%m
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/runtime/compiler/context.vim b/runtime/compiler/context.vim
index c3780d46..82106ad7 100644
--- a/runtime/compiler/context.vim
+++ b/runtime/compiler/context.vim
@@ -4,9 +4,7 @@ vim9script
# Maintainer: Nicola Vitacolonna
# Former Maintainers: Nikolai Weibull
# Contributors: Enno Nagel
-# Last Change: 2024 Mar 29
-# 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
-# 2025 Mar 11 by The Vim Project (add comment for Dispatch)
+# Last Change: 2026 Jan 10
if exists("g:current_compiler")
finish
@@ -16,7 +14,6 @@ import autoload '../autoload/context.vim'
g:current_compiler = 'context'
-# CompilerSet makeprg=context
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
(!filereadable('Makefile') && !filereadable('makefile'))
var makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ')
@@ -30,14 +27,14 @@ const context_errorformat = join([
"%-Qclose source%.%#> %f",
"%-Popen source%.%#name '%f'",
"%-Qclose source%.%#name '%f'",
- "tex %trror%.%#error on line %l in file %f: %m",
+ "%E! %m",
+ "%Ztex %trror%.%#error on line %l in file %f",
"%Elua %trror%.%#error on line %l in file %f:",
"%+Emetapost %#> error: %#",
"%Emetafun%.%#error: %m",
- "! error: %#%m",
"%-C %#",
"%C! %m",
- "%Z[ctxlua]%m",
+ "%Z%.%#[ctxlua]:%l:%m",
"%+C<*> %.%#",
"%-C%.%#",
"%Z...%m",
diff --git a/runtime/compiler/cppcheck.vim b/runtime/compiler/cppcheck.vim
index 033613c0..17f79f4f 100644
--- a/runtime/compiler/cppcheck.vim
+++ b/runtime/compiler/cppcheck.vim
@@ -1,7 +1,7 @@
" vim compiler file
" Compiler: cppcheck (C++ static checker)
" Maintainer: Vincent B. (twinside@free.fr)
-" Last Change: 2024 Nov 19 by @Konfekt
+" Last Change: 2025 Nov 06 by @Konfekt
if exists("current_compiler") | finish | endif
let current_compiler = "cppcheck"
@@ -18,14 +18,14 @@ if !exists('g:c_cppcheck_params')
let s:undo_compiler = 'unlet! g:c_cppcheck_params'
endif
-let &l:makeprg = 'cppcheck --quiet'
+exe 'CompilerSet makeprg=' .. escape('cppcheck --quiet'
\ ..' --template="{file}:{line}:{column}: {severity}: [{id}] {message} {callstack}"'
\ ..' '..get(b:, 'c_cppcheck_params', get(g:, 'c_cppcheck_params', (&filetype ==# 'cpp' ? ' --language=c++' : '')))
\ ..' '..get(b:, 'c_cppcheck_includes', get(g:, 'c_cppcheck_includes',
\ (filereadable('compile_commands.json') ? '--project=compile_commands.json' :
\ (!empty(glob('*'..s:slash..'compile_commands.json', 1, 1)) ? '--project='..glob('*'..s:slash..'compile_commands.json', 1, 1)[0] :
- \ (empty(&path) ? '' : '-I')..join(map(filter(split(&path, ','), 'isdirectory(v:val)'),'shellescape(v:val)'), ' -I')))))
-exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
+ \ (empty(&path) ? '' : '-I')..join(map(filter(split(&path, ','), 'isdirectory(v:val)'),'shellescape(v:val)'), ' -I'))))),
+ \ ' \|"')
CompilerSet errorformat=
\%f:%l:%c:\ %tarning:\ %m,
diff --git a/runtime/compiler/eruby.vim b/runtime/compiler/eruby.vim
index 815d082f..2f9f9aa7 100644
--- a/runtime/compiler/eruby.vim
+++ b/runtime/compiler/eruby.vim
@@ -2,7 +2,6 @@
" Language: eRuby
" Maintainer: Doug Kearns
" URL: https://github.com/vim-ruby/vim-ruby
-" Release Coordinator: Doug Kearns
" Last Change: 2024 Apr 03
if exists("current_compiler")
diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim
index 7b6ebb98..1d5900eb 100644
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -6,6 +6,7 @@
" by Daniel Hahler, 2019 Jul 12
" added line suggested by Anton Lindqvist 2016 Mar 31
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
+" 2025 Dec 17 by The Vim Project (correctly parse: 'make: *** [Makefile:2: all] Error 1')
if exists("current_compiler")
finish
@@ -16,6 +17,7 @@ let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat=
+ \make:\ ***\ [%f:%l:\ %m,
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
\%*[^\"]\"%f\"%*\\D%l:\ %m,
\\"%f\"%*\\D%l:%c:\ %m,
diff --git a/runtime/compiler/gnat.vim b/runtime/compiler/gnat.vim
index 086edbed..696d1c6e 100644
--- a/runtime/compiler/gnat.vim
+++ b/runtime/compiler/gnat.vim
@@ -3,7 +3,7 @@
" Language: Ada (GNAT)
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
-" Maintainer: Martin Krischi k
+" Maintainer: Martin Krischi
" Ned Okie
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
diff --git a/runtime/compiler/hare.vim b/runtime/compiler/hare.vim
index 88f36a9e..2b7d9345 100644
--- a/runtime/compiler/hare.vim
+++ b/runtime/compiler/hare.vim
@@ -3,25 +3,30 @@ vim9script
# Vim compiler file.
# Compiler: Hare
# Maintainer: Amelia Clarke
-# Last Change: 2025 Sep 06
+# Last Change: 2026 Jan 24
# Upstream: https://git.sr.ht/~sircmpwn/hare.vim
if exists('g:current_compiler')
finish
endif
+g:current_compiler = 'hare'
if filereadable('Makefile') || filereadable('makefile')
CompilerSet makeprg=make
else
- const makeprg = 'hare build '
- .. get(b:, 'hare_makeprg_params', get(g:, 'hare_makeprg_params', '-q'))
+ const makeprg = 'hare build ' .. get(g:, 'hare_makeprg_params', '-q')
execute 'CompilerSet makeprg=' .. escape(makeprg, ' "\|')
endif
CompilerSet errorformat=
- \%o:%l:%v:\ syntax\ error:\ %m,
- \%o:%l:%v:\ error:\ %m,
- \Error:\ %m,
+ \%E%o:%l:%v:\ error:\ %m,
+ \%E%o:%l:%v:\ syntax\ error:\ %m,
+ \%E%o:%l:%v:\ %\\%%(unexpected\ name\ %\\)%\\@=%m,
+ \%C,%C\ %.%#,%C%l\ %.%#,
+ \%trror:\ %o:\ %\\%%(%\\h%\\w%\\+%\\%%(::%\\h%\\w%\\+%\\)%#:\ %\\)%\\@=%m,
+ \%trror:\ %m,
+ \%+EAbort:\ %m%>,
+ \%C%.%#,
\%-G%.%#
augroup HareQuickFix
@@ -30,6 +35,4 @@ augroup HareQuickFix
autocmd QuickFixCmdPost lmake hare#QuickFixPaths()
augroup END
-g:current_compiler = 'hare'
-
# vim: et sts=2 sw=2 ts=8 tw=80
diff --git a/runtime/compiler/maven.vim b/runtime/compiler/maven.vim
index 72e74e30..1657da75 100644
--- a/runtime/compiler/maven.vim
+++ b/runtime/compiler/maven.vim
@@ -7,24 +7,54 @@
" Original Source: https://github.com/mikelue/vim-maven-plugin/blob/master/compiler/maven.vim
" (distributed under same terms as LICENSE per
" https://github.com/mikelue/vim-maven-plugin/issues/13)
-" Last Change: 2024 Nov 12
+" Last Change: 2025 Nov 18
if exists("current_compiler")
finish
endif
let current_compiler = "maven"
+" CompilerSet makeprg=mvn
execute $'CompilerSet makeprg=mvn\ --batch-mode\ {escape(get(b:, 'maven_makeprg_params', get(g:, 'maven_makeprg_params', '')), ' \|"')}'
" Error message for POM
CompilerSet errorformat=[FATAL]\ Non-parseable\ POM\ %f:\ %m%\\s%\\+@%.%#line\ %l\\,\ column\ %c%.%#,
CompilerSet errorformat+=[%tRROR]\ Malformed\ POM\ %f:\ %m%\\s%\\+@%.%#line\ %l\\,\ column\ %c%.%#
+" Handle Non-parseable POM with '@: ' embedded in the 'position:' clause.
+CompilerSet errorformat+=[FATAL]\ Non-parseable\ POM\ %f:\ %m%\\s%\\+%.%#@%l:%c%.%#,
+CompilerSet errorformat+=[%tRROR]\ Malformed\ POM\ %f:\ %m%\\s%\\+%.%#@%l:%c%.%#,
-" Java related build messages
+" JavaC messages with paths relative to module root:
+" With column:
CompilerSet errorformat+=[%tARNING]\ %f:[%l\\,%c]\ %m
CompilerSet errorformat+=[%tRROR]\ %f:[%l\\,%c]\ %m
CompilerSet errorformat+=%A[%t%[A-Z]%#]\ %f:[%l\\,%c]\ %m,%Z
CompilerSet errorformat+=%A%f:[%l\\,%c]\ %m,%Z
+" Without column:
+CompilerSet errorformat+=[%tARNING]\ %f:[%l]\ %m
+CompilerSet errorformat+=[%tRROR]\ %f:[%l]\ %m
+CompilerSet errorformat+=%A[%t%[A-Z]%#]\ %f:[%l]\ %m,%Z
+CompilerSet errorformat+=%A%f:[%l]\ %m,%Z
+
+" Plug-in messages with absolute paths:
+" with column:
+CompilerSet errorformat+=[%tARNING]\ %f:%l:%c:\ %m
+CompilerSet errorformat+=[%tRROR]\ %f:%l:%c:\ %m
+CompilerSet errorformat+=%A[%t%[A-Z]%#]\ %f:%l:%c:\ %m,%Z
+CompilerSet errorformat+=%A%f:%l:%c:\ %m,%Z
+" without column:
+CompilerSet errorformat+=[%tARNING]\ %f:%l:\ %m
+CompilerSet errorformat+=[%tRROR]\ %f:%l:\ %m
+CompilerSet errorformat+=%A[%t%[A-Z]%#]\ %f:%l:\ %m,%Z
+CompilerSet errorformat+=%A%f:%l:\ %m,%Z
+
+" SpotBugs
+CompilerSet errorformat+=[%tRROR]\ %m%\\s%\\+\[%*[^]]]%\\s%\\+In\ %f\ %.%#,
+CompilerSet errorformat+=[%tARNING]\ %m%\\s%\\+\[%*[^]]]%\\s%\\+In\ %f\ %.%#,
+CompilerSet errorformat+=[%tRROR]\ %.%#\ [aA]t\ %f:\[lines\ %l-%\\d\\+]\ %.%#,
+CompilerSet errorformat+=[%tARNING]\ %.%#\ [aA]t\ %f:\[lines\ %l-%\\d\\+]\ %.%#,
+CompilerSet errorformat+=[%tRROR]\ %.%#\ [aA]t\ %f:\[line\ %l]\ %.%#,
+CompilerSet errorformat+=[%tARNING]\ %.%#\ [aA]t\ %f:\[line\ %l]\ %.%#,
" jUnit related build messages
CompilerSet errorformat+=%+E\ \ %#test%m,%Z
@@ -36,5 +66,7 @@ CompilerSet errorformat+=%+Z%\\s%#at\ %f(%\\f%\\+:%l),
CompilerSet errorformat+=%+C%.%#
" Misc message removal
+" CompilerSet errorformat+=%-GPicked\ up\ _JAVA_OPTIONS\ %.%#,
+CompilerSet errorformat+=%-GAudit\ done.,
CompilerSet errorformat+=%-G[INFO]\ %.%#,
CompilerSet errorformat+=%-G[debug]\ %.%#
diff --git a/runtime/compiler/mypy.vim b/runtime/compiler/mypy.vim
index 907b98b7..c7a575ce 100644
--- a/runtime/compiler/mypy.vim
+++ b/runtime/compiler/mypy.vim
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Mypy (Python static checker)
" Maintainer: @Konfekt
-" Last Change: 2024 Nov 19
+" Last Change: 2025 Nov 06
if exists("current_compiler") | finish | endif
let current_compiler = "mypy"
@@ -10,9 +10,9 @@ let s:cpo_save = &cpo
set cpo&vim
" CompilerSet makeprg=mypy
-let &l:makeprg = 'mypy --show-column-numbers '
- \ ..get(b:, 'mypy_makeprg_params', get(g:, 'mypy_makeprg_params', '--strict --ignore-missing-imports'))
-exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
+exe 'CompilerSet makeprg=' .. escape('mypy --show-column-numbers '
+ \ ..get(b:, 'mypy_makeprg_params', get(g:, 'mypy_makeprg_params', '--strict --ignore-missing-imports')),
+ \ ' \|"')
CompilerSet errorformat=%f:%l:%c:\ %t%*[^:]:\ %m
let &cpo = s:cpo_save
diff --git a/runtime/compiler/pandoc.vim b/runtime/compiler/pandoc.vim
index 40d2d026..d1204192 100644
--- a/runtime/compiler/pandoc.vim
+++ b/runtime/compiler/pandoc.vim
@@ -2,7 +2,8 @@
" Compiler: Pandoc
" Maintainer: Konfekt
" Last Change: 2024 Nov 19
-" 2025 May 15 Update the title regex for CompilerSet #17321
+" 2025 May 15 by Vim Project: Update the title regex for CompilerSet #17321
+" 2026 Jan 10 by Vim Project: Do not set the title #19048
"
" Expects output file extension, say `:make html` or `:make pdf`.
" Passes additional arguments to pandoc, say `:make html --self-contained`.
@@ -52,8 +53,6 @@ endfunction
execute 'CompilerSet makeprg=pandoc'..escape(
\ ' --standalone'..
- \ (s:PandocFiletype(&filetype) ==# 'markdown' && (getline(1) =~# '^%\s\+\S\+' || (search('^title:\s\+\S\+', 'cnw') > 0)) ?
- \ '' : ' --metadata title=%:t:r:S')..
\ ' '..s:PandocLang()..
\ ' --from='..s:PandocFiletype(&filetype)..
\ ' '..get(b:, 'pandoc_compiler_args', get(g:, 'pandoc_compiler_args', ''))..
diff --git a/runtime/compiler/perl.vim b/runtime/compiler/perl.vim
index 6aeaac3f..04643af2 100644
--- a/runtime/compiler/perl.vim
+++ b/runtime/compiler/perl.vim
@@ -1,6 +1,6 @@
" Vim compiler file
" Compiler: Perl syntax checks (perl -Wc)
-" Maintainer: vim-perl
+" Maintainer: vim-perl (need to be subscribed to post)
" Author: Christian J. Robinson
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
diff --git a/runtime/compiler/perlcritic.vim b/runtime/compiler/perlcritic.vim
index 4b5f34dd..d50bc311 100644
--- a/runtime/compiler/perlcritic.vim
+++ b/runtime/compiler/perlcritic.vim
@@ -1,6 +1,6 @@
" Vim compiler file
" Compiler: perlcritic
-" Maintainer: vim-perl
+" Maintainer: vim-perl (need to be subscribed to post)
" Author: Doug Kearns
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
diff --git a/runtime/compiler/podchecker.vim b/runtime/compiler/podchecker.vim
index 20faaa4b..744c1034 100644
--- a/runtime/compiler/podchecker.vim
+++ b/runtime/compiler/podchecker.vim
@@ -1,6 +1,6 @@
" Vim compiler file
" Compiler: podchecker
-" Maintainer: vim-perl
+" Maintainer: vim-perl (need to be subscribed to post)
" Author: Doug Kearns
" Homepage: https://github.com/vim-perl/vim-perl
" Bugs/requests: https://github.com/vim-perl/vim-perl/issues
diff --git a/runtime/compiler/pylint.vim b/runtime/compiler/pylint.vim
index 96abf315..749fe7d1 100644
--- a/runtime/compiler/pylint.vim
+++ b/runtime/compiler/pylint.vim
@@ -3,6 +3,7 @@
" Maintainer: Daniel Moch
" Last Change: 2024 Nov 07 by The Vim Project (added params variable)
" 2024 Nov 19 by the Vim Project (properly escape makeprg setting)
+" 2025 Nov 06 by the Vim Project (do not set buffer-local makeprg)
if exists("current_compiler") | finish | endif
let current_compiler = "pylint"
@@ -11,10 +12,10 @@ let s:cpo_save = &cpo
set cpo&vim
" CompilerSet makeprg=ruff
-let &l:makeprg = 'pylint ' .
+exe 'CompilerSet makeprg=' .. escape('pylint ' .
\ '--output-format=text --msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg}" --reports=no ' .
- \ get(b:, "pylint_makeprg_params", get(g:, "pylint_makeprg_params", '--jobs=0'))
-exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
+ \ get(b:, "pylint_makeprg_params", get(g:, "pylint_makeprg_params", '--jobs=0')),
+ \ ' \|"')
CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#
let &cpo = s:cpo_save
diff --git a/runtime/compiler/pyright.vim b/runtime/compiler/pyright.vim
new file mode 100644
index 00000000..eef6a9eb
--- /dev/null
+++ b/runtime/compiler/pyright.vim
@@ -0,0 +1,25 @@
+" Vim compiler file
+" Compiler: Pyright (Python Type Checker)
+" Maintainer: @konfekt
+" Last Change: 2025 Feb 7
+
+if exists("current_compiler") | finish | endif
+let current_compiler = "pyright"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" CompilerSet makeprg=pyright
+" CompilerSet makeprg=basedpyright
+exe 'CompilerSet makeprg=' .. escape(
+ \ get(b:, 'pyright_makeprg', get(g:, 'pyright_makeprg', 'pyright')),
+ \ ' \|"')
+CompilerSet errorformat=
+ \%E%f:%l:%c\ -\ error:\ %m,
+ \%W%f:%l:%c\ -\ warning:\ %m,
+ \%N%f:%l:%c\ -\ note:\ %m,
+ \%C[\ \t]\ %.%#,
+ \%-G%.%#
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/rake.vim b/runtime/compiler/rake.vim
index 5b3c7f40..55f7373a 100644
--- a/runtime/compiler/rake.vim
+++ b/runtime/compiler/rake.vim
@@ -2,7 +2,6 @@
" Language: Rake
" Maintainer: Tim Pope
" URL: https://github.com/vim-ruby/vim-ruby
-" Release Coordinator: Doug Kearns
" Last Change: 2018 Mar 02
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
diff --git a/runtime/compiler/rime_deployer.vim b/runtime/compiler/rime_deployer.vim
index e0c8daef..5331412d 100644
--- a/runtime/compiler/rime_deployer.vim
+++ b/runtime/compiler/rime_deployer.vim
@@ -3,6 +3,7 @@
" Maintainer: Wu, Zhenyu
" URL: https://rime.im
" Latest Revision: 2024-04-09
+" Last Change: 2025 Nov 16 by The Vim Project (set errorformat)
if exists('b:current_compiler')
finish
@@ -25,6 +26,8 @@ for s:shared_data_dir in ['/sdcard/rime-data', '/run/current-system/sw/share/rim
endfor
execute 'CompilerSet makeprg=rime_deployer\ --build\ %:p:h:S\' s:shared_data_dir
unlet s:prefix s:shared_data_dir
+" CompilerSet errorformat=%f:%l:%c:\ %m,%f:%l:\ %m
+CompilerSet errorformat&
let &cpoptions = s:save_cpoptions
unlet s:save_cpoptions
diff --git a/runtime/compiler/rspec.vim b/runtime/compiler/rspec.vim
index ee848f70..ab83acc8 100644
--- a/runtime/compiler/rspec.vim
+++ b/runtime/compiler/rspec.vim
@@ -2,7 +2,6 @@
" Language: RSpec
" Maintainer: Tim Pope
" URL: https://github.com/vim-ruby/vim-ruby
-" Release Coordinator: Doug Kearns
" Last Change: 2018 Aug 07
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
diff --git a/runtime/compiler/ruby.vim b/runtime/compiler/ruby.vim
index 70dff5bf..2c34142f 100644
--- a/runtime/compiler/ruby.vim
+++ b/runtime/compiler/ruby.vim
@@ -3,7 +3,6 @@
" Function: Syntax check and/or error reporting
" Maintainer: Tim Pope
" URL: https://github.com/vim-ruby/vim-ruby
-" Release Coordinator: Doug Kearns
" Last Change: 2019 Jan 06
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
diff --git a/runtime/compiler/rubyunit.vim b/runtime/compiler/rubyunit.vim
index e59873fa..2c6f5392 100644
--- a/runtime/compiler/rubyunit.vim
+++ b/runtime/compiler/rubyunit.vim
@@ -2,7 +2,6 @@
" Language: Test::Unit - Ruby Unit Testing Framework
" Maintainer: Doug Kearns
" URL: https://github.com/vim-ruby/vim-ruby
-" Release Coordinator: Doug Kearns
" Last Change: 2014 Mar 23
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
diff --git a/runtime/compiler/ruff.vim b/runtime/compiler/ruff.vim
index 318f4fe5..d4f564b0 100644
--- a/runtime/compiler/ruff.vim
+++ b/runtime/compiler/ruff.vim
@@ -3,6 +3,8 @@
" Maintainer: @pbnj-dragon
" Last Change: 2024 Nov 07
" 2024 Nov 19 by the Vim Project (properly escape makeprg setting)
+" 2025 Nov 06 by the Vim Project (do not set buffer-local makeprg)
+" 2024 Dec 24 by the Vim Project (mute Found messages)
if exists("current_compiler") | finish | endif
let current_compiler = "ruff"
@@ -11,10 +13,11 @@ let s:cpo_save = &cpo
set cpo&vim
" CompilerSet makeprg=ruff
-let &l:makeprg= 'ruff check --output-format=concise '
- \ ..get(b:, 'ruff_makeprg_params', get(g:, 'ruff_makeprg_params', '--preview'))
-exe 'CompilerSet makeprg='..escape(&l:makeprg, ' \|"')
+exe 'CompilerSet makeprg=' .. escape('ruff check --output-format=concise '
+ \ ..get(b:, 'ruff_makeprg_params', get(g:, 'ruff_makeprg_params', '--preview')),
+ \ ' \|"')
CompilerSet errorformat=%f:%l:%c:\ %m,%f:%l:\ %m,%f:%l:%c\ -\ %m,%f:
+CompilerSet errorformat+=%-GFound\ %.%#
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/compiler/rustc.vim b/runtime/compiler/rustc.vim
index b3c80919..0b488918 100644
--- a/runtime/compiler/rustc.vim
+++ b/runtime/compiler/rustc.vim
@@ -2,6 +2,8 @@
" Compiler: Rust Compiler
" Maintainer: Chris Morgan
" Latest Revision: 2023-09-11
+" 2025 Nov 15 by Vim project: remove test for Vim patch 7.4.191
+" 2025 Dec 18 by Vim project: detect more errors #18957
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
if exists("current_compiler")
@@ -17,11 +19,7 @@ set cpo&vim
if get(g:, 'rustc_makeprg_no_percent', 0)
CompilerSet makeprg=rustc
else
- if has('patch-7.4.191')
- CompilerSet makeprg=rustc\ \%:S
- else
- CompilerSet makeprg=rustc\ \"%\"
- endif
+ CompilerSet makeprg=rustc\ \%:S
endif
" New errorformat (after nightly 2016/08/10)
@@ -32,8 +30,10 @@ CompilerSet errorformat=
\%Eerror:\ %m,
\%Eerror[E%n]:\ %m,
\%Wwarning:\ %m,
+ \%Wwarning[E%n]:\ %m,
\%Inote:\ %m,
\%C\ %#-->\ %f:%l:%c,
+ \%C\ %#â•â–¸\ %f:%l:%c,
\%E\ \ left:%m,%C\ right:%m\ %f:%l:%c,%Z
" Old errorformat (before nightly 2016/08/10)
diff --git a/runtime/compiler/tombi.vim b/runtime/compiler/tombi.vim
new file mode 100644
index 00000000..7a286723
--- /dev/null
+++ b/runtime/compiler/tombi.vim
@@ -0,0 +1,69 @@
+" Vim compiler file
+" Language: TOML
+" Maintainer: Konfekt
+" Last Change: 2025 Oct 29
+
+if exists("current_compiler") | finish | endif
+let current_compiler = "tombi"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if !executable('tombi')
+ echoerr "tombi compiler: 'tombi' executable not found in PATH"
+ let &cpo = s:cpo_save
+ unlet s:cpo_save
+ finish
+endif
+
+" NO_COLOR support requires tombi 0.6.40 or later
+if !exists('s:tombi_nocolor')
+ " Expect output like: 'tombi 0.6.40' or '0.6.40'
+ let s:out = trim(system('tombi --version'))
+ let s:tombi_ver = matchstr(s:out, '\v\s\d+\.\d+\.\d+$')
+
+ function s:VersionGE(ver, req) abort
+ " Compare semantic versions a.b.c ≥ x.y.z
+ let l:pa = map(split(a:ver, '\.'), 'str2nr(v:val)')
+ let l:pb = map(split(a:req, '\.'), 'str2nr(v:val)')
+ while len(l:pa) < 3 | call add(l:pa, 0) | endwhile
+ while len(l:pb) < 3 | call add(l:pb, 0) | endwhile
+ for i in range(0, 2)
+ if l:pa[i] > l:pb[i] | return 1
+ elseif l:pa[i] < l:pb[i] | return 0
+ endif
+ endfor
+ return 1
+ endfunction
+ let s:tombi_nocolor = s:VersionGE(s:tombi_ver, '0.6.40')
+ delfunction s:VersionGE
+endif
+
+if s:tombi_nocolor
+ if has('win32')
+ if &shell =~# '\v<%(cmd|cmd)>'
+ CompilerSet makeprg=set\ NO_COLOR=1\ &&\ tombi\ lint
+ elseif &shell =~# '\v<%(powershell|pwsh)>'
+ CompilerSet makeprg=$env:NO_COLOR=\"1\";\ tombi\ lint
+ else
+ echoerr "tombi compiler: Unsupported shell for Windows"
+ endif
+ else " if has('unix')
+ CompilerSet makeprg=env\ NO_COLOR=1\ tombi\ lint
+ endif
+else
+ " Older tombi: strip ANSI color codes with sed.
+ if executable('sed')
+ CompilerSet makeprg=tombi\ lint\ $*\ \|\ sed\ -E\ \"s/\\x1B(\\[[0-9;]*[JKmsu]\|\\(B)//g\"
+ else
+ echoerr "tombi compiler: tombi version < 0.6.40 requires 'sed' to strip ANSI color codes"
+ endif
+endif
+
+CompilerSet errorformat=%E%*\\sError:\ %m,%Z%*\\sat\ %f:%l:%c
+CompilerSet errorformat+=%W%*\\sWarning:\ %m,%Z%*\\sat\ %f:%l:%c
+CompilerSet errorformat+=%-G1\ file\ failed\ to\ be\ linted
+CompilerSet errorformat+=%-G1\ file\ linted\ successfully
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/ty.vim b/runtime/compiler/ty.vim
new file mode 100644
index 00000000..d9ee5aae
--- /dev/null
+++ b/runtime/compiler/ty.vim
@@ -0,0 +1,20 @@
+" Vim compiler file
+" Compiler: Ty (Python Type Checker)
+" Maintainer: @konfekt
+" Last Change: 2024 Dec 24
+
+if exists("current_compiler") | finish | endif
+let current_compiler = "ty"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" CompilerSet makeprg=ty
+exe 'CompilerSet makeprg=' .. escape(
+ \ get(b:, 'ty_makeprg', get(g:, 'ty_makeprg', 'ty check --no-progress --color=never'))
+ \ ..' --output-format=concise', ' \|"')
+CompilerSet errorformat=%f:%l:%c:\ %m,%f:%l:\ %m,%f:%l:%c\ -\ %m,%f:
+CompilerSet errorformat+=%-GFound\ %.%#
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/vimdoc.vim b/runtime/compiler/vimdoc.vim
index a30355f8..ca34f105 100644
--- a/runtime/compiler/vimdoc.vim
+++ b/runtime/compiler/vimdoc.vim
@@ -2,6 +2,7 @@
" Language: vimdoc
" Maintainer: Wu, Zhenyu
" Latest Revision: 2024-04-13
+" Last Change: 2025 Nov 16 by The Vim Project (set errorformat)
"
" If you can not find 'vimdoc' in the package manager of your distribution e.g
" 'pip', then you may need to build it from its source.
@@ -15,6 +16,8 @@ let s:save_cpoptions = &cpoptions
set cpoptions&vim
CompilerSet makeprg=vimdoc
+" CompilerSet errorformat=%f:%l:%c:\ %m,%f:%l:\ %m
+CompilerSet errorformat&
let &cpoptions = s:save_cpoptions
unlet s:save_cpoptions
diff --git a/runtime/compiler/yamllint.vim b/runtime/compiler/yamllint.vim
index 88e2efb2..adb1dbde 100644
--- a/runtime/compiler/yamllint.vim
+++ b/runtime/compiler/yamllint.vim
@@ -3,6 +3,7 @@
" Maintainer: Romain Lafourcade
" Last Change: 2021 July 21
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
+" 2025 Nov 16 by The Vim Project (set errorformat)
if exists("current_compiler")
finish
@@ -10,4 +11,6 @@ endif
let current_compiler = "yamllint"
CompilerSet makeprg=yamllint\ -f\ parsable
+" CompilerSet errorformat=%f:%l:%c:\ [%t%*[^]]]\ %m,%f:%l:%c:\ [%*[^]]]\ %m
+CompilerSet errorformat&
diff --git a/runtime/compiler/zig_build_exe.vim b/runtime/compiler/zig_build_exe.vim
index 259d0e26..440eff78 100644
--- a/runtime/compiler/zig_build_exe.vim
+++ b/runtime/compiler/zig_build_exe.vim
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Zig Compiler (zig build-exe)
" Upstream: https://github.com/ziglang/zig.vim
-" Last Change: 2024 Apr 05 by The Vim Project (removed :CompilerSet definition)
+" Last Change: 2025 Nov 16 by The Vim Project (set errorformat)
if exists('current_compiler')
finish
@@ -12,11 +12,9 @@ let current_compiler = 'zig_build_exe'
let s:save_cpo = &cpo
set cpo&vim
-if has('patch-7.4.191')
- CompilerSet makeprg=zig\ build-exe\ \%:S\ \$*
-else
- CompilerSet makeprg=zig\ build-exe\ \"%\"\ \$*
-endif
+CompilerSet makeprg=zig\ build-exe\ \%:S\ \$*
+" CompilerSet errorformat=%f:%l:%c: %t%*[^:]: %m, %f:%l:%c: %m, %f:%l: %m
+CompilerSet errorformat&
let &cpo = s:save_cpo
unlet s:save_cpo
diff --git a/runtime/compiler/zig_test.vim b/runtime/compiler/zig_test.vim
index dafeb6f1..afe57ad4 100644
--- a/runtime/compiler/zig_test.vim
+++ b/runtime/compiler/zig_test.vim
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Zig Compiler (zig test)
" Upstream: https://github.com/ziglang/zig.vim
-" Last Change: 2024 Apr 05 by The Vim Project (removed :CompilerSet definition)
+" Last Change: 2025 Nov 16 by The Vim Project (set errorformat)
if exists('current_compiler')
finish
@@ -12,11 +12,9 @@ let current_compiler = 'zig_test'
let s:save_cpo = &cpo
set cpo&vim
-if has('patch-7.4.191')
- CompilerSet makeprg=zig\ test\ \%:S\ \$*
-else
- CompilerSet makeprg=zig\ test\ \"%\"\ \$*
-endif
+CompilerSet makeprg=zig\ test\ \%:S\ \$*
+" CompilerSet errorformat=%f:%l:%c: %t%*[^:]: %m, %f:%l:%c: %m, %f:%l: %m
+CompilerSet errorformat&
let &cpo = s:save_cpo
unlet s:save_cpo
diff --git a/runtime/defaults.vim b/runtime/defaults.vim
index 5c7100ed..9306af3f 100644
--- a/runtime/defaults.vim
+++ b/runtime/defaults.vim
@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: The Vim Project
-" Last Change: 2025 Sep 10
+" Last Change: 2025 Nov 28
" Former Maintainer: Bram Moolenaar
"
" This is loaded if no vimrc file was found.
@@ -136,7 +136,7 @@ if &t_Co > 2 || has("gui_running")
syntax on
" I like highlighting strings inside C comments.
- " Revert with ":unlet c_comment_strings".
+ " Revert with ":unlet g:c_comment_strings".
let c_comment_strings=1
endif
diff --git a/runtime/doc/Make_all.mak b/runtime/doc/Make_all.mak
index 938ee692..becb4ce4 100644
--- a/runtime/doc/Make_all.mak
+++ b/runtime/doc/Make_all.mak
@@ -339,6 +339,11 @@ CONVERTED = \
vimdiff-ru.UTF-8.1 \
vimtutor-ru.UTF-8.1 \
xxd-ru.UTF-8.1 \
+ vim-sv.UTF-8.1 \
+ evim-sv.UTF-8.1 \
+ vimdiff-sv.UTF-8.1 \
+ vimtutor-sv.UTF-8.1 \
+ xxd-sv.UTF-8.1 \
vim-tr.UTF-8.1 \
evim-tr.UTF-8.1 \
vimdiff-tr.UTF-8.1 \
diff --git a/runtime/doc/Make_mvc.mak b/runtime/doc/Make_mvc.mak
index 8dc09a35..a9fb3c58 100644
--- a/runtime/doc/Make_mvc.mak
+++ b/runtime/doc/Make_mvc.mak
@@ -449,6 +449,61 @@ xxd-ru.UTF-8.1 : xxd-ru.1
1>nul New-Item -Path . -Name $@ -ItemType file -Force
!ENDIF
+evim-sv.UTF-8.1 : evim-sv.1
+!IF DEFINED (ICONV)
+ $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+ $(PS) $(PSFLAGS) \
+ [IO.File]::ReadAllText(\"$?\", \
+ [Text.Encoding]::GetEncoding(28599)) ^| \
+ 1>nul New-Item -Path . -Name $@ -ItemType file -Force
+!ENDIF
+
+vim-sv.UTF-8.1 : vim-sv.1
+!IF DEFINED (ICONV)
+ $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+ $(PS) $(PSFLAGS) \
+ [IO.File]::ReadAllText(\"$?\", \
+ [Text.Encoding]::GetEncoding(28599)) ^| \
+ 1>nul New-Item -Path . -Name $@ -ItemType file -Force
+!ENDIF
+
+vimdiff-sv.UTF-8.1 : vimdiff-sv.1
+!IF DEFINED (ICONV)
+ $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+ $(PS) $(PSFLAGS) \
+ [IO.File]::ReadAllText(\"$?\", \
+ [Text.Encoding]::GetEncoding(28599)) ^| \
+ 1>nul New-Item -Path . -Name $@ -ItemType file -Force
+!ENDIF
+
+vimtutor-sv.UTF-8.1 : vimtutor-sv.1
+!IF DEFINED (ICONV)
+ $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+ $(PS) $(PSFLAGS) \
+ [IO.File]::ReadAllText(\"$?\", \
+ [Text.Encoding]::GetEncoding(28599)) ^| \
+ 1>nul New-Item -Path . -Name $@ -ItemType file -Force
+!ENDIF
+
+xxd-sv.UTF-8.1 : xxd-sv.1
+!IF DEFINED (ICONV)
+ $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+ $(PS) $(PSFLAGS) \
+ [IO.File]::ReadAllText(\"$?\", \
+ [Text.Encoding]::GetEncoding(28599)) ^| \
+ 1>nul New-Item -Path . -Name $@ -ItemType file -Force
+!ENDIF
+
evim-tr.UTF-8.1 : evim-tr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 01b2c3e8..47bf385c 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -35,19 +35,19 @@ doctags: doctags.c
$(CC) doctags.c -o doctags
vim.man: vim.1
- nroff -man $? | sed -e s/.//g > $@
+ nroff -c -man $? | sed -e s/.//g > $@
evim.man: evim.1
- nroff -man $? | sed -e s/.//g > $@
+ nroff -c -man $? | sed -e s/.//g > $@
vimdiff.man: vimdiff.1
- nroff -man $? | sed -e s/.//g > $@
+ nroff -c -man $? | sed -e s/.//g > $@
vimtutor.man: vimtutor.1
- nroff -man $? | sed -e s/.//g > $@
+ nroff -c -man $? | sed -e s/.//g > $@
xxd.man: xxd.1
- nroff -man $? | sed -e s/.//g > $@
+ nroff -c -man $? | sed -e s/.//g > $@
# Awk version of .txt to .html conversion.
html: noerrors tags $(HTMLS)
@@ -237,3 +237,18 @@ vimdiff-tr.UTF-8.1: vimdiff-tr.1
vimtutor-tr.UTF-8.1: vimtutor-tr.1
iconv -f latin5 -t UTF-8 $? >$@
+
+vim-sv.UTF-8.1: vim-sv.1
+ iconv -f latin1 -t UTF-8 $? >$@
+
+evim-sv.UTF-8.1: evim-sv.1
+ iconv -f latin1 -t UTF-8 $? >$@
+
+vimdiff-sv.UTF-8.1: vimdiff-sv.1
+ iconv -f latin1 -t UTF-8 $? >$@
+
+vimtutor-sv.UTF-8.1: vimtutor-sv.1
+ iconv -f latin1 -t UTF-8 $? >$@
+
+xxd-sv.UTF-8.1: xxd-sv.1
+ iconv -f latin1 -t UTF-8 $? >$@
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 72c9ed8e..d6caf6c5 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,7 +1,7 @@
-*arabic.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*arabic.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Nadim Shaikli
+ VIM REFERENCE MANUAL by Nadim Shaikli
Arabic Language support (options & mappings) for Vim *Arabic*
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 134d9147..eba6e435 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,7 +1,7 @@
-*autocmd.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*autocmd.txt* For Vim version 9.2. Last change: 2026 Feb 25
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Automatic commands *autocommand* *autocommands*
@@ -435,6 +435,7 @@ Name triggered by ~
|QuickFixCmdPre| before a quickfix command is run
|QuickFixCmdPost| after a quickfix command is run
+|SessionLoadPre| before loading a session file
|SessionLoadPost| after loading a session file
|SessionWritePost| after writing the session file using
@@ -874,7 +875,8 @@ FileChangedShell When Vim notices that the modification time of
to tell Vim what to do next.
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
- buffer that was changed, which is in "".
+ buffer that was changed, which is in
+ "".
NOTE: The commands must not change the current
buffer, jump to another buffer or delete a
buffer. *E246* *E811*
@@ -1181,6 +1183,9 @@ SafeStateAgain Like SafeState but after processing any
triggered often, don't do something that takes
time.
+ *SessionLoadPre*
+SessionLoadPre Before loading the session file created using
+ the |:mksession| command.
*SessionLoadPost*
SessionLoadPost After loading the session file created using
the |:mksession| command.
@@ -1324,9 +1329,9 @@ TermResponseAll After the response to |t_RV|, |t_RC|, |t_RS|,
"osc",
"version" (|t_RV|)
Note that this event may be triggered halfway
- executing another event, especially if file I/O,
- a shell command or anything else that takes time
- is involved.
+ executing another event, especially if file
+ I/O, a shell command or anything else that
+ takes time is involved.
*TextChanged*
TextChanged After a change was made to the text in the
current buffer in Normal mode. That is after
@@ -1455,8 +1460,9 @@ VimResume When the Vim instance is resumed after being
:autocmd VimResume * checktime
< *VimSuspend*
VimSuspend When the Vim instance is suspended. Only when
- CTRL-Z was typed inside Vim, or when the SIGTSTP
- signal was sent to Vim, but not for SIGSTOP.
+ CTRL-Z was typed inside Vim, or when the
+ SIGTSTP signal was sent to Vim, but not for
+ SIGSTOP.
*WinClosed*
WinClosed When closing a window, just before it is
removed from the window layout. The pattern
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index e231dedb..ffc2b04f 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,7 +1,7 @@
-*builtin.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*builtin.txt* For Vim version 9.2. Last change: 2026 Mar 17
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Builtin functions *builtin-functions*
@@ -23,9 +23,11 @@ Use CTRL-] on the function name to jump to the full explanation.
USAGE RESULT DESCRIPTION ~
-abs({expr}) Float or Number absolute value of {expr}
+abs({expr}) Float/Number
+ absolute value of {expr}
acos({expr}) Float arc cosine of {expr}
-add({object}, {item}) List/Blob append {item} to {object}
+add({object}, {item}) List/Blob
+ append {item} to {object}
and({expr}, {expr}) Number bitwise AND
append({lnum}, {text}) Number append {text} below line {lnum}
appendbufline({buf}, {lnum}, {text})
@@ -33,7 +35,8 @@ appendbufline({buf}, {lnum}, {text})
in buffer {buf}
argc([{winid}]) Number number of files in the argument list
argidx() Number current index in the argument list
-arglistid([{winnr} [, {tabnr}]]) Number argument list id
+arglistid([{winnr} [, {tabnr}]])
+ Number argument list id
argv({nr} [, {winid}]) String {nr} entry of the argument list
argv([-1, {winid}]) List the argument list
asin({expr}) Float arc sine of {expr}
@@ -43,7 +46,7 @@ assert_equal({exp}, {act} [, {msg}])
assert_equalfile({fname-one}, {fname-two} [, {msg}])
Number assert file contents are equal
assert_exception({error} [, {msg}])
- Number assert {error} is in v:exception
+ Number assert {error} is in |v:exception|
assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
Number assert {cmd} fails
assert_false({actual} [, {msg}])
@@ -81,8 +84,8 @@ bufexists({buf}) Number |TRUE| if buffer {buf} exists
buflisted({buf}) Number |TRUE| if buffer {buf} is listed
bufload({buf}) Number load buffer {buf} if not loaded yet
bufloaded({buf}) Number |TRUE| if buffer {buf} is loaded
-bufname([{buf}]) String Name of the buffer {buf}
-bufnr([{buf} [, {create}]]) Number Number of the buffer {buf}
+bufname([{buf}]) String name of the buffer {buf}
+bufnr([{buf} [, {create}]]) Number number of the buffer {buf}
bufwinid({buf}) Number window ID of buffer {buf}
bufwinnr({buf}) Number window number of buffer {buf}
byte2line({byte}) Number line number at byte count {byte}
@@ -103,6 +106,8 @@ ch_evalraw({handle}, {string} [, {options}])
ch_getbufnr({handle}, {what}) Number get buffer number for {handle}/{what}
ch_getjob({channel}) Job get the Job of {channel}
ch_info({handle}) String info about channel {handle}
+ch_listen({address} [, {options}])
+ Channel listen on {address}
ch_log({msg} [, {handle}]) none write {msg} in the channel log file
ch_logfile({fname} [, {mode}]) none start logging channel activity
ch_open({address} [, {options}])
@@ -121,7 +126,8 @@ ch_setoptions({handle}, {options})
ch_status({handle} [, {options}])
String status of channel {handle}
changenr() Number current change number
-char2nr({expr} [, {utf8}]) Number ASCII/UTF-8 value of first char in {expr}
+char2nr({expr} [, {utf8}]) Number ASCII/UTF-8 value of first char in
+ {expr}
charclass({string}) Number character class of {string}
charcol({expr} [, {winid}]) Number column number of cursor or mark
charidx({string}, {idx} [, {countcc} [, {utf16}]])
@@ -136,7 +142,6 @@ complete({startcol}, {matches}) none set Insert mode completion
complete_add({expr}) Number add completion match
complete_check() Number check for key typed during completion
complete_info([{what}]) Dict get current completion information
-complete_match([{lnum}, {col}]) List get completion column and trigger text
confirm({msg} [, {choices} [, {default} [, {type}]]])
Number number of choice picked by user
copy({expr}) any make a shallow copy of {expr}
@@ -181,10 +186,12 @@ expand({expr} [, {nosuf} [, {list}]])
expandcmd({string} [, {options}])
String expand {string} like with `:edit`
extend({expr1}, {expr2} [, {expr3}])
- List/Dict insert items of {expr2} into {expr1}
+ List/Dict
+ insert items of {expr2} into {expr1}
extendnew({expr1}, {expr2} [, {expr3}])
- List/Dict like |extend()| but creates a new
- List or Dictionary
+ List/Dict
+ like |extend()| but creates a new List
+ or Dictionary
feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer
filecopy({from}, {to}) Number |TRUE| if copying file {from} to {to}
worked
@@ -195,7 +202,8 @@ filter({expr1}, {expr2}) List/Dict/Blob/String
{expr2} is 0
finddir({name} [, {path} [, {count}]])
findfile({name} [, {path} [, {count}]])
- String/List find dir/file {name} in {path}
+ String/List
+ find dir/file {name} in {path}
flatten({list} [, {maxdepth}]) List flatten {list} up to {maxdepth} levels
flattennew({list} [, {maxdepth}])
List flatten a copy of {list}
@@ -217,7 +225,8 @@ funcref({name} [, {arglist}] [, {dict}])
Funcref reference to function {name}
function({name} [, {arglist}] [, {dict}])
Funcref named reference to function {name}
-garbagecollect([{atexit}]) none free memory, breaking cyclic references
+garbagecollect([{atexit}]) none free memory, breaking cyclic
+ references
get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
get({func}, {what}) any get property of funcref/partial {func}
@@ -230,7 +239,7 @@ getbufvar({buf}, {varname} [, {def}])
getcellpixels() List get character cell pixel size
getcellwidths() List get character cell width overrides
getchangelist([{buf}]) List list of change list items
-getchar([{expr} [, {opts}]]) Number or String
+getchar([{expr} [, {opts}]]) Number/String
get one character from the user
getcharmod() Number modifiers for the last typed character
getcharpos({expr}) List position of cursor, mark, etc.
@@ -246,7 +255,8 @@ getcmdprompt() String return the current command-line prompt
getcmdscreenpos() Number return cursor screen position in
command-line
getcmdtype() String return current command-line type
-getcmdwintype() String return current command-line window type
+getcmdwintype() String return current command-line window
+ type
getcompletion({pat}, {type} [, {filtered}])
List list of cmdline completion matches
getcompletiontype({pat}) String return the type of the command-line
@@ -264,7 +274,8 @@ getimstatus() Number |TRUE| if the IME status is active
getjumplist([{winnr} [, {tabnr}]])
List list of jump list items
getline({lnum}) String line {lnum} of current buffer
-getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
+getline({lnum}, {end}) List lines {lnum} to {end} of current
+ buffer
getloclist({nr}) List list of location list items
getloclist({nr}, {what}) Dict get specific location list properties
getmarklist([{buf}]) List list of global/local marks
@@ -276,7 +287,8 @@ getpos({expr}) List position of cursor, mark, etc.
getqflist() List list of quickfix items
getqflist({what}) Dict get specific quickfix list properties
getreg([{regname} [, 1 [, {list}]]])
- String or List contents of a register
+ String/List
+ contents of a register
getreginfo([{regname}]) Dict information about a register
getregion({pos1}, {pos2} [, {opts}])
List get the text from {pos1} to {pos2}
@@ -287,7 +299,8 @@ getscriptinfo([{opts}]) List list of sourced scripts
getstacktrace() List get current stack trace of Vim scripts
gettabinfo([{expr}]) List list of tab pages
gettabvar({nr}, {varname} [, {def}])
- any variable {varname} in tab {nr} or {def}
+ any variable {varname} in tab {nr} or
+ {def}
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr}
gettagstack([{nr}]) Dict get the tag stack of window {nr}
@@ -306,8 +319,8 @@ globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
has({feature} [, {check}]) Number |TRUE| if feature {feature} supported
has_key({dict}, {key}) Number |TRUE| if {dict} has entry {key}
haslocaldir([{winnr} [, {tabnr}]])
- Number |TRUE| if the window executed |:lcd|
- or |:tcd|
+ Number |TRUE| if the window executed `:lcd` or
+ `:tcd`
hasmapto({what} [, {mode} [, {abbr}]])
Number |TRUE| if mapping to {what} exists
histadd({history}, {item}) Number add an item to a history
@@ -333,9 +346,13 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]])
inputlist({textlist}) Number let the user pick from a choice list
inputrestore() Number restore typeahead
inputsave() Number save and clear typeahead
-inputsecret({prompt} [, {text}]) String like input() but hiding the text
-insert({object}, {item} [, {idx}]) List insert {item} in {object} [before {idx}]
-instanceof({object}, {class}) Number |TRUE| if {object} is an instance of {class}
+inputsecret({prompt} [, {text}])
+ String like input() but hiding the text
+insert({object}, {item} [, {idx}])
+ List insert {item} in {object}
+ [before {idx}]
+instanceof({object}, {class}) Number |TRUE| if {object} is an instance of
+ {class}
interrupt() none interrupt script execution
invert({expr}) Number bitwise invert
isabsolutepath({path}) Number |TRUE| if {path} is an absolute path
@@ -347,7 +364,8 @@ isnan({expr}) Number |TRUE| if {expr} is NaN
items({expr}) List key/index-value pairs in {expr}
job_getchannel({job}) Channel get the channel handle for {job}
job_info([{job}]) Dict get information about {job}
-job_setoptions({job}, {options}) none set options for {job}
+job_setoptions({job}, {options})
+ none set options for {job}
job_start({command} [, {options}])
Job start a job
job_status({job}) String get the status of {job}
@@ -359,9 +377,10 @@ json_decode({string}) any decode JSON
json_encode({expr}) String encode JSON
keys({dict}) List keys in {dict}
keytrans({string}) String translate internal keycodes to a form
- that can be used by |:map|
+ that can be used by `:map`
len({expr}) Number the length of {expr}
-libcall({lib}, {func}, {arg}) String call {func} in library {lib} with {arg}
+libcall({lib}, {func}, {arg}) String call {func} in library {lib} with
+ {arg}
libcallnr({lib}, {func}, {arg}) Number idem, but return a Number
line({expr} [, {winid}]) Number line nr of cursor, last line or mark
line2byte({lnum}) Number byte count of line {lnum}
@@ -380,7 +399,7 @@ luaeval({expr} [, {expr}]) any evaluate |Lua| expression
map({expr1}, {expr2}) List/Dict/Blob/String
change each item in {expr1} to {expr2}
maparg({name} [, {mode} [, {abbr} [, {dict}]]])
- String or Dict
+ String/Dict
rhs of mapping {name} in mode {mode}
mapcheck({name} [, {mode} [, {abbr}]])
String check for mappings matching {name}
@@ -395,7 +414,7 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
Number highlight {pattern} with {group}
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
Number highlight positions with {group}
-matcharg({nr}) List arguments of |:match|
+matcharg({nr}) List arguments of `:match`
matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict})
List all the {pat} matches in buffer {buf}
matchdelete({id} [, {win}]) Number delete match identified by {id}
@@ -406,7 +425,8 @@ matchfuzzy({list}, {str} [, {dict}])
matchfuzzypos({list}, {str} [, {dict}])
List fuzzy match {str} in {list}
matchlist({expr}, {pat} [, {start} [, {count}]])
- List match and submatches of {pat} in {expr}
+ List match and submatches of {pat} in
+ {expr}
matchstr({expr}, {pat} [, {start} [, {count}]])
String {count}'th match of {pat} in {expr}
matchstrlist({list}, {pat} [, {dict})
@@ -423,11 +443,13 @@ mzeval({expr}) any evaluate |MzScheme| expression
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
ngettext({single}, {plural}, {number}[, {domain}])
String translate text based on {number}
-nr2char({expr} [, {utf8}]) String single char with ASCII/UTF-8 value {expr}
+nr2char({expr} [, {utf8}]) String single char with ASCII/UTF-8 value
+ {expr}
or({expr}, {expr}) Number bitwise OR
pathshorten({expr} [, {len}]) String shorten directory names in a path
perleval({expr}) any evaluate |Perl| expression
-popup_atcursor({what}, {options}) Number create popup window near the cursor
+popup_atcursor({what}, {options})
+ Number create popup window near the cursor
popup_beval({what}, {options}) Number create popup window for 'ballooneval'
popup_clear() none close all popup windows
popup_close({id} [, {result}]) none close popup window {id}
@@ -447,7 +469,8 @@ popup_menu({what}, {options}) Number create a popup window used as a menu
popup_move({id}, {options}) none set position of popup window {id}
popup_notification({what}, {options})
Number create a notification popup window
-popup_setbuf({id}, {buf}) Bool set the buffer for the popup window {id}
+popup_setbuf({id}, {buf}) Bool set the buffer for the popup window
+ {id}
popup_setoptions({id}, {options})
none set options for popup window {id}
popup_settext({id}, {text}) none set the text of popup window {id}
@@ -457,10 +480,13 @@ preinserted() Number whether text is inserted after cursor
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
printf({fmt}, {expr1}...) String format text
prompt_getprompt({buf}) String get prompt text
-prompt_setcallback({buf}, {expr}) none set prompt callback function
-prompt_setinterrupt({buf}, {text}) none set prompt interrupt function
+prompt_setcallback({buf}, {expr})
+ none set prompt callback function
+prompt_setinterrupt({buf}, {text})
+ none set prompt interrupt function
prompt_setprompt({buf}, {text}) none set prompt text
-prop_add({lnum}, {col}, {props}) none add one text property
+prop_add({lnum}, {col}, {props})
+ none add one text property
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
none add multiple text properties
prop_clear({lnum} [, {lnum-end} [, {props}]])
@@ -494,6 +520,8 @@ readdirex({dir} [, {expr} [, {dict}]])
List file info in {dir} selected by {expr}
readfile({fname} [, {type} [, {max}]])
List get list of lines from file {fname}
+redraw_listener_add({opts}) Number add callbacks to listen for redraws
+redraw_listener_remove({id}) none remove a redraw listener
reduce({object}, {func} [, {initial}])
any reduce {object} using {func}
reg_executing() String get the executing register name
@@ -526,9 +554,10 @@ round({expr}) Float round off {expr}
rubyeval({expr}) any evaluate |Ruby| expression
screenattr({row}, {col}) Number attribute at screen position
screenchar({row}, {col}) Number character at screen position
-screenchars({row}, {col}) List List of characters at screen position
+screenchars({row}, {col}) List list of characters at screen position
screencol() Number current cursor column
-screenpos({winid}, {lnum}, {col}) Dict screen row and col of a text character
+screenpos({winid}, {lnum}, {col})
+ Dict screen row and col of a text character
screenrow() Number current cursor row
screenstring({row}, {col}) String characters at screen position
search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
@@ -569,7 +598,9 @@ setqflist({list} [, {action}]) Number modify quickfix list using {list}
setqflist({list}, {action}, {what})
Number modify specific quickfix list props
setreg({n}, {v} [, {opt}]) Number set register to value and type
-settabvar({nr}, {varname}, {val}) none set {varname} in tab page {nr} to {val}
+settabvar({nr}, {varname}, {val})
+ none set {varname} in tab page {nr} to
+ {val}
settabwinvar({tabnr}, {winnr}, {varname}, {val})
none set {varname} in window {winnr} in tab
page {tabnr} to {val}
@@ -599,7 +630,8 @@ sign_unplacelist({list}) List unplace a list of signs
simplify({filename}) String simplify filename as much as possible
sin({expr}) Float sine of {expr}
sinh({expr}) Float hyperbolic sine of {expr}
-slice({expr}, {start} [, {end}]) String, List or Blob
+slice({expr}, {start} [, {end}])
+ String/List/Blob
slice of a String, List or Blob
sort({list} [, {how} [, {dict}]])
List sort {list}, compare with {how}
@@ -629,7 +661,8 @@ strcharpart({str}, {start} [, {len} [, {skipcc}]])
String {len} characters of {str} at
character {start}
strchars({expr} [, {skipcc}]) Number character count of the String {expr}
-strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
+strdisplaywidth({expr} [, {col}])
+ Number display length of the String {expr}
strftime({format} [, {time}]) String format time with a specified format
strgetchar({str}, {index}) Number get char {index} from {str}
stridx({haystack}, {needle} [, {start}])
@@ -637,20 +670,24 @@ stridx({haystack}, {needle} [, {start}])
string({expr}) String String representation of {expr} value
strlen({expr}) Number length of the String {expr}
strpart({str}, {start} [, {len} [, {chars}]])
- String {len} bytes/chars of {str} at
- byte {start}
+ String {len} bytes/chars of {str} at byte
+ {start}
strptime({format}, {timestring})
- Number Convert {timestring} to unix timestamp
+ Number convert {timestring} to unix timestamp
strridx({haystack}, {needle} [, {start}])
Number last index of {needle} in {haystack}
strtrans({expr}) String translate string to make it printable
strutf16len({string} [, {countcc}])
- Number number of UTF-16 code units in {string}
-strwidth({expr}) Number display cell length of the String {expr}
-submatch({nr} [, {list}]) String or List
- specific match in ":s" or substitute()
+ Number number of UTF-16 code units in
+ {string}
+strwidth({expr}) Number display cell length of the String
+ {expr}
+submatch({nr} [, {list}]) String/List
+ specific match in `:substitute` or
+ substitute()
substitute({expr}, {pat}, {sub}, {flags})
- String all {pat} in {expr} replaced with {sub}
+ String all {pat} in {expr} replaced with
+ {sub}
swapfilelist() List swap files found in 'directory'
swapinfo({fname}) Dict information about swap file {fname}
swapname({buf}) String swap file of buffer {buf}
@@ -659,12 +696,14 @@ synIDattr({synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
synIDtrans({synID}) Number translated syntax ID of {synID}
synconcealed({lnum}, {col}) List info about concealing
-synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col}
+synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and
+ {col}
system({expr} [, {input}]) String output of shell command/filter {expr}
systemlist({expr} [, {input}]) List output of shell command/filter {expr}
tabpagebuflist([{arg}]) List list of buffer numbers in tab page
tabpagenr([{arg}]) Number number of current or last tab page
-tabpagewinnr({tabarg} [, {arg}]) Number number of current window in tab page
+tabpagewinnr({tabarg} [, {arg}])
+ Number number of current window in tab page
tagfiles() List tags files used
taglist({expr} [, {filename}]) List list of tags matching {expr}
tan({expr}) Float tangent of {expr}
@@ -694,7 +733,8 @@ term_setansicolors({buf}, {colors})
none set ANSI palette in GUI color mode
term_setapi({buf}, {expr}) none set |terminal-api| function name prefix
term_setkill({buf}, {how}) none set signal to stop job in terminal
-term_setrestore({buf}, {command}) none set command to restore terminal
+term_setrestore({buf}, {command})
+ none set command to restore terminal
term_setsize({buf}, {rows}, {cols})
none set the size of a terminal
term_start({cmd} [, {options}]) Number open a terminal window and run a job
@@ -734,8 +774,10 @@ timer_start({time}, {callback} [, {options}])
Number create a timer
timer_stop({timer}) none stop a timer
timer_stopall() none stop all timers
-tolower({expr}) String the String {expr} switched to lowercase
-toupper({expr}) String the String {expr} switched to uppercase
+tolower({expr}) String the String {expr} switched to
+ lowercase
+toupper({expr}) String the String {expr} switched to
+ uppercase
tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr}
trim({text} [, {mask} [, {dir}]])
@@ -754,7 +796,7 @@ utf16idx({string}, {idx} [, {countcc} [, {charidx}]])
Number UTF-16 index of byte {idx} in {string}
values({dict}) List values in {dict}
virtcol({expr} [, {list} [, {winid}])
- Number or List
+ Number/List
screen column of cursor or mark
virtcol2col({winid}, {lnum}, {col})
Number byte index of a character on screen
@@ -781,7 +823,8 @@ winheight({nr}) Number height of window {nr}
winlayout([{tabnr}]) List layout of windows in tab {tabnr}
winline() Number window line of the cursor
winnr([{expr}]) Number number of current window
-winrestcmd() String returns command to restore window sizes
+winrestcmd() String returns command to restore window
+ sizes
winrestview({dict}) none restore view of current window
winsaveview() Dict save view of current window
winwidth({nr}) Number width of window {nr}
@@ -909,7 +952,7 @@ appendbufline({buf}, {lnum}, {text}) *appendbufline()*
for an invalid {lnum}, since {lnum} isn't actually used.
Can also be used as a |method| after a List, the base is
- passed as the second argument: >
+ passed as the third argument: >
mylist->appendbufline(buf, lnum)
<
Return type: |Number|
@@ -1348,6 +1391,9 @@ blob2str({blob} [, {options}]) *blob2str()*
Can also be used as a |method|: >
GetBlob()->blob2str()
<
+ If `iconv` is not available and the encoding cannot be converted
+ using built-in conversion rules, an error will be reported.
+
Return type: list
@@ -2072,51 +2118,6 @@ complete_info([{what}]) *complete_info()*
Return type: dict
-complete_match([{lnum}, {col}]) *complete_match()*
- Searches backward from the given position and returns a List
- of matches according to the 'isexpand' option. When no
- arguments are provided, uses the current cursor position.
-
- Each match is represented as a List containing
- [startcol, trigger_text] where:
- - startcol: column position where completion should start,
- or -1 if no trigger position is found. For multi-character
- triggers, returns the column of the first character.
- - trigger_text: the matching trigger string from 'isexpand',
- or empty string if no match was found or when using the
- default 'iskeyword' pattern.
-
- When 'isexpand' is empty, uses the 'iskeyword' pattern "\k\+$"
- to find the start of the current keyword.
-
- Examples: >
- set isexpand=.,->,/,/*,abc
- func CustomComplete()
- let res = complete_match()
- if res->len() == 0 | return | endif
- let [col, trigger] = res[0]
- let items = []
- if trigger == '/*'
- let items = ['/** */']
- elseif trigger == '/'
- let items = ['/*! */', '// TODO:', '// fixme:']
- elseif trigger == '.'
- let items = ['length()']
- elseif trigger =~ '^\->'
- let items = ['map()', 'reduce()']
- elseif trigger =~ '^\abc'
- let items = ['def', 'ghk']
- endif
- if items->len() > 0
- let startcol = trigger =~ '^/' ? col : col + len(trigger)
- call complete(startcol, items)
- endif
- endfunc
- inoremap call CustomComplete()
-<
- Return type: list>
-
-
confirm({msg} [, {choices} [, {default} [, {type}]]]) *confirm()*
confirm() offers the user a dialog, from which a choice can be
made. It returns the number of the choice. For the first
@@ -2757,13 +2758,18 @@ executable({expr}) *executable()*
then the name is also tried without adding an extension.
On MS-Windows it only checks if the file exists and is not a
directory, not if it's really executable.
+
On MS-Windows an executable in the same directory as the Vim
executable is always found. Since this directory is added to
$PATH it should also work to execute it |win32-PATH|.
- *NoDefaultCurrentDirectoryInExePath*
- On MS-Windows an executable in Vim's current working directory
- is also normally found, but this can be disabled by setting
- the $NoDefaultCurrentDirectoryInExePath environment variable.
+ *$NoDefaultCurrentDirectoryInExePath*
+ On MS-Windows when using cmd.exe as 'shell' an executable in
+ Vim's current working directory is also normally found, which
+ can be disabled by setting the
+ `$NoDefaultCurrentDirectoryInExePath` environment variable.
+ This variable is always set by Vim when executing external
+ commands (e.g., via |:!|, |:make|, or |system()|) for security
+ reasons.
The result is a Number:
1 exists
@@ -2933,7 +2939,7 @@ exists({expr}) *exists()*
Can also be used as a |method|: >
Varname()->exists()
<
- Return type: |String|
+ Return type: |Number|
exists_compiled({expr}) *exists_compiled()*
@@ -2950,7 +2956,7 @@ exists_compiled({expr}) *exists_compiled()*
Can only be used in a |:def| function. *E1233*
This does not work to check for arguments or local variables.
- Return type: |String|
+ Return type: |Number|
exp({expr}) *exp()*
@@ -4726,7 +4732,7 @@ getloclist({nr} [, {what}]) *getloclist()*
:echo getloclist(3, {'all': 0})
:echo getloclist(5, {'filewinid': 0})
<
- Return type: list> or list
+ Return type: list> or dict
getmarklist([{buf}]) *getmarklist()*
@@ -4878,6 +4884,11 @@ getpos({expr}) *getpos()*
within the line. To get the character position in the line,
use |getcharpos()|.
+ The visual marks |'<| and |'>| refer to the beginning and end
+ of the visual selection relative to the buffer. Note that
+ this differs from |setpos()|, where they are relative to the
+ cursor position.
+
Note that for '< and '> Visual mode matters: when it is "V"
(visual line mode) the column of '< is zero and the column of
'> is a large number equal to |v:maxcol|.
@@ -5002,7 +5013,7 @@ getqflist([{what}]) *getqflist()*
:echo getqflist({'nr': 2, 'title': 1})
:echo getqflist({'lines' : ["F1:10:L10"]})
<
- Return type: list> or list
+ Return type: list> or dict
getreg([{regname} [, 1 [, {list}]]]) *getreg()*
@@ -5389,9 +5400,13 @@ getwininfo([{winid}]) *getwininfo()*
{only with the +quickfix feature}
quickfix 1 if quickfix or location list window
{only with the +quickfix feature}
+ status_height status lines height (0 or 1)
+ tabnr tab page number
terminal 1 if a terminal window
{only with the +terminal feature}
- tabnr tab page number
+ textoff number of columns occupied by any
+ 'foldcolumn', 'signcolumn' and line
+ number in front of the text
topline first displayed buffer line
variables a reference to the dictionary with
window-local variables
@@ -5400,9 +5415,6 @@ getwininfo([{winid}]) *getwininfo()*
otherwise
wincol leftmost screen column of the window;
"col" from |win_screenpos()|
- textoff number of columns occupied by any
- 'foldcolumn', 'signcolumn' and line
- number in front of the text
winid |window-ID|
winnr window number
winrow topmost screen line of the window;
@@ -6819,9 +6831,10 @@ listener_add({callback} [, {buf} [, {unbuffered}]]) *listener_add()*
The entries are in the order the changes were made, thus the
most recent change is at the end.
- Because of the third trigger reason for triggering a callback
- listed above, the line numbers passed to the callback are not
- guaranteed to be valid. If this is a problem then make
+ Because of the third reason for triggering a callback listed
+ above, the line numbers passed to the callback are not
+ guaranteed to be valid. In particular, the end value can be
+ greater than line('$') + 1. If this is a problem then make
{unbuffered} |TRUE|.
When {unbuffered} is |TRUE| the {callback} is invoked for every
@@ -7971,8 +7984,8 @@ nr2char({expr} [, {utf8}]) *nr2char()*
value {expr}. Examples: >
nr2char(64) returns "@"
nr2char(32) returns " "
-< When {utf8} is omitted or zero, the current 'encoding' is used.
- Example for "utf-8": >
+< When {utf8} is omitted or zero, the current 'encoding' is
+ used. Example for "utf-8": >
nr2char(300) returns I with bow character
< When {utf8} is TRUE, always return UTF-8 characters.
Note that a NUL character in the file is specified with
@@ -8375,24 +8388,24 @@ printf({fmt}, {expr1} ...) *printf()*
*E1502*
You can re-use a [field-width] (or [precision]) argument: >
- echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
+ echo printf("%1$d at width %2$d is: %1$0*2$d", 1, 2)
< 1 at width 2 is: 01
However, you can't use it as a different type: >
- echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
+ echo printf("%1$d at width %2$ld is: %1$0*2$d", 1, 2)
< E1502: Positional argument 2 used as field width reused as
different type: long int/int
*E1503*
When a positional argument is used, but not the correct number
or arguments is given, an error is raised: >
- echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
+ echo printf("%1$d at width %2$d is: %1$0*2$.*3$d", 1, 2)
< E1503: Positional argument 3 out of bounds: %1$d at width
- %2$d is: %01$*2$.*3$d
+ %2$d is: %1$0*2$.*3$d
Only the first error is reported: >
- echo printf("%01$*2$.*3$d %4$d", 1, 2)
-< E1503: Positional argument 3 out of bounds: %01$*2$.*3$d
+ echo printf("%1$0*2$.*3$d %4$d", 1, 2)
+< E1503: Positional argument 3 out of bounds: %1$0*2$.*3$d
%4$d
*E1504*
@@ -8824,6 +8837,48 @@ readfile({fname} [, {type} [, {max}]]) *readfile()*
Return type: list or list
+redraw_listener_add({opts}) *redraw_listener_add()*
+ Add a listener that holds callback functions that will be
+ called at specific times in the redraw cycle. {opts} is a
+ dictionary that contain the callback functions to be defined.
+ At least one callback must be specified. *E1571*
+ Returns a unique ID that can be passed to
+ |redraw_listener_remove()|.
+
+ {opts} may have the following entries:
+
+ on_start Called first on each screen redraw. Takes no
+ arguments and returns nothing.
+ on_end Called at the end of each screen redraw.
+ Takes no arguments and returns nothing.
+
+ A good use case for this function is with the |listener_add()|
+ callback with unbuffered set to TRUE. This allows you to
+ modify the state on buffer changes, and finally render that
+ state just before the next redraw, only if it has changed.
+ Attempting to render or redraw for every single buffer change
+ would be very inefficient.
+
+ You may not call redraw_listener_add() during any of the
+ callbacks defined in {opts}. *E1570*
+
+ Can also be used as a |method|: >
+ GetOpts()->redraw_listener_add()
+<
+ Return type: |Number|
+
+
+redraw_listener_remove({id}) *redraw_listener_remove()*
+ Remove a redraw listener previously added with
+ |redraw_listener_add()|. Returns FALSE when {id} could not be
+ found, TRUE when {id} was removed.
+
+ Can also be used as a |method|: >
+ GetRedrawListenerId()->redraw_listener_remove()
+<
+ Return type: |Number|
+
+
reduce({object}, {func} [, {initial}]) *reduce()* *E998*
{func} is called for every item in {object}, which can be a
|String|, |List|, |Tuple| or a |Blob|. {func} is called with
@@ -10107,9 +10162,14 @@ setpos({expr}, {list}) *setpos()*
preferred column is not set. When it is present and setting a
mark position it is not used.
- Note that for '< and '> changing the line number may result in
- the marks to be effectively be swapped, so that '< is always
- before '>.
+ Note that for |'<| and |'>| changing the line number may
+ result in the marks to be effectively swapped, so that |'<| is
+ always before |'>|.
+
+ The visual marks |'<| and |'>| refer to the beginning and end
+ of the visual selection relative to the cursor position.
+ Note that this differs from |getpos()|, where they are
+ relative to the buffer.
Returns 0 when the position could be set, -1 otherwise.
An error message is given if {expr} is invalid.
@@ -11578,7 +11638,7 @@ synIDtrans({synID}) *synIDtrans()*
synconcealed({lnum}, {col}) *synconcealed()*
- The result is a |List| with currently three items:
+ The result is a |List| with three items:
1. The first item in the list is 0 if the character at the
position {lnum} and {col} is not part of a concealable
region, 1 if it is. {lnum} is used like with |getline()|.
@@ -11653,7 +11713,11 @@ system({expr} [, {input}]) *system()* *E677*
When prepended by |:silent| the terminal will not be set to
cooked mode. This is meant to be used for commands that do
not need the user to type. It avoids stray characters showing
- up on the screen which require |CTRL-L| to remove. >
+ up on the screen which require |CTRL-L| to remove.
+ When calling system() from a 'statusline' expression, an
+ |autocommand| or a |timer| callback, you should use |:silent|
+ to avoid terminal responses (e.g. from cursor style queries)
+ being echoed on the screen. >
:silent let f = system('ls *.vim')
<
Note: Use |shellescape()| or |::S| with |expand()| or
@@ -11711,6 +11775,11 @@ systemlist({expr} [, {input}]) *systemlist()*
<
Returns an empty string on error.
+ Like |system()|, prepend |:silent| when the command does not
+ need user interaction and is called from a 'statusline'
+ expression, an |autocommand| or a |timer| callback. See
+ |system()| for details.
+
Can also be used as a |method|: >
:echo GetCmd()->systemlist()
<
@@ -12554,8 +12623,7 @@ win_findbuf({bufnr}) *win_findbuf()*
Can also be used as a |method|: >
GetBufnr()->win_findbuf()
<
- Return type: list or list
-
+ Return type: list
win_getid([{win} [, {tab}]]) *win_getid()*
Get the |window-ID| for the specified window.
@@ -12601,7 +12669,8 @@ win_gettype([{nr}]) *win_gettype()*
win_gotoid({expr}) *win_gotoid()*
Go to window with ID {expr}. This may also change the current
tabpage.
- Return TRUE if successful, FALSE if the window cannot be found.
+ Return TRUE if successful, FALSE if the window cannot be
+ found.
Can also be used as a |method|: >
GetWinid()->win_gotoid()
@@ -13046,6 +13115,7 @@ acl Compiled with |ACL| support.
all_builtin_terms Compiled with all builtin terminals enabled. (always
true)
amiga Amiga version of Vim.
+android Android version of Vim. *android*
arabic Compiled with Arabic support |Arabic|.
arp Compiled with ARP support (Amiga).
autocmd Compiled with autocommand support. (always true)
@@ -13216,6 +13286,7 @@ termguicolors Compiled with true color in terminal support.
terminal Compiled with |terminal| support.
terminfo Compiled with terminfo instead of termcap.
termresponse Compiled with support for |t_RV| and |v:termresponse|.
+termux Termux version of Vim. *termux*
textobjects Compiled with support for |text-objects|.
textprop Compiled with support for |text-properties|.
tgetent Compiled with tgetent support, able to use a termcap
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 878d3885..0b1b4c3c 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,7 +1,7 @@
-*change.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*change.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
This file describes commands that delete or change text. In this context,
@@ -1094,7 +1094,8 @@ inside of strings can change! Also see 'softtabstop' option. >
*:y* *:yank* *E850*
:[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the
"* or "+ registers is possible only when the
- |+clipboard| feature is included.
+ |+clipboard| or |+clipboard_provider| features are
+ included.
:[range]y[ank] [x] {count}
Yank {count} lines, starting with last line number
@@ -1776,7 +1777,9 @@ l Long lines are not broken in insert mode: When a line was longer than
automatically format it.
*fo-m*
m Also break at a multibyte character above 255. This is useful for
- Asian text where every character is a word on its own.
+ Asian text where every character is a word on its own. Note that
+ line breaks may also be added after punctuation characters such as
+ colons to match the CJK linebreaking rules.
*fo-M*
M When joining lines, don't insert a space before or after a multibyte
character. Overrules the 'B' flag.
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 29654834..7ad10fa0 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,7 +1,7 @@
-*channel.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*channel.txt* For Vim version 9.2. Last change: 2026 Mar 13
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Inter-process communication *channel*
@@ -26,6 +26,7 @@ The Netbeans interface also uses a channel. |netbeans|
13. Controlling a job |job-control|
14. Using a prompt buffer |prompt-buffer|
15. Language Server Protocol |language-server-protocol|
+16. Debug Adapter Protocol |debug-adapter-protocol|
*E1277*
{only when compiled with the |+channel| feature for channel stuff}
@@ -56,6 +57,7 @@ NL every message ends in a NL (newline) character
JSON JSON encoding |json_encode()|
JS JavaScript style JSON-like encoding |js_encode()|
LSP Language Server Protocol encoding |language-server-protocol|
+DAP Debug Adapter Protocol encoding |debug-adapter-protocol|
Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style
@@ -112,6 +114,32 @@ Vim to write lines in log file: >
call ch_logfile('channellog', 'w')
See |ch_logfile()|.
+You can also make Vim act as a server using |ch_listen()|. This does not
+require an external server program.
+
+ *channel-listen-demo*
+Start Vim and create a listening channel: >
+ func OnAccept(channel, clientaddr)
+ " Log the connection
+ echomsg "Accepted connection from " .. a:clientaddr
+
+ " Get current time and send it to the client
+ let current_time = strftime("%Y-%m-%d %H:%M:%S")
+ call ch_sendraw(a:channel, "Vim Server Time: " .. current_time .. "\n")
+
+ " Optional: close immediately if you only want to provide the time
+ call ch_close(a:channel)
+ endfunc
+
+ " Start listening on port 8765
+ let server = ch_listen('localhost:8765', {"callback": "OnAccept"})
+
+From another Vim instance (or any program) you can connect to it: >
+ let channel = ch_open('localhost:8765')
+
+When done, close the server channel: >
+ call ch_close(server)
+
==============================================================================
3. Opening a channel *channel-open*
@@ -130,6 +158,11 @@ a Unix-domain socket path prefixed by "unix:". E.g. >
[2001:db8::1]:8765 " IPv6 + port
unix:/tmp/my-socket " Unix-domain socket path
+When a domain name resolves to multiple addresses (e.g., both IPv6 and IPv4),
+Vim tries each address in order. If a connection is slow or unreachable, it
+quickly falls back to the next address. This helps when IPv6 or IPv4 is
+unreachable on the network.
+
{options} is a dictionary with optional entries: *channel-open-options*
"mode" can be: *channel-mode*
@@ -138,6 +171,7 @@ a Unix-domain socket path prefixed by "unix:". E.g. >
"nl" - Use messages that end in a NL character
"raw" - Use raw messages
"lsp" - Use language server protocol encoding
+ "dap" - Use debug adapter protocol encoding
*channel-callback* *E921*
"callback" A function that is called when a message is received that is
not handled otherwise (e.g. a JSON message with ID zero). It
@@ -148,8 +182,9 @@ a Unix-domain socket path prefixed by "unix:". E.g. >
endfunc
let channel = ch_open("localhost:8765", {"callback": "Handle"})
<
- When "mode" is "json" or "js" or "lsp" the "msg" argument is
- the body of the received message, converted to Vim types.
+ When "mode" is any of "json", "js", "lsp" or "dap" the "msg"
+ argument is the body of the received message, converted to Vim
+ types.
When "mode" is "nl" the "msg" argument is one message,
excluding the NL.
When "mode" is "raw" the "msg" argument is the whole message
@@ -532,7 +567,8 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
according to the type of channel. The function cannot be used
with a raw channel. See |channel-use|.
{handle} can be a Channel or a Job that has a Channel.
- When using the "lsp" channel mode, {expr} must be a |Dict|.
+ When using the "lsp" or "dap" channel mode, {expr} must be a
+ |Dict|.
*E917*
{options} must be a Dictionary. It must not have a "callback"
entry. It can have a "timeout" entry to specify the timeout
@@ -540,8 +576,8 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
ch_evalexpr() waits for a response and returns the decoded
expression. When there is an error or timeout it returns an
- empty |String| or, when using the "lsp" channel mode, returns an
- empty |Dict|.
+ empty |String| or, when using the "lsp" or "dap" channel mode,
+ returns an empty |Dict|.
Note that while waiting for the response, Vim handles other
messages. You need to make sure this doesn't cause trouble.
@@ -622,7 +658,7 @@ ch_info({handle}) *ch_info()*
"err_io" "out", "null", "pipe", "file" or "buffer"
"err_timeout" timeout in msec
"in_status" "open" or "closed"
- "in_mode" "NL", "RAW", "JSON", "JS" or "LSP"
+ "in_mode" "NL", "RAW", "JSON", "JS" or "LSP" or "DAP"
"in_io" "null", "pipe", "file" or "buffer"
"in_timeout" timeout in msec
@@ -631,6 +667,33 @@ ch_info({handle}) *ch_info()*
<
Return type: dict
+ch_listen({address} [, {options}]) *E1573* *E1574* *ch_listen()*
+ Listen on {address} for incoming channel connections.
+ This creates a server-side channel, unlike |ch_open()|
+ which connects to an existing server.
+ Returns a Channel. Use |ch_status()| to check for failure.
+
+ {address} is a String, see |channel-address| for the possible
+ accepted forms. Note: IPv6 is not yet supported.
+
+ If {options} is given it must be a |Dictionary|.
+ See |channel-open-options|.
+ The "callback" in {options} is invoked when a new
+ connection is accepted. It receives two arguments: the
+ new Channel and the client address as a String (e.g.
+ "127.0.0.1:12345").
+
+ Use |ch_open()| to connect to an existing server instead.
+
+ See |channel-listen-demo| for an example.
+
+ Can also be used as a |method|: >
+ GetAddress()->ch_listen()
+<
+ {only available when compiled with the |+channel| feature}
+
+ Return type: channel
+
ch_log({msg} [, {handle}]) *ch_log()*
Write String {msg} in the channel log file, if it was opened
with |ch_logfile()|.
@@ -685,6 +748,9 @@ ch_open({address} [, {options}]) *ch_open()*
If {options} is given it must be a |Dictionary|.
See |channel-open-options|.
+ Use |ch_listen()| to listen for incoming connections
+ instead.
+
Can also be used as a |method|: >
GetAddress()->ch_open()
<
@@ -728,14 +794,15 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
with a raw channel.
See |channel-use|. *E912*
{handle} can be a Channel or a Job that has a Channel.
- When using the "lsp" channel mode, {expr} must be a |Dict|.
+ When using the "lsp" or "dap" channel mode, {expr} must be a
+ |Dict|.
- If the channel mode is "lsp", then returns a Dict. Otherwise
- returns an empty String. If the "callback" item is present in
- {options}, then the returned Dict contains the ID of the
- request message. The ID can be used to send a cancellation
- request to the LSP server (if needed). Returns an empty Dict
- on error.
+ If the channel mode is "lsp" or "dap", then returns a Dict.
+ Otherwise returns an empty String. If the "callback" item is
+ present in {options}, then the returned Dict contains the ID
+ of the request message. The ID can be used to send a
+ cancellation request to the LSP server or debug adapter (if
+ needed). Returns an empty Dict on error.
If a response message is not expected for {expr}, then don't
specify the "callback" item in {options}.
@@ -1583,8 +1650,8 @@ A LSP request message has the following format (expressed as a Vim Dict). The
"params":
}
-A LSP response message has the following format (expressed as a Vim Dict). The
-"result" and "error" fields are optional: >
+A LSP response message has the following format (expressed as a Vim Dict).
+The "result" and "error" fields are optional: >
{
"jsonrpc": "2.0",
@@ -1602,5 +1669,33 @@ The "params" field is optional: >
"params":
}
-<
+==============================================================================
+16. Debug Adapter Protocol *debug-adapter-protocol*
+
+The debug adapter protocol is very similar to the language server protocol,
+with the main difference being that it does not use the JSON-RPC format. The
+specification can be found here:
+
+ https://microsoft.github.io/debug-adapter-protocol/specification
+
+The protocol uses the same header format as the LSP protocol.
+
+To encode and send a DAP request/notification message in a Vim |Dict| into a
+JSON message and to receive and decode a DAP JSON response/notification
+message into a Vim |Dict|, connect to the debug adapter with the
+|channel-mode| set to "dap".
+
+For messages received on a channel with |channel-mode| set to "dap", Vim will
+process the HTTP header and decode the JSON payload into a Vim |Dict| type.
+When sending messages on a channel using the |ch_evalexpr()| or
+|ch_sendexpr()| functions, Vim will add the HTTP header and encode the Vim
+expression into JSON.
+
+Vim will automatically add the "seq" field to the JSON DAP message, and manage
+the "request_seq" field as well for responses. However it will not add the
+"type" field, it should be manually specified in the |Dict|.
+
+Otherwise the behaviour is the same as how Vim handles the "lsp" channel mode
+|language-server-protocol|.
+
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index ede9a5ec..4a0729d0 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,7 +1,7 @@
-*cmdline.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*cmdline.txt* For Vim version 9.2. Last change: 2026 Mar 17
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*Cmdline-mode* *Command-line-mode*
@@ -1101,7 +1101,7 @@ Note: these are typed literally, they are not special keys!
It differs from in that is replaced with
the script line number in any situation. *E961*
*:* **
- is replaced with the {clinetid} of the last received
+ is replaced with the {clientid} of the last received
message in |server2client()|
*filename-modifiers*
@@ -1381,10 +1381,10 @@ Example: >
:au CmdwinLeave : let &cpt = b:cpt_save
This sets 'complete' to use completion in the current window for |i_CTRL-N|.
Another example: >
- :au CmdwinEnter [/\?] startinsert
+ :au CmdwinEnter [\/\?] startinsert
This will make Vim start in Insert mode in the command-line window.
-Note: The "?" needs to be escaped, as this is a |file-pattern|. See also
-|cmdline-autocompletion|.
+Note: The "/" and "?" needs to be escaped, as this is a |file-pattern|.
+See also |cmdline-autocompletion|.
*cmdwin-char*
The character used for the pattern indicates the type of command-line:
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index 4e75c174..17280db7 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -1,7 +1,7 @@
-*debug.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*debug.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Debugging Vim *debug-vim*
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index 164dfbf9..f14527d9 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,7 +1,7 @@
-*debugger.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*debugger.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Gordon Prieur
+ VIM REFERENCE MANUAL by Gordon Prieur
Debugger Support Features *debugger-support*
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 922da727..c2c9cb6e 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,7 +1,7 @@
-*develop.txt* For Vim version 9.1. Last change: 2025 Oct 09
+*develop.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Development of Vim. *development*
@@ -153,7 +153,7 @@ VIM IS... NOT *design-not*
everything but the kitchen sink, but some people say that you can clean one
with it. ;-)"
To use Vim with gdb see |terminal-debugger|. Other (older) tools can be
- found at http://www.agide.org (link seems dead) and http://clewn.sf.net.
+ found at http://clewn.sf.net.
- Vim is not a fancy GUI editor that tries to look nice at the cost of
being less consistent over all platforms. But functional GUI features are
welcomed.
@@ -411,12 +411,12 @@ For any non-trivial change, please always create a pull request on github,
since this triggers the test suite.
A PR should ideally contain a single commit for a single logical change.
-However, you can include several commits if you want to group multiple logical,
-atomic changes in one PR. This can also make longer PRs easier to review. Be
-sure to describe the reasoning for your changes in each commit message, as
-this greatly helps with the review process. In cases where each commit
-handles different logical changes, they will also be applied as separate
-patches in Vim's repository.
+However, you can include several commits if you want to group multiple
+logical, atomic changes in one PR. This can also make longer PRs easier to
+review. Be sure to describe the reasoning for your changes in each commit
+message, as this greatly helps with the review process. In cases where each
+commit handles different logical changes, they will also be applied as
+separate patches in Vim's repository.
*style-clang-format*
sound.c and sign.c can be (semi-) automatically formatted using the
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 419373a8..c3383703 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,7 +1,7 @@
-*diff.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*diff.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*diff* *vimdiff* *gvimdiff* *diff-mode*
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index ac3ae71b..36b5bded 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,7 +1,7 @@
-*digraph.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*digraph.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Digraphs *digraph* *digraphs* *Digraphs*
diff --git a/runtime/doc/doctags.c b/runtime/doc/doctags.c
index 8822dcb9..8820aa56 100644
--- a/runtime/doc/doctags.c
+++ b/runtime/doc/doctags.c
@@ -9,7 +9,6 @@
#include
#include
-#include
#include
#define LINELEN 200
@@ -63,8 +62,8 @@ main(int argc, char **argv)
// followed by a white character or end-of-line.
if (p == p2
&& (p1 == line || p1[-1] == ' ' || p1[-1] == '\t')
- && (strchr(" \t\n\r", p[1]) != NULL
- || p[1] == '\0'))
+ && (strchr(" \t\n\r", p[1]) != NULL
+ || p[1] == '\0'))
{
*p2 = '\0';
++p1;
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 6141dcec..c1fadf71 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,7 +1,7 @@
-*editing.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*editing.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Editing files *edit-files*
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9140ff23..a73055b0 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,7 +1,7 @@
-*eval.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*eval.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Expression evaluation *expression* *expr* *E15* *eval*
@@ -38,6 +38,7 @@ a remark is given.
12. The sandbox |eval-sandbox|
13. Textlock |textlock|
14. Vim script library |vim-script-library|
+15. Clipboard providers |clipboard-providers|
Testing support is documented in |testing.txt|.
Profiling is documented at |profiling|.
@@ -466,7 +467,13 @@ Changing the order of items in a list: >
:call reverse(list) " reverse the order of items
:call uniq(sort(list)) " sort and remove duplicates
-
+In a Vim9 script or a def method, a new item can be appended to a List by
+using the list length as the index: >
+ vim9script
+ var l: list
+ l[0] = 'a'
+ l[1] = 'b'
+<
For loop ~
The |:for| loop executes commands for each item in a List, Tuple, String or
@@ -1348,7 +1355,13 @@ To compare Funcrefs to see if they refer to the same function, ignoring bound
Dictionary and arguments, use |get()| to get the function name: >
if get(Part1, 'name') == get(Part2, 'name')
" Part1 and Part2 refer to the same function
-< *E1037*
+<
+ *E1437*
+An |Object| can only be compared with another |Object|, using only the
+"equal", "not equal", "is" and "isnot" operators |expr4|. An |enum| is also a
+type of |Object|, and the same rules apply.
+
+ *E1037*
Using "is" or "isnot" with a |List|, |Tuple|, |Dictionary| or |Blob| checks
whether the expressions are referring to the same |List|, |Tuple|,
|Dictionary| or |Blob| instance. A copy of a |List| or |Tuple| is different
@@ -2247,7 +2260,14 @@ v:clipmethod The current method of accessing the clipboard that is being
x11 X11 selections are being used.
none The above methods are unavailable or
cannot be used.
- See 'clipmethod' for more details.
+ If it is set to a value not in the above list, then a
+ clipboard provider with the given name is being used for the
+ clipboard functionality. See 'clipmethod' for more details.
+
+ *v:clipproviders*
+v:clipproviders
+ A dictionary containing clipboard providers, see
+ |clipboard-providers| for more information.
*v:cmdarg* *cmdarg-variable*
v:cmdarg This variable is used for two purposes:
@@ -2381,8 +2401,8 @@ v:echospace Number of screen cells that can be used for an `:echo` message
available above the last line.
*v:errmsg* *errmsg-variable*
-v:errmsg Last given error message. It's allowed to set this variable.
- Example: >
+v:errmsg Last error message that occurred (not necessarily displayed).
+ It's allowed to set this variable. Example: >
:let v:errmsg = ""
:silent! next
:if v:errmsg != ""
@@ -2787,9 +2807,9 @@ v:sizeoflong Number of bytes in a long. Depends on how Vim was compiled.
expected result.
*v:sizeofpointer* *sizeofpointer-variable*
-v:sizeofpointer Number of bytes in a pointer. Depends on how Vim was compiled.
- This is only useful for deciding whether a test will give the
- expected result.
+v:sizeofpointer Number of bytes in a pointer. Depends on how Vim was
+ compiled. This is only useful for deciding whether a test
+ will give the expected result.
*v:stacktrace* *stacktrace-variable*
v:stacktrace The stack trace of the exception most recently caught and
@@ -2988,6 +3008,10 @@ v:versionlong Like v:version, but also including the patchlevel in the last
v:vim_did_enter Zero until most of startup is done. It is set to one just
before |VimEnter| autocommands are triggered.
+ *v:vim_did_init* *vim_did_init-variable*
+v:vim_did_init Zero until initialization is done. It is set to one just
+ after |vimrc| is sourced and before |load-plugins|.
+
*v:warningmsg* *warningmsg-variable*
v:warningmsg Last given warning message. It's allowed to set this
variable.
@@ -3694,19 +3718,22 @@ text...
*:cat* *:catch*
*E603* *E604* *E605* *E654* *E1033*
-:cat[ch] /{pattern}/ The following commands until the next `:catch`,
+:cat[ch] [/{pattern}/] The following commands until the next `:catch`,
`:finally`, or `:endtry` that belongs to the same
`:try` as the `:catch` are executed when an exception
matching {pattern} is being thrown and has not yet
been caught by a previous `:catch`. Otherwise, these
commands are skipped.
- When {pattern} is omitted all errors are caught.
- Examples: >
+ Pattern can start with "Vim({cmd})" to indicate an
+ exception that occurred when executing the Ex command
+ {cmd}. When {pattern} is omitted all errors are
+ caught. Examples: >
:catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
- :catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors
- :catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts
+ :catch /^Vim\%((\S\+)\)\=:E/ " catch all Vim errors
+ :catch /^Vim\%((\S\+)\)\=:/ " catch errors and interrupts
:catch /^Vim(write):/ " catch all errors in :write
- :catch /^Vim\%((\a\+)\)\=:E123:/ " catch error E123
+ :catch /^Vim(!):/ " catch all errors in :!
+ :catch /^Vim\%((\S\+)\)\=:E123:/ " catch error E123
:catch /my-exception/ " catch user exception
:catch /.*/ " catch everything
:catch " same as /.*/
@@ -3829,7 +3856,7 @@ text...
when the screen is redrawn.
*:echow* *:echowin* *:echowindow*
-:[N]echow[indow] {expr1} ..
+:[N]echow[indow] {expr1} ...
Like |:echomsg| but when the messages popup window is
available the message is displayed there. This means
it will show for three seconds and avoid a
@@ -5213,7 +5240,7 @@ $VIMRUNTIME/plugin/openPlugin.vim
dist#vim9#Open(file: string) ~
Opens `path` with the system default handler (macOS `open`, Windows
-`explorer.exe`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the
+`start`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the
string specified in the variable is used instead.
The |:Open| user command uses file completion for its argument.
@@ -5262,5 +5289,117 @@ Usage: >vim
:call dist#vim9#Launch()
:Launch .
<
-
+==============================================================================
+15. Clipboard providers *clipboard-providers*
+
+The clipboard provider feature allows the "+" |quoteplus| and "*" |quotestar|
+registers to be overridden by custom Vim script functions. There can be
+multiple providers, and Vim chooses which one to use based on 'clipmethod'.
+
+Despite the name, it should be treated separate from the clipboard
+functionality. It essentially overrides the existing behaviour of the
+clipboard registers.
+
+ *clipboard-providers-clipboard*
+The clipboard provider feature will respect the "unnamed" and "unnamedplus"
+values in the 'clipboard' option. Any other value will be ignored.
+
+ *clipboard-providers-no-clipboard*
+If the |+clipboard| feature is not enabled, then the "+" and "*" registers
+will not be enabled/available unless |v:clipmethod| is set to a provider. If
+it is set to a provider, then the clipboard registers will be exposed despite
+not having the |+clipboard| feature.
+
+ *clipboard-providers-plus*
+If on a platform that only has the "*" register, then the "+" register will
+only be available when |v:clipmethod| is set to a provider. If you want to
+check if the "+" is available for use, it can be checked with: >
+ if has('unnamedplus')
+<
+ *clipboard-providers-clipmethod*
+To integrate the providers with Vim's clipboard functionality, the
+'clipmethod' option is used on all platforms. The names of clipboard
+providers should be put inside the option, and if Vim chooses it, then it
+overrides the "+" and "*" registers. Note that the "+" and "*" will not be
+saved in the viminfo at all.
+
+ *clipboard-providers-define*
+To define a clipboard provider, the |v:clipproviders| vim variable is used. It
+is a |dict| where each key is the clipboard provider name, and the value is
+another |dict| declaring the "available", "copy", and "paste" callbacks: >vim
+ let v:clipproviders["myprovider"] = {
+ \ "available": function("Available"),
+ \ "paste": {
+ \ "+": function("Paste"),
+ \ "*": function("Paste")
+ \ },
+ \ "copy": {
+ \ "+": function("Copy"),
+ \ "*": function("Copy")
+ \ }
+ \ }
+ set clipmethod^=myprovider
+<
+Each callback can either be a name of a function in a string, a |Funcref|, or
+a |lambda| expression.
+
+With the exception of the "available" callback if a callback is not provided,
+Vim will not invoke anything, and this is not an error.
+
+ *clipboard-providers-textlock*
+In both the "paste" and "copy" callbacks, it is not allowed to change the
+buffer text, see |textlock|.
+
+ *clipboard-providers-available*
+The "available" callback is optional, does not take any arguments and should
+return a |boolean| or non-zero number, which tells Vim if it is available
+for use. If it is not, then Vim skips over it and tries the next 'clipmethod'
+value. If the "available" callback is not provided, Vim assumes the provider
+is always available for use (true).
+
+ *clipboard-providers-paste*
+The "paste" callback takes the following arguments in the following order:
+ 1. Name of the register being accessed, either "+" or "*".
+
+It should return a |list| or |tuple| containing the following elements in
+order:
+ 1. Register type (and optional width) conforming to |setreg()|. If it
+ is an empty string, then the type is automatically chosen.
+ 2. A |list| of strings to return to Vim, each representing a line.
+
+ *clipboard-providers-copy*
+The "copy" callback returns nothing and takes the following arguments in the
+following order:
+ 1. Name of the register being accessed, either "+" or "*".
+ 2. Register type conforming to |getregtype()|
+ 3. List of strings to use, each representing a line.
+
+Below is a sample script that makes use of the clipboard provider feature: >vim
+ func Available()
+ return v:true
+ endfunc
+
+ func Copy(reg, type, str)
+ echom "Register: " .. a:reg
+ echom "Register type: " .. a:type
+ echom "Contents: " .. string(a:str)
+ endfunc
+
+ func Paste(reg)
+ return ("b40", ["this", "is", "the", a:reg, "register!"])
+ endfunc
+
+ let v:clipproviders["test"] = {
+ \ "available": function("Available"),
+ \ "copy": {
+ \ "+": function("Copy"),
+ \ "*": function("Copy")
+ \ },
+ \ "paste": {
+ \ "+": function("Paste"),
+ \ "*": function("Paste")
+ \ }
+ \ }
+ set clipmethod^=test
+<
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/evim-ja.UTF-8.1 b/runtime/doc/evim-ja.UTF-8.1
index 1a035272..8bfefbca 100644
--- a/runtime/doc/evim-ja.UTF-8.1
+++ b/runtime/doc/evim-ja.UTF-8.1
@@ -1,4 +1,4 @@
-.TH EVIM 1 "2002 February 16"
+.TH EVIM 1 "2024 August 12"
.SH åå‰
evim \- easy Vim, モードレスエディタ Vim
.SH 書å¼
@@ -34,8 +34,13 @@ CTRL-X ãŒåˆ‡ã‚Šå–りã€CTRL-C ãŒã‚³ãƒ”ーã€CTRL-V ãŒãƒšãƒ¼ã‚¹ãƒˆã§ã™ã€‚
vim(1) ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
.SH ファイル
.TP 15
-/usr/local/lib/vim/evim.vim
+/usr/local/share/vim/vim??/evim.vim
eVim ã®åˆæœŸåŒ–スクリプト。
+.br
+.I vim??
+ã¯çŸã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã§
+.B Vim 9.1
+ã§ã¯ vim91 ã§ã™ã€‚
.SH 別å
evim 㯠"gumbies ã®ãŸã‚ã® Vim" ã¨ã‚‚呼ã°ã‚Œã¦ã„ã¾ã™ã€‚
evim を使ã£ã¦ã„ã‚‹ã‚ãªãŸã¯ãã£ã¨ã€é ã«ãƒãƒ³ã‚«ãƒã‚’ã‹ã¶ã£ã¦ã„ã‚‹ã®ã§ã™ã€‚
diff --git a/runtime/doc/evim-sv.1 b/runtime/doc/evim-sv.1
new file mode 100644
index 00000000..4d1579cb
--- /dev/null
+++ b/runtime/doc/evim-sv.1
@@ -0,0 +1,55 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH EVIM 1 "12 augusti 2024"
+.SH NAMN
+evim enkel Vim, redigera en fil med Vim och konfigurera för lägeslös
+redigering
+.SH SYNOPSIS
+.br
+\fBevim\fP [flaggor] [fil ..]
+.br
+\fBeview\fP
+.SH BESKRIVNING
+\fBeVim\fP startar \fBVim\fP och ställer in flaggor så att det fungerar som en
+lägeslös redigerare. Det är fortfarande Vim, men används som en
+pek\-och\-klicka\-redigerare. Det känns ungefär som att använda Notepad i
+MS\-Windows. \fBeVim\fP körs alltid i grafiskt gränssnitt, för att möjliggöra
+användning av menyer och verktygsfält.
+.PP
+Endast för personer som verkligen inte kan arbeta med Vim på normalt
+sätt. Redigeringen blir mycket mindre effektiv.
+.PP
+\fBeview\fP är detsamma, men startar i skrivskyddat läge. Det fungerar precis
+som evim \-R.
+.PP
+Se vim(1) för mer information om Vim, flaggor etc.
+.PP
+Flaggan "insertmode" är inställt så att man kan skriva text direkt.
+.br
+Mappningar är inställda så att kopiera och klistra in fungerar med
+MS\-Windows\-tangenterna. CTRL\-X klipper ut text, CTRL\-C kopierar text och
+CTRL\-V klistrar in text. Använd CTRL\-Q för att få den ursprungliga
+funktionen för CTRL\-V.
+.SH FLAGGOR
+Se vim(1).
+.SH FILER
+.TP 15
+/usr/local/share/vim/vim??/evim.vim
+Skriptet som läses in för att initialisera eVim.
+.br
+\fIvim??\fP är ett kort versionsnummer, till exempel vim91 för \fBVim 9.1\fP
+.SH AKA
+Även känt som "Vim för gumbies". När du använder evim förväntas du ta en
+näsduk, göra en knut i varje hörn och bära den på huvudet.
+.SH "SE ÄVEN"
+vim(1)
+.SH UPPHOVSPERSON
+Det mesta av \fBVim\fP en har skapats av Bram Moolenaar, med stor hjälp från
+andra. Se menyn Hjälp/Tack till.
+.SH SVENSK ÖVERSÄTTNING
+Vim översattes ursprungligen av Johan Svedberg 2003-2007 och har under 2025
+uppdaterats av Daniel Nylander, speciellt manualsidor samt själva Vim.
+Om du hittar fel i översättningen, kontakta .
\ No newline at end of file
diff --git a/runtime/doc/evim-sv.UTF-8.1 b/runtime/doc/evim-sv.UTF-8.1
new file mode 100644
index 00000000..f862aa7b
--- /dev/null
+++ b/runtime/doc/evim-sv.UTF-8.1
@@ -0,0 +1,55 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH EVIM 1 "12 augusti 2024"
+.SH NAMN
+evim enkel Vim, redigera en fil med Vim och konfigurera för lägeslös
+redigering
+.SH SYNOPSIS
+.br
+\fBevim\fP [flaggor] [fil ..]
+.br
+\fBeview\fP
+.SH BESKRIVNING
+\fBeVim\fP startar \fBVim\fP och ställer in flaggor så att det fungerar som en
+lägeslös redigerare. Det är fortfarande Vim, men används som en
+pek\-och\-klicka\-redigerare. Det känns ungefär som att använda Notepad i
+MS\-Windows. \fBeVim\fP körs alltid i grafiskt gränssnitt, för att möjliggöra
+användning av menyer och verktygsfält.
+.PP
+Endast för personer som verkligen inte kan arbeta med Vim på normalt
+sätt. Redigeringen blir mycket mindre effektiv.
+.PP
+\fBeview\fP är detsamma, men startar i skrivskyddat läge. Det fungerar precis
+som evim \-R.
+.PP
+Se vim(1) för mer information om Vim, flaggor etc.
+.PP
+Flaggan "insertmode" är inställt så att man kan skriva text direkt.
+.br
+Mappningar är inställda så att kopiera och klistra in fungerar med
+MS\-Windows\-tangenterna. CTRL\-X klipper ut text, CTRL\-C kopierar text och
+CTRL\-V klistrar in text. Använd CTRL\-Q för att få den ursprungliga
+funktionen för CTRL\-V.
+.SH FLAGGOR
+Se vim(1).
+.SH FILER
+.TP 15
+/usr/local/share/vim/vim??/evim.vim
+Skriptet som läses in för att initialisera eVim.
+.br
+\fIvim??\fP är ett kort versionsnummer, till exempel vim91 för \fBVim 9.1\fP
+.SH AKA
+Även känt som "Vim för gumbies". När du använder evim förväntas du ta en
+näsduk, göra en knut i varje hörn och bära den på huvudet.
+.SH "SE ÄVEN"
+vim(1)
+.SH UPPHOVSPERSON
+Det mesta av \fBVim\fP en har skapats av Bram Moolenaar, med stor hjälp från
+andra. Se menyn Hjälp/Tack till.
+.SH SVENSK ÖVERSÄTTNING
+Vim översattes ursprungligen av Johan Svedberg 2003-2007 och har under 2025
+uppdaterats av Daniel Nylander, speciellt manualsidor samt själva Vim.
+Om du hittar fel i översättningen, kontakta .
\ No newline at end of file
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index f4474038..7e87a428 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,7 +1,7 @@
-*farsi.txt* For Vim version 9.1. Last change: 2019 May 05
+*farsi.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
+ VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
Right to Left and Farsi Mapping for Vim *farsi* *Farsi*
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index b363b112..8dbe4e68 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,7 +1,7 @@
-*filetype.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*filetype.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Filetypes *filetype* *file-type*
@@ -138,6 +138,7 @@ what kind of file it is. This doesn't always work. A number of global
variables can be used to overrule the filetype used for certain extensions:
file name variable ~
+ *.app g:filetype_app
*.asa g:filetype_asa |ft-aspperl-syntax|
|ft-aspvbs-syntax|
*.asm g:asmsyntax |ft-asm-syntax|
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 40cff059..1e729f98 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,7 +1,7 @@
-*fold.txt* For Vim version 9.1. Last change: 2025 Oct 03
+*fold.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Folding *Folding* *folding* *folds*
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 866857e8..35ab8c8e 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -1,4 +1,4 @@
-*ft_ada.txt* For Vim version 9.1. Last change: 2025 Aug 06
+*ft_ada.txt* For Vim version 9.2. Last change: 2026 Feb 14
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
diff --git a/runtime/doc/ft_context.txt b/runtime/doc/ft_context.txt
index fa831645..e659d171 100644
--- a/runtime/doc/ft_context.txt
+++ b/runtime/doc/ft_context.txt
@@ -1,8 +1,8 @@
-*ft_context.txt* For Vim version 9.1. Last change: 2024 Jan 01
+*ft_context.txt* For Vim version 9.2. Last change: 2026 Feb 14
This is the documentation for the ConTeXt filetype plugin.
-NOTE: the plugin requires +vim9script.
+NOTE: the plugin requires |+vim9script|.
==============================================================================
CONTENTS *context.vim* *ft-context*
@@ -19,11 +19,11 @@ Introduction ~
ConTeXt, similarly to LaTeX, is a macro-based typesetting system built on TeX:
>
https://wiki.contextgarden.net
- https://wiki.contextgarden.net/Vim
+ https://wiki.contextgarden.net/Input_and_compilation/Text_editors/Vim
<
The ConTeXt plugin provides syntax highlighting, completion and support for
typesetting ConTeXt documents. The recommended way to typeset a document is to
-use |:ConTeXt|. This will invoke the `mtxrun` script that is found in `$PATH`.
+use |:ConTeXt|, which invokes the `mtxrun` script that is found in $PATH.
For more fine grained control over the command and its environment,
`context.Typeset()` can be used directly (or `context#Typeset()` from legacy
@@ -32,26 +32,31 @@ Vim script). For instance, if a version of ConTeXt is installed in
>
import autoload 'context.vim'
+ var os = "linux" # Update to match your system
+ var arch = "arm64" # Update to match your system
+
def MyConTeXt()
- const env = {'PATH':
- printf("%s/context/tex/texmf--/bin:%s", $HOME, $PATH)}
- context.Typeset("%", env)
+ var env = {
+ 'PATH': $'{$HOME}/context/tex/texmf-{os}-{arch}/bin:{$PATH}'
+ }
+ context.Typeset("%", env)
enddef
-This code may go in `~/.vim/after/ftplugin/context.vim`. A mapping can then be
-defined to invoke the custom command:
->
nnoremap t MyConTeXt()
<
+This code should go in `~/.vim/after/ftplugin/context.vim`.
+
`context.Typeset()` accepts a third optional argument to specify a custom
typesetting command. That must be a function that takes a path and returns the
-command as a List. For example:
+command as a |list|. For example:
>
def ConTeXtCustomCommand(path: string): list
return ['mtxrun', '--script', 'context', '--nonstopmode', path]
enddef
- context.ConTeXtTypeset("%", v:none, ConTeXtCustomCommand)
+ def MyContext()
+ context.Typeset("%", v:none, ConTeXtCustomCommand)
+ enddef
<
Large projects are often organized as a root document and various chapter
files. When editing a chapter file, it is convenient to invoke |:ConTeXt|
@@ -67,7 +72,7 @@ one in the current buffer. The root document does not have to be opened in
Vim.
To extend completion and syntax highlighting, you may generate supporting
-files using ConTeXt and add them to your configuration. If you configuration
+files using ConTeXt and add them to your configuration. If your configuration
resides in `~/.vim`, you may use these commands:
>
mkdir -p ~/.vim/syntax/shared
@@ -81,7 +86,8 @@ The last command will create the following syntax files:
- `context-data-metafun.vim`;
- `context-data-tex.vim`.
-The same command can be used to update those syntax files.
+If present, such files will be automatically loaded to enhance syntax
+highlighting. The same command can be used to update those syntax files.
*ft-context-commands*
Commands ~
@@ -109,8 +115,9 @@ and this option is not set, standard `make` is used. If this option is set,
>
g:context_ignore_makefile = 0
<
-NOTE: before using |:make|, set the working directory of the buffer to the
-directory of the file to be typeset.
+NOTE: before using |:make|, ensure that the working directory of the buffer is
+set to the directory of the file you want to typeset. Additionally, be aware
+that |:make| searches for `mtxrun` in $PATH.
*'g:context_extra_options'*
A list of additional options to pass to `mtxrun`.
@@ -135,11 +142,11 @@ When set, do not define any mappings.
*ft-context-mappings*
Mappings ~
-tp "reflow TeX paragraph".
+tp "reflow TeX paragraph" (motion).
-i$ "inside inline math block".
+i$ "inside inline math block" (text object selection).
-a$ "around inline math block".
+a$ "around inline math block" (text object selection).
]] [count] start of sections forward.
diff --git a/runtime/doc/ft_hare.txt b/runtime/doc/ft_hare.txt
index ce344b73..918ff2a5 100644
--- a/runtime/doc/ft_hare.txt
+++ b/runtime/doc/ft_hare.txt
@@ -19,23 +19,33 @@ functionality for the Hare programming language.
FILETYPE PLUGIN *ft-hare-plugin*
This plugin has a few different variables that can be defined inside your
-|vimrc| to tweak its behavior.
+|vimrc| to adjust its behavior.
-Additionally, support is provided for folding `{ }` blocks. To enable folding,
-add the following to a file inside your |after-directory| (e.g.
+ *hare-folding*
+This plugin supports folding `{ }` blocks. To enable folding, add the
+following to a file inside your |after-directory| (e.g.
~/.vim/after/ftplugin/hare.vim): >
setlocal foldmethod=syntax
-Because block-based folding tends to create many small folds, consider setting
-a few related options, such as 'foldminlines' and 'foldnestmax'.
+Because syntax-based folding tends to create many small folds, consider
+setting a few related options, such as 'foldminlines' or 'foldnestmax'.
+ *hare-symbol-operators*
+Most symbolic operators do not receive any highlighting by default (with the
+exception of "?", "!", and "::"). If you prefer highlighting all operators,
+you can link them to your preferred highlight group inside your |vimrc|. For
+example: >
+
+ hi def link hareCast hareSymbolOperator
+ hi def link hareSymbolOperator hareOperator
+<
*g:hare_recommended_style*
The following options are set by default, in accordance with Hare's official
style guide: >
setlocal noexpandtab
- setlocal shiftwidth=0
+ setlocal shiftwidth=8
setlocal softtabstop=0
setlocal tabstop=8
setlocal textwidth=80
@@ -43,18 +53,11 @@ style guide: >
To disable this behavior, add the following to your |vimrc|: >
let g:hare_recommended_style = 0
-<
- *g:hare_symbol_operators*
-By default, symbolic operators do not receive any special highlighting (with
-`!`, `?`, and `::` being the only exceptions). To enable syntax highlighting
-for most other operators, add the following to your |vimrc|: >
-
- let g:hare_symbol_operators = 1
<
*g:hare_space_error*
-By default, trailing whitespace and spaces followed by characters will
-be highlighted as errors. This is automatically disabled in Insert mode. To
-turn off this highlighting completely, add the following to your |vimrc|: >
+By default, trailing whitespace and spaces followed by characters are
+highlighted as errors. This is automatically disabled while in insert mode.
+To turn off this highlighting completely, add the following to your |vimrc|: >
let g:hare_space_error = 0
@@ -67,28 +70,27 @@ this is such a common filename, this plugin only searches for Hare source
files within the same directory by default.
*g:filetype_haredoc*
-The |g:filetype_haredoc| variable can be used to tweak the depth of this
+The `g:filetype_haredoc` variable can be used to tweak the depth of this
search, or bypass the detection of Hare documentation files altogether:
Value Effect~
- 0 No automatic detection
+ 0 Search disabled
1 Search current directory only (this is the default)
2 Search one level of subdirectories
- 3 Search two levels of subdirectories
-The search depth may be any positive integer, but values higher than `2` are
-unlikely to provide a tangible benefit in most situations.
+The search depth may be any positive integer, but values greater than 2 are
+very unlikely to provide any tangible benefit and can impact performance.
INDENTATION SETTINGS *ft-hare-indent*
-Unlike most other settings for this plugin, the indentation settings may also
-be set per-buffer, overriding any global configuration that exists. To do
-this, simply prefix the variable with |b:| instead of |g:|.
+Unlike other settings, indentation settings may be configured on a per-buffer
+basis, overriding any existing global configuration. To do so, simply prefix
+the variable with |b:| instead of |g:|.
- *g:hare_indent_match_switch*
-By default, continuation lines for "match" and "switch" conditions are
-indented only one level: >hare
+ *g:hare_indent_match_switch* *b:hare_indent_match_switch*
+By default, the continuation lines for "match" and "switch" conditions are
+only indented one level: >hare
const file = match (os::create(path, 0o644,
flag::WRONLY | flag::TRUNC)) {
@@ -96,39 +98,33 @@ indented only one level: >hare
yield file;
// ...
-If you instead prefer indenting them two levels, to more closely resemble "if"
-and "for" conditions, add the following line to your |vimrc|: >
+If you prefer indenting them two levels, more closely resembling "if" and
+"for" conditions, add the following line to your |vimrc|: >
let g:hare_indent_match_switch = 2
<
- *g:hare_indent_case*
-By default, continuation lines for cases in "match" and "switch" expressions
-are indented two levels, to visually distinguish them from the body of the
-case: >hare
+ *g:hare_indent_case* *b:hare_indent_case*
+By default, the continuation lines for "match" and "switch" cases are indented
+two levels, to visually distinguish them from the case body: >hare
case ltok::I8, ltok::I16, ltok::I32,
ltok::I64, ltok::INT =>
// ...
-If you prefer a different amount of indentation, you can adjust it using
-|g:hare_indent_case|. Valid values include `0`, `1`, and `2`.
+If you prefer a different level of indentation, you can adjust it using
+`g:hare_indent_case`. The possible values are 0, 1, and 2.
COMPILER SUPPORT *compiler-hare*
-If this plugin detects a Makefile in the current directory, it will assume you
-wish to use `make` for your build system, and will leave 'makeprg' untouched.
-Otherwise, `hare build` will be used.
-
- *g:hare_makeprg_params*
-When `hare build` is used, additional compiler options may be appended to
-'makeprg' with the |g:hare_makeprg_params| variable. It may also be set on a
-per-buffer basis (using |b:| instead of |g:|), overriding any global
-configuration that exists. For example: >
-
- let b:hare_makeprg_params = '-lc -t o'
+If a Makefile is detected in the current directory, this plugin will assume
+you are using "make" for your build system, and will leave 'makeprg' as-is.
+Otherwise, "hare build" will be used.
-The global default is "-q", to suppress writing to stdout while building.
+ *g:hare_makeprg_params*
+When using "hare build", additional compiler options may be appended to
+'makeprg' using `g:hare_makeprg_params`. The default is "-q", to suppress
+printing to stdout when building.
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/ft_mp.txt b/runtime/doc/ft_mp.txt
index 11ddd3b7..7106edf9 100644
--- a/runtime/doc/ft_mp.txt
+++ b/runtime/doc/ft_mp.txt
@@ -1,10 +1,10 @@
-*ft_mp.txt* For Vim version 9.1. Last change: 2022 Aug 12
+*ft_mp.txt* For Vim version 9.2. Last change: 2026 Feb 14
This is the documentation for the METAFONT and MetaPost filetype plugins.
Unless otherwise specified, the commands, settings and mappings defined below
apply equally to both filetypes.
-NOTE: the plugin requires +vim9script.
+NOTE: the plugin requires |+vim9script|.
==============================================================================
CONTENTS *mp.vim* *ft-metapost*
@@ -38,25 +38,25 @@ next line should not change from whatever it has been manually set.
For example, this is the default indentation of a simple macro:
>
- def foo =
- makepen(
- subpath(T-n,t) of r
- shifted .5down
- --subpath(t,T) of r shifted .5up -- cycle
- )
- withcolor black
- enddef
+ def foo =
+ makepen(
+ subpath(T-n,t) of r
+ shifted .5down
+ --subpath(t,T) of r shifted .5up -- cycle
+ )
+ withcolor black
+ enddef
<
By adding the special comments, the indentation can be adjusted arbitrarily:
>
- def foo =
- makepen(
- subpath(T-n,t) of r %>
- shifted .5down %>
- --subpath(t,T) of r shifted .5up -- cycle %<<<
- )
- withcolor black
- enddef
+ def foo =
+ makepen(
+ subpath(T-n,t) of r %>
+ shifted .5down %>
+ --subpath(t,T) of r shifted .5up -- cycle %<<<
+ )
+ withcolor black
+ enddef
<
*ft-metapost-commands*
Commands ~
diff --git a/runtime/doc/ft_rust.txt b/runtime/doc/ft_rust.txt
index 4f4e3a85..dd934e18 100644
--- a/runtime/doc/ft_rust.txt
+++ b/runtime/doc/ft_rust.txt
@@ -60,8 +60,8 @@ g:rust_conceal_pub~
*g:rust_recommended_style*
g:rust_recommended_style~
Set this option to enable vim indentation and textwidth settings to
- conform to style conventions of the rust standard library (i.e. use 4
- spaces for indents and sets 'textwidth' to 99). This option is enabled
+ conform to style conventions of the Rust style guide (i.e. use 4
+ spaces for indents and set 'textwidth' to 100). This option is enabled
by default. To disable it: >
let g:rust_recommended_style = 0
<
@@ -166,6 +166,13 @@ g:rustfmt_detect_version~
Disabled by default for performance reasons
>
let g:rustfmt_detect_version = 1
+<
+ *g:rustfmt_find_toml*
+g:rustfmt_find_toml~
+ When set to 1, will try to find `rustfmt.toml` file by searching from
+ current path upwards. Disabled by default for performance reasons
+>
+ let g:rustfmt_find_toml = 1
<
*g:rust_playpen_url*
g:rust_playpen_url~
diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt
index 22706c12..2baa3641 100644
--- a/runtime/doc/ft_sql.txt
+++ b/runtime/doc/ft_sql.txt
@@ -1,4 +1,4 @@
-*ft_sql.txt* For Vim version 9.1. Last change: 2025 Aug 10
+*ft_sql.txt* For Vim version 9.2. Last change: 2026 Feb 14
by David Fishburn
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index d69d603e..a255af48 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,7 +1,7 @@
-*gui.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*gui.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Vim's Graphical User Interface *gui* *GUI*
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 1c33ff69..2e2e2601 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,7 +1,7 @@
-*gui_w32.txt* For Vim version 9.1. Last change: 2025 Oct 11
+*gui_w32.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Vim's Win32 Graphical User Interface *gui-w32* *win32-gui*
@@ -425,8 +425,8 @@ simulating the keystrokes Alt, F. >
This maps Alt-Space to pop down the system menu for the Vim window. Note that
~ is used by simalt to represent the character. >
:map :simalt ~n
-Maps Control-N to produce the keys Alt-Space followed by N. This minimizes the
-Vim window via the system menu.
+Maps Control-N to produce the keys Alt-Space followed by N. This minimizes
+the Vim window via the system menu.
Note that the key changes depending on the language you are using.
@@ -504,4 +504,26 @@ To use the system's default title bar colors, set highlighting groups to
hi TitleBar guibg=NONE guifg=NONE
hi TitleBarNC guibg=NONE guifg=NONE
<
+
+Full Screen *gui-w32-fullscreen*
+
+To enable fullscreen mode in the Windows GUI version of Vim, add the 's' flag
+to the 'guioptions' setting.
+
+For convenience, you can define a command or mapping to toggle fullscreen
+mode:
+>
+ command ToggleFullscreen {
+ if &guioptions =~# 's'
+ set guioptions-=s
+ else
+ set guioptions+=s
+ endif
+ }
+
+ map &go =~# 's' ? ":se go-=s" : ":se go+=s"
+
+The fullscreen mode will occupy the entire screen area while hiding window
+decorations such as the title bar and borders.
+
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index a479c7cc..fce4fb47 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,7 +1,7 @@
-*gui_x11.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*gui_x11.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Vim's Graphical User Interface *gui-x11* *GUI-X11*
diff --git a/runtime/doc/hangulin.txt b/runtime/doc/hangulin.txt
index 3f37d8eb..be5798ad 100644
--- a/runtime/doc/hangulin.txt
+++ b/runtime/doc/hangulin.txt
@@ -1,7 +1,8 @@
-*hangulin.txt* For Vim version 9.1. Last change: 2019 Nov 21
+*hangulin.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
+ VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
+
*hangul*
Vim had built-in support for hangul, the Korean language, for users without
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 64b9c60b..9640a146 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,7 +1,7 @@
-*hebrew.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*hebrew.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Ron Aaron and Avner Lottem
+ VIM REFERENCE MANUAL by Ron Aaron and Avner Lottem
Hebrew Language support (options & mapping) for Vim *hebrew*
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index e8f15c73..b8f9e8dc 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt* For Vim version 9.1. Last change: 2025 Jun 27
+*help.txt* For Vim version 9.2. Last change: 2026 Feb 14
VIM - main help file
k
@@ -44,7 +44,7 @@ BASIC:
|quickref| Overview of the most common commands you will use
|tutor| 30-minute interactive course for beginners
|copying| About copyrights
-|iccf| Helping poor children in Uganda
+|Kuwasha| Helping poor children in Uganda
|sponsor| Sponsor Vim development, become a registered Vim user
|www| Vim on the World Wide Web
|bugs| Where to send bug reports
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index d10cb2c1..7ef2ff00 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -1,7 +1,7 @@
-*helphelp.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*helphelp.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Help on help files *helphelp*
@@ -158,11 +158,12 @@ When no argument is given to |:help| the file given with the 'helpfile' option
will be opened. Otherwise the specified tag is searched for in all "doc/tags"
files in the directories specified in the 'runtimepath' option.
-If you would like to open the help in the current window, see this tip:
-|help-curwin|.
-
The initial height of the help window can be set with the 'helpheight' option
(default 20).
+
+If you want to open help on {subject} in the current window, the helpcurwin
+optional package can be used. See |package-helpcurwin|.
+
*help-buffer-options*
When the help buffer is created, several local options are set to make sure
the help text is displayed as it was intended:
@@ -325,6 +326,7 @@ At this moment translations are available for:
Japanese - multiple authors
Polish - translated by Mikolaj Machowski
Russian - translated by Vassily Ragosin
+ Swedish - translated by Daniel Nylander
See the Vim website to find them: http://www.vim.org/translations.php
A set of translated help files consists of these files:
@@ -417,8 +419,9 @@ STYLE
If your Vim has 'modeline' enabled, Vim should follow the preferred style
automatically when editing built-in help files.
-Vim help files should be formatted for a 'textwidth' of 78 characters, so they
-look good in a typical 80 x 24 terminal window.
+Vim help files should be formatted for a 'textwidth' of 78 characters (with
+'conceal' enabled), so they look good in a typical 80 x 24 terminal window;
+use `:set colorcolumn=+0` as a visual guide.
Use two spaces between the final dot of a sentence of the first letter of the
next sentence. Like this.
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index 2d8c8b5c..3df22065 100644
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -1,7 +1,7 @@
-*howto.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*howto.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
How to ... *howdoi* *how-do-i* *howto* *how-to*
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index e96a04ec..e3968366 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,7 +1,8 @@
-*if_cscop.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*if_cscop.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Andy Kahn
+ VIM REFERENCE MANUAL by Andy Kahn
+
*cscope* *Cscope*
This document explains how to use Vim's cscope interface.
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
index f0d77cff..cd8fdce3 100644
--- a/runtime/doc/if_lua.txt
+++ b/runtime/doc/if_lua.txt
@@ -1,7 +1,7 @@
-*if_lua.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*if_lua.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Luis Carvalho
+ VIM REFERENCE MANUAL by Luis Carvalho
The Lua Interface to Vim *lua* *Lua*
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index d76816db..3f38bae7 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,7 +1,7 @@
-*if_mzsch.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*if_mzsch.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Sergey Khorev
+ VIM REFERENCE MANUAL by Sergey Khorev
The MzScheme Interface to Vim *mzscheme* *MzScheme*
diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt
index c546e971..289dd1ae 100644
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -1,7 +1,7 @@
-*if_ole.txt* For Vim version 9.1. Last change: 2023 Nov 19
+*if_ole.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Paul Moore
+ VIM REFERENCE MANUAL by Paul Moore
The OLE Interface to Vim *ole-interface*
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index 616c3b31..d4692ff3 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,9 +1,10 @@
-*if_perl.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*if_perl.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Sven Verdoolaege
+ VIM REFERENCE MANUAL by Sven Verdoolaege
and Matt Gerassimof
+
Perl and Vim *perl* *Perl*
1. Editing Perl files |perl-editing|
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 0402e2cb..321b3777 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,7 +1,7 @@
-*if_pyth.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*if_pyth.txt* For Vim version 9.2. Last change: 2026 Mar 18
- VIM REFERENCE MANUAL by Paul Moore
+ VIM REFERENCE MANUAL by Paul Moore
The Python Interface to Vim *python* *Python*
@@ -183,9 +183,11 @@ vim.eval(str) *python-eval*
Evaluates the expression str using the vim internal expression
evaluator (see |expression|). Returns the expression result as:
- a string if the Vim expression evaluates to a string or number
- - a list if the Vim expression evaluates to a Vim list
- - a tuple if the Vim expression evaluates to a Vim tuple
- - a dictionary if the Vim expression evaluates to a Vim dictionary
+ - a list if the Vim expression evaluates to a Vim |list|
+ - a tuple if the Vim expression evaluates to a Vim |tuple|
+ - a dictionary if the Vim expression evaluates to a Vim |dict|
+ - a boolean if Vim expression evaluates to |v:true| or |v:false|
+ - `None` if Vim expression evaluates to |v:null| or |v:none|
Dictionaries, lists and tuples are recursively expanded.
Examples: >
:" value of the 'textwidth' option
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index c024b48e..475c5f5e 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,7 +1,8 @@
-*if_ruby.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*if_ruby.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Shugo Maeda
+ VIM REFERENCE MANUAL by Shugo Maeda
+
The Ruby Interface to Vim *ruby* *Ruby*
diff --git a/runtime/doc/if_sniff.txt b/runtime/doc/if_sniff.txt
index ff587ad2..9cc7b265 100644
--- a/runtime/doc/if_sniff.txt
+++ b/runtime/doc/if_sniff.txt
@@ -1,7 +1,7 @@
-*if_sniff.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*if_sniff.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Anton Leherbauer
+ VIM REFERENCE MANUAL by Anton Leherbauer
The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out
diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt
index a5c09829..c3710c6f 100644
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -1,7 +1,7 @@
-*if_tcl.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*if_tcl.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Ingo Wilken
+ VIM REFERENCE MANUAL by Ingo Wilken
The Tcl Interface to Vim *tcl* *Tcl* *TCL*
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index afd39546..6059e3f5 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,7 +1,7 @@
-*indent.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*indent.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
This file is about indenting C programs and other files.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 2966a630..310da6fa 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,7 +1,8 @@
-*index.txt* For Vim version 9.1. Last change: 2025 Aug 06
+*index.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
+
*index*
This file contains a list of all commands for each mode, with a tag and a
@@ -169,7 +170,7 @@ commands in CTRL-X submode *i_CTRL-X_index*
|i_CTRL-X_CTRL-Y| CTRL-X CTRL-Y scroll down
|i_CTRL-X_CTRL-U| CTRL-X CTRL-U complete with 'completefunc'
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line
-|i_CTRL-X_CTRL-Z| CTRL-X CTRL-Z stop completion, keeping the text as-is
+|i_CTRL-X_CTRL-Z| CTRL-X CTRL-Z stop completion, text is unchanged
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags
|i_CTRL-X_s| CTRL-X s spelling suggestions
@@ -807,7 +808,8 @@ tag char note action in Normal mode ~
|g@| g@{motion} call 'operatorfunc'
|g~| g~{motion} 2 swap case for Nmove text
|g| g 1 same as "gj"
-|g| g 1 same as "g$"
+|g| g 1 same as "g$" but go to the rightmost
+ non-blank character instead
|g| g 1 same as "g0"
|g| g same as
g same as
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index b0bd39a2..68a6c647 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,7 +1,7 @@
-*insert.txt* For Vim version 9.1. Last change: 2025 Oct 17
+*insert.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*Insert* *Insert-mode*
@@ -1720,7 +1720,7 @@ Complete:
Notes
- It doesn't complete command arguments that rely on 'shellcmd' completion
- type in Windows and WSL due to general slowness of canditate gathering,
+ type in Windows and WSL due to general slowness of candidate gathering,
e.g.
>
terminal dir
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 46aa9428..f26d49d7 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,7 +1,7 @@
-*intro.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*intro.txt* For Vim version 9.2. Last change: 2026 Mar 08
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Introduction to Vim *ref* *reference*
@@ -275,7 +275,7 @@ Vim would never have become what it is now, without the help of these people!
improvements
Doug Kearns Runtime file maintainer
Foxe Chen Wayland support, new features
- glepnir completion feature
+ glepnir work on improving completion feature, fixes
Girish Palya autocompletion (ins/cmdline), omnifunc
composing, search/subst completion, and more.
Hirohito Higashi lots of patches and fixes
@@ -313,11 +313,11 @@ Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't
as flexible as Vim. Development has stalled, Elvis has left the
building! Source code is freely available.
*Neovim*
-Neovim A Vim clone. Forked the Vim source in 2014 and went a different way.
- Very much bound to github and has many more dependencies, making
- development more complex and limiting portability. Code has been
- refactored, resulting in patches not being exchangeable with Vim.
- Supports a remote GUI and integration with scripting languages.
+Neovim A fork of Vim from 2014 that went a different way. Very much bound
+ to GitHub and has many more dependencies, making development more
+ complex and limiting portability. Code has been refactored, resulting
+ in patches not being exchangeable with Vim. Supports remote UIs and
+ first-class Lua scripting.
==============================================================================
4. Notation *notation*
@@ -450,6 +450,8 @@ notation meaning equivalent decimal value(s) ~
delete 127
command sequence intro ALT-Esc 155 **
CSI when typed in the GUI **
+ operating system command 157 **
+ received OSC response **
end-of-line (can be , or ,
depends on system and 'fileformat') **
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 98ac3e11..118e2d44 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,7 +1,7 @@
-*map.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*map.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Key mapping, abbreviations and user-defined commands.
@@ -1659,7 +1659,9 @@ completion can be enabled:
-complete=scriptnames sourced script names
-complete=shellcmd Shell command
-complete=shellcmdline First is a shell command and subsequent ones
- are filenames. The same behavior as |:!cmd|
+ are filenames. The same behavior as |:!cmd|.
+ To get correct completion, |:command-nargs|
+ should be '*' or '+'
-complete=sign |:sign| suboptions
-complete=syntax syntax file names 'syntax'
-complete=syntime |:syntime| suboptions
@@ -1695,7 +1697,8 @@ candidates as a Vim List. Non-string items in the list are ignored.
The function arguments are:
ArgLead the leading portion of the argument currently being
- completed on
+ completed on; note that this only captures the current
+ space-separated word, even when using "-nargs=1"
CmdLine the entire command line
CursorPos the cursor position in it (byte index)
The function may use these for determining context. For the "custom"
@@ -1753,7 +1756,7 @@ by default correspond to the current line, last line and the whole buffer,
relate to arguments, (loaded) buffers, windows or tab pages.
Possible values are (second column is the short name used in listing):
- -addr=lines Range of lines (this is the default for -range)
+ -addr=lines Range of lines (the default for -range)
-addr=arguments arg Range for arguments
-addr=buffers buf Range for buffers (also not loaded buffers)
-addr=loaded_buffers load Range for loaded buffers
@@ -1761,8 +1764,7 @@ Possible values are (second column is the short name used in listing):
-addr=tabs tab Range for tab pages
-addr=quickfix qf Range for quickfix entries
-addr=other ? Other kind of range; can use ".", "$" and "%"
- as with "lines" (this is the default for
- -count)
+ as with "lines" (the default for -count)
Special cases ~
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index ea545874..c8312b7f 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,7 +1,7 @@
-*mbyte.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*mbyte.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar et al.
+ VIM REFERENCE MANUAL by Bram Moolenaar et al.
Multi-byte support *multibyte* *multi-byte*
@@ -455,8 +455,8 @@ Useful utilities for converting the charset:
ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/unix/convert/hc-30.tar.gz
Korean: hmconv
- Hmconv is Korean code conversion utility especially for E-mail. It can
- convert between EUC-KR and ISO-2022-KR. Hmconv can be found at:
+ Hmconv is Korean code conversion utility especially for E-mail. It
+ can convert between EUC-KR and ISO-2022-KR. Hmconv can be found at:
https://www.freshports.org/korean/hmconv/
Multilingual: lv
@@ -601,7 +601,7 @@ Each field means:
- AVE: AVERAGE_WIDTH field. Ten times average width in pixels.
- CR: CHARSET_REGISTRY field. The name of the charset group.
- CE: CHARSET_ENCODING field. The rest of the charset name. For some
- charsets, such as JIS X 0208, if this field is 0, code points has
+ charsets, such as JIS X 0208, if this field is 0, codepoints has
the same value as GL, and GR if 1.
For example, in case of a 16 dots font corresponding to JIS X 0208, it is
@@ -761,9 +761,9 @@ Then add a command to your |gvimrc| file to set 'guifont': >
X INPUT METHOD (XIM) BACKGROUND *XIM* *xim* *x-input-method*
-XIM is an international input module for X. There are two kinds of structures,
-Xlib unit type and |IM-server| (Input-Method server) type. |IM-server| type
-is suitable for complex input, such as CJK.
+XIM is an international input module for X. There are two kinds of
+structures, Xlib unit type and |IM-server| (Input-Method server) type.
+|IM-server| type is suitable for complex input, such as CJK.
- IM-server
*IM-server*
@@ -997,8 +997,8 @@ recommended to test with an alternative one.
For proper integration with Vim's |+multi_byte_ime| system, changes in the
input method's status must be detectable by the `ImmGetOpenStatus()` function
-in Vims source code. Currently, some input methods that support multi-language
-input may have internal state changes that gVim cannot capture.
+in Vim's source code. Currently, some input methods that support
+multi-language input may have internal state changes that gVim cannot capture.
Cursor color when IME or XIM is on *CursorIM*
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 33b8fbdf..6a39e3f0 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,7 +1,7 @@
-*message.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*message.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
This file contains an alphabetical list of messages and error messages that
@@ -644,6 +644,22 @@ Set the 'autoread' option if you want to do this automatically.
This message is not given when 'buftype' is not empty.
Also see the |FileChangedShell| autocommand.
+You will be given a dialog with the following options:
+
+"OK": Dismiss the warning and continue editing. No changes are
+ loaded, the buffer remains as it is.
+
+"Load File": Reload the file from disk, replacing the current buffer
+ contents. Any changes you made in Vim that haven't been saved
+ will be lost.
+
+"Load File and Options":
+ Reload the file from disk and, in addition, apply relevant
+ file settings, such as indentation, syntax highlighting, text
+ width, and other filetype-specific options. This ensures the
+ buffer matches the file's intended configuration according to
+ your current settings and autocommands.
+
There is one situation where you get this message even though there is nothing
wrong: If you save a file in Windows on the day the daylight saving time
starts. It can be fixed in one of these ways:
@@ -832,6 +848,8 @@ and the screen is about to be redrawn:
like pressing . This makes it impossible to select text though.
-> For the GUI clicking the left mouse button in the last line works like
pressing .
+-> |q| won't start recording into a register (rationale: it is often used as
+ "quit" prompt key by users)
If you accidentally hit or and you want to see the displayed
text then use |g<|. This only works when 'more' is set.
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index e98e15e1..6f0bb3fe 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,7 +1,7 @@
-*mlang.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*mlang.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Multi-language features *multilang* *multi-lang*
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index e0c9d8ba..600ce647 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,7 +1,7 @@
-*motion.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*motion.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Cursor motions *cursor-motions* *navigation*
@@ -429,8 +429,10 @@ These commands move over words or WORDS.
*word*
A word consists of a sequence of letters, digits and underscores, or a
sequence of other non-blank characters, separated with white space (spaces,
-tabs, ). This can be changed with the 'iskeyword' option. An empty line
-is also considered to be a word.
+tabs, ). This can be changed with the 'iskeyword' option. For
+characters above 255, a word ends when the Unicode character class changes
+(e.g., between letters, subscripts, emojis, etc). An empty line is also
+considered to be a word.
*WORD*
A WORD consists of a sequence of non-blank characters, separated with white
space. An empty line is also considered to be a WORD.
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 87130261..d56d31fe 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,7 +1,7 @@
-*netbeans.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*netbeans.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Gordon Prieur et al.
+ VIM REFERENCE MANUAL by Gordon Prieur et al.
*netbeans* *NetBeans* *netbeans-support*
@@ -48,7 +48,7 @@ VimIntegration, description of various projects doing Vim Integration:
Projects using the NetBeans protocol of Vim are or were:
- Agide, an IDE for the AAP project, written in Python (now replaced by
- |:Termdebug|): http://www.a-a-p.org
+ |:Termdebug|): http://www.a-a-p.org (link now dead)
- Clewn, a gdb integration into Vim, written in C:
http://clewn.sourceforge.net/
- Pyclewn, a gdb integration into Vim, written in Python:
@@ -262,8 +262,8 @@ connection has been established.
The communication between the Vim Controller and Vim uses plain text
messages. This protocol was first designed to work with the external editor
module of NetBeans. Later it was extended to work with Agide (A-A-P GUI IDE,
-see http://www.a-a-p.org) and then with other IDE. The extensions are marked
-with "version 2.1".
+formerly http://www.a-a-p.org, link now dead) and then with other IDE.
+The extensions are marked with "version 2.1".
Version 2.2 of the protocol has several minor changes which should only affect
NetBeans users (ie, not Agide users). However, a bug was fixed which could
@@ -390,7 +390,8 @@ addAnno serNum typeNum off len
typeNum number sequence number of the annotation
defined with defineAnnoType for this
buffer
- off number offset where annotation is to be placed
+ off number offset where annotation is to be
+ placed
len number not used
In version 2.1 "lnum/col" can be used instead of "off".
@@ -645,7 +646,8 @@ getMark Not implemented.
getAnno serNum
Return the line number of the annotation in the buffer.
Argument:
- serNum serial number of this placed annotation
+ serNum serial number of this placed
+ annotation
The reply is:
123 lnum line number of the annotation
123 0 invalid annotation serial number
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 6bd79fb0..bddfa992 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,7 +1,7 @@
-*options.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*options.txt* For Vim version 9.2. Last change: 2026 Mar 16
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Options *options*
@@ -1025,8 +1025,9 @@ A jump table for the options with a short description can be found at |Q_op|.
*'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
'autowriteall' 'awa' boolean (default off)
global
- Like 'autowrite', but also used for commands ":edit", ":enew", ":quit",
- ":qall", ":exit", ":xit", ":recover" and closing the Vim window.
+ Like 'autowrite', but also used for commands ":edit", ":enew",
+ ":quit", ":qall", ":exit", ":xit", ":recover" and closing the Vim
+ window.
Setting this option also implies that Vim behaves like 'autowrite' has
been set.
@@ -1670,7 +1671,8 @@ A jump table for the options with a short description can be found at |Q_op|.
a modified version of the following command in your vimrc file to
override it: >
:let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')
-< This option cannot be set from a |modeline| or in the |sandbox|, for
+< Environment variables are expanded |:set_env|.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
(parts of 'cdpath' can be passed to the shell to expand file names).
@@ -1814,13 +1816,19 @@ A jump table for the options with a short description can be found at |Q_op|.
for X-windows, "" otherwise)
global
{only in GUI versions or when the |+xterm_clipboard|
- or |+wayland_clipboard| features are included}
+ or |+wayland_clipboard| features or
+ |+clipboard_provider| features are included}
This option is a list of comma-separated names.
Note: if one of the items is "exclude:", then you can't add an item
after that. Therefore do not append an item with += but use ^= to
prepend, e.g.: >
set clipboard^=unnamed
< When using the GUI see |'go-A'|.
+ When using the |clipboard-providers| feature, only the "unnamed" and
+ "unnamedplus" features will be recognized If compiled without the
+ |+clipboard| feature but compiled with the |+clipboard_provider|
+ feature, then they will be the only values allowed and the other
+ values will be invalid.
These names are recognized:
*clipboard-unnamed*
@@ -1842,11 +1850,10 @@ A jump table for the options with a short description can be found at |Q_op|.
option, yank operations (but not delete, change or
put) will additionally copy the text into register
'*'. If Wayland is being used and the compositor does
- not support the primary-selection-unstable-v1
- protocol, then the regular selection is used in its
- place. Only available with the |+X11| or
- |+wayland_clipboard| feature. Availability can be
- checked with: >
+ not support the primary selection then the regular
+ selection is used in its place. Only available with
+ the |+X11| or |+wayland_clipboard| feature.
+ Availability can be checked with: >
if has('unnamedplus')
<
*clipboard-autoselect*
@@ -1911,18 +1918,22 @@ A jump table for the options with a short description can be found at |Q_op|.
for VMS: "x11",
otherwise: "")
global
- {only when the |+xterm_clipboard| or
- |+wayland_clipboard| features are included}
- Specifies which method of accessing the system clipboard is used,
- depending on which method works first or is available. Supported
- methods are:
+ {only when the |+xterm_clipboard|, |+wayland_clipboard|,
+ or |+eval| features are included}
+ Specifies which method of accessing the system clipboard (or clipboard
+ provider) is used. Methods are tried in the order given; the first
+ working method is used. Supported methods are:
wayland Wayland selections
x11 X11 selections
+ Use a clipboard provider with the given name
Note: This option is ignored when either the GUI is running or if Vim
is run on a system without Wayland or X11 support, such as Windows or
- macOS. The GUI or system way of accessing the clipboard is always
- used instead.
+ macOS. The GUI or system way of accessing the clipboard is used
+ instead, meaning |v:clipmethod| will be set to "none". The
+ exception to this is the |clipboard-providers| feature, in which if
+ a clipboard provider is being used, then it will override the existing
+ clipboard functionality.
The option value is a list of comma separated items. The list is
parsed left to right in order, and the first method that Vim
@@ -1991,8 +2002,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'commentstring'* *'cms'* *E537*
'commentstring' 'cms' string (default "/* %s */")
local to buffer
- {not available when compiled without the |+folding|
- feature}
A template for a comment. The "%s" in the value is replaced with the
comment text, and should be padded with a space when possible.
Currently used to add markers for folding, see |fold-marker|. Also
@@ -2212,11 +2221,13 @@ A jump table for the options with a short description can be found at |Q_op|.
*'completefuzzycollect'* *'cfc'*
'completefuzzycollect' 'cfc' string (default: empty)
global
- A comma-separated list of strings to enable fuzzy collection for
- specific |ins-completion| modes, affecting how matches are gathered
- during completion. For specified modes, fuzzy matching is used to
- find completion candidates instead of the standard prefix-based
- matching. This option can contain the following values:
+ DEPRECATED: This option is no longer used; changing it has no effect.
+ When 'completeopt' contains "fuzzy", Vim will internally use the
+ equivalent of:
+ "keyword,files,whole_line"
+
+ The values below are kept for compatibility and for scripts that
+ may read this option:
keyword keywords in the current file |i_CTRL-X_CTRL-N|
keywords with flags ".", "w", |i_CTRL-N| |i_CTRL-P|
@@ -2227,10 +2238,6 @@ A jump table for the options with a short description can be found at |Q_op|.
whole_line whole lines |i_CTRL-X_CTRL-L|
- When using the 'completeopt' "longest" option value, fuzzy collection
- can identify the longest common string among the best fuzzy matches
- and insert it automatically.
-
*'completeitemalign'* *'cia'*
'completeitemalign' 'cia' string (default: "abbr,kind,menu")
global
@@ -2250,16 +2257,13 @@ A jump table for the options with a short description can be found at |Q_op|.
fuzzy Enable |fuzzy-matching| for completion candidates. This
allows for more flexible and intuitive matching, where
characters can be skipped and matches can be found even
- if the exact sequence is not typed. Note: This option
- does not affect the collection of candidate list, it only
- controls how completion candidates are reduced from the
- list of alternatives. If you want to use |fuzzy-matching|
- to gather more alternatives for your candidate list,
- see 'completefuzzycollect'.
+ if the exact sequence is not typed (disabled for thesaurus
+ completion |compl-thesaurus|).
longest
When 'autocomplete' is not active, only the longest common
- prefix of the matches is inserted. If the popup menu is
+ prefix of the matches is inserted (disabled for thesaurus
+ completion |compl-thesaurus|). If the popup menu is
displayed, you can use CTRL-L to add more characters.
Whether case is ignored depends on the type of completion.
For buffer text the 'ignorecase' option applies.
@@ -2570,8 +2574,9 @@ A jump table for the options with a short description can be found at |Q_op|.
This makes "y0" fail in the first column.
*cpo-f*
f When included, a ":read" command with a file name
- argument will set the file name for the current buffer,
- if the current buffer doesn't have a file name yet.
+ argument will set the file name for the current
+ buffer, if the current buffer doesn't have a file name
+ yet.
*cpo-F*
F When included, a ":write" command with a file name
argument will set the file name for the current
@@ -3066,6 +3071,7 @@ A jump table for the options with a short description can be found at |Q_op|.
To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file
name. See |option-backslash| about using backslashes.
+ Environment variables are expanded |:set_env|.
This has nothing to do with the |Dictionary| variable type.
Where to find a list of words?
- On FreeBSD, there is the file "/usr/share/dict/words".
@@ -3171,8 +3177,8 @@ A jump table for the options with a short description can be found at |Q_op|.
hiddenoff Do not use diff mode for a buffer when it
becomes hidden.
- iblank Ignore changes where lines are all blank. Adds
- the "-B" flag to the "diff" command if
+ iblank Ignore changes where lines are all blank.
+ Adds the "-B" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
of the "diff" command for what this does
exactly.
@@ -3204,14 +3210,18 @@ A jump table for the options with a short description can be found at |Q_op|.
difference. Non-alphanumeric
multi-byte characters such as emoji
and CJK characters are considered
- individual words.
+ individual words. Small gaps of
+ non-word characters (5 bytes or less)
+ between changes are merged into a
+ single highlight block.
internal Use the internal diff library. This is
ignored when 'diffexpr' is set. *E960*
When running out of memory when writing a
- buffer this item will be ignored for diffs
- involving that buffer. Set the 'verbose'
- option to see when this happens.
+ buffer or the diff is larger than 1 GB this
+ item will be ignored for diffs involving that
+ buffer. Set the 'verbose' option to see when
+ this happens.
iwhite Ignore changes in amount of white space. Adds
the "-b" flag to the "diff" command if
@@ -3588,6 +3598,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|SafeState|,
|SafeStateAgain|,
|SessionLoadPost|,
+ |SessionLoadPre|,
|SessionWritePost|,
|ShellCmdPost|,
|SigUSR1|,
@@ -3801,9 +3812,9 @@ A jump table for the options with a short description can be found at |Q_op|.
edit a file, a check is done for the :
1. If all lines end in , and 'fileformats' includes "dos",
'fileformat' is set to "dos".
- 2. If a is found and 'fileformats' includes "unix", 'fileformat'
- is set to "unix". Note that when a is found without a
- preceding , "unix" is preferred over "dos".
+ 2. If a is found and 'fileformats' includes "unix",
+ 'fileformat' is set to "unix". Note that when a is found
+ without a preceding , "unix" is preferred over "dos".
3. If 'fileformat' has not yet been set, and if a is found, and
if 'fileformats' includes "mac", 'fileformat' is set to "mac".
This means that "mac" is only chosen when:
@@ -4271,15 +4282,17 @@ A jump table for the options with a short description can be found at |Q_op|.
*'fsync'* *'fs'* *'nofsync'* *'nofs'*
'fsync' 'fs' boolean (default on)
- global
+ global or local to buffer |global-local|
When on, the library function fsync() will be called after writing a
file. This will flush a file to disk, ensuring that it is safely
written even on filesystems which do metadata-only journaling. This
- will force the harddrive to spin up on Linux systems running in laptop
- mode, so it may be undesirable in some situations. Be warned that
- turning this off increases the chances of data loss after a crash. On
- systems without an fsync() implementation, this variable is always
- off.
+ will force the hard drive to spin up on Linux systems running in
+ laptop mode, so it may be undesirable in some situations. Be warned
+ that turning this off increases the chances of data loss after a
+ crash. On systems without an fsync() implementation, this variable is
+ always off.
+ This is a |global-local| option, so it can be set per buffer, for
+ example when writing to a slow filesystem.
Also see 'swapsync' for controlling fsync() on swap files.
'fsync' also applies to |writefile()| (unless a flag is used to
overrule it) and when writing undo files (see |undo-persistence|).
@@ -4510,8 +4523,8 @@ A jump table for the options with a short description can be found at |Q_op|.
by a yank or delete operation for the "* register.
The same applies to the modeless selection.
*'go-P'*
- 'P' Like autoselect but using the "+ register instead of the "*
- register.
+ 'P' Like autoselect but only copy to the "+ register instead of
+ the "* register.
*'go-A'*
'A' Autoselect for the modeless selection. Like 'a', but only
applies to the modeless selection.
@@ -4529,17 +4542,17 @@ A jump table for the options with a short description can be found at |Q_op|.
choices.
*'go-C'*
'C' Use |hl-TitleBar| and |hl-TitleBarNC| if available.
- Currently only works for MS-Window GUI.
+ Currently only works for MS-Windows GUI.
See |gui-w32-title-bar| for details.
*'go-d'*
'd' Use dark theme variant if available. Currently only works for
- GTK+ GUI.
+ MS-Windows and GTK+ GUI.
*'go-e'*
'e' Add tab pages when indicated with 'showtabline'.
'guitablabel' can be used to change the text in the labels.
When 'e' is missing a non-GUI tab pages line may be used.
- The GUI tabs are only supported on some systems, currently GTK,
- Motif, Mac OS/X, Haiku, and MS-Windows.
+ The GUI tabs are only supported on some systems, currently
+ GTK, Motif, Mac OS/X, Haiku, and MS-Windows.
*'go-f'*
'f' Foreground: Don't use fork() to detach the GUI from the shell
where it was started. Use this for programs that wait for the
@@ -4569,6 +4582,12 @@ A jump table for the options with a short description can be found at |Q_op|.
*'go-T'*
'T' Include Toolbar. Currently only in Win32, GTK+, Motif and
Photon GUIs.
+ *'go-s'*
+ 's' Enable fullscreen mode. Currently only supported in the
+ MS-Windows GUI version. When set, the window will occupy the
+ entire screen and remove window decorations. Define custom
+ mappings to toggle this mode conveniently. For detailed usage
+ instructions, see |gui-w32-fullscreen|.
*'go-r'*
'r' Right-hand scrollbar is always present.
*'go-R'*
@@ -4794,6 +4813,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-PmenuBorder| j popup menu border characters
|hl-PmenuShadow| H popup menu shadow
|hl-PreInsert| I text inserted when "preinsert" is in 'completeopt'
+ |hl-Normal| ( Window color (supersedes 'wincolor' option)
+
+ Note that the "(" occasion is not set by default.
The display modes are:
r reverse (termcap entry "mr" and "me")
@@ -5124,10 +5146,9 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the
|+extra_search| features}
While typing a search command, show where the pattern, as it was typed
- so far, matches (ignoring {offset} and {address} modifiers). The
- matched string is highlighted. If the pattern is invalid or not
- found, nothing is shown. The screen will be updated often, this is
- only useful on fast terminals.
+ so far, matches. The matched string is highlighted. If the pattern
+ is invalid or not found, nothing is shown. The screen will be updated
+ often, this is only useful on fast terminals.
Also applies to the pattern in commands: >
:global
:lvimgrep
@@ -5237,23 +5258,6 @@ A jump table for the options with a short description can be found at |Q_op|.
and there is a letter before it, the completed part is made uppercase.
With 'noinfercase' the match is used as-is.
- *'isexpand'* *'ise'*
-'isexpand' 'ise' string (default: "")
- local to buffer
- Defines characters and patterns for completion in insert mode. Used
- by the |complete_match()| function to determine the starting position
- for completion. This is a comma-separated list of triggers. Each
- trigger can be:
- - A single character like "." or "/"
- - A sequence of characters like "->", "/*", or "/**"
-
- Note: Use "\\," to add a literal comma as trigger character, see
- |option-backslash|.
-
- Examples: >
- set isexpand=.,->,/*,\\,
-<
-
*'insertmode'* *'im'* *'noinsertmode'* *'noim'*
'insertmode' 'im' boolean (default off)
global
@@ -5359,7 +5363,13 @@ A jump table for the options with a short description can be found at |Q_op|.
"w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See
'isfname' for a description of the format of this option. For '@'
characters above 255 check the "word" character class (any character
- that is not white space or punctuation).
+ that is categorized as a letter, number or emoji according to the
+ Unicode general category).
+
+ Note that there is a difference between the "\k" character class and
+ the |word| motion. The former matches any word character, while the
+ latter stops at a change of the character class.
+
For C programs you could use "a-z,A-Z,48-57,_,.,-,>".
For a help file it is set to all non-blank printable characters except
'*', '"' and '|' (so that CTRL-] on a command finds the help for that
@@ -5804,6 +5814,15 @@ A jump table for the options with a short description can be found at |Q_op|.
---+---+--XXX ~
Where "XXX" denotes the first non-blank characters in
the line.
+ *lcs-leadtab*
+ leadtab:xy[z]
+ Like |lcs-tab|, but only for leading tabs. When
+ omitted, the "tab" setting is used for leading tabs.
+ |lcs-tab| must also be set for this to work. *E1572*
+ You can combine it with "tab:", for example: >
+ :set listchars=tab:>-,leadtab:.\
+< This shows leading tabs as periods(.) and other tabs
+ as ">--".
*lcs-trail*
trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank. Overrides the "space" and
@@ -5903,8 +5922,8 @@ A jump table for the options with a short description can be found at |Q_op|.
*'makeencoding'* *'menc'*
'makeencoding' 'menc' string (default "")
global or local to buffer |global-local|
- Encoding used for reading the output of external commands. When empty,
- encoding is not converted.
+ Encoding used for reading the output of external commands. When
+ empty, encoding is not converted.
This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,
`:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`,
and `:laddfile`.
@@ -6048,7 +6067,8 @@ A jump table for the options with a short description can be found at |Q_op|.
When the number of matches exceeds this value, Vim shows ">" instead
of the exact count to keep searching fast.
Note: larger values may impact performance.
- The value must be between 1 and 9999.
+ The value must be between 1 and 9999. See also the |searchcount()|
+ function.
*'menuitems'* *'mis'*
'menuitems' 'mis' number (default 25)
@@ -6119,7 +6139,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:set mkspellmem=900000,3000,800
< If you have less than 512 Mbyte |:mkspell| may fail for some
languages, no matter what you set 'mkspellmem' to.
-
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -6211,8 +6231,8 @@ A jump table for the options with a short description can be found at |Q_op|.
< If your terminal can't overrule the mouse events going to the
application, use: >
:set mouse=nvi
-< Then you can press ":", select text for the system, and press Esc to go
- back to Vim using the mouse events.
+< Then you can press ":", select text for the system, and press Esc to
+ go back to Vim using the mouse events.
In |defaults.vim| "nvi" is used if the 'term' option is not matching
"xterm".
@@ -6542,6 +6562,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'packpath'* *'pp'*
'packpath' 'pp' string (default: see 'runtimepath')
Directories used to find packages. See |packages|.
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -6978,6 +6999,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|lambda| or a |Funcref|. See |option-value-function| for more
information.
+ It is not allowed to change text or jump to another window while
+ evaluating 'qftf' |textlock|.
+
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -7332,7 +7356,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For $XDG_CONFIG_HOME see |xdg-base-dir|.
The defaults for most systems are setup to search five locations:
- 1. In your home directory, for your personal preferences.
+ 1. In your $MYVIMDIR directory, for your personal preferences.
2. In a system-wide Vim directory, for preferences from the system
administrator.
3. In $VIMRUNTIME, for files distributed with Vim.
@@ -7340,7 +7364,7 @@ A jump table for the options with a short description can be found at |Q_op|.
4. In the "after" directory in the system-wide Vim directory. This is
for the system administrator to overrule or add to the distributed
defaults (rarely needed)
- 5. In the "after" directory in your home directory. This is for
+ 5. In the "after" directory in your $MYVIMDIR directory. This is for
personal preferences to overrule or add to the distributed defaults
or system-wide settings (rarely needed).
@@ -7366,6 +7390,7 @@ A jump table for the options with a short description can be found at |Q_op|.
runtime files.
When Vim is started with |--clean| the home directory entries are not
included.
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -7397,6 +7422,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'scrollfocus' 'scf' boolean (default off)
global
{only for MS-Windows GUI}
+ NOTE: This option is currently not functional. It may be fixed or
+ removed in a future version.
When using the scroll wheel and this option is set, the window under
the mouse pointer is scrolled. With this option off the current
window is scrolled.
@@ -7867,7 +7894,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"search hit TOP, continuing at BOTTOM" messages are only
indicated by a "W" (Mnemonic: Wrapped) letter before the
search count statistics. The maximum limit can be set with
- the 'maxsearchcount' option.
+ the 'maxsearchcount' option, see also |searchcount()|
+ function.
This gives you the opportunity to avoid that a change between buffers
requires you to hit , but still gives as useful a message as
@@ -8144,7 +8172,7 @@ A jump table for the options with a short description can be found at |Q_op|.
when it is turned off. It is also reset when 'compatible' is set.
The 'L' flag in 'cpoptions' alters tab behavior when 'list' is
- enabled. See also |ins-expandtab| ans user manual section |30.5| for
+ enabled. See also |ins-expandtab| and user manual section |30.5| for
in-depth explanations.
If Vim is compiled with the |+vartabs| feature then the value of
@@ -8198,6 +8226,7 @@ A jump table for the options with a short description can be found at |Q_op|.
name if you want to. However, it will then only be used when
'spellfile' is set to it, for entries in 'spelllang' only files
without region name will be found.
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -8325,7 +8354,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Only one of "best", "double" or "fast" may be used. The others may
appear several times in any order. Example: >
:set sps=file:~/.vim/sugg,best,expr:MySuggest()
-<
+< Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -8500,10 +8529,14 @@ A jump table for the options with a short description can be found at |Q_op|.
highlighting is used, also for the statusline of non-current
windows.
* - Set highlight group to User{N}, where {N} is taken from the
- minwid field, e.g. %1*. Restore normal highlight with %* or %0*.
- The difference between User{N} and StatusLine will be applied to
- StatusLineNC for the statusline of non-current windows.
+ minwid field, e.g. %1*. Restore normal highlight with %* or
+ %0*. The difference between User{N} and StatusLine will be
+ applied to StatusLineNC for the statusline of non-current
+ windows.
The number N must be between 1 and 9. See |hl-User1..9|
+ *stl-%@*
+ @ - Inserts a newline. This only takes effect when the "maxheight"
+ value of 'statuslineopt' is greater than 1, or for |tabpanel|.
When displaying a flag, Vim removes the leading comma, if any, when
that flag comes right after plaintext. This will make a nice display
@@ -8561,6 +8594,51 @@ A jump table for the options with a short description can be found at |Q_op|.
:function VarExists(var, val)
: if exists(a:var) | return a:val | else | return '' | endif
:endfunction
+<
+ *'statuslineopt'* *'stlo'*
+'statuslineopt' 'stlo' string (default "")
+ global or local to window |global-local|
+ {not available when compiled without the |+statusline|
+ feature}
+ Optional settings for |status-line|. It can consist of the following
+ items. All are optional. Items must be separated by a comma.
+
+ fixedheight Fix the status line height to "maxheight".
+ Without this, the height varies from 1 to
+ "maxheight" based on the number of newline
+ |stl-%@| in 'statusline'.
+
+ maxheight:{n} Set the maximum status line height to {n}.
+ {n} must be 1 or greater. If not specified, the
+ height is 1.
+ When {n} is 2 or more, you can use newline
+ |stl-%@| in 'statusline' to display information on
+ multiple lines.
+
+ If {n} cannot be set due to insufficient window
+ height or other constraints, a best-effort
+ approach will be taken to set the closest possible
+ value that does not exceed {n}. No error will be
+ shown even if the setting cannot be changed.
+
+ For the global value, a value applicable to all
+ windows on all tab pages is used. For a
+ window-local value, a value applicable to that
+ window is used.
+ Note: When the applied value differs from {n}, the
+ option is updated to reflect it.
+ Example of updated options: >vim
+ :set statuslineopt=maxheight:999,fixedheight
+ " Only 20 lines could be applied, so
+ " maxheight is updated to 20.
+ :set statuslineopt?
+ statuslineopt=maxheight:20,fixedheight
+<
+ Examples: >
+ :set statuslineopt=fixedheight
+ :set stlo=
+ :set stlo=maxheight:2,fixedheight
+ :set stlo-=fixedheight
<
*'suffixes'* *'su'*
'suffixes' 'su' string (default ".bak,~,.o,.h,.info,.swp,.obj")
@@ -8747,11 +8825,11 @@ A jump table for the options with a short description can be found at |Q_op|.
You can use |g:actual_curtabpage| within a function assigned to
tabpanel. |g:actual_curtabpage| represents current tab's label number.
- The option value can contain line breaks: >
+ You can use "%@" or "\n" to insert a newline: >
set tabpanel=%!TabPanel()
function! TabPanel() abort
- return printf("(%2d)\n %%f", g:actual_curtabpage)
+ return "(" .. g:actual_curtabpage .. ")%@ %f"
endfunction
<
The result is:
@@ -8765,6 +8843,9 @@ A jump table for the options with a short description can be found at |Q_op|.
| |
| |
<
+ Note: using "\n" is considered experimental and deprecated, prefer
+ the |stl-%@| atom instead.
+
*'tabpanelopt'* *'tplo'*
'tabpanelopt' 'tplo' string (default "")
global
@@ -9035,6 +9116,39 @@ A jump table for the options with a short description can be found at |Q_op|.
<
NOTE: This option is reset when 'compatible' is set.
+ *'termresize'* *'trz'*
+'termresize' 'trz' string (default "")
+ global
+ {only available in Unix, does not work in the GUI}
+ Determines the method to use for detecting window resize events,
+ possible values are:
+ "sigwinch": Use the SIGWINCH signal.
+ "inband": Receive resize events from the terminal via escape
+ sequences (recommended if supported by terminal).
+ "": Automatically choose depending on terminal.
+
+ The SIGWINCH handler is always available. If set to "inband" and the
+ terminal does not support in-band window resize events, then the
+ SIGWINCH handler will be used instead as a fallback. If set to ""
+ (empty option), then "inband" will be used if Vim detects that the
+ terminal supports it, otherwise "sigwinch".
+
+
+ *'termsync'* *'tsy'*
+'termsync' 'tsy' boolean (default off)
+ global
+ If the host terminal supports it, buffer all screen updates made
+ during a redraw cycle so that each screen is displayed in the terminal
+ all at once. This can prevent tearing or flickering when the terminal
+ updates faster than Vim can redraw. If the host terminal does not
+ support it or if Vim is running graphically, then this option does
+ nothing.
+
+ The specification can be found at:
+ https://github.com/contour-terminal/vt-extensions/blob/master/synchronized-output.md
+
+ The terminal codes used are |t_BS| and |t_ES|.
+
*'termwinkey'* *'twk'*
'termwinkey' 'twk' string (default "")
local to window
@@ -9103,8 +9217,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|ConPTY| support depends on the platform. Windows 10 October 2018
Update is the first version that supports ConPTY, however it is still
- considered unstable. ConPTY might become stable in the next release
- of Windows 10. winpty support needs to be installed. If neither is
+ considered unstable. ConPTY has become stable with the initial release
+ of Windows 11. winpty support needs to be installed. If neither is
supported then you cannot open a terminal window.
*'terse'* *'noterse'*
@@ -9162,8 +9276,9 @@ A jump table for the options with a short description can be found at |Q_op|.
name. See |option-backslash| about using backslashes. The use of
|:set+=| and |:set-=| is preferred when adding or removing directories
from the list. This avoids problems when a future version uses
- another default. Backticks cannot be used in this option for security
- reasons.
+ another default.
+ Environment variables are expanded |:set_env|.
+ Backticks cannot be used in this option for security reasons.
*'thesaurusfunc'* *'tsrfu'*
'thesaurusfunc' 'tsrfu' string (default: empty)
@@ -9491,6 +9606,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'ttytype' 'tty' string (default from $TERM)
global
Alias for 'term', see above.
+ Environment variables are expanded |:set_env|.
*'undodir'* *'udir'*
'undodir' 'udir' string (default ".")
@@ -9508,6 +9624,7 @@ A jump table for the options with a short description can be found at |Q_op|.
undo file that exists is used. When it cannot be read an error is
given, no further entry is used.
See |undo-persistence|.
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -9530,9 +9647,9 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local|
Maximum number of changes that can be undone. Since undo information
is kept in memory, higher numbers will cause more memory to be used.
- Nevertheless, a single change can already use a large amount of memory.
- Set to 0 for Vi compatibility: One level of undo and "u" undoes
- itself: >
+ Nevertheless, a single change can already use a large amount of
+ memory. Set to 0 for Vi compatibility: One level of undo and "u"
+ undoes itself: >
set ul=0
< But you can also get Vi compatibility by including the 'u' flag in
'cpoptions', and still be able to use CTRL-R to repeat undo.
@@ -9659,6 +9776,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Setting 'verbosefile' to a new value is like making it empty first.
The difference with |:redir| is that verbose messages are not
displayed when 'verbosefile' is set.
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -9673,6 +9791,7 @@ A jump table for the options with a short description can be found at |Q_op|.
feature}
Name of the directory where to store files for |:mkview|.
For $XDG_CONFIG_HOME see |xdg-base-dir|.
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -9828,6 +9947,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When equal to "NONE" no viminfo file will be read or written.
This option can be set with the |-i| command line flag. The |--clean|
command line flag sets it to "NONE".
+ Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -9865,9 +9985,9 @@ A jump table for the options with a short description can be found at |Q_op|.
*'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep*
'visualbell' 'vb' boolean (default off)
global
- Use a visual bell instead of beeping. The terminal code to display the
- visual bell is given with 't_vb'. When no beep or flash is wanted,
- use: >
+ Use a visual bell instead of beeping. The terminal code to display
+ the visual bell is given with 't_vb'. When no beep or flash is
+ wanted, use: >
:set vb t_vb=
< If you want a short flash, you can use this on many terminals: >
:set vb t_vb=[?5h$<100>[?5l
@@ -9875,8 +9995,9 @@ A jump table for the options with a short description can be found at |Q_op|.
to get a shorter or longer flash.
Note: Vim will limit the bell to once per half a second. This avoids
- having to wait for the flashing to finish when there are lots of bells,
- e.g. on key repeat. This also happens without 'visualbell' set.
+ having to wait for the flashing to finish when there are lots of
+ bells, e.g. on key repeat. This also happens without 'visualbell'
+ set.
In the GUI, 't_vb' defaults to "|f", which inverts the display
for 20 msec. If you want to use a different time, use "|40f",
@@ -9963,10 +10084,11 @@ A jump table for the options with a short description can be found at |Q_op|.
'wildcharm' 'wcm' number (default: none (0))
global
'wildcharm' works exactly like 'wildchar', except that it is
- recognized when used inside a macro. You can find "spare" command-line
- keys suitable for this option by looking at |ex-edit-index|. Normally
- you'll never actually type 'wildcharm', just use it in mappings that
- automatically invoke completion mode, e.g.: >
+ recognized when used inside a macro. You can find "spare"
+ command-line keys suitable for this option by looking at
+ |ex-edit-index|. Normally you'll never actually type 'wildcharm',
+ just use it in mappings that automatically invoke completion mode,
+ e.g.: >
:set wcm=
:cnoremap ss so $vim/sessions/*.vim
< Then after typing :ss you can use CTRL-P & CTRL-N.
@@ -10180,8 +10302,19 @@ A jump table for the options with a short description can be found at |Q_op|.
*'wincolor'* *'wcr'*
'wincolor' 'wcr' string (default empty)
local to window
+ DEPRECATED: Use 'winhighlight' if possible, this option uses
+ 'winhighlight' internally by setting it to: >vim
+ set winhighlight=!(:HighlightGroup
+< If this option is set and 'winhighlight' is changed, then it will not
+ update the option value. For example, if 'wincolor' is set to "A" and
+ then 'winhighlight' is to an empty value, then 'wincolor' will still
+ remain as "A". Additionally, the existing value in 'winhighlight' will
+ be discarded when this option is set.
+
Highlight group name to use for this window instead of the Normal
- color |hl-Normal|.
+ color |hl-Normal|. For other |highlight-groups|, see 'winhighlight'.
+ Note that it is not recommended to set this and 'winhighlight' at the
+ same time.
*'window'* *'wi'*
'window' 'wi' number (default screen height - 1)
@@ -10240,6 +10373,35 @@ A jump table for the options with a short description can be found at |Q_op|.
'winheight' applies to the current window. Use 'winminheight' to set
the minimal height for other windows.
+ *'winhighlight'* *'whl'*
+'winhighlight' 'whl' string (default empty)
+ local to window
+ Window-local highlight group mappings. Comma-delimited list of
+ highlight |group-name| pairs "{hl-from}:{hl-to},..." where each
+ {hl-from} is a |highlight-groups| item to be overridden by {hl-to}
+ group in the window. If {hl-from} is "Normal", then it will always
+ map to the "(" (window color) value in 'highlight'.
+
+ If a highlight group name starts with "!", then it is assumed to map
+ to a value in 'highlight'. For example, this will override the
+ visual mode setting: >vim
+ set winhighlight=!v:SomeHighlightGroup
+< This will map the occasion "v" to occasion "l" >vim
+ set winhighlight=!v:!l
+<
+ Highlights of vertical separators are determined by the window to the
+ left of the separator. The 'tabline' highlight of a tabpage is
+ decided by the last-focused window of the tabpage. Highlights of
+ the popupmenu are determined by the current window. Highlights in the
+ message area cannot be overridden.
+
+ When handling highlight group links, if a highlight group (which may
+ be a link as well) is overridden by 'winhighlight', then all highlight
+ groups that link to it will be affected. For example, if highlight
+ group C links to B which links to A, then >vim
+ set winhighlight=B:SomeHighlightGroup
+< will make SomeHighlightGroup override groups B and C, but not A.
+
*'winminheight'* *'wmh'*
'winminheight' 'wmh' number (default 1)
global
diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt
index b30c1b2b..c7532d9e 100644
--- a/runtime/doc/os_390.txt
+++ b/runtime/doc/os_390.txt
@@ -1,7 +1,8 @@
-*os_390.txt* For Vim version 9.1. Last change: 2025 Oct 26
+*os_390.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Ralf Schandl
+ VIM REFERENCE MANUAL by Ralf Schandl
+
*zOS* *z/OS* *OS390* *os390* *MVS*
This file contains the particulars for the z/OS UNIX version of Vim.
diff --git a/runtime/doc/os_amiga.txt b/runtime/doc/os_amiga.txt
index 046a24fb..a7770799 100644
--- a/runtime/doc/os_amiga.txt
+++ b/runtime/doc/os_amiga.txt
@@ -1,7 +1,7 @@
-*os_amiga.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_amiga.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*Amiga*
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index 5ac41597..460175a5 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -1,7 +1,7 @@
-*os_beos.txt* For Vim version 9.1. Last change: 2020 Jun 07
+*os_beos.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*beos* *BeOS* *BeBox*
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index 7e85f714..55534304 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,7 +1,7 @@
-*os_dos.txt* For Vim version 9.1. Last change: 2025 Aug 06
+*os_dos.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*dos* *DOS*
diff --git a/runtime/doc/os_haiku.txt b/runtime/doc/os_haiku.txt
index bdabbb14..5d46b56c 100644
--- a/runtime/doc/os_haiku.txt
+++ b/runtime/doc/os_haiku.txt
@@ -1,7 +1,7 @@
-*os_haiku.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_haiku.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*Haiku*
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index 7e81b909..eb5cbc2b 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -1,7 +1,7 @@
-*os_mac.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_mac.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar et al.
+ VIM REFERENCE MANUAL by Bram Moolenaar et al.
*mac* *Mac* *macintosh* *Macintosh*
diff --git a/runtime/doc/os_mint.txt b/runtime/doc/os_mint.txt
index 4ad0399d..3edc9d68 100644
--- a/runtime/doc/os_mint.txt
+++ b/runtime/doc/os_mint.txt
@@ -1,7 +1,7 @@
-*os_mint.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_mint.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Jens M. Felderhoff
+ VIM REFERENCE MANUAL by Jens M. Felderhoff
*MiNT* *Atari*
diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt
index d6d67f00..b64d5c39 100644
--- a/runtime/doc/os_msdos.txt
+++ b/runtime/doc/os_msdos.txt
@@ -1,7 +1,7 @@
-*os_msdos.txt* For Vim version 9.1. Last change: 2016 Feb 26
+*os_msdos.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*msdos* *ms-dos* *MSDOS* *MS-DOS*
diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt
index bd24d139..f9df1d6a 100644
--- a/runtime/doc/os_os2.txt
+++ b/runtime/doc/os_os2.txt
@@ -1,7 +1,7 @@
-*os_os2.txt* For Vim version 9.1. Last change: 2015 Dec 31
+*os_os2.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Paul Slootman
+ VIM REFERENCE MANUAL by Paul Slootman
*os2* *OS2* *OS/2*
diff --git a/runtime/doc/os_qnx.txt b/runtime/doc/os_qnx.txt
index e55bdf82..5131e4a9 100644
--- a/runtime/doc/os_qnx.txt
+++ b/runtime/doc/os_qnx.txt
@@ -1,7 +1,7 @@
-*os_qnx.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_qnx.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Julian Kinraid
+ VIM REFERENCE MANUAL by Julian Kinraid
*QNX* *qnx*
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index dad3549b..b1a74801 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -1,7 +1,7 @@
-*os_risc.txt* For Vim version 9.1. Last change: 2011 May 10
+*os_risc.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Thomas Leonard
+ VIM REFERENCE MANUAL by Thomas Leonard
*riscos* *RISCOS* *RISC-OS*
diff --git a/runtime/doc/os_unix.txt b/runtime/doc/os_unix.txt
index 90069a20..c315aec5 100644
--- a/runtime/doc/os_unix.txt
+++ b/runtime/doc/os_unix.txt
@@ -1,7 +1,7 @@
-*os_unix.txt* For Vim version 9.1. Last change: 2022 Nov 25
+*os_unix.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*unix* *Unix*
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 8a800c10..7d00b59d 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_vms.txt* For Vim version 9.2. Last change: 2026 Feb 14
VIM REFERENCE MANUAL
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 53b967f8..694e0fe7 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,7 +1,7 @@
-*os_win32.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*os_win32.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by George Reilly
+ VIM REFERENCE MANUAL by George Reilly
*win32* *Win32* *MS-Windows*
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 33816945..18d7a411 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,7 +1,7 @@
-*pattern.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*pattern.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Patterns and search commands *pattern-searches*
@@ -1169,13 +1169,15 @@ x A single character, with no special meaning, matches itself
*[:graph:]* [:graph:] isgraph ASCII printable characters excluding
space
*[:lower:]* [:lower:] (1) lowercase letters (all letters when
- 'ignorecase' is used)
+ 'ignorecase' is used and the old
+ engine is in use |two-engines|)
*[:print:]* [:print:] (2) printable characters including space
*[:punct:]* [:punct:] ispunct ASCII punctuation characters
*[:space:]* [:space:] whitespace characters: space, tab, CR,
NL, vertical tab, form feed
*[:upper:]* [:upper:] (3) uppercase letters (all letters when
- 'ignorecase' is used)
+ 'ignorecase' is used and the old
+ engine is in use |two-engines|)
*[:xdigit:]* [:xdigit:] hexadecimal digits: 0-9, a-f, A-F
*[:return:]* [:return:] the character
*[:tab:]* [:tab:] the character
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index ff617774..756d9e83 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -1,4 +1,4 @@
-*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Aug 10
+*pi_getscript.txt* For Vim version 9.2. Last change: 2026 Feb 14
>
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
<
@@ -57,7 +57,8 @@ The GetLatestVimScripts.dist file serves as an example and a template for your
own personal list. Feel free to remove all the scripts mentioned within it;
the "important" part of it is the first two lines.
-Your computer needs to have wget or curl for GetLatestVimScripts to do its work.
+Your computer needs to have wget or curl for GetLatestVimScripts to do its
+work.
1. if compressed: gunzip getscript.vmb.gz
2. Unix:
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index cb4fc6b3..bce98d55 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -1,7 +1,7 @@
-*pi_gzip.txt* For Vim version 9.1. Last change: 2025 Mar 05
+*pi_gzip.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Editing compressed files with Vim *gzip* *bzip2* *compress*
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index 04988969..82fa1c78 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,7 +1,7 @@
-*pi_paren.txt* For Vim version 9.1. Last change: 2024 Nov 04
+*pi_paren.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Highlighting matching parens *matchparen*
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index a8d26cdb..986e00e0 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -1,4 +1,4 @@
-*pi_spec.txt* For Vim version 9.1. Last change: 2006 Apr 24
+*pi_spec.txt* For Vim version 9.2. Last change: 2026 Feb 14
by Gustavo Niemeyer ~
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index 9064b2ba..0bba3c37 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*pi_tar.txt* For Vim version 9.1. Last change: 2025 Aug 10
+*pi_tar.txt* For Vim version 9.2. Last change: 2026 Feb 14
+====================+
| Tar File Interface |
diff --git a/runtime/doc/pi_tutor.txt b/runtime/doc/pi_tutor.txt
index 9b1de1f7..121b286d 100644
--- a/runtime/doc/pi_tutor.txt
+++ b/runtime/doc/pi_tutor.txt
@@ -1,4 +1,4 @@
-*pi_tutor.txt* For Vim version 9.1. Last change: 2025 May 19
+*pi_tutor.txt* For Vim version 9.2. Last change: 2026 Feb 14
INTERACTIVE TUTORIALS FOR VIM *vim-tutor-mode*
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index f498e57f..fdf71730 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt* For Vim version 9.1. Last change: 2025 Aug 06
+*pi_vimball.txt* For Vim version 9.2. Last change: 2026 Feb 14
----------------
Vimball Archiver
@@ -9,13 +9,13 @@ Author: Charles E. Campbell
Copyright: (c) 2004-2015 by Charles E. Campbell *Vimball-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including vimballPlugin.vim, vimball.vim, and pi_vimball.txt.
- except use "vimball" instead of "VIM". Like anything else that's free,
- vimball.vim and its associated files are provided *as is* and comes with
- no warranty of any kind, either expressed or implied. No guarantees
- of merchantability. No guarantees of suitability for any purpose. By
- using this plugin, you agree that in no event will the copyright
- holder be liable for any damages resulting from the use of this
- software. Use at your own risk!
+ except use "vimball" instead of "VIM". Like anything else that's
+ free, vimball.vim and its associated files are provided *as is* and
+ comes with no warranty of any kind, either expressed or implied. No
+ guarantees of merchantability. No guarantees of suitability for any
+ purpose. By using this plugin, you agree that in no event will the
+ copyright holder be liable for any damages resulting from the use of
+ this software. Use at your own risk!
==============================================================================
1. Contents *vba* *vimball* *vimball-contents*
@@ -248,8 +248,8 @@ WINDOWS *vimball-windows*
13 : May 01, 2006 * exists("&acd") used to determine if the acd
option exists
12 : May 01, 2006 * bugfix - the 'acd' option is not always defined
- 11 : Apr 27, 2006 * VimballList would create missing subdirectories that
- the vimball specified were needed. Fixed.
+ 11 : Apr 27, 2006 * VimballList would create missing subdirectories
+ that the vimball specified were needed. Fixed.
10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
functions. Included some more settings in them
which frequently cause trouble.
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index e32d4c19..b1bc7fd7 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt* For Vim version 9.1. Last change: 2025 Sep 22
+*pi_zip.txt* For Vim version 9.2. Last change: 2026 Feb 14
+====================+
| Zip File Interface |
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 41f4da54..e968a210 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,10 +1,10 @@
-*popup.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*popup.txt* For Vim version 9.2. Last change: 2026 Mar 02
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
-Displaying text in a floating window. *popup* *popup-window* *popupwin*
+Displaying text in a popup window. *popup* *popup-window* *popupwin*
1. Introduction |popup-intro|
@@ -21,6 +21,7 @@ Displaying text in a floating window. *popup* *popup-window* *popupwin*
Popup filter |popup-filter|
Popup callback |popup-callback|
Popup scrollbar |popup-scrollbar|
+ Popup opacity |popup-opacity|
Popup mask |popup-mask|
4. Examples |popup-examples|
@@ -772,6 +773,15 @@ The second argument of |popup_create()| is a dictionary with options:
the popup window.
highlight Highlight group name to use for the text, stored in
the 'wincolor' option.
+ highlights Highlight group overrides, stored in the
+ 'winhighlight' option (same format).
+ opacity Opacity of the popup, a value between 0 and 100:
+ 0 is fully transparent (background text fully visible)
+ 100 is fully opaque (default, no transparency)
+ Values in between blend the popup background with the
+ underlying text, making it partially transparent.
+ Requires 'termguicolors' to be set.
+ Also see |popup-opacity|.
padding List with numbers, defining the padding
above/right/below/left of the popup (similar to CSS).
An empty list uses a padding of 1 all around. The
@@ -1046,6 +1056,42 @@ A click in the lower half will scroll the text up one line. However, this is
limited so that the popup does not get smaller.
+
+POPUP OPACITY *popup-opacity*
+
+A popup window can be made semi-transparent by setting the "opacity" option.
+The opacity value ranges from 0 to 100:
+ 0 Fully transparent - the popup background is invisible and the
+ text behind the popup is fully visible.
+ 100 Fully opaque (default) - the popup is not transparent at all.
+ 1-99 Partially transparent - the popup background is blended with
+ the underlying text, making both partially visible.
+
+The transparency effect requires using the GUI or having 'termguicolors'
+enabled in the terminal. Without it, the opacity setting has no effect.
+
+When a popup is transparent:
+- The popup's background color is blended with the background text
+- The popup's text (foreground) remains fully visible and unblended
+- Text behind the popup is visible through transparent areas
+- The more transparent the popup (lower opacity), the more clearly the
+ background text can be seen
+
+This can be useful for:
+- Creating overlay windows that don't completely obscure underlying text
+- Showing contextual information without blocking the view
+- Creating visual effects and modern UI designs
+
+Example with 50% opacity: >
+ let winid = popup_create('Semi-transparent text', #{
+ \ line: 5,
+ \ col: 10,
+ \ opacity: 50,
+ \ })
+
+The opacity can be changed dynamically using |popup_setoptions()|: >
+ call popup_setoptions(winid, #{opacity: 80})
+
POPUP MASK *popup-mask*
To minimize the text that the popup covers, parts of it can be made
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index f5842fb4..2e846648 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,7 +1,7 @@
-*print.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*print.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Printing *printing*
@@ -304,7 +304,7 @@ another font will be used as follows:
if o: is missing, then use b:
Some CJK fonts do not contain characters for codes in the ASCII code range.
-Also, some characters in the CJK ASCII code ranges differ in a few code points
+Also, some characters in the CJK ASCII code ranges differ in a few codepoints
from traditional ASCII characters. There are two additional fields to control
printing of characters in the ASCII code range.
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 9a9788c2..581d00b7 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,7 +1,7 @@
-*quickfix.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*quickfix.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
This subject is introduced in section |30.1| of the user manual.
@@ -491,8 +491,8 @@ entries parsed from lines. The following shows how to use a custom
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
*:cdo*
-:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list.
- It works like doing this: >
+:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix
+ list. It works like doing this: >
:cfirst
:{cmd}
:cnext
@@ -625,6 +625,10 @@ can go back to the unfiltered list using the |:colder|/|:lolder| command.
errors. If the window is already open and there are
no recognized errors, close the window.
+ When opening the window and [height] is given, the
+ window becomes that high (if there is room). When
+ [height] is omitted the window is made ten lines high.
+
*:lw* *:lwindow*
:lw[indow] [height] Same as ":cwindow", except use the window showing the
location list for the current window.
@@ -1281,6 +1285,17 @@ For writing a compiler plugin, see |write-compiler-plugin|.
Use the |compiler-make| plugin to undo the effect of a compiler plugin.
+BIOME *compiler-biome* *quickfix-biome*
+
+Biome check lints JavaScript, TypeScript, JSX, TSX, JSON, JSONC, HTML, Vue,
+Svelte, Astro, CSS, GraphQL and GritQL files.
+
+Commonly used compiler options can be added to 'makeprg' by setting the
+b/g:biome_makeprg_params variable. For example (global default is ""): >
+
+ let b:biome_makeprg_params = "--diagnostic-level=error --staged"
+
+
CPPCHECK *quickfix-cppcheck* *compiler-cppcheck*
Use g/b:`c_cppcheck_params` to set cppcheck parameters. The global
@@ -1643,6 +1658,22 @@ b/g:mypy_makeprg_params variable. For example: >
The global default is "--strict --ignore-missing-imports".
+PYRIGHT TYPE CHECKER *compiler-pyright*
+
+Commonly used compiler options can be added to 'makeprg' by setting the
+b/g:pyright_makeprg_params variable.
+
+The global default is "pyright".
+
+TY TYPE CHECKER *compiler-ty*
+
+Commonly used compiler options and executable can be set by the
+b/g:ty_makeprg variable. For example: >
+
+ let b:ty_makeprg = "uv run ty"
+
+The global default is "ty --no-progress --color=never".
+
RUFF LINTER *compiler-ruff*
Commonly used compiler options can be added to 'makeprg' by setting the
@@ -1724,6 +1755,16 @@ shells and OSes and also does not allow to use other available TeX options,
if any. If your TeX doesn't support "-interaction=nonstopmode", please
report it with different means to express \nonstopmode from the command line.
+TOMBI *quickfix-toml* *compiler-tombi*
+
+The tombi compiler plugin does not compile.
+
+It runs "tombi lint" and parses diagnostics into the quickfix list.
+
+Color codes are stripped from the linter output to keep |errorformat|
+parsing reliable. This may require a working "sed" for old versions of the
+tombi linter.
+
TSC COMPILER *compiler-tsc*
The executable and compiler options can be added to 'makeprg' by setting the
@@ -1994,9 +2035,9 @@ case they have to precede the letter, e.g. '%+A' or '%-G':
%- do not include the matching multi-line in any output
%+ include the whole matching line in the %m error string
-One prefix is only useful in combination with '+' or '-', namely %G. It parses
-over lines containing general information like compiler version strings or
-other headers that can be skipped.
+One prefix is only useful in combination with '+' or '-', namely %G. It
+parses over lines containing general information like compiler version strings
+or other headers that can be skipped.
%-G ignore this message
%+G general message
@@ -2164,8 +2205,8 @@ prints information about entering a directory in the form "Making all in dir".
Making all in dir2 ./dir1/dir2
Making all in dir2 ./dir1/dir2
- This can be solved by printing absolute directories in the "enter directory"
- message or by printing "leave directory" messages.
+ This can be solved by printing absolute directories in the "enter
+ directory" message or by printing "leave directory" messages.
To avoid this problem, ensure to print absolute directory names and "leave
directory" messages.
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index e7dd45f8..fd277576 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,7 +1,8 @@
-*quickref.txt* For Vim version 9.1. Last change: 2025 Aug 23
+*quickref.txt* For Vim version 9.2. Last change: 2026 Mar 04
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
+
Quick reference guide
@@ -938,6 +939,7 @@ Short explanation of each option: *option-list*
'splitright' 'spr' new window is put right of the current one
'startofline' 'sol' commands move cursor to first non-blank in line
'statusline' 'stl' custom format for the status line
+'statuslineopt' 'stlo' additional options for the |status-line|
'suffixes' 'su' suffixes that are ignored with multiple match
'suffixesadd' 'sua' suffixes added when searching for a file
'swapfile' 'swf' whether to use a swapfile for a buffer
@@ -961,6 +963,7 @@ Short explanation of each option: *option-list*
'termbidi' 'tbidi' terminal takes care of bi-directionality
'termencoding' 'tenc' character encoding used by the terminal
'termguicolors' 'tgc' use GUI colors for the terminal
+'termsync' 'tsy' enable terminal sync mode for redraw
'termwinkey' 'twk' key that precedes a Vim command in a terminal
'termwinscroll' 'twsl' max number of scrollback lines in a terminal window
'termwinsize' 'tws' size of a terminal window
@@ -1015,6 +1018,7 @@ Short explanation of each option: *option-list*
'wildoptions' 'wop' specifies how command line completion is done
'winaltkeys' 'wak' when the windows system handles ALT keys
'wincolor' 'wcr' window-local highlighting
+'winhighlight' 'whl' window-local highlighting mappings
'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
'winfixbuf' 'wfb' keep window focused on a single buffer
'winfixheight' 'wfh' keep window height when opening/closing windows
diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt
index 0eeb1b69..19d752c6 100644
--- a/runtime/doc/quotes.txt
+++ b/runtime/doc/quotes.txt
@@ -1,7 +1,7 @@
-*quotes.txt* For Vim version 9.1. Last change: 2018 Mar 29
+*quotes.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
*quotes*
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index b399b239..c52910c1 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,7 +1,7 @@
-*recover.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*recover.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Recovery after a crash *crash-recovery*
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 79c9011b..2f77fcaa 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,7 +1,7 @@
-*remote.txt* For Vim version 9.1. Last change: 2025 Aug 22
+*remote.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Vim client-server communication *client-server*
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index d1b2012c..ac7c7871 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,7 +1,7 @@
-*repeat.txt* For Vim version 9.1. Last change: 2025 Oct 13
+*repeat.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Repeating commands, Vim scripts and debugging *repeating*
@@ -328,6 +328,12 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
you will need to write `filetype plugin indent on`
AFTER all `packadd!` commands.
+ To programmatically decide if `!` is needed during
+ startup, check |v:vim_did_init|: use `!` if 0 (to not
+ duplicate |load-plugins| step), no `!` otherwise (to
+ force load plugin files as otherwise they won't be
+ loaded automatically).
+
Also see |pack-add|.
{only available when compiled with |+eval|}
@@ -1214,7 +1220,8 @@ Additionally, these commands can be used:
*>bt*
*>backtrace*
*>where*
- backtrace Show the call stacktrace for current debugging session.
+ backtrace Show the call stacktrace for current debugging
+ session.
bt
where
*>frame*
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index 8589bb6a..206951f8 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,7 +1,7 @@
-*rileft.txt* For Vim version 9.1. Last change: 2022 Oct 12
+*rileft.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Avner Lottem
+ VIM REFERENCE MANUAL by Avner Lottem
updated by Nadim Shaikli
diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt
index bf6493d5..97d04563 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -1,7 +1,7 @@
-*russian.txt* For Vim version 9.1. Last change: 2006 Apr 24
+*russian.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Vassily Ragosin
+ VIM REFERENCE MANUAL by Vassily Ragosin
Russian language localization and support in Vim *russian* *Russian*
@@ -11,13 +11,13 @@ Russian language localization and support in Vim *russian* *Russian*
3. Localization |russian-l18n|
4. Known issues |russian-issues|
-===============================================================================
+==============================================================================
1. Introduction *russian-intro*
Russian language is supported perfectly well in Vim. You can type and view
Russian text just as any other, without the need to tweak the settings.
-===============================================================================
+==============================================================================
2. Russian keymaps *russian-keymap*
To switch between languages you can use your system native keyboard switcher,
@@ -41,7 +41,7 @@ This is in utf-8, you cannot read this if your 'encoding' is not utf-8.
You have to type this command in one line, it is wrapped for the sake of
readability.
-===============================================================================
+==============================================================================
3. Localization *russian-l18n*
If you wish to use messages, help files, menus and other items translated to
@@ -60,7 +60,7 @@ $VIMRUNTIME directory. We recommend using UTF-8 archive.
In order to use the Russian documentation, make sure you have set the
'helplang' option to "ru".
-===============================================================================
+==============================================================================
4. Known issues *russian-issues*
-- If you are using Russian message translations in Win32 console, then
@@ -69,5 +69,5 @@ In order to use the Russian documentation, make sure you have set the
is related to a bug in GNU gettext library and may be fixed in the future
releases of gettext.
-===============================================================================
+==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index f0ec16b6..63d0beed 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,7 +1,7 @@
-*scroll.txt* For Vim version 9.1. Last change: 2024 Jul 06
+*scroll.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Scrolling *scrolling*
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index f49f74e9..22233efb 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,7 +1,7 @@
-*sign.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*sign.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Gordon Prieur
+ VIM REFERENCE MANUAL by Gordon Prieur
and Bram Moolenaar
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 579dce41..27f97548 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*spell.txt* For Vim version 9.2. Last change: 2026 Feb 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -516,10 +516,6 @@ The older, OpenOffice 2 files may be used if this doesn't work:
You can also use a plain word list. The results are the same, the choice
depends on what word lists you can find.
-If you install Aap (from www.a-a-p.org) you can use the recipes in the
-runtime/spell/??/ directories. Aap will take care of downloading the files,
-apply patches needed for Vim and build the .spl file.
-
Make sure your current locale is set properly, otherwise Vim doesn't know what
characters are upper/lower case letters. If the locale isn't available (e.g.,
when using an MS-Windows codepage on Unix) add tables to the .aff file
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index 6aaa9069..3288bb6e 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,7 +1,7 @@
-*sponsor.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*sponsor.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
@@ -22,30 +22,6 @@ For the most recent information about sponsoring look on the Vim web site:
More explanations can be found in the |sponsor-faq|.
-REGISTERED VIM USER *register*
-
-You can become a registered Vim user by sending at least 10 euro. This works
-similar to sponsoring Vim, see |sponsor| above. Registration was made
-possible for the situation where your boss or bookkeeper may be willing to
-register software, but does not like the terms "sponsoring" and "donation".
-
-More explanations can be found in the |register-faq|.
-
-
-VOTE FOR FEATURES *vote-for-features*
-
-Note: Voting for features has been discontinued since the passing of |Bram| in
-2023. The following two links still work, but they are no longer updated. So
-they now only provide a historic view as of summer 2023.
-
-The voting results appear on the results page, which is visible for everybody:
-http://www.vim.org/sponsor/vote_results.php
-
-Additionally, once you have sent 100 euro or more in total, your name appears
-in the "Vim hall of honour": http://www.vim.org/sponsor/hall_of_honour.php
-But only if you enable this on your account page.
-
-
HOW TO SEND MONEY *send-money*
Credit card Through PayPal, see the PayPal site for information:
@@ -58,77 +34,45 @@ Credit card Through PayPal, see the PayPal site for information:
In Euro countries a bank transfer is preferred, this has lower
costs.
-Other methods See |iccf-donations|.
+Other methods See |donate|.
Include "Vim sponsor" or "Vim registration" in the comment of
your money transfer.
QUESTIONS AND ANSWERS *sponsor-faq* *register-faq*
-Why should I give money?
+Why should I give money?~
If you do not show your appreciation for Vim, the development team will be
less motivated to fix bugs and add new features. They will do something else
instead.
-How much money should I send?
+How much money should I send?~
That is up to you. The more you give, the more children will be helped.
An indication for individuals that use Vim at home: 10 Euro per year. For
professional use: 30 Euro per year per person.
-How do I become a Vim sponsor or registered Vim user?
-
-Send money, as explained above |send-money| and include your e-mail address.
-When the money has been received you will receive a unique registration key.
-This key can be used on the Vim website to get an extra page where you can
-choose whether others will be able to see that you donated. There is a link
-to this page on your "My Account" page.
-
-
-What is the difference between sponsoring and registering?
-
-It has a different name. Use the term "registration" if your boss doesn't
-like "sponsoring" or "donation". The benefits are the same.
-
-
-How can I send money?
+How can I send money?~
See |send-money|. Check the web site for the most recent information:
http://www.vim.org/sponsor/
-Why don't you use the SourceForge donation system?
-
-SourceForge takes 5% of the donations for themselves. If you want to support
-SourceForge you can send money to them directly.
-
-
-I cannot afford to send money, may I still use Vim?
-
-Yes.
-
-
-I did not register Vim, can I use all available features?
+I cannot afford to send money, may I still use Vim?~
Yes.
-I noticed a bug, do I need to register before I can report it?
-
-No, suggestions for improving Vim can always be given. For improvements use
-the developer |maillist|, for reporting bugs see |bugs|.
-
-
-How about Charityware?
+How about Charityware?~
Currently the Vim donations go to |uganda| anyway. Thus it doesn't matter if
-you sponsor Vim or ICCF.
+you sponsor Vim or Kuwasha.
-I donated $$$, now please add feature XYZ!
+I donated $$$, now please add feature XYZ!~
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
@@ -136,15 +80,12 @@ 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?
+Are the donations tax deductible?~
-That depends on your country. The donations to help the children in |Uganda|
-are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF
-website https://iccf-holland.org/donate.html (Note: this process is currently
-undergoing some changes and will be done differently in the future).
+Possibly. Please refer to |Kuwasha| for this question.
-Can you send me a bill?
+Can you send me a bill?~
No, because there is no relation between the money you send and the work that
is done. But a receipt is possible.
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index ec18a96d..46a47b7e 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,7 +1,7 @@
-*starting.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*starting.txt* For Vim version 9.2. Last change: 2026 Mar 17
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Starting Vim *starting*
@@ -252,7 +252,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
":sh", filtering, the |system()| function, backtick expansion
and libcall().
Also disallowed are |delete()|, |rename()|, |mkdir()|,
- |job_start()|, |setenv()| etc.
+ |job_start()|, |setenv()| and setting environment variables,
+ etc.
Interfaces, such as Python, Ruby and Lua, are also disabled,
since they could be used to execute shell commands. Perl uses
the Safe module.
@@ -843,6 +844,9 @@ accordingly. Vim proceeds in this order:
If Vim was started in Ex mode with the "-s" argument, all following
initializations until 4. are skipped. Only the "-u" option is
interpreted.
+
+ The |v:vim_did_init| variable is set to 1 after this step is finished.
+
*evim.vim*
a. If Vim was started as |evim| or |eview| or with the |-y| argument, the
script $VIMRUNTIME/evim.vim will be loaded.
@@ -887,8 +891,8 @@ accordingly. Vim proceeds in this order:
III The environment variable EXINIT.
The value of $EXINIT is used as an Ex command line.
IV The user exrc file(s). Same as for the user vimrc file, but with
- "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
- used, depending on the system. And without the (*)!
+ "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc"
+ is used, depending on the system. And without the (*)!
V The default vimrc file, $VIMRUNTIME/defaults.vim. This sets up
options values and has "syntax on" and "filetype on" commands,
which is what most new users will want. See |defaults.vim|.
@@ -1122,8 +1126,13 @@ This is not an exhaustive list of those directories:
`$XDG_DATA_HOME` $HOME/.local/share Persistent data files
`$XDG_STATE_HOME` $HOME/.local/state State data files
-Vim will only use the `$XDG_CONFIG_HOME` directory, the others are not
-(yet) used for its various configuration and state files.
+ *xdg.vim*
+Vim itself will only use the $XDG_CONFIG_HOME directory. Support for the
+other XDG directories is provided by the "$VIMRUNTIME/xdg.vim" script.
+Note: xdg.vim is only effective if the $XDG_CONFIG_HOME/vim directory (or
+its default fallback) exists. By default, it only sets the 'viminfofile'
+option. Other option settings are commented out, see the script for
+details on how to enable them.
*xdg-vimrc*
Vim, on Unix systems, will look at `$XDG_CONFIG_HOME/vim/vimrc` for its
@@ -1137,7 +1146,8 @@ and `~/.vim/vimrc` file.
When the |xdg-vimrc| is used the 'runtimepath' and 'packpath' options will be
modified accordingly to respect the |xdg-base-dir|: >
- "$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after"
+ "$XDG_CONFIG_HOME/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,
+ $XDG_CONFIG_HOME/vim/after"
<
Avoiding trojan horses ~
@@ -1284,7 +1294,7 @@ CTRL-Z Suspend Vim, like ":stop".
Works in Normal and in Visual mode. In Insert and
Command-line mode, the CTRL-Z is inserted as a normal
character. In Visual mode Vim goes back to Normal
- mode.
+ mode before suspending.
Note: if CTRL-Z undoes a change see |mswin.vim|.
@@ -1459,8 +1469,8 @@ This saves the current Session, and starts off the command to load another.
A session includes all tab pages, unless "tabpages" was removed from
'sessionoptions'. |tab-page|
-The |SessionLoadPost| autocmd event is triggered after a session file is
-loaded/sourced.
+The |SessionLoadPre| autocmd event is triggered before a session file is
+loaded/sourced and |SessionLoadPost| autocmd event is triggered after.
*SessionLoad-variable*
While the session file is loading, the SessionLoad global variable is set to
1. Plugins can use this to postpone some work until the SessionLoadPost event
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 236340da..16756c22 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*syntax.txt* For Vim version 9.2. Last change: 2026 Feb 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -487,10 +487,10 @@ specifying each command separately.
*hl-TOhtmlProgress* *TOhtml-progress-color*
When displayed, the progress bar will show colored boxes along the statusline
as the HTML conversion proceeds. By default, the background color as the
-current "DiffDelete" highlight group is used. If "DiffDelete" and "StatusLine"
-have the same background color, TOhtml will automatically adjust the color to
-differ. If you do not like the automatically selected colors, you can define
-your own highlight colors for the progress bar. Example: >
+current "DiffDelete" highlight group is used. If "DiffDelete" and
+"StatusLine" have the same background color, TOhtml will automatically adjust
+the color to differ. If you do not like the automatically selected colors,
+you can define your own highlight colors for the progress bar. Example: >
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
<
@@ -615,9 +615,9 @@ browsers; the tags get pasted with the text.
When "fallback" (default value), the same elements are generated for
older browsers, but newer browsers (detected by CSS feature query) hide the
- elements and instead use generated content in an ::before pseudoelement
-to display the uncopyable text. This method should work with the largest
-number of browsers, both old and new.
+ elements and instead use generated content in an ::before
+pseudoelement to display the uncopyable text. This method should work with
+the largest number of browsers, both old and new.
When "none", the elements are not generated at all. Only the
generated-content method is used. This means that old browsers, notably
@@ -1125,6 +1125,7 @@ new-generation language oriented to full-scenario intelligence.
All highlighting is enabled by default. To disable highlighting for a
specific group, set the corresponding variable to 0 in your |vimrc|.
All options to disable highlighting are: >
+ :let g:cangjie_builtin_color = 0
:let g:cangjie_comment_color = 0
:let g:cangjie_identifier_color = 0
:let g:cangjie_keyword_color = 0
@@ -1885,6 +1886,14 @@ The backticks for inline java are highlighted according to the htmlError
group to make them easier to see.
+GDB *gdb.vim* *ft-gdb-syntax*
+
+The GDB syntax file provides syntax |folding| (see |:syn-fold|) for comments
+and block statements. This can be enabled with: >
+
+ :set foldmethod=syntax
+
+
GROFF *groff.vim* *ft-groff-syntax*
The groff syntax file is a wrapper for |nroff.vim|, see the notes
@@ -2701,50 +2710,50 @@ If you don't want to highlight these errors, leave it unset.
NROFF *nroff.vim* *ft-nroff-syntax*
-The nroff syntax file works with AT&T n/troff out of the box. You need to
-activate the GNU groff extra features included in the syntax file before you
-can use them.
-
-For example, Linux and BSD distributions use groff as their default text
-processing package. In order to activate the extra syntax highlighting
-features for groff, arrange for files to be recognized as groff (see
+The nroff syntax file works with AT&T n/troff as-is. To support GNU troff
+(groff), which Linux and BSD distributions use as their default typesetting
+package, arrange for files to be recognized as groff input (see
|ft-groff-syntax|) or add the following option to your start-up files: >
:let nroff_is_groff = 1
-Groff is different from the old AT&T n/troff that you may still find in
-Solaris. Groff macro and request names can be longer than 2 characters and
-there are extensions to the language primitives. For example, in AT&T troff
-you access the year as a 2-digit number with the request \(yr. In groff you
-can use the same request, recognized for compatibility, or you can use groff's
-native syntax, \[yr]. Furthermore, you can use a 4-digit year directly:
-\[year]. Macro requests can be longer than 2 characters, for example, GNU mm
-accepts the requests ".VERBON" and ".VERBOFF" for creating verbatim
-environments.
+GNU troff differs from older AT&T n/troff programs (that you may still find in
+Solaris or Plan 9) by extending the *roff language syntax. For example, in
+AT&T troff, you access the count of years since 1900 with the escape sequence
+\n(yr. In groff you can do the same, which it recognizes for compatibility,
+or use groff's extended syntax, \n[yr]. AT&T troff documented the yr register
+as storing the "last two digits of current year", but had a Y2K problem; in
+groff, you can access the Gregorian year correctly: \n[year]. In groff, font,
+register, macro, string, and request names can exceed two characters; for
+example, with groff's mm package, the control lines ".VERBON" and ".VERBOFF"
+call macros of those names to bracket displays of "verbatim" content.
In order to obtain the best formatted output g/troff can give you, you should
follow a few simple rules about spacing and punctuation.
-1. Do not leave empty spaces at the end of lines.
+1. Break the line (put a carriage return) at the end of every sentence. Don't
+ permit trailing spaces before the newline.
-2. Leave one space and one space only after an end-of-sentence period,
- exclamation mark, etc.
+2. If a line ends with a period, question mark, or exclamation point that does
+ not end a sentence, follow it with the dummy character escape sequence \&.
-3. For reasons stated below, it is best to follow all period marks with a
- carriage return.
+3. If you're using a macro package, employ its paragraphing macros to achieve
+ indentation of paragraphs and spacing between them.
-The reason behind these unusual tips is that g/n/troff have a line breaking
-algorithm that can be easily upset if you don't follow the rules given above.
+4. Use the empty request, a '.' on a line by itself, freely to visually
+ separate material for ease of document maintenance.
-Unlike TeX, troff fills text line-by-line, not paragraph-by-paragraph and,
-furthermore, it does not have a concept of glue or stretch, all horizontal and
-vertical space input will be output as is.
+The reason for these tips is that g/n/troff attempts to detect the ends of
+sentences, and can use that information to apply inter-sentence space. Using
+them also minimizes the size of diffs where lines change due only to refilling
+in the text editor. Macro packages typically employ inter-paragraph spacing
+amounts other than one vee (which is the result of a blank input line), and
+typically store that spacing amount, and that of paragraph indentation, in
+user-configurable registers so that pages lay out consistently.
-Therefore, you should be careful about not using more space between sentences
-than you intend to have in your final document. For this reason, the common
-practice is to insert a carriage return immediately after all punctuation
-marks. If you want to have "even" text in your final processed output, you
-need to maintain regular spacing in the input text. To mark both trailing
+Unlike TeX, troff fills text line-by-line, not paragraph-by-paragraph. If you
+desire consistent spacing between words and sentences in formatted output, you
+must maintain consistent spacing in the input text. To mark both trailing
spaces and two or more spaces after a punctuation as an error, use: >
:let nroff_space_errors = 1
@@ -2764,11 +2773,11 @@ file: >
let b:preprocs_as_sections = 1
-As well, the syntax file adds an extra paragraph marker for the extended
-paragraph macro (.XP) in the ms package.
+Further, the syntax file adds an extra paragraph marker for the XP
+paragraphing macro in the ms package, a Berkeley and GNU extension.
-Finally, there is a |groff.vim| syntax file that can be used for enabling
-groff syntax highlighting either on a file basis or globally by default.
+Finally, there is a |groff.vim| syntax file that can be used to enable groff
+syntax highlighting either on a per-file basis or globally by default.
OCAML *ocaml.vim* *ft-ocaml-syntax*
@@ -3222,7 +3231,7 @@ Pascal. Use this if you don't use assembly and Pascal: >
PYTHON *python.vim* *ft-python-syntax*
-There are six options to control Python syntax highlighting.
+There are seven options to control Python syntax highlighting.
For highlighted numbers: >
:let python_no_number_highlight = 1
@@ -3242,10 +3251,13 @@ The first option implies the second one.
For highlighted trailing whitespace and mix of spaces and tabs: >
:let python_space_error_highlight = 1
+For highlighted built-in constants distinguished from other keywords: >
+ :let python_constant_highlight = 1
+
If you want all possible Python highlighting: >
:let python_highlight_all = 1
-This has the same effect as setting python_space_error_highlight and
-unsetting all the other ones.
+This has the same effect as setting python_space_error_highlight,
+python_constant_highlight and unsetting all the other ones.
If you use Python 2 or straddling code (Python 2 and 3 compatible),
you can enforce the use of an older syntax file with support for
@@ -4698,7 +4710,7 @@ 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". The
-|synconcealed()| function can be used to retrieve information about conealed
+|synconcealed()| function can be used to retrieve information about concealed
items.
cchar *:syn-cchar*
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 590221bc..3e307b64 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,7 +1,7 @@
-*tabpage.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*tabpage.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Editing with windows in multiple tab pages. *tab-page* *tabpage*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 94401708..77b19ec7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -9,6 +9,7 @@ $HOME-windows options.txt /*$HOME-windows*
$MYGVIMRC gui.txt /*$MYGVIMRC*
$MYVIMDIR starting.txt /*$MYVIMDIR*
$MYVIMRC starting.txt /*$MYVIMRC*
+$NoDefaultCurrentDirectoryInExePath builtin.txt /*$NoDefaultCurrentDirectoryInExePath*
$VIM starting.txt /*$VIM*
$VIM-use version5.txt /*$VIM-use*
$VIMRUNTIME starting.txt /*$VIMRUNTIME*
@@ -376,6 +377,7 @@ $quote eval.txt /*$quote*
'go-m' options.txt /*'go-m'*
'go-p' options.txt /*'go-p'*
'go-r' options.txt /*'go-r'*
+'go-s' options.txt /*'go-s'*
'go-t' options.txt /*'go-t'*
'go-v' options.txt /*'go-v'*
'gp' options.txt /*'gp'*
@@ -449,8 +451,6 @@ $quote eval.txt /*$quote*
'infercase' options.txt /*'infercase'*
'insertmode' options.txt /*'insertmode'*
'is' options.txt /*'is'*
-'ise' options.txt /*'ise'*
-'isexpand' options.txt /*'isexpand'*
'isf' options.txt /*'isf'*
'isfname' options.txt /*'isfname'*
'isi' options.txt /*'isi'*
@@ -1034,7 +1034,9 @@ $quote eval.txt /*$quote*
'stal' options.txt /*'stal'*
'startofline' options.txt /*'startofline'*
'statusline' options.txt /*'statusline'*
+'statuslineopt' options.txt /*'statuslineopt'*
'stl' options.txt /*'stl'*
+'stlo' options.txt /*'stlo'*
'stmp' options.txt /*'stmp'*
'stpl' options.txt /*'stpl'*
'sts' options.txt /*'sts'*
@@ -1069,6 +1071,7 @@ $quote eval.txt /*$quote*
't_AU' term.txt /*'t_AU'*
't_BD' term.txt /*'t_BD'*
't_BE' term.txt /*'t_BE'*
+'t_BS' term.txt /*'t_BS'*
't_CF' term.txt /*'t_CF'*
't_CS' term.txt /*'t_CS'*
't_CV' term.txt /*'t_CV'*
@@ -1079,6 +1082,7 @@ $quote eval.txt /*$quote*
't_Ds' term.txt /*'t_Ds'*
't_EC' term.txt /*'t_EC'*
't_EI' term.txt /*'t_EI'*
+'t_ES' term.txt /*'t_ES'*
't_F1' term.txt /*'t_F1'*
't_F2' term.txt /*'t_F2'*
't_F3' term.txt /*'t_F3'*
@@ -1233,6 +1237,8 @@ $quote eval.txt /*$quote*
'termbidi' options.txt /*'termbidi'*
'termencoding' options.txt /*'termencoding'*
'termguicolors' options.txt /*'termguicolors'*
+'termresize' options.txt /*'termresize'*
+'termsync' options.txt /*'termsync'*
'termwinkey' options.txt /*'termwinkey'*
'termwinscroll' options.txt /*'termwinscroll'*
'termwinsize' options.txt /*'termwinsize'*
@@ -1264,10 +1270,12 @@ $quote eval.txt /*$quote*
'tplo' options.txt /*'tplo'*
'tpm' options.txt /*'tpm'*
'tr' options.txt /*'tr'*
+'trz' options.txt /*'trz'*
'ts' options.txt /*'ts'*
'tsl' options.txt /*'tsl'*
'tsr' options.txt /*'tsr'*
'tsrfu' options.txt /*'tsrfu'*
+'tsy' options.txt /*'tsy'*
'ttimeout' options.txt /*'ttimeout'*
'ttimeoutlen' options.txt /*'ttimeoutlen'*
'ttm' options.txt /*'ttm'*
@@ -1333,6 +1341,7 @@ $quote eval.txt /*$quote*
'wfw' options.txt /*'wfw'*
'wh' options.txt /*'wh'*
'whichwrap' options.txt /*'whichwrap'*
+'whl' options.txt /*'whl'*
'wi' options.txt /*'wi'*
'wic' options.txt /*'wic'*
'wig' options.txt /*'wig'*
@@ -1351,6 +1360,7 @@ $quote eval.txt /*$quote*
'winfixheight' options.txt /*'winfixheight'*
'winfixwidth' options.txt /*'winfixwidth'*
'winheight' options.txt /*'winheight'*
+'winhighlight' options.txt /*'winhighlight'*
'winminheight' options.txt /*'winminheight'*
'winminwidth' options.txt /*'winminwidth'*
'winptydll' options.txt /*'winptydll'*
@@ -1411,6 +1421,7 @@ $quote eval.txt /*$quote*
+cindent various.txt /*+cindent*
+clientserver various.txt /*+clientserver*
+clipboard various.txt /*+clipboard*
++clipboard_provider various.txt /*+clipboard_provider*
+clipboard_working various.txt /*+clipboard_working*
+cmd editing.txt /*+cmd*
+cmdline_compl various.txt /*+cmdline_compl*
@@ -3841,6 +3852,7 @@ $quote eval.txt /*$quote*
motion.txt /**
map.txt /**
intro.txt /**
+ intro.txt /**
scroll.txt /**
scroll.txt /**
map.txt /**
@@ -3961,6 +3973,7 @@ $quote eval.txt /*$quote*
term.txt /**
-xterm term.txt /*-xterm*
term.txt /**
+ intro.txt /**
term.txt /**
term.txt /**
= change.txt /*=*
@@ -4560,7 +4573,6 @@ E1335 vim9class.txt /*E1335*
E1336 options.txt /*E1336*
E1337 vim9class.txt /*E1337*
E1338 vim9class.txt /*E1338*
-E1339 textprop.txt /*E1339*
E134 change.txt /*E134*
E1340 vim9class.txt /*E1340*
E1341 vim9class.txt /*E1341*
@@ -4668,6 +4680,7 @@ E1433 vim9.txt /*E1433*
E1434 vim9.txt /*E1434*
E1435 vim9class.txt /*E1435*
E1436 vim9class.txt /*E1436*
+E1437 eval.txt /*E1437*
E144 various.txt /*E144*
E145 starting.txt /*E145*
E146 change.txt /*E146*
@@ -4753,6 +4766,11 @@ E1567 remote.txt /*E1567*
E1568 options.txt /*E1568*
E1569 builtin.txt /*E1569*
E157 sign.txt /*E157*
+E1570 builtin.txt /*E1570*
+E1571 builtin.txt /*E1571*
+E1572 options.txt /*E1572*
+E1573 channel.txt /*E1573*
+E1574 channel.txt /*E1574*
E158 sign.txt /*E158*
E159 sign.txt /*E159*
E16 cmdline.txt /*E16*
@@ -5739,6 +5757,7 @@ KVim gui_x11.txt /*KVim*
KeyInputPre autocmd.txt /*KeyInputPre*
Kibaale uganda.txt /*Kibaale*
Korean mbyte.txt /*Korean*
+Kuwasha uganda.txt /*Kuwasha*
L motion.txt /*L*
Linux-backspace options.txt /*Linux-backspace*
List eval.txt /*List*
@@ -5776,7 +5795,6 @@ Neovim intro.txt /*Neovim*
NetBSD-backspace options.txt /*NetBSD-backspace*
NetBeans netbeans.txt /*NetBeans*
NetUserPass() pi_netrw.txt /*NetUserPass()*
-NoDefaultCurrentDirectoryInExePath builtin.txt /*NoDefaultCurrentDirectoryInExePath*
None eval.txt /*None*
Normal intro.txt /*Normal*
Normal-mode intro.txt /*Normal-mode*
@@ -5890,6 +5908,7 @@ Select-mode-mapping visual.txt /*Select-mode-mapping*
Session starting.txt /*Session*
SessionLoad-variable starting.txt /*SessionLoad-variable*
SessionLoadPost autocmd.txt /*SessionLoadPost*
+SessionLoadPre autocmd.txt /*SessionLoadPre*
SessionWritePost autocmd.txt /*SessionWritePost*
ShellCmdPost autocmd.txt /*ShellCmdPost*
ShellFilterPost autocmd.txt /*ShellFilterPost*
@@ -6194,6 +6213,7 @@ added-8.1 version8.txt /*added-8.1*
added-8.2 version8.txt /*added-8.2*
added-9.1 version9.txt /*added-9.1*
added-9.2 version9.txt /*added-9.2*
+added-9.3 version9.txt /*added-9.3*
added-BeOS version5.txt /*added-BeOS*
added-Mac version5.txt /*added-Mac*
added-VMS version5.txt /*added-VMS*
@@ -6210,6 +6230,7 @@ alt-input debugger.txt /*alt-input*
alternate-file editing.txt /*alternate-file*
amiga-window starting.txt /*amiga-window*
and() builtin.txt /*and()*
+android builtin.txt /*android*
anonymous-function eval.txt /*anonymous-function*
ant.vim syntax.txt /*ant.vim*
ap motion.txt /*ap*
@@ -6309,6 +6330,8 @@ b:changelog_name filetype.txt /*b:changelog_name*
b:clojure_syntax_keywords syntax.txt /*b:clojure_syntax_keywords*
b:clojure_syntax_without_core_keywords syntax.txt /*b:clojure_syntax_without_core_keywords*
b:current_syntax-variable syntax.txt /*b:current_syntax-variable*
+b:hare_indent_case ft_hare.txt /*b:hare_indent_case*
+b:hare_indent_match_switch ft_hare.txt /*b:hare_indent_match_switch*
b:lf_shell_syntax syntax.txt /*b:lf_shell_syntax*
b:netrw_lastfile pi_netrw.txt /*b:netrw_lastfile*
b:rust_cargo_avoid_whole_workspace ft_rust.txt /*b:rust_cargo_avoid_whole_workspace*
@@ -6408,6 +6431,7 @@ bug-fixes-8 version8.txt /*bug-fixes-8*
bug-fixes-9 version9.txt /*bug-fixes-9*
bug-fixes-9.1 version9.txt /*bug-fixes-9.1*
bug-fixes-9.2 version9.txt /*bug-fixes-9.2*
+bug-fixes-9.3 version9.txt /*bug-fixes-9.3*
bug-reports intro.txt /*bug-reports*
bugreport.vim intro.txt /*bugreport.vim*
bugs intro.txt /*bugs*
@@ -6562,6 +6586,7 @@ ch_evalraw() channel.txt /*ch_evalraw()*
ch_getbufnr() channel.txt /*ch_getbufnr()*
ch_getjob() channel.txt /*ch_getjob()*
ch_info() channel.txt /*ch_info()*
+ch_listen() channel.txt /*ch_listen()*
ch_log() channel.txt /*ch_log()*
ch_logfile() channel.txt /*ch_logfile()*
ch_open() channel.txt /*ch_open()*
@@ -6596,6 +6621,7 @@ changed-8.1 version8.txt /*changed-8.1*
changed-8.2 version8.txt /*changed-8.2*
changed-9.1 version9.txt /*changed-9.1*
changed-9.2 version9.txt /*changed-9.2*
+changed-9.3 version9.txt /*changed-9.3*
changelist motion.txt /*changelist*
changelog.vim syntax.txt /*changelog.vim*
changenr() builtin.txt /*changenr()*
@@ -6611,6 +6637,7 @@ channel-demo channel.txt /*channel-demo*
channel-drop channel.txt /*channel-drop*
channel-functions usr_41.txt /*channel-functions*
channel-functions-details channel.txt /*channel-functions-details*
+channel-listen-demo channel.txt /*channel-listen-demo*
channel-mode channel.txt /*channel-mode*
channel-more channel.txt /*channel-more*
channel-noblock channel.txt /*channel-noblock*
@@ -6691,6 +6718,16 @@ clipboard-autoselectml options.txt /*clipboard-autoselectml*
clipboard-autoselectplus options.txt /*clipboard-autoselectplus*
clipboard-exclude options.txt /*clipboard-exclude*
clipboard-html options.txt /*clipboard-html*
+clipboard-providers eval.txt /*clipboard-providers*
+clipboard-providers-available eval.txt /*clipboard-providers-available*
+clipboard-providers-clipboard eval.txt /*clipboard-providers-clipboard*
+clipboard-providers-clipmethod eval.txt /*clipboard-providers-clipmethod*
+clipboard-providers-copy eval.txt /*clipboard-providers-copy*
+clipboard-providers-define eval.txt /*clipboard-providers-define*
+clipboard-providers-no-clipboard eval.txt /*clipboard-providers-no-clipboard*
+clipboard-providers-paste eval.txt /*clipboard-providers-paste*
+clipboard-providers-plus eval.txt /*clipboard-providers-plus*
+clipboard-providers-textlock eval.txt /*clipboard-providers-textlock*
clipboard-unnamed options.txt /*clipboard-unnamed*
clipboard-unnamedplus options.txt /*clipboard-unnamedplus*
clojure-indent indent.txt /*clojure-indent*
@@ -6738,6 +6775,7 @@ compile-changes-7 version7.txt /*compile-changes-7*
compile-changes-8 version8.txt /*compile-changes-8*
compile-changes-9 version9.txt /*compile-changes-9*
compile-changes-9.2 version9.txt /*compile-changes-9.2*
+compiler-biome quickfix.txt /*compiler-biome*
compiler-compaqada ft_ada.txt /*compiler-compaqada*
compiler-cppcheck quickfix.txt /*compiler-cppcheck*
compiler-decada ft_ada.txt /*compiler-decada*
@@ -6755,13 +6793,16 @@ compiler-mypy quickfix.txt /*compiler-mypy*
compiler-pandoc quickfix.txt /*compiler-pandoc*
compiler-perl quickfix.txt /*compiler-perl*
compiler-pylint quickfix.txt /*compiler-pylint*
+compiler-pyright quickfix.txt /*compiler-pyright*
compiler-pytest quickfix.txt /*compiler-pytest*
compiler-pyunit quickfix.txt /*compiler-pyunit*
compiler-ruff quickfix.txt /*compiler-ruff*
compiler-select quickfix.txt /*compiler-select*
compiler-spotbugs quickfix.txt /*compiler-spotbugs*
compiler-tex quickfix.txt /*compiler-tex*
+compiler-tombi quickfix.txt /*compiler-tombi*
compiler-tsc quickfix.txt /*compiler-tsc*
+compiler-ty quickfix.txt /*compiler-ty*
compiler-typst quickfix.txt /*compiler-typst*
compiler-vaxada ft_ada.txt /*compiler-vaxada*
compl-current insert.txt /*compl-current*
@@ -6796,7 +6837,6 @@ complete_add() builtin.txt /*complete_add()*
complete_check() builtin.txt /*complete_check()*
complete_info() builtin.txt /*complete_info()*
complete_info_mode builtin.txt /*complete_info_mode*
-complete_match() builtin.txt /*complete_match()*
completed_item-variable eval.txt /*completed_item-variable*
completion-functions usr_41.txt /*completion-functions*
complex-change change.txt /*complex-change*
@@ -6813,6 +6853,7 @@ conversion-server mbyte.txt /*conversion-server*
convert-to-HTML syntax.txt /*convert-to-HTML*
convert-to-XHTML syntax.txt /*convert-to-XHTML*
convert-to-XML syntax.txt /*convert-to-XML*
+convert_:function_to_:def vim9.txt /*convert_:function_to_:def*
convert_legacy_function_to_vim9 vim9.txt /*convert_legacy_function_to_vim9*
copy() builtin.txt /*copy()*
copy-diffs diff.txt /*copy-diffs*
@@ -6964,6 +7005,7 @@ dav pi_netrw.txt /*dav*
davs pi_netrw.txt /*davs*
daw motion.txt /*daw*
dd change.txt /*dd*
+debug-adapter-protocol channel.txt /*debug-adapter-protocol*
debug-gcc debug.txt /*debug-gcc*
debug-highlight debugger.txt /*debug-highlight*
debug-leaks debug.txt /*debug-leaks*
@@ -7527,6 +7569,7 @@ ft-fortran-syntax syntax.txt /*ft-fortran-syntax*
ft-freebasic-plugin filetype.txt /*ft-freebasic-plugin*
ft-freebasic-syntax syntax.txt /*ft-freebasic-syntax*
ft-fvwm-syntax syntax.txt /*ft-fvwm-syntax*
+ft-gdb-syntax syntax.txt /*ft-gdb-syntax*
ft-gdscript-plugin filetype.txt /*ft-gdscript-plugin*
ft-gitcommit-plugin filetype.txt /*ft-gitcommit-plugin*
ft-gitrebase-plugin filetype.txt /*ft-gitrebase-plugin*
@@ -7799,7 +7842,6 @@ g:hare_indent_match_switch ft_hare.txt /*g:hare_indent_match_switch*
g:hare_makeprg_params ft_hare.txt /*g:hare_makeprg_params*
g:hare_recommended_style ft_hare.txt /*g:hare_recommended_style*
g:hare_space_error ft_hare.txt /*g:hare_space_error*
-g:hare_symbol_operators ft_hare.txt /*g:hare_symbol_operators*
g:help_example_languages helphelp.txt /*g:help_example_languages*
g:html_charset_override syntax.txt /*g:html_charset_override*
g:html_diff_one_file syntax.txt /*g:html_diff_one_file*
@@ -7955,6 +7997,7 @@ g:rustfmt_command ft_rust.txt /*g:rustfmt_command*
g:rustfmt_detect_version ft_rust.txt /*g:rustfmt_detect_version*
g:rustfmt_emit_files ft_rust.txt /*g:rustfmt_emit_files*
g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently*
+g:rustfmt_find_toml ft_rust.txt /*g:rustfmt_find_toml*
g:rustfmt_options ft_rust.txt /*g:rustfmt_options*
g:statusline_winid options.txt /*g:statusline_winid*
g:syntax_on syntax.txt /*g:syntax_on*
@@ -8054,6 +8097,7 @@ garbagecollect() builtin.txt /*garbagecollect()*
gd pattern.txt /*gd*
gdb debug.txt /*gdb*
gdb-version terminal.txt /*gdb-version*
+gdb.vim syntax.txt /*gdb.vim*
ge motion.txt /*ge*
gender-neutral helphelp.txt /*gender-neutral*
generic-function-call vim9.txt /*generic-function-call*
@@ -8231,6 +8275,7 @@ gui-vert-scroll gui.txt /*gui-vert-scroll*
gui-w32 gui_w32.txt /*gui-w32*
gui-w32-cmdargs gui_w32.txt /*gui-w32-cmdargs*
gui-w32-dialogs gui_w32.txt /*gui-w32-dialogs*
+gui-w32-fullscreen gui_w32.txt /*gui-w32-fullscreen*
gui-w32-printing gui_w32.txt /*gui-w32-printing*
gui-w32-start gui_w32.txt /*gui-w32-start*
gui-w32-title-bar gui_w32.txt /*gui-w32-title-bar*
@@ -8291,6 +8336,8 @@ haiku-vimdir os_haiku.txt /*haiku-vimdir*
hangul hangulin.txt /*hangul*
hangulin.txt hangulin.txt /*hangulin.txt*
hare ft_hare.txt /*hare*
+hare-folding ft_hare.txt /*hare-folding*
+hare-symbol-operators ft_hare.txt /*hare-symbol-operators*
hare.vim ft_hare.txt /*hare.vim*
has() builtin.txt /*has()*
has-patch builtin.txt /*has-patch*
@@ -8306,7 +8353,6 @@ help helphelp.txt /*help*
help-TOC helphelp.txt /*help-TOC*
help-buffer-options helphelp.txt /*help-buffer-options*
help-context help.txt /*help-context*
-help-curwin tips.txt /*help-curwin*
help-notation helphelp.txt /*help-notation*
help-summary usr_02.txt /*help-summary*
help-tags tags 1
@@ -8597,7 +8643,6 @@ i` motion.txt /*i`*
ia64.vim syntax.txt /*ia64.vim*
ib motion.txt /*ib*
iccf uganda.txt /*iccf*
-iccf-donations uganda.txt /*iccf-donations*
icon-changed version4.txt /*icon-changed*
iconise starting.txt /*iconise*
iconize starting.txt /*iconize*
@@ -8695,6 +8740,7 @@ instanceof() builtin.txt /*instanceof()*
intel-itanium syntax.txt /*intel-itanium*
intellimouse-wheel-problems gui_w32.txt /*intellimouse-wheel-problems*
interactive-functions usr_41.txt /*interactive-functions*
+interface vim9class.txt /*interface*
interfaces-5.2 version5.txt /*interfaces-5.2*
internal-error message.txt /*internal-error*
internal-variables eval.txt /*internal-variables*
@@ -8818,6 +8864,7 @@ lcs-eol options.txt /*lcs-eol*
lcs-extends options.txt /*lcs-extends*
lcs-lead options.txt /*lcs-lead*
lcs-leadmultispace options.txt /*lcs-leadmultispace*
+lcs-leadtab options.txt /*lcs-leadtab*
lcs-multispace options.txt /*lcs-multispace*
lcs-nbsp options.txt /*lcs-nbsp*
lcs-precedes options.txt /*lcs-precedes*
@@ -9602,6 +9649,7 @@ os_risc.txt os_risc.txt /*os_risc.txt*
os_unix.txt os_unix.txt /*os_unix.txt*
os_vms.txt os_vms.txt /*os_vms.txt*
os_win32.txt os_win32.txt /*os_win32.txt*
+osc52-install usr_05.txt /*osc52-install*
other-features vi_diff.txt /*other-features*
out_buf channel.txt /*out_buf*
out_cb channel.txt /*out_cb*
@@ -9619,12 +9667,14 @@ package-create repeat.txt /*package-create*
package-doc repeat.txt /*package-doc*
package-documentation repeat.txt /*package-documentation*
package-editorconfig usr_05.txt /*package-editorconfig*
+package-helpcurwin tips.txt /*package-helpcurwin*
package-helptoc helphelp.txt /*package-helptoc*
package-hlyank usr_05.txt /*package-hlyank*
package-justify usr_25.txt /*package-justify*
package-matchit usr_05.txt /*package-matchit*
package-nohlsearch usr_05.txt /*package-nohlsearch*
package-open eval.txt /*package-open*
+package-osc52 usr_05.txt /*package-osc52*
package-termdebug terminal.txt /*package-termdebug*
package-translate_example repeat.txt /*package-translate_example*
package-translation repeat.txt /*package-translation*
@@ -9645,9 +9695,11 @@ patches-8.2 version8.txt /*patches-8.2*
patches-9 version9.txt /*patches-9*
patches-9.1 version9.txt /*patches-9.1*
patches-9.2 version9.txt /*patches-9.2*
+patches-9.3 version9.txt /*patches-9.3*
patches-after-8.2 version9.txt /*patches-after-8.2*
patches-after-9.0 version9.txt /*patches-after-9.0*
patches-after-9.1 version9.txt /*patches-after-9.1*
+patches-after-9.2 version9.txt /*patches-after-9.2*
pathshorten() builtin.txt /*pathshorten()*
pattern pattern.txt /*pattern*
pattern-atoms pattern.txt /*pattern-atoms*
@@ -9737,6 +9789,7 @@ popup-mapping popup.txt /*popup-mapping*
popup-mask popup.txt /*popup-mask*
popup-menu gui.txt /*popup-menu*
popup-menu-added version5.txt /*popup-menu-added*
+popup-opacity popup.txt /*popup-opacity*
popup-position popup.txt /*popup-position*
popup-props popup.txt /*popup-props*
popup-scrollbar popup.txt /*popup-scrollbar*
@@ -9929,6 +9982,7 @@ quake.vim syntax.txt /*quake.vim*
quickfix quickfix.txt /*quickfix*
quickfix-6 version6.txt /*quickfix-6*
quickfix-ID quickfix.txt /*quickfix-ID*
+quickfix-biome quickfix.txt /*quickfix-biome*
quickfix-buffer quickfix.txt /*quickfix-buffer*
quickfix-changedtick quickfix.txt /*quickfix-changedtick*
quickfix-context quickfix.txt /*quickfix-context*
@@ -9946,6 +10000,7 @@ quickfix-perl quickfix.txt /*quickfix-perl*
quickfix-size quickfix.txt /*quickfix-size*
quickfix-stack quickfix.txt /*quickfix-stack*
quickfix-title quickfix.txt /*quickfix-title*
+quickfix-toml quickfix.txt /*quickfix-toml*
quickfix-valid quickfix.txt /*quickfix-valid*
quickfix-window quickfix.txt /*quickfix-window*
quickfix-window-ID quickfix.txt /*quickfix-window-ID*
@@ -10013,6 +10068,8 @@ recovery recover.txt /*recovery*
recursive_mapping map.txt /*recursive_mapping*
redo undo.txt /*redo*
redo-register undo.txt /*redo-register*
+redraw_listener_add() builtin.txt /*redraw_listener_add()*
+redraw_listener_remove() builtin.txt /*redraw_listener_remove()*
reduce() builtin.txt /*reduce()*
ref intro.txt /*ref*
reference intro.txt /*reference*
@@ -10021,7 +10078,6 @@ reg_executing() builtin.txt /*reg_executing()*
reg_recording() builtin.txt /*reg_recording()*
regexp pattern.txt /*regexp*
regexp-changes-5.4 version5.txt /*regexp-changes-5.4*
-register sponsor.txt /*register*
register-faq sponsor.txt /*register-faq*
register-functions usr_41.txt /*register-functions*
register-variable eval.txt /*register-variable*
@@ -10487,6 +10543,7 @@ static-tag tagsrch.txt /*static-tag*
status-line windows.txt /*status-line*
statusmsg-variable eval.txt /*statusmsg-variable*
stl-%! options.txt /*stl-%!*
+stl-%@ options.txt /*stl-%@*
stl-%{ options.txt /*stl-%{*
str2blob() builtin.txt /*str2blob()*
str2float() builtin.txt /*str2float()*
@@ -10607,6 +10664,7 @@ t_AL term.txt /*t_AL*
t_AU term.txt /*t_AU*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
+t_BS term.txt /*t_BS*
t_CF term.txt /*t_CF*
t_CS term.txt /*t_CS*
t_CTRL-W_. terminal.txt /*t_CTRL-W_.*
@@ -10626,6 +10684,7 @@ t_DL term.txt /*t_DL*
t_Ds term.txt /*t_Ds*
t_EC term.txt /*t_EC*
t_EI term.txt /*t_EI*
+t_ES term.txt /*t_ES*
t_F1 term.txt /*t_F1*
t_F2 term.txt /*t_F2*
t_F3 term.txt /*t_F3*
@@ -10950,6 +11009,7 @@ termcap-cursor-shape term.txt /*termcap-cursor-shape*
termcap-options term.txt /*termcap-options*
termcap-title term.txt /*termcap-title*
termda1-variable eval.txt /*termda1-variable*
+termdebug terminal.txt /*termdebug*
termdebug-commands terminal.txt /*termdebug-commands*
termdebug-communication terminal.txt /*termdebug-communication*
termdebug-customizing terminal.txt /*termdebug-customizing*
@@ -11023,6 +11083,7 @@ termresponse-variable eval.txt /*termresponse-variable*
termrfgresp-variable eval.txt /*termrfgresp-variable*
termstyleresp-variable eval.txt /*termstyleresp-variable*
termu7resp-variable eval.txt /*termu7resp-variable*
+termux builtin.txt /*termux*
ternary eval.txt /*ternary*
test-functions usr_41.txt /*test-functions*
test-functions-details testing.txt /*test-functions-details*
@@ -11254,6 +11315,7 @@ v:char eval.txt /*v:char*
v:charconvert_from eval.txt /*v:charconvert_from*
v:charconvert_to eval.txt /*v:charconvert_to*
v:clipmethod eval.txt /*v:clipmethod*
+v:clipproviders eval.txt /*v:clipproviders*
v:cmdarg eval.txt /*v:cmdarg*
v:cmdbang eval.txt /*v:cmdbang*
v:collate eval.txt /*v:collate*
@@ -11358,6 +11420,7 @@ v:var eval.txt /*v:var*
v:version eval.txt /*v:version*
v:versionlong eval.txt /*v:versionlong*
v:vim_did_enter eval.txt /*v:vim_did_enter*
+v:vim_did_init eval.txt /*v:vim_did_init*
v:warningmsg eval.txt /*v:warningmsg*
v:wayland_display eval.txt /*v:wayland_display*
v:windowid eval.txt /*v:windowid*
@@ -11514,6 +11577,7 @@ version-8.2 version8.txt /*version-8.2*
version-9.0 version9.txt /*version-9.0*
version-9.1 version9.txt /*version-9.1*
version-9.2 version9.txt /*version-9.2*
+version-9.3 version9.txt /*version-9.3*
version-variable eval.txt /*version-variable*
version4.txt version4.txt /*version4.txt*
version5.txt version5.txt /*version5.txt*
@@ -11531,6 +11595,7 @@ version8.txt version8.txt /*version8.txt*
version9.0 version9.txt /*version9.0*
version9.1 version9.txt /*version9.1*
version9.2 version9.txt /*version9.2*
+version9.3 version9.txt /*version9.3*
version9.txt version9.txt /*version9.txt*
versionlong-variable eval.txt /*versionlong-variable*
vi intro.txt /*vi*
@@ -11560,6 +11625,7 @@ vim-9 version9.txt /*vim-9*
vim-9.0 version9.txt /*vim-9.0*
vim-9.1 version9.txt /*vim-9.1*
vim-9.2 version9.txt /*vim-9.2*
+vim-9.3 version9.txt /*vim-9.3*
vim-additions vi_diff.txt /*vim-additions*
vim-announce intro.txt /*vim-announce*
vim-arguments starting.txt /*vim-arguments*
@@ -11593,6 +11659,7 @@ vim9-access-modes vim9class.txt /*vim9-access-modes*
vim9-autoload vim9.txt /*vim9-autoload*
vim9-boolean vim9.txt /*vim9-boolean*
vim9-class vim9class.txt /*vim9-class*
+vim9-class-type vim9.txt /*vim9-class-type*
vim9-classes vim9.txt /*vim9-classes*
vim9-const vim9.txt /*vim9-const*
vim9-curly vim9.txt /*vim9-curly*
@@ -11600,14 +11667,18 @@ vim9-debug repeat.txt /*vim9-debug*
vim9-declaration vim9.txt /*vim9-declaration*
vim9-declarations usr_41.txt /*vim9-declarations*
vim9-differences vim9.txt /*vim9-differences*
+vim9-enum-type vim9.txt /*vim9-enum-type*
+vim9-enumvalue-type vim9.txt /*vim9-enumvalue-type*
vim9-export vim9.txt /*vim9-export*
vim9-false-true vim9.txt /*vim9-false-true*
vim9-final vim9.txt /*vim9-final*
vim9-func-declaration vim9.txt /*vim9-func-declaration*
+vim9-func-type vim9.txt /*vim9-func-type*
vim9-function-defined-later vim9.txt /*vim9-function-defined-later*
vim9-gotchas vim9.txt /*vim9-gotchas*
vim9-ignored-argument vim9.txt /*vim9-ignored-argument*
vim9-import vim9.txt /*vim9-import*
+vim9-interface-type vim9.txt /*vim9-interface-type*
vim9-lambda vim9.txt /*vim9-lambda*
vim9-lambda-arguments vim9.txt /*vim9-lambda-arguments*
vim9-line-continuation vim9.txt /*vim9-line-continuation*
@@ -11616,15 +11687,19 @@ vim9-mix vim9.txt /*vim9-mix*
vim9-namespace vim9.txt /*vim9-namespace*
vim9-no-dict-function vim9.txt /*vim9-no-dict-function*
vim9-no-shorten vim9.txt /*vim9-no-shorten*
+vim9-object-type vim9.txt /*vim9-object-type*
+vim9-partial-declaration vim9.txt /*vim9-partial-declaration*
vim9-rationale vim9.txt /*vim9-rationale*
vim9-reload vim9.txt /*vim9-reload*
vim9-s-namespace vim9.txt /*vim9-s-namespace*
vim9-scopes vim9.txt /*vim9-scopes*
vim9-string-index vim9.txt /*vim9-string-index*
+vim9-typealias-type vim9.txt /*vim9-typealias-type*
vim9-types vim9.txt /*vim9-types*
vim9-unpack-ignore vim9.txt /*vim9-unpack-ignore*
vim9-user-command vim9.txt /*vim9-user-command*
vim9-variable-arguments vim9.txt /*vim9-variable-arguments*
+vim9-white-space vim9.txt /*vim9-white-space*
vim9.txt vim9.txt /*vim9.txt*
vim9class.txt vim9class.txt /*vim9class.txt*
vim9script vim9.txt /*vim9script*
@@ -11632,6 +11707,7 @@ vim: options.txt /*vim:*
vim_announce intro.txt /*vim_announce*
vim_dev intro.txt /*vim_dev*
vim_did_enter-variable eval.txt /*vim_did_enter-variable*
+vim_did_init-variable eval.txt /*vim_did_init-variable*
vim_mac intro.txt /*vim_mac*
vim_starting builtin.txt /*vim_starting*
vim_use intro.txt /*vim_use*
@@ -11703,8 +11779,6 @@ vms-notes os_vms.txt /*vms-notes*
vms-problems os_vms.txt /*vms-problems*
vms-started os_vms.txt /*vms-started*
vms-usage os_vms.txt /*vms-usage*
-vote-for-features sponsor.txt /*vote-for-features*
-votes-for-changes todo.txt /*votes-for-changes*
vreplace-mode insert.txt /*vreplace-mode*
vt100-cursor-keys term.txt /*vt100-cursor-keys*
vt100-function-keys term.txt /*vt100-function-keys*
@@ -11847,6 +11921,7 @@ xattr editing.txt /*xattr*
xdg-base-dir starting.txt /*xdg-base-dir*
xdg-runtime starting.txt /*xdg-runtime*
xdg-vimrc starting.txt /*xdg-vimrc*
+xdg.vim starting.txt /*xdg.vim*
xf86conf.vim syntax.txt /*xf86conf.vim*
xfontset mbyte.txt /*xfontset*
xfree-xterm syntax.txt /*xfree-xterm*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index dcd6f05c..eb2cb1b3 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,7 +1,7 @@
-*tagsrch.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*tagsrch.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Tags and special searches *tags-and-searches*
@@ -872,9 +872,9 @@ Common arguments for the commands above:
When excluded, a match is ignored when the line is recognized as a
comment (according to 'comments'), or the match is in a C comment
(after "//" or inside /* */). Note that a match may be missed if a
- line is recognized as a comment, but the comment ends halfway the line.
- And if the line is a comment, but it is not recognized (according to
- 'comments') a match may be found in it anyway. Example: >
+ line is recognized as a comment, but the comment ends halfway the
+ line. And if the line is a comment, but it is not recognized
+ (according to 'comments') a match may be found in it anyway. Example: >
/* comment
foobar */
< A match for "foobar" is found, because this line is not recognized as
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index e2f9b659..7d7466f1 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,7 +1,7 @@
-*term.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*term.txt* For Vim version 9.2. Last change: 2026 Mar 04
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Terminal information *terminal-info*
@@ -196,8 +196,8 @@ try the entry ":ku=\233A:".
Some termcap entries have the entry ":ku=\E[A:". But the Amiga really sends
"\233A". On output "\E[" and "\233" are often equivalent, on input they
-aren't. You will have to change the termcap entry, or change the key code with
-the :set command to fix this.
+aren't. You will have to change the termcap entry, or change the key code
+with the :set command to fix this.
Many cursor key codes start with an . Vim must find out if this is a
single hit of the key or the start of a cursor key sequence. It waits
@@ -510,6 +510,10 @@ Added by Vim (there are no standard codes for these):
|xterm-focus-event|
t_fd disable focus-event tracking *t_fd* *'t_fd'*
|xterm-focus-event|
+ t_BS begin synchronized update *t_BS* *'t_BS'*
+ see 'termsync'
+ t_ES end synchronized update *t_ES* *'t_ES'*
+ see 'termsync'
Some codes have a start, middle and end part. The start and end are defined
by the termcap option, the middle part is text.
@@ -528,6 +532,11 @@ t_SH must take one argument:
t_RS is sent only if the response to t_RV has been received. It is not used
on Mac OS when Terminal.app could be recognized from the termresponse.
+The t_BS and t_ES are not stored in the termcap, but are instead set to the
+following default values on startup:
+ t_BS "\033[?2026h"
+ t_ES "\033[?2026l"
+
*mouse-reporting*
Many terminals can report mouse clicks and some can report mouse movement and
dragging. Vim needs to know what codes are being used for this.
@@ -1167,7 +1176,8 @@ Mouse clicks can be mapped. The codes for mouse clicks are:
The X1 and X2 buttons refer to the extra buttons found on some mice. The
'Microsoft Explorer' mouse has these buttons available to the right thumb.
-Currently X1 and X2 only work on Win32 and X11 environments.
+Currently, X1 and X2 work only on Win32 and X11 environments, and in terminals
+that support xterm-like mouse functionality.
Examples: >
:noremap
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index f7fe3301..b46899ce 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*terminal.txt* For Vim version 9.2. Last change: 2026 Mar 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -490,8 +490,8 @@ On more recent versions of MS-Windows 10 (beginning with the "October 2018
Update"), winpty is no longer required. On those versions, |:terminal| will use
Windows' built-in support for hosting terminal applications, "ConPTY". When
ConPTY is in use, there may be rendering artifacts regarding ambiguous-width
-characters. If you encounter any such issues, install "winpty". Until the
-ConPTY problems have been fixed "winpty" will be preferred.
+characters. If you encounter any such issues, install "winpty". ConPTY
+support is considered stable with the first release of Windows 11.
Environment variables are used to pass information to the running job:
VIM_SERVERNAME v:servername
@@ -525,10 +525,12 @@ term_dumpdiff({filename}, {filename} [, {options}])
of the first file name.
"term_rows" vertical size to use for the terminal,
instead of using 'termwinsize', but
- respecting the minimal size
+ respecting the minimal size; valid range
+ is from 0 to 1000
"term_cols" horizontal size to use for the terminal,
instead of using 'termwinsize', but
- respecting the minimal size
+ respecting the minimal size; valid range
+ is from 0 to 1000
"vertical" split the window vertically
"curwin" use the current window, do not split the
window; fails if the current buffer
@@ -951,9 +953,10 @@ term_start({cmd} [, {options}]) *term_start()*
of the command name.
"term_rows" vertical size to use for the terminal,
instead of using 'termwinsize'; valid
- range is from zero to 1000
+ range is from 0 to 1000
"term_cols" horizontal size to use for the terminal,
- instead of using 'termwinsize'
+ instead of using 'termwinsize'; valid
+ range is from 0 to 1000
"vertical" split the window vertically; note that
other window position can be defined with
command modifiers, such as |:belowright|.
@@ -1263,7 +1266,8 @@ Alternatively, press "s" to swap the first and second dump. Do this several
times so that you can spot the difference in the context of the text.
==============================================================================
-6. Debugging *terminal-debug* *terminal-debugger* *package-termdebug*
+6. Debugging *terminal-debug* *terminal-debugger*
+ *package-termdebug* *termdebug*
The Terminal debugging plugin can be used to debug a program with gdb and view
the source code in a Vim window. Since this is completely contained inside
@@ -1423,11 +1427,25 @@ gdb:
`:Arguments` {args} set arguments for the next `:Run`
*:Break* set a breakpoint at the cursor position
- :Break {position}
+ :Break [{position}] [thread {nr}] [if {expr}]
set a breakpoint at the specified position
+ if {position} is omitted, use the current file and line
+ thread {nr} limits the breakpoint to one thread
+ if {expr} sets a conditional breakpoint
+ Examples: >
+ :Break if argc == 1
+ :Break 42 thread 3 if x > 10
+ :Break main
+<
*:Tbreak* set a temporary breakpoint at the cursor position
- :Tbreak {position}
- set a temporary breakpoint at the specified position
+ :Tbreak [{position}] [thread {nr}] [if {expr}]
+ like `:Break`, but the breakpoint is deleted after
+ it is hit once
+ Examples: >
+ :Tbreak if argc == 1
+ :Tbreak 42 thread 3 if x > 10
+ :Tbreak main
+<
*:Clear* delete the breakpoint at the cursor position
*:ToggleBreak* set a breakpoint at the cursor position or delete all
breakpoints at the cursor position
@@ -1877,7 +1895,7 @@ Contributions for termdebug improvements are welcome.
However, it is fairly common that during the development process you need some
mechanisms like `echo` statements (or similar) to help you in your job.
For this reason, you can set: >
- let g:termdebug_config['debug'] = true
+ let g:termdebug_config['debug'] = v:true
<
This sets the `DEBUG` variable to `true`, which can be referenced in the
source code. An example of its usage follows: >
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 990bcfb2..ba98e048 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*testing.txt* For Vim version 9.2. Last change: 2026 Feb 14
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index fbef2284..fbe4231c 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -1,7 +1,7 @@
-*textprop.txt* For Vim version 9.1. Last change: 2025 Oct 14
+*textprop.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Displaying text with properties attached. *textprop* *text-properties*
@@ -141,9 +141,9 @@ prop_add({lnum}, {col}, {props})
the current buffer is used
id user defined ID for the property; must be a
number, should be positive |E1510|;
- when using "text" then "id" must not be
- present and will be set automatically to a
- negative number; otherwise zero is used
+ when using "text" then any "id" value is
+ ignored and a negative number is assigned
+ automatically; otherwise zero is used
*E1305*
text text to be displayed before {col}, or
above/below the line if {col} is zero; prepend
@@ -224,14 +224,9 @@ prop_add({lnum}, {col}, {props})
is difficult to compute).
A negative "id" will be chosen and is returned.
- Before text properties with text were supported it was
- possible to use a negative "id", even though this was very
- rare. Now that negative "id"s are reserved for text
- properties with text an error is given when using a negative
- "id". When a text property with text already exists using a
- negative "id" results in *E1293* . If a negative "id" was
- used and later a text property with text is added results in
- *E1339* .
+ Negative "id"s are reserved for text properties with "text"
+ and cannot be used otherwise. Using a negative "id" results
+ in *E1293* .
Can also be used as a |method|: >
GetLnum()->prop_add(col, props)
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index c362bea1..9dde7dc4 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,7 +1,7 @@
-*tips.txt* For Vim version 9.1. Last change: 2025 Oct 12
+*tips.txt* For Vim version 9.2. Last change: 2026 Feb 14
- VIM REFERENCE MANUAL by Bram Moolenaar
+ VIM REFERENCE MANUAL by Bram Moolenaar
Tips and ideas for using Vim *tips*
@@ -30,7 +30,7 @@ Executing shell commands in a window |shell-window|
Hex editing |hex-editing|
Using <> notation in autocommands |autocmd-<>|
Highlighting matching parens |match-parens|
-Opening help in the current window |help-curwin|
+Opening help in the current window |package-helpcurwin|
==============================================================================
Editing C programs *C-editing*
@@ -544,28 +544,22 @@ A slightly more advanced version is used in the |matchparen| plugin.
<
==============================================================================
-Opening help in the current window *help-curwin*
+Opening help in the current window *package-helpcurwin*
-By default, help is displayed in a split window. If you prefer it opens in
-the current window, try this custom `:HelpCurwin` command:
->
- command -bar -nargs=? -complete=help HelpCurwin execute s:HelpCurwin(