Merge remote-tracking branch 'vim/master'

This commit is contained in:
Yee Cheng Chin
2025-10-10 15:00:56 -07:00
615 changed files with 20880 additions and 12737 deletions

19
.github/MAINTAINERS vendored
View File

@@ -136,6 +136,7 @@ runtime/ftplugin/chatito.vim @ObserverOfTime
runtime/ftplugin/chicken.vim @evhan
runtime/ftplugin/clojure.vim @axvr
runtime/ftplugin/cmakecache.vim @ribru17
runtime/ftplugin/codeowners.vim @jparise
runtime/ftplugin/cook.vim @ribru17
runtime/ftplugin/cs.vim @nickspoons
runtime/ftplugin/csh.vim @dkearns
@@ -187,8 +188,8 @@ runtime/ftplugin/gyp.vim @ObserverOfTime
runtime/ftplugin/haml.vim @tpope
runtime/ftplugin/hare.vim @selenebun
runtime/ftplugin/haredoc.vim @selenebun
runtime/ftplugin/heex.vim @cvincent
runtime/ftplugin/hcl.vim @gpanders
runtime/ftplugin/heex.vim @cvincent
runtime/ftplugin/hgcommit.vim @k-takata
runtime/ftplugin/hlsplaylist.vim @avidseeker
runtime/ftplugin/hog.vim @wtfbbqhax
@@ -205,16 +206,18 @@ runtime/ftplugin/javacc.vim @ribru17
runtime/ftplugin/javascript.vim @dkearns
runtime/ftplugin/javascriptreact.vim @dkearns
runtime/ftplugin/jjdescription.vim @gpanders
runtime/ftplugin/jq.vim @vito-c
runtime/ftplugin/json.vim @dbarnett
runtime/ftplugin/json5.vim @dkearns
runtime/ftplugin/jsonc.vim @izhakjakov
runtime/ftplugin/julia.vim @carlobaldassi
runtime/ftplugin/just.vim @pbnj
runtime/ftplugin/jq.vim @vito-c
runtime/ftplugin/kconfig.vim @chrisbra
runtime/ftplugin/kdl.vim @imsnif @jiangyinzuo
runtime/ftplugin/kerml.vim @daumantas-kavolis-sensmetry
runtime/ftplugin/kivy.vim @ribru17
runtime/ftplugin/kotlin.vim @udalov
runtime/ftplugin/lc.vim @ribru17
runtime/ftplugin/ldapconf.vim @ribru17
runtime/ftplugin/leo.vim @ribru17
runtime/ftplugin/less.vim @genoma
@@ -222,7 +225,6 @@ runtime/ftplugin/lex.vim @ribru17
runtime/ftplugin/lf.vim @andis-sprinkis
runtime/ftplugin/liquid.vim @tpope
runtime/ftplugin/lua.vim @dkearns
runtime/ftplugin/lc.vim @ribru17
runtime/ftplugin/lynx.vim @dkearns
runtime/ftplugin/m17ndb.vim @dseomn
runtime/ftplugin/m3build.vim @dkearns
@@ -295,6 +297,7 @@ runtime/ftplugin/sshdconfig.vim @jiangyinzuo
runtime/ftplugin/svelte.vim @igorlfs
runtime/ftplugin/sway.vim @ribru17
runtime/ftplugin/swayconfig.vim @jamespeapen
runtime/ftplugin/sysml.vim @daumantas-kavolis-sensmetry
runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/swig.vim @jmarrec
runtime/ftplugin/tap.vim @petdance
@@ -456,6 +459,7 @@ runtime/syntax/chatito.vim @ObserverOfTime
runtime/syntax/chicken.vim @evhan
runtime/syntax/chuck.vim @andreacfromtheapp
runtime/syntax/clojure.vim @axvr
runtime/syntax/codeowners.vim @jparise
runtime/syntax/cs.vim @nickspoons
runtime/syntax/csv.vim @habamax
runtime/syntax/cucumber.vim @tpope
@@ -536,6 +540,7 @@ runtime/syntax/just.vim @pbnj
runtime/syntax/jq.vim @vito-c
runtime/syntax/karel.vim @kirillmorozov
runtime/syntax/kconfig.vim @chrisbra
runtime/syntax/kitty.vim @OXY2DEV
runtime/syntax/kivy.vim @prophittcorey
runtime/syntax/kotlin.vim @udalov
runtime/syntax/kdl.vim @imsnif @jiangyinzuo
@@ -543,9 +548,10 @@ runtime/syntax/krl.vim @KnoP-01
runtime/syntax/less.vim @genoma
runtime/syntax/lf.vim @andis-sprinkis
runtime/syntax/liquid.vim @tpope
runtime/syntax/log.vim @mao-yining
runtime/syntax/lua.vim @marcuscf
runtime/syntax/lyrics.vim @ObserverOfTime
runtime/syntax/lynx.vim @dkearns
runtime/syntax/lyrics.vim @ObserverOfTime
runtime/syntax/m17ndb.vim @dseomn
runtime/syntax/m3build.vim @dkearns
runtime/syntax/m3quake.vim @dkearns
@@ -581,6 +587,7 @@ runtime/syntax/pbtxt.vim @lakshayg
runtime/syntax/pdf.vim @tpope
runtime/syntax/perl.vim @petdance
runtime/syntax/php.vim @TysonAndre
runtime/syntax/pkl.vim @jclsn
runtime/syntax/plsql.vim @lee-lindley
runtime/syntax/pod.vim @petdance
runtime/syntax/poefilter.vim @ObserverOfTime
@@ -666,7 +673,6 @@ runtime/syntax/zsh.vim @chrisbra
runtime/tutor/tutor1.eo @dpelle
runtime/tutor/tutor1.fr @dpelle
runtime/tutor/tutor1.ru @RestorerZ
runtime/tutor/tutor2.fr @dlejay
src/iscygpty.* @k-takata
src/libvterm/ @leonerd
src/po/ca.po @nfdisco
@@ -683,4 +689,7 @@ src/po/ru.po @RestorerZ
src/po/sr.po @eevan78
src/po/tr.po @bitigchi
src/po/uk.po @sakhnik
src/proto/gen_prototypes.py @h-east
src/xxd/ @jnweiger
# vim:ft=codeowners

2
.github/labeler.yml vendored
View File

@@ -45,9 +45,7 @@ if_perl:
- changed-files:
- any-glob-to-any-file:
- 'src/if_perl.xs'
- 'src/if_perlsfio.c'
- 'src/proto/if_perl.pro'
- 'src/proto/if_perlsfio.pro'
- 'runtime/doc/if_perl.txt'
if_python:

1
.gitignore vendored
View File

@@ -11,6 +11,7 @@ src/objects
src/po/big5corr
src/po/sjiscorr
src/types.vim
src/tmp_make
# We do need src/auto/configure.
src/auto/config.cache

View File

@@ -251,6 +251,7 @@ SRC_ALL = \
src/testdir/viewdumps.vim \
src/proto.h \
src/protodef.h \
src/proto/gen_prototypes.py \
src/proto/alloc.pro \
src/proto/arabic.pro \
src/proto/arglist.pro \
@@ -537,6 +538,7 @@ SRC_UNIX = \
src/vimtutor \
src/gvimtutor \
src/wayland.c \
src/wayland.h \
src/which.sh \
src/gen-wayland-protocols.sh \
src/xxd/Makefile \
@@ -549,7 +551,6 @@ SRC_DOS_UNIX = \
src/if_mzsch.c \
src/if_mzsch.h \
src/if_perl.xs \
src/if_perlsfio.c \
src/if_python.c \
src/if_python3.c \
src/if_py_both.h \
@@ -560,7 +561,6 @@ SRC_DOS_UNIX = \
src/proto/if_lua.pro \
src/proto/if_mzsch.pro \
src/proto/if_perl.pro \
src/proto/if_perlsfio.pro \
src/proto/if_python.pro \
src/proto/if_python3.pro \
src/proto/if_ruby.pro \
@@ -638,8 +638,8 @@ SRC_DOS = \
src/tee/tee.c \
src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \
nsis/auxiliary.nsh \
nsis/gvim.nsi \
nsis/gvim_version.nsh \
nsis/Makefile \
nsis/Make_mvc.mak \
nsis/README.txt \

View File

@@ -105,7 +105,7 @@ MINOR = 1
# - Update Vim version number. For a test version in: src/version.h,
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
# src/Makefile, README.txt, README.md, src/README.md, READMEdir/README*.txt,
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
# runtime/doc/*.txt.
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.manifest.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, Lua, Cscope and
# "huge" features. Add MZscheme if you can make it work.
@@ -410,7 +410,7 @@ amisrc: dist prepare
mv dist/vim$(VERSION)src.tar.gz dist/vim$(VERSION)src.tgz
# MS-DOS sources
dossrc: dist dist/$(COMMENT_SRC) license nsis/gvim_version.nsh
dossrc: dist dist/$(COMMENT_SRC) license
-rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim
mkdir dist/vim
@@ -423,7 +423,6 @@ dossrc: dist dist/$(COMMENT_SRC) license nsis/gvim_version.nsh
$(SRC_DOS_UNIX) \
lang/LICENSE.*.txt \
lang/README.*.txt \
nsis/gvim_version.nsh \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
@@ -432,9 +431,6 @@ dossrc: dist dist/$(COMMENT_SRC) license nsis/gvim_version.nsh
license:
cd nsis && $(MAKE) -f Makefile $@
nsis/gvim_version.nsh: Makefile
cd nsis && $(MAKE) -f Makefile $(@F)
dosrt: dist dist/$(COMMENT_RT) dosrt_files
-rm -rf dist/vim$(VERSION)rt.zip
cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)

View File

@@ -33,6 +33,7 @@ Pmenu
PmenuSbar
PmenuSel
PmenuThumb
PmenuShadow
Question
Scrollbar
Search
@@ -51,6 +52,8 @@ TabLineFill
TabLineSel
Terminal
Title
TitleBar
TitleBarNC
TOhtmlProgress
TOhtml-progress-color
ToolbarButton

View File

@@ -1,60 +1,12 @@
#
# Makefile for MS Windows for create self-installing exe of Vim.
# 202404-05, Restorer, restorer@mail2k.ru
# 2025-10-03, Restorer, restorer@mail2k.ru
#
# included common tools
!INCLUDE ..\src\auto\nmake\tools.mak
# Read MAJOR and MINOR from version.h.
!IFNDEF MAJOR
! IF ![for /F "tokens=3" %G in \
('findstr /RC:"VIM_VERSION_MAJOR[ ^]*[0-9^]" ..\src\version.h') \
do @(echo:MAJOR=%G>> .\_major.tmp)]
! INCLUDE .\_major.tmp
! IF [$(RM) .\_major.tmp]
! ENDIF
! ELSE
MAJOR = 9
! ENDIF
!ENDIF
!IFNDEF MINOR
! IF ![for /F "tokens=3" %G in \
('findstr /RC:"VIM_VERSION_MINOR[ ^]*[0-9^]" ..\src\version.h') \
do @(echo:MINOR=%G>> .\_minor.tmp)]
! INCLUDE .\_minor.tmp
! IF [$(RM) .\_minor.tmp]
! ENDIF
! ELSE
MINOR = 1
! ENDIF
!ENDIF
# Read PATCHLEVEL from version.c
!IFNDEF PATCHLEVEL
! IF ![for /F %G in \
('findstr /NBLC:"static int included_patches" ..\src\version.c \
^| (set /p "_t=" ^& set /a _t+=2 ^)') do \
@$(CMD) $(CMDFLAGS) "for /F "skip=%G delims=, " %H in \
(..\src\version.c) do (echo:PATCHLEVEL=%H> .\_patchlvl.tmp & exit /b)"]
! INCLUDE .\_patchlvl.tmp
! IF [$(RM) .\_patchlvl.tmp]
! ENDIF
! ELSE
PATCHLEVEL = 0
! ENDIF
!ENDIF
!IF $(PATCHLEVEL) < 10
PATCHLEVEL = 000$(PATCHLEVEL)
!ELSEIF $(PATCHLEVEL) < 100
PATCHLEVEL = 00$(PATCHLEVEL)
!ELSEIF $(PATCHLEVEL) < 1000
PATCHLEVEL = 0$(PATCHLEVEL)
!ENDIF
.SUFFIXES :
!IFDEF PROGRAMW6432
@@ -119,23 +71,13 @@ all : makeinst
makeinst : prepare
^"$(MKNSIS)" $(MKNSISFLAGS) gvim.nsi $(XX)
prepare : unzipicons gvim_version.nsh license rename
prepare : unzipicons license rename
unzipicons : icons.zip
@ if exist %|fF\nul $(RD) %|fF
@ $(PS) $(PSFLAGS) \
Add-Type -AssemblyName 'System.IO.Compression.FileSystem'; \
[System.IO.Compression.ZipFile]::ExtractToDirectory(\"$**\", \
\".\")
gvim_version.nsh : Make_mvc.mak
@ 1> $@ echo:^# Generated from Makefile: define the version numbers
@ 1>> $@ echo:^!ifndef __GVIM_VER__NSH__
@ 1>> $@ echo:^!define __GVIM_VER__NSH__
@ 1>> $@ echo:^!define VER_MAJOR $(MAJOR)
@ 1>> $@ echo:^!define VER_MINOR $(MINOR)
@ 1>> $@ echo:^!define PATCHLEVEL $(PATCHLEVEL)
@ 1>> $@ echo:^!endif
[System.IO.Compression.ZipFile]::ExtractToDirectory('$**', '.')
license : ..\lang\LICENSE.*.txt ..\LICENSE
!@ $(PS) $(PSFLAGS) \
@@ -146,7 +88,6 @@ rename :
@ ..\tools\rename.bat "$(SRC)" "$(DST)" 1> nul
clean :
@ if exist .\gvim_version.nsh $(RM) .\gvim_version.nsh
@ if exist ..\lang\LICENSE*.nsis.txt $(RM) ..\lang\LICENSE*.nsis.txt
@ if exist .\icons\nul $(RD) .\icons
@ if exist .\gvim??.exe $(RM) .\gvim??.exe

View File

@@ -1,6 +1,6 @@
#
# Makefile for UNIX-like for create self-installing exe of Vim.
# 15/12/2024, Restorer restorer@mail2k.ru
# 2025-10-03, Restorer, restorer@mail2k.ru
#
@@ -51,13 +51,6 @@ ifdef X
XX := -X"$(X:;=" -X")"
endif
MAJOR != grep -E 'VIM_VERSION_MAJOR\s{2,}' ../src/version.h | \
awk '{ printf "%d",$$3 }'
MINOR != grep -E 'VIM_VERSION_MINOR\s{2,}' ../src/version.h | \
awk '{ printf "%d",$$3 }'
PATCH != awk '/number below this line/,/,/' ../src/version.c | \
awk 'NR == 3 { printf "%04d",$$1 }' | sed -e 's/[ ,]//g'
MKNSISFLAGS := -INPUTCHARSET UTF8 $(MKNSISFLAGS)
all: makeinst
@@ -65,21 +58,12 @@ all: makeinst
makeinst: prepare
makensis $(MKNSISFLAGS) gvim.nsi $(XX)
prepare: unzipicons gvim_version.nsh license rename
prepare: unzipicons license rename
unzipicons: icons.zip
if test -d `basename $? .zip` ; then rm -rf `basename $? .zip` ; fi
unzip $?
gvim_version.nsh: Makefile
echo "# Generated from Makefile: define the version numbers" > $@
echo "!ifndef __GVIM_VER__NSH__" >> $@
echo "!define __GVIM_VER__NSH__" >> $@
echo "!define VER_MAJOR $(MAJOR)" >> $@
echo "!define VER_MINOR $(MINOR)" >> $@
echo "!define PATCHLEVEL $(PATCH)" >> $@
echo "!endif" >> $@
license: ../lang/LICENSE.*.txt ../LICENSE
for lic in $? ; do \
bn=`basename $$lic .txt` ; \
@@ -91,7 +75,6 @@ rename:
../tools/rename.bat "$(SRC)" "$(DST)"
clean:
if test -f gvim_version.nsh ; then rm -f gvim_version.nsh ; fi
rm -f ../lang/LICENSE*.nsis.txt
if test -d icons ; then rm -rf icons ; fi
if test -f gvim??.exe ; then rm -f gvim??.exe ; fi

View File

@@ -108,3 +108,5 @@ Variables and their values available for building the installer (not mandatory):
Example "X=OutFile MyVim.exe;XPMode on"
"MKNSIS=<dir>" — the directory where the "makensis.exe" program is
located.
Note: for icons used in the installer, see the README.txt in the icons.zip

148
nsis/auxiliary.nsh Normal file
View File

@@ -0,0 +1,148 @@
# -*- coding: utf-8 -*-
# NSIS helper file for creating a self-installing exe for Vim.
# Contains service macros and functions.
# Last Change: 2025-09-03
#
!ifndef __AUXILIARY__NSH__
!define __AUXILIARY__NSH__
# See https://nsis.sourceforge.io/LogicLib
;FileExists is already part of LogicLib, but returns true for directories
;as well as files
!macro _FileExists2 _a _b _t _f
!insertmacro _LOGICLIB_TEMP
StrCpy $_LOGICLIB_TEMP "0"
;if path is not blank, continue to next check
StrCmp `${_b}` `` +4 0
;if path exists, continue to next check (IfFileExists returns true if this
;is a directory)
IfFileExists `${_b}` `0` +3
;if path is not a directory, continue to confirm exists
IfFileExists `${_b}\*.*` +2 0
StrCpy $_LOGICLIB_TEMP "1" ;file exists
;now we have a definitive value - the file exists or it does not
StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}`
!macroend
!undef FileExists
!define FileExists `"" FileExists2`
!macro _DirExists _a _b _t _f
!insertmacro _LOGICLIB_TEMP
StrCpy $_LOGICLIB_TEMP "0"
;if path is not blank, continue to next check
StrCmp `${_b}` `` +3 0
;if directory exists, continue to confirm exists
IfFileExists `${_b}\*.*` 0 +2
StrCpy $_LOGICLIB_TEMP "1"
StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}`
!macroend
!define DirExists `"" DirExists`
# Get parent directory
# Share this function both on installer and uninstaller
!macro GetParent un
Function ${un}GetParent
Exch $0 ; old $0 is on top of stack
Push $1
Push $2
StrCpy $1 -1
${Do}
StrCpy $2 $0 1 $1
${If} $2 == ""
${OrIf} $2 == "\"
${ExitDo}
${EndIf}
IntOp $1 $1 - 1
${Loop}
StrCpy $0 $0 $1
Pop $2
Pop $1
Exch $0 ; put $0 on top of stack, restore $0 to original value
FunctionEnd
!macroend
!insertmacro GetParent ""
!insertmacro GetParent "un."
# Get home directory
!macro GetHomeDir un
Function ${un}GetHomeDir
Push $0
Push $1
ReadEnvStr $0 "HOME"
${If} $0 == ""
ReadEnvStr $0 "HOMEDRIVE"
ReadEnvStr $1 "HOMEPATH"
StrCpy $0 "$0$1"
${If} $0 == ""
ReadEnvStr $0 "USERPROFILE"
${EndIf}
${EndIf}
Pop $1
Exch $0 ; put $0 on top of stack, restore $0 to original value
FunctionEnd
!macroend
!insertmacro GetHomeDir ""
!insertmacro GetHomeDir "un."
# Saving the status of sections of the current installation in the registry
!macro SaveSectionSelection section_id reg_value
${If} ${SectionIsSelected} ${section_id}
WriteRegDWORD HKLM "${UNINST_REG_KEY_VIM}" ${reg_value} 1
${Else}
WriteRegDWORD HKLM "${UNINST_REG_KEY_VIM}" ${reg_value} 0
${EndIf}
!macroend
# Reading the status of sections from the registry of the previous installation
!macro LoadSectionSelection section_id reg_value
ClearErrors
ReadRegDWORD $3 HKLM "${UNINST_REG_KEY_VIM}" ${reg_value}
${IfNot} ${Errors}
${If} $3 = 1
!insertmacro SelectSection ${section_id}
${Else}
!insertmacro UnselectSection ${section_id}
${EndIf}
${EndIf}
!macroend
# Reading the settings for _vimrc from the registry of a previous installation
!macro LoadDefaultVimrc out_var reg_value default_value
ClearErrors
ReadRegStr ${out_var} HKLM "${UNINST_REG_KEY_VIM}" ${reg_value}
${If} ${Errors}
${OrIf} ${out_var} == ""
StrCpy ${out_var} ${default_value}
${EndIf}
!macroend
# Get user locale
!if ${HAVE_NLS}
Var lng_usr ; variable containing the locale of the current user
!include "StrFunc.nsh"
${StrRep}
Function GetUserLocale
ClearErrors
System::Call \
'kernel32::GetUserDefaultLocaleName(t.r19, *i${NSIS_MAX_STRLEN})'
StrCmp $R9 "zh-cn" coincide 0
StrCmp $R9 "zh-tw" coincide 0
StrCmp $R9 "pt-br" 0 part
coincide:
System::Call 'User32::CharLower(t r19 r19)*i${NSIS_MAX_STRLEN}'
${StrRep} $lng_usr "$R9" "-" "_"
Goto done
part:
StrCpy $lng_usr $R9 2
done:
FunctionEnd
!endif
!endif # __AUXILIARY__NSH__
# vi:set ts=8 sw=2 sts=2 tw=79 wm=0 ft=nsis:

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
# Generated from Makefile: define the version numbers
!ifndef __GVIM_VER__NSH__
!define __GVIM_VER__NSH__
!define VER_MAJOR 9
!define VER_MINOR 1
!define PATCHLEVEL 0
!endif

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@ vim9script
# Language: Vim script
# Maintainer: github user lacygoill
# Last Change: 2025 Jul 25
# Last Change: 2025 Oct 09
#
# Includes changes from The Vim Project:
@@ -341,7 +341,8 @@ const PLUS_MINUS_COMMAND: string = '^\s*[+-]\s*$'
patterns =<< trim eval END
{'\'}<argd\%[elete]\s\+\*\s*$
\<[lt]\=cd!\=\s\+-\s*$
\<norm\%[al]!\=\s*\S\+$
\<norm\%[al]!\=\s\+.*$
\<reg\%[isters]\%(\s\+\S\+\)\+$
\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)\=map!\=\s
\<set\%(\%[global]\|\%[local]\)\>.*,$
{PLUS_MINUS_COMMAND}
@@ -400,6 +401,7 @@ const LINE_CONTINUATION_AT_SOL: string = '^\s*\%('
.. '\|' .. '[#"]\\ '
.. '\|' .. OPERATOR
.. '\|' .. '->\s*\h'
.. '\|' .. '->\s*(' # lambda call: ->((v) => v ? "ON" : "OFF")()
.. '\|' .. '\.\h' # dict member
.. '\|' .. '|'
# TODO: `}` at the start of a line is not necessarily a line continuation.

View File

@@ -4,7 +4,7 @@ vim9script
# Contributers: @lacygoill
# Shane-XB-Qian
# Andrew Radev
# Last Change: 2025 Sep 02
# Last Change: 2025 Sep 21
#
# Vim Script to handle jumping to the targets of several types of Vim commands
# (:import, :packadd, :runtime, :colorscheme), and to autoloaded functions of
@@ -16,17 +16,17 @@ vim9script
export def Find(editcmd: string) #{{{2
var curline: string = getline('.')
if curline =~ '^\s*\%(:\s*\)\=packadd!\=\s'
if curline =~ '^\s*\%(:\s*\)\=\%(sil\%[ent]!\=\s\+\)\=packadd!\=\s'
HandlePackaddLine(editcmd, curline)
return
endif
if curline =~ '^\s*\%(:\s*\)\=ru\%[ntime]!\='
if curline =~ '^\s*\%(:\s*\)\=\%(sil\%[ent]!\=\s\+\)\=ru\%[ntime]!\='
HandleRuntimeLine(editcmd, curline, expand('<cfile>'))
return
endif
if curline =~ '^\s*\%(:\s*\)\=colo\%[rscheme]\s'
if curline =~ '^\s*\%(:\s*\)\=\%(sil\%[ent]!\=\s\+\)\=colo\%[rscheme]\s'
HandleColoLine(editcmd, curline)
return
endif

View File

@@ -1,4 +1,4 @@
" zip.vim: Handles browsing zipfiles
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: 2024 Aug 21
" Version: 34
@@ -16,6 +16,7 @@
" 2024 Aug 21 by Vim Project: simplify condition to detect MS-Windows
" 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
" 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,
@@ -78,15 +79,124 @@ if v:version < 901
finish
endif
" sanity checks
if !executable(g:zip_unzipcmd)
if !executable(g:zip_unzipcmd) && &shell !~ 'pwsh'
call s:Mess('Error', "***error*** (zip#Browse) unzip not available on your system")
finish
endif
if !dist#vim#IsSafeExecutable('zip', g:zip_unzipcmd)
if !dist#vim#IsSafeExecutable('zip', g:zip_unzipcmd) && &shell !~ 'pwsh'
call s:Mess('Error', "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!")
finish
endif
" ----------------
" PowerShell: {{{1
" ----------------
function! s:TryExecGnuFallBackToPs(executable, gnu_func_call, ...)
" Check that a gnu executable is available, run the gnu_func_call if so. If
" the gnu executable is not available or if gnu_func_call fails, try
" ps_func_call if &shell =~ 'pwsh'. If all attempts fail, print errors.
" a:executable - one of (g:zip_zipcmd, g:zip_unzipcmd, g:zip_extractcmd)
" a:gnu_func_call - (string) a gnu function call to execute
" a:1 - (optional string) a PowerShell function call to execute.
let failures = []
if executable(substitute(a:executable,'\s\+.*$','',''))
try
exe a:gnu_func_call
return
catch
call add(failures, 'Failed to execute '.a:gnu_func_call)
endtry
else
call add(failures, a:executable.' not available on your system')
endif
if &shell =~ 'pwsh' && a:0 == 1
try
exe a:1
return
catch
call add(failures, 'Fallback to PowerShell attempted but failed')
endtry
endif
for msg in failures
call s:Mess('Error', msg)
endfor
endfunction
function! s:ZipBrowsePS(zipfile)
" Browse the contents of a zip file using PowerShell's
" Equivalent `unzip -Z1 -- zipfile`
let cmds = [
\ '$zip = [System.IO.Compression.ZipFile]::OpenRead(' . s:Escape(a:zipfile, 1) . ');',
\ '$zip.Entries | ForEach-Object { $_.FullName };',
\ '$zip.Dispose()'
\ ]
return 'pwsh -NoProfile -Command ' . s:Escape(join(cmds, ' '), 1)
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 =~ '/'
call s:Mess('WarningMsg', "***warning*** PowerShell can display, but cannot update, files in archive subfolders")
endif
let cmds = [
\ '$zip = [System.IO.Compression.ZipFile]::OpenRead(' . s:Escape(a:zipfile, 1) . ');',
\ '$fileEntry = $zip.Entries | Where-Object { $_.FullName -eq ' . s:Escape(a:fname, 1) . ' };',
\ '$stream = $fileEntry.Open();',
\ '$fileStream = [System.IO.File]::Create(' . s:Escape(a:tempfile, 1) . ');',
\ '$stream.CopyTo($fileStream);',
\ '$fileStream.Close();',
\ '$stream.Close();',
\ '$zip.Dispose()'
\ ]
return 'pwsh -NoProfile -Command ' . s:Escape(join(cmds, ' '), 1)
endfunction
function! s:ZipUpdatePS(zipfile, fname)
" Update a filename within a zipped file
" Equivalent to `zip -u zipfile fname`
if a:fname =~ '/'
call s:Mess('Error', "***error*** PowerShell cannot update files in archive subfolders")
return ':'
endif
return 'Compress-Archive -Path ' . a:fname . ' -Update -DestinationPath ' . a:zipfile
endfunction
function! s:ZipExtractFilePS(zipfile, fname)
" Extract a single file from an archive
" Equivalent to `unzip -o zipfile fname`
if a:fname =~ '/'
call s:Mess('Error', "***error*** PowerShell cannot extract files in archive subfolders")
return ':'
endif
let cmds = [
\ '$zip = [System.IO.Compression.ZipFile]::OpenRead(' . s:Escape(a:zipfile, 1) . ');',
\ '$fileEntry = $zip.Entries | Where-Object { $_.FullName -eq ' . a:fname . ' };',
\ '$stream = $fileEntry.Open();',
\ '$fileStream = [System.IO.File]::Create(' . a:fname . ');',
\ '$stream.CopyTo($fileStream);',
\ '$fileStream.Close();',
\ '$stream.Close();',
\ '$zip.Dispose()'
\ ]
return 'pwsh -NoProfile -Command ' . s:Escape(join(cmds, ' '), 1)
endfunction
function! s:ZipDeleteFilePS(zipfile, fname)
" Delete a single file from an archive
" Equivalent to `zip -d zipfile fname`
let cmds = [
\ 'Add-Type -AssemblyName System.IO.Compression.FileSystem;',
\ '$zip = [System.IO.Compression.ZipFile]::Open(' . s:Escape(a:zipfile, 1) . ', ''Update'');',
\ '$entry = $zip.Entries | Where-Object { $_.Name -eq ' . s:Escape(a:fname, 1) . ' };',
\ 'if ($entry) { $entry.Delete(); $zip.Dispose() }',
\ 'else { $zip.Dispose() }'
\ ]
return 'pwsh -NoProfile -Command ' . s:Escape(join(cmds, ' '), 1)
endfunction
" ----------------
" Functions: {{{1
" ----------------
@@ -105,7 +215,7 @@ fun! zip#Browse(zipfile)
defer s:RestoreOpts(dict)
" sanity checks
if !executable(g:zip_unzipcmd)
if !executable(g:zip_unzipcmd) && &shell !~ 'pwsh'
call s:Mess('Error', "***error*** (zip#Browse) unzip not available on your system")
return
endif
@@ -140,7 +250,10 @@ fun! zip#Browse(zipfile)
\ '" Select a file with cursor and press ENTER'])
keepj $
exe $"keepj sil r! {g:zip_unzipcmd} -Z1 -- {s:Escape(a:zipfile, 1)}"
let gnu_cmd = "keepj sil r! " . g:zip_unzipcmd . " -Z1 -- " . s:Escape(a:zipfile, 1)
let ps_cmd = 'keepj sil r! ' . s:ZipBrowsePS(a:zipfile)
call s:TryExecGnuFallBackToPs(g:zip_unzipcmd, gnu_cmd, ps_cmd)
if v:shell_error != 0
call s:Mess('WarningMsg', "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file")
keepj sil! %d
@@ -210,7 +323,7 @@ fun! zip#Read(fname,mode)
endif
let fname = fname->substitute('[', '[[]', 'g')->escape('?*\\')
" sanity check
if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','','')) && &shell !~ 'pwsh'
call s:Mess('Error', "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program")
return
endif
@@ -220,7 +333,11 @@ fun! zip#Read(fname,mode)
" but allows zipfile://... entries in quickfix lists
let temp = tempname()
let fn = expand('%:p')
exe "sil !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1).' > '.temp
let gnu_cmd = 'sil !' . g:zip_unzipcmd . ' -p -- ' . s:Escape(zipfile, 1) . ' ' . s:Escape(fname, 1) . ' > ' . s:Escape(temp, 1)
let ps_cmd = 'sil !' . s:ZipReadPS(zipfile, fname, temp)
call s:TryExecGnuFallBackToPs(g:zip_unzipcmd, gnu_cmd, ps_cmd)
sil exe 'keepalt file '.temp
sil keepj e!
sil exe 'keepalt file '.fnameescape(fn)
@@ -241,7 +358,7 @@ fun! zip#Write(fname)
defer s:RestoreOpts(dict)
" sanity checks
if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
if !executable(substitute(g:zip_zipcmd,'\s\+.*$','','')) && &shell !~ 'pwsh'
call s:Mess('Error', "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program")
return
endif
@@ -273,7 +390,10 @@ fun! zip#Write(fname)
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
endif
if fname =~ '^[.]\{1,2}/'
call system(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)
let fname = fname->substitute('^\([.]\{1,2}/\)\+', '', 'g')
let need_rename = 1
endif
@@ -299,7 +419,20 @@ fun! zip#Write(fname)
let fname = substitute(fname, '[', '[[]', 'g')
endif
call system(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') . ''')'
call s:TryExecGnuFallBackToPs(g:zip_zipcmd, gnu_cmd, ps_cmd)
if &shell =~ 'pwsh'
" Vim flashes 'creation in progress ...' from what I believe is the
" ProgressAction stream of PowerShell. Unfortunately, this cannot be
" suppressed (as of 250824) due to an open PowerShell issue.
" https://github.com/PowerShell/PowerShell/issues/21074
" This necessitates a redraw of the buffer.
redraw!
endif
if v:shell_error != 0
call s:Mess('Error', "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname)
@@ -370,10 +503,14 @@ fun! zip#Extract()
endif
" extract the file mentioned under the cursor
call system($"{g:zip_extractcmd} -o {shellescape(b:zipfile)} {target}")
let gnu_cmd = g:zip_extractcmd . ' -o '. shellescape(b:zipfile) . ' ' . target
let gnu_cmd = 'call system(''' . substitute(gnu_cmd, "'", "''", 'g') . ''')'
let ps_cmd = $"call system({s:Escape(s:ZipExtractFilePS(b:zipfile, target), 1)})"
call s:TryExecGnuFallBackToPs(g:zip_extractcmd, gnu_cmd, ps_cmd)
if v:shell_error != 0
call s:Mess('Error', "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!")
elseif !filereadable(fname)
elseif !filereadable(fname) && &shell !~ 'pwsh'
call s:Mess('Error', "***error*** attempted to extract ".fname." but it doesn't appear to be present!")
else
echomsg "***note*** successfully extracted ".fname

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -115,6 +115,8 @@ hi Statement guifg=#ffffff guibg=NONE guisp=NONE gui=NONE ctermfg=231 ctermbg=NO
hi StatusLine guifg=#000087 guibg=#5fffff guisp=NONE gui=NONE ctermfg=18 ctermbg=87 cterm=NONE term=bold,reverse
hi StatusLineNC guifg=#000087 guibg=#008787 guisp=NONE gui=NONE ctermfg=18 ctermbg=30 cterm=NONE term=bold,underline
hi Title guifg=#d787d7 guibg=NONE guisp=NONE gui=NONE ctermfg=176 ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#ffd700 guibg=#1f4f87 guisp=NONE gui=NONE ctermfg=220 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#878787 guibg=#0f3f77 guisp=NONE gui=NONE ctermfg=102 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#005faf guisp=NONE gui=NONE ctermfg=231 ctermbg=25 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -184,6 +186,8 @@ if s:t_Co >= 16
hi StatusLine ctermfg=darkblue ctermbg=cyan cterm=NONE
hi StatusLineNC ctermfg=darkblue ctermbg=darkcyan cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=yellow ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -250,6 +254,8 @@ if s:t_Co >= 8
hi StatusLine ctermfg=cyan ctermbg=blue cterm=bold,reverse
hi StatusLineNC ctermfg=blue ctermbg=cyan cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=yellow ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=blue ctermbg=gray cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -3,9 +3,9 @@
" Author: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -44,6 +44,7 @@ hi! link Number Constant
hi! link Operator Statement
hi! link PopupNotification Todo
hi! link PreCondit PreProc
hi! link PreInsert NonText
hi! link Removed WarningMsg
hi! link Repeat Statement
hi! link SpecialChar Special
@@ -116,6 +117,8 @@ hi StatusLineNC guifg=#000000 guibg=#808080 guisp=NONE gui=NONE ctermfg=16 cterm
hi TabLine guifg=#000000 guibg=#808080 guisp=NONE gui=NONE ctermfg=16 ctermbg=102 cterm=NONE term=bold,underline
hi TabLineSel guifg=#000040 guibg=#c0c0c0 guisp=NONE gui=NONE ctermfg=17 ctermbg=252 cterm=NONE term=bold,reverse
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=NONE ctermfg=201 ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#c0c0c0 guibg=#3c3c66 guisp=NONE gui=NONE ctermfg=252 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#808080 guibg=#2c2c56 guisp=NONE gui=NONE ctermfg=102 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#0030ff guisp=NONE gui=NONE ctermfg=231 ctermbg=27 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -182,6 +185,8 @@ if s:t_Co >= 16
hi TabLine ctermfg=black ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -246,6 +251,8 @@ if s:t_Co >= 8
hi TabLine ctermfg=grey ctermbg=black cterm=reverse
hi TabLineSel ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=darkblue ctermbg=grey cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=light
@@ -84,6 +84,8 @@ hi TabLine guifg=#000000 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=16 ctermbg=25
hi TabLineFill guifg=NONE guibg=#bcbcbc guisp=NONE gui=NONE ctermfg=NONE ctermbg=250 cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#ffffff guisp=NONE gui=bold ctermfg=16 ctermbg=231 cterm=bold term=bold,reverse
hi Title guifg=#cd00cd guibg=NONE guisp=NONE gui=bold ctermfg=164 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#878787 guibg=#f5f5f5 guisp=NONE gui=NONE ctermfg=102 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=#000000 guibg=#ffff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#bcbcbc guisp=NONE gui=bold ctermfg=231 ctermbg=250 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=reverse
@@ -155,6 +157,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=white cterm=bold
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=grey cterm=NONE
@@ -224,6 +228,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=black cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -84,6 +84,8 @@ hi TabLine guifg=#333333 guibg=#c2bfa5 guisp=NONE gui=NONE ctermfg=236 ctermbg=1
hi TabLineFill guifg=NONE guibg=#c2bfa5 guisp=NONE gui=NONE ctermfg=NONE ctermbg=144 cterm=NONE term=NONE
hi TabLineSel guifg=#333333 guibg=#f0e68c guisp=NONE gui=NONE ctermfg=236 ctermbg=186 cterm=NONE term=bold,reverse
hi Title guifg=#cd5c5c guibg=NONE guisp=NONE gui=bold ctermfg=167 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#ffffff guibg=#4c4c4c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#8a7f7f guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=244 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#ff0000 guibg=#eeee00 guisp=NONE gui=NONE ctermfg=196 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#333333 guibg=#ffde9b guisp=NONE gui=bold ctermfg=236 ctermbg=222 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#666666 guisp=NONE gui=NONE ctermfg=NONE ctermbg=241 cterm=NONE term=reverse
@@ -158,6 +160,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=white cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=red ctermbg=darkmagenta cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -225,6 +229,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=darkred ctermbg=darkmagenta cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -3,9 +3,9 @@
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" URL: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -107,6 +107,8 @@ hi TabLineFill guifg=NONE guibg=#000000 guisp=NONE gui=reverse ctermfg=NONE cter
hi TabLineSel guifg=#00ffff guibg=#000000 guisp=NONE gui=bold ctermfg=51 ctermbg=16 cterm=bold term=bold,reverse
hi Terminal guifg=#00ffff guibg=#000000 guisp=NONE gui=NONE ctermfg=51 ctermbg=16 cterm=NONE term=NONE
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=bold ctermfg=201 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#00ffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=51 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#7f7f7f guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=102 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#0000ff guibg=#ffff00 guisp=NONE gui=NONE ctermfg=21 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 ctermbg=254 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -179,6 +181,8 @@ if s:t_Co >= 16
hi TabLineSel ctermfg=cyan ctermbg=black cterm=bold
hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=cyan ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -251,6 +255,8 @@ if s:t_Co >= 8
hi TabLineSel ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Terminal ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=cyan ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -118,6 +118,8 @@ hi StatusLineNC guifg=#333333 guibg=#d3d3d3 guisp=NONE gui=NONE ctermfg=236 cter
hi TabLine guifg=#333333 guibg=#d3d3d3 guisp=NONE gui=NONE ctermfg=236 ctermbg=252 cterm=NONE term=bold,underline
hi TabLineSel guifg=#333333 guibg=#ffffff guisp=NONE gui=bold ctermfg=236 ctermbg=231 cterm=bold term=bold,reverse
hi Title guifg=#ff80ff guibg=NONE guisp=NONE gui=NONE ctermfg=201 ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#ffffff guibg=#4c4c4c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#bebebe guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=250 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#ffff00 guibg=#0000ff guisp=NONE gui=reverse ctermfg=226 ctermbg=21 cterm=reverse term=bold,reverse
hi ToolbarButton guifg=NONE guibg=#999999 guisp=NONE gui=bold ctermfg=NONE ctermbg=246 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -184,6 +186,8 @@ if s:t_Co >= 16
hi TabLine ctermfg=black ctermbg=gray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
hi ToolbarButton ctermfg=NONE ctermbg=darkgray cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -248,6 +252,8 @@ if s:t_Co >= 8
hi TabLine ctermfg=gray ctermbg=black cterm=reverse
hi TabLineSel ctermfg=gray ctermbg=black cterm=bold,reverse
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
hi ToolbarButton ctermfg=gray ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -3,9 +3,9 @@
" Author: Maxim Kim <habamax@gmail.com>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 18
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -15,7 +15,7 @@ let g:colors_name = 'habamax'
let s:t_Co = has('gui_running') ? 16777216 : str2nr(&t_Co)
let s:tgc = has('termguicolors') && &termguicolors
let g:terminal_ansi_colors = ['#1c1c1c', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d75f87', '#87d787', '#d7af87', '#5fafd7', '#d787d7', '#87afaf', '#bcbcbc']
let g:terminal_ansi_colors = ['#1c1c1c', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d75f87', '#87d787', '#d7af87', '#5fafd7', '#d787d7', '#87afaf', '#c7c7c7']
hi! link CurSearch IncSearch
hi! link CursorLineFold FoldColumn
@@ -28,6 +28,7 @@ hi! link MessageWindow Pmenu
hi! link Number Constant
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link PreInsert NonText
hi! link Quote String
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
@@ -69,7 +70,7 @@ hi! link vimSep Normal
hi! link vimVar Normal
hi! link yamlBlockMappingKey Statement
hi Normal guifg=#bcbcbc guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=250 ctermbg=234 cterm=NONE term=NONE
hi Normal guifg=#c7c7c7 guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=251 ctermbg=234 cterm=NONE term=NONE
hi Added guifg=#5fd75f guibg=NONE guisp=NONE gui=NONE ctermfg=77 ctermbg=NONE cterm=NONE term=NONE
hi Changed guifg=#ffaf5f guibg=NONE guisp=NONE gui=NONE ctermfg=215 ctermbg=NONE cterm=NONE term=NONE
hi Character guifg=#87d787 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
@@ -88,7 +89,7 @@ hi DiffDelete guifg=#767676 guibg=#2f1f1a guisp=NONE gui=NONE ctermfg=243 ctermb
hi DiffText guifg=NONE guibg=#0f4f4f guisp=NONE gui=NONE ctermfg=247 ctermbg=23 cterm=NONE term=reverse
hi Directory guifg=#87afaf guibg=NONE guisp=NONE gui=bold ctermfg=109 ctermbg=NONE cterm=bold term=NONE
hi EndOfBuffer guifg=#585858 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
hi Error guifg=#af5f5f guibg=#1c1c1c guisp=NONE gui=reverse ctermfg=131 ctermbg=234 cterm=reverse term=bold,reverse
hi Error guifg=NONE guibg=#a03f2f guisp=NONE gui=NONE ctermfg=131 ctermbg=234 cterm=reverse term=bold,reverse
hi ErrorMsg guifg=#af5f5f guibg=#1c1c1c guisp=NONE gui=reverse ctermfg=131 ctermbg=234 cterm=reverse term=bold,reverse
hi FoldColumn guifg=#585858 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
hi Folded guifg=#9e9e9e guibg=#262626 guisp=NONE gui=NONE ctermfg=247 ctermbg=235 cterm=NONE term=NONE
@@ -112,16 +113,16 @@ hi PmenuSel guifg=NONE guibg=#585858 guisp=NONE gui=NONE ctermfg=NONE ctermbg=24
hi PmenuThumb guifg=NONE guibg=#767676 guisp=NONE gui=NONE ctermfg=NONE ctermbg=243 cterm=NONE term=NONE
hi PreProc guifg=#af875f guibg=NONE guisp=NONE gui=NONE ctermfg=137 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#d7af87 guibg=NONE guisp=NONE gui=NONE ctermfg=180 ctermbg=NONE cterm=NONE term=standout
hi QuickFixLine guifg=#1c1c1c guibg=#5f87af guisp=NONE gui=NONE ctermfg=234 ctermbg=67 cterm=NONE term=NONE
hi QuickFixLine guifg=NONE guibg=#4f2f4f guisp=NONE gui=NONE ctermfg=251 ctermbg=53 cterm=NONE term=NONE
hi Removed guifg=#d75f5f guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#374a44 guisp=NONE gui=NONE ctermfg=114 ctermbg=234 cterm=reverse term=reverse
hi SignColumn guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
hi Special guifg=#5f8787 guibg=NONE guisp=NONE gui=NONE ctermfg=66 ctermbg=NONE cterm=NONE term=NONE
hi SpecialKey guifg=#585858 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=bold
hi SpellBad guifg=NONE guibg=NONE guisp=#d75f5f gui=undercurl ctermfg=167 ctermbg=NONE cterm=underline term=underline ctermul=167
hi SpellCap guifg=NONE guibg=NONE guisp=#ffaf5f gui=undercurl ctermfg=215 ctermbg=NONE cterm=underline term=underline ctermul=215
hi SpellLocal guifg=NONE guibg=NONE guisp=#5fd75f gui=undercurl ctermfg=77 ctermbg=NONE cterm=underline term=underline ctermul=77
hi SpellRare guifg=NONE guibg=NONE guisp=#d787d7 gui=undercurl ctermfg=176 ctermbg=NONE cterm=underline term=underline ctermul=176
hi SpellBad guifg=NONE guibg=NONE guisp=#d75f5f gui=undercurl ctermfg=167 ctermbg=NONE cterm=underline term=underline
hi SpellCap guifg=NONE guibg=NONE guisp=#ffaf5f gui=undercurl ctermfg=215 ctermbg=NONE cterm=underline term=underline
hi SpellLocal guifg=NONE guibg=NONE guisp=#5fd75f gui=undercurl ctermfg=77 ctermbg=NONE cterm=underline term=underline
hi SpellRare guifg=NONE guibg=NONE guisp=#d787d7 gui=undercurl ctermfg=176 ctermbg=NONE cterm=underline term=underline
hi Statement guifg=#af87af guibg=NONE guisp=NONE gui=NONE ctermfg=139 ctermbg=NONE cterm=NONE term=NONE
hi StatusLine guifg=#1c1c1c guibg=#9e9e9e guisp=NONE gui=NONE ctermfg=234 ctermbg=247 cterm=NONE term=bold,reverse
hi StatusLineNC guifg=#1c1c1c guibg=#767676 guisp=NONE gui=NONE ctermfg=234 ctermbg=243 cterm=NONE term=bold,underline
@@ -130,6 +131,8 @@ hi TabLine guifg=#1c1c1c guibg=#767676 guisp=NONE gui=NONE ctermfg=234 ctermbg=2
hi TabLineFill guifg=#1c1c1c guibg=#767676 guisp=NONE gui=NONE ctermfg=234 ctermbg=243 cterm=NONE term=NONE
hi TabLineSel guifg=#1c1c1c guibg=#9e9e9e guisp=NONE gui=bold ctermfg=234 ctermbg=247 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#dadada guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#767676 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#dadada guibg=NONE guisp=NONE gui=bold ctermfg=253 ctermbg=NONE cterm=bold term=bold,reverse
hi ToolbarButton guifg=#767676 guibg=#1c1c1c guisp=NONE gui=bold,reverse ctermfg=243 ctermbg=234 cterm=bold,reverse term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -146,8 +149,14 @@ hi lCursor guifg=#1c1c1c guibg=#5fff00 guisp=NONE gui=NONE ctermfg=234 ctermbg=8
if s:tgc || s:t_Co >= 256
if s:tgc
hi Error cterm=NONE
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi SpellBad guifg=#d75f5f guibg=NONE ctermfg=167 ctermbg=NONE cterm=underline
hi SpellCap guifg=#ffaf5f guibg=NONE ctermfg=215 ctermbg=NONE cterm=underline
hi SpellLocal guifg=#5fd75f guibg=NONE ctermfg=77 ctermbg=NONE cterm=underline
hi SpellRare guifg=#d787d7 guibg=NONE ctermfg=176 ctermbg=NONE cterm=underline
hi Visual cterm=NONE
endif
finish
@@ -197,16 +206,16 @@ if s:t_Co >= 16
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkblue cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi Search ctermfg=green ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline ctermul=darkred
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline ctermul=darkyellow
hi SpellLocal ctermfg=darkgreen ctermbg=NONE cterm=underline ctermul=darkgreen
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline ctermul=magenta
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkgreen ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi Statement ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=black ctermbg=gray cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=darkgray cterm=NONE
@@ -215,6 +224,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=black ctermbg=darkgray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=black cterm=NONE
hi Todo ctermfg=white ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=darkgray ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -275,7 +286,7 @@ if s:t_Co >= 8
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=darkblue cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -293,6 +304,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=gray ctermbg=gray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=black cterm=NONE
hi Todo ctermfg=white ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=gray ctermbg=black cterm=reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Shian Lee.
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -86,6 +86,8 @@ hi TabLine guifg=#dadada guibg=#444444 guisp=NONE gui=NONE ctermfg=253 ctermbg=2
hi TabLineFill guifg=NONE guibg=#6c6c6c guisp=NONE gui=NONE ctermfg=NONE ctermbg=242 cterm=NONE term=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 guisp=NONE gui=bold ctermfg=231 ctermbg=16 cterm=bold term=bold,reverse
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=bold ctermfg=201 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#dadada guibg=#4c4c4c guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#6c6c6c guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=242 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#005fff guibg=#ffff00 guisp=NONE gui=NONE ctermfg=27 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
hi Type guifg=#00ff00 guibg=NONE guisp=NONE gui=bold ctermfg=46 ctermbg=NONE cterm=bold term=NONE
@@ -157,6 +159,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi ToolbarLine ctermfg=white ctermbg=darkgrey cterm=NONE
hi Type ctermfg=green ctermbg=NONE cterm=bold
@@ -226,6 +230,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE

View File

@@ -3,9 +3,9 @@
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" URL: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -107,6 +107,8 @@ hi TabLine guifg=#0000ff guibg=#ffffff guisp=NONE gui=bold ctermfg=21 ctermbg=23
hi TabLineFill guifg=#0000ff guibg=#ffffff guisp=NONE gui=bold ctermfg=21 ctermbg=231 cterm=bold term=NONE
hi TabLineSel guifg=#ffffff guibg=#0000ff guisp=NONE gui=bold ctermfg=231 ctermbg=21 cterm=bold term=bold,reverse
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=bold ctermfg=201 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#ffffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#e5e5e5 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=254 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#0000ff guibg=#ffff00 guisp=NONE gui=NONE ctermfg=21 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 ctermbg=254 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -174,6 +176,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=darkblue ctermbg=white cterm=bold
hi TabLineSel ctermfg=white ctermbg=darkblue cterm=bold
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -239,6 +243,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=darkblue ctermbg=grey cterm=bold
hi TabLineSel ctermfg=grey ctermbg=darkblue cterm=bold
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -2,9 +2,9 @@
" Description: White(perchè il sole)/Black(la luna perchè?) background colorscheme.
" Author: Maxim Kim <habamax@gmail.com>
" URL: https://www.github.com/vim/colorschemes
" Last Change: 2025 Aug 15
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
hi clear
let g:colors_name = 'lunaperche'
@@ -22,6 +22,7 @@ hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link Number Constant
hi! link PopupNotification Todo
hi! link PreInsert NonText
hi! link StatusLineTerm Statusline
hi! link StatusLineTermNC StatuslineNC
hi! link TabPanel Normal
@@ -132,6 +133,7 @@ if &background == 'dark'
hi MoreMsg guifg=#5fd75f guibg=NONE guisp=NONE gui=NONE ctermfg=77 ctermbg=NONE cterm=NONE term=NONE
hi NonText guifg=#585858 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
hi PmenuBorder guifg=#767676 guibg=#303030 guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi PmenuExtra guifg=#767676 guibg=#303030 guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#767676 guibg=#4e4e4e guisp=NONE gui=NONE ctermfg=243 ctermbg=239 cterm=NONE term=NONE
hi PmenuKind guifg=#ff5f5f guibg=#303030 guisp=NONE gui=NONE ctermfg=203 ctermbg=236 cterm=NONE term=NONE
@@ -143,7 +145,7 @@ if &background == 'dark'
hi PmenuThumb guifg=NONE guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=NONE ctermbg=251 cterm=NONE term=NONE
hi PreProc guifg=#5fd7d7 guibg=NONE guisp=NONE gui=NONE ctermfg=116 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#ff87ff guibg=NONE guisp=NONE gui=NONE ctermfg=213 ctermbg=NONE cterm=NONE term=standout
hi QuickFixLine guifg=#000000 guibg=#5fafff guisp=NONE gui=NONE ctermfg=16 ctermbg=75 cterm=NONE term=NONE
hi QuickFixLine guifg=NONE guibg=#4f2f4f guisp=NONE gui=NONE ctermfg=251 ctermbg=53 cterm=NONE term=NONE
hi Removed guifg=#ff5f5f guibg=NONE guisp=NONE gui=NONE ctermfg=203 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#3a4a3a guisp=NONE gui=NONE ctermfg=16 ctermbg=222 cterm=NONE term=reverse
hi SignColumn guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -161,6 +163,8 @@ if &background == 'dark'
hi TabLineFill guifg=#000000 guibg=#767676 guisp=NONE gui=NONE ctermfg=16 ctermbg=243 cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#c6c6c6 guisp=NONE gui=bold ctermfg=16 ctermbg=251 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#ffffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#767676 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#ffffff guisp=NONE gui=NONE ctermfg=16 ctermbg=231 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -186,6 +190,7 @@ if &background == 'dark'
if s:tgc || s:t_Co >= 256
if s:tgc
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi Visual cterm=NONE
endif
@@ -222,6 +227,7 @@ if &background == 'dark'
hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuBorder ctermfg=NONE ctermbg=grey cterm=NONE
hi PmenuExtra ctermfg=black ctermbg=grey cterm=NONE
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
@@ -233,7 +239,7 @@ if &background == 'dark'
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
hi PreProc ctermfg=cyan ctermbg=NONE cterm=NONE
hi Question ctermfg=magenta ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi Removed ctermfg=red ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -251,6 +257,8 @@ if &background == 'dark'
hi TabLineFill ctermfg=black ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=grey cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=black ctermbg=white cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -285,7 +293,7 @@ if &background == 'dark'
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorLineNr ctermfg=black ctermbg=NONE cterm=bold
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkyellow cterm=NONE
hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE
@@ -305,6 +313,7 @@ if &background == 'dark'
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuBorder ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
@@ -316,7 +325,7 @@ if &background == 'dark'
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=grey ctermbg=darkblue cterm=bold
hi QuickFixLine ctermfg=black ctermbg=darkmagenta cterm=NONE
hi Removed ctermfg=red ctermbg=NONE cterm=NONE
hi Search ctermfg=NONE ctermbg=NONE cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -334,6 +343,8 @@ if &background == 'dark'
hi TabLineFill ctermfg=grey ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -407,6 +418,7 @@ if &background == 'light'
hi MoreMsg guifg=#008700 guibg=NONE guisp=NONE gui=bold ctermfg=28 ctermbg=NONE cterm=bold term=NONE
hi NonText guifg=#9e9e9e guibg=NONE guisp=NONE gui=NONE ctermfg=247 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=NONE guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=reverse
hi PmenuBorder guifg=#767676 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=243 ctermbg=254 cterm=NONE term=NONE
hi PmenuExtra guifg=#767676 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=243 ctermbg=254 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#767676 guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=243 ctermbg=251 cterm=NONE term=NONE
hi PmenuKind guifg=#af0000 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=124 ctermbg=254 cterm=NONE term=NONE
@@ -418,7 +430,7 @@ if &background == 'light'
hi PmenuThumb guifg=NONE guibg=#767676 guisp=NONE gui=NONE ctermfg=NONE ctermbg=243 cterm=NONE term=NONE
hi PreProc guifg=#005f5f guibg=NONE guisp=NONE gui=NONE ctermfg=23 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#af00af guibg=NONE guisp=NONE gui=bold ctermfg=127 ctermbg=NONE cterm=bold term=standout
hi QuickFixLine guifg=#ffffff guibg=#0087d7 guisp=NONE gui=NONE ctermfg=231 ctermbg=32 cterm=NONE term=NONE
hi QuickFixLine guifg=NONE guibg=#e7cfe7 guisp=NONE gui=NONE ctermfg=16 ctermbg=182 cterm=NONE term=NONE
hi Removed guifg=#d70000 guibg=NONE guisp=NONE gui=NONE ctermfg=160 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#e7f3e7 guisp=NONE gui=NONE ctermfg=16 ctermbg=222 cterm=NONE term=reverse
hi SignColumn guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -436,6 +448,8 @@ if &background == 'light'
hi TabLineFill guifg=#bcbcbc guibg=#bcbcbc guisp=NONE gui=NONE ctermfg=250 ctermbg=250 cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#ffffff guisp=NONE gui=bold,reverse ctermfg=16 ctermbg=231 cterm=bold,reverse term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#767676 guibg=#f5f5f5 guisp=NONE gui=NONE ctermfg=243 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#000000 guisp=NONE gui=NONE ctermfg=231 ctermbg=16 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -464,6 +478,7 @@ if &background == 'light'
if s:tgc || s:t_Co >= 256
if s:tgc
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi Visual cterm=NONE
endif
@@ -500,6 +515,7 @@ if &background == 'light'
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuBorder ctermfg=NONE ctermbg=grey cterm=NONE
hi PmenuExtra ctermfg=black ctermbg=grey cterm=NONE
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
@@ -511,7 +527,7 @@ if &background == 'light'
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=white ctermbg=blue cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi Removed ctermfg=red ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -529,6 +545,8 @@ if &background == 'light'
hi TabLineFill ctermfg=lightgrey ctermbg=lightgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=white cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=white ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -586,6 +604,7 @@ if &background == 'light'
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=black ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuBorder ctermfg=darkgrey ctermbg=grey cterm=NONE
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
@@ -597,7 +616,7 @@ if &background == 'light'
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=grey ctermbg=darkblue cterm=bold
hi QuickFixLine ctermfg=grey ctermbg=darkmagenta cterm=bold
hi Removed ctermfg=red ctermbg=NONE cterm=NONE
hi Search ctermfg=black ctermbg=darkyellow cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -615,6 +634,8 @@ if &background == 'light'
hi TabLineFill ctermfg=black ctermbg=black cterm=NONE
hi TabLineSel ctermfg=black ctermbg=grey cterm=bold,reverse
hi Title ctermfg=black ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=light
@@ -85,6 +85,8 @@ hi TabLine guifg=#000000 guibg=#bcbcbc guisp=NONE gui=underline ctermfg=16 cterm
hi TabLineFill guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=NONE
hi TabLineSel guifg=#000000 guibg=#e4e4e4 guisp=NONE gui=bold ctermfg=16 ctermbg=254 cterm=bold term=bold,reverse
hi Title guifg=#a52a2a guibg=NONE guisp=NONE gui=bold ctermfg=124 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#000000 guibg=#cccccc guisp=NONE gui=NONE ctermfg=16 ctermbg=250 cterm=NONE term=NONE
hi TitleBarNC guifg=#5f5f5f guibg=#bcbcbc guisp=NONE gui=NONE ctermfg=59 ctermbg=252 cterm=NONE term=NONE
hi Todo guifg=#000000 guibg=#ffff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=NONE guibg=#bcbcbc guisp=NONE gui=bold ctermfg=NONE ctermbg=250 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -153,6 +155,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=grey cterm=bold
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=white cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -219,6 +223,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=gray cterm=NONE
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -86,6 +86,8 @@ hi TabLine guifg=#87ff87 guibg=#444444 guisp=NONE gui=NONE ctermfg=120 ctermbg=2
hi TabLineFill guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 guisp=NONE gui=NONE ctermfg=231 ctermbg=16 cterm=NONE term=bold,reverse
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=bold ctermfg=201 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#87ff87 guibg=#4c4c4c guisp=NONE gui=NONE ctermfg=120 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#bcbcbc guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=250 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#0000ff guibg=#ffff00 guisp=NONE gui=NONE ctermfg=21 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#444444 guisp=NONE gui=bold ctermfg=231 ctermbg=238 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
@@ -154,6 +156,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=green ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
@@ -220,6 +224,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=green ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE

View File

@@ -3,9 +3,9 @@
" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -85,6 +85,8 @@ hi TabLine guifg=#ffffff guibg=#7f7f7f guisp=NONE gui=NONE ctermfg=231 ctermbg=1
hi TabLineFill guifg=NONE guibg=#000000 guisp=NONE gui=reverse ctermfg=NONE ctermbg=16 cterm=reverse term=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 guisp=NONE gui=bold ctermfg=231 ctermbg=16 cterm=bold term=bold,reverse
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=bold ctermfg=225 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#ffffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#e5e5e5 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=254 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#000000 guibg=#c0c000 guisp=NONE gui=NONE ctermfg=16 ctermbg=142 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 ctermbg=254 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
@@ -154,6 +156,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
@@ -223,6 +227,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=light
@@ -85,6 +85,8 @@ hi TabLine guifg=#ffdab9 guibg=#737373 guisp=NONE gui=underline ctermfg=223 cter
hi TabLineFill guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=NONE
hi TabLineSel guifg=#000000 guibg=#ffdab9 guisp=NONE gui=bold ctermfg=16 ctermbg=223 cterm=bold term=bold,reverse
hi Title guifg=#cd00cd guibg=NONE guisp=NONE gui=bold ctermfg=164 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#000000 guibg=#dfba99 guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#5f5f5f guibg=#efcaa9 guisp=NONE gui=NONE ctermfg=59 ctermbg=254 cterm=NONE term=NONE
hi Todo guifg=#6a5acd guibg=#ffff00 guisp=NONE gui=NONE ctermfg=62 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#ffdab9 guibg=#737373 guisp=NONE gui=bold ctermfg=223 ctermbg=243 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -155,6 +157,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=white cterm=bold
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=white cterm=NONE
hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -223,6 +227,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgray ctermbg=white cterm=NONE
hi Todo ctermfg=darkblue ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Maxence Weynans <neutaaaaan@gmail.com>
" URL: https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)`
" Last Change: 2025 Jun 18
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
hi clear
let g:colors_name = 'quiet'
@@ -110,6 +110,8 @@ if &background == 'dark'
hi TabLineFill guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#dadada guisp=NONE gui=bold ctermfg=16 ctermbg=253 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#dadada guibg=#4c4c4c guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#707070 guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=242 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#00ffaf guibg=NONE guisp=NONE gui=bold,reverse ctermfg=49 ctermbg=NONE cterm=bold,reverse term=bold,reverse
hi ToolbarButton guifg=#dadada guibg=#000000 guisp=NONE gui=bold ctermfg=253 ctermbg=16 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
@@ -183,6 +185,8 @@ if &background == 'dark'
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
@@ -254,6 +258,8 @@ if &background == 'dark'
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
@@ -342,6 +348,8 @@ if &background == 'light'
hi TabLineFill guifg=#000000 guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=16 ctermbg=188 cterm=NONE term=NONE
hi TabLineSel guifg=#eeeeee guibg=#000000 guisp=NONE gui=bold ctermfg=255 ctermbg=16 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#626262 guibg=#e7e7e7 guisp=NONE gui=NONE ctermfg=241 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=#00ffaf guibg=#000000 guisp=NONE gui=bold,reverse ctermfg=49 ctermbg=16 cterm=bold,reverse term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#d7d7d7 guisp=NONE gui=bold ctermfg=16 ctermbg=188 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=NONE ctermbg=188 cterm=NONE term=reverse
@@ -415,6 +423,8 @@ if &background == 'light'
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
@@ -486,6 +496,8 @@ if &background == 'light'
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse

View File

@@ -2,9 +2,9 @@
" Description: Retro groove color scheme similar to gruvbox originally designed by morhetz <morhetz@gmail.com>
" Author: Maxim Kim <habamax@gmail.com>, ported from gruvbox8 of Lifepillar <lifepillar@lifepillar.me>
" URL: https://www.github.com/vim/colorschemes
" Last Change: 2025 Aug 15
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
hi clear
let g:colors_name = 'retrobox'
@@ -20,6 +20,7 @@ hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
hi! link PreInsert LineNr
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link Tag Special
@@ -73,6 +74,7 @@ if &background == 'dark'
hi Number guifg=#d3869b guibg=NONE guisp=NONE gui=NONE ctermfg=175 ctermbg=NONE cterm=NONE term=NONE
hi Operator guifg=#8ec07c guibg=NONE guisp=NONE gui=NONE ctermfg=107 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=NONE guibg=#3c3836 guisp=NONE gui=NONE ctermfg=NONE ctermbg=237 cterm=NONE term=reverse
hi PmenuBorder guifg=#a89984 guibg=#3c3836 guisp=NONE gui=NONE ctermfg=102 ctermbg=237 cterm=NONE term=NONE
hi PmenuExtra guifg=#a89984 guibg=#3c3836 guisp=NONE gui=NONE ctermfg=102 ctermbg=237 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#a89984 guibg=#504945 guisp=NONE gui=NONE ctermfg=102 ctermbg=239 cterm=NONE term=NONE
hi PmenuKind guifg=#fb5944 guibg=#3c3836 guisp=NONE gui=NONE ctermfg=203 ctermbg=237 cterm=NONE term=NONE
@@ -85,7 +87,7 @@ if &background == 'dark'
hi PreCondit guifg=#8ec07c guibg=NONE guisp=NONE gui=NONE ctermfg=107 ctermbg=NONE cterm=NONE term=NONE
hi PreProc guifg=#8ec07c guibg=NONE guisp=NONE gui=NONE ctermfg=107 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#fe8019 guibg=NONE guisp=NONE gui=bold ctermfg=208 ctermbg=NONE cterm=bold term=standout
hi QuickFixLine guifg=#8ec07c guibg=#1c1c1c guisp=NONE gui=reverse ctermfg=107 ctermbg=234 cterm=reverse term=NONE
hi QuickFixLine guifg=NONE guibg=#4f2f4f guisp=NONE gui=NONE ctermfg=230 ctermbg=53 cterm=NONE term=NONE
hi Repeat guifg=#fb5944 guibg=NONE guisp=NONE gui=NONE ctermfg=203 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#3a4a3a guisp=NONE gui=NONE ctermfg=100 ctermbg=234 cterm=reverse term=reverse
hi SignColumn guifg=#928374 guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=102 ctermbg=234 cterm=NONE term=reverse
@@ -107,6 +109,8 @@ if &background == 'dark'
hi TabLineFill guifg=#ebdbb2 guibg=#3c3836 guisp=NONE gui=NONE ctermfg=187 ctermbg=237 cterm=NONE term=NONE
hi TabLineSel guifg=#fbf1c7 guibg=#1c1c1c guisp=NONE gui=bold ctermfg=230 ctermbg=234 cterm=bold term=bold,reverse
hi Title guifg=#b8bb26 guibg=NONE guisp=NONE gui=bold ctermfg=142 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#ebdbb2 guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=187 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#a89984 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=102 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=fg guibg=#1c1c1c guisp=NONE gui=bold ctermfg=fg ctermbg=234 cterm=bold term=bold,reverse
hi ToolbarButton guifg=#fbf1c7 guibg=#303030 guisp=NONE gui=bold ctermfg=230 ctermbg=236 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -121,6 +125,7 @@ if &background == 'dark'
if s:tgc || s:t_Co >= 256
if s:tgc
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi Visual cterm=NONE
endif
@@ -171,6 +176,7 @@ if &background == 'dark'
hi Number ctermfg=Magenta ctermbg=NONE cterm=NONE
hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=Black ctermbg=White cterm=NONE
hi PmenuBorder ctermfg=Black ctermbg=White cterm=NONE
hi PmenuExtra ctermfg=DarkGray ctermbg=White cterm=NONE
hi PmenuExtraSel ctermfg=DarkGray ctermbg=Black cterm=NONE
hi PmenuKind ctermfg=DarkRed ctermbg=White cterm=NONE
@@ -183,7 +189,7 @@ if &background == 'dark'
hi PreCondit ctermfg=Cyan ctermbg=NONE cterm=NONE
hi PreProc ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Question ctermfg=Magenta ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=Cyan ctermbg=Black cterm=reverse
hi QuickFixLine ctermfg=Black ctermbg=magenta cterm=NONE
hi Repeat ctermfg=Red ctermbg=NONE cterm=NONE
hi Search ctermfg=DarkGreen ctermbg=Black cterm=reverse
hi SignColumn ctermfg=DarkGray ctermbg=NONE cterm=NONE
@@ -205,6 +211,8 @@ if &background == 'dark'
hi TabLineFill ctermfg=Black ctermbg=DarkGray cterm=NONE
hi TabLineSel ctermfg=White ctermbg=Black cterm=bold
hi Title ctermfg=Green ctermbg=NONE cterm=bold
hi TitleBar ctermfg=White ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=fg ctermbg=Black cterm=bold
hi ToolbarButton ctermfg=White ctermbg=DarkGray cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -262,6 +270,7 @@ if &background == 'dark'
hi Number ctermfg=Magenta ctermbg=NONE cterm=NONE
hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuBorder ctermfg=gray ctermbg=DarkGray cterm=NONE
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
@@ -274,7 +283,7 @@ if &background == 'dark'
hi PreCondit ctermfg=Cyan ctermbg=NONE cterm=NONE
hi PreProc ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Question ctermfg=Magenta ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=Cyan ctermbg=Black cterm=reverse
hi QuickFixLine ctermfg=White ctermbg=magenta cterm=NONE
hi Repeat ctermfg=Red ctermbg=NONE cterm=NONE
hi Search ctermfg=DarkGreen ctermbg=Black cterm=reverse
hi SignColumn ctermfg=gray ctermbg=NONE cterm=NONE
@@ -296,6 +305,8 @@ if &background == 'dark'
hi TabLineFill ctermfg=Black ctermbg=gray cterm=NONE
hi TabLineSel ctermfg=gray ctermbg=Black cterm=NONE
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=White ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=fg ctermbg=Black cterm=bold
hi ToolbarButton ctermfg=Black ctermbg=gray cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -370,6 +381,7 @@ if &background == 'light'
hi Number guifg=#8f3f71 guibg=NONE guisp=NONE gui=NONE ctermfg=126 ctermbg=NONE cterm=NONE term=NONE
hi Operator guifg=#427b58 guibg=NONE guisp=NONE gui=NONE ctermfg=29 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=NONE guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=237 ctermbg=187 cterm=NONE term=reverse
hi PmenuBorder guifg=#7c6f64 guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=237 ctermbg=187 cterm=NONE term=NONE
hi PmenuExtra guifg=#7c6f64 guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=243 ctermbg=187 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#3c3836 guibg=#bdae93 guisp=NONE gui=NONE ctermfg=237 ctermbg=144 cterm=NONE term=NONE
hi PmenuKind guifg=#9d0006 guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=124 ctermbg=187 cterm=NONE term=NONE
@@ -382,7 +394,7 @@ if &background == 'light'
hi PreCondit guifg=#427b58 guibg=NONE guisp=NONE gui=NONE ctermfg=29 ctermbg=NONE cterm=NONE term=NONE
hi PreProc guifg=#427b58 guibg=NONE guisp=NONE gui=NONE ctermfg=29 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#ff5f00 guibg=NONE guisp=NONE gui=bold ctermfg=202 ctermbg=NONE cterm=bold term=standout
hi QuickFixLine guifg=#427b58 guibg=#fbf1c7 guisp=NONE gui=reverse ctermfg=29 ctermbg=230 cterm=reverse term=NONE
hi QuickFixLine guifg=NONE guibg=#e7cfd7 guisp=NONE gui=NONE ctermfg=235 ctermbg=182 cterm=NONE term=NONE
hi Repeat guifg=#9d0006 guibg=NONE guisp=NONE gui=NONE ctermfg=124 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#dbebb2 guisp=NONE gui=NONE ctermfg=100 ctermbg=230 cterm=reverse term=reverse
hi SignColumn guifg=#3c3836 guibg=#fbf1c7 guisp=NONE gui=NONE ctermfg=237 ctermbg=230 cterm=NONE term=reverse
@@ -404,6 +416,8 @@ if &background == 'light'
hi TabLineFill guifg=#3c3836 guibg=#ebdbb2 guisp=NONE gui=NONE ctermfg=237 ctermbg=187 cterm=NONE term=NONE
hi TabLineSel guifg=#282828 guibg=#fbf1c7 guisp=NONE gui=bold ctermfg=235 ctermbg=230 cterm=bold term=bold,reverse
hi Title guifg=#79740e guibg=NONE guisp=NONE gui=bold ctermfg=64 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#3c3836 guibg=#dbcba2 guisp=NONE gui=NONE ctermfg=237 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#7c6f64 guibg=#e9d9b0 guisp=NONE gui=NONE ctermfg=243 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=fg guibg=#fbf1c7 guisp=NONE gui=bold ctermfg=fg ctermbg=230 cterm=bold term=bold,reverse
hi ToolbarButton guifg=#282828 guibg=#bdae93 guisp=NONE gui=bold ctermfg=235 ctermbg=144 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -418,6 +432,7 @@ if &background == 'light'
if s:tgc || s:t_Co >= 256
if s:tgc
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi Visual cterm=NONE
endif
@@ -468,6 +483,7 @@ if &background == 'light'
hi Number ctermfg=Magenta ctermbg=NONE cterm=NONE
hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=Black ctermbg=Grey cterm=NONE
hi PmenuBorder ctermfg=Black ctermbg=Grey cterm=NONE
hi PmenuExtra ctermfg=DarkGray ctermbg=Grey cterm=NONE
hi PmenuExtraSel ctermfg=DarkGray ctermbg=NONE cterm=NONE
hi PmenuKind ctermfg=DarkRed ctermbg=Grey cterm=NONE
@@ -480,7 +496,7 @@ if &background == 'light'
hi PreCondit ctermfg=Cyan ctermbg=NONE cterm=NONE
hi PreProc ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Question ctermfg=Magenta ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=Cyan ctermbg=White cterm=reverse
hi QuickFixLine ctermfg=DarkGray ctermbg=magenta cterm=NONE
hi Repeat ctermfg=Red ctermbg=NONE cterm=NONE
hi Search ctermfg=DarkGreen ctermbg=White cterm=reverse
hi SignColumn ctermfg=Grey ctermbg=NONE cterm=NONE
@@ -502,6 +518,8 @@ if &background == 'light'
hi TabLineFill ctermfg=White ctermbg=Grey cterm=NONE
hi TabLineSel ctermfg=DarkGray ctermbg=White cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=Black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=Black ctermbg=white cterm=NONE
hi Todo ctermfg=fg ctermbg=White cterm=bold
hi ToolbarButton ctermfg=Black ctermbg=Grey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -559,6 +577,7 @@ if &background == 'light'
hi Number ctermfg=Magenta ctermbg=NONE cterm=NONE
hi Operator ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuBorder ctermfg=Black ctermbg=Grey cterm=NONE
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
@@ -571,7 +590,7 @@ if &background == 'light'
hi PreCondit ctermfg=Cyan ctermbg=NONE cterm=NONE
hi PreProc ctermfg=Cyan ctermbg=NONE cterm=NONE
hi Question ctermfg=Magenta ctermbg=NONE cterm=bold
hi QuickFixLine ctermfg=Cyan ctermbg=White cterm=reverse
hi QuickFixLine ctermfg=DarkGray ctermbg=magenta cterm=NONE
hi Repeat ctermfg=Red ctermbg=NONE cterm=NONE
hi Search ctermfg=DarkGreen ctermbg=White cterm=reverse
hi SignColumn ctermfg=Black ctermbg=NONE cterm=NONE
@@ -593,6 +612,8 @@ if &background == 'light'
hi TabLineFill ctermfg=White ctermbg=Black cterm=NONE
hi TabLineSel ctermfg=Black ctermbg=White cterm=NONE
hi Title ctermfg=Green ctermbg=NONE cterm=bold
hi TitleBar ctermfg=Black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=Black ctermbg=white cterm=NONE
hi Todo ctermfg=fg ctermbg=White cterm=bold
hi ToolbarButton ctermfg=White ctermbg=Black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -3,9 +3,9 @@
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" URL: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -108,6 +108,8 @@ hi TabLineFill guifg=#a9a9a9 guibg=#7f7f7f guisp=NONE gui=NONE ctermfg=145 cterm
hi TabLineSel guifg=#00ffff guibg=#000000 guisp=NONE gui=bold ctermfg=51 ctermbg=16 cterm=NONE term=bold,reverse
hi Terminal guifg=#00ffff guibg=#000000 guisp=NONE gui=NONE ctermfg=51 ctermbg=16 cterm=NONE term=NONE
hi Title guifg=#a9a9a9 guibg=NONE guisp=NONE gui=NONE ctermfg=145 ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#00ffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=51 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#7f7f7f guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=102 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#000000 guibg=#ffa500 guisp=NONE gui=NONE ctermfg=16 ctermbg=214 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 ctermbg=254 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -179,6 +181,8 @@ if s:t_Co >= 16
hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
hi Title ctermfg=grey ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=cyan ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -248,6 +252,8 @@ if s:t_Co >= 8
hi TabLineSel ctermfg=darkcyan ctermbg=black cterm=bold
hi Terminal ctermfg=darkcyan ctermbg=black cterm=NONE
hi Title ctermfg=grey ctermbg=NONE cterm=bold
hi TitleBar ctermfg=cyan ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=bold
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=light
@@ -89,6 +89,8 @@ hi TabLine guifg=#000000 guibg=#dadada guisp=NONE gui=underline ctermfg=16 cterm
hi TabLineFill guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=NONE
hi TabLineSel guifg=#000000 guibg=#ffffff guisp=NONE gui=bold ctermfg=16 ctermbg=231 cterm=bold term=bold,reverse
hi Title guifg=#006400 guibg=NONE guisp=NONE gui=bold ctermfg=22 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#767676 guibg=#f5f5f5 guisp=NONE gui=NONE ctermfg=243 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=#000000 guibg=#ffff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=NONE guibg=#a8a8a8 guisp=NONE gui=bold ctermfg=NONE ctermbg=248 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -161,6 +163,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=black ctermbg=white cterm=bold
hi Title ctermfg=darkgreen ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=darkgrey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -231,6 +235,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
hi TabLineSel ctermfg=grey ctermbg=black cterm=reverse
hi Title ctermfg=darkgreen ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Ralph Amissah <ralph@amissah.com>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -86,6 +86,8 @@ hi TabLine guifg=#666666 guibg=#333333 guisp=NONE gui=NONE ctermfg=241 ctermbg=2
hi TabLineFill guifg=#ff8787 guibg=#333333 guisp=NONE gui=NONE ctermfg=210 ctermbg=236 cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#afaf87 guisp=NONE gui=NONE ctermfg=16 ctermbg=144 cterm=NONE term=bold,reverse
hi Title guifg=#ffd700 guibg=NONE guisp=NONE gui=bold ctermfg=220 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#ffffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#666666 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=241 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#ff0000 guibg=#ffff00 guisp=NONE gui=NONE ctermfg=196 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=#262626 guibg=#d7d787 guisp=NONE gui=NONE ctermfg=235 ctermbg=186 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -164,6 +166,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=cyan ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi Title ctermfg=darkyellow ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -235,6 +239,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=grey ctermbg=black cterm=reverse
hi TabLineSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi Title ctermfg=darkyellow ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=grey ctermbg=black cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Maxence Weynans <neutaaaaan@gmail.com>
" URL: https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)`
" Last Change: 2025 Jun 18
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -110,6 +110,8 @@ hi TabLine guifg=#8787af guibg=#000000 guisp=NONE gui=reverse ctermfg=103 ctermb
hi TabLineFill guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#d7d7ff guisp=NONE gui=bold ctermfg=16 ctermbg=189 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#dadada guibg=#363851 guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#707070 guibg=#262841 guisp=NONE gui=NONE ctermfg=242 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#5fd7af guibg=NONE guisp=NONE gui=bold,reverse ctermfg=79 ctermbg=NONE cterm=bold,reverse term=bold,reverse
hi ToolbarButton guifg=#dadada guibg=#000000 guisp=NONE gui=bold ctermfg=253 ctermbg=16 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
@@ -187,6 +189,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=darkgreen ctermbg=black cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
@@ -262,6 +266,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=darkgreen ctermbg=black cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Thorsten Maerz <info@netztorte.de>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -86,6 +86,8 @@ hi TabLine guifg=#ffffff guibg=#7f7f7f guisp=NONE gui=NONE ctermfg=231 ctermbg=1
hi TabLineFill guifg=NONE guibg=#000000 guisp=NONE gui=reverse ctermfg=NONE ctermbg=16 cterm=reverse term=NONE
hi TabLineSel guifg=#cccccc guibg=#000000 guisp=NONE gui=bold ctermfg=251 ctermbg=16 cterm=bold term=bold,reverse
hi Title guifg=#ff00ff guibg=NONE guisp=NONE gui=bold ctermfg=201 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#cccccc guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=251 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#7f7f7f guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=102 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#ffff00 guibg=#000000 guisp=NONE gui=reverse ctermfg=226 ctermbg=16 cterm=reverse term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 ctermbg=254 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
@@ -155,6 +157,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=yellow ctermbg=black cterm=reverse
hi ToolbarButton ctermfg=black ctermbg=grey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
@@ -222,6 +226,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=darkyellow ctermbg=black cterm=reverse
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -2,9 +2,9 @@
" Description: Color scheme similar to Monokai originally created by Wimer Hazenberg for TextMate
" Author: k-37 <60838818+k-37@users.noreply.github.com>
" URL: https://github.com/vim/colorschemes
" Last Change: 2025 Jun 18
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -101,6 +101,8 @@ hi TabLine guifg=#282923 guibg=#74705d guisp=NONE gui=NONE ctermfg=235 ctermbg=2
hi TabLineFill guifg=#282923 guibg=#74705d guisp=NONE gui=NONE ctermfg=235 ctermbg=244 cterm=NONE term=NONE
hi TabLineSel guifg=#282923 guibg=#bababa guisp=NONE gui=bold ctermfg=235 ctermbg=250 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#dadada guibg=#484943 guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#bababa guibg=#383933 guisp=NONE gui=NONE ctermfg=250 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#dadada guibg=NONE guisp=NONE gui=bold ctermfg=253 ctermbg=NONE cterm=bold term=bold,reverse
hi ToolbarButton guifg=#74705d guibg=#f8f8f2 guisp=NONE gui=bold,reverse ctermfg=244 ctermbg=255 cterm=bold,reverse term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -197,6 +199,8 @@ if s:t_Co >= 16
hi TabLineFill ctermfg=black ctermbg=darkgray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=white ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=darkgray ctermbg=white cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -286,6 +290,8 @@ if s:t_Co >= 8
hi TabLineFill ctermfg=gray ctermbg=gray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=gray ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=gray ctermbg=black cterm=reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -3,9 +3,9 @@
" Author: Maxim Kim <habamax@gmail.com>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 15
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
hi clear
let g:colors_name = 'wildcharm'
@@ -23,6 +23,7 @@ hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link Number Constant
hi! link PopupNotification Todo
hi! link PreInsert NonText
hi! link StatusLineTerm Statusline
hi! link StatusLineTermNC StatuslineNC
hi! link TabPanel Normal
@@ -61,6 +62,7 @@ if &background == 'dark'
hi MoreMsg guifg=#00d75f guibg=NONE guisp=NONE gui=NONE ctermfg=41 ctermbg=NONE cterm=NONE term=NONE
hi NonText guifg=#585858 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
hi PmenuBorder guifg=#767676 guibg=#303030 guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi PmenuExtra guifg=#767676 guibg=#303030 guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#767676 guibg=#585858 guisp=NONE gui=NONE ctermfg=243 ctermbg=240 cterm=NONE term=NONE
hi PmenuKind guifg=#ff5f87 guibg=#303030 guisp=NONE gui=NONE ctermfg=204 ctermbg=236 cterm=NONE term=NONE
@@ -72,7 +74,7 @@ if &background == 'dark'
hi PmenuThumb guifg=NONE guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=NONE ctermbg=252 cterm=NONE term=NONE
hi PreProc guifg=#00d7d7 guibg=NONE guisp=NONE gui=NONE ctermfg=44 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#ff87ff guibg=NONE guisp=NONE gui=NONE ctermfg=213 ctermbg=NONE cterm=NONE term=standout
hi QuickFixLine guifg=#000000 guibg=#ff87ff guisp=NONE gui=NONE ctermfg=16 ctermbg=213 cterm=NONE term=NONE
hi QuickFixLine guifg=NONE guibg=#4f2f4f guisp=NONE gui=NONE ctermfg=252 ctermbg=53 cterm=NONE term=NONE
hi Removed guifg=#d7005f guibg=NONE guisp=NONE gui=NONE ctermfg=161 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#3a4a3a guisp=NONE gui=NONE ctermfg=41 ctermbg=16 cterm=reverse term=reverse
hi SignColumn guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -90,7 +92,9 @@ if &background == 'dark'
hi TabLineFill guifg=#000000 guibg=#767676 guisp=NONE gui=NONE ctermfg=16 ctermbg=243 cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#9e9e9e guisp=NONE gui=bold ctermfg=16 ctermbg=247 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=NONE
hi Todo guifg=#875fff guibg=#000000 guisp=NONE gui=reverse ctermfg=99 ctermbg=16 cterm=reverse term=bold,reverse
hi TitleBar guifg=#ffffff guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#767676 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#ffffff guibg=NONE guisp=NONE gui=bold ctermfg=231 ctermbg=NONE cterm=bold term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=16 ctermbg=252 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=#ffaf00 guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE term=NONE
@@ -111,6 +115,7 @@ if &background == 'dark'
if s:tgc || s:t_Co >= 256
if s:tgc
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi Visual cterm=NONE
endif
@@ -147,6 +152,7 @@ if &background == 'dark'
hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuBorder ctermfg=NONE ctermbg=grey cterm=NONE
hi PmenuExtra ctermfg=darkgrey ctermbg=grey cterm=NONE
hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
@@ -176,7 +182,9 @@ if &background == 'dark'
hi TabLineFill ctermfg=black ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=grey cterm=bold
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Todo ctermfg=darkred ctermbg=black cterm=reverse
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Type ctermfg=yellow ctermbg=NONE cterm=NONE
@@ -221,6 +229,7 @@ if &background == 'dark'
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=black ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuBorder ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
@@ -250,7 +259,9 @@ if &background == 'dark'
hi TabLineFill ctermfg=grey ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Todo ctermfg=darkred ctermbg=black cterm=reverse
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
@@ -302,7 +313,7 @@ if &background == 'light'
hi DiffText guifg=NONE guibg=#bfe7e7 guisp=NONE gui=NONE ctermfg=16 ctermbg=152 cterm=NONE term=reverse
hi Directory guifg=#005faf guibg=NONE guisp=NONE gui=bold ctermfg=25 ctermbg=NONE cterm=bold term=NONE
hi EndOfBuffer guifg=#a8a8a8 guibg=NONE guisp=NONE gui=NONE ctermfg=248 ctermbg=NONE cterm=NONE term=NONE
hi Error guifg=#d70000 guibg=#ffffff guisp=NONE gui=reverse ctermfg=160 ctermbg=231 cterm=reverse term=bold,reverse
hi Error guifg=#af0000 guibg=#ffffff guisp=NONE gui=reverse ctermfg=124 ctermbg=231 cterm=reverse term=bold,reverse
hi ErrorMsg guifg=#d70000 guibg=#ffffff guisp=NONE gui=reverse ctermfg=160 ctermbg=231 cterm=reverse term=bold,reverse
hi FoldColumn guifg=#a8a8a8 guibg=NONE guisp=NONE gui=NONE ctermfg=248 ctermbg=NONE cterm=NONE term=NONE
hi Folded guifg=#808080 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=240 ctermbg=254 cterm=NONE term=NONE
@@ -315,6 +326,7 @@ if &background == 'light'
hi MoreMsg guifg=#008700 guibg=NONE guisp=NONE gui=NONE ctermfg=28 ctermbg=NONE cterm=NONE term=NONE
hi NonText guifg=#a8a8a8 guibg=NONE guisp=NONE gui=NONE ctermfg=248 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=NONE guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=reverse
hi PmenuBorder guifg=#808080 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=240 ctermbg=254 cterm=NONE term=NONE
hi PmenuExtra guifg=#808080 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=240 ctermbg=254 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#808080 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=240 ctermbg=252 cterm=NONE term=NONE
hi PmenuKind guifg=#d70000 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=160 ctermbg=254 cterm=NONE term=NONE
@@ -326,7 +338,7 @@ if &background == 'light'
hi PmenuThumb guifg=NONE guibg=#808080 guisp=NONE gui=NONE ctermfg=NONE ctermbg=240 cterm=NONE term=NONE
hi PreProc guifg=#008787 guibg=NONE guisp=NONE gui=NONE ctermfg=30 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#870087 guibg=NONE guisp=NONE gui=NONE ctermfg=90 ctermbg=NONE cterm=NONE term=standout
hi QuickFixLine guifg=#ffffff guibg=#870087 guisp=NONE gui=NONE ctermfg=231 ctermbg=90 cterm=NONE term=NONE
hi QuickFixLine guifg=NONE guibg=#e7cfe7 guisp=NONE gui=NONE ctermfg=16 ctermbg=182 cterm=NONE term=NONE
hi Removed guifg=#d70000 guibg=NONE guisp=NONE gui=NONE ctermfg=160 ctermbg=NONE cterm=NONE term=NONE
hi Search guifg=NONE guibg=#e7f3e7 guisp=NONE gui=NONE ctermfg=28 ctermbg=231 cterm=reverse term=reverse
hi SignColumn guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -344,7 +356,9 @@ if &background == 'light'
hi TabLineFill guifg=#d0d0d0 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=252 ctermbg=252 cterm=NONE term=NONE
hi TabLineSel guifg=#5f5f5f guibg=#ffffff guisp=NONE gui=bold,reverse ctermfg=59 ctermbg=231 cterm=bold,reverse term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=NONE
hi Todo guifg=#5f00d7 guibg=#ffffff guisp=NONE gui=reverse ctermfg=56 ctermbg=231 cterm=reverse term=bold,reverse
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#808080 guibg=#f5f5f5 guisp=NONE gui=NONE ctermfg=240 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#5f5f5f guisp=NONE gui=NONE ctermfg=231 ctermbg=59 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=#af5f00 guibg=NONE guisp=NONE gui=NONE ctermfg=130 ctermbg=NONE cterm=NONE term=NONE
@@ -365,6 +379,7 @@ if &background == 'light'
if s:tgc || s:t_Co >= 256
if s:tgc
hi IncSearch cterm=NONE
hi QuickFixLine cterm=NONE
hi Search cterm=NONE
hi Visual cterm=NONE
endif
@@ -388,7 +403,7 @@ if &background == 'light'
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Error ctermfg=red ctermbg=white cterm=reverse
hi Error ctermfg=darkred ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Folded ctermfg=black ctermbg=NONE cterm=bold
@@ -401,6 +416,7 @@ if &background == 'light'
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuBorder ctermfg=black ctermbg=grey cterm=NONE
hi PmenuExtra ctermfg=darkgrey ctermbg=grey cterm=NONE
hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
@@ -412,7 +428,7 @@ if &background == 'light'
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=white ctermbg=darkmagenta cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi Search ctermfg=darkgreen ctermbg=white cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -430,7 +446,9 @@ if &background == 'light'
hi TabLineFill ctermfg=lightgrey ctermbg=lightgrey cterm=NONE
hi TabLineSel ctermfg=darkgrey ctermbg=white cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Todo ctermfg=blue ctermbg=white cterm=reverse
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
@@ -475,6 +493,7 @@ if &background == 'light'
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi NonText ctermfg=black ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuBorder ctermfg=darkgrey ctermbg=grey cterm=NONE
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
@@ -504,7 +523,9 @@ if &background == 'light'
hi TabLineFill ctermfg=black ctermbg=black cterm=NONE
hi TabLineSel ctermfg=black ctermbg=grey cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Todo ctermfg=blue ctermbg=black cterm=reverse
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE

View File

@@ -3,9 +3,9 @@
" Author: Romain Lafourcade <romainlafourcade@gmail.com>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Jun 18
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=dark
@@ -108,6 +108,8 @@ hi Statement guifg=#ffafff guibg=NONE guisp=NONE gui=NONE ctermfg=219 ctermbg=NO
hi StatusLine guifg=#0e0024 guibg=#ffffff guisp=NONE gui=NONE ctermfg=16 ctermbg=231 cterm=NONE term=bold,reverse
hi StatusLineNC guifg=#0e0024 guibg=#afaab6 guisp=NONE gui=NONE ctermfg=16 ctermbg=146 cterm=NONE term=bold,underline
hi Title guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#ffffff guibg=#2e2044 guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#afaab6 guibg=#1e1034 guisp=NONE gui=NONE ctermfg=146 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=bold,reverse
hi ToolbarButton guifg=#ffffff guibg=#5e556d guisp=NONE gui=NONE ctermfg=231 ctermbg=60 cterm=NONE term=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
@@ -178,6 +180,8 @@ if s:t_Co >= 16
hi StatusLine ctermfg=white ctermbg=black cterm=reverse
hi StatusLineNC ctermfg=darkgray ctermbg=gray cterm=reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=white ctermbg=darkgray cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -246,6 +250,8 @@ if s:t_Co >= 8
hi StatusLine ctermfg=white ctermbg=black cterm=reverse
hi StatusLineNC ctermfg=darkgray ctermbg=gray cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=white ctermbg=darkgray cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -4,9 +4,9 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>
" URL: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2025 Aug 03
" Last Change: 2025 Oct 08
" Generated by Colortemplate v3.0.0-beta9
" Generated by Colortemplate v3.0.0-beta10
set background=light
@@ -86,6 +86,8 @@ hi TabLineFill guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg
hi TabLineSel guifg=#000000 guibg=#ffffff guisp=NONE gui=bold ctermfg=16 ctermbg=231 cterm=bold term=bold,reverse
hi Tag guifg=#006400 guibg=NONE guisp=NONE gui=NONE ctermfg=22 ctermbg=NONE cterm=NONE term=NONE
hi Title guifg=#a020f0 guibg=NONE guisp=NONE gui=bold ctermfg=129 ctermbg=NONE cterm=bold term=NONE
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#878787 guibg=#f5f5f5 guisp=NONE gui=NONE ctermfg=102 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=#000000 guibg=#ffff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=226 cterm=NONE term=bold,reverse
hi ToolbarButton guifg=NONE guibg=#a9a9a9 guisp=NONE gui=bold ctermfg=NONE ctermbg=248 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#d3d3d3 guisp=NONE gui=NONE ctermfg=NONE ctermbg=252 cterm=NONE term=reverse
@@ -157,6 +159,8 @@ if s:t_Co >= 16
hi TabLineSel ctermfg=black ctermbg=white cterm=bold
hi Tag ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi ToolbarButton ctermfg=NONE ctermbg=grey cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
@@ -226,6 +230,8 @@ if s:t_Co >= 8
hi TabLineSel ctermfg=gray ctermbg=black cterm=bold,reverse
hi Tag ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=gray ctermbg=white cterm=NONE
hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE

View File

@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jul 13
" Last Change: 2025 Sep 10
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
"
" This is loaded if no vimrc file was found.
@@ -33,8 +33,6 @@ silent! while 0
set nocompatible
silent! endwhile
set ruler " show the cursor position all the time
set ttimeout " time out for key codes
set ttimeoutlen=100 " wait up to 100ms after Esc for special key

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 9.1. Last change: 2025 Sep 02
*autocmd.txt* For Vim version 9.1. Last change: 2025 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1321,8 +1321,10 @@ TermResponseAll After the response to |t_RV|, |t_RC|, |t_RS|,
correspondingly, can be used. <amatch> will
be set to any of:
"ambiguouswidth" (|t_u7|),
"background" (|t_RB|),
"cursorblink" (|t_RC|),
"cursorshape" (|t_RS|),
"foreground" (|t_RF|),
"da1",
"osc",
"version" (|t_RV|)
@@ -1330,15 +1332,6 @@ TermResponseAll After the response to |t_RV|, |t_RC|, |t_RS|,
executing another event, especially if file I/O,
a shell command or anything else that takes time
is involved.
Note: Traditionally, TermResponseAll was also
used for "foreground" and "background"
patterns. These are now handled as part of
the "osc" value. For backwards compatibility,
the $VIMRUNTIME/plugin/colorresp.vim plugin
will handle "osc" events and emit
TermResponseAll autocommand events when it
encounters "foreground" and "background"
values.
*TextChanged*
TextChanged After a change was made to the text in the
current buffer in Normal mode. That is after
@@ -1637,7 +1630,8 @@ The pattern is interpreted like mostly used in file names:
Note that for all systems the '/' character is used for path separator (even
for MS-Windows). This was done because the backslash is difficult to use in a
pattern and to make the autocommands portable across different systems.
pattern and to make the autocommands portable across different systems. To
only match a '/' on all platforms (e.g. in a non-file pattern), use "\/".
It is possible to use |pattern| items, but they may not work as expected,
because of the translation done for the above.

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.1. Last change: 2025 Sep 08
*builtin.txt* For Vim version 9.1. Last change: 2025 Oct 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -369,7 +369,7 @@ lispindent({lnum}) Number Lisp indent for line {lnum}
list2blob({list}) Blob turn {list} of numbers into a Blob
list2str({list} [, {utf8}]) String turn {list} of numbers into a String
list2tuple({list}) Tuple turn {list} of items into a tuple
listener_add({callback} [, {buf}])
listener_add({callback} [, {buf} [, {unbuffered}]])
Number add a callback to listen to changes
listener_flush([{buf}]) none invoke listener callbacks
listener_remove({id}) none remove a listener callback
@@ -451,8 +451,9 @@ 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}
popup_show({id}) none unhide popup window {id}
popup_show({id}) Number unhide popup window {id}
pow({x}, {y}) Float {x} to the power of {y}
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
@@ -575,7 +576,7 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val})
settagstack({nr}, {dict} [, {action}])
Number modify tag stack using {dict}
setwinvar({nr}, {varname}, {val}) none set {varname} in window {nr} to {val}
sha256({string}) String SHA256 checksum of {string}
sha256({expr}) String SHA256 checksum of String or Blob
shellescape({string} [, {special}])
String escape {string} for use as shell
command argument
@@ -1915,10 +1916,11 @@ col({expr} [, {winid}]) *col()*
complete({startcol}, {matches}) *complete()* *E785*
Set the matches for Insert mode completion.
Can only be used in Insert mode. You need to use a mapping
with CTRL-R = (see |i_CTRL-R|). It does not work after CTRL-O
or with an expression mapping.
Set the matches for Insert mode completion. Can only be
used in Insert mode. Typically invoked from a mapping with
CTRL-R = (see |i_CTRL-R|), but may also be called from a
|<Cmd>| or |<ScriptCmd>| mapping. It does not work after
CTRL-O or with an expression mapping.
{startcol} is the byte offset in the line where the completed
text start. The text up to the cursor is the original text
that will be replaced by the matches. Use col('.') for an
@@ -1932,15 +1934,31 @@ complete({startcol}, {matches}) *complete()* *E785*
The match can be selected with CTRL-N and CTRL-P as usual with
Insert mode completion. The popup menu will appear if
specified, see |ins-completion-menu|.
Example: >
inoremap <F5> <C-R>=ListMonths()<CR>
func ListMonths()
call complete(col('.'), ['January', 'February', 'March',
\ 'April', 'May', 'June', 'July', 'August', 'September',
\ 'October', 'November', 'December'])
return ''
endfunc
Example (using legacy Vim script): >
inoremap <F5> <C-R>=ListMonths()<CR>
func ListMonths()
call complete(col('.'), ['January', 'February', 'March',
\ 'April', 'May', 'June', 'July', 'August',
\ 'September', 'October', 'November', 'December'])
return ''
endfunc
<
Example (using Vim9 script): >
vim9script
def ListMonths(): string
const months = [ 'January', 'February', 'March', 'April',
'May', 'June', 'July', 'September', 'October',
'November', 'December']
complete(col('.'), months)
return ''
enddef
inoremap <F5> <ScriptCmd>ListMonths()<CR>
< This isn't very useful, but it shows how it works. Note that
an empty string is returned to avoid a zero being inserted.
@@ -2993,6 +3011,9 @@ expand({string} [, {nosuf} [, {list}]]) *expand()*
:r root (one extension removed)
:e extension only
More modifiers are supported, for the full list see
|filename-modifiers|.
Example: >
:let &tags = expand("%:p:h") .. "/tags"
< Note that when expanding a string that starts with '%', '#' or
@@ -5325,14 +5346,17 @@ gettext({text} [, {package}]) *gettext()*
getwininfo([{winid}]) *getwininfo()*
Returns information about windows as a |List| with Dictionaries.
Returns information about windows as a |List| with
Dictionaries.
If {winid} is given Information about the window with that ID
is returned, as a |List| with one item. If the window does not
exist the result is an empty list.
If {winid} is given, information about the window with that ID
is returned, as a |List| with one item. When that window is a
|popup| window, information about that popup window is
returned. If the window does not exist the result is an empty
list.
Without {winid} information about all the windows in all the
tab pages is returned.
tab pages (excluding |popup|s) is returned.
Each List item is a |Dictionary| with the following entries:
botline last complete displayed buffer line
@@ -6702,7 +6726,7 @@ list2tuple({list}) *list2tuple()*
Return type: tuple<{type}> (depending on the given |List|)
listener_add({callback} [, {buf}]) *listener_add()*
listener_add({callback} [, {buf} [, {unbuffered}]]) *listener_add()*
Add a callback function that will be invoked when changes have
been made to buffer {buf}.
{buf} refers to a buffer name or number. For the accepted
@@ -6710,6 +6734,11 @@ listener_add({callback} [, {buf}]) *listener_add()*
buffer is used.
Returns a unique ID that can be passed to |listener_remove()|.
If the {buf} already has registered callbacks then the
equivalent of >
listener_flush({buf})
< is performed before the new callback is added.
The {callback} is invoked with five arguments:
bufnr the buffer that was changed
start first changed line number
@@ -6752,20 +6781,37 @@ listener_add({callback} [, {buf}]) *listener_add()*
added 0
col first column with a change or 1
The entries are in the order the changes were made, thus the
most recent change is at the end. The line numbers are valid
when the callback is invoked, but later changes may make them
invalid, thus keeping a copy for later might not work.
When {unbuffered} is |FALSE| or not provided the {callback} is
invoked:
The {callback} is invoked just before the screen is updated,
when |listener_flush()| is called or when a change is being
made that changes the line count in a way it causes a line
number in the list of changes to become invalid.
1. Just before the screen is updated.
2. When |listener_flush()| is called.
3. When a change is being made that changes the line count in
a way that causes a line number in the list of changes to
become invalid.
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
{unbuffered} |TRUE|.
When {unbuffered} is |TRUE| the {callback} is invoked for every
single change. The changes list only holds a single dictionary
and the "start", "end" and "added" values in the dictionary are
the same as the corresponding callback arguments. The line
numbers are valid when the callback is invoked, but later
changes may make them invalid, thus keeping a copy for later
might not work.
The {callback} is invoked with the text locked, see
|textlock|. If you do need to make changes to the buffer, use
a timer to do this later |timer_start()|.
You may not call listener_add() during the {callback}. *E1569*
The {callback} is not invoked when the buffer is first loaded.
Use the |BufReadPost| autocmd event to handle the initial text
of a buffer.
@@ -7995,6 +8041,15 @@ pow({x}, {y}) *pow()*
Return type: |Number|
preinserted() *preinserted()*
Returns non-zero if text has been inserted after the cursor
because "preinsert" is present in 'completeopt', or because
"longest" is present in 'completeopt' while 'autocomplete'
is active. Otherwise returns zero.
Return type: |Number|
prevnonblank({lnum}) *prevnonblank()*
Return the line number of the first line at or above {lnum}
that is not blank. Example: >
@@ -10323,12 +10378,14 @@ setwinvar({winnr}, {varname}, {val}) *setwinvar()*
Return type: |Number|
sha256({string}) *sha256()*
sha256({expr}) *sha256()*
Returns a String with 64 hex characters, which is the SHA256
checksum of {string}.
checksum of {expr}.
{expr} is a String or a Blob.
Can also be used as a |method|: >
GetText()->sha256()
GetBlob()->sha256()
<
Return type: |String|
@@ -12315,9 +12372,9 @@ values({dict}) *values()*
virtcol({expr} [, {list} [, {winid}]]) *virtcol()*
The result is a Number, which is the screen column of the file
position given with {expr}. That is, the last screen position
occupied by the character at that position, when the screen
would be of unlimited width. When there is a <Tab> at the
position given with {expr}. That is, the total number of
screen cells occupied by the part of the line until the end of
the character at that position. When there is a <Tab> at the
position, the returned Number will be the column at the end of
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
set to 8, it returns 8. |conceal| is ignored.
@@ -12646,7 +12703,7 @@ winbufnr({nr}) The result is a Number, which is the number of the buffer
window is returned.
When window {nr} doesn't exist, -1 is returned.
Example: >
:echo "The file in the current window is " . bufname(winbufnr(0))
:echo "The file in the current window is " .. bufname(winbufnr(0))
<
Can also be used as a |method|: >
FindWindow()->winbufnr()->bufname()
@@ -13179,7 +13236,9 @@ vreplace Compiled with |gR| and |gr| commands. (always true)
vtp Compiled for vcon support |+vtp| (check vcon to find
out if it works in the current console).
wayland Compiled with Wayland protocol support.
wayland_clipboard Compiled with support for Wayland selections/clipboard
wayland_clipboard Compiled with support for Wayland clipboard.
wayland_focus_steal Compiled with support for Wayland clipboard focus
stealing.
wildignore Compiled with 'wildignore' option.
wildmenu Compiled with 'wildmenu' option.
win16 old version for MS-Windows 3.1 (always false)

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 9.1. Last change: 2025 Sep 08
*cmdline.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -745,16 +745,17 @@ Some Ex commands accept a line range in front of them. This is noted as
The basics are explained in section |10.3| of the user manual.
In |Vim9| script a range needs to be prefixed with a colon to avoid ambiguity
In |Vim9| script, a range needs to be prefixed with a colon to avoid ambiguity
with continuation lines. For example, "+" can be used for a range but is also
a continuation of an expression: >
var result = start
+ print
If the "+" is a range then it must be prefixed with a colon: >
var result = start
<If the "+" is a range, as it is here, in Vim9 script it must be prefixed
with a colon (otherwise you will get error |E1050|): >
vim9script
:+ print
<
*:,* *:;*
*:,* *:;*
When separated with ';' the cursor position will be set to that line
before interpreting the next line specifier. This doesn't happen for ','.
Examples: >
@@ -764,36 +765,86 @@ Examples: >
< from line 5 till match with "that line" after line 5.
The default line specifier for most commands is the cursor position, but the
commands ":write" and ":global" have the whole file (1,$) as default.
If more line specifiers are given than required for the command, the first
one(s) will be ignored.
commands ":write" and ":global" have the whole buffer (1,$) as default.
If more line specifiers are given than required for the command, when comma
separated, the leftmost one(s) will be ignored, e.g., the -2,+ in this: >
:-2,+,-2,. print
<When semicolon separated, the leftmost specifier to the penultimate one are
summed, e.g., -4 + 3 - 1 = -2, in this: >
:-4;+3;-1;+2 print
<
Line numbers may be specified with: *:range* *{address}*
{number} an absolute line number *E1247*
. the current line *:.*
$ the last line in the file *:$*
% equal to 1,$ (the entire file) *:%*
't position of mark t (lowercase) *:'*
'T position of mark T (uppercase); when the mark is in
another file it cannot be used in a range
/{pattern}[/] the next line where {pattern} matches *:/*
. the current line *:.*
$ the last line of the buffer *:$*
% equal to 1,$ (the entire buffer) *:%*
* equal to '<,'> (the lines of the last
selected Visual area; see |:star| below)
'x the line of the position of mark x *:'x*
(where x is any {a-z} mark)
'X the line of the position of mark X *:'X*
(where X is any {A-Z0-9} mark, though
when X is in another buffer it cannot
be used in a range)
'[ the first line of the most recent *:'[*
change or yank
'] the last line of the most recent *:']*
change or yank
'< the first line of the most recently *:'<*
selected Visual area
'> the last line of the most recently *:'>*
selected Visual area
'' the line of the position before the *:''*
latest jump, or where the last "m'"/"m`"
command was given (though '' is 1 if it
isn't in the current buffer)
'" the line of the cursor position when *:'quote*
last exiting the buffer
'^ the line of the cursor position the *:'^*
last time Insert mode was stopped
'. the line of the cursor position when the *:'.*
buffer was last changed
'( the line of the first character of the *:'(*
current sentence
') the line of the first character after *:')*
the end of the current sentence
'{ the first empty line before the *:'{*
paragraph containing the cursor
'} the first empty line after the *:'}*
paragraph containing the cursor
/{pattern}[/] the next line where {pattern} matches *:/*
also see |:range-pattern| below
?{pattern}[?] the previous line where {pattern} matches *:?*
?{pattern}[?] the previous line where {pattern} matches *:?*
also see |:range-pattern| below
\/ the next line where the previously used search
pattern matches
\? the previous line where the previously used search
pattern matches
\& the next line where the previously used substitute
pattern matches
\/ the next line where the most recent
search pattern matches
\? the previous line where the most recent
search pattern matches
\& the next line where the most recent
substitute pattern matches
Note: "next line" and "previous line" do not include matches appearing
in the current line.
*:range-offset*
Each may be followed (several times) by '+' or '-' and an optional number.
This number is added or subtracted from the preceding line number. If the
number is omitted, 1 is used. If there is nothing before the '+' or '-' then
the current line is used.
*:range-closed-fold*
Each line specifier may be followed by one or more '+' or '-' and an optional
number. That value is added or subtracted from the preceding line number.
So, for example, 'x+2 is two lines after the line containing mark x. If the
number is omitted, +1 is used for each '+' and -1 for each '-' so, e.g., 'x++
and 'x+2 are synonymous. If there is nothing before the '+' or '-', for the
first line number in [range] the current line is used as the relative
starting point. So, -,. means, "the line before the current line to the
current line". The value of the second line number in [range] depends on
whether a comma or semicolon separates the line numbers (see |:,| and |:;|).
Examples: If the cursor is within the line below this one, any of these
commands will print the tag line ":range-offset" and the line, "Each...": >
:-11;+1 print
:-----------,-10 print
:?Each line?-;+ print
:'{+,'{+2 print
:'{+1;')-1 print
< *:range-closed-fold*
When a line number after the comma is in a closed fold it is adjusted to the
last line of the fold, thus the whole fold is included.
@@ -1110,7 +1161,7 @@ These modifiers can be given, in this order:
:S Escape special characters for use with a shell command (see
|shellescape()|). Must be the last one. Examples: >
:!dir <cfile>:S
:call system('chmod +w -- ' . expand('%:S'))
:call system('chmod +w -- ' .. expand('%:S'))
Examples, when the file name is "src/version.c", current dir
"/home/mool/vim": >
@@ -1350,7 +1401,7 @@ automatically showing a popup menu of suggestions as you type, whether
searching (/ or ?) or entering commands (:).
A basic setup is: >
autocmd CmdlineChanged [:/\?] call wildtrigger()
autocmd CmdlineChanged [:\/\?] call wildtrigger()
set wildmode=noselect:lastused,full
set wildoptions=pum
@@ -1363,8 +1414,8 @@ To retain normal command-line history navigation with <Up>/<Down>: >
Options can also be applied only for specific command-lines. For
example, to use a shorter popup menu height only during search: >
autocmd CmdlineEnter [/\?] set pumheight=8
autocmd CmdlineLeave [/\?] set pumheight&
autocmd CmdlineEnter [\/\?] set pumheight=8
autocmd CmdlineLeave [\/\?] set pumheight&
EXTRAS *fuzzy-file-picker* *live-grep*
@@ -1374,12 +1425,14 @@ file picker: >
set findfunc=Find
func Find(arg, _)
if get(s:, 'filescache', []) == []
let s:filescache = systemlist(
\ 'find . -path "*/.git" -prune -o -type f -print')
if empty(s:filescache)
let s:filescache = globpath('.', '**', 1, 1)
call filter(s:filescache, '!isdirectory(v:val)')
call map(s:filescache, "fnamemodify(v:val, ':.')")
endif
return a:arg == '' ? s:filescache : matchfuzzy(s:filescache, a:arg)
endfunc
let s:filescache = []
autocmd CmdlineEnter : let s:filescache = []
The `:Grep` command searches for lines matching a pattern and updates the
@@ -1390,8 +1443,8 @@ the `CmdlineLeavePre` autocmd from the next section): >
\ Grep call <SID>VisitFile()
func s:Grep(arglead, cmdline, cursorpos)
let cmd = $'grep -REIHns "{a:arglead}" --exclude-dir=.git
\ --exclude=".*"'
if match(&grepprg, '\$\*') == -1 | let &grepprg ..= ' $*' | endif
let cmd = substitute(&grepprg, '\$\*', shellescape(escape(a:arglead, '\')), '')
return len(a:arglead) > 1 ? systemlist(cmd) : []
endfunc

View File

@@ -1,4 +1,4 @@
*develop.txt* For Vim version 9.1. Last change: 2025 Sep 07
*develop.txt* For Vim version 9.1. Last change: 2025 Oct 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -365,31 +365,17 @@ We follow POSIX.1-2001 (SUSv3) for type sizes, which in practice means:
FUNCTION PROTOTYPES *assumptions-prototypes*
Vim currently does not use conventional header files (`.h`) for most internal
function prototypes. Instead, the current architecture uses individual `.pro`
files in the `src/proto/` directory, with one `.pro` file per `.c` file.
Vim does not use conventional header files (`.h`) for most internal function
prototypes. Instead, the current architecture uses individual `.pro` files in
the `src/proto/` directory, with one `.pro` file per `.c` file.
Unlike traditional self-contained header files, these `.pro` files do not
contain API documentation, struct and enum definitions, or other declaration;
contain API documentation, struct and enum definitions, or other declarations;
only function prototypes.
The bundling of these files is not automated. The `src/proto.h` header is
composed of a list of manual `#include` directives, one for each individual
`.pro` file.
Due to this design, integrating a new source file within this architecture
involves creating a corresponding `.pro` file, manually adding a new `#include`
directive to `proto.h` and manually adding this file to both `src/Makefile` and
`src/Make_mvc.mak`.
A `make proto` target exists in `src/Makefile` with the original goal of
automating the process of updating the `.pro` files. However, this target is
unreliable, fails on major platforms (e.g., macOS), and is only part of the
new release workflow. In practice, contributors edit the relevant `.pro` files
by hand when adding, removing, or modifying a function signatures.
This system has been in place since at least v1.24, when Vims functions were
still written in K&R style.
The `make proto` target in `src/Makefile` automates updating most of the .pro
files using the Python script proto/gen_prototypes.py, which relies on the
python3-clang module. Note that a few proto files are hand edited.
==============================================================================
4. Coding style *coding-style*
@@ -424,6 +410,14 @@ The basic steps to make changes to the code:
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.
*style-clang-format*
sound.c and sign.c can be (semi-) automatically formatted using the
`clang-format` formatter according to the distributed .clang-format file.

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 9.1. Last change: 2025 Aug 06
*diff.txt* For Vim version 9.1. Last change: 2025 Sep 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -351,7 +351,7 @@ hard to see what the actual edit on it was. You can use diff anchors to pin
that function so the diff algorithm will align based on it.
To use it, set anchors using 'diffanchors' which is a comma-separated list of
{address} in each file, and then add "anchor" to 'diffopt'. Internaly, Vim
{address} in each file, and then add "anchor" to 'diffopt'. Internally, Vim
splits each file up into sections split by the anchors. It performs the diff
on each pair of sections separately before merging the results back.

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.1. Last change: 2025 Aug 29
*eval.txt* For Vim version 9.1. Last change: 2025 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2911,15 +2911,16 @@ v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
*v:termrbgresp* *termrbgresp-variable*
v:termrbgresp The escape sequence returned by the terminal for the |t_RB|
termcap entry. This is used to find out what the terminal
background color is; see 'background'. This is set by the
$VIMRUNTIME/plugin/colorresp.vim plugin normally included with
Vim, but can be set manually if you know what you are doing.
Note that changing this will not do anything.
background color is; see 'background'. When this variable is
set, the TermResponseAll autocommand event is fired, with
<amatch> set to "background".
*v:termrfgresp* *termrfgresp-variable*
v:termrfgresp The escape sequence returned by the terminal for the |t_RF|
termcap entry. This is used to find out what the terminal
foreground color is. Behaves the same as |v:termrbgresp|
foreground color is. When this variable is set, the
TermResponseAll autocommand event is fired, with <amatch> set
to "foreground".
*v:termu7resp* *termu7resp-variable*
v:termu7resp The escape sequence returned by the terminal for the |t_u7|
@@ -2938,9 +2939,7 @@ v:termda1 The escape sequence returned by a primary device attributes
v:termosc The escape sequence of the most recent OSC response received
from the terminal. When this variable is set, the
|TermResponseAll| autocommand event is fired, with <amatch>
set to "osc". Also used to set the |v:termrbgresp| and
|v:termrfgresp| via the $VIMRUNTIME/plugin/colorresp.vim
plugin
set to "osc".
*v:testing* *testing-variable*
v:testing Must be set before using `test_garbagecollect_now()`.
@@ -3154,9 +3153,12 @@ declarations and assignments do not use a command. |vim9-declaration|
set and an environment variable that is empty.
:let ${env-name} .= {expr1}
:let ${env-name} ..= {expr1}
Append {expr1} to the environment variable {env-name}.
If the environment variable didn't exist yet this
works like "=".
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let @{reg-name} = {expr1} *:let-register* *:let-@*
Write the result of the expression {expr1} in register
@@ -3173,8 +3175,11 @@ declarations and assignments do not use a command. |vim9-declaration|
that would match everywhere.
:let @{reg-name} .= {expr1}
:let @{reg-name} ..= {expr1}
Append {expr1} to register {reg-name}. If the
register was empty it's like setting it to {expr1}.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let &{option-name} = {expr1} *:let-option* *:let-&*
Set option {option-name} to the result of the
@@ -3192,8 +3197,11 @@ declarations and assignments do not use a command. |vim9-declaration|
a terminal key code, there is no error.
:let &{option-name} .= {expr1}
:let &{option-name} ..= {expr1}
For a string option: Append {expr1} to the value.
Does not insert a comma like |:set+=|.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let &{option-name} += {expr1}
:let &{option-name} -= {expr1}
@@ -3201,18 +3209,25 @@ declarations and assignments do not use a command. |vim9-declaration|
{expr1}.
:let &l:{option-name} = {expr1}
:let &l:{option-name} .= {expr1}
:let &l:{option-name} += {expr1}
:let &l:{option-name} -= {expr1}
:let &l:{option-name} .= {expr1}
:let &l:{option-name} ..= {expr1}
Like above, but only set the local value of an option
(if there is one). Works like |:setlocal|.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let &g:{option-name} = {expr1}
:let &g:{option-name} .= {expr1}
:let &g:{option-name} += {expr1}
:let &g:{option-name} -= {expr1}
:let &g:{option-name} .= {expr1}
:let &g:{option-name} ..= {expr1}
Like above, but only set the global value of an option
(if there is one). Works like |:setglobal|.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
*E1093* *E1537* *E1538* *E1535*
:let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
{expr1} must evaluate to a |List| or a |Tuple|. The
@@ -3233,15 +3248,18 @@ declarations and assignments do not use a command. |vim9-declaration|
:echo x
< The result is [0, 2].
:let [{name1}, {name2}, ...] .= {expr1}
:let [{name1}, {name2}, ...] += {expr1}
:let [{name1}, {name2}, ...] -= {expr1}
:let [{name1}, {name2}, ...] *= {expr1}
:let [{name1}, {name2}, ...] /= {expr1}
:let [{name1}, {name2}, ...] %= {expr1}
Like above, but append, add, subtract, multiply,
divide, or modulo the value for each |List| or |Tuple|
:let [{name1}, {name2}, ...] .= {expr1}
:let [{name1}, {name2}, ...] ..= {expr1}
Like above, but add, subtract, multiply, divide,
modulo, or append the value for each |List| or |Tuple|
item.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let [{name}, ..., ; {lastname}] = {expr1} *E452*
Like |:let-unpack| above, but the |List| or |Tuple|
@@ -3253,11 +3271,14 @@ declarations and assignments do not use a command. |vim9-declaration|
:let [a, b; rest] = ["aval", "bval", 3, 4]
:let [a, b; rest] = ("aval", "bval", 3, 4)
<
:let [{name}, ..., ; {lastname}] .= {expr1}
:let [{name}, ..., ; {lastname}] += {expr1}
:let [{name}, ..., ; {lastname}] -= {expr1}
Like above, but append/add/subtract the value for each
:let [{name}, ..., ; {lastname}] .= {expr1}
:let [{name}, ..., ; {lastname}] ..= {expr1}
Like above, but add/subtract/append the value for each
|List| item.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
*:let=<<* *:let-heredoc*
*E990* *E991* *E172* *E221* *E1145*
@@ -4161,7 +4182,7 @@ exception most recently caught as long it is not finished.
:function! Caught()
: if v:exception != ""
: echo 'Caught "' . v:exception .. '" in ' .. v:throwpoint
: echo 'Caught "' .. v:exception .. '" in ' .. v:throwpoint
: else
: echo 'Nothing caught'
: endif

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 9.1. Last change: 2025 Aug 10
*filetype.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -763,7 +763,7 @@ Otherwise, for the defined variable "g:ftplugin_java_source_path", the local
value of the 'path' option will be further modified by prefixing the value of
the variable, e.g.: >
let g:ftplugin_java_source_path = $JDK_SRC_PATH
let &l:path = g:ftplugin_java_source_path . ',' . &l:path
let &l:path = g:ftplugin_java_source_path .. ',' .. &l:path
<
and the "gf" command can be used on a fully-qualified type to look for a file
in the "path" and to try to load it.

View File

@@ -1,4 +1,4 @@
*fold.txt* For Vim version 9.1. Last change: 2025 Jul 15
*fold.txt* For Vim version 9.1. Last change: 2025 Oct 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -595,7 +595,8 @@ A closed fold is indicated with a '+'.
These characters can be changed with the 'fillchars' option.
Where the fold column is too narrow to display all nested folds, digits are
shown to indicate the nesting level.
shown to indicate the nesting level. To override this behavior you can use
the "foldinner" character of the 'fillchars' option.
The mouse can also be used to open and close folds by clicking in the
fold column:

View File

@@ -1,27 +1,27 @@
*ft_hare.txt* Support for the Hare programming language
==============================================================================
CONTENTS *hare* *hare.vim*
CONTENTS *hare* *hare.vim*
1. Introduction |ft-hare-intro|
2. Filetype plugin |ft-hare-plugin|
3. Haredoc filetype |ft-haredoc-plugin|
4. Indentation settings |ft-hare-indent|
5. Compiler support |compiler-hare|
1. Introduction |ft-hare-intro|
2. Filetype plugin |ft-hare-plugin|
3. Haredoc filetype |ft-haredoc-plugin|
4. Indentation settings |ft-hare-indent|
5. Compiler support |compiler-hare|
==============================================================================
INTRODUCTION *ft-hare-intro*
INTRODUCTION *ft-hare-intro*
This plugin provides syntax highlighting, indentation, and other supporting
functionality for the Hare programming language.
FILETYPE PLUGIN *ft-hare-plugin*
FILETYPE PLUGIN *ft-hare-plugin*
This plugin has a few different variables that can be defined inside your
|vimrc| to tweak its behavior.
Additionally, support is provided for folding `{ }` blocks. To enable folding,
Additionally, support is provided for folding `{ }` blocks. To enable folding,
add the following to a file inside your |after-directory| (e.g.
~/.vim/after/ftplugin/hare.vim): >
@@ -30,7 +30,7 @@ add the following to a file inside your |after-directory| (e.g.
Because block-based folding tends to create many small folds, consider setting
a few related options, such as 'foldminlines' and 'foldnestmax'.
*g:hare_recommended_style*
*g:hare_recommended_style*
The following options are set by default, in accordance with Hare's official
style guide: >
@@ -44,29 +44,29 @@ To disable this behavior, add the following to your |vimrc|: >
let g:hare_recommended_style = 0
<
*g:hare_symbol_operators*
*g:hare_symbol_operators*
By default, symbolic operators do not receive any special highlighting (with
`!`, `?`, and `::` being the only exceptions). To enable syntax highlighting
`!`, `?`, 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*
*g:hare_space_error*
By default, trailing whitespace and spaces followed by <Tab> characters will
be highlighted as errors. This is automatically disabled in Insert mode. To
be highlighted as errors. This is automatically disabled in Insert mode. To
turn off this highlighting completely, add the following to your |vimrc|: >
let g:hare_space_error = 0
HAREDOC FILETYPE *ft-haredoc-plugin*
HAREDOC FILETYPE *ft-haredoc-plugin*
This plugin will automatically detect README files inside Hare modules, using
a recursive directory search, and give them the "haredoc" filetype. Because
a recursive directory search, and give them the "haredoc" filetype. Because
this is such a common filename, this plugin only searches for Hare source
files within the same directory by default.
*g:filetype_haredoc*
*g:filetype_haredoc*
The |g:filetype_haredoc| variable can be used to tweak the depth of this
search, or bypass the detection of Hare documentation files altogether:
@@ -80,13 +80,13 @@ The search depth may be any positive integer, but values higher than `2` are
unlikely to provide a tangible benefit in most situations.
INDENTATION SETTINGS *ft-hare-indent*
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
be set per-buffer, overriding any global configuration that exists. To do
this, simply prefix the variable with |b:| instead of |g:|.
*g:hare_indent_match_switch*
*g:hare_indent_match_switch*
By default, continuation lines for "match" and "switch" conditions are
indented only one level: >hare
@@ -101,7 +101,7 @@ and "for" conditions, add the following line to your |vimrc|: >
let g:hare_indent_match_switch = 2
<
*g:hare_indent_case*
*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
@@ -111,24 +111,24 @@ case: >hare
// ...
If you prefer a different amount of indentation, you can adjust it using
|g:hare_indent_case|. Valid values include `0`, `1`, and `2`.
|g:hare_indent_case|. Valid values include `0`, `1`, and `2`.
COMPILER SUPPORT *compiler-hare*
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*
*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
'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: >
configuration that exists. For example: >
let b:hare_makeprg_params = '-lc -t o'
The global default is "-q", to suppress writing to stdout while building.
==============================================================================
vim:ft=help:noet:ts=8:tw=78:norl:
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 9.1. Last change: 2025 Aug 06
*gui_w32.txt* For Vim version 9.1. Last change: 2025 Oct 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -488,4 +488,20 @@ VIM_KEYCODE_TRANS_STRATEGY can be set to the desired value ("experimental" or
set VIM_KEYCODE_TRANS_STRATEGY=experimental
gvim.exe
<
Title Bar *gui-w32-title-bar*
Starting with Windows 11, you can customize the gVim title bar (also known as
the caption bar) by enabling the |'go-C'| option.
Once enabled, the appearance is controlled by two highlighting groups:
1. |hl-TitleBar| -- Sets the color of the title bar for the active window.
2. |hl-TitleBarNC| -- Sets the color of the title bar for inactive windows.
To use the system's default title bar colors, set highlighting groups to
`NONE`: >
hi TitleBar guibg=NONE guifg=NONE
hi TitleBarNC guibg=NONE guifg=NONE
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Sep 02
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Sep 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -723,6 +723,8 @@ output a warning:
Warning: Clipboard register not available, using register 0 ~
Note: This also applies to the Wayland clipboard feature as well.
*W24*
Vim comes in different flavors, from a tiny build, that just tries to be
compatible to original Vi, to enhanced builds which include many improvements

View File

@@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 9.1. Last change: 2025 Aug 06
*helphelp.txt* For Vim version 9.1. Last change: 2025 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -392,8 +392,8 @@ help file it's best to copy one of the existing files and use it as a
template.
Vim help files generally use 2 spaces after a sentence (since they are written
using a fixed-width font and that was the prefered style in the 70s/80s), like
what is described here: https://english.stackexchange.com/a/2602
using a fixed-width font and that was the preferred style in the 70s/80s),
like what is described here: https://english.stackexchange.com/a/2602
The first line in a help file should have the following format:
@@ -463,12 +463,14 @@ To quote a block of ex-commands verbatim, place a greater than (>) character
at the end of the line before the block and a less than (<) character as the
first non-blank on a line following the block. Any line starting in column 1
also implicitly stops the block of ex-commands before it. E.g. >
function Example_Func()
echo "Example"
endfunction
<
To enable syntax highlighting for a block of code, place a language name
annotation (e.g. "vim") after a greater than (>) character. E.g. >vim
function Example_Func()
echo "Example"
endfunction
@@ -476,7 +478,8 @@ annotation (e.g. "vim") after a greater than (>) character. E.g. >vim
*g:help_example_languages*
By default, help files only support Vim script highlighting. If you need
syntax highlighting for other languages, add to your |vimrc|: >
:let g:help_example_languages = { "vim": "vim", "sh": "bash" }
:let g:help_example_languages = #{
\ vim: "vim", vim9: "vim", bash: "sh" }
The key represents the annotation marker name, and the value is the 'syntax'
name.

View File

@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 9.1. Last change: 2025 Apr 27
*if_perl.txt* For Vim version 9.1. Last change: 2025 Oct 04
VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -33,10 +33,8 @@ features than Exuberant ctags' Perl support.
==============================================================================
2. Compiling Vim with Perl interface *perl-compiling*
To compile Vim with Perl interface, you need Perl 5.004 (or later). Perl must
be installed before you compile Vim. Vim's Perl interface does NOT work with
the 5.003 version that has been officially released! It will probably work
with Perl 5.003_05 and later.
To compile Vim with the Perl interface, you need a recent Perl version. Perl
must be installed before you compile Vim.
The Perl patches for Vim were made by:
Sven Verdoolaege <skimo@breughel.ufsia.ac.be>

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 9.1. Last change: 2025 Sep 08
*insert.txt* For Vim version 9.1. Last change: 2025 Sep 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1151,7 +1151,7 @@ autocompletion. To use |i_CTRL-N| or |i_CTRL-X_CTRL-N| specifically, press
|CTRL-E| first to dismiss the popup menu (see |complete_CTRL-E|).
*ins-autocompletion-example*
Example setup~
Example setup ~
A typical configuration for automatic completion with a popup menu: >
set autocomplete
set complete=.^5,w^5,b^5,u^5
@@ -1164,8 +1164,8 @@ This enables automatic completion with suggestions from the current buffer,
other windows, and listed buffers, displayed in a popup menu. Each source is
limited to 5 candidates. <Tab> and <S-Tab> move through the items when the
menu is visible. Optionally, add "preinsert" to 'completeopt' to insert the
longest common prefix automatically. You can also add other completion
sources to 'complete' as needed.
longest common prefix automatically. Additional sources (e.g., LSP clients)
may be added to 'complete' to improve completion as required.
See also 'autocomplete', 'autocompletedelay' and 'autocompletetimeout'.
@@ -1437,6 +1437,8 @@ In the first state these keys have a special meaning:
<BS> and CTRL-H Delete one character, find the matches for the word before
the cursor. This reduces the list of matches, often to one
entry, and switches to the second state.
When 'autocomplete' is active, clears the selected item in
the menu.
Any non-special character:
Stop completion without changing the match and insert the
typed character.
@@ -1444,6 +1446,8 @@ Any non-special character:
In the second and third state these keys have a special meaning:
<BS> and CTRL-H Delete one character, find the matches for the shorter word
before the cursor. This may find more matches.
When 'autocomplete' is active, clears the selected item in
the menu.
CTRL-L Add one character from the current match, may reduce the
number of matches.
any printable, non-white character:

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 9.1. Last change: 2025 Aug 06
*intro.txt* For Vim version 9.1. Last change: 2025 Oct 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -200,6 +200,8 @@ patches, suggestions and giving feedback about what is good and bad in Vim.
Vim would never have become what it is now, without the help of these people!
|Bram| Moolenaar Creator and benevolent dictator until his
passing (3 August 2023)
Ron Aaron Win32 GUI changes
Mohsin Ahmed encryption
Zoltan Arpadffy work on VMS port
@@ -267,7 +269,16 @@ Vim would never have become what it is now, without the help of these people!
Ken Takata fixes and features
Kazunobu Kuriyama GTK 3
Christian Brabandt many fixes, features, user support, etc.
Yegappan Lakshmanan many quickfix features
Yegappan Lakshmanan many quickfix features, Vim9 script
improvements
Doug Kearns Runtime file maintainer
Foxe Chen Wayland support, new features
glepnir completion feature
Girish Palya insert & cmdline autocompletion,
search/substitute completion, etc.
Hirohito Higashi lots of patches and fixes
Yee Cheng Chin MacVim maintainer and diff improvements
zeertzjq many fixes and improvements
I wish to thank all the people that sent me bug reports and suggestions. The
list is too long to mention them all here. Vim would not be the same without

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 9.1. Last change: 2025 Aug 10
*mbyte.txt* For Vim version 9.1. Last change: 2025 Oct 04
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -971,6 +971,36 @@ of Windows you use. For example, on my Windows 2000 box:
The default is still English (United Stated)
MS-Windows IME Compatibility *multibyte-ime-compatibility*
Vim manages input methods on Windows systems via the `imm32.dll` (Input Method
Manager). The implementation, dating back to the Windows 2000 era, may not be
fully compatible with modern input methods. Modern input method processing
has shifted to the Text Services Framework (TSF), whose behavior may not fully
align with the traditional IME interface. For details about IME and TSF,
refer to the Microsoft documentation website (link is omitted since MS
documentation URLs often change).
In some cases Vim might incorrectly enable the Input Method (IM) in Normal
mode upon startup when the Windows display language is set to a CJK language.
To work around this issue, try adding the following configuration to your
|gvimrc| file: >
autocmd VimEnter * set imdisable | set noimdisable
<
If you make any progress in diagnosing or resolving these issues, feedback is
welcome.
Note: IME behavior can vary due to differences in implementations by different
vendors. If you encounter issues with a specific input method, it is
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.
Cursor color when IME or XIM is on *CursorIM*
There is a little cute feature for IME. Cursor can indicate status of IME
by changing its color. Usually status of IME was indicated by little icon

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2025 Sep 08
*options.txt* For Vim version 9.1. Last change: 2025 Oct 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -80,7 +80,7 @@ achieve special effects. These options come in three forms:
'0o').
The old value can be inserted by typing 'wildchar' (by
default this is a <Tab> or CTRL-E if 'compatible' is
set). Many string options with fixed syntax and names
set). Many string options with fixed syntax and names
also support completing known values. See
|cmdline-completion| and |complete-set-option|.
White space between {option} and '=' is allowed and
@@ -910,7 +910,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'autocomplete'* *'ac'* *'noautocomplete'* *'noac'*
'autocomplete' 'ac' boolean (default off)
global
global or local to buffer |global-local|
{only available on platforms with timing support}
When on, Vim shows a completion menu as you type, similar to using
|i_CTRL-N|, but triggered automatically. See |ins-autocompletion|.
@@ -970,7 +970,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'autoshelldir' 'asd' boolean (default off)
global
When on, Vim will change the current working directory whenever you
change the directory of the shell running in a terminal window. You
change the directory of the shell running in a terminal window. You
need proper setting-up, so whenever the shell's pwd changes an OSC 7
escape sequence will be emitted. For example, on Linux, you can
source /etc/profile.d/vte.sh in your shell profile if you use bash or
@@ -1105,8 +1105,8 @@ A jump table for the options with a short description can be found at |Q_op|.
eol allow backspacing over line breaks (join lines)
start allow backspacing over the start of insert; CTRL-W and CTRL-U
stop once at the start of insert.
nostop like start, except CTRL-W and CTRL-U do not stop at the start of
insert.
nostop like start, except CTRL-W and CTRL-U do not stop at the start
of insert.
When the value is empty, Vi compatible backspacing is used, none of
the ways mentioned for the items above are possible.
@@ -1229,11 +1229,11 @@ A jump table for the options with a short description can be found at |Q_op|.
- A directory name may end in an '/'.
- For Unix and Win32, if a directory ends in two path separators "//",
the backup file name will be built from the complete path to the
file with all path separators changed to percent '%' signs. This
file with all path separators changed to percent '%' signs. This
will ensure file name uniqueness in the backup directory.
On Win32, it is also possible to end with "\\". However, When a
separating comma is following, you must use "//", since "\\" will
include the comma in the file name. Therefore it is recommended to
include the comma in the file name. Therefore it is recommended to
use '//', instead of '\\'.
- Environment variables are expanded |:set_env|.
- Careful with '\' characters, type one before a space, type two to
@@ -1358,7 +1358,7 @@ A jump table for the options with a short description can be found at |Q_op|.
or Sun Workshop).
If the expression starts with s: or |<SID>|, then it is replaced with
the script ID (|local-function|). Example: >
the script ID (|local-function|). Example: >
set bexpr=s:MyBalloonExpr()
set bexpr=<SID>SomeBalloonExpr()
< Otherwise, the expression is evaluated in the context of the script
@@ -1381,10 +1381,10 @@ A jump table for the options with a short description can be found at |Q_op|.
*'belloff'* *'bo'*
'belloff' 'bo' string (default "")
global
Specifies for which events the bell will not be rung. It is a comma
separated list of items. For each item that is present, the bell
will be silenced. This is most useful to specify specific events in
insert mode to be silenced.
Specifies for which events the bell will not be rung. It is a comma
separated list of items. For each item that is present, the bell will
be silenced. This is most useful to specify specific events in insert
mode to be silenced.
You can also make it flash by using 'visualbell'.
item meaning when present ~
@@ -1416,8 +1416,8 @@ A jump table for the options with a short description can be found at |Q_op|.
(depends on the 'wildmode' setting).
This is most useful to fine tune when in Insert mode the bell should
be rung. For Normal mode and Ex commands, the bell is often rung to
indicate that an error occurred. It can be silenced by adding the
be rung. For Normal mode and Ex commands, the bell is often rung to
indicate that an error occurred. It can be silenced by adding the
"error" keyword.
*'binary'* *'bin'* *'nobinary'* *'nobin'*
@@ -1507,11 +1507,11 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
{not available when compiled without the |+linebreak|
feature}
Settings for 'breakindent'. It can consist of the following optional
Settings for 'breakindent'. It can consist of the following optional
items and must be separated by a comma:
min:{n} Minimum text width that will be kept after
applying 'breakindent', even if the resulting
text should normally be narrower. This prevents
text should normally be narrower. This prevents
text indented almost to the right window border
occupying lots of vertical space when broken.
(default: 20)
@@ -1530,8 +1530,8 @@ A jump table for the options with a short description can be found at |Q_op|.
(default: 0)
list:-1 Uses the width of a match with 'formatlistpat' for
indentation.
column:{n} Indent at column {n}. Will overrule the other
sub-options. Note: an additional indent may be
column:{n} Indent at column {n}. Will overrule the other
sub-options. Note: an additional indent may be
added for the 'showbreak' setting.
(default: off)
@@ -1741,7 +1741,7 @@ A jump table for the options with a short description can be found at |Q_op|.
of this.
If the 'charconvert' expression starts with s: or |<SID>|, then it is
replaced with the script ID (|local-function|). Example: >
replaced with the script ID (|local-function|). Example: >
set charconvert=s:MyConvert()
set charconvert=<SID>SomeConvert()
< Otherwise the expression is evaluated in the context of the script
@@ -2107,7 +2107,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'preserveindent'+ off don't preserve current indent structure
when changing it
'revins' + off no reverse insert
'ruler' + off no ruler
'ruler' & off no ruler
'scrolljump' + 1 no jump scroll
'scrolloff' + 0 no scroll offset
'shelltemp' - {unchanged} {set vim default only on resetting 'cp'}
@@ -2168,19 +2168,20 @@ A jump table for the options with a short description can be found at |Q_op|.
name of a function or a |Funcref|. For |Funcref| values,
spaces must be escaped with a backslash ('\'), and commas with
double backslashes ('\\') (see |option-backslash|).
Unlike other sources, functions can provide completions starting
from a non-keyword character before the cursor, and their
start position for replacing text may differ from other sources.
If the Dict returned by the {func} includes {"refresh": "always"},
the function will be invoked again whenever the leading text
changes.
Unlike other sources, functions can provide completions
starting from a non-keyword character before the cursor, and
their start position for replacing text may differ from other
sources. If the Dict returned by the {func} includes
{"refresh": "always"}, the function will be invoked again
whenever the leading text changes.
If generating matches is potentially slow, call
|complete_check()| periodically to keep Vim responsive. This
|complete_check()| periodically to keep Vim responsive. This
is especially important for |ins-autocompletion|.
F equivalent to using "F{func}", where the function is taken from
the 'completefunc' option.
o equivalent to using "F{func}", where the function is taken from
the 'omnifunc' option.
F equivalent to using "F{func}", where the function is taken
from the 'completefunc' option.
o equivalent to "F{func}", where {func} is taken from the
'omnifunc' option. If a plugin (such as an LSP client)
defines 'omnifunc', it can be used through this flag.
Unloaded buffers are not loaded, thus their autocmds |:autocmd| are
not executed, this may lead to unexpected completions from some files
@@ -2203,8 +2204,8 @@ A jump table for the options with a short description can be found at |Q_op|.
An optional match limit can be specified for a completion source by
appending a caret ("^") followed by a {count} to the source flag.
For example: ".^9,w,u,t^5" limits matches from the current buffer
to 9 and from tags to 5. Other sources remain unlimited.
For example: ".^9,w,u,t^5" limits matches from the current buffer to 9
and from tags to 5. Other sources remain unlimited.
Note: The match limit takes effect only during forward completion
(CTRL-N) and is ignored during backward completion (CTRL-P).
@@ -2217,7 +2218,7 @@ A jump table for the options with a short description can be found at |Q_op|.
with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|
See |complete-functions| for an explanation of how the function is
invoked and what it should return. The value can be the name of a
function, a |lambda| or a |Funcref|. See |option-value-function| for
function, a |lambda| or a |Funcref|. See |option-value-function| for
more information.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -2260,7 +2261,7 @@ A jump table for the options with a short description can be found at |Q_op|.
A comma-separated list of options for Insert mode completion
|ins-completion|. The supported values are:
fuzzy Enable |fuzzy-matching| for completion candidates. This
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
@@ -2270,11 +2271,21 @@ A jump table for the options with a short description can be found at |Q_op|.
to gather more alternatives for your candidate list,
see 'completefuzzycollect'.
longest Only insert the longest common text of the matches. If
the menu is displayed you can use CTRL-L to add more
characters. Whether case is ignored depends on the kind
of completion. For buffer text the 'ignorecase' option is
used.
longest
When 'autocomplete' is not active, only the longest common
prefix of the matches is inserted. 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.
When 'autocomplete' is active and no completion item is
selected, the longest common prefix of the matches is
inserted after the cursor. The prefix is taken either
from all displayed items or only from items in the current
buffer. The inserted text is highlighted with
|hl-PreInsert|, and the cursor position does not change
(similar to `"preinsert"`). Press CTRL-Y to accept.
See also |preinserted()|.
menu Use a popup menu to show the possible completions. The
menu is only shown when there is more than one match and
@@ -2296,7 +2307,9 @@ A jump table for the options with a short description can be found at |Q_op|.
noselect Same as "noinsert", except that no menu item is
pre-selected. If both "noinsert" and "noselect" are
present, "noselect" has precedence.
present, "noselect" takes precedence. This is enabled
automatically when 'autocomplete' is on, unless
"preinsert" is also enabled.
nosort Disable sorting of completion candidates based on fuzzy
scores when "fuzzy" is enabled. Candidates will appear
@@ -2316,24 +2329,23 @@ A jump table for the options with a short description can be found at |Q_op|.
{only works when compiled with the |+textprop| feature}
preinsert
When autocompletion is not enabled, inserts the part of the
first candidate word beyond the current completion leader,
highlighted with |hl-ComplMatchIns|. The cursor does not
move. Requires 'fuzzy' unset and 'menuone' in 'completeopt'.
When 'autocomplete' is enabled, inserts the longest common
prefix of matches (from all shown items or buffer-specific
matches), highlighted with |hl-PreInsert|. This occurs only
when no menu item is selected. Press CTRL-Y to accept.
Inserts the text of the first completion candidate beyond
the current leader, highlighted with |hl-PreInsert|.
The cursor does not move.
Requires "fuzzy" to be unset, and either "menuone" in
'completeopt' or 'autocomplete' enabled. When
'autocomplete' is enabled, this does not work if
'ignorecase' is set without 'infercase'.
See also |preinserted()|.
preview Show extra information about the currently selected
completion in the preview window. Only works in
combination with "menu" or "menuone".
Only "fuzzy", "popup", "popuphidden", "preinsert" and "preview" have
an effect when 'autocomplete' is enabled.
Only "fuzzy", "longest", "popup", "popuphidden", "preinsert" and
"preview" have an effect when 'autocomplete' is enabled.
This option does not apply to |cmdline-completion|. See 'wildoptions'
This option does not apply to |cmdline-completion|. See 'wildoptions'
for that.
*'completepopup'* *'cpp'*
@@ -2354,9 +2366,9 @@ A jump table for the options with a short description can be found at |Q_op|.
{only for MS-Windows}
When this option is set it overrules 'shellslash' for completion:
- When this option is set to "slash", a forward slash is used for path
completion in insert mode. This is useful when editing HTML tag, or
completion in insert mode. This is useful when editing HTML tag, or
Makefile with 'noshellslash' on MS-Windows.
- When this option is set to "backslash", backslash is used. This is
- When this option is set to "backslash", backslash is used. This is
useful when editing a batch file with 'shellslash' set on MS-Windows.
- When this option is empty, same character is used as for
'shellslash'.
@@ -2735,7 +2747,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*cpo-;*
; When using |,| or |;| to repeat the last |t| search
and the cursor is right in front of the searched
character, the cursor won't move. When not included,
character, the cursor won't move. When not included,
the cursor would skip over it and jump to the
following occurrence.
*cpo-~*
@@ -2876,8 +2888,8 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not available when compiled without the |+cscope|
feature}
In the absence of a prefix (-P) for cscope. setting this option enables
to use the basename of cscope.out path as the prefix.
In the absence of a prefix (-P) for cscope, setting this option
enables to use the basename of cscope.out path as the prefix.
See |cscoperelative|.
NOTE: This option is reset when 'compatible' is set.
@@ -3024,7 +3036,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When this option is empty or an entry "spell" is present, and spell
checking is enabled, words in the word lists for the currently active
'spelllang' are used. See |spell|.
'spelllang' are used. See |spell|.
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
@@ -3058,7 +3070,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Each anchor line splits the buffer (the split happens above the
anchor), with each part being diff'ed separately before the final
result is joined. When more than one {address} are provided, the
anchors will be sorted interally by line number. If using buffer
anchors will be sorted internally by line number. If using buffer
local options, each buffer should have the same number of anchors
(extra anchors will be ignored). This option is only used when
'diffopt' has "anchor" set. See |diff-anchors| for more details and
@@ -3081,8 +3093,8 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'dip'* *'diffopt'*
'diffopt' 'dip' string (default
"internal,filler,closeoff,inline:simple")
'diffopt' 'dip' string (default "internal,filler,closeoff,
indent-heuristic,inline:char")
global
{not available when compiled without the |+diff|
feature}
@@ -3090,7 +3102,7 @@ A jump table for the options with a short description can be found at |Q_op|.
All are optional. Items must be separated by a comma.
algorithm:{text} Use the specified diff algorithm with the
internal diff engine. Currently supported
internal diff engine. Currently supported
algorithms are:
myers the default algorithm
minimal spend extra time to generate the
@@ -3113,7 +3125,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When omitted a context of six lines is used.
When using zero the context is actually one,
since folds require a line in between, also
for a deleted line. Set it to a very large
for a deleted line. Set it to a very large
value (999999) to disable folding completely.
See |fold-diff|.
@@ -3196,14 +3208,14 @@ A jump table for the options with a short description can be found at |Q_op|.
exactly.
linematch:{n} Align and mark changes between the most
similar lines between the buffers. When the
similar lines between the buffers. When the
total number of lines in the diff hunk exceeds
{n}, the lines will not be aligned because for
very large diff hunks there will be a
noticeable lag. A reasonable setting is
noticeable lag. A reasonable setting is
"linematch:60", as this will enable alignment
for a 2 buffer diff hunk of 30 lines each,
or a 3 buffer diff hunk of 20 lines each.
for a 2 buffer diff hunk of 30 lines each, or
a 3 buffer diff hunk of 20 lines each.
Implicitly sets "filler" when this is set.
vertical Start diff mode with vertical splits (unless
@@ -3249,11 +3261,11 @@ A jump table for the options with a short description can be found at |Q_op|.
- For Unix and Win32, if a directory ends in two path separators "//",
the swap file name will be built from the complete path to the file
with all path separators replaced by percent '%' signs (including
the colon following the drive letter on Win32). This will ensure
the colon following the drive letter on Win32). This will ensure
file name uniqueness in the preserve directory.
On Win32, it is also possible to end with "\\". However, When a
separating comma is following, you must use "//", since "\\" will
include the comma in the file name. Therefore it is recommended to
include the comma in the file name. Therefore it is recommended to
use '//', instead of '\\'.
- Spaces after the comma are ignored, other spaces are considered part
of the directory name. To have a space at the start of a directory
@@ -3453,8 +3465,8 @@ A jump table for the options with a short description can be found at |Q_op|.
makes a difference for error messages, the bell will be used always
for a lot of errors without a message (e.g., hitting <Esc> in Normal
mode). See 'visualbell' on how to make the bell behave like a beep,
screen flash or do nothing. See 'belloff' to finetune when to ring the
bell.
screen flash or do nothing. See 'belloff' to finetune when to ring
the bell.
*'errorfile'* *'ef'*
'errorfile' 'ef' string (Amiga default: "AztecC.Err",
@@ -3713,7 +3725,7 @@ A jump table for the options with a short description can be found at |Q_op|.
command to find the illegal byte sequence.
WRONG VALUES: WHAT'S WRONG:
latin1,utf-8 "latin1" will always be used
utf-8,ucs-bom,latin1 BOM won't be recognized in an utf-8
utf-8,ucs-bom,latin1 BOM won't be recognized in a utf-8
file
cp1250,latin1 "cp1250" will always be used
If 'fileencodings' is empty, 'fileencoding' is not modified.
@@ -3805,7 +3817,13 @@ A jump table for the options with a short description can be found at |Q_op|.
'fileignorecase' 'fic' boolean (default on for systems where case in file
names is normally ignored)
global
When set case is ignored when using file names and directories.
When set, case is ignored when using file and directory names.
This option is on by default on systems where the filesystem is
traditionally case-insensitive (for example MS-Windows and macOS).
However, Vim cannot determine at runtime whether a particular
filesystem is case-sensitive or case-insensitive.
See 'wildignorecase' for only ignoring case when doing completion.
*'filetype'* *'ft'*
@@ -3850,6 +3868,9 @@ A jump table for the options with a short description can be found at |Q_op|.
foldopen '-' mark the beginning of a fold
foldclose '+' show a closed fold
foldsep '|' open fold middle character
foldinner none character to show instead of the
numeric foldlevel when it would be
repeated in a narrow 'foldcolumn'
diff '-' deleted lines of the 'diff' option
eob '~' empty lines below the end of a buffer
lastline '@' 'display' contains lastline/truncate
@@ -4170,7 +4191,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the internal format mechanism.
If the expression starts with s: or |<SID>|, then it is replaced with
the script ID (|local-function|). Example: >
the script ID (|local-function|). Example: >
set formatexpr=s:MyFormatExpr()
set formatexpr=<SID>SomeFormatExpr()
< Otherwise, the expression is evaluated in the context of the script
@@ -4336,7 +4357,7 @@ 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.
Setting this option may break plugins that rely on the default
behavior of the 'g' flag. This will also make the 'g' flag have the
behavior of the 'g' flag. This will also make the 'g' flag have the
opposite effect of that documented in |:s_g|.
This option is not used in |Vim9| script.
@@ -4501,11 +4522,11 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only for GTK and Win32 GUI}
List of ASCII characters that, when combined together, can create more
complex shapes. Each character must be a printable ASCII character
complex shapes. Each character must be a printable ASCII character
with a value in the 32-127 range.
Example: >
:set guiligatures=!\"#$%&()*+-./:<=>?@[]^_{\|~
< Changing this option updates screen output immediately. Set it to an
< Changing this option updates screen output immediately. Set it to an
empty string to disable ligatures.
*'guioptions'* *'go'*
@@ -4563,15 +4584,19 @@ A jump table for the options with a short description can be found at |Q_op|.
*'go-c'*
'c' Use console dialogs instead of popup dialogs for simple
choices.
*'go-C'*
'C' Use |hl-TitleBar| and |hl-TitleBarNC| if available.
Currently only works for MS-Window GUI.
See |gui-w32-title-bar| for details.
*'go-d'*
'd' Use dark theme variant if available. Currently only works for
'd' Use dark theme variant if available. Currently only works for
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
@@ -4757,7 +4782,8 @@ A jump table for the options with a short description can be found at |Q_op|.
=:PmenuSel, k:PmenuMatch,<:PmenuMatchSel,
[:PmenuKind,]:PmenuKindSel,
{:PmenuExtra,}:PmenuExtraSel,
x:PmenuSbar,X:PmenuThumb,*:TabLine,
x:PmenuSbar,X:PmenuThumb,j:PmenuBorder,
H:PmenuShadow,*:TabLine,
#:TabLineSel,_:TabLineFill,!:CursorColumn,
.:CursorLine,o:ColorColumn,q:QuickFixLine,
z:StatusLineTerm,Z:StatusLineTermNC,
@@ -4824,7 +4850,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-PmenuThumb| X popup menu scrollbar thumb
|hl-PmenuMatch| k popup menu matched text
|hl-PmenuMatchSel| < popup menu matched text in selected line
|hl-PreInsert| I text inserted when "preinsert" and 'autocomplete'
|hl-PmenuBorder| j popup menu border characters
|hl-PmenuShadow| H popup menu shadow
|hl-PreInsert| I text inserted when "preinsert" is in 'completeopt'
The display modes are:
r reverse (termcap entry "mr" and "me")
@@ -4952,8 +4980,8 @@ A jump table for the options with a short description can be found at |Q_op|.
global
This option specifies a function that will be called to
activate or deactivate the Input Method. The value can be the name of
a function, a |lambda| or a |Funcref|. See |option-value-function| for
more information.
a function, a |lambda| or a |Funcref|. See |option-value-function|
for more information.
It is not used in the MS-Windows GUI version.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
@@ -5132,7 +5160,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Note: Not used for |<cfile>|.
If the expression starts with s: or |<SID>|, then it is replaced with
the script ID (|local-function|). Example: >
the script ID (|local-function|). Example: >
setlocal includeexpr=s:MyIncludeExpr()
setlocal includeexpr=<SID>SomeIncludeExpr()
< Otherwise, the expression is evaluated in the context of the script
@@ -5181,14 +5209,14 @@ A jump table for the options with a short description can be found at |Q_op|.
are typing the pattern.
The highlighting can be set with the 'i' flag in 'highlight'.
When 'hlsearch' is on, all matched strings are highlighted too while
typing a search command. See also: 'hlsearch'.
typing a search command. See also: 'hlsearch'.
If you don't want to turn 'hlsearch' on, but want to highlight all
matches while searching, you can turn on and off 'hlsearch' with
autocmd. Example: >
augroup vimrc-incsearch-highlight
autocmd!
autocmd CmdlineEnter /,\? :set hlsearch
autocmd CmdlineLeave /,\? :set nohlsearch
autocmd CmdlineEnter [\/\?] :set hlsearch
autocmd CmdlineLeave [\/\?] :set nohlsearch
augroup END
<
CTRL-L can be used to add one character from after the current match
@@ -5216,7 +5244,7 @@ A jump table for the options with a short description can be found at |Q_op|.
when the expression is evaluated (but it may be moved around).
If the expression starts with s: or |<SID>|, then it is replaced with
the script ID (|local-function|). Example: >
the script ID (|local-function|). Example: >
set indentexpr=s:MyIndentExpr()
set indentexpr=<SID>SomeIndentExpr()
< Otherwise, the expression is evaluated in the context of the script
@@ -5695,8 +5723,8 @@ A jump table for the options with a short description can be found at |Q_op|.
than at the last character that fits on the screen. Unlike
'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file,
it only affects the way the file is displayed, not its contents.
If 'breakindent' is set, line is visually indented. Then, the value
of 'showbreak' is used to put in front of wrapped lines. This option
If 'breakindent' is set, line is visually indented. Then, the value
of 'showbreak' is used to put in front of wrapped lines. This option
is not used when the 'wrap' option is off.
Note that <Tab> characters after an <EOL> are mostly not displayed
with the right amount of white space.
@@ -5888,7 +5916,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+lua/dyn|
feature}
Specifies the name of the Lua shared library. The default is
Specifies the name of the Lua shared library. The default is
DYNAMIC_LUA_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -6352,8 +6380,8 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only works in the GUI}
When on, mouse move events are delivered to the input queue and are
available for mapping. The default, off, avoids the mouse movement
overhead except when needed. See |gui-mouse-mapping|.
available for mapping. The default, off, avoids the mouse movement
overhead except when needed. See |gui-mouse-mapping|.
Warning: Setting this option can make pending mappings to be aborted
when the mouse is moved.
Currently only works in the GUI, may be made to work in a terminal
@@ -6448,7 +6476,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+mzscheme/dyn|
feature}
Specifies the name of the MzScheme shared library. The default is
Specifies the name of the MzScheme shared library. The default is
DYNAMIC_MZSCH_DLL which was specified at compile time.
Environment variables are expanded |:set_env|.
The value must be set in the |vimrc| script or earlier. In the
@@ -6461,7 +6489,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+mzscheme/dyn|
feature}
Specifies the name of the MzScheme GC shared library. The default is
Specifies the name of the MzScheme GC shared library. The default is
DYNAMIC_MZGC_DLL which was specified at compile time.
The value can be equal to 'mzschemedll' if it includes the GC code.
Environment variables are expanded |:set_env|.
@@ -6486,7 +6514,7 @@ A jump table for the options with a short description can be found at |Q_op|.
bin If included, numbers starting with "0b" or "0B" will be
considered to be binary. Example: Using CTRL-X on
"0b1000" subtracts one, resulting in "0b0111".
unsigned If included, numbers are recognized as unsigned. Thus a
unsigned If included, numbers are recognized as unsigned. Thus a
leading dash or negative sign won't be considered as part of
the number. Examples:
Using CTRL-X on "2020" in "9-2020" results in "9-2019"
@@ -6545,14 +6573,14 @@ A jump table for the options with a short description can be found at |Q_op|.
feature}
Minimal number of columns to use for the line number. Only relevant
when the 'number' or 'relativenumber' option is set or printing lines
with a line number. Since one space is always between the number and
with a line number. Since one space is always between the number and
the text, there is one less character for the number itself.
The value is the minimum width. A bigger width is used when needed to
fit the highest line number in the buffer respectively the number of
rows in the window, depending on whether 'number' or 'relativenumber'
is set. Thus with the Vim default of 4 there is room for a line number
up to 999. When the buffer has 1000 lines five columns will be used.
The minimum value is 1, the maximum value is 20.
is set. Thus with the Vim default of 4 there is room for a line
number up to 999. When the buffer has 1000 lines five columns will be
used. The minimum value is 1, the maximum value is 20.
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
@@ -6565,7 +6593,7 @@ A jump table for the options with a short description can be found at |Q_op|.
completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O|
See |complete-functions| for an explanation of how the function is
invoked and what it should return. The value can be the name of a
function, a |lambda| or a |Funcref|. See |option-value-function| for
function, a |lambda| or a |Funcref|. See |option-value-function| for
more information.
This option is usually set by a filetype plugin:
|:filetype-plugin-on|
@@ -6587,7 +6615,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
This option specifies a function to be called by the |g@| operator.
See |:map-operator| for more info and an example. The value can be
the name of a function, a |lambda| or a |Funcref|. See
the name of a function, a |lambda| or a |Funcref|. See
|option-value-function| for more information.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -6598,7 +6626,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
This option specifies the timeout in milliseconds Vim should wait
until it receives an OSC terminator after receiving the beginning of
an OSC command response. See the |TermResponseAll| autocommand event
an OSC command response. See the |TermResponseAll| autocommand event
and |v:termosc| for more information.
*'osfiletype'* *'oft'*
@@ -6774,7 +6802,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+perl/dyn|
feature}
Specifies the name of the Perl shared library. The default is
Specifies the name of the Perl shared library. The default is
DYNAMIC_PERL_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -6898,6 +6926,40 @@ A jump table for the options with a short description can be found at |Q_op|.
global
When on a ":" prompt is used in Ex mode.
*'pumborder'* *'pb'*
'pumborder' 'pb' string (default "")
global
Defines a border and optional decorations for the popup menu in
completion. The value is a comma-separated list of keywords.
Border styles (at most one):
"single" use thin box-drawing characters
"double" use double-line box-drawing characters
"round" use rounded corners
"ascii" use ASCII characters (-, |, +)
"custom:X;X;X;X;X;X;X;X"
use eight characters separated by semicolons, in the
order: top, right, bottom, left,
topleft, topright, botright, botleft
Additional flags:
"margin" adds one-cell spacing inside the left and right border
"shadow" draws a shadow at the right and bottom edges
Highlight groups:
|hl-PmenuBorder| used for the border characters
|hl-PmenuShadow| used for the shadow
Examples: >
:set pumborder=single
:set pumborder=double,margin,shadow
:set pumborder=custom:─;│;─;│;┌;┐;┘;└,shadow
<
Border styles using box-drawing characters ("single", "double",
"round") are only available when |'encoding'| is "utf-8" and
|'ambiwidth'| is "single". "margin" requires a border style.
See also: |ins-completion-menu|.
*'pumheight'* *'ph'*
'pumheight' 'ph' number (default 0)
global
@@ -6927,7 +6989,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+python/dyn|
feature}
Specifies the name of the Python 2.x shared library. The default is
Specifies the name of the Python 2.x shared library. The default is
DYNAMIC_PYTHON_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -6938,10 +7000,10 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+python/dyn|
feature}
Specifies the name of the Python 2.x home directory. When 'pythonhome'
and the PYTHONHOME environment variable are not set, PYTHON_HOME,
which was specified at compile time, will be used for the Python 2.x
home directory.
Specifies the name of the Python 2.x home directory. When
'pythonhome' and the PYTHONHOME environment variable are not set,
PYTHON_HOME, which was specified at compile time, will be used for the
Python 2.x home directory.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -6951,7 +7013,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+python3/dyn|
feature}
Specifies the name of the Python 3 shared library. The default is
Specifies the name of the Python 3 shared library. The default is
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -6962,7 +7024,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+python3/dyn|
feature}
Specifies the name of the Python 3 home directory. When
Specifies the name of the Python 3 home directory. When
'pythonthreehome' and the PYTHONHOME environment variable are not set,
PYTHON3_HOME, which was specified at compile time, will be used for
the Python 3 home directory.
@@ -6986,8 +7048,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Available values are 0, 2 and 3.
If 'pyxversion' is 0, it is set to 2 or 3 after the first execution of
any python2/3 commands or functions. E.g. `:py` sets to 2, and `:py3`
sets to 3. `:pyx` sets it to 3 if Python 3 is available, otherwise sets
to 2 if Python 2 is available.
sets to 3. `:pyx` sets it to 3 if Python 3 is available, otherwise
sets to 2 if Python 2 is available.
See also: |has-pythonx|
If Vim is compiled with only |+python| or |+python3| setting
@@ -7008,7 +7070,7 @@ A jump table for the options with a short description can be found at |Q_op|.
for each entry in the corresponding quickfix or location list. See
|quickfix-window-function| for an explanation of how to write the
function and an example. The value can be the name of a function, a
|lambda| or a |Funcref|. See |option-value-function| for more
|lambda| or a |Funcref|. See |option-value-function| for more
information.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -7070,12 +7132,12 @@ A jump table for the options with a short description can be found at |Q_op|.
'relativenumber' 'rnu' boolean (default off)
local to window
Show the line number relative to the line with the cursor in front of
each line. Relative line numbers help you use the |count| you can
each line. Relative line numbers help you use the |count| you can
precede some vertical motion commands (e.g. j k + -) with, without
having to calculate it yourself. Especially useful in combination with
other commands (e.g. y d c < > gq gw =).
When the 'n' option is excluded from 'cpoptions' a wrapped
line will not use the column of line numbers (this is the default when
having to calculate it yourself. Especially useful in combination
with other commands (e.g. y d c < > gq gw =).
When the 'n' option is excluded from 'cpoptions' a wrapped line will
not use the column of line numbers (this is the default when
'compatible' isn't set).
The 'numberwidth' option can be used to set the room used for the line
number.
@@ -7262,14 +7324,14 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+ruby/dyn|
feature}
Specifies the name of the Ruby shared library. The default is
Specifies the name of the Ruby shared library. The default is
DYNAMIC_RUBY_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'ruler'* *'ru'* *'noruler'* *'noru'*
'ruler' 'ru' boolean (default off, set in |defaults.vim|)
'ruler' 'ru' boolean (Vim default: on, Vi default: off)
global
Show the line and column number of the cursor position, separated by a
comma. When there is room, the relative position of the displayed
@@ -7556,7 +7618,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'sessionoptions'* *'ssop'*
'sessionoptions' 'ssop' string (default: "blank,buffers,curdir,folds,
help,options,tabpages,winsize,terminal")
help,options,tabpages,winsize,terminal")
global
{not available when compiled without the |+mksession|
feature}
@@ -7815,7 +7877,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the "!" and ":!" commands. Includes the redirection. See
'shellquote' to exclude the redirection. It's probably not useful
to set both options.
When the value is '(' then ')' is appended. When the value is '"('
When the value is '(' then ')' is appended. When the value is '"('
then ')"' is appended.
When the value is '(' then also see 'shellxescape'.
This is an empty string by default on most systems, but is known to be
@@ -7895,7 +7957,7 @@ A jump table for the options with a short description can be found at |Q_op|.
`:silent` was used for the command; note that this also
affects messages from autocommands and 'autoread' reloading
S do not show search count message when searching, e.g. *shm-S*
"[1/5]". When the "S" flag is not present (e.g. search count
"[1/5]". When the "S" flag is not present (e.g. search count
is shown), the "search hit BOTTOM, continuing at TOP" and
"search hit TOP, continuing at BOTTOM" messages are only
indicated by a "W" (Mnemonic: Wrapped) letter before the
@@ -8087,11 +8149,11 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
{not available when compiled without the |+signs|
feature}
Whether or not to draw the signcolumn. Valid values are:
Whether or not to draw the signcolumn. Valid values are:
"auto" only when there is a sign to display
"no" never
"yes" always
"number" display signs in the 'number' column. If the number
"number" display signs in the 'number' column. If the number
column is not present, then behaves like "auto".
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
@@ -8152,7 +8214,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to window
Scrolling works with screen lines. When 'wrap' is set and the first
line in the window wraps part of it may not be visible, as if it is
above the window. "<<<" is displayed at the start of the first line,
above the window. "<<<" is displayed at the start of the first line,
highlighted with |hl-NonText|.
You may also want to add "lastline" to the 'display' option to show as
much of the last line as possible.
@@ -8252,7 +8314,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the two-letter, lower case region name. You can use more than one
region by listing them: "en_us,en_ca" supports both US and Canadian
English, but not words specific for Australia, New Zealand or Great
Britain. (Note: currently en_au and en_nz dictionaries are older than
Britain. (Note: currently en_au and en_nz dictionaries are older than
en_ca, en_gb and en_us).
If the name "cjk" is included East Asian characters are excluded from
spell checking. This is useful when editing text that also has Asian
@@ -8321,7 +8383,7 @@ A jump table for the options with a short description can be found at |Q_op|.
timeout:{millisec} Limit the time searching for suggestions to
{millisec} milliseconds. Applies to the following
methods. When omitted the limit is 5000. When
methods. When omitted the limit is 5000. When
negative there is no limit. {only works when built
with the |+reltime| feature}
@@ -8380,9 +8442,9 @@ A jump table for the options with a short description can be found at |Q_op|.
topline Keep the topline the same.
For the "screen" and "topline" values, the cursor position will be
changed when necessary. In this case, the jumplist will be populated
with the previous cursor position. For "screen", the text cannot always
be kept on the same screen line when 'wrap' is enabled.
changed when necessary. In this case, the jumplist will be populated
with the previous cursor position. For "screen", the text cannot
always be kept on the same screen line when 'wrap' is enabled.
*'splitright'* *'spr'* *'nosplitright'* *'nospr'*
'splitright' 'spr' boolean (default off)
@@ -8779,7 +8841,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option cannot be set in a modeline when 'modelineexpr' is off.
You can use |g:actual_curtabpage| within a function assigned to
tabpanel. |g:actual_curtabpage| represents current tab's label number.
tabpanel. |g:actual_curtabpage| represents current tab's label number.
The option value can contain line breaks: >
set tabpanel=%!TabPanel()
@@ -8915,7 +8977,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The function gets the tag pattern and should return a List of matching
tags. See |tag-function| for an explanation of how to write the
function and an example. The value can be the name of a function, a
|lambda| or a |Funcref|. See |option-value-function| for more
|lambda| or a |Funcref|. See |option-value-function| for more
information.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -8975,7 +9037,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{only available when compiled with the |+tcl/dyn|
feature}
Specifies the name of the Tcl shared library. The default is
Specifies the name of the Tcl shared library. The default is
DYNAMIC_TCL_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -9049,14 +9111,15 @@ A jump table for the options with a short description can be found at |Q_op|.
When on, uses |highlight-guifg| and |highlight-guibg| attributes in
the terminal (thus using 24-bit color).
Requires a ISO-8613-3 compatible terminal. If setting this option
Requires an ISO-8613-3 compatible terminal. If setting this option
does not work (produces a colorless UI) reading |xterm-true-color|
might help.
For Win32 console, Windows 10 version 1703 (Creators Update) or later
is required. Use this check to find out: >
is required. Use this check to find out: >
if has('vcon')
< This requires Vim to be built with the |+vtp| feature.
< This requires Vim to be built with the |+vtp| feature, see also
|win32-term-colors|.
Note that the "cterm" attributes are still used, not the "gui" ones.
@@ -9204,7 +9267,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+eval|
feature}
This option specifies a function to be used for thesaurus completion
with CTRL-X CTRL-T. |i_CTRL-X_CTRL-T| See |compl-thesaurusfunc|.
with CTRL-X CTRL-T. |i_CTRL-X_CTRL-T| See |compl-thesaurusfunc|.
The value can be the name of a function, a |lambda| or a |Funcref|.
See |option-value-function| for more information.
@@ -9547,7 +9610,7 @@ A jump table for the options with a short description can be found at |Q_op|.
"file.txt" is ".file.txt.un~".
For other directories the file name is the full path of the edited
file, with path separators replaced with "%".
When writing: The first directory that exists is used. "." always
When writing: The first directory that exists is used. "." always
works, no directories after "." will be used for writing.
When reading all entries are tried to find an undo file. The first
undo file that exists is used. When it cannot be read an error is
@@ -9654,9 +9717,9 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{only available when compiled with the |+vartabs|
feature}
Defines variable-width tab stops. The value is a comma-separated list
of widths in columns. Each width defines the number of columns
before the next tab stop; the last value repeats indefinitely.
Defines variable-width tab stops. The value is a comma-separated list
of widths in columns. Each width defines the number of columns before
the next tab stop; the last value repeats indefinitely.
For example: >
:set vartabstop=4,8
@@ -9754,7 +9817,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+viminfo|
feature}
When non-empty, the viminfo file is read upon startup and written
when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
"NONE".
The string should be a comma-separated list of parameters, each
consisting of a single character identifying the particular parameter,
@@ -9920,9 +9983,8 @@ 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 "<Esc>|f", which inverts the display
for 20 msec. If you want to use a different time, use "<Esc>|40f",
@@ -10183,23 +10245,23 @@ A jump table for the options with a short description can be found at |Q_op|.
expressions or with 'smartcase' enabled. However, the
case of the appended matched word may not exactly
match the case of the word in the buffer.
fuzzy Use |fuzzy-matching| to find completion matches. When
fuzzy Use |fuzzy-matching| to find completion matches. When
this value is specified, wildcard expansion will not
be used for completion. The matches will be sorted by
the "best match" rather than alphabetically sorted.
This will find more matches than the wildcard
expansion. Currently fuzzy matching based completion
expansion. Currently fuzzy matching based completion
is not supported for file and directory names and
instead wildcard expansion is used.
pum Display the completion matches using the popup menu
in the same style as the |ins-completion-menu|.
pum Display the completion matches using the popup menu in
the same style as the |ins-completion-menu|.
tagfile When using CTRL-D to list matching tags, the kind of
tag and the file of the tag is listed. Only one match
is displayed per line. Often used tag kinds are:
d #define
f function
This option does not apply to |ins-completion|. See 'completeopt' for
This option does not apply to |ins-completion|. See 'completeopt' for
that.
*'winaltkeys'* *'wak'*
@@ -10319,8 +10381,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{only available when compiled with the |terminal|
feature on MS-Windows}
Specifies the name of the winpty shared library, used for the
|:terminal| command. The default depends on whether Vim was built as a
32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
|:terminal| command. The default depends on whether Vim was built as
a 32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
a fallback.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -10353,7 +10415,8 @@ A jump table for the options with a short description can be found at |Q_op|.
*'wlsteal'* *'wst'* *'nowlsteal'* *'nowst'*
'wlsteal' 'wst' boolean (default off)
global
{only when the |+wayland_clipboard| feature is included}
{only when the |+wayland_focus_steal| feature is
included}
When enabled, then allow Vim to steal focus by creating a temporary
surface, in order to access the clipboard. For more information see
|wayland-focus-steal|.
@@ -10390,6 +10453,11 @@ A jump table for the options with a short description can be found at |Q_op|.
< See 'sidescroll', 'listchars' and |wrap-off|.
This option can't be set from a |modeline| when the 'diff' option is
on.
If 'nowrap' was set from a |modeline| or in the |sandbox|, '>' is used
as the |lcs-extends| character regardless of the value of the 'list'
and 'listchars' options. This is to prevent malicious code outside
the viewport from going unnoticed. Use `:setlocal nowrap` manually
afterwards to disable this behavior.
*'wrapmargin'* *'wm'*
'wrapmargin' 'wm' number (default 0)

View File

@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 9.1. Last change: 2025 Aug 06
*os_win32.txt* For Vim version 9.1. Last change: 2025 Oct 01
VIM REFERENCE MANUAL by George Reilly
@@ -24,7 +24,7 @@ The 32 bit version also runs on 64 bit MS-Windows systems.
7. Installation package |win32-installer|
8. Win32 mini FAQ |win32-faq|
Additionally, there are a number of common Win32 and DOS items:
Additionally, there are a number of common Win32 and DOS items in |os_dos.txt|:
File locations |dos-locations|
Using backslashes |dos-backslash|
Standard mappings |dos-standard-mappings|
@@ -85,6 +85,21 @@ The only kind of terminal type that the Win32 version of Vim understands is
probably get very strange behavior from Vim. Therefore Vim does not obtain
the default value of 'term' from the environment variable "TERM".
Terminal Colors *win32-term-colors*
The Win32 console supports 16 colors by default |dos-colors|. From Windows 10
version 1703 (Creators Update) onwards, the console supports 256 colors and
true color (24-bit) when 'termguicolors' is set and Vim is built with support
for Virtual Terminal Processing (VTP) |+vtp|.
Virtual Terminal Processing is automatically enabled if either the
'termguicolors' option is set or the 't_Co' option is set to 256. This
enables ANSI escape sequences for colors, improves rendering of multi-byte
characters and enables other terminal features in the Windows console.
The actual color rendering depends on whether your terminal supports VTP (such
as Windows Terminal or the modern Windows 10/11 console).
$PATH *win32-PATH*
The directory of the Vim executable is appended to $PATH. This is mostly to

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 9.1. Last change: 2025 Aug 21
*pattern.txt* For Vim version 9.1. Last change: 2025 Oct 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -141,7 +141,8 @@ CTRL-C Interrupt current (search) command. Use CTRL-Break on
help users who use "vim file | grep word" and don't
know how to get out (blindly typing :qa<CR> would
work).
If a popup is open, the active popup will be closed.
If a popup with a |popup-filter| is open, the popup
will be closed.
*:noh* *:nohlsearch*
:noh[lsearch] Stop the highlighting for the 'hlsearch' option. It
@@ -966,7 +967,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
the cursor moves the display isn't updated for this change. An update
is done when using the |CTRL-L| command (the whole screen is updated).
Example, to highlight the line where the cursor currently is: >
:exe '/\%' . line(".") . 'l'
:exe '/\%' .. line(".") .. 'l'
< Alternatively use: >
/\%.l
< When 'hlsearch' is set and you move the cursor around and make changes
@@ -1549,7 +1550,8 @@ a List of strings. |matchfuzzy()| returns the matching strings, while
The "f" flag of `:vimgrep` enables fuzzy matching.
To enable fuzzy matching for |ins-completion|, add the "fuzzy" value to the
'completeopt' option.
To enable fuzzy matching for |ins-completion|, add "fuzzy" to the
'completeopt' option. For |cmdline-completion|, add "fuzzy" to the
'wildoptions' option.
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 9.1. Last change: 2025 Jul 15
*pi_zip.txt* For Vim version 9.1. Last change: 2025 Sep 22
+====================+
| Zip File Interface |
@@ -50,7 +50,7 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
allow spaces and whatnot in filenames; however, if it is incorrectly
guessing the quote to use for your setup, you may use >
g:zip_shq
< which by default is a single quote under Unix (') and a double quote
< which by default is a single quote under Unix (') and a double quote
under Windows ("). If you'd rather have no quotes, simply set
g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>.
@@ -77,6 +77,16 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
"0": >
let g:zip_exec=0
<
FALLBACK TO POWERSHELL CORE~
This plugin will first attempt to use the (more capable) GNU zip/unzip
commands. If these commands are not available or fail, and the user is
using PowerShell Core (i.e., the 'shell' option matches "pwsh"), the
plugin will fall back to a PowerShell Core cmdlet. The PowerShell Core
cmdlets are limited: they cannot write or extract files within
subdirectories of a zip archive. The advantage, however, is that no
separate unzip binary needs to be installed.
PREVENTING LOADING~
If for some reason you do not wish to use vim to examine zipped files,
@@ -100,18 +110,19 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
should be treated as zip files.
Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
Currently (as of April 2025) it holds: >
Currently (as of October 2025) it holds: >
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,
\ *.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,
\ *.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,
\ *.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.potm,*.potx,*.ppam,
\ *.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,*.wsz,
\ *.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
\ *.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.pkpass,*.potm,*.potx,
\ *.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,
\ *.wsz, *.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
==============================================================================
4. History *zip-history* {{{1
unreleased:
Sep 19, 2025 * support PowerShell Core
Jul 12, 2025 * drop ../ on write to prevent path traversal attacks
Mar 11, 2025 * handle filenames with leading '-' correctly
Aug 21, 2024 * simplify condition to detect MS-Windows

View File

@@ -1,4 +1,4 @@
*popup.txt* For Vim version 9.1. Last change: 2025 Aug 27
*popup.txt* For Vim version 9.1. Last change: 2025 Sep 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -639,10 +639,17 @@ popup_settext({id}, {text}) *popup_settext()*
popup_show({id}) *popup_show()*
If {id} is a hidden popup, show it now.
For {id} see `popup_hide()`.
If {id} is the info popup it will be positioned next to the
current popup menu item.
Show a hidden popup window identified by {id}.
Use {id} as returned by |popup_create()|.
If the popup is currently hidden, it will be made visible.
See |popup_hide()| to hide a popup.
If {id} refers to an info popup, it will be positioned next to
the currently selected item in the popup menu.
Returns -1 if a popup window with {id} does not exist.
Returns 0 on success.
Return type: |Number|

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 9.1. Last change: 2025 Aug 27
*quickfix.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1418,7 +1418,7 @@ declares an only parameter of type string and puts to use a command equivalent
of |:make|, and assigning its |Funcref| to the selected key. For example:
>vim
function! GenericPostCompilerCommand(arguments) abort
execute 'make ' . a:arguments
execute 'make ' .. a:arguments
endfunction
let g:spotbugs_properties = {
@@ -1449,7 +1449,7 @@ that will arrange for "PostCompilerActionExecutor" to be invoked; and then run
function! GenericPreCompilerCommand(arguments) abort
if !exists('g:spotbugs_compilation_done')
doautocmd java_spotbugs_post User
execute 'make ' . a:arguments
execute 'make ' .. a:arguments
" only run doautocmd when :make was synchronous
" see note below
doautocmd java_spotbugs_post ShellCmdPost " XXX: (a)
@@ -1462,7 +1462,7 @@ that will arrange for "PostCompilerActionExecutor" to be invoked; and then run
function! GenericPreCompilerTestCommand(arguments) abort
if !exists('g:spotbugs_test_compilation_done')
doautocmd java_spotbugs_post User
execute 'make ' . a:arguments
execute 'make ' .. a:arguments
" only run doautocmd when :make was synchronous
" see note below
doautocmd java_spotbugs_post ShellCmdPost " XXX: (b)

View File

@@ -1,4 +1,4 @@
*sign.txt* For Vim version 9.1. Last change: 2024 Jul 07
*sign.txt* For Vim version 9.1. Last change: 2025 Oct 05
VIM REFERENCE MANUAL by Gordon Prieur
@@ -115,7 +115,7 @@ DEFINING A SIGN. *:sign-define* *E255* *E160* *E612*
See |sign_define()| for the equivalent Vim script function.
:sign define {name} {argument}...
:sig[n] define {name} {argument}...
Define a new sign or set attributes for an existing sign.
The {name} can either be a number (all digits) or a name
starting with a non-digit. Leading zeros are ignored, thus
@@ -168,7 +168,7 @@ DELETING A SIGN *:sign-undefine* *E155*
See |sign_undefine()| for the equivalent Vim script function.
:sign undefine {name}
:sig[n] undefine {name}
Deletes a previously defined sign. If signs with this {name}
are still placed this will cause trouble.
@@ -180,9 +180,9 @@ LISTING SIGNS *:sign-list* *E156*
See |sign_getdefined()| for the equivalent Vim script function.
:sign list Lists all defined signs and their attributes.
:sig[n] list Lists all defined signs and their attributes.
:sign list {name}
:sig[n] list {name}
Lists one defined sign and its attributes.
@@ -190,7 +190,7 @@ PLACING SIGNS *:sign-place* *E158*
See |sign_place()| for the equivalent Vim script function.
:sign place {id} line={lnum} name={name} file={fname}
:sig[n] place {id} line={lnum} name={name} file={fname}
Place sign defined as {name} at line {lnum} in file {fname}.
*:sign-fname*
The file {fname} must already be loaded in a buffer. The
@@ -224,7 +224,7 @@ See |sign_place()| for the equivalent Vim script function.
:sign place 9 group=g2 priority=50 line=5
\ name=sign1 file=a.py
<
:sign place {id} line={lnum} name={name} [buffer={nr}]
:sig[n] place {id} line={lnum} name={name} [buffer={nr}]
Same, but use buffer {nr}. If the buffer argument is not
given, place the sign in the current buffer.
@@ -233,7 +233,7 @@ See |sign_place()| for the equivalent Vim script function.
:sign place 10 line=99 name=sign3 buffer=3
<
*E885*
:sign place {id} name={name} file={fname}
:sig[n] place {id} name={name} file={fname}
Change the placed sign {id} in file {fname} to use the defined
sign {name}. See remark above about {fname} |:sign-fname|.
This can be used to change the displayed sign without moving
@@ -247,7 +247,7 @@ See |sign_place()| for the equivalent Vim script function.
Example: >
:sign place 23 name=sign1 file=/path/to/edit.py
<
:sign place {id} name={name} [buffer={nr}]
:sig[n] place {id} name={name} [buffer={nr}]
Same, but use buffer {nr}. If the buffer argument is not
given, use the current buffer.
@@ -260,75 +260,75 @@ REMOVING SIGNS *:sign-unplace* *E159*
See |sign_unplace()| for the equivalent Vim script function.
:sign unplace {id} file={fname}
:sig[n] unplace {id} file={fname}
Remove the previously placed sign {id} from file {fname}.
See remark above about {fname} |:sign-fname|.
:sign unplace {id} group={group} file={fname}
:sig[n] unplace {id} group={group} file={fname}
Same but remove the sign {id} in sign group {group}.
:sign unplace {id} group=* file={fname}
:sig[n] unplace {id} group=* file={fname}
Same but remove the sign {id} from all the sign groups.
:sign unplace * file={fname}
:sig[n] unplace * file={fname}
Remove all placed signs in file {fname}.
:sign unplace * group={group} file={fname}
:sig[n] unplace * group={group} file={fname}
Remove all placed signs in group {group} from file {fname}.
:sign unplace * group=* file={fname}
:sig[n] unplace * group=* file={fname}
Remove all placed signs in all the groups from file {fname}.
:sign unplace {id} buffer={nr}
:sig[n] unplace {id} buffer={nr}
Remove the previously placed sign {id} from buffer {nr}.
:sign unplace {id} group={group} buffer={nr}
:sig[n] unplace {id} group={group} buffer={nr}
Remove the previously placed sign {id} in group {group} from
buffer {nr}.
:sign unplace {id} group=* buffer={nr}
:sig[n] unplace {id} group=* buffer={nr}
Remove the previously placed sign {id} in all the groups from
buffer {nr}.
:sign unplace * buffer={nr}
:sig[n] unplace * buffer={nr}
Remove all placed signs in buffer {nr}.
:sign unplace * group={group} buffer={nr}
:sig[n] unplace * group={group} buffer={nr}
Remove all placed signs in group {group} from buffer {nr}.
:sign unplace * group=* buffer={nr}
:sig[n] unplace * group=* buffer={nr}
Remove all placed signs in all the groups from buffer {nr}.
:sign unplace {id}
:sig[n] unplace {id}
Remove the previously placed sign {id} from all files it
appears in.
:sign unplace {id} group={group}
:sig[n] unplace {id} group={group}
Remove the previously placed sign {id} in group {group} from
all files it appears in.
:sign unplace {id} group=*
:sig[n] unplace {id} group=*
Remove the previously placed sign {id} in all the groups from
all the files it appears in.
:sign unplace *
:sig[n] unplace *
Remove all placed signs in the global group from all the files.
:sign unplace * group={group}
:sig[n] unplace * group={group}
Remove all placed signs in group {group} from all the files.
:sign unplace * group=*
:sig[n] unplace * group=*
Remove all placed signs in all the groups from all the files.
:sign unplace
:sig[n] unplace
Remove a placed sign at the cursor position. If multiple signs
are placed in the line, then only one is removed.
:sign unplace group={group}
:sig[n] unplace group={group}
Remove a placed sign in group {group} at the cursor
position.
:sign unplace group=*
:sig[n] unplace group=*
Remove a placed sign in any group at the cursor position.
@@ -336,31 +336,31 @@ LISTING PLACED SIGNS *:sign-place-list*
See |sign_getplaced()| for the equivalent Vim script function.
:sign place file={fname}
:sig[n] place file={fname}
List signs placed in file {fname}.
See remark above about {fname} |:sign-fname|.
:sign place group={group} file={fname}
:sig[n] place group={group} file={fname}
List signs in group {group} placed in file {fname}.
:sign place group=* file={fname}
:sig[n] place group=* file={fname}
List signs in all the groups placed in file {fname}.
:sign place buffer={nr}
:sig[n] place buffer={nr}
List signs placed in buffer {nr}.
:sign place group={group} buffer={nr}
:sig[n] place group={group} buffer={nr}
List signs in group {group} placed in buffer {nr}.
:sign place group=* buffer={nr}
:sig[n] place group=* buffer={nr}
List signs in all the groups placed in buffer {nr}.
:sign place List placed signs in the global group in all files.
:sig[n] place List placed signs in the global group in all files.
:sign place group={group}
:sig[n] place group={group}
List placed signs with sign group {group} in all files.
:sign place group=*
:sig[n] place group=*
List placed signs in all sign groups in all files.
@@ -368,22 +368,22 @@ JUMPING TO A SIGN *:sign-jump* *E157*
See |sign_jump()| for the equivalent Vim script function.
:sign jump {id} file={fname}
:sig[n] jump {id} file={fname}
Open the file {fname} or jump to the window that contains
{fname} and position the cursor at sign {id}.
See remark above about {fname} |:sign-fname|.
If the file isn't displayed in window and the current file can
not be |abandon|ed this fails.
:sign jump {id} group={group} file={fname}
:sig[n] jump {id} group={group} file={fname}
Same but jump to the sign in group {group}
:sign jump {id} [buffer={nr}] *E934*
:sig[n] jump {id} [buffer={nr}] *E934*
Same, but use buffer {nr}. This fails if buffer {nr} does not
have a name. If the buffer argument is not given, use the
current buffer.
:sign jump {id} group={group} [buffer={nr}]
:sig[n] jump {id} group={group} [buffer={nr}]
Same but jump to the sign in group {group}

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 9.1. Last change: 2025 Sep 08
*syntax.txt* For Vim version 9.1. Last change: 2025 Oct 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2214,14 +2214,17 @@ Note that these three variables are maintained in the HTML syntax file.
Numbers and strings can be recognized in non-Javadoc comments with >
:let g:java_comment_strings = 1
When 'foldmethod' is set to "syntax", blocks of code and multi-line comments
will be folded. No text is usually written in the first line of a multi-line
comment, making folded contents of Javadoc comments less informative with the
default 'foldtext' value; you may opt for showing the contents of a second
line for any comments written in this way, and showing the contents of a first
line otherwise, with >
When 'foldmethod' is set to "syntax", multi-line blocks of code ("b"), plain
comments ("c"), Javadoc comments ("d"), and adjacent "import" declarations
("i") will be folded by default. Syntax items of any supported kind will
remain NOT foldable when its abbreviated name is delisted with >
:let g:java_ignore_folding = "bcdi"
No text is usually written in the first line of a multi-line comment, making
folded contents of Javadoc comments less informative with the default
'foldtext' value; you may opt for showing the contents of a second line for
any comments written in this way, and showing the contents of a first line
otherwise, with >
:let g:java_foldtext_show_first_or_second_line = 1
HTML tags in Javadoc comments can additionally be folded by following the
instructions listed under |html-folding| and giving explicit consent with >
:let g:java_consent_to_html_syntax_folding = 1
@@ -2272,12 +2275,11 @@ cycles for such a feature to become either integrated into the platform or
withdrawn from this effort. To cater for early adopters, there is optional
support in Vim for syntax related preview features that are implemented. You
can request it by specifying a list of preview feature numbers as follows: >
:let g:java_syntax_previews = [488, 494]
:let g:java_syntax_previews = [507]
The supported JEP numbers are to be drawn from this table:
`430`: String Templates [JDK 21]
`488`: Primitive types in Patterns, instanceof, and switch
`494`: Module Import Declarations
`507`: Primitive types in Patterns, instanceof, and switch
Note that as soon as the particular preview feature will have been integrated
into the Java platform, its entry will be removed from the table and related
@@ -2385,6 +2387,22 @@ set "lite_minlines" to the value you desire. Example: >
:let lite_minlines = 200
LOG *ft-log-syntax*
Vim comes with a simplistic generic log syntax highlighter. Because the log
file format is so generic, highlighting is not enabled by default, since it
can be distracting. If you want to enable this, simply set the "log" filetype
manually: >
:set ft=log
To enable this automatically for "*.log" files, add the following to your
personal `filetype.vim` file (usually located in `~/.vim/filetype.vim` on Unix
or `$HOME/vimfiles/filetype.vim`, see also |new-filetype|): >
augroup filetypedetect
au! BufNewFile,BufRead *.log setfiletype log
augroup END
LPC *lpc.vim* *ft-lpc-syntax*
@@ -2504,21 +2522,26 @@ $VIMRUNTIME/syntax/syntax.vim).
MARKDOWN *ft-markdown-syntax* *g:markdown_minlines*
*g:markdown_fenced_languages* *g:markdown_syntax_conceal*
If you have long regions there might be wrong highlighting. At the cost of
If you have long regions there may be incorrect highlighting. At the cost of
slowing down displaying, you can have the engine look further back to sync on
the start of a region, for example 500 lines (default is 50): >
:let g:markdown_minlines = 500
If you want to enable fenced code block syntax highlighting in your markdown
documents you can enable like this: >
If you want to enable fenced code block syntax highlighting in your Markdown
documents, set the following variable: >
:let g:markdown_fenced_languages = ['html', 'python', 'bash=sh']
To disable markdown syntax concealing add the following to your vimrc: >
To disable Markdown syntax concealing, add the following to your vimrc: >
:let g:markdown_syntax_conceal = 0
For extended Markdown support with enhanced features such as citations,
footnotes, mathematical formulas, academic writing elements and embedded code
block highlighting, consider using the pandoc syntax plugin. Set
`g:filetype_md` to 'pandoc' and see |ft-pandoc-syntax| for configuration
details.
MATHEMATICA *mma.vim* *ft-mma-syntax* *ft-mathematica-syntax*
@@ -4264,9 +4287,9 @@ Vim understands three types of syntax items:
Several syntax ITEMs can be put into one syntax GROUP. For a syntax group
you can give highlighting attributes. For example, you could have an item
to define a "/* .. */" comment and another one that defines a "// .." comment,
and put them both in the "Comment" group. You can then specify that a
"Comment" will be in bold font and have a blue color. You are free to make
to define a "/* ... */" comment and another one that defines a "// ..."
comment, and put them both in the "Comment" group. You can then specify that
a "Comment" will be in bold font and have a blue color. You are free to make
one highlight group for one syntax item, or put all items into one group.
This depends on how you want to specify your highlighting attributes. Putting
each item in its own group results in having to specify the highlighting
@@ -4466,9 +4489,9 @@ DEFINING REGIONS *:syn-region* *:syn-start* *:syn-skip* *:syn-end*
[keepend]
[extend]
[excludenl]
start={start-pattern} ..
start={start-pattern} ...
[skip={skip-pattern}]
end={end-pattern} ..
end={end-pattern} ...
[{options}]
This defines one region. It may span several lines.
@@ -4802,7 +4825,7 @@ from its syntax items.
*:syn-contains* *E405* *E406* *E407* *E408* *E409*
contains={group-name},..
contains={group-name},...
The "contains" argument is followed by a list of syntax group names. These
groups will be allowed to begin inside the item (they may extend past the
@@ -4815,7 +4838,7 @@ contains=ALL
If the only item in the contains list is "ALL", then all
groups will be accepted inside the item.
contains=ALLBUT,{group-name},..
contains=ALLBUT,{group-name},...
If the first item in the contains list is "ALLBUT", then all
groups will be accepted inside the item, except the ones that
are listed. Example: >
@@ -4825,14 +4848,14 @@ contains=TOP
If the first item in the contains list is "TOP", then all
groups will be accepted that don't have the "contained"
argument.
contains=TOP,{group-name},..
contains=TOP,{group-name},...
Like "TOP", but excluding the groups that are listed.
contains=CONTAINED
If the first item in the contains list is "CONTAINED", then
all groups will be accepted that have the "contained"
argument.
contains=CONTAINED,{group-name},..
contains=CONTAINED,{group-name},...
Like "CONTAINED", but excluding the groups that are
listed.
@@ -4855,13 +4878,20 @@ region where contained items do match. Note that this may also limit the
area that is highlighted
containedin={group-name}... *:syn-containedin*
containedin={group-name},... *:syn-containedin*
The "containedin" argument is followed by a list of syntax group names. The
item will be allowed to begin inside these groups. This works as if the
containing item has a "contains=" argument that includes this item.
The {group-name}... can be used just like for "contains", as explained above.
Only the immediate containing item (the one at the top of the syntax stack) is
considered. Vim does not search other ancestors. If the immediate container
neither contains this item via |:syn-contains| nor is named in this item's
"containedin=", the match will not start even if some ancestor would allow it.
Note that a |:syn-transparent| region still enforces its own |:syn-contains|
list.
The {group-name},... can be used just like for "contains", as explained above.
This is useful when adding a syntax item afterwards. An item can be told to
be included inside an already existing item, without changing the definition
@@ -4875,9 +4905,10 @@ Matches for "containedin" are added to the other places where the item can
appear. A "contains" argument may also be added as usual. Don't forget that
keywords never contain another item, thus adding them to "containedin" won't
work.
See also: |:syn-contains|, |:syn-transparent|.
nextgroup={group-name},.. *:syn-nextgroup*
nextgroup={group-name},... *:syn-nextgroup*
The "nextgroup" argument is followed by a list of syntax group names,
separated by commas (just like with "contains", so you can also use patterns).
@@ -5133,22 +5164,22 @@ cannot be referred to.
==============================================================================
9. Syntax clusters *:syn-cluster* *E400*
:sy[ntax] cluster {cluster-name} [contains={group-name}..]
[add={group-name}..]
[remove={group-name}..]
:sy[ntax] cluster {cluster-name} [contains={group-name},...]
[add={group-name},...]
[remove={group-name},...]
This command allows you to cluster a list of syntax groups together under a
single name.
contains={group-name}..
contains={group-name},...
The cluster is set to the specified list of groups.
add={group-name}..
add={group-name},...
The specified groups are added to the cluster.
remove={group-name}..
remove={group-name},...
The specified groups are removed from the cluster.
A cluster so defined may be referred to in a contains=.., containedin=..,
nextgroup=.., add=.. or remove=.. list with a "@" prefix. You can also use
A cluster so defined may be referred to in a contains=..., containedin=...,
nextgroup=..., add=... or remove=... list with a "@" prefix. You can also use
this notation to implicitly declare a cluster before specifying its contents.
Example: >
@@ -5363,7 +5394,7 @@ highlighting. The reduced number of patterns means it will go (much)
faster.]
*syn-sync-grouphere* *E393* *E394*
:syntax sync match {sync-group-name} grouphere {group-name} "pattern" ..
:syntax sync match {sync-group-name} grouphere {group-name} "pattern" ...
Define a match that is used for syncing. {group-name} is the
name of a syntax group that follows just after the match. Parsing
@@ -5372,7 +5403,7 @@ faster.]
"NONE" can be used for when there is no syntax group after the match.
*syn-sync-groupthere*
:syntax sync match {sync-group-name} groupthere {group-name} "pattern" ..
:syntax sync match {sync-group-name} groupthere {group-name} "pattern" ...
Like "grouphere", but {group-name} is the name of a syntax group that
is to be used at the start of the line where searching for the sync
@@ -5385,8 +5416,8 @@ faster.]
it's a bit more complicated, because the "/*" and "*/" could appear
inside a string. That's left as an exercise to the reader...).
:syntax sync match ..
:syntax sync region ..
:syntax sync match ...
:syntax sync region ...
Without a "groupthere" argument. Define a region or match that is
skipped while searching for a sync point.
@@ -5407,7 +5438,7 @@ You can clear all sync settings with: >
:syntax sync clear
You can clear specific sync patterns with: >
:syntax sync clear {sync-group-name} ..
:syntax sync clear {sync-group-name} ...
==============================================================================
12. Listing syntax items *:syntax* *:sy* *:syn* *:syn-list*
@@ -5542,7 +5573,7 @@ in their own color.
Disable the highlighting for one highlight group. It
is _not_ set back to the default colors.
:hi[ghlight] [default] {group-name} {key}={arg} ..
:hi[ghlight] [default] {group-name} {key}={arg} ...
Add a highlight group, or change the highlighting for
an existing group. If a given color name is not
recognized, each `colors/lists/default.vim` found on
@@ -5996,10 +6027,15 @@ PmenuMatch Popup menu: Matched text in normal item. Applied in
*hl-PmenuMatchSel*
PmenuMatchSel Popup menu: Matched text in selected item. Applied in
combination with |hl-PmenuSel|.
*hl-PmenuBorder*
PmenuBorder Popup menu: Border characters.
Linked to |hl-Pmenu| by default.
*hl-PmenuShadow*
PmenuShadow Popup menu: Used for shadow.
*hl-ComplMatchIns*
ComplMatchIns Matched text of the currently inserted completion.
*hl-PreInsert*
PreInsert Text inserted during autocompletion when "preinsert".
PreInsert Text inserted when "preinsert" is in 'completeopt'.
*hl-PopupSelected*
PopupSelected Popup window created with |popup_menu()|. Linked to
|hl-PmenuSel| by default.
@@ -6064,6 +6100,16 @@ TabPanelSel TabPanel, active tab page label.
Terminal |terminal| window (see |terminal-size-color|).
*hl-Title*
Title Titles for output from ":set all", ":autocmd" etc.
*hl-TitleBar*
TitleBar Title bar for the active Gui's window.
This feature is supported only in the MS-Windows GUI.
See |gui-w32-title-bar| for details
Only the `guibg` and `guifg` highlight arguments are effective.
*hl-TitleBarNC*
TitleBarNC Title bar for inactive Gui's window.
This feature is supported only in the MS-Windows GUI.
See |gui-w32-title-bar| for details
Only the `guibg` and `guifg` highlight arguments are effective.
*hl-Visual*
Visual Visual mode selection.
*hl-VisualNOS*
@@ -6166,11 +6212,11 @@ The command also deletes the "b:current_syntax" variable, since no syntax is
loaded after this command.
To clean up specific syntax groups for the current buffer: >
:syntax clear {group-name} ..
:syntax clear {group-name} ...
This removes all patterns and keywords for {group-name}.
To clean up specific syntax group lists for the current buffer: >
:syntax clear @{grouplist-name} ..
:syntax clear @{grouplist-name} ...
This sets {grouplist-name}'s contents to an empty list.
*:syntax-off* *:syn-off*
@@ -6455,7 +6501,7 @@ that Setup / Font / Enable Bold is NOT enabled.
==============================================================================
20. When syntax is slow *:syntime*
20. When syntax is slow *:synti* *:syntime*
This is aimed at authors of a syntax file.
@@ -6464,10 +6510,10 @@ faster. To see slowness switch on some features that usually interfere, such
as 'relativenumber' and |folding|.
Note: This is only available when compiled with the |+profile| feature.
You many need to build Vim with "huge" features.
You may need to build Vim with "huge" features.
To find out what patterns are consuming most time, get an overview with this
sequence: >
To find out what patterns are consuming the most time, get an overview with
this sequence: >
:syntime on
[ redraw the text at least once with CTRL-L ]
:syntime report
@@ -6475,15 +6521,15 @@ sequence: >
This will display a list of syntax patterns that were used, sorted by the time
it took to match them against the text.
:syntime on Start measuring syntax times. This will add some
:synti[me] on Start measuring syntax times. This will add some
overhead to compute the time spent on syntax pattern
matching.
:syntime off Stop measuring syntax times.
:synti[me] off Stop measuring syntax times.
:syntime clear Set all the counters to zero, restart measuring.
:synti[me] clear Set all the counters to zero, restart measuring.
:syntime report Show the syntax items used since ":syntime on" in the
:synti[me] report Show the syntax items used since ":syntime on" in the
current window. Use a wider display to see more of
the output.

View File

@@ -363,6 +363,7 @@ $quote eval.txt /*$quote*
'go' options.txt /*'go'*
'go-!' options.txt /*'go-!'*
'go-A' options.txt /*'go-A'*
'go-C' options.txt /*'go-C'*
'go-F' options.txt /*'go-F'*
'go-L' options.txt /*'go-L'*
'go-M' options.txt /*'go-M'*
@@ -875,6 +876,7 @@ $quote eval.txt /*$quote*
'patchexpr' options.txt /*'patchexpr'*
'patchmode' options.txt /*'patchmode'*
'path' options.txt /*'path'*
'pb' options.txt /*'pb'*
'pdev' options.txt /*'pdev'*
'penc' options.txt /*'penc'*
'perldll' options.txt /*'perldll'*
@@ -904,6 +906,7 @@ $quote eval.txt /*$quote*
'printoptions' options.txt /*'printoptions'*
'prompt' options.txt /*'prompt'*
'pt' options.txt /*'pt'*
'pumborder' options.txt /*'pumborder'*
'pumheight' options.txt /*'pumheight'*
'pummaxwidth' options.txt /*'pummaxwidth'*
'pumwidth' options.txt /*'pumwidth'*
@@ -1564,6 +1567,7 @@ $quote eval.txt /*$quote*
+vtp various.txt /*+vtp*
+wayland various.txt /*+wayland*
+wayland_clipboard various.txt /*+wayland_clipboard*
+wayland_focus_steal various.txt /*+wayland_focus_steal*
+wildignore various.txt /*+wildignore*
+wildmenu various.txt /*+wildmenu*
+windows various.txt /*+windows*
@@ -2117,7 +2121,20 @@ $quote eval.txt /*$quote*
:% cmdline.txt /*:%*
:& change.txt /*:&*
:&& change.txt /*:&&*
:' cmdline.txt /*:'*
:'' cmdline.txt /*:''*
:'( cmdline.txt /*:'(*
:') cmdline.txt /*:')*
:'. cmdline.txt /*:'.*
:'< cmdline.txt /*:'<*
:'> cmdline.txt /*:'>*
:'X cmdline.txt /*:'X*
:'[ cmdline.txt /*:'[*
:'] cmdline.txt /*:']*
:'^ cmdline.txt /*:'^*
:'quote cmdline.txt /*:'quote*
:'x cmdline.txt /*:'x*
:'{ cmdline.txt /*:'{*
:'} cmdline.txt /*:'}*
:++ vim9.txt /*:++*
:, cmdline.txt /*:,*
:-- vim9.txt /*:--*
@@ -2235,6 +2252,7 @@ $quote eval.txt /*$quote*
:Rexplore pi_netrw.txt /*:Rexplore*
:RmVimball pi_vimball.txt /*:RmVimball*
:Run terminal.txt /*:Run*
:RunOrContinue terminal.txt /*:RunOrContinue*
:RustEmitAsm ft_rust.txt /*:RustEmitAsm*
:RustEmitIr ft_rust.txt /*:RustEmitIr*
:RustExpand ft_rust.txt /*:RustExpand*
@@ -2256,6 +2274,7 @@ $quote eval.txt /*$quote*
:Termdebug terminal.txt /*:Termdebug*
:TermdebugCommand terminal.txt /*:TermdebugCommand*
:Texplore pi_netrw.txt /*:Texplore*
:ToggleBreak terminal.txt /*:ToggleBreak*
:Tutor pi_tutor.txt /*:Tutor*
:URLOpen eval.txt /*:URLOpen*
:Until terminal.txt /*:Until*
@@ -2553,6 +2572,7 @@ $quote eval.txt /*$quote*
:def vim9.txt /*:def*
:defc vim9.txt /*:defc*
:defcompile vim9.txt /*:defcompile*
:defe userfunc.txt /*:defe*
:defer userfunc.txt /*:defer*
:del change.txt /*:del*
:delc map.txt /*:delc*
@@ -3531,6 +3551,7 @@ $quote eval.txt /*$quote*
:syntax-off syntax.txt /*:syntax-off*
:syntax-on syntax.txt /*:syntax-on*
:syntax-reset syntax.txt /*:syntax-reset*
:synti syntax.txt /*:synti*
:syntime syntax.txt /*:syntime*
:t change.txt /*:t*
:tN tagsrch.txt /*:tN*
@@ -4778,6 +4799,7 @@ E1565 remote.txt /*E1565*
E1566 remote.txt /*E1566*
E1567 remote.txt /*E1567*
E1568 options.txt /*E1568*
E1569 builtin.txt /*E1569*
E157 sign.txt /*E157*
E158 sign.txt /*E158*
E159 sign.txt /*E159*
@@ -7643,6 +7665,7 @@ ft-lf-syntax syntax.txt /*ft-lf-syntax*
ft-lifelines-syntax syntax.txt /*ft-lifelines-syntax*
ft-lisp-syntax syntax.txt /*ft-lisp-syntax*
ft-lite-syntax syntax.txt /*ft-lite-syntax*
ft-log-syntax syntax.txt /*ft-log-syntax*
ft-lpc-syntax syntax.txt /*ft-lpc-syntax*
ft-lua-plugin filetype.txt /*ft-lua-plugin*
ft-lua-syntax syntax.txt /*ft-lua-syntax*
@@ -8137,6 +8160,7 @@ ge motion.txt /*ge*
gender-neutral helphelp.txt /*gender-neutral*
generic-function-call vim9.txt /*generic-function-call*
generic-function-declaration vim9.txt /*generic-function-declaration*
generic-function-example vim9.txt /*generic-function-example*
generic-functions vim9.txt /*generic-functions*
get() builtin.txt /*get()*
get()-blob builtin.txt /*get()-blob*
@@ -8312,6 +8336,7 @@ gui-w32-cmdargs gui_w32.txt /*gui-w32-cmdargs*
gui-w32-dialogs gui_w32.txt /*gui-w32-dialogs*
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*
gui-w32-various gui_w32.txt /*gui-w32-various*
gui-w32-windowid gui_w32.txt /*gui-w32-windowid*
gui-w32s os_win32.txt /*gui-w32s*
@@ -8472,6 +8497,7 @@ hl-MsgArea syntax.txt /*hl-MsgArea*
hl-NonText syntax.txt /*hl-NonText*
hl-Normal syntax.txt /*hl-Normal*
hl-Pmenu syntax.txt /*hl-Pmenu*
hl-PmenuBorder syntax.txt /*hl-PmenuBorder*
hl-PmenuExtra syntax.txt /*hl-PmenuExtra*
hl-PmenuExtraSel syntax.txt /*hl-PmenuExtraSel*
hl-PmenuKind syntax.txt /*hl-PmenuKind*
@@ -8480,6 +8506,7 @@ hl-PmenuMatch syntax.txt /*hl-PmenuMatch*
hl-PmenuMatchSel syntax.txt /*hl-PmenuMatchSel*
hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
hl-PmenuSel syntax.txt /*hl-PmenuSel*
hl-PmenuShadow syntax.txt /*hl-PmenuShadow*
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
hl-PopupNotification syntax.txt /*hl-PopupNotification*
hl-PopupSelected syntax.txt /*hl-PopupSelected*
@@ -8507,6 +8534,8 @@ hl-TabPanelFill syntax.txt /*hl-TabPanelFill*
hl-TabPanelSel syntax.txt /*hl-TabPanelSel*
hl-Terminal syntax.txt /*hl-Terminal*
hl-Title syntax.txt /*hl-Title*
hl-TitleBar syntax.txt /*hl-TitleBar*
hl-TitleBarNC syntax.txt /*hl-TitleBarNC*
hl-ToolbarButton gui.txt /*hl-ToolbarButton*
hl-ToolbarLine gui.txt /*hl-ToolbarLine*
hl-Tooltip syntax.txt /*hl-Tooltip*
@@ -9244,6 +9273,7 @@ multi-lang mlang.txt /*multi-lang*
multi-repeat repeat.txt /*multi-repeat*
multibyte mbyte.txt /*multibyte*
multibyte-ime mbyte.txt /*multibyte-ime*
multibyte-ime-compatibility mbyte.txt /*multibyte-ime-compatibility*
multibyte-input mbyte.txt /*multibyte-input*
multilang mlang.txt /*multilang*
multilang-menus mlang.txt /*multilang-menus*
@@ -9926,6 +9956,7 @@ postscript-print-util print.txt /*postscript-print-util*
postscript-printing print.txt /*postscript-printing*
pow() builtin.txt /*pow()*
ppwiz.vim syntax.txt /*ppwiz.vim*
preinserted() builtin.txt /*preinserted()*
press-enter message.txt /*press-enter*
press-return message.txt /*press-return*
prevcount-variable eval.txt /*prevcount-variable*
@@ -11094,8 +11125,12 @@ termdebug-example terminal.txt /*termdebug-example*
termdebug-frames terminal.txt /*termdebug-frames*
termdebug-mappings terminal.txt /*termdebug-mappings*
termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-remote terminal.txt /*termdebug-remote*
termdebug-remote-example terminal.txt /*termdebug-remote-example*
termdebug-remote-window terminal.txt /*termdebug-remote-window*
termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-substitute-path terminal.txt /*termdebug-substitute-path*
termdebug-timeout terminal.txt /*termdebug-timeout*
termdebug-variables terminal.txt /*termdebug-variables*
termdebug_contributing terminal.txt /*termdebug_contributing*
@@ -11276,6 +11311,7 @@ type-casting vim9.txt /*type-casting*
type-checking vim9.txt /*type-checking*
type-inference vim9.txt /*type-inference*
type-mistakes tips.txt /*type-mistakes*
type-parameter-naming vim9.txt /*type-parameter-naming*
type-variable-naming vim9.txt /*type-variable-naming*
typealias vim9class.txt /*typealias*
typename() builtin.txt /*typename()*
@@ -11894,6 +11930,7 @@ win32-quotes os_win32.txt /*win32-quotes*
win32-restore os_win32.txt /*win32-restore*
win32-startup os_win32.txt /*win32-startup*
win32-term os_win32.txt /*win32-term*
win32-term-colors os_win32.txt /*win32-term-colors*
win32-vimrun gui_w32.txt /*win32-vimrun*
win32-win3.1 os_win32.txt /*win32-win3.1*
win32-win95 os_win32.txt /*win32-win95*

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 9.1. Last change: 2025 Sep 02
*terminal.txt* For Vim version 9.1. Last change: 2025 Oct 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -44,6 +44,7 @@ If the result is "1" you have it.
Prompt mode |termdebug-prompt|
Mappings |termdebug-mappings|
Communication |termdebug-communication|
Remote Debugging |termdebug-remote|
Customizing |termdebug-customizing|
{only available when compiled with the |+terminal| feature}
@@ -1427,12 +1428,16 @@ gdb:
:Tbreak {position}
set a temporary breakpoint at the specified position
*:Clear* delete the breakpoint at the cursor position
*:ToggleBreak* set a breakpoint at the cursor position or delete all
breakpoints at the cursor position
*:Step* execute the gdb "step" command
*:Over* execute the gdb "next" command (`:Next` is a Vim command)
*:Until* execute the gdb "until" command
*:Finish* execute the gdb "finish" command
*:Continue* execute the gdb "continue" command
*:RunOrContinue* execute the gdb "continue" command if program is running,
otherwise run the program
*:Stop* interrupt the program
If 'mouse' is set the plugin adds a window toolbar with these entries:
@@ -1631,12 +1636,103 @@ interrupt the running program. But after using the MI command
communication channel.
Remote debugging ~
*termdebug-remote*
One of the main issues of remote debugging is the access to the debuggee's
source files. The plugin can profit from system and vim's networking
capabilities to workaround this.
*termdebug-remote-example*
The |termdebug-example| can be replicated by running the `gdb` debugger to
debug Vim on a remote Linux machine accessible via `ssh`.
- Build Vim as explained in the local example.
- If "socat" is not available in the remote machine 'terminal' mode will not
work properly. Fall back to |termdebug_use_prompt|: >
:let g:termdebug_config = {}
:let g:termdebug_config['use_prompt'] = v:true
- Specify the command line to run the remote `gdb` instance: >
:let g:termdebug_config['command'] = ['ssh', 'hostname', 'gdb']
< Explaining `ssh` is beyond the scope of this example, but notice the
command line can be greatly simplified by specifying the user, keys and
other options into the `$HOME/.ssh/config` file.
- Provide a hint for translating remote paths into |netrw| paths: >
:let g:termdebug_config['substitute_path'] = { '/': 'scp://hostname//' }
- Load the termdebug plugin and start debugging Vim: >
:packadd termdebug
:Termdebug vim
You now have the same three windows of the local example and can follow the
very same steps. The only difference is that the source windows displays a
netrw buffer instead of a local one.
*termdebug-substitute-path*
Use the `g:termdebug_config['substitute_path']` entry to map remote to local
files using the same strategy that gdb's `substitute-path` command uses.
For example:
- Use |netrw| to access files remoting via ssh: >
let g:termdebug_config['command'] = ['ssh', 'hostname', 'gdb']
let g:termdebug_config['substitute_path'] = { '/': 'scp://hostname//' }
< Note: that the key specifies the remote machine root path and the value
the local one.
- Use Windows' `UNC` paths to access `WSL2` sources: >
let g:termdebug_config['command'] = ['wsl', 'gdb']
let g:termdebug_config['substitute_path'] = {
\ '/': '\\wsl.localhost\Ubuntu-22.04\',
\ '/mnt/c/': 'C:/' }
< Note: that several mappings are required: one for each drive unit
and one for the linux filesystem (queried via `wslpath`).
In this mode any `ssh` or `wsl` command would be detected and a similar
command would be used to launch `socat` in a remote `tty` terminal session
and connect it to `gdb`.
If `socat` is not available a plain remote terminal would be used as
fallback.
The next session shows how to override this default behaviour.
*termdebug-remote-window*
In order to use another remote terminal client, set "remote_window" entry
in `g:termdebug_config` variable before invoking `:Termdebug`. For example:
- Debugging inside a docker container using "prompt" mode: >
let g:termdebug_config['use_prompt'] = v:true
let g:termdebug_config['command'] = ['docker', 'run', '-i',
\ '--rm', '--name', 'container-name', 'image-name', 'gdb']
let g:termdebug_config['remote_window'] =
\ ['docker', 'exec', '-ti', 'container-name'
\ ,'socat', '-dd', '-', 'PTY,raw,echo=0']
- Debugging inside a docker container using a "terminal buffer".
The container should be already running because unlike the previous
case for `terminal mode` "program" and "communication" ptys are created
before the gdb one: >
$ docker run -ti --rm --name container-name immage-name
< Then, launch the debugger: >
let g:termdebug_config['use_prompt'] = v:false " default
let g:termdebug_config['command'] =
\ ['docker', 'exec', '-ti', 'container-name', 'gdb']
let g:termdebug_config['remote_window'] =
\ ['docker', 'exec', '-ti', 'container-name'
\ ,'socat', '-dd', '-', 'PTY,raw,echo=0']
Note: "command" cannot use `-t` on |termdebug-prompt| mode because prompt
buffers cannot handle `tty` connections.
The "remote_window" command must use `-t` because otherwise it will lack
a `pty slave device` for gdb to connect.
Note: "socat" must be available in the remote machine on "terminal" mode.
Note: docker container sources can be accessible combining `volumes`
with mappings (see |termdebug-substitute-path|).
GDB command ~
*g:termdebugger*
To change the name of the gdb command, set "debugger" entry in
g:termdebug_config or the "g:termdebugger" variable before invoking
`:Termdebug`: >
let g:termdebug_config['command'] = "mygdb"
If there is no g:termdebug_config you can use: >
let g:termdebugger = "mygdb"
@@ -1644,6 +1740,7 @@ However, the latter form will be deprecated in future releases.
If the command needs an argument use a List: >
let g:termdebug_config['command'] = ['rr', 'replay', '--']
If there is no g:termdebug_config you can use: >
let g:termdebugger = ['rr', 'replay', '--']
@@ -1651,6 +1748,13 @@ Several arguments will be added to make gdb work well for the debugger.
If you want to modify them, add a function to filter the argument list: >
let g:termdebug_config['command_filter'] = MyDebugFilter
A "command_filter" scenario is solving escaping issues on remote debugging
over "ssh". For convenience a default filter is provided for escaping
whitespaces inside the arguments. It is automatically configured for "ssh",
but can be employed in other use cases like this: >
let g:termdebug_config['command_filter'] =
/ function('g:Termdebug_escape_whitespace')
If you do not want the arguments to be added, but you do need to set the
"pty", use a function to add the necessary arguments: >
let g:termdebug_config['command_add_args'] = MyAddArguments
@@ -1713,7 +1817,8 @@ than 99 will be displayed as "9+".
If you want to customize the breakpoint signs to show `>>` in the signcolumn: >
let g:termdebug_config['sign'] = '>>'
You can also specify individual signs for the first several breakpoints: >
let g:termdebug_config['signs'] = ['>1', '>2', '>3', '>4', '>5', '>6', '>7', '>8', '>9']
let g:termdebug_config['signs'] = ['>1', '>2', '>3', '>4', '>5',
\ '>6', '>7', '>8', '>9']
let g:termdebug_config['sign'] = '>>'
If you would like to use decimal (base 10) breakpoint signs: >
let g:termdebug_config['sign_decimal'] = 1

View File

@@ -1,4 +1,4 @@
*userfunc.txt* For Vim version 9.1. Last change: 2025 Aug 06
*userfunc.txt* For Vim version 9.1. Last change: 2025 Sep 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -393,8 +393,8 @@ is used as a method: >
==============================================================================
3. Cleaning up in a function ~
*:defer*
:defer {func}({args}) Call {func} when the current function is done.
*:defe* *:defer*
:defe[r] {func}({args}) Call {func} when the current function is done.
{args} are evaluated here.
Quite often a command in a function has a global effect, which must be undone

View File

@@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 9.1. Last change: 2025 Apr 10
*usr_05.txt* For Vim version 9.1. Last change: 2025 Sep 27
VIM USER MANUAL - by Bram Moolenaar
@@ -308,6 +308,7 @@ This switches on three very clever mechanisms:
*restore-cursor* *last-position-jump* >vim
augroup RestoreCursor
autocmd!
autocmd BufReadPost *

View File

@@ -1,4 +1,4 @@
*usr_10.txt* For Vim version 9.1. Last change: 2024 Nov 12
*usr_10.txt* For Vim version 9.1. Last change: 2025 Sep 15
VIM USER MANUAL - by Bram Moolenaar
@@ -339,6 +339,8 @@ then ":". For example, when you type "5:", you will get: >
Now you can type the command you want to use. It will use the range "."
(current line) until ".+4" (four lines down). Thus it spans five lines.
See also |:range|, for an overview of all possible ways to specify a range.
==============================================================================
*10.4* The global command

View File

@@ -1,4 +1,4 @@
*usr_40.txt* For Vim version 9.1. Last change: 2022 Jun 23
*usr_40.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM USER MANUAL - by Bram Moolenaar
@@ -597,7 +597,7 @@ EXECUTING AUTOCOMMANDS
It is possible to trigger an autocommand by pretending an event has occurred.
This is useful to have one autocommand trigger another one. Example: >
:autocmd BufReadPost *.new execute "doautocmd BufReadPost " . expand("<afile>:r")
:autocmd BufReadPost *.new execute "doautocmd BufReadPost " .. expand("<afile>:r")
This defines an autocommand that is triggered when a new file has been edited.
The file name must end in ".new". The ":execute" command uses expression

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 9.1. Last change: 2025 Aug 23
*usr_41.txt* For Vim version 9.1. Last change: 2025 Sep 26
VIM USER MANUAL - by Bram Moolenaar
@@ -1135,6 +1135,7 @@ Insert mode completion: *completion-functions*
complete_info() get current completion information
complete_match() get insert completion start match col and
trigger text
preinserted() check if text is inserted after cursor
pumvisible() check if the popup menu is displayed
pum_getpos() position and size of popup menu if visible

View File

@@ -1,4 +1,4 @@
*usr_52.txt* For Vim version 9.1. Last change: 2025 Mar 17
*usr_52.txt* For Vim version 9.1. Last change: 2025 Sep 27
VIM USER MANUAL - by Bram Moolenaar
@@ -347,7 +347,7 @@ Have a look at the package located at $VIMRUNTIME/pack/dist/opt/comment/
HIGHLIGHT YANK PLUGIN
Vim comes with the highlight-yank plugin, written in Vim9 script
|hlyank-install|, here is a simplified implementation: >vim
|hlyank-install|, here is a simplified implementation: >vim9
vim9script

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 9.1. Last change: 2025 Sep 02
*various.txt* For Vim version 9.1. Last change: 2025 Sep 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -531,6 +531,9 @@ T *+vreplace* |gR| and |gr|
*+vtp* on MS-Windows console: support for 'termguicolors'
N *+wayland* Unix only: support for the Wayland protocol.
N *+wayland_clipboard* Unix only: support for Wayland selections/clipboard.
N *+wayland_focus_steal*
Unix only: support for Wayland clipboard on
compositors without a data control protocol
T *+wildignore* 'wildignore' Always enabled since 9.0.0278
T *+wildmenu* 'wildmenu' Always enabled since 9.0.0279
T *+windows* more than one window; Always enabled since 8.0.1118.

View File

@@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2025 Sep 09
*version9.txt* For Vim version 9.1. Last change: 2025 Oct 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41621,6 +41621,7 @@ Platform specific~
- The Win32 GUI comes with better toolbar icons.
- Better fullscreen support for Haiku |os_haiku.txt|.
*new-other-9.2*
Other new features ~
------------------
@@ -41669,6 +41670,10 @@ Default values: ~
- the default value for 'showcmd' is always enabled when using non-compatible
mode (previously, it was off on UNIX systems) and consequently removed from
|defaults.vim|
- Improve the diff mode experience by updating the 'diffopt' default value to
"internal,filler,closeoff,indent-heuristic,inline:char".
- the 'ruler' option value is always enabled when using non-compatible mode
and removed from |defaults.vim|
Completion: ~
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
@@ -41697,7 +41702,9 @@ Options: ~
- new option values for 'fillchars':
"trunc" - configure truncation indicator, 'pummaxwidth'
"truncrl" - like "trunc" but in 'rl' mode, 'pummaxwidth'
"tpl_vert" - separators for the 'tabpanel'
"tpl_vert" - vertical separators for the 'tabpanel'
"foldinner" - character used inside the 'foldcolumn' for nested
fold levels
- 'grepformat' is now a |global-local| option.
- adjust for GTK3 dropping some mouse cursors 'mouseshape'
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
@@ -41705,6 +41712,11 @@ Options: ~
- 'rulerformat' now supports the |stl-%!| item
- use 'smoothscroll' logic for CTRL-F / CTRL-B for pagewise scrolling
and CTRL-D / CTRL-U for half-pagewise scrolling
- Setting 'nowrap' in a modeline could cause long lines to be hidden
off-screen. To make this visible, the listchars "extend" suboption is set
to ">" by default, indicating text that extends beyond the window width.
- 'guioptions': New value |'go-C'| to style the title/caption bar on Windows 11
(see also the below platform specific change).
Ex commands: ~
- allow to specify a priority when defining a new sign |:sign-define|
@@ -41730,6 +41742,19 @@ Functions: ~
- |chdir()| allows to optionally specify a scope argument
- |matchfuzzy()| and |matchfuzzypos()| use an improved fuzzy matching
algorithm (same as fzy).
- |sha256()| also accepts a |Blob| as argument.
- |listener_add()| allows to register un-buffered listeners, so that changes
are handled as soon as they happen.
Plugins~
- |zip| plugin works with PowerShell Core.
Platform specific ~
- MS-Winodws: Paths like "\Windows" and "/Windows" are now considered to be
absolute paths (to the current drive) and no longer relative.
- MS-Windows: The title bar follows the |hl-TitleBar| and |hl-TitleBarNC|
highlighting group |gui-w32-title-bar|.
- macOS: increase default scheduler priority to TASK_DEFAULT_APPLICATION.
Others: ~
- the regex engines match correctly case-insensitive multi-byte characters
@@ -41737,7 +41762,6 @@ Others: ~
- the putty terminal is detected using an |TermResponse| autocommand in
|defaults.vim| and Vim switches to a dark background
- improve the |vimtutor| and add a second chapter for more advanced tips
- |CTRL-C| always closes the active |popup-window|.
- the configure script will favor using GTK3 over GTK2 when auto-detecting the
gui toolkit
- |gv| works in operator pending mode and does not abort
@@ -41756,13 +41780,6 @@ Others: ~
Command-line.
- |min()|/|max()| can handle all comparable data types.
- Vim triggers the |TermResponseAll| autocommand for any terminal OSC value.
- Vim includes the $VIMRUNTIME/plugins/colorresp.vim which parses the terminal
OSC response and can trigger a |TermResponseAll| with the "background" or
"foreground" value.
Platform specific ~
- MS-Winodws: Paths like "\Windows" and "/Windows" are now considered to be
absolute paths (to the current drive) and no longer relative.
*added-9.2*
Added ~
@@ -41794,6 +41811,8 @@ Functions: ~
|matchstrlist()| all the matches of a pattern in a List of strings
|ngettext()| lookup single/plural message translation
|popup_setbuf()| switch to a different buffer in a popup
|preinserted()| whether preinserted text has been inserted during
completion (see 'completeopt')
|str2blob()| convert a List of strings into a blob
|test_null_tuple()| return a null tuple
|tuple2list()| turn a Tuple of items into a List
@@ -41819,13 +41838,17 @@ Highlighting: ~
|hl-ComplMatchIns| matched text of the currently inserted completion
|hl-DiffTextAdd| added text within a changed line
|hl-MsgArea| highlighting of the Command-line and messages area
|hl-PmenuBorder| Popup menu: highlighting of popup border characters
|hl-PmenuMatch| Popup menu: highlighting of matched text
|hl-PmenuMatchSel| Popup menu: highlighting of matched text in selected
line
|hl-PmenuShadow| Popup menu: highlighting of the popup shadow
|hl-PreInsert| highlighting for completion preinserted text
|hl-TabPanel| |tabpanel|: not active tab page label
|hl-TabPanelFill| |tabpanel|: filler space
|hl-TabPanelSel| |tabpanel|: active tab page label
|hl-TitleBarNC| Configure the inactive title/bar on MS-Windows 11
|hl-TitleBar| Configure the active title/bar on MS-Windows 11
Commands: ~
@@ -41859,6 +41882,7 @@ Options: ~
'lhistory' Size of the location list stack |quickfix-stack|
'maxsearchcount' Set the maximum number for search-stat |shm-S|
'messagesopt' configure |:messages| and |hit-enter| prompt
'pumborder' define popup border and decorations
'pummaxwidth' maximum width for the completion popup menu
'showtabpanel' When to show the |tabpanel|
'tabclose' Which tab page to focus after closing a tab page

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Sep 08
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1378,10 +1378,10 @@ support is verified as part of the CI test suite.
System | Status:~
--------------------------------+-----------------------------------------
Amiga (OS4, AROS & MorphOS): | still supported (?)
Amiga (OS4, AROS & MorphOS): | supported
Haiku: | supported
Linux: | fully supported (on maintained versions)
Mac OS: | fully supported up until v10.6 (?)
macOS: | fully supported up until v10.6 (?)
MS-Windows 7, 8, 10, 11: | fully supported
OpenVMS: | supported
QNX: | still supported (?)

View File

@@ -1,4 +1,4 @@
.TH VIM 1 "27 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2025"
.TH VIM 1 "18 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2025"
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim \[em] <20><><EFBFBD> Vi IMproved (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vi), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
@@ -568,6 +568,14 @@ vim "+set si" main.c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"\-\-remote" <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> {<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim,
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD> {<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "/",
"./" <20><><EFBFBD> "../", <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.TP
\-\-clientserver {<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "soket" <20><><EFBFBD> "x11". <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> soketserver <20> X11.
.TP
\-\-socketid {id}
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GTK. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GtkPlug <20><><EFBFBD>

View File

@@ -1,4 +1,4 @@
.TH VIM 1 "27 июня 2025"
.TH VIM 1 "18 августа 2025"
.SH НАЗНАЧЕНИЕ
Программа Vim \[em] это Vi IMproved (Улучшенный Vi), текстовый редактор для
программистов.
@@ -568,6 +568,14 @@ vim "+set si" main.c
Использовать указанное {название} в качестве наименования сервера. Если аргумент
"\-\-remote" не указан, то {название} присваивается данной копии редактора Vim,
в противном случае указывает на сервер, к которому следует подключиться.
Если используется сервер сокетов, и если {название} начинается с символа "/",
"./" или "../", она рассматривается как абсолютный или относительный маршрут к
сокету
.TP
\-\-clientserver {движок}
Использовать соответствующий {движок} в качестве серверной части для функционала
клиент-сервер. Допустимыми значениями является "soket" или "x11". Доступно
только при компиляции с активированными компонентами soketserver и X11.
.TP
\-\-socketid {id}
Только для графического интерфейса GTK. Будет использован механизм GtkPlug для

View File

@@ -1,4 +1,4 @@
*vim9.txt* For Vim version 9.1. Last change: 2025 Aug 27
*vim9.txt* For Vim version 9.1. Last change: 2025 Oct 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -18,9 +18,29 @@ features in Vim9 script.
5. Generic functions |generic-functions|
6. Namespace, Import and Export |vim9script|
7. Classes and interfaces |vim9-classes|
8. Rationale |vim9-rationale|
------------------------------------------------------------------------------
NOTE: In this vim9.txt help file, the Vim9 script code blocks beginning
with `vim9script` are Vim9 script syntax highlighted. Also, they are
sourceable, meaning you can run them to see what they output. To
source them, use `:'<,'>source` (see |:source-range|), which is done
by visually selecting the line(s) with |V| and typing `:so`.
For example, try it on the following Vim9 script: >vim9
vim9script
echowindow "Welcome to Vim9 script!"
<
There are also code examples that should not be sourced - they
explain concepts that don't require a sourceable example. Such code
blocks appear in generic code syntax highlighting, like this: >
def ThisFunction() # script-local
def g:ThatFunction() # global
export def Function() # for import and import autoload
==============================================================================
1. What is Vim9 script? *Vim9-script*
@@ -1903,126 +1923,240 @@ A generic function allows using the same function with different type
arguments, while retaining type checking for arguments and the return value.
This provides type safety and code reusability.
Declaration~
*generic-function-declaration*
*E1553* *E1554* *E1559*
The type parameters for a generic function are declared in angle brackets "<"
and ">" directly after the function name. Multiple type names are separated
by commas: >
*E1553* *E1554*
The type variables for a generic function are declared as its type parameters
within angle brackets ("<" and ">"), directly after the function name.
Multiple type parameters are separated by commas: >
def[!] {funcname}<{type} [, {types}]>([arguments])[: {return-type}]
{function body}
enddef
<
These type parameters can then be used like any other type within the function
signature and body. Example: >
def[!] {funcname}<{type} [, {types}]>([arguments])[: {return-type}]
{function body}
enddef
< *generic-function-example*
These type parameters may then be used, like any other type, within the
function signature and its body. The following example combines two lists
into a list of tuples: >vim9
def MyFunc<T, A, B>(param1: T): T
var f: A
var x = param1
return x
enddef
vim9script
def Zip<T, U>(first: list<T>, second: list<U>): list<tuple<T, U>>
const LEN: number = ([first->len(), second->len()])->min()
final result: list<tuple<T, U>> = []
for i in range(LEN)
result->add((first[i], second[i]))
endfor
return result
enddef
var n: list<number> = [61, 62, 63]
var s: list<string> = ['a', 'b', 'c']
echo $"Zip example #1: {Zip<number, string>(n, s)}"
echo $"Zip example #2: {Zip<string, number>(s, n)}"
<
*type-variable-naming* *E1552*
The convention is to use a single uppercase letter for a type variable (e.g.,
T, A, X), although longer names are allowed. The name must start with an
uppercase letter.
*type-parameter-naming*
As in the preceding example, the convention is to use a single capital letter
for a name (e.g., T, U, A, etc.). Although they may comprise more than one
letter, names must start with a capital letter. In this example, "Ok" is
valid whereas "n" is not: >vim9
vim9script
def MyFail<Ok, n>(): void
enddef
# E1552: Type variable name must start with an uppercase letter: n...
<
*E1558* *E1560*
A function must be declared and used either as generic or as a regular
function - but not both.
A function must be declared and used either as a generic function or as a
regular function, but not both. The following Vim9 scripts demonstrate these
errors: >vim9
vim9script
My1558<number>()
# Vim(eval):E1558: Unknown generic function: My1558
< >vim9
vim9script
def My1560(): void
enddef
My1560<string>()
# Vim(echo):E1560: Not a generic function: My1560
<
*E1561*
A type variable name must not conflict with other defined names, such as class
names, type aliases, enum names, function names or other type variable names.
Type parameter names must not clash with other identifiers: >vim9
vim9script
def My1561<D, E, D>(): D
enddef
# E1561: Duplicate type variable name: D
vim9script
enum E
Yes, No
endenum
def My1041<E>(): E
enddef
# E0141: Redefining script item "E"
<
Calling a generic function~
*generic-function-call*
To call a generic function, specify the concrete types in "<" and ">"
between the function name and the argument list: >
MyFunc<number, string, list<number>>()
MyFunc<number, string, list<number>>()
<
*E1555* *E1556* *E1557*
The number of concrete types provided when calling a generic function must
match the number of type variables in the function. An empty type list is not
allowed. Any Vim9 type (|vim9-types|) can be used as a concrete type in a
generic function.
NOTE: There are several working examples in this section, which may
be sourced, including |generic-function-example|.
Spaces are not allowed between the function name and "<", or between ">" and
the opening "(".
*E1555* *E1556* *E1557* *E1559*
The number of passed type arguments to the function must match the number
of its declared type parameters. An empty type list is not allowed.
Examples: >vim9
vim9script
def My1555<>(): void
enddef
# E1555: Empty type list specified for generic function ...
< >vim9
vim9script
def My1556<T>(): void
enddef
My1556<bool, bool>()
# E1556: Too many types specified for generic function ...
< >vim9
vim9script
def My1557<T, U>(): void
enddef
My1557<bool>()
# E1557: Not enough types specified for generic function ...
< >vim9
vim9script
def My1559<T>(): T
enddef
My1559()
# Vim(eval):E1559: Type arguments missing for generic function ...
<
Any Vim9 type (|vim9-types|) can be used as a concrete type in a generic
function.
Spaces are not allowed:
- Between the function name and "<" (|E1068|)
- Between ">" and the opening "(" (|E1068|), or
- Within the "<" and ">", except where required after the comma separating
the types (|E1202|).
A generic function can be exported and imported like a regular function.
See |:export| and |:import|.
A generic function can be defined inside another regular or generic function.
Referencing type variables in generic types~
Instead of concrete types, type variables can be used with generic types.
This is useful for complex data structures like lists of dictionaries or
dictionaries of lists. Example: >
vim9script
def Flatten<T>(x: list<list<T>>): list<T>
var result: list<T> = []
for inner in x
result += inner
endfor
return result
enddef
echo Flatten<number>([[1, 2], [3]])
Example: >vim9
vim9script
def Outer(): void
# Returns either the first item of a list or a default value
def FirstOrDefault<T, U>(lst: list<T>, default: U): any
return lst->len() > 0 ? lst[0] : default
enddef
echo FirstOrDefault<string, bool>(['B', 'C'], false) # echos B
echo FirstOrDefault<number, number>([], 42) # echos 42
enddef
Outer()
<
Using a type variable as a type argument ~
A type variable may also be passed as a type argument. For example: >vim9
vim9script
# T is declared as a type parameter
# It is used for the 'value' parameter and the return type
def Id<T>(value: T): T
return value
enddef
# U is declared as a type parameter
# It is used for the 'value' parameter and the return type
def CallId<U>(value: U): U
# U is a type variable passed/used as a type argument
return Id<U>(value)
enddef
echo CallId<string>('I am') .. ' ' .. CallId<number>(42)
This is useful for complex data structures like dictionaries of lists or,
as in the following example, lists of dictionaries: >vim9
vim9script
def Flatten<T>(x: list<list<T>>): list<T>
final result: list<T> = []
for inner in x
result->extend(inner)
endfor
return result
enddef
const ENGLISH: list<dict<string>> = [{1: 'one'}, {2: 'two'}]
const MANDARIN: list<dict<string>> = [{1: '壹'}, {2: '贰'}]
const ARABIC_N: list<dict<number>> = [{1: 1}, {2: 2}]
echo Flatten<dict<string>>([ENGLISH, MANDARIN])
echo Flatten<dict<any>>([ENGLISH, ARABIC_N])
<
In "Flatten<T>", "T" is a declared type parameter. Everywhere else in
the function, "T" is a type variable referencing that type parameter.
Generic class method~
A Vim9 class method can be a generic function: >
A Vim9 class method can be a generic function: >vim9
class A
def Foo<X, Y>()
enddef
endclass
var a = A.new()
a.Foo<number, string>()
vim9script
class Config
var settings: dict<any>
def Get<T>(key: string): T
return this.settings[key]
enddef
endclass
var c: Config = Config.new({timeout: 30, debug: true})
echo c.Get<number>('timeout')
echo c.Get<bool>('debug')
<
*E1432* *E1433* *E1434*
A generic class method in a base class can be overridden by a generic method
in a child class. The number of type variables must match between both
in a child class. The number of type variables must match between both
methods. A concrete class method cannot be overridden by a generic method,
and vice versa.
Generic function reference~
A function reference (|Funcref|) can be a generic function. This allows for
creating factories of functions that operate on specific types: >
creating factories of functions that operate on specific types: >vim9
vim9script
def MakeEcho<T>(): func(T): T
return (x: T): T => x
enddef
var EchoNumber = MakeEcho<number>()
echo EchoNumber(123)
var EchoString = MakeEcho<string>()
echo EchoString('abc')
vim9script
# Match a specified character in a string or the decimal value of the
# character in a list. Note: '*' is decimal 42 (U+002A)
var c: string = "*"
var char_dec: tuple<string, string> = (c, c->char2nr()->string())
def Matcher<T>(pattern: string): func(T): bool
return (value: T): bool => match(value, pattern) >= 0
enddef
var StringMatch = Matcher<string>(char_dec[0])
echo "*+"->StringMatch() # true (has *)
echo ",-"->StringMatch() # false
var ListMatch = Matcher<list<number>>(char_dec[1])
echo [42, 43]->ListMatch() # true (has 42)
echo [44, 45]->ListMatch() # false
<
Compiling and Disassembling Generic functions~
The |:defcompile| command can be used to compile a generic function with a
specific list of concrete types: >
defcompile MyFunc<number, list<number>, dict<string>>
defcompile MyFunc<number, list<number>, dict<string>>
<
The |:disassemble| command can be used to list the instructions generated for
a generic function: >
disassemble MyFunc<string, dict<string>>
disassemble MyFunc<number, list<blob>>
disassemble MyFunc<string, dict<string>>
disassemble MyFunc<number, list<blob>>
<
Limitations and Future Work~
Currently, Vim does not support:
@@ -2083,26 +2217,41 @@ original value to get the same effect. The order of flags may change.
In the |vimrc| file sourced on startup this does not happen.
*vim9-mix*
There is one way to use both legacy and Vim9 syntax in one script file: >
" comments may go here
There is one way to use both legacy and Vim9 syntax in one script file: >vim9
" _legacy Vim script_ comments here
if !has('vim9script')
" legacy script commands go here
" _legacy Vim script_ comments/commands here
finish
endif
vim9script
# Vim9 script commands go here
# _Vim9 script_ commands/commands from here onwards
echowindow $"has('vim9script') == {has('vim9script')}"
<
This allows for writing a script that takes advantage of the Vim9 script
syntax if possible, but will also work on a Vim version without it.
syntax if possible, and prevents the vim9script command from throwing an
error if used in a version of Vim without 'vim9script'.
Note that Vim9 syntax changed before Vim 9 so that scripts using the current
syntax (such as "import from" instead of "import") might throw errors.
To prevent these, a safer check could be for |v:version| >= 900 instead.
To prevent these, a safer check may be |v:version| >= 900 instead (because
"has('vim9script')" will return `v:true` back to Vim 8.2 with patch 3965).
Sometimes it is prudent to cut off even later. Vim9 script's feature set
continues to grow so, for example, if tuples are used (introduced in Vim 9.1
patch 1232), a better condition is: >vim9
This can only work in two ways:
1. The "if" statement evaluates to false, the commands up to `endif` are
skipped and `vim9script` is then the first command actually executed.
2. The "if" statement evaluates to true, the commands up to `endif` are
executed and `finish` bails out before reaching `vim9script`.
if !has('patch-9.1.1232')
echowindow $"Fail: Vim does not have patch 9.1.1232"
finish
endif
vim9script
echowindow $"Pass: version {v:versionlong}. Continuing ..."
<
Whichever vim-mix condition is used, it only works in one of two ways:
1. The "if" statement evaluates to false, the commands up to `endif` are
skipped and `vim9script` is then the first command actually executed.
2. The "if" statement evaluates to true, the commands up to `endif` are
executed and `finish` bails out before reaching `vim9script`.
Export ~
@@ -2127,13 +2276,13 @@ interfaces and enums can be exported.
Import ~
*:import* *:imp* *E1094* *E1047* *E1262*
*E1048* *E1049* *E1053* *E1071* *E1088* *E1236*
The exported items can be imported in another script. The import syntax has
two forms. The simple form: >
The exported items can be imported in another script. The import syntax has
two forms. The simple form: >
import {filename}
<
Where {filename} is an expression that must evaluate to a string. In this
form the filename should end in ".vim" and the portion before ".vim" will
become the script local name of the namespace. For example: >
become the script local name of the namespace. For example: >
import "myscript.vim"
<
This makes each exported item in "myscript.vim" available as "myscript.item".
@@ -2209,7 +2358,7 @@ Note that this does not work for variables, only for functions.
*import-legacy* *legacy-import*
`:import` can also be used in legacy Vim script. The imported namespace still
becomes script-local, even when the "s:" prefix is not given. For example: >
becomes script-local, even when the "s:" prefix is not given. For example: >
import "myfile.vim"
call s:myfile.MyFunc()
@@ -2224,8 +2373,8 @@ However, the namespace cannot be resolved on its own: >
<
This also affects the use of |<SID>| in the legacy mapping context. Since
|<SID>| is only a valid prefix for a function and NOT for a namespace, you
cannot use it to scope a function in a script local namespace. Instead of
prefixing the function with |<SID>| you should use|<ScriptCmd>|. For example:
cannot use it to scope a function in a script local namespace. Instead of
prefixing the function with |<SID>| you should use |<ScriptCmd>|. For example:
>
noremap ,a <ScriptCmd>:call s:that.OtherFunc()<CR>
<
@@ -2243,43 +2392,47 @@ Importing an autoload script ~
For optimal startup speed, loading scripts should be postponed until they are
actually needed. Using the autoload mechanism is recommended:
*E1264*
1. In the plugin define user commands, functions and/or mappings that refer to
items imported from an autoload script. >
1. In the plugin, define user commands, functions and/or mappings
referring to items imported from an autoload script. >
import autoload 'for/search.vim'
command -nargs=1 SearchForStuff search.Stuff(<f-args>)
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen.
The "SearchForStuff" command is now available to the user.
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely
chosen. The "SearchForStuff" command is now available to the user.
The "autoload" argument to `:import` means that the script is not loaded
until one of the items is actually used. The script will be found under
the "autoload" directory in 'runtimepath' instead of the "import"
directory. Alternatively a relative or absolute name can be used, see
below.
The "autoload" argument to `:import` means that the script is not
loaded until one of the items is actually used. The script will be
found under the "autoload" directory in 'runtimepath' instead of the
"import" directory. Alternatively, either a relative or absolute
name can be used - see below.
2. In the autoload script put the bulk of the code. >
2. In the autoload script put the bulk of the code. >
vim9script
export def Stuff(arg: string)
export def Stuff(arg: string): void
...
< This goes in .../autoload/for/search.vim.
< This goes in .../autoload/for/search.vim.
Putting the "search.vim" script under the "/autoload/for/" directory has
the effect that "for#search#" will be prefixed to every exported item. The
prefix is obtained from the file name, as you would to manually in a
legacy autoload script. Thus the exported function can be found with
"for#search#Stuff", but you would normally use `import autoload` and not
use the prefix (which has the side effect of loading the autoload script
when compiling a function that encounters this name).
Putting the "search.vim" script under the "/autoload/for/" directory
has the effect that "for#search#" will be prefixed to every exported
item. The prefix is obtained from the file name, just as you would
add it manually in a legacy autoload script. Thus the exported
function can be found with "for#search#Stuff", but you would normally
use `import autoload` and not use the prefix (which has the side effect
of loading the autoload script when compiling a function that
encounters this name).
You can split up the functionality and import other scripts from the
autoload script as you like. This way you can share code between plugins.
You can split up the functionality and import other scripts from the
autoload script as you like. This way you can share code between
plugins.
Searching for the autoload script in all entries in 'runtimepath' can be a bit
slow. If the plugin knows where the script is located, quite often a relative
path can be used. This avoids the search and should be quite a bit faster.
Another advantage is that the script name does not need to be unique. An
absolute path is also possible. Examples: >
Another advantage is that the script name does not need to be unique. Also,
an absolute path is possible. Examples: >
import autoload '../lib/implement.vim'
import autoload MyScriptsDir .. '/lib/implement.vim'
@@ -2316,14 +2469,14 @@ Or: >
7. Classes and interfaces *vim9-classes*
In legacy script a Dictionary could be used as a kind-of object, by adding
In legacy Vim script, a Dictionary could be used as a kind-of object by adding
members that are functions. However, this is quite inefficient and requires
the writer to do the work of making sure all the objects have the right
members. See |Dictionary-function|.
In |Vim9| script you can have classes, objects and interfaces like in most
popular object-oriented programming languages. Since this is a lot of
functionality it is located in a separate help file: |vim9class.txt|.
In |Vim9| script you can have classes, objects, interfaces, and enums like
in most popular object-oriented programming languages. Since this is a lot
of functionality, it is located in a separate help file: |vim9class.txt|.
==============================================================================
@@ -2345,7 +2498,7 @@ which allows for a function with different semantics. Most things still work
as before, but some parts do not. A new way to define a function was
considered the best way to separate the legacy style code from Vim9 style code.
Using "def" to define a function comes from Python. Other languages use
Using "def" to define a function comes from Python. Other languages use
"function" which clashes with legacy Vim script.
@@ -2360,11 +2513,19 @@ arguments and decide what kind of addition to do. And when the type is
dictionary throw an error. If the types are known to be numbers then an "add
number" instruction can be used, which is faster. The error can be given at
compile time, no error handling is needed at runtime, since adding two numbers
cannot fail.
almost never fails.
The syntax for types, using <type> for compound types, is similar to Java. It
is easy to understand and widely used. The type names are what were used in
Vim before, with some additions such as "void" and "bool".
NOTE: As a tangential point, the exception is integer overflow, where the
result exceeds the maximum integer value. For example, adding to a 64-bit
signed integer where the result is greater than 2^63: >vim9
vim9script
echo 9223372036854775807 + 1 # -9223372036854775808
echo 2->pow(63)->float2nr() + 1 # -9223372036854775808
<
The syntax for types, using <type> for compound types, is similar to Java.
It is easy to understand and widely used. The type names are what were used
in Vim before, with some additions such as "void" and "bool".
Removing clutter and weirdness ~
@@ -2475,11 +2636,11 @@ This is how we put types in a declaration: >
def Func(arg1: number, arg2: string): bool
Two alternatives were considered:
1. Put the type before the name, like Dart: >
1. Put the type before the name, like Dart: >
var list<string> mylist
final list<string> mylist = ['foo']
def Func(number arg1, string arg2) bool
2. Put the type after the variable name, but do not use a colon, like Go: >
< 2. Put the type after the variable name, but do not use a colon, like Go: >
var mylist list<string>
final mylist list<string> = ['foo']
def Func(arg1 number, arg2 string) bool
@@ -2519,17 +2680,21 @@ functions return these values, and changing that causes more problems than it
solves. After using this for a while it turned out to work well.
If you have any type of value and want to use it as a boolean, use the `!!`
operator:
true: `!!'text'` `!![99]` `!!{'x': 1}` `!!99`
false: `!!''` `!![]` `!!{}`
operator (see |expr-!|): >vim9
vim9script
# The following are all true:
echo [!!'text', !![1], !!{'x': 1}, !!1, !!1.1]
# And these are all false:
echo [!!'', !![], !!{}, !!0, !!0.0]
<
From a language like JavaScript we have this handy construct: >
GetName() || 'unknown'
However, this conflicts with only allowing a boolean for a condition.
Therefore the "??" operator was added: >
GetName() ?? 'unknown'
Here you can explicitly express your intention to use the value as-is and not
result in a boolean. This is called the |falsy-operator|.
result in a boolean. This is called the |falsy-operator|.
Import and Export ~
@@ -2554,9 +2719,9 @@ that works like one would expect:
not needed.
- The Vim-specific use of "s:" to make things script-local can be dropped.
When sourcing a Vim9 script (from a Vim9 or legacy script), only the items
defined globally can be used, not the exported items. Alternatives
considered:
When sourcing a Vim9 script (from either a Vim9 script or legacy Vim script),
only the items defined globally can be used, not the exported items.
Alternatives considered:
- All the exported items become available as script-local items. This makes
it uncontrollable what items get defined and likely soon leads to trouble.
- Use the exported items and make them global. Disadvantage is that it's then
@@ -2607,8 +2772,8 @@ and channels. We can try to make this easier somehow.
Using an external tool also has disadvantages. An alternative is to convert
the tool into Vim script. For that to be possible without too much
translation, and keeping the code fast at the same time, the constructs of the
tool need to be supported. Since most languages support classes the lack of
support for classes in Vim is then a problem.
tool need to be supported. Since Vim9 script now includes support for
classes, objects, interfaces, and enums, that is increasingly feasible.

View File

@@ -1,4 +1,4 @@
*wayland.txt* For Vim version 9.1. Last change: 2025 Sep 02
*wayland.txt* For Vim version 9.1. Last change: 2025 Sep 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -56,7 +56,7 @@ protocols, for accessing the current Wayland selection. These are the best
case scenario protocols, see |wayland-focus-steal|. Selection in this case
essentially means the "clipboard." You can check if your Wayland compositor
supports either of these protocols by running the wayland-info command, which
should be bunded with libwayland on your system: >
should be bundled with libwayland on your system: >
wayland-info | grep -E '(ext_data_control|zwlr_data_control)'
<If grep finds a match, then you have either or both protocols on your system.
If you don't get any match, then please see |wayland-focus-steal| for more
@@ -105,7 +105,8 @@ To solve this problem, Vim implements a way of gaining focus in order to
access the clipboard, by creating a temporary transparent top-level surface.
This is by default disabled and can be enabled via the 'wlsteal' option.
Moreover, a seat that has a keyboard is also required, see 'wlseat', and the
xdg-shell protocol must be available.
xdg-shell protocol must be available. Additionally, Vim must be compiled with
the |+wayland_focus_steal| feature.
Note that this method can have several side effects from the result of focus
stealing. For example, if you have a taskbar that shows currently opened apps

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
" Vim filetype plugin
" Language: codeowners
" Maintainer: Jon Parise <jon@indelible.org>
" Last Change: 2025 Sep 14
"
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setl comments=:# commentstring=#\ %s
setl formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = 'setl com< cms< fo<'

View File

@@ -2,9 +2,7 @@
" Language: HTML
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp
" Last Change: 2024 Jan 14
" 2024 May 24 update 'commentstring' option
" 2025 May 10 add expression folding #17141
" Last Change: 2025 Sep 12
if exists("b:did_ftplugin")
finish
@@ -18,7 +16,12 @@ setlocal matchpairs+=<:>
setlocal commentstring=<!--\ %s\ -->
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
let b:undo_ftplugin = "setlocal comments< commentstring< matchpairs<"
if exists('b:undo_ftplugin')
" no whitespace before |, handle possible :unmap at end of current value
let b:undo_ftplugin ..= "| setlocal comments< commentstring< matchpairs<"
else
let b:undo_ftplugin = "setlocal comments< commentstring< matchpairs<"
endif
if get(g:, "ft_html_autocomment", 0)
setlocal formatoptions-=t formatoptions+=croql

View File

@@ -0,0 +1,25 @@
" Vim filetype plugin
" Language: KerML
" Author: Daumantas Kavolis <daumantas.kavolis@sensmetry.com>
" Last Change: 2025-10-06
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
" Set 'comments' to format dashed and starred lists in comments,
" include /*...*/ in 'comments' for formatting even if it technically
" is not
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,sO:*\ *,mO:*\ \ ,exO:*/,sr://*,mb:*,ex:*/,sr:/*,mb:*,ex:*/,:///,://
setlocal commentstring=//\ %s
" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o"
setlocal formatoptions-=t
setlocal formatoptions+=croql
let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<'

View File

@@ -2,13 +2,15 @@
" Language: Pkl
" Maintainer: Riley Bruins <ribru17@gmail.com>
" Last Change: 2025 Jul 14
" 2025 Oct 03 by Vim Project Add foldmethod #18274
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
setlocal commentstring=//\ %s
setlocal foldmethod=syntax
let b:undo_ftplugin = 'setl com< cms<'
let b:undo_ftplugin = 'setl com< cms< fdm<'

View File

@@ -0,0 +1,12 @@
" Vim filetype plugin
" Language: SysML
" Author: Daumantas Kavolis <daumantas.kavolis@sensmetry.com>
" Last Change: 2025-10-03
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Behaves mostly just like KerML, only differs by keywords
runtime! ftplugin/kerml.vim

View File

@@ -218,3 +218,8 @@ endif
set path=.,,
set clipboard=unnamed,unnamedplus
" END_INDENT
" START_INDENT
registers +
echo 'text'
" END_INDENT

View File

@@ -218,3 +218,8 @@ endif
set path=.,,
set clipboard=unnamed,unnamedplus
" END_INDENT
" START_INDENT
registers +
echo 'text'
" END_INDENT

View File

@@ -782,3 +782,14 @@ this.value = value
enddef
endenum
# END_INDENT
# START_INDENT
def ToggleBoolOpt(opt: string)
exe $"&{opt} = !&{opt}"
$"&{opt}"
->eval()
->( (v) => v ? "ON" : "OFF" )()
->printf($"{opt} %s")
->popup_notification({})
enddef
# END_INDENT

View File

@@ -782,3 +782,14 @@ enum Digits
enddef
endenum
# END_INDENT
# START_INDENT
def ToggleBoolOpt(opt: string)
exe $"&{opt} = !&{opt}"
$"&{opt}"
->eval()
->( (v) => v ? "ON" : "OFF" )()
->printf($"{opt} %s")
->popup_notification({})
enddef
# END_INDENT

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Sep 02
" Last Change: 2025 Oct 07
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" If there already is an option window, jump to that one.
@@ -373,7 +373,7 @@ call <SID>AddOption("sidescrolloff", gettext("minimal number of columns to keep
call append("$", " \tset siso=" . &siso)
call <SID>AddOption("display", gettext("include \"lastline\" to show the last line even if it doesn't fit\ninclude \"uhex\" to show unprintable characters as a hex number"))
call <SID>OptionG("dy", &dy)
call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds, diffs, buffer text, filler lines and truncation in the completion menu"))
call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds, diffs,\nbuffer text, filler lines and truncation in the completion menu"))
call <SID>OptionG("fcs", &fcs)
call <SID>AddOption("cmdheight", gettext("number of lines used for the command-line"))
call append("$", " \tset ch=" . &ch)
@@ -689,7 +689,7 @@ if has("gui")
call append("$", " \tset ghr=" . &ghr)
endif
if has("gui_gtk") || has("gui_win32")
call <SID>AddOption("guiligatures", gettext("list of ASCII characters that can be combined into complex shapes"))
call <SID>AddOption("guiligatures", gettext("list of ASCII characters that can be combined into complex\nshapes"))
call <SID>OptionG("gli", &gli)
endif
if has("directx")
@@ -699,7 +699,7 @@ if has("gui")
call <SID>AddOption("guipty", gettext("use a pseudo-tty for I/O to external commands"))
call <SID>BinOptionG("guipty", &guipty)
if has("browse")
call <SID>AddOption("browsedir", gettext("\"last\", \"buffer\" or \"current\": which directory used for the file browser"))
call <SID>AddOption("browsedir", gettext("\"last\", \"buffer\" or \"current\": which directory used for\nthe file browser"))
call <SID>OptionG("bsdir", &bsdir)
endif
if has("multi_lang")
@@ -724,7 +724,7 @@ if has("gui")
call <SID>BinOptionG("beval", &beval)
endif
if has("balloon_eval_term")
call <SID>AddOption("balloonevalterm", gettext("use balloon evaluation in the terminal"))
call <SID>AddOption("balloonevalterm", gettext(" \nuse balloon evaluation in the terminal"))
call <SID>BinOptionG("bevalterm", &beval)
endif
if has("eval")
@@ -841,7 +841,7 @@ if has('wayland')
call <SID>AddOption("wlseat", gettext("Wayland seat to use"))
call <SID>OptionG("wse", &wse)
endif
if has("wayland_clipboard")
if has("wayland_focus_steal")
call <SID>AddOption("wlsteal", gettext("Enable wayland focus stealing functionality in order to access the clipboard"))
call <SID>BinOptionG("wst", &wst)
endif
@@ -895,18 +895,19 @@ if has("insert_expand")
call append("$", "\t" .. s:local_to_buffer)
call <SID>OptionL("cpt")
call <SID>AddOption("autocomplete", gettext("automatic completion in insert mode"))
call append("$", "\t" .. s:global_or_local)
call <SID>BinOptionG("ac", &ac)
call <SID>AddOption("autocompletetimeout", gettext("initial decay timeout for 'autocomplete' algorithm"))
call <SID>AddOption("autocompletetimeout", gettext(" \ninitial decay timeout for 'autocomplete' algorithm"))
call append("$", " \tset act=" . &act)
call <SID>AddOption("completetimeout", gettext("initial decay timeout for CTRL-N and CTRL-P completion"))
call <SID>AddOption("completetimeout", gettext(" \ninitial decay timeout for CTRL-N and CTRL-P completion"))
call append("$", " \tset cto=" . &cto)
call <SID>AddOption("autocompletedelay", gettext("delay in msec before menu appears after typing"))
call <SID>AddOption("autocompletedelay", gettext(" \ndelay in msec before menu appears after typing"))
call append("$", " \tset acl=" . &acl)
call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion"))
call <SID>OptionL("cot")
call <SID>AddOption("completeitemalign", gettext("popup menu item align order"))
call <SID>AddOption("completeitemalign", gettext(" \npopup menu item align order"))
call <SID>OptionG("cia", &cia)
call <SID>AddOption("completefuzzycollect", gettext("use fuzzy collection for specific completion modes"))
call <SID>AddOption("completefuzzycollect", gettext(" \nuse fuzzy collection for specific completion modes"))
call <SID>OptionL("cfc")
if exists("+completepopup")
call <SID>AddOption("completepopup", gettext("options for the Insert mode completion info popup"))
@@ -918,6 +919,8 @@ if has("insert_expand")
call <SID>OptionG("pw", &pw)
call <SID>AddOption("pummaxwidth", gettext("maximum width of the popup menu"))
call <SID>OptionG("pmw", &pmw)
call <SID>AddOption("pumborder", gettext("popup border style"))
call <SID>OptionG("pb", &pb)
call <SID>AddOption("completefunc", gettext("user defined function for Insert mode completion"))
call append("$", "\t" .. s:local_to_buffer)
call <SID>OptionL("cfu")
@@ -1284,7 +1287,7 @@ if has("quickfix")
call <SID>AddOption("makeencoding", gettext("encoding of the \":make\" and \":grep\" output"))
call append("$", "\t" .. s:global_or_local)
call <SID>OptionG("menc", &menc)
call <SID>AddOption("quickfixtextfunc", gettext("function to display text in the quickfix window"))
call <SID>AddOption("quickfixtextfunc", gettext(" \nfunction to display text in the quickfix window"))
call <SID>OptionG("qftf", &qftf)
endif
@@ -1486,7 +1489,7 @@ if exists("&pythonthreedll")
call <SID>OptionG("pythonthreedll", &pythonthreedll)
endif
if exists("&pythonthreehome")
call <SID>AddOption("pythonthreehome", gettext("name of the Python 3 home directory"))
call <SID>AddOption("pythonthreehome", gettext(" \nname of the Python 3 home directory"))
call <SID>OptionG("pythonthreehome", &pythonthreehome)
endif
if exists("&rubydll")

View File

@@ -6,6 +6,10 @@
" 2025 Aug 07 by Vim Project (netrw#BrowseX() distinguishes remote files #17794)
" 2025 Aug 22 by Vim Project netrw#Explore handle terminal correctly #18069
" 2025 Sep 05 by Vim Project ensure netrw#fs#Dirname() returns trailing slash #18199
" 2025 Sep 11 by Vim Project only keep cursor position in tree mode #18275
" 2025 Sep 17 by Vim Project tighten the regex to handle remote compressed archives #18318
" 2025 Sep 18 by Vim Project 'equalalways' not always respected #18358
" 2025 Oct 01 by Vim Project fix navigate to parent folder #18464
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
@@ -3047,12 +3051,12 @@ function s:NetrwBrowse(islocal,dirname)
exe "sil! NetrwKeepj keepalt doau BufReadPre ".fnameescape(s:fname)
sil call netrw#NetRead(2,url)
" netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error
if s:path =~ '.bz2'
if s:path =~ '\.bz2$'
exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.bz2$','',''))
elseif s:path =~ '.gz'
elseif s:path =~ '\.gz$'
exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.gz$','',''))
elseif s:path =~ '.gz'
exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.txz$','',''))
elseif s:path =~ '\.xz$'
exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(substitute(s:fname,'\.xz$','',''))
else
exe "sil NetrwKeepj keepalt doau BufReadPost ".fnameescape(s:fname)
endif
@@ -3083,7 +3087,7 @@ function s:NetrwBrowse(islocal,dirname)
" previous buffer
let prevbufnr = bufnr('%')
let reusing= s:NetrwGetBuffer(a:islocal,dirname)
if exists("s:rexposn_".prevbufnr)
if exists("s:rexposn_".prevbufnr) && exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
let s:rexposn_{bufnr('%')} = s:rexposn_{prevbufnr}
endif
@@ -3836,6 +3840,8 @@ function s:NetrwBrowseChgDir(islocal, newdir, cursor, ...)
exe "keepalt ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s"
if !&ea
keepalt wincmd _
else
exe "keepalt wincmd ="
endif
call s:SetRexDir(a:islocal,curdir)
@@ -3845,6 +3851,8 @@ function s:NetrwBrowseChgDir(islocal, newdir, cursor, ...)
exe "keepalt ".(g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s"
if !&ea
keepalt wincmd |
else
exe "keepalt wincmd ="
endif
call s:SetRexDir(a:islocal,curdir)
@@ -3943,7 +3951,8 @@ function s:NetrwBrowseChgDir(islocal, newdir, cursor, ...)
" NetrwBrowseChgDir: go up one directory {{{3
" --------------------------------------
let dirname = netrw#fs#Dirname(dirname)
" The following regexps expect '/' as path separator
let dirname = substitute(netrw#fs#AbsPath(dirname), '\\', '/', 'ge') . '/'
if w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
" force a refresh
@@ -7014,6 +7023,9 @@ function s:NetrwSplit(mode)
NetrwKeepj call s:RestoreWinVars()
NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord(),1))
unlet s:didsplit
if &ea
exe "keepalt wincmd ="
endif
elseif a:mode == 4
" local and t
@@ -7051,6 +7063,9 @@ function s:NetrwSplit(mode)
NetrwKeepj call s:RestoreWinVars()
NetrwKeepj call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord(),1))
unlet s:didsplit
if &ea
exe "keepalt wincmd ="
endif
else
call netrw#msg#Notify('ERROR', '(NetrwSplit) unsupported mode='.a:mode)

View File

@@ -2,18 +2,18 @@
" THESE FUNCTIONS DON'T COMMIT TO ANY BACKWARDS COMPATIBILITY. SO CHANGES AND
" BREAKAGES IF USED OUTSIDE OF NETRW.VIM ARE EXPECTED.
let s:slash = !exists('+shellslash') || &shellslash ? '/' : '\'
" netrw#fs#PathJoin: Appends a new part to a path taking different systems into consideration {{{
function! netrw#fs#PathJoin(...)
const slash = !exists('+shellslash') || &shellslash ? '/' : '\'
let path = ""
for arg in a:000
if empty(path)
let path = arg
else
let path .= s:slash . arg
let path .= slash . arg
endif
endfor
@@ -73,22 +73,14 @@ endfunction
" netrw#fs#AbsPath: returns the full path to a directory and/or file {{{
function! netrw#fs#AbsPath(path)
let path = a:path->substitute(s:slash . '$', '', 'e')
let path = a:path->substitute('[\/]$', '', 'e')
" Nothing to do
if isabsolutepath(path)
return path
endif
return path->fnamemodify(':p')->substitute(s:slash . '$', '', 'e')
endfunction
" }}}
" netrw#fs#Dirname: {{{
function netrw#fs#Dirname(path)
" Keep a slash as directory recognition pattern
return netrw#fs#AbsPath(a:path) . s:slash
return path->fnamemodify(':p')->substitute('[\/]$', '', 'e')
endfunction
" }}}

View File

@@ -4,7 +4,7 @@ vim9script
# Author: Bram Moolenaar
# Copyright: Vim license applies, see ":help license"
# Last Change: 2025 Sep 02
# Last Change: 2025 Oct 08
# Converted to Vim9: Ubaldo Tiberi <ubaldo.tiberi@gmail.com>
# WORK IN PROGRESS - The basics works stable, more to come
@@ -34,6 +34,7 @@ vim9script
# Gdb is run as a job with callbacks for I/O.
# On Unix another terminal window is opened to run the debugged program
# On MS-Windows a separate console is opened to run the debugged program
# but a terminal window is used to run remote debugged programs.
# The communication with gdb uses GDB/MI. See:
# https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html
@@ -435,8 +436,73 @@ def IsGdbStarted(): bool
return true
enddef
def CreateProgramPty(): string
ptybufnr = term_start('NONE', {
# Check if the debugger is running remotely and return a suitable command to pty remotely
def GetRemotePtyCmd(gdb_cmd: list<string>): list<string>
# Check if the user provided a command to launch the program window
var term_cmd = null_list
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'remote_window')
term_cmd = g:termdebug_config['remote_window']
term_cmd = type(term_cmd) == v:t_list ? copy(term_cmd) : [term_cmd]
else
# Check if it is a remote gdb, the program terminal should be started
# on the remote machine.
const remote_pattern = '^\(ssh\|wsl\)'
if gdb_cmd[0] =~? remote_pattern
var gdb_pos = indexof(gdb_cmd, $'v:val =~? "^{GetCommand()[-1]}"')
if gdb_pos > 0
# strip debugger call
term_cmd = gdb_cmd[0 : gdb_pos - 1]
# roundtrip to check if socat is available on the remote side
silent call system(join(term_cmd, ' ') .. ' socat -h')
if v:shell_error
Echowarn('Install socat on the remote machine for a program window better experience')
else
# create a devoted tty slave device and link to stdin/stdout
term_cmd += ['socat', '-dd', '-', 'PTY,raw,echo=0']
ch_log($'launching remote ttys using "{join(term_cmd)}"')
endif
endif
endif
endif
return term_cmd
enddef
# Retrieve the remote pty device from a remote terminal
# If interact is true, use remote tty command to get the pty device
def GetRemotePtyDev(bufnr: number, interact: bool): string
var pty: string = null_string
var line = null_string
for j in range(5)
if interact
term_sendkeys(bufnr, "tty\<CR>")
endif
for i in range(0, term_getsize(bufnr)[0])
line = term_getline(bufnr, i)
if line =~? "/dev/pts"
pty = line
break
endif
term_wait(bufnr, 100)
endfor # i
if pty != null_string
# Clear the terminal window
if interact
term_sendkeys(bufnr, "clear\<CR>")
endif
break
endif
endfor # j
return pty
enddef
def CreateProgramPty(cmd: list<string> = null_list): string
ptybufnr = term_start(!cmd ? 'NONE' : cmd, {
term_name: ptybufname,
vertical: vvertical})
if ptybufnr == 0
@@ -454,20 +520,76 @@ def CreateProgramPty(): string
endif
endif
return job_info(term_getjob(ptybufnr))['tty_out']
if !cmd
return job_info(term_getjob(ptybufnr))['tty_out']
else
var interact = indexof(cmd, 'v:val =~? "^socat"') < 0
var pty = GetRemotePtyDev(ptybufnr, interact)
if pty !~? "/dev/pts"
Echoerr('Failed to get the program window tty')
exe $'bwipe! {ptybufnr}'
pty = null_string
elseif pty !~? "^/dev/pts"
# remove the prompt
pty = pty->matchstr('/dev/pts/\d\+')
endif
return pty
endif
enddef
def CreateCommunicationPty(): string
def CreateCommunicationPty(cmd: list<string> = null_list): string
# Create a hidden terminal window to communicate with gdb
commbufnr = term_start('NONE', {
term_name: commbufname,
out_cb: CommOutput,
hidden: 1
})
var options: dict<any> = { term_name: commbufname, out_cb: CommOutput, hidden: 1 }
if !cmd
commbufnr = term_start('NONE', options)
else
# avoid message wrapping that prevents proper parsing
options['term_cols'] = 500
commbufnr = term_start(cmd, options)
endif
if commbufnr == 0
return null_string
endif
return job_info(term_getjob(commbufnr))['tty_out']
if !cmd
return job_info(term_getjob(commbufnr))['tty_out']
else
# CommunicationPty only will be reliable with socat
if indexof(cmd, 'v:val =~? "^socat"') < 0
Echoerr('Communication window should be started with socat')
exe $'bwipe! {commbufnr}'
return null_string
endif
var pty = GetRemotePtyDev(commbufnr, false)
if pty !~? "/dev/pts"
Echoerr('Failed to get the communication window tty')
exe $'bwipe! {commbufnr}'
pty = null_string
elseif pty !~? "^/dev/pts"
# remove the prompt
pty = pty->matchstr('/dev/pts/\d\+')
endif
return pty
endif
enddef
# Convenient filter to workaround remote escaping issues.
# For example, ssh doesn't escape spaces for the gdb arguments.
# Workaround doing:
# let g:termdebug_config['command_filter'] = function('g:Termdebug_escape_whitespace')
def g:Termdebug_escape_whitespace(args: list<string>): list<string>
var new_args: list<string> = []
for arg in args
new_args += [substitute(arg, ' ', '\\ ', 'g')]
endfor
return new_args
enddef
def CreateGdbConsole(dict: dict<any>, pty: string, commpty: string): string
@@ -497,6 +619,12 @@ def CreateGdbConsole(dict: dict<any>, pty: string, commpty: string): string
gdb_cmd += ['-ex', 'echo startupdone\n']
endif
# Escape whitespaces in the gdb arguments for ssh remoting
if exists('g:termdebug_config') && !has_key(g:termdebug_config, 'command_filter') &&
gdb_cmd[0] =~? '^ssh'
g:termdebug_config['command_filter'] = function('g:Termdebug_escape_whitespace')
endif
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'command_filter')
gdb_cmd = g:termdebug_config.command_filter(gdb_cmd)
endif
@@ -599,14 +727,18 @@ enddef
# Open a terminal window without a job, to run the debugged program in.
def StartDebug_term(dict: dict<any>)
var programpty = CreateProgramPty()
# Retrieve command if remote pty is needed
var gdb_cmd = GetCommand()
var term_cmd = GetRemotePtyCmd(gdb_cmd)
var programpty = CreateProgramPty(term_cmd)
if programpty is null_string
Echoerr('Failed to open the program terminal window')
CloseBuffers()
return
endif
var commpty = CreateCommunicationPty()
var commpty = CreateCommunicationPty(term_cmd)
if commpty is null_string
Echoerr('Failed to open the communication terminal window')
CloseBuffers()
@@ -656,16 +788,27 @@ def StartDebug_prompt(dict: dict<any>)
var gdb_args = get(dict, 'gdb_args', [])
var proc_args = get(dict, 'proc_args', [])
# Add -quiet to avoid the intro message causing a hit-enter prompt.
gdb_cmd += ['-quiet']
# directly communicate via mi2. This option must precede any -iex options for proper
# interpretation.
gdb_cmd += ['--interpreter=mi2']
# Disable pagination, it causes everything to stop at the gdb, needs to be run early
gdb_cmd += ['-iex', 'set pagination off']
# Interpret commands while the target is running. This should usually only
# be exec-interrupt, since many commands don't work properly while the
# target is running (so execute during startup).
gdb_cmd += ['-iex', 'set mi-async on']
# directly communicate via mi2
gdb_cmd += ['--interpreter=mi2']
# Add -quiet to avoid the intro message causing a hit-enter prompt.
gdb_cmd += ['-quiet']
# Escape whitespaces in the gdb arguments for ssh remoting
if exists('g:termdebug_config') && !has_key(g:termdebug_config, 'command_filter') &&
gdb_cmd[0] =~? '^ssh'
g:termdebug_config['command_filter'] = function('g:Termdebug_escape_whitespace')
endif
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'command_filter')
gdb_cmd = g:termdebug_config.command_filter(gdb_cmd)
endif
# Adding arguments requested by the user
gdb_cmd += gdb_args
@@ -686,24 +829,61 @@ def StartDebug_prompt(dict: dict<any>)
set modified
gdb_channel = job_getchannel(gdbjob)
ptybufnr = 0
if has('win32')
# MS-Windows: run in a new console window for maximum compatibility
SendCommand('set new-console on')
elseif has('terminal')
# Unix: Run the debugged program in a terminal window. Open it below the
# gdb window.
belowright ptybufnr = term_start('NONE', {
term_name: 'debugged program',
vertical: vvertical
})
if ptybufnr == 0
Echoerr('Failed to open the program terminal window')
# Retrieve command if remote pty is needed
var term_cmd = GetRemotePtyCmd(gdb_cmd)
# If we are not using socat maybe is a shell:
var interact = indexof(term_cmd, 'v:val =~? "^socat"') < 0
if has('terminal') && (term_cmd != null || !has('win32'))
# Try open terminal twice because sync with gdbjob may not succeed
# the first time (docker daemon for example)
var trials: number = 2
var pty: string = null_string
while trials > 0
# Run the debugged program in a window. Open it below the
# gdb window.
belowright ptybufnr = term_start(
term_cmd != null ? term_cmd : 'NONE', {
term_name: 'debugged program',
vertical: vvertical
})
if ptybufnr == 0
Echoerr('Failed to open the program terminal window')
job_stop(gdbjob)
return
endif
ptywin = win_getid()
if term_cmd is null
pty = job_info(term_getjob(ptybufnr))['tty_out']
else
# Retrieve remote pty value
pty = GetRemotePtyDev(ptybufnr, interact)
endif
if pty !~? "/dev/pts"
exe $'bwipe! {ptybufnr}'
--trials
pty = null_string
else
break
endif
endwhile
if pty !~? "/dev/pts"
Echoerr('Failed to get the program windows tty')
job_stop(gdbjob)
return
elseif pty !~? "^/dev/pts"
# remove the prompt
pty = pty->matchstr('/dev/pts/\d\+')
endif
ptywin = win_getid()
var pty = job_info(term_getjob(ptybufnr))['tty_out']
SendCommand($'tty {pty}')
# Since GDB runs in a prompt window, the environment has not been set to
@@ -714,6 +894,9 @@ def StartDebug_prompt(dict: dict<any>)
SendCommand($'set env COLUMNS = {winwidth(ptywin)}')
SendCommand($'set env COLORS = {&t_Co}')
SendCommand($'set env VIM_TERMINAL = {v:version}')
elseif has('win32')
# MS-Windows: run in a new console window for maximum compatibility
SendCommand('set new-console on')
else
# TODO: open a new terminal, get the tty name, pass on to gdb
SendCommand('show inferior-tty')
@@ -930,7 +1113,7 @@ enddef
const NullRepl = 'XXXNULLXXX'
# Extract the "name" value from a gdb message with fullname="name".
def GetFullname(msg: string): string
def GetLocalFullname(msg: string): string
if msg !~ 'fullname'
return ''
endif
@@ -944,6 +1127,50 @@ def GetFullname(msg: string): string
return name
enddef
# Turn a remote machine local path into a remote one.
def Local2RemotePath(path: string): string
# If no mappings are provided keep the path.
if !exists('g:termdebug_config') || !has_key(g:termdebug_config, 'substitute_path')
return path
endif
var mappings: list<any> = items(g:termdebug_config['substitute_path'])
# Try to match the longest local path first.
sort(mappings, (a, b) => len(b[0]) - len(a[0]))
for [local, remote] in mappings
const pattern = '^' .. escape(local, '\.*~()')
if path =~ pattern
return substitute(path, pattern, escape(remote, '\.*~()'), '')
endif
endfor
return path
enddef
# Turn a remote path into a local one to the remote machine.
def Remote2LocalPath(path: string): string
# If no mappings are provided keep the path.
if !exists('g:termdebug_config') || !has_key(g:termdebug_config, 'substitute_path')
return path
endif
var mappings: list<any> = items(g:termdebug_config['substitute_path'])
# Try to match the longest remote path first.
sort(mappings, (a, b) => len(b[1]) - len(a[1]))
for [local, remote] in mappings
const pattern = '^' .. escape(substitute(remote, '[\/]', '[\\/]', 'g'), '.*~()')
if path =~ pattern
return substitute(path, pattern, local, '')
endif
endfor
return path
enddef
# Extract the "addr" value from a gdb message with addr="0x0001234".
def GetAsmAddr(msg: string): string
if msg !~ 'addr='
@@ -1159,7 +1386,7 @@ def CommOutput(chan: channel, message: string)
enddef
def GotoProgram()
if has('win32')
if has('win32') && !ptywin
if executable('powershell')
system(printf('powershell -Command "add-type -AssemblyName microsoft.VisualBasic;[Microsoft.VisualBasic.Interaction]::AppActivate(%d);"', pid))
endif
@@ -1173,6 +1400,7 @@ def InstallCommands()
command -nargs=? Break SetBreakpoint(<q-args>)
command -nargs=? Tbreak SetBreakpoint(<q-args>, true)
command ToggleBreak ToggleBreak()
command Clear ClearBreakpoint()
command Step SendResumingCommand('-exec-step')
command Over SendResumingCommand('-exec-next')
@@ -1182,6 +1410,7 @@ def InstallCommands()
command -nargs=* Arguments SendResumingCommand('-exec-arguments ' .. <q-args>)
command Stop StopCommand()
command Continue ContinueCommand()
command RunOrContinue RunOrContinue()
command -nargs=* Frame Frame(<q-args>)
command -count=1 Up Up(<count>)
@@ -1296,6 +1525,8 @@ def DeleteCommands()
delcommand Asm
delcommand Var
delcommand Winbar
delcommand RunOrContinue
delcommand ToggleBreak
if !empty(saved_K_map) && !saved_K_map.buffer
@@ -1370,7 +1601,8 @@ def Until(at: string)
ch_log('assume that program is running after this command')
# Use the fname:lnum format
var AT = empty(at) ? QuoteArg($"{expand('%:p')}:{line('.')}") : at
var fname = Remote2LocalPath(expand('%:p'))
var AT = empty(at) ? QuoteArg($"{fname}:{line('.')}") : at
SendCommand($'-exec-until {AT}')
else
ch_log('dropping command, program is running: exec-until')
@@ -1389,7 +1621,8 @@ def SetBreakpoint(at: string, tbreak=false)
endif
# Use the fname:lnum format, older gdb can't handle --source.
var AT = empty(at) ? QuoteArg($"{expand('%:p')}:{line('.')}") : at
var fname = Remote2LocalPath(expand('%:p'))
var AT = empty(at) ? QuoteArg($"{fname}:{line('.')}") : at
var cmd = ''
if tbreak
cmd = $'-break-insert -t {AT}'
@@ -1403,7 +1636,8 @@ def SetBreakpoint(at: string, tbreak=false)
enddef
def ClearBreakpoint()
var fname = fnameescape(expand('%:p'))
var fname = Remote2LocalPath(expand('%:p'))
fname = fnameescape(fname)
var lnum = line('.')
var bploc = printf('%s:%d', fname, lnum)
var nr = 0
@@ -1439,6 +1673,20 @@ def ClearBreakpoint()
endif
enddef
def ToggleBreak()
var fname = Remote2LocalPath(expand('%:p'))
fname = fnameescape(fname)
var lnum = line('.')
var bploc = printf('%s:%d', fname, lnum)
if has_key(breakpoint_locations, bploc)
while has_key(breakpoint_locations, bploc)
ClearBreakpoint()
endwhile
else
SetBreakpoint("")
endif
enddef
def Run(args: string)
if args != ''
SendResumingCommand($'-exec-arguments {args}')
@@ -1446,6 +1694,14 @@ def Run(args: string)
SendResumingCommand('-exec-run')
enddef
def RunOrContinue()
if running
ContinueCommand()
else
Run('')
endif
enddef
# :Frame - go to a specific frame in the stack
def Frame(arg: string)
# Note: we explicit do not use mi's command
@@ -1520,7 +1776,6 @@ def GetEvaluationExpression(range: number, arg: string): string
if arg != ''
# user supplied evaluation
expr = CleanupExpr(arg)
# DSW: replace "likely copy + paste" assignment
expr = substitute(expr, '"\([^"]*\)": *', '\1=', 'g')
elseif range == 2
# no evaluation but provided but range set
@@ -1835,7 +2090,7 @@ def HandleCursor(msg: string)
var fname = ''
if msg =~ 'fullname='
fname = GetFullname(msg)
fname = GetLocalFullname(msg)
endif
if msg =~ 'addr='
@@ -1863,12 +2118,15 @@ def HandleCursor(msg: string)
SendCommand('-stack-list-variables 2')
endif
if msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
# Translate to remote file name if needed.
const fremote = Local2RemotePath(fname)
if msg =~ '^\(\*stopped\|=thread-selected\)' && (fremote != fname || filereadable(fname))
var lnum = substitute(msg, '.*line="\([^"]*\)".*', '\1', '')
if lnum =~ '^[0-9]*$'
GotoSourcewinOrCreateIt()
if expand('%:p') != fnamemodify(fname, ':p')
echomsg $"different fname: '{expand('%:p')}' vs '{fnamemodify(fname, ':p')}'"
if expand('%:p') != fnamemodify(fremote, ':p')
echomsg $"different fname: '{expand('%:p')}' vs '{fnamemodify(fremote, ':p')}'"
augroup Termdebug
# Always open a file read-only instead of showing the ATTENTION
# prompt, since it is unlikely we want to edit the file.
@@ -1880,11 +2138,11 @@ def HandleCursor(msg: string)
augroup END
if &modified
# TODO: find existing window
exe $'split {fnameescape(fname)}'
exe $'split {fnameescape(fremote)}'
sourcewin = win_getid()
InstallWinbar(false)
else
exe $'edit {fnameescape(fname)}'
exe $'edit {fnameescape(fremote)}'
endif
augroup Termdebug
au! SwapExists
@@ -1893,7 +2151,7 @@ def HandleCursor(msg: string)
exe $":{lnum}"
normal! zv
sign_unplace('TermDebug', {id: pc_id})
sign_place(pc_id, 'TermDebug', 'debugPC', fname,
sign_place(pc_id, 'TermDebug', 'debugPC', fremote,
{lnum: str2nr(lnum), priority: 110})
if !exists('b:save_signcolumn')
b:save_signcolumn = &signcolumn
@@ -1967,10 +2225,11 @@ def HandleNewBreakpoint(msg: string, modifiedFlag: bool)
endif
for mm in SplitMsg(msg)
var fname = GetFullname(mm)
var fname = GetLocalFullname(mm)
if empty(fname)
continue
endif
var fremote = Local2RemotePath(fname)
nr = substitute(mm, '.*number="\([0-9.]*\)\".*', '\1', '')
if empty(nr)
return
@@ -2004,14 +2263,17 @@ def HandleNewBreakpoint(msg: string, modifiedFlag: bool)
if !has_key(breakpoint_locations, bploc)
breakpoint_locations[bploc] = []
endif
breakpoint_locations[bploc] += [id]
if breakpoint_locations[bploc]->index(id) == -1
# Make sure all ids are unique
breakpoint_locations[bploc] += [id]
endif
var posMsg = ''
if bufloaded(fname)
if bufloaded(fremote)
PlaceSign(id, subid, entry)
posMsg = $' at line {lnum}.'
else
posMsg = $' in {fname} at line {lnum}.'
posMsg = $' in {fremote} at line {lnum}.'
endif
var actionTaken = ''
if !modifiedFlag
@@ -2028,8 +2290,9 @@ enddef
def PlaceSign(id: number, subid: number, entry: dict<any>)
var nr = printf('%d.%d', id, subid)
var remote = Local2RemotePath(entry['fname'])
sign_place(Breakpoint2SignNumber(id, subid), 'TermDebug',
$'debugBreakpoint{nr}', entry['fname'],
$'debugBreakpoint{nr}', remote,
{lnum: entry['lnum'], priority: 110})
entry['placed'] = 1
enddef

View File

@@ -3,7 +3,6 @@ The plugin directory is for standard Vim plugin scripts.
All files here ending in .vim will be sourced by Vim when it starts up.
Look in the file for hints on how it can be disabled without deleting it.
colorresp.vim used to detect terminal background and foreground colours
getscriptPlugin.vim get latest version of Vim scripts
gzip.vim edit compressed files
logiPat.vim logical operators on patterns

View File

@@ -1,51 +0,0 @@
vim9script
# Vim plugin for setting the background and foreground colours depending on
# the terminal response.
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2025 Sep 05
if exists("g:loaded_colorresp")
finish
endif
g:loaded_colorresp = 1
augroup ColorResp
au!
au TermResponseAll osc {
var parts: list<string> = matchlist(v:termosc, '\(\d\+\);rgb:\(\w\+\)/\(\w\+\)/\(\w\+\)')
if len(parts) >= 5
var type: string = parts[1]
var rval: number = str2nr(parts[2][: 1], 16)
var gval: number = str2nr(parts[3][: 1], 16)
var bval: number = str2nr(parts[4][: 1], 16)
if type == '11'
# Detect light or dark background by parsing OSC 11 RGB background reply
# from terminal. Sum the RGB values roughly; if bright enough, set
# 'background' to 'light', otherwise set it to 'dark'.
var new_bg_val: string = (3 * char2nr('6') < char2nr(parts[2]) + char2nr(parts[3]) + char2nr(parts[4])) ? "light" : "dark"
v:termrbgresp = v:termosc
&background = new_bg_val
# For backwards compatibility
if exists('#TermResponseAll#background')
doautocmd <nomodeline> TermResponseAll background
endif
else
v:termrfgresp = v:termosc
# For backwards compatibility
if exists('#TermResponseAll#foreground')
doautocmd <nomodeline> TermResponseAll foreground
endif
endif
endif
}
au VimEnter * ++once {
call echoraw(&t_RB)
call echoraw(&t_RF)
}
augroup END
# vim: set sw=2 sts=2 :

View File

@@ -5,6 +5,7 @@
" Former Maintainer: Charles E Campbell
" Last Change:
" 2025 Apr 02 by Vim Project: add *.whl to list of zip extensions (#17038)
" 2025 Oct 06 by MultisampledNight: add *.pkpass to list of zip extensions (#18501)
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
@@ -30,7 +31,7 @@ set cpo&vim
" ---------------------------------------------------------------------
" Options: {{{1
if !exists("g:zipPlugin_ext")
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,*.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,*.wsz,*.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,*.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.pkpass,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,*.wsz,*.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
endif
" ---------------------------------------------------------------------

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