Merge remote-tracking branch 'vim/master'

This commit is contained in:
Yee Cheng Chin
2025-01-23 22:30:29 -08:00
264 changed files with 15324 additions and 9156 deletions
+3
View File
@@ -208,6 +208,7 @@ 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
@@ -354,6 +355,7 @@ runtime/indent/javascript.vim @bounceme
runtime/indent/json.vim @elzr
runtime/indent/jsonc.vim @izhakjakov
runtime/indent/julia.vim @carlobaldassi
runtime/indent/just.vim @pbnj
runtime/indent/kdl.vim @imsnif @jiangyinzuo
runtime/indent/kotlin.vim @udalov
runtime/indent/krl.vim @KnoP-01
@@ -512,6 +514,7 @@ runtime/syntax/jjdescription.vim @gpanders
runtime/syntax/json.vim @vito-c
runtime/syntax/jsonc.vim @izhakjakov
runtime/syntax/julia.vim @carlobaldassi
runtime/syntax/just.vim @pbnj
runtime/syntax/jq.vim @vito-c
runtime/syntax/karel.vim @kirillmorozov
runtime/syntax/kconfig.vim @chrisbra
+2
View File
@@ -163,6 +163,8 @@ src/shadow
src/shadow-*
src/runtime
src/pixmaps
src/LICENSE
src/README.txt
# other files possibly created by tools
src/cscope.out
+2 -2
View File
@@ -79,7 +79,7 @@ can be translated:
* Menus, see [runtime/lang/README.txt][2]
* Vim tutor, see [runtime/tutor/README.txt][3]
* Manual pages, see [runtime/doc/\*.1][4] for examples
* Installer, see [nsis/lang/\*.nsi][5] for examples
* Installer, see [nsis/lang/README.txt][5]
The help files can be translated and made available separately.
See https://www.vim.org/translations.php for examples.
@@ -103,7 +103,7 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
[5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi
[5]: https://github.com/vim/vim/blob/master/nsis/lang/README.txt
[6]: https://github.com/vim/vim/discussions/13087
[7]: https://github.com/vim/vim/blob/master/runtime/doc/develop.txt
[8]: https://vi.stackexchange.com
+14 -4
View File
@@ -52,6 +52,7 @@ SRC_ALL = \
src/debugger.c \
src/dict.c \
src/diff.c \
src/linematch.c \
src/digraph.c \
src/drawline.c \
src/drawscreen.c \
@@ -286,6 +287,7 @@ SRC_ALL = \
src/proto/insexpand.pro \
src/proto/job.pro \
src/proto/json.pro \
src/proto/linematch.pro \
src/proto/list.pro \
src/proto/locale.pro \
src/proto/logfile.pro \
@@ -607,6 +609,8 @@ SRC_DOS = \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
nsis/gvim_version.nsh \
nsis/Makefile \
nsis/Make_mvc.mak \
nsis/README.txt \
nsis/lang/*.nsi \
nsis/lang/README.txt \
@@ -708,8 +712,6 @@ RT_ALL = \
README_VIM9.md \
LICENSE \
CONTRIBUTING.md \
lang/LICENSE.itx \
lang/README.itx \
runtime/bugreport.vim \
runtime/doc/*.awk \
runtime/doc/*.pl \
@@ -807,6 +809,14 @@ RT_ALL = \
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \
runtime/pack/dist/opt/netrw/LICENSE.txt \
runtime/pack/dist/opt/netrw/README.md \
runtime/pack/dist/opt/netrw/autoload/netrw.vim \
runtime/pack/dist/opt/netrw/autoload/netrwSettings.vim \
runtime/pack/dist/opt/netrw/autoload/netrw_gitignore.vim \
runtime/pack/dist/opt/netrw/doc/netrw.txt \
runtime/pack/dist/opt/netrw/plugin/netrwPlugin.vim \
runtime/pack/dist/opt/netrw/syntax/netrw.vim
# Runtime files for all distributions without CR/LF translation.
RT_ALL_BIN = \
@@ -1033,7 +1043,8 @@ IN_README_DIR = \
# Generic language files.
LANG_GEN = \
README.??x.txt \
lang/README.*.txt \
lang/LICENSE.*.txt \
runtime/doc/*-da.1 \
runtime/doc/*-da.UTF-8.1 \
runtime/doc/*-de.1 \
@@ -1049,7 +1060,6 @@ LANG_GEN = \
runtime/doc/*-ru.UTF-8.1 \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
runtime/doc/uganda.??x \
runtime/lang/README.txt \
runtime/lang/Makefile \
runtime/lang/Make_all.mak \
+22 -27
View File
@@ -161,12 +161,12 @@ MINOR = 1
# - See src/INSTALLpc.txt for installing the compiler and SDK.
# - Set environment for Visual C++ 2015:
# > cd src
# > msvc2015.bat
# > msvc-latest.bat
# - Build the console binary:
# > nmake -f Make_mvc.mak
# > nmake.exe -f Make_mvc.mak
# - Run the tests and check the output:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test
# > nmake.exe -f Make_mvc.mak testclean
# > nmake.exe -f Make_mvc.mak test
# - Rename (using ../tools/rename.bat):
# vim.exe to vimw32.exe
# tee/tee.exe to teew32.exe
@@ -176,10 +176,10 @@ MINOR = 1
# uninstall.exe to uninstallw32.exe
# Win32 GUI version build:
# - > cd src
# > nmake -f Make_mvc.mak GUI=yes
# > nmake.exe -f Make_mvc.mak "GUI=yes"
# - Run the tests and check the output:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
# > nmake.exe -f Make_mvc.mak testclean
# > nmake.exe -f Make_mvc.mak testgvim
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here.
@@ -191,8 +191,8 @@ MINOR = 1
# > cd src
# > bigvim.bat
# - Run the tests:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
# > nmake.exe -f Make_mvc.mak testclean
# > nmake.exe -f Make_mvc.mak testgvim
# - check the output.
# - Rename "gvim.exe" to "gvim_ole.exe".
# - Rename gvim.pdb to "gvim_ole.pdb".
@@ -216,9 +216,9 @@ MINOR = 1
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
# version). Also put winpty32.dll and winpty-agent.exe there.
# - go to ../nsis and do:
# > unzip icons.zip
# > makensis gvim.nsi (takes a few minutes).
# ignore warning for libwinpthread-1.dll
# > nmake.exe -f Make_mvc.mak all
# (takes a few minutes).
# See nsis/README.txt for details.
# - Copy gvim##.exe to the dist directory.
#
# 64 bit builds (these are not in the normal distribution, the 32 bit build
@@ -226,9 +226,9 @@ MINOR = 1
# Like the console and GUI version, but first run vcvars64.bat or
# "..\VC\vcvarsall.bat x86_amd64".
# - Build the console version:
# > nmake -f Make_mvc.mak
# > nmake.exe -f Make_mvc.mak
# - Build the GUI version:
# > nmake -f Make_mvc.mak GUI=yes
# > nmake.exe -f Make_mvc.mak "GUI=yes"
# - Build the OLE version with interfaces:
# > bigvim64.bat
#
@@ -266,8 +266,8 @@ dist:
# Clean up some files to avoid they are included.
# Copy README files to the top directory.
prepare:
if test -f runtime/doc/uganda.nsis.txt; then \
rm runtime/doc/uganda.nsis.???; fi
if test -f lang/LICENSE.nsis.txt; then \
rm -f lang/LICENSE*.nsis.txt; fi
for name in $(IN_README_DIR); do \
cp READMEdir/"$$name" .; \
done
@@ -408,8 +408,7 @@ amisrc: dist prepare
mv dist/vim$(VERSION)src.tar.gz dist/vim$(VERSION)src.tgz
# MS-DOS sources
dossrc: dist dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt \
nsis/gvim_version.nsh
dossrc: dist dist/$(COMMENT_SRC) license nsis/gvim_version.nsh
-rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim
mkdir dist/vim
@@ -420,23 +419,19 @@ dossrc: dist dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt \
$(SRC_DOS_BIN) \
$(SRC_AMI_DOS) \
$(SRC_DOS_UNIX) \
runtime/doc/uganda.nsis.??? \
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
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.???
cd runtime/doc && $(MAKE) uganda.nsis.txt
license:
cd nsis && $(MAKE) -f Makefile $@
nsis/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 "!endif" >> $@
cd nsis && $(MAKE) -f Makefile $(@F)
dosrt: dist dist/$(COMMENT_RT) dosrt_files
-rm -rf dist/vim$(VERSION)rt.zip
+109
View File
@@ -0,0 +1,109 @@
ЛИЦЕНЗИЯ VIM
I) Неизменённые копии программы Vim могут распространяться без ограничения
при условии включения данного текста лицензии. Распространение
неизменённых копий отдельных частей программы Vim также возможно
при соблюдении условия о включении данного текста лицензии. Подобным
образом разрешается добавлять исполняемые файлы, скомпилированные
из неизменённого исходного кода программы Vim, а также собственные
примеры использования и командные файлы редактора Vim.
II) Изменённую (или дополненную) версию программы Vim, включающую
исполняемые файлы и/или исходный код, допускается распространять
при соблюдении следующих четырёх условий:
1) Текст настоящей лицензии должен включаться в состав распространяемой
версии программы Vim без изменений.
2) Изменённая версия программы Vim должна распространяться одним
из следующих пяти способов:
a) При внесении изменений в программу Vim, в дистрибутиве должны
быть явно указаны контактные данные лица, внёсшего эти изменения.
Ответственному разработчику по его запросу (в любой форме) должна
быть безвозмездно предоставлена копия распространяемой изменённой
версии программы Vim, включая её исходный код. Ответственный
разработчик оставляет за собой право включать сделанные изменения
в официальную версию программы Vim. Конкретные действия
ответственного разработчика, относительно переданных изменений,
а также лицензионные условия, на основании которых будет
осуществляться их распространение, могут быть дополнительно
согласованы. Если согласование не проводилось, сделанные изменения
будут распространяться на условиях настоящей лицензии или более
поздней её версии. Лица, в данное время являющиеся ответственными
за разработку, указаны в перечне, размещённом по адресу:
https://github.com/orgs/vim/people. В случае изменения этой
информации, актуальные данные будут опубликованы на
соответствующих ресурсах (вероятнее всего по интернет‐адресам
vim.sf.net, www.vim.org и/или comp.editors). В случае полной
невозможности установить контакт с ответственным разработчиком,
обязательства по отправке изменений утрачивают силу. После
передачи подтверждения о получении изменений от ответственного
разработчика, необходимость в повторной отправке копии изменённой
программы Vim неприменима.
b) Если лицом получена изменённая версия программа Vim,
распространяющаяся на условиях, указанных в ч. II) п. 2) пп. а)
допускается дальнейшее её распространение этим лицом без внесения
изменений и согласно ч. I) настоящей лицензии. В случае внесения
дополнительных изменений, на эти изменения будут распространяться
условия, указанные в ч. II) п. 2) пп. a).
c) Каждая копия распространяемой изменённой версии программы Vim
должна включать информацию обо всех произведённых изменениях,
включая исходный код. Эта информация может быть представлена
в виде построчного сравнения файлов. Выбор лицензии, по условиям
которой будет распространяться добавленный код, остаётся
за автором этих изменений. Изменения и лицензия на эти изменения
не должны запрещать другим лицам внесение своих собственных
изменений в официальную версию программы Vim.
d) Изменённая версия программы Vim, содержащая изменения в
соответствии с ч. II) п. 2 пп. c), может распространяться без
исходного кода для этих изменений, при соблюдении следующих трёх
условий:
- Лицензия, применяемая к внесённым изменениям, предоставляет
ответственному разработчику программы Vim возможность
безвозмездного и неограниченного распространения этих изменений,
а также право на безвозмездное и неограниченное включение этих
изменений в официальную версию программы Vim.
- Изменения должны сохраняться не менее трёх лет со времени
распространения соответствующей изменённой версии программы Vim.
В течение этого периода по запросу ответственного разработчика
или другого пользователя изменённой версии программы Vim
(в любой форме) необходимо предоставить исходный код данных
изменений.
- В дистрибутиве изменённой версии программы Vim должны быть явно
указаны контактные данные лица, внёсшего эти изменения.
Контактные данные должны сохранять актуальность в течение
не менее трёх лет со времени последнего распространения
соответствующей изменённой версии программы Vim или как можно
дольше.
e) Если к изменениям, внесённым в программу Vim, применимы условия
лицензии GNU General Public License (GNU GPL), допускается
распространение изменённой версия программы Vim на условиях
лицензии GNU GPL версии 2 или любой более поздней версии этой
лицензии.
3) Необходимо добавить соответствующую информацию, которая должна быть
выведена в результате выполнения команды ":version" в программе Vim,
а также на экране приветствия программы Vim, чтобы пользователь
изменённой версии программы Vim имел возможность определить,
что он пользуется изменённой версией. При распространении
на условиях, указанных в ч. II) п. 2) пп. e) такую информацию
требуется добавлять только в том случае, когда она не противоречит
лицензии, распространяющейся на эти изменения.
4) Контактная информация, которая указывается по требованию ч. II) п. 2)
пп. a) и ч. II) п. 2) пп. d) не должна удаляться или изменяться никем
другим, кроме лица, указавшего данную контактную информацию.
III) При распространении изменённой версии программы Vim рекомендуется
пользоваться лицензией Vim для произведённых изменений и обеспечить
доступ к этим изменениям ответственного разработчика, включая исходный
код изменений. Предпочтительным способом предоставления доступа
к произведённым изменениям является отправка этих изменений через
электронную почту или размещение файлов на сервер с отправкой
URL-адреса по электронной почте. Если количество изменений
незначительно (например, изменения в файле Makefile), достаточно будет
отправить через электронную почту файл построчного сравнения. Изменения
или URL-адреса должны быть направлены на адрес электронной почты
maintainer@vim.org
IV) Не допускается удаление настоящей лицензия из дистрибутива исходного
кода программы Vim, его отдельных частей или изменённой версии.
Допускается использование настоящей лицензию для предыдущих
изменённых выпусков программы Vim, взамен тех лицензий, с которыми
они распространялись.
+1 -1
View File
@@ -1,4 +1,4 @@
README.rux.txt для версии 9.1 программы Vim — Vi IMproved.
README.ru.txt для версии 9.1 программы Vim — Vi IMproved.
ЧТО ТАКОЕ РЕДАКТОР VIM?
+134
View File
@@ -0,0 +1,134 @@
#
# Makefile for MS Windows for create self-installing exe of Vim.
# 05/04/2024, Restorer restorer@mail2k.ru
#
#!INCLUDE .\Make_all.mak
.SUFFIXES :
!IFDEF PROGRAMW6432
ProgFiles=%%PROGRAMFILES(x86)%%
!ELSE
ProgFiles=$(PROGRAMFILES)
!ENDIF
!IFDEF VIMSRC
MKNSISFLAGS = /D"VIMSRC=$(VIMSRC)"
!ENDIF
!IFDEF VIMRT
MKNSISFLAGS = $(MKNSISFLAGS) /D"VIMRT=$(VIMRT)"
!ENDIF
!IFDEF VIMTOOLS
MKNSISFLAGS = $(MKNSISFLAGS) /D"VIMTOOLS=$(VIMTOOLS)"
!ENDIF
!IFDEF GETTEXT
MKNSISFLAGS = $(MKNSISFLAGS) /D"GETTEXT=$(GETTEXT)"
!ENDIF
!IFDEF HAVE_UPX
MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_UPX=$(HAVE_UPX)
!ENDIF
!IFDEF HAVE_NLS
MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_NLS=$(HAVE_NLS)
!ENDIF
!IFDEF HAVE_MULTI_LANG
MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_MULTI_LANG=$(HAVE_MULTI_LANG)
!ENDIF
!IFDEF WIN64
MKNSISFLAGS = $(MKNSISFLAGS) /DWIN64=$(WIN64)
!ENDIF
!IFDEF INCLUDE_LIBGCC
MKNSISFLAGS = $(MKNSISFLAGS) /DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
!ENDIF
!IFDEF X
XX = /X"$(X:;=" /X")"
!ENDIF
# If necessary, correct the full path of the NSIS compiler in the next line.
# Please do not enclose the path in quotation marks.
MKNSIS = $(ProgFiles)\NSIS
PS = powershell.exe
RM = del /f /q
RD = rmdir /s /q
MKNSISFLAGS = /INPUTCHARSET UTF8 $(MKNSISFLAGS)
PSFLAGS = -NoLogo -NoProfile -Command
# Read MAJOR and MINOR from version.h.
!IF ![for /F "tokens=2,3" %G in ( \
'findstr /rc:"VIM_VERSION_MINOR[ ^]*[0-9^]" \
/rc:"VIM_VERSION_MAJOR[ ^]*[0-9^]" ..\src\version.h') do \
@if "VIM_VERSION_MAJOR"=="%G" (echo MAJOR=%H>>_ver.tmp) \
else echo MINOR=%H>>_ver.tmp]
! INCLUDE .\_ver.tmp
! IF [$(RM) .\_ver.tmp]
! ENDIF
!ENDIF
# Read PATCHLEVEL from version.c
!IF ![for /F %G in ( \
'findstr /nblc:"static int included_patches[^]" ..\src\version.c \
^| (set /p "_t=" ^& set /a _t+=2 ^)') do \
@cmd /q /c "for /F "skip=%G delims=, " %H in (..\src\version.c) do \
(echo PATCH=%H>_patchlvl.tmp & exit /b)"]
! INCLUDE .\_patchlvl.tmp
! IF [$(RM) .\_patchlvl.tmp]
! ENDIF
!ENDIF
!IF $(PATCH) < 10
PATCH = 000$(PATCH)
!ELSEIF $(PATCH) < 100
PATCH = 00$(PATCH)
!ELSEIF $(PATCH) < 1000
PATCH = 0$(PATCH)
!ENDIF
all : makeinst
makeinst : prepare
^"$(MKNSIS)\makensis.exe" $(MKNSISFLAGS) gvim.nsi $(XX)
prepare : unzipicons gvim_version.nsh 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 $(PATCH)
@ 1>> $@ echo:^!endif
license : ..\lang\LICENSE.*.txt ..\LICENSE
!@ $(PS) $(PSFLAGS) \
Get-Content -Path '$**' -Encoding UTF8 ^| \
Set-Content -Path '..\lang\$(**B).nsis.txt' -Enc Unicode -Force
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
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
+95
View File
@@ -0,0 +1,95 @@
#
# Makefile for UNIX-like for create self-installing exe of Vim.
# 15/12/2024, Restorer restorer@mail2k.ru
#
.SUFFIXES:
.PHONY: all makeinst prepare rename clean
ifdef VIMSRC
MKNSISFLAGS := -D"VIMSRC=$(VIMSRC)"
endif
ifdef VIMRT
MKNSISFLAGS := $(MKNSISFLAGS) -D"VIMRT=$(VIMRT)"
endif
ifdef VIMTOOLS
MKNSISFLAGS := $(MKNSISFLAGS) -D"VIMTOOLS=$(VIMTOOLS)"
endif
ifdef GETTEXT
MKNSISFLAGS := $(MKNSISFLAGS) -D"GETTEXT=$(GETTEXT)"
endif
ifdef HAVE_UPX
MKNSISFLAGS := $(MKNSISFLAGS) -DHAVE_UPX=$(HAVE_UPX)
endif
ifdef HAVE_NLS
MKNSISFLAGS := $(MKNSISFLAGS) -DHAVE_NLS=$(HAVE_NLS)
endif
ifdef HAVE_MULTI_LANG
MKNSISFLAGS := $(MKNSISFLAGS) -DHAVE_MULTI_LANG=$(HAVE_MULTI_LANG)
endif
ifdef WIN64
MKNSISFLAGS := $(MKNSISFLAGS) -DWIN64=$(WIN64)
endif
ifdef INCLUDE_LIBGCC
MKNSISFLAGS := $(MKNSISFLAGS) -DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
endif
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
makeinst: prepare
makensis $(MKNSISFLAGS) gvim.nsi $(XX)
prepare: unzipicons gvim_version.nsh 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` ; \
awk 'sub("$$", "\r")' < $$lic | \
iconv -f UTF-8 -t UTF-16 > ../lang/$$bn.nsis.txt ; \
done
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
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
+48 -48
View File
@@ -3,22 +3,15 @@ Installation System (NSIS), available at http://nsis.sourceforge.net/
To build the installable .exe file:
1. Unpack three archives:
PC sources
PC runtime
PC language files
You can generate these from the Unix sources and runtime plus the extra
archive (see the Makefile in the top directory).
Preparatory stage
2. Go to the src directory and build:
gvim.exe (the OLE version),
vimrun.exe,
install.exe,
uninstall.exe,
tee/tee.exe,
xxd/xxd.exe
1. Clone using the git tool the Vim repository or download its zip file
available at:
https://github.com/vim/vim
Then execute tools/rename.bat to rename the executables.
2. Go to the "/src" directory and build the Vim editor, making sure to use the
following variable values: "GUI=yes"; "OLE=yes"; "VIMDLL=yes". See
INSTALLpc.txt and Make_mvc.mak for details.
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
archive). Both 64- and 32-bit versions are needed and should be placed
@@ -32,8 +25,8 @@ To build the installable .exe file:
https://www.mediafire.com/file/9edk4g3xvfgzby0/diff4Vim.zip/file
When will you have "diff.exe" put it in the "../.." directory (above the
"vim91" directory, it's the same for all Vim versions). However, you can
specify another directory by passing /DVIMTOOLS=<dir> option to the
"makensis.exe" program via the command line.
specify a different directory by specifying the appropriate makefile value.
How to do this is described below.
5. For the terminal window to work in Vim, the library winpty is required.
You can get it at the following url:
@@ -41,8 +34,8 @@ To build the installable .exe file:
For the 32-bit version, rename "winpty.dll" from ia32/bin to "winpty32.dll",
and for the 64-bit version — "winpty.dll" from x64/bin to "winpty64.dll".
Put the renamed file and "winpty-agent.exe" in "../.." (above the "vim91"
directory). However, you can specify another directory by passing
/DVIMTOOLS=<dir> option to the "makensis.exe" program via the command line.
directory). However, you can specify a different directory by specifying
the appropriate makefile value. How to do this is described below.
6. To use stronger encryption, add the Sodium library. You can get it here:
https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip
@@ -52,12 +45,7 @@ To build the installable .exe file:
"../.." directory (above the "vim91" directory, where "diff.exe" and
"winpty{32|64}.dll").
7. On MS Windows do "nmake.exe -f Make_mvc.mak uganda.nsis.txt" in runtime/doc.
On Unix-like system do "make runtime/doc/uganda.nsis.txt" in top directory
or "make uganda.nsis.txt" in runtime/doc. The created files
"uganda.nsis.???" will be automatically converted to DOS file format.
8. Get gettext and iconv DLLs from the following site:
7. Get gettext and iconv DLLs from the following site:
https://github.com/mlocati/gettext-iconv-windows/releases
Both 64- and 32-bit versions are needed.
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
@@ -74,35 +62,47 @@ To build the installable .exe file:
libintl-8.dll
libiconv-2.dll
The default <GETTEXT directory> is "..", however, you can specify another
directory by passing /DGETTEXT=<dir> option to "makensis.exe" program via
the command line.
The default <GETTEXT directory> is "../..". However, you can specify a
different directory by specifying the appropriate makefile value. How to do
this is described below.
Install NSIS if you didn't do that already.
Download Unicode version the ShellExecAsUser plug-in for NSIS from:
8. Install NSIS if you didn't do that already.
Download Unicode version the ShellExecAsUser plug-in for NSIS from:
https://nsis.sourceforge.io/ShellExecAsUser_plug-in
and put ShellExecAsUser.dll to path\to\NSIS\Plugins\x86-unicode
and put "ShellExecAsUser.dll" to path\to\NSIS\Plugins\x86-unicode
Installer assembly stage
Unpack the images:
cd nsis
unzip icons.zip or 7z x icons.zip (on Unix-like or MS Windows)
WinRar.exe x icons.zip (on MS Windows)
On MS Windows, open the Developer Command Prompt for VS and go to the
"/nsis" directory and type the command
nmake.exe -lf Make_mvc.mak [variables] all
Then build gvim.exe:
cd nsis
makensis.exe [options] gvim.nsi
After the installer is created and you copy it to the desired location, run
the following command in the "/nsis" directory
nmake.exe -lf Make_mvc.mak clean
On UNIX-like systems, go to the "/nsis" directory and type the command
make -f Makefile [variables] all
Options (not mandatory):
/DVIMSRC=<dir> — directory where location of gvim_ole.exe, vimw32.exe,
After the installer is created and you copy it to the desired location, run
the following command in the "/nsis" directory
make -f Makefile clean
Variables and their values available for building the installer (not mandatory):
"VIMSRC=<dir>" — directory where location of gvim_ole.exe, vimw32.exe,
GvimExt/*, etc.
/DVIMRT=<dir> — directory where location of runtime files
/DVIMTOOLS=<dir> — directory where location of extra tools: diff.exe,
winpty{32|64}.dll, winpty-agent.exe, libsodium.dll
/DGETTEXT=<dir> — directory where location of gettext libraries
/DHAVE_UPX=1 — additional compression of the installer. UPX program
"VIMRT=<dir>" — directory where location of runtime files.
"VIMTOOLS=<dir>" — directory where location of extra tools: diff.exe,
winpty{32|64}.dll, winpty-agent.exe, libsodium.dll.
"GETTEXT=<dir>" — directory where location of gettext libraries.
"HAVE_UPX=1" — additional compression of the installer. UPX program
must be installed.
/DHAVE_NLS=0 — do not add native language support
/DHAVE_MULTI_LANG=0 — to create an English-only the installer
/DWIN64=1 — to create a 64-bit the installer
"HAVE_NLS=0" — do not add native language support.
"HAVE_MULTI_LANG=0" — to create an English-only the installer.
"WIN64=1" — to create a 64-bit the installer.
"X=<scriptcmd>" — executes scriptcmd in script. If multiple scriptcmd
are specified, they are separated by a semicolon.
Example "X=OutFile MyVim.exe;XPMode on"
"MKNSIS=<dir>" — the directory where the "makensis.exe" program is
located.
+38 -105
View File
@@ -1,6 +1,6 @@
# NSIS file to create a self-installing exe for Vim.
# It requires NSIS version 3.0 or later.
# Last Change: 2024 Mar 20
# Last Change: 2025 Jan 05
Unicode true
@@ -14,19 +14,19 @@ Unicode true
# Location of runtime files
!ifndef VIMRT
!define VIMRT ".."
!define VIMRT "..\runtime"
!endif
# Location of extra tools: diff.exe, winpty{32|64}.dll, winpty-agent.exe, etc.
!ifndef VIMTOOLS
!define VIMTOOLS ..\..
!define VIMTOOLS "..\.."
!endif
# Location of gettext.
# It must contain two directories: gettext32 and gettext64.
# See README.txt for detail.
!ifndef GETTEXT
!define GETTEXT ${VIMRT}
!define GETTEXT ${VIMTOOLS}
!endif
# If you have UPX, use the switch /DHAVE_UPX=1 on the command line makensis.exe.
@@ -74,6 +74,8 @@ Unicode true
!include "nsDialogs.nsh"
!include "Sections.nsh"
!include "x64.nsh"
!include "StrFunc.nsh"
${StrRep}
# See https://nsis.sourceforge.io/LogicLib
;FileExists is already part of LogicLib, but returns true for directories
@@ -246,6 +248,9 @@ Var vim_nsd_mouse
Var vim_compat_stat
Var vim_keymap_stat
Var vim_mouse_stat
!if ${HAVE_NLS}
Var lng_usr
!endif
# Reserve files
@@ -423,6 +428,7 @@ Section "$(str_section_exe)" id_section_exe
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
File ..\vimtutor.bat
File ..\README.txt
File /oname=LICENSE.txt ..\LICENSE
File ..\uninstall.txt
File ${VIMRT}\*.vim
@@ -621,110 +627,23 @@ SectionGroupEnd
Section "$(str_section_nls)" id_section_nls
SectionIn 1 3
#; FIXME: When adding new translations, do not forget to make changes here.
SetOutPath $0
!if /FileExists ..\README.dax.txt
${If} $Language = ${LANG_DANISH}
File ..\README.dax.txt
${EndIf}
SetOutPath $INSTDIR
!if /FileExists "..\lang\README.*.txt"
File ..\lang\README.*.txt
CopyFiles /SILENT /FILESONLY $INSTDIR\README.$lng_usr.txt \
$INSTDIR\vim${VER_MAJOR}${VER_MINOR}\README.$lng_usr.txt
Delete $INSTDIR\README.*.txt
!endif
!if /FileExists ..\README.nlx.txt
${If} $Language = ${LANG_DUTCH}
File ..\README.nlx.txt
${EndIf}
!if /FileExists "..\lang\LICENSE.??.txt"
File ..\lang\LICENSE.??.txt
!if /FileExists "..\lang\LICENSE.??_??.txt"
File ..\lang\LICENSE.??_??.txt
!endif
!if /FileExists ..\README.dex.txt
${If} $Language = ${LANG_GERMAN}
File ..\README.dex.txt
${EndIf}
!endif
!if /FileExists ..\README.itx.txt
${If} $Language = ${LANG_ITALIAN}
File ..\README.itx.txt
${EndIf}
!endif
!if /FileExists ..\README.jax.txt
${If} $Language = ${LANG_JAPANESE}
File ..\README.jax.txt
${EndIf}
!endif
!if /FileExists ..\README.rux.txt
${If} $Language = ${LANG_RUSSIAN}
File ..\README.rux.txt
${EndIf}
!endif
!if /FileExists ..\README.srx.txt
${If} $Language = ${LANG_SERBIAN}
File ..\README.srx.txt
${EndIf}
!endif
!if /FileExists ..\README.cnx.txt
${If} $Language = ${LANG_SIMPCHINESE}
File ..\README.cnx.txt
${EndIf}
!endif
!if /FileExists ..\README.twx.txt
${If} $Language = ${LANG_TRADCHINESE}
File ..\README.twx.txt
${EndIf}
!endif
!if /FileExists ..\README.trx.txt
${OrIf} $Language = ${LANG_TURKISH}
File ..\README.trx.txt
${EndIf}
!endif
#; FIXME: When adding new translations, do not forget to make changes here.
SetOutPath $0\doc
!if /FileExists "${VIMRT}\doc\uganda.dax"
${If} $Language = ${LANG_DANISH}
File ${VIMRT}\doc\uganda.dax
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.nlx"
${If} $Language = ${LANG_DUTCH}
File ${VIMRT}\doc\uganda.nlx
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.dex"
${If} $Language = ${LANG_GERMAN}
File ${VIMRT}\doc\uganda.dex
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.itx"
${If} $Language = ${LANG_ITALIAN}
File ${VIMRT}\doc\uganda.itx
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.jax"
${If} $Language = ${LANG_JAPANESE}
File ${VIMRT}\doc\uganda.jax
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.rux"
${If} $Language = ${LANG_RUSSIAN}
File ${VIMRT}\doc\uganda.rux
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.srx"
${If} $Language = ${LANG_SERBIAN}
File ${VIMRT}\doc\uganda.srx
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.cnx"
${If} $Language = ${LANG_SIMPCHINESE}
File ${VIMRT}\doc\uganda.cnx
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.twx"
${If} $Language = ${LANG_TRADCHINESE}
File ${VIMRT}\doc\uganda.twx
${EndIf}
!endif
!if /FileExists "${VIMRT}\doc\uganda.trx"
${If} $Language = ${LANG_TURKISH}
File ${VIMRT}\doc\uganda.trx
${EndIf}
CopyFiles /SILENT /FILESONLY $INSTDIR\LICENSE.$lng_usr.txt \
$INSTDIR\vim${VER_MAJOR}${VER_MINOR}\LICENSE.$lng_usr.txt
Delete $INSTDIR\LICENSE.*.txt
!endif
SetOutPath $0\lang
File /r /x Makefile ${VIMRT}\lang\*.*
SetOutPath $0
@@ -883,6 +802,20 @@ Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
!endif
!if ${HAVE_NLS}
ClearErrors
System::Call 'kernel32::GetUserDefaultLocaleName(t.r19, *i${NSIS_MAX_STRLEN})'
StrCmp $R9 "zh-cn" coincide 0
StrCmp $R9 "zh-tw" 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:
!endif
${If} $INSTDIR == ${DEFAULT_INSTDIR}
# Check $VIM
ReadEnvStr $3 "VIM"
+1
View File
@@ -3,4 +3,5 @@
!define __GVIM_VER__NSH__
!define VER_MAJOR 9
!define VER_MINOR 1
!define PATCHLEVEL 0
!endif
+5 -5
View File
@@ -18,17 +18,17 @@ allowable length of strings. For example:
drop-down lists on the .vimrc page - 55 characters.
Characters in this case mean characters of the English alphabet.
If you do not yet have a translated "uganda.txt" file and a main "README.txt"
If you do not yet have a translated "LICENSE" file and/or a main "README.txt"
file, set the following values:
for the license file
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
for the readme.txt file
LangString vim_readme_file 0 "README.txt"
Once you have the translations of these files, then set the values for these
variables similarly to what is done in the other translation files.
Also add the appropriate entries to the "gvim.nsi" file as done for other
languages.
Translation files should be located in the "lang" subdirectory of the root
directory. The name of the files is as follows: "README.xx.txt", where xx is the
language code according to ISO639.
+3 -3
View File
@@ -19,15 +19,15 @@ LangString ^UninstallCaption ${LANG_DANISH} "$(^Name) Uninstall"
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_DANISH} "${VIMRT}\doc\uganda.nsis.dax"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_DANISH} "..\lang\LICENSE.da.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_DANISH} "README.dax.txt"
#LangString vim_readme_file ${LANG_DANISH} "README.da.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -21,15 +21,15 @@ LangString ^UninstallCaption ${LANG_DUTCH} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_DUTCH} "${VIMRT}\doc\uganda.nsis.nlx"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_DUTCH} "..\lang\LICENSE.nl.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_DUTCH} "README.nlx.txt"
#LangString vim_readme_file ${LANG_DUTCH} "README.nl.txt"
##############################################################################
# MUI Configuration Strings {{{1
+1 -1
View File
@@ -21,7 +21,7 @@ LangString ^UninstallCaption ${LANG_ENGLISH} \
# License file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file ${LANG_ENGLISH} "${VIMRT}\doc\uganda.nsis.txt"
LicenseLangString page_lic_file ${LANG_ENGLISH} "..\lang\LICENSE.nsis.txt"
##############################################################################
# README.txt file, which is opened after installation {{{1
+3 -3
View File
@@ -21,15 +21,15 @@ LangString ^UninstallCaption ${LANG_GERMAN} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_GERMAN} "${VIMRT}\doc\uganda.nsis.dex"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_GERMAN} "..\lang\LICENSE.de.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_GERMAN} "README.dex.txt"
#LangString vim_readme_file ${LANG_GERMAN} "README.de.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -21,15 +21,15 @@ LangString ^UninstallCaption ${LANG_GREEK} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_GREEK} "${VIMRT}\doc\uganda.nsis.elx"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_GREEK} "..\lang\LICENSE.el.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_GREEK} "README.elx.txt"
#LangString vim_readme_file ${LANG_GREEK} "README.el.txt"
##############################################################################
# MUI Configuration Strings {{{1
+2 -4
View File
@@ -21,15 +21,13 @@ LangString ^UninstallCaption ${LANG_ITALIAN} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_ITALIAN} "${VIMRT}\doc\uganda.nsis.itx"
LicenseLangString page_lic_file ${LANG_ITALIAN} "..\lang\LICENSE.it.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_ITALIAN} "README.itx.txt"
LangString vim_readme_file ${LANG_ITALIAN} "README.it.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -31,15 +31,15 @@ LangString ^InstallBtn ${LANG_JAPANESE} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_JAPANESE} "${VIMRT}\doc\uganda.nsis.jax"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_JAPANESE} "..\lang\LICENSE.ja.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_JAPANESE} "README.jax.txt"
#LangString vim_readme_file ${LANG_JAPANESE} "README.ja.txt"
##############################################################################
# MUI Configuration Strings {{{1
+2 -2
View File
@@ -21,13 +21,13 @@ LangString ^UninstallCaption ${LANG_RUSSIAN} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file ${LANG_RUSSIAN} "${VIMRT}\doc\uganda.nsis.rux"
LicenseLangString page_lic_file ${LANG_RUSSIAN} "..\lang\LICENSE.ru.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file ${LANG_RUSSIAN} "README.rux.txt"
LangString vim_readme_file ${LANG_RUSSIAN} "README.ru.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -21,15 +21,15 @@ LangString ^UninstallCaption ${LANG_SERBIAN} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_SERBIAN} "${VIMRT}\doc\uganda.nsis.srx"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_SERBIAN} "..\lang\LICENSE.sr.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_SERBIAN} "README.srx.txt"
#LangString vim_readme_file ${LANG_SERBIAN} "README.sr.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -22,16 +22,16 @@ LangString ^UninstallCaption ${LANG_SIMPCHINESE} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_SIMPCHINESE} \
# "${VIMRT}\doc\uganda.nsis.cnx"
# "..\lang\LICENSE.zh_cn.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_SIMPCHINESE} "README.cnx.txt"
#LangString vim_readme_file ${LANG_SIMPCHINESE} "README.zh_cn.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -22,16 +22,16 @@ LangString ^UninstallCaption ${LANG_TRADCHINESE} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_TRADCHINESE} \
# "${VIMRT}\doc\uganda.nsis.twx"
# "..\lang\LICENSE.zh_tw.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_TRADCHINESE} "README.twx.txt"
#LangString vim_readme_file ${LANG_TRADCHINESE} "README.zh_tw.txt"
##############################################################################
# MUI Configuration Strings {{{1
+3 -3
View File
@@ -20,15 +20,15 @@ LangString ^UninstallCaption ${LANG_TURKISH} \
# Translated license file for the license page {{{1
##############################################################################
LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt"
#LicenseLangString page_lic_file ${LANG_TURKISH} "${VIMRT}\doc\uganda.nsis.trx"
LicenseLangString page_lic_file 0 "..\lang\LICENSE.nsis.txt"
#LicenseLangString page_lic_file ${LANG_TURKISH} "..\lang\LICENSE.tr.nsis.txt"
##############################################################################
# Translated README.txt file, which is opened after installation {{{1
##############################################################################
LangString vim_readme_file 0 "README.txt"
#LangString vim_readme_file ${LANG_TURKISH} "README.trx.txt"
#LangString vim_readme_file ${LANG_TURKISH} "README.tr.txt"
##############################################################################
+2 -3
View File
@@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2025 Jan 08
# Last Change: 2025 Jan 11
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
# These functions are moved here from runtime/filetype.vim to make startup
@@ -437,7 +437,7 @@ export def FThtml()
while n < 40 && n <= line("$")
# Check for Angular
if getline(n) =~ '@\(if\|for\|defer\|switch\)\|\*\(ngIf\|ngFor\|ngSwitch\|ngTemplateOutlet\)\|ng-template\|ng-content\|{{.*}}'
if getline(n) =~ '@\(if\|for\|defer\|switch\)\|\*\(ngIf\|ngFor\|ngSwitch\|ngTemplateOutlet\)\|ng-template\|ng-content'
setf htmlangular
return
endif
@@ -900,7 +900,6 @@ export def SetFileTypeSH(name: string, setft = true): string
if exists("b:is_sh")
unlet b:is_sh
endif
return SetFileTypeShell("bash", setft)
elseif name =~ '\<sh\>' || name =~ '\<dash\>'
# Ubuntu links "sh" to "dash", thus it is expected to work the same way
b:is_sh = 1
+4 -1
View File
@@ -4,7 +4,7 @@ vim9script
# Invoked from "scripts.vim" in 'runtimepath'
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2023 Aug 10
# Last Change: 2025 Jan 20
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
export def DetectFiletype()
@@ -133,6 +133,9 @@ export def Exe2filetype(name: string, line1: string): string
elseif name =~ 'node\(js\)\=\>\|js\>' || name =~ 'rhino\>'
return 'javascript'
elseif name =~# 'just'
return 'just'
# BC calculator
elseif name =~ '^bc\>'
return 'bc'
-249
View File
@@ -1,249 +0,0 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Nov 15, 2021
" Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E Campbell
" Version: 18
" Last Change:
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrwSettings.vim is provided *as is* and comes with no
" warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
"
" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
" synagogues, preaching the gospel of the kingdom, and healing
" every disease and every sickness among the people.
" Load Once: {{{1
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v18"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
echohl Normal
finish
endif
" ---------------------------------------------------------------------
" NetrwSettings: {{{1
fun! netrwSettings#NetrwSettings()
" this call is here largely just to insure that netrw has been loaded
call netrw#WinPath("")
if !exists("g:loaded_netrw")
echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
return
endif
above wincmd s
enew
setlocal noswapfile bh=wipe
set ft=vim
file Netrw\ Settings
" these variables have the following default effects when they don't
" exist (ie. have not been set by the user in his/her .vimrc)
if !exists("g:netrw_liststyle")
let g:netrw_liststyle= 0
let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
endif
if !exists("g:netrw_silent")
let g:netrw_silent= 0
endif
if !exists("g:netrw_use_nt_rcp")
let g:netrw_use_nt_rcp= 0
endif
if !exists("g:netrw_ftp")
let g:netrw_ftp= 0
endif
if !exists("g:netrw_ignorenetrc")
let g:netrw_ignorenetrc= 0
endif
put ='+ ---------------------------------------------'
put ='+ NetrwSettings: by Charles E. Campbell'
put ='+ Press <F1> with cursor atop any line for help'
put ='+ ---------------------------------------------'
let s:netrw_settings_stop= line(".")
put =''
put ='+ Netrw Protocol Commands'
put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
let s:netrw_protocol_stop= line(".")
put = ''
put ='+Netrw Transfer Control'
put = 'let g:netrw_cygwin = '.g:netrw_cygwin
put = 'let g:netrw_ftp = '.g:netrw_ftp
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
let s:netrw_xfer_stop= line(".")
put =''
put ='+ Netrw Messages'
put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
put = ''
put ='+ Netrw Browser Control'
if exists("g:netrw_altfile")
put = 'let g:netrw_altfile = '.g:netrw_altfile
else
put = 'let g:netrw_altfile = 0'
endif
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
put = 'let g:netrw_banner = '.g:netrw_banner
if exists("g:netrw_bannerbackslash")
put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
else
put = '\" let g:netrw_bannerbackslash = (not defined)'
endif
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
if exists("g:netrw_browsex_viewer")
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
else
put = '\" let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
if exists("g:Netrw_corehandler")
put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
else
put = '\" let g:Netrw_corehandler = (not defined)'
endif
put = 'let g:netrw_ctags = '.g:netrw_ctags
put = 'let g:netrw_cursor = '.g:netrw_cursor
let decompressline= line("$")
put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
if exists("g:netrw_dynamic_maxfilenamelen")
put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
else
put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
let fnameescline= line("$")
put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
let globescline= line("$")
put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
put = 'let g:netrw_hide = '.g:netrw_hide
if exists("g:netrw_home")
put = 'let g:netrw_home = '.g:netrw_home
else
put = '\" let g:netrw_home = (not defined)'
endif
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
if exists("g:netrw_nobeval")
put = 'let g:netrw_nobeval = '.g:netrw_nobeval
else
put = '\" let g:netrw_nobeval = (not defined)'
endif
put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
put = 'let g:netrw_preview = '.g:netrw_preview
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
put = 'let g:netrw_retmap = '.g:netrw_retmap
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_servername = '.g:netrw_servername
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
let tmpfileescline= line("$")
put ='let g:netrw_tmpfile_escape...'
put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
put = 'let g:netrw_winsize = '.g:netrw_winsize
put =''
put ='+ For help, place cursor on line and press <F1>'
1d
silent %s/^+/"/e
res 99
silent %s/= \([^0-9].*\)$/= '\1'/e
silent %s/= $/= ''/e
1
call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
call setline(tmpfileescline,"let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
set nomod
nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
let tmpfile= tempname()
exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
endfun
" ---------------------------------------------------------------------
" NetrwSettingHelp: {{{2
fun! NetrwSettingHelp()
" call Dfunc("NetrwSettingHelp()")
let curline = getline(".")
if curline =~ '='
let varhelp = substitute(curline,'^\s*let ','','e')
let varhelp = substitute(varhelp,'\s*=.*$','','e')
" call Decho("trying help ".varhelp)
try
exe "he ".varhelp
catch /^Vim\%((\a\+)\)\=:E149/
echo "***sorry*** no help available for <".varhelp.">"
endtry
elseif line(".") < s:netrw_settings_stop
he netrw-settings
elseif line(".") < s:netrw_protocol_stop
he netrw-externapp
elseif line(".") < s:netrw_xfer_stop
he netrw-variables
else
he netrw-browse-var
endif
" call Dret("NetrwSettingHelp")
endfun
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim:ts=8 fdm=marker
+5 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -77,6 +77,7 @@ hi Type guifg=#ffa500 guibg=NONE gui=bold cterm=NONE
hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
hi Label guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link Debug Special
hi! link Added String
hi! link Removed WarningMsg
@@ -189,6 +190,7 @@ if s:t_Co >= 256
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Label ctermfg=220 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link Debug Special
hi! link Added String
hi! link Removed WarningMsg
@@ -304,6 +306,7 @@ if s:t_Co >= 16
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link Debug Special
hi! link Added String
hi! link Removed WarningMsg
@@ -418,6 +421,7 @@ if s:t_Co >= 8
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link Debug Special
hi! link Added String
hi! link Removed WarningMsg
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -19,6 +19,7 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff']
endif
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi! link EndOfBuffer NonText
@@ -129,6 +130,7 @@ hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link CursorColumn CursorLine
hi! link CursorIM Cursor
hi! link EndOfBuffer NonText
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -19,6 +19,7 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
endif
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
@@ -95,6 +96,7 @@ hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -27,6 +27,7 @@ hi! link CursorLineSign CursorLine
hi! link EndOfBuffer NonText
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
@@ -103,6 +104,7 @@ if s:t_Co >= 256
hi! link EndOfBuffer NonText
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
+4 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -19,6 +19,7 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi! link VertSplit StatusLineNC
hi! link PopupSelected PmenuSel
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLineFill TabLine
@@ -129,6 +130,7 @@ hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi! link VertSplit StatusLineNC
hi! link PopupSelected PmenuSel
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLineFill TabLine
@@ -242,6 +244,7 @@ endif
if s:t_Co >= 16
hi! link VertSplit StatusLineNC
hi! link PopupSelected PmenuSel
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link TabLineFill TabLine
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -22,6 +22,7 @@ hi! link Terminal Normal
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupSelected PmenuSel
hi! link javaScriptFunction Statement
hi! link javaScriptIdentifier Statement
hi! link sqlKeyword Statement
@@ -117,6 +118,7 @@ if s:t_Co >= 256
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupSelected PmenuSel
hi! link javaScriptFunction Statement
hi! link javaScriptIdentifier Statement
hi! link sqlKeyword Statement
+4 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Shian Lee.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -81,6 +81,7 @@ hi Conceal guifg=#6c6c6c guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
@@ -157,6 +158,7 @@ if s:t_Co >= 256
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=201 ctermbg=NONE cterm=bold
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
@@ -236,6 +238,7 @@ if s:t_Co >= 16
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
hi! link Terminal Normal
hi! link PopupSelected PmenuSel
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link CurSearch Search
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://www.github.com/vim/colorschemes
" License: Vim License (see `:help license`)
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -92,6 +92,7 @@ hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
if &background ==# 'dark'
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#d787d7', '#5fafaf', '#c6c6c6', '#767676', '#ff5f5f', '#5fd75f', '#ffd787', '#5fafff', '#ff87ff', '#5fd7d7', '#ffffff']
@@ -360,6 +361,7 @@ if s:t_Co >= 256
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
if &background ==# 'dark'
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
hi Statusline ctermfg=251 ctermbg=16 cterm=bold,reverse
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -28,6 +28,7 @@ hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=bold
hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
@@ -102,6 +103,7 @@ if s:t_Co >= 256
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=16 ctermbg=254 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=bold
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -28,6 +28,7 @@ hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link Added Constant
hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
@@ -103,6 +104,7 @@ if s:t_Co >= 256
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link Added Constant
hi Normal ctermfg=120 ctermbg=16 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
+3 -1
View File
@@ -3,7 +3,7 @@
" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -25,6 +25,7 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
@@ -100,6 +101,7 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=231 ctermbg=16 cterm=NONE
hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -26,6 +26,7 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
@@ -100,6 +101,7 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=16 ctermbg=223 cterm=NONE
hi Folded ctermfg=16 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
+2 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Maxence Weynans <neutaaaaan@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)`
" Last Change: 2024 Aug 05
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -21,6 +21,7 @@ hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
+2 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>, ported from gruvbox8 of Lifepillar <lifepillar@lifepillar.me>
" Website: https://www.github.com/vim/colorschemes
" License: Vim License (see `:help license`)
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -21,6 +21,7 @@ hi! link Tag Special
hi! link lCursor Cursor
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link CurSearch IncSearch
hi! link Terminal Normal
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -30,6 +30,7 @@ hi! link Tag Special
hi! link Operator Statement
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
@@ -110,6 +111,7 @@ if s:t_Co >= 256
hi! link Operator Statement
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Folded ctermfg=18 ctermbg=253 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ralph Amissah <ralph@amissah.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -26,6 +26,7 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
@@ -105,6 +106,7 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=231 ctermbg=235 cterm=NONE
hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
+2 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Maxence Weynans <neutaaaaan@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)`
" Last Change: 2024 Aug 05
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -20,6 +20,7 @@ hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Thorsten Maerz <info@netztorte.de>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -28,6 +28,7 @@ hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
@@ -103,6 +104,7 @@ if s:t_Co >= 256
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+521
View File
@@ -0,0 +1,521 @@
" Name: unokai
" Description: Color scheme similar to Monokai originally created by Wimer Hazenberg for TextMate
" Author: k-37 <60838818+k-37@users.noreply.github.com>
" Maintainer: k-37 <60838818+k-37@users.noreply.github.com>
" Website: https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)
" Last Change: 2024 Dec 15
" Generated by Colortemplate v2.2.3
set background=dark
hi clear
let g:colors_name = 'unokai'
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
let s:italics = has('gui_running') || (&t_ZH != '' && &t_ZH != '' && !has('win32'))
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#282923', '#c61e5c', '#81af24', '#fd971f', '#51aebe', '#ae81ff', '#80beb5', '#bababa', '#74705d', '#f92672', '#a6e22e', '#e6db74', '#66d9ef', '#fd5ff0', '#a1efe4', '#f8f8f2']
endif
hi! link CursorLineFold FoldColumn
hi! link CursorLineSign SignColumn
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link Terminal Normal
hi! link Delimiter PreProc
hi! link Operator PreProc
hi! link StorageClass PreProc
hi! link Structure PreProc
hi! link Define Identifier
hi! link Label String
hi! link markdownCode Comment
hi! link markdownCodeBlock markdownCode
hi! link markdownCodeDelimiter markdownCode
hi Normal guifg=#f8f8f2 guibg=#282923 gui=NONE cterm=NONE
hi StatusLine guifg=#282923 guibg=#bababa gui=NONE cterm=NONE
hi StatusLineNC guifg=#282923 guibg=#74705d gui=NONE cterm=NONE
hi VertSplit guifg=#74705d guibg=#74705d gui=NONE cterm=NONE
hi TabLine guifg=#282923 guibg=#74705d gui=NONE cterm=NONE
hi TabLineFill guifg=#282923 guibg=#74705d gui=NONE cterm=NONE
hi TabLineSel guifg=#282923 guibg=#bababa gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#74705d guibg=#f8f8f2 gui=bold,reverse cterm=bold,reverse
hi QuickFixLine guifg=#282923 guibg=#51aebe gui=NONE cterm=NONE
hi CursorLineNr guifg=#dadada guibg=NONE gui=bold cterm=bold
hi LineNr guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi LineNrAbove guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi LineNrBelow guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi EndOfBuffer guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=#a1efe4 guibg=#282923 gui=reverse cterm=reverse
hi VisualNOS guifg=#282923 guibg=#80beb5 gui=NONE cterm=NONE
hi Pmenu guifg=NONE guibg=#585858 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#74705d gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=NONE guibg=#8a8a8a gui=NONE cterm=NONE
hi PmenuKind guifg=#80beb5 guibg=#585858 gui=NONE cterm=NONE
hi PmenuKindSel guifg=#80beb5 guibg=#8a8a8a gui=NONE cterm=NONE
hi PmenuExtra guifg=#bababa guibg=#585858 gui=NONE cterm=NONE
hi PmenuExtraSel guifg=#bababa guibg=#8a8a8a gui=NONE cterm=NONE
hi PmenuMatch guifg=#ffaf5f guibg=#585858 gui=NONE cterm=NONE
hi PmenuMatchSel guifg=#ffaf5f guibg=#8a8a8a gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error guifg=#f92672 guibg=#000000 gui=reverse cterm=reverse
hi ErrorMsg guifg=#f92672 guibg=#000000 gui=reverse cterm=reverse
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg guifg=#81af24 guibg=NONE gui=NONE cterm=NONE
hi Question guifg=#e6db74 guibg=NONE gui=NONE cterm=NONE
hi WarningMsg guifg=#f92672 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#dadada guibg=NONE gui=bold cterm=bold
hi MatchParen guifg=#fd971f guibg=NONE gui=bold cterm=bold
hi Search guifg=#66d9ef guibg=#282923 gui=reverse cterm=reverse
hi IncSearch guifg=#ffaf5f guibg=#282923 gui=reverse cterm=reverse
hi CurSearch guifg=#ffaf5f guibg=#282923 gui=reverse cterm=reverse
hi WildMenu guifg=#282923 guibg=#e6db74 gui=bold cterm=bold
hi debugPC guifg=#282923 guibg=#51aebe gui=NONE cterm=NONE
hi debugBreakpoint guifg=#282923 guibg=#f92672 gui=NONE cterm=NONE
hi Cursor guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
hi lCursor guifg=#282923 guibg=#5fff00 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#3a392f gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#3a392f gui=NONE cterm=NONE
hi Folded guifg=#bababa guibg=#414141 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#585858 gui=NONE cterm=NONE
hi SpellBad guifg=NONE guibg=NONE guisp=#d75f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
hi SpellCap guifg=NONE guibg=NONE guisp=#ffaf5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
hi SpellLocal guifg=NONE guibg=NONE guisp=#5fd75f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
hi SpellRare guifg=NONE guibg=NONE guisp=#fd5ff0 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
hi Constant guifg=#ae81ff guibg=NONE gui=NONE cterm=NONE
hi Type guifg=#fd971f guibg=NONE gui=bold cterm=bold
hi Character guifg=#a6e22e guibg=NONE gui=NONE cterm=NONE
hi Comment guifg=#74705d guibg=NONE gui=NONE cterm=NONE
hi String guifg=#e6db74 guibg=NONE gui=NONE cterm=NONE
hi Function guifg=#a6e22e guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#66d9ef guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#f92672 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#80beb5 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#f92672 guibg=NONE gui=bold cterm=bold
hi Underlined guifg=#66d9ef guibg=NONE gui=underline cterm=underline
hi Title guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
hi Debug guifg=#80beb5 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory guifg=#a1efe4 guibg=NONE gui=bold cterm=bold
hi Conceal guifg=#8a8a8a guibg=NONE gui=NONE cterm=NONE
hi DiffAdd guifg=#5faf5f guibg=NONE gui=reverse cterm=reverse
hi DiffChange guifg=#5f87af guibg=NONE gui=reverse cterm=reverse
hi DiffText guifg=#af87af guibg=NONE gui=reverse cterm=reverse
hi DiffDelete guifg=#af5f5f guibg=NONE gui=reverse cterm=reverse
hi Added guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
hi Changed guifg=#ffaf5f guibg=NONE gui=NONE cterm=NONE
hi Removed guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
hi htmlBold guifg=#f8f8f2 guibg=NONE gui=bold cterm=bold
hi htmlItalic guifg=#f8f8f2 guibg=NONE gui=italic cterm=italic
hi markdownHeadingDelimiter guifg=#f8f8f2 guibg=NONE gui=NONE cterm=NONE
hi markdownH1Delimiter guifg=#f92672 guibg=NONE gui=NONE cterm=NONE
hi markdownH2Delimiter guifg=#e6db74 guibg=NONE gui=NONE cterm=NONE
hi markdownH4Delimiter guifg=#66d9ef guibg=NONE gui=NONE cterm=NONE
hi markdownH6Delimiter guifg=#a6e22e guibg=NONE gui=NONE cterm=NONE
hi markdownH3Delimiter guifg=#fd971f guibg=NONE gui=NONE cterm=NONE
hi markdownH5Delimiter guifg=#51aebe guibg=NONE gui=NONE cterm=NONE
if !s:italics
hi htmlItalic gui=NONE cterm=NONE
endif
if s:t_Co >= 256
hi! link CursorLineFold FoldColumn
hi! link CursorLineSign SignColumn
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link Terminal Normal
hi! link Delimiter PreProc
hi! link Operator PreProc
hi! link StorageClass PreProc
hi! link Structure PreProc
hi! link Define Identifier
hi! link Label String
hi! link markdownCode Comment
hi! link markdownCodeBlock markdownCode
hi! link markdownCodeDelimiter markdownCode
hi Normal ctermfg=255 ctermbg=235 cterm=NONE
hi StatusLine ctermfg=235 ctermbg=250 cterm=NONE
hi StatusLineNC ctermfg=235 ctermbg=244 cterm=NONE
hi VertSplit ctermfg=244 ctermbg=244 cterm=NONE
hi TabLine ctermfg=235 ctermbg=244 cterm=NONE
hi TabLineFill ctermfg=235 ctermbg=244 cterm=NONE
hi TabLineSel ctermfg=235 ctermbg=250 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=244 ctermbg=255 cterm=bold,reverse
hi QuickFixLine ctermfg=235 ctermbg=141 cterm=NONE
hi CursorLineNr ctermfg=253 ctermbg=NONE cterm=bold
hi LineNr ctermfg=245 ctermbg=NONE cterm=NONE
hi LineNrAbove ctermfg=245 ctermbg=NONE cterm=NONE
hi LineNrBelow ctermfg=245 ctermbg=NONE cterm=NONE
hi NonText ctermfg=245 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=245 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=245 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=245 ctermbg=NONE cterm=NONE
hi Visual ctermfg=116 ctermbg=235 cterm=reverse
hi VisualNOS ctermfg=235 ctermbg=73 cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=240 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=244 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=NONE ctermbg=245 cterm=NONE
hi PmenuKind ctermfg=73 ctermbg=240 cterm=NONE
hi PmenuKindSel ctermfg=73 ctermbg=245 cterm=NONE
hi PmenuExtra ctermfg=250 ctermbg=240 cterm=NONE
hi PmenuExtraSel ctermfg=250 ctermbg=245 cterm=NONE
hi PmenuMatch ctermfg=215 ctermbg=240 cterm=NONE
hi PmenuMatchSel ctermfg=215 ctermbg=245 cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=197 ctermbg=16 cterm=reverse
hi ErrorMsg ctermfg=197 ctermbg=16 cterm=reverse
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=106 ctermbg=NONE cterm=NONE
hi Question ctermfg=185 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=197 ctermbg=NONE cterm=NONE
hi Todo ctermfg=253 ctermbg=NONE cterm=bold
hi MatchParen ctermfg=208 ctermbg=NONE cterm=bold
hi Search ctermfg=81 ctermbg=235 cterm=reverse
hi IncSearch ctermfg=215 ctermbg=235 cterm=reverse
hi CurSearch ctermfg=215 ctermbg=235 cterm=reverse
hi WildMenu ctermfg=235 ctermbg=185 cterm=bold
hi debugPC ctermfg=235 ctermbg=73 cterm=NONE
hi debugBreakpoint ctermfg=235 ctermbg=197 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
hi Folded ctermfg=250 ctermbg=238 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=240 cterm=NONE
hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=215 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=77 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=207 ctermbg=NONE cterm=underline
hi Constant ctermfg=141 ctermbg=NONE cterm=NONE
hi Type ctermfg=208 ctermbg=NONE cterm=bold
hi Character ctermfg=112 ctermbg=NONE cterm=NONE
hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
hi String ctermfg=185 ctermbg=NONE cterm=NONE
hi Function ctermfg=112 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=81 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=197 ctermbg=NONE cterm=NONE
hi Special ctermfg=73 ctermbg=NONE cterm=NONE
hi Statement ctermfg=197 ctermbg=NONE cterm=bold
hi Underlined ctermfg=81 ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Debug ctermfg=73 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory ctermfg=116 ctermbg=NONE cterm=bold
hi Conceal ctermfg=245 ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=71 ctermbg=NONE cterm=reverse
hi DiffChange ctermfg=67 ctermbg=NONE cterm=reverse
hi DiffText ctermfg=139 ctermbg=NONE cterm=reverse
hi DiffDelete ctermfg=131 ctermbg=NONE cterm=reverse
hi Added ctermfg=77 ctermbg=NONE cterm=NONE
hi Changed ctermfg=215 ctermbg=NONE cterm=NONE
hi Removed ctermfg=167 ctermbg=NONE cterm=NONE
hi htmlBold ctermfg=255 ctermbg=NONE cterm=bold
hi htmlItalic ctermfg=255 ctermbg=NONE cterm=underline
hi markdownHeadingDelimiter ctermfg=255 ctermbg=NONE cterm=NONE
hi markdownH1Delimiter ctermfg=197 ctermbg=NONE cterm=NONE
hi markdownH2Delimiter ctermfg=185 ctermbg=NONE cterm=NONE
hi markdownH4Delimiter ctermfg=81 ctermbg=NONE cterm=NONE
hi markdownH6Delimiter ctermfg=112 ctermbg=NONE cterm=NONE
hi markdownH3Delimiter ctermfg=208 ctermbg=NONE cterm=NONE
hi markdownH5Delimiter ctermfg=73 ctermbg=NONE cterm=NONE
unlet s:t_Co s:italics
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi StatusLine ctermfg=black ctermbg=gray cterm=NONE
hi StatusLineNC ctermfg=black ctermbg=darkgray cterm=NONE
hi VertSplit ctermfg=darkgray ctermbg=darkgray cterm=NONE
hi TabLine ctermfg=black ctermbg=darkgray cterm=NONE
hi TabLineFill ctermfg=black ctermbg=darkgray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=darkgray ctermbg=white cterm=bold,reverse
hi QuickFixLine ctermfg=black ctermbg=darkmagenta cterm=NONE
hi CursorLineNr ctermfg=white ctermbg=NONE cterm=bold
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi LineNrAbove ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi LineNrBelow ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=cyan ctermbg=black cterm=reverse
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
hi Pmenu ctermfg=black ctermbg=gray cterm=NONE
hi PmenuThumb ctermfg=gray ctermbg=black cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuKind ctermfg=darkred ctermbg=gray cterm=NONE
hi PmenuKindSel ctermfg=darkred ctermbg=darkyellow cterm=NONE
hi PmenuExtra ctermfg=darkgray ctermbg=gray cterm=NONE
hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuMatch ctermfg=black ctermbg=gray cterm=bold
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=red ctermbg=black cterm=reverse
hi ErrorMsg ctermfg=red ctermbg=black cterm=reverse
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi Todo ctermfg=white ctermbg=NONE cterm=bold
hi MatchParen ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Search ctermfg=blue ctermbg=black cterm=reverse
hi IncSearch ctermfg=red ctermbg=black cterm=reverse
hi CurSearch ctermfg=red ctermbg=black cterm=reverse
hi WildMenu ctermfg=black ctermbg=yellow cterm=bold
hi debugPC ctermfg=black ctermbg=darkblue cterm=NONE
hi debugBreakpoint ctermfg=black ctermbg=red cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi Folded ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
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 Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Character ctermfg=green ctermbg=NONE cterm=NONE
hi Comment ctermfg=darkgray ctermbg=NONE cterm=NONE
hi String ctermfg=yellow ctermbg=NONE cterm=NONE
hi Function ctermfg=green ctermbg=NONE cterm=NONE
hi Identifier ctermfg=blue ctermbg=NONE cterm=NONE
hi PreProc ctermfg=red ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Statement ctermfg=red ctermbg=NONE cterm=bold
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory ctermfg=cyan ctermbg=NONE cterm=bold
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=NONE cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=NONE cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=reverse
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Changed ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi htmlBold ctermfg=white ctermbg=NONE cterm=bold
hi htmlItalic ctermfg=white ctermbg=NONE cterm=underline
hi markdownHeadingDelimiter ctermfg=white ctermbg=NONE cterm=NONE
hi markdownH1Delimiter ctermfg=red ctermbg=NONE cterm=NONE
hi markdownH2Delimiter ctermfg=yellow ctermbg=NONE cterm=NONE
hi markdownH4Delimiter ctermfg=blue ctermbg=NONE cterm=NONE
hi markdownH6Delimiter ctermfg=green ctermbg=NONE cterm=NONE
hi markdownH3Delimiter ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi markdownH5Delimiter ctermfg=darkblue ctermbg=NONE cterm=NONE
unlet s:t_Co s:italics
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=gray ctermbg=black cterm=NONE
hi StatusLine ctermfg=gray ctermbg=black cterm=bold,reverse
hi StatusLineNC ctermfg=gray ctermbg=black cterm=reverse
hi VertSplit ctermfg=gray ctermbg=gray cterm=NONE
hi TabLine ctermfg=black ctermbg=gray cterm=NONE
hi TabLineFill ctermfg=gray ctermbg=gray cterm=NONE
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=gray ctermbg=black cterm=reverse
hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
hi LineNr ctermfg=gray ctermbg=NONE cterm=bold
hi LineNrAbove ctermfg=gray ctermbg=NONE cterm=bold
hi LineNrBelow ctermfg=gray ctermbg=NONE cterm=bold
hi NonText ctermfg=gray ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=gray ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=gray ctermbg=NONE cterm=bold
hi FoldColumn ctermfg=gray ctermbg=NONE cterm=bold
hi Visual ctermfg=black ctermbg=darkcyan cterm=NONE
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
hi Pmenu ctermfg=black ctermbg=gray cterm=NONE
hi PmenuThumb ctermfg=gray ctermbg=black cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuKind ctermfg=darkred ctermbg=gray cterm=NONE
hi PmenuKindSel ctermfg=darkred ctermbg=darkyellow cterm=NONE
hi PmenuExtra ctermfg=black ctermbg=gray cterm=NONE
hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi PmenuMatch ctermfg=black ctermbg=gray cterm=bold
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=gray cterm=bold,reverse
hi ErrorMsg ctermfg=darkred ctermbg=gray cterm=bold,reverse
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=gray ctermbg=NONE cterm=bold
hi MatchParen ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Search ctermfg=black ctermbg=darkblue cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkyellow cterm=NONE
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi debugPC ctermfg=black ctermbg=darkblue cterm=NONE
hi debugBreakpoint ctermfg=black ctermbg=darkcyan cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi Folded ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=gray cterm=reverse
hi SpellCap ctermfg=darkblue ctermbg=gray cterm=reverse
hi SpellLocal ctermfg=darkgreen ctermbg=black cterm=reverse
hi SpellRare ctermfg=darkmagenta ctermbg=gray cterm=reverse
hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Character ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Comment ctermfg=gray ctermbg=NONE cterm=bold
hi String ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Function ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkblue ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkred ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Statement ctermfg=darkred ctermbg=NONE cterm=bold
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
hi Conceal ctermfg=gray ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=darkgreen ctermbg=NONE cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=NONE cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=NONE cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=reverse
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Changed ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi htmlBold ctermfg=gray ctermbg=NONE cterm=bold
hi htmlItalic ctermfg=gray ctermbg=NONE cterm=underline
hi markdownHeadingDelimiter ctermfg=gray ctermbg=NONE cterm=NONE
hi markdownH1Delimiter ctermfg=darkred ctermbg=NONE cterm=NONE
hi markdownH2Delimiter ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi markdownH4Delimiter ctermfg=darkblue ctermbg=NONE cterm=NONE
hi markdownH6Delimiter ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi markdownH3Delimiter ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi markdownH5Delimiter ctermfg=darkblue ctermbg=NONE cterm=NONE
unlet s:t_Co s:italics
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co s:italics
finish
endif
" Background: dark
" Color: color00 #282923 235 black
" Color: color08 #74705d 244 darkgray
" Color: color01 #c61e5c 125 darkred
" Color: color09 #f92672 197 red
" Color: color02 #81af24 106 darkgreen
" Color: color10 #a6e22e 112 green
" Color: color03 #fd971f 208 darkyellow
" Color: color11 #e6db74 185 yellow
" Color: color04 #51aebe 73 darkblue
" Color: color12 #66d9ef 81 blue
" Color: color05 #ae81ff 141 darkmagenta
" Color: color13 #fd5ff0 207 magenta
" Color: color06 #80beb5 73 darkcyan
" Color: color14 #a1efe4 116 cyan
" Color: color07 #bababa 250 gray
" Color: color15 #f8f8f2 255 white
" Color: colorLine #3a392f 237 darkgrey
" Color: colorB #585858 240 darkgrey
" Color: colorF #414141 238 darkgrey
" Color: colorNonT #8a8a8a 245 darkgrey
" Color: colorC #ffaf5f 215 red
" Color: colorlC #5fff00 82 green
" Color: colorV #1f3f5f 109 cyan
" Color: colorMP #fd971f 208 darkyellow
" Color: diffAdd #5faf5f 71 darkgreen
" Color: diffDelete #af5f5f 131 darkred
" Color: diffChange #5f87af 67 darkblue
" Color: diffText #af87af 139 darkmagenta
" Color: black #000000 16 black
" Color: white #dadada 253 white
" Color: Added #5fd75f 77 darkgreen
" Color: Changed #ffaf5f 215 darkyellow
" Color: Removed #d75f5f 167 darkred
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" vim: et ts=8 sw=2 sts=2
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -20,6 +20,7 @@ hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link CurSearch IncSearch
if &background ==# 'dark'
if (has('termguicolors') && &termguicolors) || has('gui_running')
@@ -185,6 +186,7 @@ if s:t_Co >= 256
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi! link CurSearch IncSearch
if &background ==# 'dark'
hi Normal ctermfg=252 ctermbg=16 cterm=NONE
+5 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -91,6 +91,7 @@ hi! link TabLineFill StatusLineNC
hi! link TabLineSel StatusLine
hi! link Terminal Normal
hi! link lCursor Cursor
hi! link PopupSelected PmenuSel
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@@ -196,6 +197,7 @@ if s:t_Co >= 256
hi! link TabLineSel StatusLine
hi! link Terminal Normal
hi! link lCursor Cursor
hi! link PopupSelected PmenuSel
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@@ -304,6 +306,7 @@ if s:t_Co >= 16
hi! link TabLineSel StatusLine
hi! link Terminal Normal
hi! link lCursor Cursor
hi! link PopupSelected PmenuSel
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
@@ -412,6 +415,7 @@ if s:t_Co >= 8
hi! link TabLineSel StatusLine
hi! link Terminal Normal
hi! link lCursor Cursor
hi! link PopupSelected PmenuSel
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
+3 -1
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Change: 2024 Aug 15
" Last Change: 2025 Jan 07
" Generated by Colortemplate v2.2.3
@@ -26,6 +26,7 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
@@ -101,6 +102,7 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link PopupSelected PmenuSel
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
+4 -13
View File
@@ -12,7 +12,7 @@
# Correct the following line for the where executable file vim is installed.
# Please do not put the path in quotes.
VIMPROG = D:\Programs\Vim\vim91\vim.exe
VIMPROG = ..\..\src\vim.exe
# Correct the following line for the directory where iconv installed.
# Please do not put the path in quotes.
@@ -54,7 +54,7 @@ tags : doctags $(DOCS)
doctags.exe $(DOCS) | sort /L C /O tags
$(PS) $(PSFLAGS) \
(Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ -replace \"`r\", \"\"}) \
^| New-Item -Path . -Force -ItemType file -Name tags
^| New-Item -Path . -Name tags -ItemType file -Force
doctags : doctags.c
$(CC) doctags.c
@@ -65,15 +65,6 @@ doctags : doctags.c
vimtags : $(DOCS)
@"$(VIMPROG)" --clean -esX -V1 -u doctags.vim
uganda.nsis.txt : uganda.???
! $(PS) $(PSFLAGS) (Get-Content $? -Encoding UTF8 \
^| %%{$$_ -replace '[\t\s]*\*.*\*', '' -replace 'vim:tw=\d\d:.*', ''}) \
^| Set-Content \"$(@B)$$((Get-Item $?).Extension)\" -Encoding Unicode
! $(PS) $(PSFLAGS)\
(Get-Content $(@B)$$((Get-Item $?).Extension) -Raw).Trim() -replace '(\r\n){3,}', '$$1$$1' \
^| Set-Content \"$(@B)$$((Get-Item $?).Extension)\" -Encoding Unicode
# TODO:
#html: noerrors tags $(HTMLS)
# if exist errors.log (more errors.log)
@@ -108,8 +99,8 @@ test_urls :
"$(VIMPROG)" --clean -S test_urls.vim
clean :
$(RM) doctags.exe doctags.obj
$(RM) *.html vim-stylesheet.css
- $(RM) doctags.exe doctags.obj
- $(RM) *.html vim-stylesheet.css
arabic.txt :
-10
View File
@@ -49,16 +49,6 @@ vimtutor.man: vimtutor.1
xxd.man: xxd.1
nroff -man $? | sed -e s/.//g > $@
uganda.nsis.txt : uganda.???
for dpn in $?; do \
trg=$@; \
sed -e 's/[ ]*\*.*\*//g' -e 's/vim:tw=[[:digit:]][[:digit:]]:.*//' \
$${dpn} | uniq > $${trg%txt}$${dpn##*.}; \
done
# This files needs to be in dos fileformat for NSIS.
$(VIMPROG) -e -X -u NONE --cmd "set notitle noicon nocp noml viminfo=" \
-c "argdo write ++ff=dos" -c "qa" uganda.nsis.???
# Awk version of .txt to .html conversion.
html: noerrors tags $(HTMLS)
@if test -f errors.log; then more errors.log; fi
+80 -4
View File
@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.1. Last change: 2025 Jan 06
*builtin.txt* For Vim version 9.1. Last change: 2025 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -72,6 +72,7 @@ base64_encode({blob}) String base64 encode the bytes in {blob}
bindtextdomain({package}, {path})
Bool bind text domain to specified path
blob2list({blob}) List convert {blob} into a list of numbers
blob2str({blob} [, {options}]) List convert {blob} into a list of strings
browse({save}, {title}, {initdir}, {default})
String put up a file requester
browsedir({title}, {initdir}) String put up a directory requester
@@ -611,6 +612,8 @@ split({expr} [, {pat} [, {keepempty}]])
sqrt({expr}) Float square root of {expr}
srand([{expr}]) List get seed for |rand()|
state([{what}]) String current state of Vim
str2blob({list} [, {options}])
Blob convert list of strings into a Blob
str2float({expr} [, {quoted}]) Float convert String to Float
str2list({expr} [, {utf8}]) List convert each character of {expr} to
ASCII/UTF-8 value
@@ -1243,7 +1246,7 @@ base64_decode({string}) *base64_decode()*
" Write the decoded contents to a binary file
call writefile(base64_decode(s), 'tools.bmp')
" Decode a base64-encoded string
echo list2str(blob2list(base64_decode(encodedstr)))
echo blob2str(base64_decode(encodedstr))
<
Can also be used as a |method|: >
GetEncodedString()->base64_decode()
@@ -1259,7 +1262,7 @@ base64_encode({blob}) *base64_encode()*
" Encode the contents of a binary file
echo base64_encode(readblob('somefile.bin'))
" Encode a string
echo base64_encode(list2blob(str2list(somestr)))
echo base64_encode(str2blob([somestr]))
<
Can also be used as a |method|: >
GetBinaryData()->base64_encode()
@@ -1291,6 +1294,42 @@ blob2list({blob}) *blob2list()*
<
Return type: list<any> or list<number>
blob2str({blob} [, {options}]) *blob2str()*
Return a List of Strings in the current 'encoding' by
converting the bytes in {blob} into characters.
Each <NL> byte in the blob is interpreted as the end of a
string and a new list item is added. Each <NUL> byte in the
blob is converted into a <NL> character.
If {options} is not supplied, the current 'encoding' value is
used to decode the bytes in {blob}.
The argument {options} is a |Dict| and supports the following
items:
encoding Decode the bytes in {blob} using this
encoding. The value is a |String|. See
|encoding-names| for the supported values.
*E1515*
An error is given and an empty List is returned if
an invalid byte sequence is encountered in {blob},
Returns an empty List if blob is empty.
See also |str2blob()|
Examples: >
blob2str(0z6162) returns ["ab"]
blob2str(0zC2ABC2BB) returns ["«»"]
blob2str(0zABBB, {'encoding': 'latin1'}) returns ["«»"]
<
Can also be used as a |method|: >
GetBlob()->blob2str()
<
Return type: list<string>
*browse()*
browse({save}, {title}, {initdir}, {default})
Put up a file requester. This only works when "has("browse")"
@@ -1913,7 +1952,8 @@ complete_info([{what}]) *complete_info()*
typed text only, or the last completion after
no item is selected when using the <Up> or
<Down> keys)
inserted Inserted string. [NOT IMPLEMENTED YET]
completed Return a dictionary containing the entries of
the currently selected index item.
*complete_info_mode*
mode values are:
@@ -10580,6 +10620,42 @@ state([{what}]) *state()*
Return type: |String|
str2blob({list} [, {options}]) *str2blob()*
Return a Blob by converting the characters in the List of
strings in {list} into bytes.
A <NL> byte is added to the blob after each list item. A
newline character in the string is translated into a <NUL>
byte in the blob.
If {options} is not supplied, the current 'encoding' value is
used to convert the characters into bytes.
The argument {options} is a |Dict| and supports the following
items:
encoding Encode the characters using this encoding.
The value is a |String|. See |encoding-names|
for the supported values.
An error is given and an empty blob is returned if the
character encoding fails.
Returns an empty Blob if {list} is empty.
See also |blob2str()|
Examples: >
str2blob(["ab"]) returns 0z6162
str2blob(["«»"]) returns 0zC2ABC2BB
str2blob(["a\nb"]) returns 0z610A62
str2blob(readfile('myfile.txt'))
str2blob(["«»"], {'encoding': 'latin1'}) returns 0zABBB
<
Can also be used as a |method|: >
GetListOfStrings()->str2blob()
<
Return type: |Blob|
str2float({string} [, {quoted}]) *str2float()*
Convert String {string} to a Float. This mostly works the
same as when using a floating point number in an expression,
+3 -3
View File
@@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 9.1. Last change: 2024 Dec 26
*helphelp.txt* For Vim version 9.1. Last change: 2025 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -247,10 +247,10 @@ command: >
(requires write permission there): >
:helptags $VIMRUNTIME/doc
<
*:HelpToc* *help-TOC* *help-toc-install*
*:HelpToc* *help-TOC* *help-toc-install* *package-helptoc*
If you want to access an interactive table of contents, from any position in
the file, you can use the helptoc plugin. Load the plugin with: >
the file, you can use the helptoc plugin. Load the plugin with: >vim
packadd helptoc
+59 -44
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2024 Dec 28
*options.txt* For Vim version 9.1. Last change: 2025 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1030,7 +1030,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When the |t_RB| option is set, Vim will use it to request the background
color from the terminal. If the returned RGB value is dark/light and
'background' is not dark/light, 'background' will be set and the
screen is redrawn. This may have side effects, make t_BG empty in
screen is redrawn. This may have side effects, make |t_RB| empty in
your .vimrc if you suspect this problem. The response to |t_RB| can
be found in |v:termrbgresp|.
@@ -2179,6 +2179,10 @@ A jump table for the options with a short description can be found at |Q_op|.
characters can be skipped and matches can be found even
if the exact sequence is not typed.
nosort Disable sorting of completion candidates based on fuzzy
scores when "fuzzy" is enabled. Candidates will appear
in their original order.
*'completepopup'* *'cpp'*
'completepopup' 'cpp' string (default empty)
global
@@ -2895,11 +2899,20 @@ A jump table for the options with a short description can be found at |Q_op|.
Option settings for diff mode. It can consist of the following items.
All are optional. Items must be separated by a comma.
filler Show filler lines, to keep the text
synchronized with a window that has inserted
lines at the same position. Mostly useful
when windows are side-by-side and 'scrollbind'
is set.
algorithm:{text} Use the specified diff algorithm with the
internal diff engine. Currently supported
algorithms are:
myers the default algorithm
minimal spend extra time to generate the
smallest possible diff
patience patience diff algorithm
histogram histogram diff algorithm
closeoff When a window is closed where 'diff' is set
and there is only one window remaining in the
same tab page with 'diff' set, execute
`:diffoff` in that window. This undoes a
`:diffsplit` command.
context:{n} Use a context of {n} lines between a change
and a fold that contains unchanged lines.
@@ -2910,6 +2923,23 @@ A jump table for the options with a short description can be found at |Q_op|.
value (999999) to disable folding completely.
See |fold-diff|.
filler Show filler lines, to keep the text
synchronized with a window that has inserted
lines at the same position. Mostly useful
when windows are side-by-side and 'scrollbind'
is set.
foldcolumn:{n} Set the 'foldcolumn' option to {n} when
starting diff mode. Without this 2 is used.
followwrap Follow the 'wrap' option and leave as it is.
horizontal Start diff mode with horizontal splits (unless
explicitly specified otherwise).
hiddenoff Do not use diff mode for a buffer when it
becomes hidden.
iblank Ignore changes where lines are all blank. Adds
the "-B" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
@@ -2923,6 +2953,17 @@ A jump table for the options with a short description can be found at |Q_op|.
are considered the same. Adds the "-i" flag
to the "diff" command if 'diffexpr' is empty.
indent-heuristic
Use the indent heuristic for the internal
diff library.
internal Use the internal diff library. This is
ignored when 'diffexpr' is set. *E960*
When running out of memory when writing a
buffer this item will be ignored for diffs
involving that buffer. Set the 'verbose'
option to see when this happens.
iwhite Ignore changes in amount of white space. Adds
the "-b" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
@@ -2942,46 +2983,19 @@ A jump table for the options with a short description can be found at |Q_op|.
of the "diff" command for what this does
exactly.
horizontal Start diff mode with horizontal splits (unless
explicitly specified otherwise).
linematch:{n} Align and mark changes between the most
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
"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.
vertical Start diff mode with vertical splits (unless
explicitly specified otherwise).
closeoff When a window is closed where 'diff' is set
and there is only one window remaining in the
same tab page with 'diff' set, execute
`:diffoff` in that window. This undoes a
`:diffsplit` command.
hiddenoff Do not use diff mode for a buffer when it
becomes hidden.
foldcolumn:{n} Set the 'foldcolumn' option to {n} when
starting diff mode. Without this 2 is used.
followwrap Follow the 'wrap' option and leave as it is.
internal Use the internal diff library. This is
ignored when 'diffexpr' is set. *E960*
When running out of memory when writing a
buffer this item will be ignored for diffs
involving that buffer. Set the 'verbose'
option to see when this happens.
indent-heuristic
Use the indent heuristic for the internal
diff library.
algorithm:{text} Use the specified diff algorithm with the
internal diff engine. Currently supported
algorithms are:
myers the default algorithm
minimal spend extra time to generate the
smallest possible diff
patience patience diff algorithm
histogram histogram diff algorithm
Examples: >
:set diffopt=internal,filler,context:4
:set diffopt=
@@ -4447,7 +4461,7 @@ A jump table for the options with a short description can be found at |Q_op|.
#:TabLineSel,_:TabLineFill,!:CursorColumn,
.:CursorLine,o:ColorColumn,q:QuickFixLine,
z:StatusLineTerm,Z:StatusLineTermNC,
g:MsgArea")
g:MsgArea,h:ComplMatchIns")
global
This option can be used to set highlighting mode for various
occasions. It is a comma-separated list of character pairs. The
@@ -4467,6 +4481,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-MoreMsg| m |more-prompt|
|hl-ModeMsg| M Mode (e.g., "-- INSERT --")
|hl-MsgArea| g |Command-line| and message area
|hl-ComplMatchIns| h matched text of currently inserted completion
|hl-LineNr| n line number for ":number" and ":#" commands, and
when 'number' or 'relativenumber' option is set.
|hl-LineNrAbove| a line number above the cursor for when the
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
../pack/dist/opt/netrw/doc/netrw.txt
+3 -3
View File
@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 9.1. Last change: 2024 Dec 27
*quickfix.txt* For Vim version 9.1. Last change: 2025 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -550,9 +550,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
< Otherwise it works the same as `:ldo`.
FILTERING A QUICKFIX OR LOCATION LIST:
*cfilter-plugin* *:Cfilter* *:Lfilter*
*cfilter-plugin* *:Cfilter* *:Lfilter* *package-cfilter*
If you have too many entries in a quickfix list, you can use the cfilter
plugin to reduce the number of entries. Load the plugin with: >
plugin to reduce the number of entries. Load the plugin with: >vim
packadd cfilter
+16 -3
View File
@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 9.1. Last change: 2024 Dec 16
*syntax.txt* For Vim version 9.1. Last change: 2025 Jan 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1062,6 +1062,7 @@ Variable Highlight ~
*c_no_cformat* don't highlight %-formats in strings
*c_no_c99* don't highlight C99 standard items
*c_no_c11* don't highlight C11 standard items
*c_no_c23* don't highlight C23 standard items
*c_no_bsd* don't highlight BSD specific types
*c_functions* highlight function calls and definitions
*c_function_pointers* highlight function pointers definitions
@@ -2217,6 +2218,16 @@ To disable numbers having their own color add the following to your vimrc: >
If you want quotes to have different highlighting than strings >
let g:jq_quote_highlight = 1
KCONFIG *ft-kconfig-syntax*
Kconfig syntax highlighting language. For syntax syncing, you can configure
the following variable (default: 50): >
let kconfig_minlines = 50
To configure a bit more (heavier) highlighting, set the following variable: >
let kconfig_syntax_heavy = 1
LACE *lace.vim* *ft-lace-syntax*
@@ -5854,9 +5865,11 @@ PmenuSbar Popup menu: Scrollbar.
*hl-PmenuThumb*
PmenuThumb Popup menu: Thumb of the scrollbar.
*hl-PmenuMatch*
PmenuMatch Popup menu: Matched text in normal item.
PmenuMatch Popup menu: Matched text in normal item. Applied in
combination with |hl-Pmenu|.
*hl-PmenuMatchSel*
PmenuMatchSel Popup menu: Matched text in selected item.
PmenuMatchSel Popup menu: Matched text in selected item. Applied in
combination with |hl-PmenuSel|.
*hl-ComplMatchIns*
ComplMatchIns Matched text of the currently inserted completion.
*hl-PopupNotification*
+18 -4
View File
@@ -2152,6 +2152,7 @@ $quote eval.txt /*$quote*
:GnatTags ft_ada.txt /*:GnatTags*
:HelpToc helphelp.txt /*:HelpToc*
:Hexplore pi_netrw.txt /*:Hexplore*
:Justify usr_25.txt /*:Justify*
:LP pi_logipat.txt /*:LP*
:LPE pi_logipat.txt /*:LPE*
:LPF pi_logipat.txt /*:LPF*
@@ -4637,6 +4638,7 @@ E1511 options.txt /*E1511*
E1512 options.txt /*E1512*
E1513 message.txt /*E1513*
E1514 options.txt /*E1514*
E1515 builtin.txt /*E1515*
E152 helphelp.txt /*E152*
E153 helphelp.txt /*E153*
E154 helphelp.txt /*E154*
@@ -5623,6 +5625,7 @@ J change.txt /*J*
Japanese mbyte.txt /*Japanese*
Job eval.txt /*Job*
Jobs eval.txt /*Jobs*
Justify() usr_25.txt /*Justify()*
K various.txt /*K*
KDE gui_x11.txt /*KDE*
KVim gui_x11.txt /*KVim*
@@ -6286,6 +6289,7 @@ blob-index eval.txt /*blob-index*
blob-literal eval.txt /*blob-literal*
blob-modification eval.txt /*blob-modification*
blob2list() builtin.txt /*blob2list()*
blob2str() builtin.txt /*blob2str()*
blockwise-examples visual.txt /*blockwise-examples*
blockwise-operators visual.txt /*blockwise-operators*
blockwise-put change.txt /*blockwise-put*
@@ -6452,6 +6456,7 @@ c_no_ansi syntax.txt /*c_no_ansi*
c_no_bracket_error syntax.txt /*c_no_bracket_error*
c_no_bsd syntax.txt /*c_no_bsd*
c_no_c11 syntax.txt /*c_no_c11*
c_no_c23 syntax.txt /*c_no_c23*
c_no_c99 syntax.txt /*c_no_c99*
c_no_cformat syntax.txt /*c_no_cformat*
c_no_curly_error syntax.txt /*c_no_curly_error*
@@ -7456,6 +7461,7 @@ ft-javascript-omni insert.txt /*ft-javascript-omni*
ft-jq-syntax syntax.txt /*ft-jq-syntax*
ft-json-plugin filetype.txt /*ft-json-plugin*
ft-json-syntax syntax.txt /*ft-json-syntax*
ft-kconfig-syntax syntax.txt /*ft-kconfig-syntax*
ft-ksh-syntax syntax.txt /*ft-ksh-syntax*
ft-lace-syntax syntax.txt /*ft-lace-syntax*
ft-lex-syntax syntax.txt /*ft-lex-syntax*
@@ -8027,6 +8033,7 @@ gf editing.txt /*gf*
gg motion.txt /*gg*
gh visual.txt /*gh*
gi insert.txt /*gi*
git-vimdumps terminal.txt /*git-vimdumps*
gj motion.txt /*gj*
gk motion.txt /*gk*
glob() builtin.txt /*glob()*
@@ -8644,6 +8651,7 @@ jump-motions motion.txt /*jump-motions*
jumplist motion.txt /*jumplist*
jumplist-stack motion.txt /*jumplist-stack*
jumpto-diffs diff.txt /*jumpto-diffs*
justify usr_25.txt /*justify*
k motion.txt /*k*
kcc uganda.txt /*kcc*
kde gui_x11.txt /*kde*
@@ -9161,7 +9169,6 @@ netrw-ctrl-r pi_netrw.txt /*netrw-ctrl-r*
netrw-ctrl_l pi_netrw.txt /*netrw-ctrl_l*
netrw-curdir pi_netrw.txt /*netrw-curdir*
netrw-d pi_netrw.txt /*netrw-d*
netrw-debug pi_netrw.txt /*netrw-debug*
netrw-del pi_netrw.txt /*netrw-del*
netrw-delete pi_netrw.txt /*netrw-delete*
netrw-dir pi_netrw.txt /*netrw-dir*
@@ -9195,7 +9202,6 @@ netrw-help pi_netrw.txt /*netrw-help*
netrw-hexplore pi_netrw.txt /*netrw-hexplore*
netrw-hide pi_netrw.txt /*netrw-hide*
netrw-hiding pi_netrw.txt /*netrw-hiding*
netrw-history pi_netrw.txt /*netrw-history*
netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
netrw-incompatible pi_netrw.txt /*netrw-incompatible*
@@ -9306,7 +9312,6 @@ netrw-starstarpat pi_netrw.txt /*netrw-starstarpat*
netrw-start pi_netrw.txt /*netrw-start*
netrw-t pi_netrw.txt /*netrw-t*
netrw-texplore pi_netrw.txt /*netrw-texplore*
netrw-todo pi_netrw.txt /*netrw-todo*
netrw-trailingslash pi_netrw.txt /*netrw-trailingslash*
netrw-transparent pi_netrw.txt /*netrw-transparent*
netrw-u pi_netrw.txt /*netrw-u*
@@ -9323,6 +9328,7 @@ netrw-windows-s pi_netrw.txt /*netrw-windows-s*
netrw-write pi_netrw.txt /*netrw-write*
netrw-x pi_netrw.txt /*netrw-x*
netrw-xfer pi_netrw.txt /*netrw-xfer*
netrw.txt pi_netrw.txt /*netrw.txt*
netrw.vim pi_netrw.txt /*netrw.vim*
netterm-mouse options.txt /*netterm-mouse*
network pi_netrw.txt /*network*
@@ -9551,9 +9557,17 @@ out_name channel.txt /*out_name*
out_timeout channel.txt /*out_timeout*
p change.txt /*p*
pack-add repeat.txt /*pack-add*
package-cfilter quickfix.txt /*package-cfilter*
package-comment usr_05.txt /*package-comment*
package-create repeat.txt /*package-create*
package-doc repeat.txt /*package-doc*
package-documentation repeat.txt /*package-documentation*
package-editorconfig usr_05.txt /*package-editorconfig*
package-helptoc helphelp.txt /*package-helptoc*
package-justify usr_25.txt /*package-justify*
package-matchit usr_05.txt /*package-matchit*
package-nohlsearch usr_05.txt /*package-nohlsearch*
package-termdebug terminal.txt /*package-termdebug*
package-translate_example repeat.txt /*package-translate_example*
package-translation repeat.txt /*package-translation*
packages repeat.txt /*packages*
@@ -9631,7 +9645,6 @@ phtml.vim syntax.txt /*phtml.vim*
pi_getscript.txt pi_getscript.txt /*pi_getscript.txt*
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_logipat.txt pi_logipat.txt /*pi_logipat.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
pi_tar.txt pi_tar.txt /*pi_tar.txt*
@@ -10408,6 +10421,7 @@ status-line windows.txt /*status-line*
statusmsg-variable eval.txt /*statusmsg-variable*
stl-%! options.txt /*stl-%!*
stl-%{ options.txt /*stl-%{*
str2blob() builtin.txt /*str2blob()*
str2float() builtin.txt /*str2float()*
str2list() builtin.txt /*str2list()*
str2nr() builtin.txt /*str2nr()*
+8 -2
View File
@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 9.1. Last change: 2024 Dec 30
*terminal.txt* For Vim version 9.1. Last change: 2025 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -494,6 +494,12 @@ ConPTY problems have been fixed "winpty" will be preferred.
Environment variables are used to pass information to the running job:
VIM_SERVERNAME v:servername
*git-vimdumps*
There exists a git-difftool extension called `git-vimdumps` that can be used
to conveniently inspect screendump files and diff them. Please see in the Vim
Repository the file `src/testdir/commondumps.vim` on how to create and use
this git extension.
==============================================================================
2. Terminal functions *terminal-function-details*
@@ -1254,7 +1260,7 @@ Alternatively, press "s" to swap the first and second dump. Do this several
times so that you can spot the difference in the context of the text.
==============================================================================
6. Debugging *terminal-debug* *terminal-debugger*
6. Debugging *terminal-debug* *terminal-debugger* *package-termdebug*
The Terminal debugging plugin can be used to debug a program with gdb and view
the source code in a Vim window. Since this is completely contained inside
+1 -4
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 9.1. Last change: 2024 Dec 30
*todo.txt* For Vim version 9.1. Last change: 2025 Jan 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -309,9 +309,6 @@ Problem with Visual highlight when 'linebreak' and 'showbreak' are set.
GUI Scroll test fails on FreeBSD when using Motif. See FIXME in
Test_scrollbars in src/test_gui.vim
Selected index returned by complete_info() does not match the index in the
list of items. #12230
Support dark mode for MS-Windows: #12282
Remote command escapes single quote with backslash, should be doubling the
-337
View File
@@ -1,337 +0,0 @@
*uganda.txt* для Vim version 9.1 редакция от 14 авг 2024 г.
СПРАВОЧНИК ПО РЕДАКТОРУ VIM
автор Брам Моленар
*uganda* *Uganda* *copying* *copyright* *license*
КРАТКОЕ ОПИСАНИЕ
*iccf* *ICCF*
Редактор Vim является благотворительным программным обеспечением.
Использование и копирование программы Vim не ограничено, однако
рекомендуется сделать добровольное пожертвование для нуждающихся детей в
Уганде. Ознакомьтесь с разделом |kcc| далее в этом документе или посетите
веб-сайт организации ICCF, доступный по указанным ниже адресам:
https://iccf-holland.org/
https://www.vim.org/iccf/
https://www.iccf.nl/
Также возможно оказание финансовой помощи для разработки программы Vim,
см. раздел |sponsor|. В любом случае деньги направляются в Уганду.
Документация, поставляемая в составе программы Vim, распространяется на
условиях лицензии на Открытые публикации, см. раздел |manual-copyright|.
=== начало лицензии ===
ЛИЦЕНЗИЯ VIM
I) Неизменённые копии программы Vim могут распространяться без ограничения
при условии включения данного текста лицензии. Распространение
неизменённых копий отдельных частей программы Vim также возможно при
соблюдении условия о включении данного текста лицензии. Подобным образом
разрешается добавлять исполняемые файлы, скомпилированные из
неизменённого исходного кода программы Vim, а также собственные примеры
использования и командные файлы редактора Vim.
II) Изменённую (или дополненную) версию программы Vim, включающую
исполняемые файлы и/или исходный код, допускается распространять при
соблюдении следующих четырёх условий:
1) Текст настоящей лицензии должен включаться в состав распространяемой
версии программы Vim без изменений.
2) Изменённая версия программы Vim должна распространяться одним из
следующих пяти способов:
a) При внесении изменений в программу Vim, в дистрибутиве должны
быть явно указаны контактные данные лица, внёсшего эти изменения.
Ответственному разработчику по его запросу (в любой форме) должна
быть безвозмездно предоставлена копия распространяемой изменённой
версии программы Vim, включая её исходный код. Ответственный
разработчик оставляет за собой право включать сделанные изменения
в официальную версию программы Vim. Конкретные действия
ответственного разработчика, относительно переданных изменений, а
также лицензионные условия, на основании которых будет
осуществляться их распространение, могут быть дополнительно
согласованы. Если согласование не проводилось, сделанные изменения
будут распространяться на условиях настоящей лицензии или более
поздней её версии. Лица, в данное время являющиеся ответственными
за разработку, указаны в перечне, размещённом по следующему адресу:
https://github.com/orgs/vim/people. В случае изменения этой
информации, актуальные данные будут опубликованы на
соответствующих ресурсах (вероятнее всего по интернет‐адресам
vim.sf.net, www.vim.org и/или comp.editors). В случае полной
невозможности установить контакт с ответственным разработчиком,
обязательства по отправке изменений утрачивают силу. После
передачи подтверждения о получении изменений от ответственного
разработчика, необходимость в повторной отправке копии изменённой
программы Vim неприменима.
b) Если лицом получена изменённая версия программа Vim,
распространяющаяся на условиях, указанных в ч. II) п. 2) пп. а)
допускается дальнейшее её распространение этим лицом без внесения
изменений и согласно ч. I) настоящей лицензии. В случае внесения
дополнительных изменений, на эти изменения будут распространяться
условия, указанные в ч. II) п. 2) пп. a).
c) Каждая копия распространяемой изменённой версии программы Vim
должна включать информацию обо всех произведённых изменениях,
включая исходный код. Эта информация может быть представлена в
виде построчного сравнения файлов. Выбор лицензии, по условиям
которой будет распространяться добавленный код, остаётся за
автором этих изменений. Изменения и лицензия на эти изменения не
должны запрещать другим лицам внесение своих собственных
изменений в официальную версию программы Vim.
d) Изменённая версия программы Vim, содержащая изменения в
соответствии с ч. II) п. 2 пп. c), может распространяться без
исходного кода для этих изменений, при соблюдении следующих трёх
условий:
- Лицензия, применяемая к внесённым изменениям, предоставляет
ответственному разработчику программы Vim возможность
безвозмездного и неограниченного распространения этих изменений,
а также право на безвозмездное и неограниченное включение этих
изменений в официальную версию программы Vim.
- Изменения должны сохраняться не менее трёх лет со времени
распространения соответствующей изменённой версии программы Vim.
В течение этого периода по запросу ответственного разработчика
или другого пользователя изменённой версии программы Vim
(в любой форме) необходимо предоставить исходный код данных
изменений.
- В дистрибутиве изменённой версии программы Vim должны быть явно
указаны контактные данные лица, внёсшего эти изменения.
Контактные данные должны сохранять актуальность в течение
не менее трёх лет со времени последнего распространения
соответствующей изменённой версии программы Vim или как можно
дольше.
e) Если к изменениям, внесённым в программу Vim, применимы условия
лицензии GNU General Public License (GNU GPL), допускается
распространение изменённой версия программы Vim на условиях
лицензии GNU GPL версии 2 или любой более поздней версии этой
лицензии.
3) Необходимо добавить соответствующую информацию, которая должна быть
выведена в результате выполнения команды ":version" в программе Vim,
а также на экране приветствия программы Vim, чтобы пользователь
изменённой версии программы Vim имел возможность определить, что он
пользуется изменённой версией. При распространении на условиях,
указанных в ч. II) п. 2) пп. e) такую информацию требуется добавлять
только в том случае, когда она не противоречит лицензии,
распространяющейся на эти изменения.
4) Контактная информация, которая указывается по требованию ч. II) п. 2)
пп. a) и ч. II) п. 2) пп. d) не должна удаляться или изменяться никем
другим, кроме лица, указавшего данную контактную информацию.
III) При распространении изменённой версии программы Vim рекомендуется
пользоваться лицензией Vim для произведённых изменений и обеспечить
доступ к этим изменениям ответственного разработчика, включая исходный
код изменений. Предпочтительным способом предоставления доступа к
произведённым изменениям является отправка этих изменений по
электронной почте или загрузка файлов на сервер с отправкой URL-адреса
по электронной почте. Если количество изменений незначительно
(например, изменения в файле Makefile) достаточно будет отправить по
электронной почте файл построчного сравнения. Изменения или URL-адреса
должны быть отправлены на адрес электронной почты maintainer@vim.org
IV) Не допускается удаление настоящей лицензия из дистрибутива исходного
кода программы Vim, его отдельных частей или изменённой версии.
Допускается использование настоящей лицензию для предыдущих изменённых
выпусков программы Vim, взамен тех лицензий, с которыми они
распространялись.
=== конец лицензии ===
Примечание.
- Если вам нравится программа Vim, дочитайте до конца и подумайте над
оказанием помощи нуждающимся детям в Уганде.
- При наличии желания поддержать дальнейшую разработку программы Vim,
рассмотрите возможность оказания финансовой поддержки (см. раздел
|sponsor|). В любом случае деньги отправляются в Уганду.
- Ричард Столлман (Richard Stallman) подтвердил, что лицензия Vim совместима
с лицензией GNU GPL. С момента его последней проверки были внесены
незначительные изменения, но они не должны оказать на это никакого влияния.
- Если сборка программы Vim осуществляется с использованием библиотеки, на
которую распространяется лицензия GNU GPL, дальнейшее распространение
программы может осуществляться только на условиях лицензии GNU GPL. Даже
если в саму программу Vim не было внесено никаких изменений.
- Если были внесены изменения, на которые распространяется лицензия GNU GPL,
все дальнейшие изменения также должны добавляться на условиях лицензии
GNU GPL или другой совместимой лицензии.
- При распространении изменённой версии программы Vim, своё имя и контактную
информацию можно добавлять с помощью аргумента конфигурации
"--with-modified-by" или директивы define MODIFIED_BY.
==============================================================================
Детский центр в Кибаале *kcc* *Kibaale* *charity*
Детский центр в Кибаале (Kibaale Children's Centre, KCC) находится в гор.
Кибаал. Это небольшой городок в восточной Африке на юге Уганды недалеко от
Танзании на территории округа Ракаи. Большая часть населения занимается
земледелием. Несмотря на бедность жителей, здесь обычно бывает достаточно
пищи. Однако по числу заболевших СПИД этот округ превосходит любую другую
точку планеты. Существует мнение, что именно отсюда началось распространение
этой смертельной болезни. По некоторым оценкам в прошлом от 10 до 30
процентов жителей Уганды были заражены ВИЧ. Высокая смертность родителей
стала причиной появления большого количества сирот. При населении округа
в 350 000 человек, 60 000 детей потеряло одного или обоих родителей. Однако
даже несомненные успехи в уменьшении масштабов распространения СПИД
не могут привести к полному исчезновению проблем.
Дети очень нуждаются в помощи. Организация KCC прилагает все усилия для
предоставления нуждающимся пищи, медицинской помощи и образования. Пища и
медицинская помощь предоставляются для поддержания здоровья, а образование
даёт возможность позаботиться о себе в будущем. Организация KCC работает на
базе христианской миссии, но помощь оказывается всем детям независимо от их
приверженности к какой-либо религии.
В данном случае ключом к решению проблем является возможность получения
образования. В последнее время при правлении президента Иди Амина (Idi Amin
Dada Oumee), а также в ходе последовавших гражданских войн, этой проблеме не
уделялось достаточно внимания. Однако сейчас после стабилизации деятельности
правительства детям и их родителям нужно учиться жить и заботиться самим о
себе, избегая при этом риска заражения инфекционными заболеваниями. Поэтому
наряду с оказанием помощи больным и голодающим, основной целью миссии
является предупреждение заболеваемости и прививание навыков по употреблению
здоровой пищи.
Большинство сирот проживают у близких родственников, воспитываются дядями
или старшими сёстрами. Вследствие больших размеров семей и низких доходов
(если таковые имеются), большим везением для ребёнка будет обеспечение
здоровым питанием. Про одежду, медицинскую помощь и школьное обучение
говорить уже не приходится. Для оказания помощи таким нуждающимся детям была
организована программа оказания финансовой помощи. Она позволяет взять
ребёнка на финансовое обеспечение. За несколько долларов в месяц организация
KCC обеспечит его необходимыми предметами обихода, будет следить за его
здоровьем, организует школьное обучение, а также сделает всё необходимое для
ребёнка и семьи, которая поддерживает его развитие.
Помимо непосредственного оказания помощи ребёнку, необходимо также проводить
комплексное развитие среды, в которой живут дети. С этой целью организация
KCC предоставляет школам помощь по улучшению методов обучения. На базе
центра имеется показательная школа, в которой организуется обучение для
учителей. Также проводится обучение медицинских работников, прививаются
санитарно-гигиенические нормы, пропагандируется постройка туалетов
надлежащей конструкции в местах проживания. Также лично мною была оказана
помощь в постройке производственного объекта по созданию железобетонных плит,
которые применяются при постройке туалетов и продаются по сниженным ценам.
На балансе проекта содержится клиника, в которой предоставляется медицинская
помощь детям и их семьям. В 2020 году было открыто родильное отделение и
пункт круглосуточного оказания медицинской помощи. При необходимости
осуществляется доставка в больницу. Проводятся программы иммунизации
населения, и предоставляется помощь при вспышках эпидемии (случаются вспышки
кори и холеры).
*donate*
С лета 1994 года до лета 1995 года мне целый год довелось провести в центре,
работая там в качестве волонтёра. Я помогал в расширении центра и трудился в
сфере водоснабжения и санитарно-гигиенического контроля. Там я убедился в
эффективности той помощи, которую оказывает организация KCC. По возвращении
в Нидерланды утвердилось желание продолжить поддержку организации KCC.
С этой целью я провожу сбор средств и организую программу оказания
финансовой помощи. Поэтому предлагаю вам рассмотреть одну из следующих
возможностей:
1. Предоставить финансовую помощь ребёнку в начальной школе — 17 евро в
месяц (или больше).
2. Предоставить финансовую помощь ребёнку в средней школе — 25 евро в месяц
(или больше).
3. Предоставить финансовую помощь клинике — любая сумма раз в месяц или
в квартал.
4. Единовременное пожертвование.
По сравнению с другими программами оказания финансовой поддержки детям,
указанные выше суммы выглядят весьма скромно. Причина столь небольшого
размера пожертвований заключается в том, что деньги направляются
непосредственно в центр. На администрацию тратиться менее 5 %, что стало
возможным благодаря малым размерам организации и привлечению волонтёров.
Если вы предполагаете взять на финансовое обеспечение ребёнка, то важно
понимать, что регулярное оказание помощи должно осуществляться на протяжении
не менее одного года.
Я понимаю, что вам нужны гарантии поступления средств по адресу. Прежде
всего, я готов предоставить свои личные гарантии, как автор программы Vim.
Я доверяю людям, работающим в этом центре, и знаю их лично. Кроме того,
финансирование и инспектирование центра осуществлялось совместно с такими
общеизвестными благотворительными организациями, как «World Vision»,
«Save the Children», а теперь центр находится на попечении организации
«Pacific Academy Outreach Society». Посещение центра осуществляется (за свой
собственный счёт) примерно раз в год для проверки хода выполнения текущих
задач. Я сам неоднократно посещал этот центр, начиная с 1993 года. Отчёты о
посещениях размещаются на веб-сайте организации ICCF.
Если у вас остались вопросы, можете задать их по электронной почте
<Bram@vim.org>.
Адрес центра:
Kibaale Children's Centre
p.o. box 1658
Masaka, Uganda, East Africa
Перечисление средств *iccf-donations*
Самая свежая информация доступна на веб-сайте организации ICCF!
См. раздел |iccf|.
США
Можно использовать методы, перечисленные ниже. Если
требуется отправить чек, то отправьте его нашему партнёру в
Канаде, адрес: https://www.kuwasha.net/
Канада
Свяжитесь с командой Kuwasha в гор. Сарри, Канада. Они
могут оказать содействие благотворителям из Канады для
помощи детям в гор. Кибаале. Команда Kuwasha переводит 100%
средств, поступивших в пользу проекта в Уганде.
Единовременное пожертвование может быть отправлено им
напрямую.
На их веб-сайте также можно ознакомиться с информацией по
оказанию финансовой поддержки https://www.kuwasha.net/
При отправке пожертвований через Kuwasha вы получите
налоговое уведомление, которое можно будет подать вместе с
налоговой декларацией.
Нидерланды
Перевод на счёт «Stichting ICCF Holland», Amersfoort. Можно
будет получить налоговый вычет, если вы проживаете в
Нидерландах. Банк ING, IBAN: NL95 INGB 0004 5487 74
Германия
Можно сделать пожертвование, дающее право на налоговый
вычет. Ознакомьтесь с последней информацией на веб-сайте
организации ICCF
https://iccf-holland.org/germany.html
Европа
Банковский перевод. См. далее «Другие варианты»,
где указан код Swift и номер IBAN.
Любые другие платёжные методы также должны работать.
Проконсультируйтесь по вопросу отправки средств на
благотворительные цели.
Банковская карта
Можно воспользоваться платёжной системой PayPal для
отправки денег с банковской карты. Это наиболее
распространённая и чрезвычайно простая в использовании
платёжная система на основе сети Интернет. Больше информации
можно найти по адресу
https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q
Адрес электронной почты для обсуждения вопросов по
отправке средств
Bram@iccf-holland.org
Другие варианты
Средства можно отправить на указанный ниже счёт.
Банк ING. IBAN: NL95 INGB 0004 5487 74
Код SWIFT: INGBNL2A
на имя «stichting ICCF Holland», Amersfoort
Чеки не принимаются.
=============================================================================
© Казорин Сергей, перевод на русский язык, 2022, <kazorin@basealt.ru>
© Restorer, редакторская правка, 2024, <restorer@mail2k.ru>
vim:tw=78:ts=8:noet:ft=help:norl:
+8 -1
View File
@@ -1,4 +1,4 @@
*usr_02.txt* For Vim version 9.1. Last change: 2024 Oct 05
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jan 16
VIM USER MANUAL - by Bram Moolenaar
@@ -694,6 +694,13 @@ Summary: *help-summary* >
:help E128
< takes you to the |:function| command
27) Documentation for packages distributed with Vim have the form
package-<name>. So >
:help package-comment
<
will bring you to the help section for the included comment plugin and how to
enable it.
==============================================================================
+5 -5
View File
@@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 9.1. Last change: 2024 Oct 05
*usr_05.txt* For Vim version 9.1. Last change: 2025 Jan 11
VIM USER MANUAL - by Bram Moolenaar
@@ -392,7 +392,7 @@ The ":map" command (with no arguments) lists your current mappings. At
least the ones for Normal mode. More about mappings in section |40.1|.
==============================================================================
*05.5* Adding a package *add-package* *matchit-install*
*05.5* Adding a package *add-package* *matchit-install* *package-matchit*
A package is a set of files that you can add to Vim. There are two kinds of
packages: optional and automatically loaded on startup.
@@ -427,7 +427,7 @@ an archive or as a repository. For an archive you can follow these steps:
Here "fancytext" is the name of the package, it can be anything
else.
Adding the editorconfig package *editorconfig-install*
Adding the editorconfig package *editorconfig-install* *package-editorconfig*
Similar to the matchit package, to load the distributed editorconfig plugin
when Vim starts, add the following line to your vimrc file: >
@@ -437,7 +437,7 @@ After restarting your Vim, the plugin is active and you can read about it at: >
:h editorconfig.txt
Adding comment package *comment-install*
Adding comment package *comment-install* *package-comment*
Load the plugin with this command: >
packadd comment
@@ -450,7 +450,7 @@ the package loaded. Once the package is loaded, read about it at: >
:h comment.txt
Adding nohlsearch package *nohlsearch-install*
Adding nohlsearch package *nohlsearch-install* *package-nohlsearch*
Load the plugin with this command: >
packadd nohlsearch
+4 -4
View File
@@ -1,4 +1,4 @@
*usr_25.txt* For Vim version 9.1. Last change: 2016 Mar 28
*usr_25.txt* For Vim version 9.1. Last change: 2025 Jan 11
VIM USER MANUAL - by Bram Moolenaar
@@ -190,15 +190,15 @@ This results in the following:
story. ~
JUSTIFYING TEXT
JUSTIFYING TEXT *justify* *:Justify* *Justify()* *package-justify*
Vim has no built-in way of justifying text. However, there is a neat macro
package that does the job. To use this package, execute the following
command: >
command: >vim
:packadd justify
Or put this line in your |vimrc|: >
Or put this line in your |vimrc|: >vim
packadd! justify
+3 -1
View File
@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 9.1. Last change: 2025 Jan 02
*usr_41.txt* For Vim version 9.1. Last change: 2025 Jan 16
VIM USER MANUAL - by Bram Moolenaar
@@ -801,6 +801,8 @@ String manipulation: *string-functions*
trim() trim characters from a string
bindtextdomain() set message lookup translation base path
gettext() lookup message translation
str2blob() convert a list of strings into a blob
blob2str() convert a blob into a list of strings
List manipulation: *list-functions*
get() get an item without error for wrong index
+12 -9
View File
@@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2025 Jan 02
*version9.txt* For Vim version 9.1. Last change: 2025 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41560,15 +41560,17 @@ Support for Wayland UI.
Support for the XDG Desktop Specification |xdg-base-dir|
Support highlighting the matched text for insert-mode completion and
command-line completion in |ins-completion-menu|.
Support highlighting the completion kind in |ins-completion-menu|, see
|complete-items|.
Support for translating messages in Vim script plugins using the |gettext()|
and |bindtextdomain()| functions.
Support highlighting the matched text and the completion kind for insert-mode
completion and command-line completion in |ins-completion-menu|, see
|complete-items|
Include the "linematch" algorithm for the 'diffopt' setting. This aligns
changes between buffers on similar lines improving the diff highlighting in
Vim
*changed-9.2*
Changed~
-------
@@ -41617,14 +41619,13 @@ Changed~
|CompleteDone| autocommand in the |v:event| dictionary
- the default fontsize for the GTK builds of Vim (Windows and Unix) has been
increased to 12pt to accomodate modern high-dpi monitors
- filetype detection now detects bash scripts as a separate "bash" filetype
instead of the "sh" filetype
- the default value of the 'keyprotocol' option has been updated by support
for the ghostty terminal emulator (using kitty protocol)
- |complete_info()| returns the list of matches shown in the poppu menu via
the "matches" key
- |v:stacktrace| The stack trace of the exception most recently caught and
not finished
- New option value "nosort" for 'completeopt'
*added-9.2*
Added ~
@@ -41635,6 +41636,7 @@ Functions: ~
|base64_decode()| decode a base64 string into a blob
|base64_encode()| encode a blob into a base64 string
|blob2str()| convert a blob into a List of strings
|bindtextdomain()| set message lookup translation base path
|diff()| diff two Lists of strings
|filecopy()| copy a file {from} to {to}
@@ -41650,6 +41652,7 @@ Functions: ~
|matchbufline()| all the matches of a pattern in a buffer
|matchstrlist()| all the matches of a pattern in a List of strings
|popup_setbuf()| switch to a different buffer in a popup
|str2blob()| convert a List of strings into a blob
Autocommands: ~
+4 -3
View File
@@ -1,4 +1,4 @@
*vim9.txt* For Vim version 9.1. Last change: 2024 Dec 23
*vim9.txt* For Vim version 9.1. Last change: 2025 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1938,9 +1938,10 @@ Exporting an item can be written as: >
export def MyFunc() ...
export class MyClass ...
export interface MyClass ...
export enum MyEnum ...
< *E1043* *E1044*
As this suggests, only constants, variables, `:def` functions and classes can
be exported.
As this suggests, only constants, variables, `:def` functions, classes,
interfaces and enums can be exported.
*E1042*
`:export` can only be used in Vim9 script, at the script level.
+14 -3
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jan 08
" Last Change: 2025 Jan 21
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Listen very carefully, I will say this only once
@@ -951,6 +951,9 @@ au BufNewFile,BufRead */.config/git/attributes setf gitattributes
au BufNewFile,BufRead */etc/gitattributes setf gitattributes
au BufNewFile,BufRead .gitignore,*.git/info/exclude setf gitignore
au BufNewFile,BufRead */.config/git/ignore,*.prettierignore setf gitignore
au BufNewFile,BufRead */.config/fd/ignore,.fdignore,.ignore setf gitignore
au BufNewFile,BufRead .rgignore,.dockerignore setf gitignore
au BufNewFile,BufRead .npmignore,.vscodeignore setf gitignore
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
au BufNewFile,BufRead *.git/*
@@ -1268,11 +1271,13 @@ au BufNewFile,BufRead *.ipynb,*.jupyterlab-settings setf json
au BufNewFile,BufRead *.sublime-project,*.sublime-settings,*.sublime-workspace setf json
" Other files that look like json
au BufNewFile,BufRead .prettierrc,.firebaserc,.stylelintrc,.lintstagedrc,flake.lock,deno.lock setf json
au BufNewFile,BufRead .prettierrc,.firebaserc,.stylelintrc,.lintstagedrc,flake.lock,deno.lock,.swcrc setf json
" JSONC (JSON with comments)
au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc,bun.lock setf jsonc
au BufNewFile,BufRead .jshintrc,.jscsrc,.vsconfig,.hintrc,.swrc,[jt]sconfig*.json setf jsonc
" Visual Studio Code settings
au BufRead,BufNewFile ~/*/{Code,VSCodium}/User/*.json setf jsonc
" JSON
au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json
@@ -1287,7 +1292,7 @@ au BufNewFile,BufRead *.jsonnet,*.libsonnet setf jsonnet
au BufNewFile,BufRead *.jl setf julia
" Just
au BufNewFile,BufRead [jJ]ustfile,.justfile,*.just setf just
au BufNewFile,BufRead \c{,*.}justfile,\c*.just setf just
" KAREL
au BufNewFile,BufRead *.kl setf karel
@@ -1722,6 +1727,9 @@ au BufNewFile,BufRead *.nse setf lua
" NSIS
au BufNewFile,BufRead *.nsi,*.nsh setf nsis
" N-Triples
au BufNewFile,BufRead *.nt setf ntriples
" Nu
au BufNewFile,BufRead *.nu setf nu
@@ -2318,6 +2326,9 @@ au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFile
" (patterns ending in a start further below)
au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
" TriG
au BufNewFile,BufRead *.trig setf trig
" Zig and Zig Object Notation (ZON)
au BufNewFile,BufRead *.zig,*.zon setf zig
+1 -1
View File
@@ -44,7 +44,7 @@ endif
" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments properly.
if !exists("b:match_words")
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_words = '^\s*#\s*if\%(\|def\|ndef\)\>:^\s*#\s*elif\%(\|def\|ndef\)\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'
let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words"
endif
+4 -2
View File
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: EditorConfig
" Maintainer: Riley Bruins <ribru17@gmail.com>
" Last Change: 2024 Jul 06
" Last Change: 2025 Jan 10
if exists('b:did_ftplugin')
finish
@@ -10,4 +10,6 @@ let b:did_ftplugin = 1
setl comments=:#,:; commentstring=#\ %s
let b:undo_ftplugin = 'setl com< cms<'
setl omnifunc=syntaxcomplete#Complete
let b:undo_ftplugin = 'setl com< cms< ofu<'
+17
View File
@@ -0,0 +1,17 @@
" Vim ftplugin file
" Language: Justfile
" Maintainer: Peter Benjamin <@pbnj>
" Last Change: 2025 Jan 19
" Credits: The original author, Noah Bogart <https://github.com/NoahTheDuke/vim-just/>
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal iskeyword+=-
setlocal comments=n:#
setlocal commentstring=#\ %s
let b:undo_ftplugin = "setlocal iskeyword< comments< commentstring<"
+2 -1
View File
@@ -2,7 +2,7 @@
" Vim syntax file
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2024-04-12
" Latest Revision: 2025 Jan 20
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-kconfig
@@ -19,4 +19,5 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
" For matchit.vim
if exists("loaded_matchit")
let b:match_words = '^\<menu\>:\<endmenu\>,^\<if\>:\<endif\>,^\<choice\>:\<endchoice\>'
let b:undo_ftplugin .= "| unlet! b:match_words"
endif
+51
View File
@@ -0,0 +1,51 @@
" Vim indent file
" Language: Justfile
" Maintainer: Peter Benjamin <@pbnj>
" Last Change: 2025 Jan 19
" Credits: The original author, Noah Bogart <https://github.com/NoahTheDuke/vim-just/>
" Only load this indent file when no other was loaded yet.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetJustfileIndent()
setlocal indentkeys=0},0),!^F,o,O,0=''',0=\"\"\"
let b:undo_indent = "setlocal indentexpr< indentkeys<"
if exists("*GetJustfileIndent")
finish
endif
function GetJustfileIndent()
if v:lnum < 2
return 0
endif
let prev_line = getline(v:lnum - 1)
let last_indent = indent(v:lnum - 1)
if getline(v:lnum) =~ "\\v^\\s+%([})]|'''$|\"\"\"$)"
return last_indent - shiftwidth()
elseif prev_line =~ '\V#'
return last_indent
elseif prev_line =~ "\\v%([:{(]|^.*\\S.*%([^']'''|[^\"]\"\"\"))\\s*$"
return last_indent + shiftwidth()
elseif prev_line =~ '\\$'
if v:lnum == 2 || getline(v:lnum - 2) !~ '\\$'
if prev_line =~ '\v:\=@!'
return last_indent + shiftwidth() + shiftwidth()
else
return last_indent + shiftwidth()
endif
endif
elseif v:lnum > 2 && getline(v:lnum - 2) =~ '\\$'
return last_indent - shiftwidth()
elseif prev_line =~ '\v:\s*%(\h|\()' && prev_line !~ '\V:='
return last_indent + shiftwidth()
endif
return last_indent
endfunction
-780
View File
@@ -113,284 +113,12 @@ echo 0
end
" END_INDENT
" START_INDENT
var result = Func(
arg1,
arg2
)
" END_INDENT
" START_INDENT
var result = Func(arg1,
arg2)
" END_INDENT
" START_INDENT
filter(list, (k, v) =>
v > 0)
" END_INDENT
" START_INDENT
filter(list, (k, v) => {
const x = get(list, k, 0)
return x > 0
})
" END_INDENT
" START_INDENT
if x > 0
filter(list, (k, v) => {
const x = get(list, k, 1)
return x > 0
})
endif
" END_INDENT
" START_INDENT
{
var temp = 'temp'
}
" END_INDENT
" START_INDENT
var text = lead
.. middle
.. end
" END_INDENT
" START_INDENT
var text = lead ..
middle ..
end
" END_INDENT
" START_INDENT
var total = start +
end -
correction
" END_INDENT
" START_INDENT
var result = start
:+ print
" END_INDENT
" START_INDENT
var result = positive
? PosFunc(arg)
: NegFunc(arg)
" END_INDENT
" START_INDENT
var result = GetBuilder()
->BuilderSetWidth(333)
->BuilderSetHeight(777)
->BuilderBuild()
" END_INDENT
" START_INDENT
var result = MyDict
.member
" END_INDENT
" START_INDENT
autocmd BufNewFile *.match if condition
| echo 'match'
| endif
" END_INDENT
" START_INDENT
set cpo+=C
var lines =<< trim END
| this works
END
set cpo-=C
" END_INDENT
" START_INDENT
syn region Text
\ start='foo'
#\ comment
\ end='bar'
" END_INDENT
" START_INDENT
au CursorHold * echom 'BEFORE bar'
#\ some comment
| echom 'AFTER bar'
" END_INDENT
" START_INDENT
def MyFunc(text: string,
separator = '-'
): string
enddef
" END_INDENT
" START_INDENT
def MyFunc(
text: string,
separator = '-'
): string
enddef
" END_INDENT
" START_INDENT
[var1, var2] =
Func()
" END_INDENT
" START_INDENT
const list = ['one',
'two']
" END_INDENT
" START_INDENT
const list = [
'one',
'two',
]
" END_INDENT
" START_INDENT
const dict = {one: 1,
two: 2
}
" END_INDENT
" START_INDENT
const dict = {
one: 1,
two: 2
}
" END_INDENT
" START_INDENT
if true
const dict =
{
one: 1,
two: 2
}
endif
" END_INDENT
" START_INDENT
def Func()
return {
one: 1
}
enddef
" END_INDENT
" START_INDENT
echo {
a: 0,
# b
# c
}
" END_INDENT
" START_INDENT
echo search(
# comment
'1'
.. '2'
)
" END_INDENT
" START_INDENT
if true
var v = ( # trailing "(" starts line continuation
3 + 4 # nothing special
) # end of expression indicates continued line
var x: number # needs to align with previous "var"
endif
" END_INDENT
" START_INDENT
def Func() # {{{
# comment
if true
return
endif
enddef
" END_INDENT
" START_INDENT
echo {
key:
'value',
}
" END_INDENT
" START_INDENT
var id = time
->timer_start((_) => {
n = 0
})
" END_INDENT
" START_INDENT
augroup Name
autocmd!
augroup END
" END_INDENT
" START_INDENT
var n =
# comment
1
+ 2
var s = ''
" END_INDENT
" START_INDENT
var keys = {
J: 'j',
"\<Home>": '1G',
"\<End>": 'G',
z: 'zz'
}
" END_INDENT
" START_INDENT
export def Func(
n: number,
s: string,
...l: list<bool>
)
enddef
" END_INDENT
" START_INDENT
var heredoc =<< trim ENDD
var nested_heredoc =<< trim END
END
ENDD
" END_INDENT
" START_INDENT
if true
else " comment
endif
" END_INDENT
" START_INDENT
if true | echo 'one' | endif
if true | echo 'two' | endif
if true | echo 'three' | endif
" END_INDENT
" START_INDENT
if true
:'<-1 mark <
else
echo ''
endif
" END_INDENT
" START_INDENT
substitute/pat /rep /
echo
@@ -404,92 +132,12 @@ echo 2
endtry
" END_INDENT
" START_INDENT
def Func()
Cmd %
enddef
" END_INDENT
" START_INDENT
if end == 'xxx' || end == 'yyy'
echo
endif
" END_INDENT
" START_INDENT
if true
popup_move(id, {col: 1,
line: 2})
endif
setwinvar(id, 'name', 3)
" END_INDENT
" START_INDENT
var d = [
{a: 'x',
b: 'y'},
FuncA(),
FuncB(),
]
" END_INDENT
" START_INDENT
var ll = [[
1,
2,
3], [
4,
5,
6], [
7,
8,
9]]
" END_INDENT
" START_INDENT
var ld = [{
a: 'xxx',
b: 'yyy'}, {
c: 'xxx',
d: 'yyy'}, {
e: 'xxx',
f: 'yyy'}, {
}]
" END_INDENT
" START_INDENT
var d = {
a: {
b: {
c: [{
d: 'e',
f: 'g',
h: 'i'
}],
j: 'k',
},
},
}
" END_INDENT
" START_INDENT
if true
var end: any
if true
end = 0
elseif true
echo
endif
endif
" END_INDENT
" START_INDENT
if true
var d = {
end: 0}
endif
" END_INDENT
" START_INDENT
nunmap <buffer> (
nunmap <buffer> )
@@ -499,224 +147,6 @@ silent! xunmap i{
silent! xunmap a{
" END_INDENT
" START_INDENT
def Func(
s: string,
n = 1,
m = 2
)
enddef
" END_INDENT
" START_INDENT
var h =<< END
text
END
def Func()
echo
enddef
" END_INDENT
" START_INDENT
def Func()
var h =<< END
text
END
echo 'test'
enddef
" END_INDENT
" START_INDENT
def Foo()
lcd -
enddef
def Bar()
echo
enddef
" END_INDENT
" START_INDENT
if true
n = Func(1, 2,
3)
endif
" END_INDENT
" START_INDENT
def Func(s: string,
n: number): bool
if true
return false
endif
enddef
" END_INDENT
" START_INDENT
def Func(
n: number)
#
echo
enddef
" END_INDENT
" START_INDENT
" INDENT_AT this-line
def Func(
n: number)
#
echo # this-line
enddef
" END_INDENT
" START_INDENT
if true
if true
normal! ==
endif
endif
" END_INDENT
" START_INDENT
var d = {
a: () => true,
b: () => true
&& true
&& Foo(),
c: () => Bar(),
e: () => Baz(),
}
" END_INDENT
" START_INDENT
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
" END_INDENT
" START_INDENT
" INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
" END_INDENT
" START_INDENT
" INDENT_EXE unlet! g:vim_indent
" END_INDENT
" START_INDENT
g:lightline = {
'active': {
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
},
'inactive': {
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
}
}
" END_INDENT
" START_INDENT
if getline(1, 10)
->map((_, v: string): number => strcharlen(v))
->max() > 1'000
&l:breakindent = false
&l:linebreak = false
else
&l:breakindent = true
&l:linebreak = true
endif
" END_INDENT
" START_INDENT
var ext2cmd: dict<string> = {
doc: $'antiword {fname}',
docx: $'pandoc --from=docx --to=markdown {fname}',
epub: $'pandoc --from=epub --to=markdown {fname}',
odp: $'odt2txt {fname}',
odt: $'odt2txt {fname}',
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
rtf: 'unrtf --text',
}
" END_INDENT
" START_INDENT
const ptybuf: number = term_start(&shell, {
hidden: true,
exit_cb: (_, _) => {
if true
close
else
help
endif
}
})
" END_INDENT
" START_INDENT
var d = {
a: 0,
# a ' quote {{{
#}}}
b: 0,
}
" END_INDENT
" START_INDENT
echo printf('%s () %s',
1,
2
)
" END_INDENT
" START_INDENT
prop_add(1, col('.'), {
length: 2,
type: 'test'
})
" END_INDENT
" START_INDENT
echo (() => " string starting with space")()
echo
" END_INDENT
" START_INDENT
var variables = deepcopy(g:)
->filter((k: string, _): bool =>
k =~ '\c\V' .. keyword->escape('\')
&& k !~ '\%(loaded\|did_plugin_\)')
->items()
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
new
" END_INDENT
" START_INDENT
var d = freq
->map((_, v) =>
v * (
1
+ 2
))
for item in d
->items()
->sort((a, b) => b[1] - a[1])
echo
endfor
" END_INDENT
" START_INDENT
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
callback: function(MakeProcessOutput, [qfid]),
@@ -726,109 +156,16 @@ in_io: 'null'
})
" END_INDENT
" START_INDENT
var matching_abbrev: list<dict<string>> = copy(ABBREV)
->filter((_, v: dict<string>): bool =>
stridx(v.lhs, word_to_complete) == 0)
->map((_, v: dict<string>) => ({
word: v.lhs,
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
: AbbrevRhs(v.rhs)
}))
" END_INDENT
" START_INDENT
def Func()
if true
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
endif
enddef
" END_INDENT
" START_INDENT
setlocal iskeyword+=[
cword = expand('<cword>')
" END_INDENT
" START_INDENT
silent if true
echo
endif
" END_INDENT
" START_INDENT
def Func()
sort :^.*[\/]:
enddef
" END_INDENT
" START_INDENT
def Func()
d = {
}
hd =<< trim END
['
]'
END
enddef
" END_INDENT
" START_INDENT
def Func()
if true
var hd =<< trim END
if get(b:, 'current_syntax', '')
endif
END
elseif true
echo
endif
enddef
" END_INDENT
" START_INDENT
# test for control-flow keyword followed by commented fold marker {{{
if true
echo
endif #}}}
" END_INDENT
" START_INDENT
if winsz == 0|let winsz= ""|endif
exe "noswapfile ".winsz."wincmd s"
" END_INDENT
" START_INDENT
if true
if true
windo if true | echo | endif
augroup Name
autocmd WinLeave * if true | eval 1 + 2 | endif
augroup END
endif
endif
" END_INDENT
" START_INDENT
if true
echo ' =<< trim END'
->len()
endif
" END_INDENT
" START_INDENT
function Func()
if true
if true
if true | echo com | endif
if true | echo com | endif
endif
else
endif
endfunction
" END_INDENT
" START_INDENT
function Func()
if v:true
@@ -839,128 +176,11 @@ endif
endfunction
" END_INDENT
" START_INDENT
var matchpairs: string = &matchpairs
var pairs: dict<list<string>>
for [opening: string, closing: string]
in matchpairs
->split(',')
->map((_, v: string): list<string> => split(v, ':'))
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
endfor
" END_INDENT
" START_INDENT
{
echo []
+ []
+ [{a: 1,
b: 2}]
}
" END_INDENT
" START_INDENT
silent! argdel *
edit file
" END_INDENT
" START_INDENT
def Foo()
Bar(1,
[]->filter((_, v) => {
return true
}),
() => {
echo
})
enddef
" END_INDENT
" START_INDENT
echo {
k: () => {
if true
echo
popup_setoptions(id,
{title: 'title'})
endif
}
}
" END_INDENT
" START_INDENT
if true
elseif
endif
" END_INDENT
" START_INDENT
if (
true)
&& true
echo
endif
" END_INDENT
" START_INDENT
abstract class Shape
var color = Color.Black
var thickness = 10
endclass
" END_INDENT
" START_INDENT
class OtherThing
var size: number
static var totalSize: number
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
" END_INDENT
" START_INDENT
interface HasSurface
var size: number
def Surface(): number
endinterface
" END_INDENT
" START_INDENT
interface EnterExit
def Enter(): void
def Exit(): void
endinterface
" END_INDENT
" START_INDENT
enum Color
White,
Red,
Green,
Blue,
Black
endenum
" END_INDENT
" START_INDENT
enum Digits
INVALID(v:numbermax), # The null value.
ZERO(0 * v:numbermin), ONE(2 - 1),
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
NINE(3 + 3 + 3)
const value: number
def new(value: number)
this.value = value
enddef
endenum
" END_INDENT
" START_INDENT
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
call prop_type_delete('indent_after_literal_dict')
-780
View File
@@ -113,284 +113,12 @@ if v:true
end
" END_INDENT
" START_INDENT
var result = Func(
arg1,
arg2
)
" END_INDENT
" START_INDENT
var result = Func(arg1,
arg2)
" END_INDENT
" START_INDENT
filter(list, (k, v) =>
v > 0)
" END_INDENT
" START_INDENT
filter(list, (k, v) => {
const x = get(list, k, 0)
return x > 0
})
" END_INDENT
" START_INDENT
if x > 0
filter(list, (k, v) => {
const x = get(list, k, 1)
return x > 0
})
endif
" END_INDENT
" START_INDENT
{
var temp = 'temp'
}
" END_INDENT
" START_INDENT
var text = lead
.. middle
.. end
" END_INDENT
" START_INDENT
var text = lead ..
middle ..
end
" END_INDENT
" START_INDENT
var total = start +
end -
correction
" END_INDENT
" START_INDENT
var result = start
:+ print
" END_INDENT
" START_INDENT
var result = positive
? PosFunc(arg)
: NegFunc(arg)
" END_INDENT
" START_INDENT
var result = GetBuilder()
->BuilderSetWidth(333)
->BuilderSetHeight(777)
->BuilderBuild()
" END_INDENT
" START_INDENT
var result = MyDict
.member
" END_INDENT
" START_INDENT
autocmd BufNewFile *.match if condition
| echo 'match'
| endif
" END_INDENT
" START_INDENT
set cpo+=C
var lines =<< trim END
| this works
END
set cpo-=C
" END_INDENT
" START_INDENT
syn region Text
\ start='foo'
#\ comment
\ end='bar'
" END_INDENT
" START_INDENT
au CursorHold * echom 'BEFORE bar'
#\ some comment
| echom 'AFTER bar'
" END_INDENT
" START_INDENT
def MyFunc(text: string,
separator = '-'
): string
enddef
" END_INDENT
" START_INDENT
def MyFunc(
text: string,
separator = '-'
): string
enddef
" END_INDENT
" START_INDENT
[var1, var2] =
Func()
" END_INDENT
" START_INDENT
const list = ['one',
'two']
" END_INDENT
" START_INDENT
const list = [
'one',
'two',
]
" END_INDENT
" START_INDENT
const dict = {one: 1,
two: 2
}
" END_INDENT
" START_INDENT
const dict = {
one: 1,
two: 2
}
" END_INDENT
" START_INDENT
if true
const dict =
{
one: 1,
two: 2
}
endif
" END_INDENT
" START_INDENT
def Func()
return {
one: 1
}
enddef
" END_INDENT
" START_INDENT
echo {
a: 0,
# b
# c
}
" END_INDENT
" START_INDENT
echo search(
# comment
'1'
.. '2'
)
" END_INDENT
" START_INDENT
if true
var v = ( # trailing "(" starts line continuation
3 + 4 # nothing special
) # end of expression indicates continued line
var x: number # needs to align with previous "var"
endif
" END_INDENT
" START_INDENT
def Func() # {{{
# comment
if true
return
endif
enddef
" END_INDENT
" START_INDENT
echo {
key:
'value',
}
" END_INDENT
" START_INDENT
var id = time
->timer_start((_) => {
n = 0
})
" END_INDENT
" START_INDENT
augroup Name
autocmd!
augroup END
" END_INDENT
" START_INDENT
var n =
# comment
1
+ 2
var s = ''
" END_INDENT
" START_INDENT
var keys = {
J: 'j',
"\<Home>": '1G',
"\<End>": 'G',
z: 'zz'
}
" END_INDENT
" START_INDENT
export def Func(
n: number,
s: string,
...l: list<bool>
)
enddef
" END_INDENT
" START_INDENT
var heredoc =<< trim ENDD
var nested_heredoc =<< trim END
END
ENDD
" END_INDENT
" START_INDENT
if true
else " comment
endif
" END_INDENT
" START_INDENT
if true | echo 'one' | endif
if true | echo 'two' | endif
if true | echo 'three' | endif
" END_INDENT
" START_INDENT
if true
:'<-1 mark <
else
echo ''
endif
" END_INDENT
" START_INDENT
substitute/pat /rep /
echo
@@ -404,92 +132,12 @@ catch /pat / # comment
endtry
" END_INDENT
" START_INDENT
def Func()
Cmd %
enddef
" END_INDENT
" START_INDENT
if end == 'xxx' || end == 'yyy'
echo
endif
" END_INDENT
" START_INDENT
if true
popup_move(id, {col: 1,
line: 2})
endif
setwinvar(id, 'name', 3)
" END_INDENT
" START_INDENT
var d = [
{a: 'x',
b: 'y'},
FuncA(),
FuncB(),
]
" END_INDENT
" START_INDENT
var ll = [[
1,
2,
3], [
4,
5,
6], [
7,
8,
9]]
" END_INDENT
" START_INDENT
var ld = [{
a: 'xxx',
b: 'yyy'}, {
c: 'xxx',
d: 'yyy'}, {
e: 'xxx',
f: 'yyy'}, {
}]
" END_INDENT
" START_INDENT
var d = {
a: {
b: {
c: [{
d: 'e',
f: 'g',
h: 'i'
}],
j: 'k',
},
},
}
" END_INDENT
" START_INDENT
if true
var end: any
if true
end = 0
elseif true
echo
endif
endif
" END_INDENT
" START_INDENT
if true
var d = {
end: 0}
endif
" END_INDENT
" START_INDENT
nunmap <buffer> (
nunmap <buffer> )
@@ -499,224 +147,6 @@ silent! xunmap i{
silent! xunmap a{
" END_INDENT
" START_INDENT
def Func(
s: string,
n = 1,
m = 2
)
enddef
" END_INDENT
" START_INDENT
var h =<< END
text
END
def Func()
echo
enddef
" END_INDENT
" START_INDENT
def Func()
var h =<< END
text
END
echo 'test'
enddef
" END_INDENT
" START_INDENT
def Foo()
lcd -
enddef
def Bar()
echo
enddef
" END_INDENT
" START_INDENT
if true
n = Func(1, 2,
3)
endif
" END_INDENT
" START_INDENT
def Func(s: string,
n: number): bool
if true
return false
endif
enddef
" END_INDENT
" START_INDENT
def Func(
n: number)
#
echo
enddef
" END_INDENT
" START_INDENT
" INDENT_AT this-line
def Func(
n: number)
#
echo # this-line
enddef
" END_INDENT
" START_INDENT
if true
if true
normal! ==
endif
endif
" END_INDENT
" START_INDENT
var d = {
a: () => true,
b: () => true
&& true
&& Foo(),
c: () => Bar(),
e: () => Baz(),
}
" END_INDENT
" START_INDENT
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
" END_INDENT
" START_INDENT
" INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
" END_INDENT
" START_INDENT
" INDENT_EXE unlet! g:vim_indent
" END_INDENT
" START_INDENT
g:lightline = {
'active': {
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
},
'inactive': {
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
}
}
" END_INDENT
" START_INDENT
if getline(1, 10)
->map((_, v: string): number => strcharlen(v))
->max() > 1'000
&l:breakindent = false
&l:linebreak = false
else
&l:breakindent = true
&l:linebreak = true
endif
" END_INDENT
" START_INDENT
var ext2cmd: dict<string> = {
doc: $'antiword {fname}',
docx: $'pandoc --from=docx --to=markdown {fname}',
epub: $'pandoc --from=epub --to=markdown {fname}',
odp: $'odt2txt {fname}',
odt: $'odt2txt {fname}',
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
rtf: 'unrtf --text',
}
" END_INDENT
" START_INDENT
const ptybuf: number = term_start(&shell, {
hidden: true,
exit_cb: (_, _) => {
if true
close
else
help
endif
}
})
" END_INDENT
" START_INDENT
var d = {
a: 0,
# a ' quote {{{
#}}}
b: 0,
}
" END_INDENT
" START_INDENT
echo printf('%s () %s',
1,
2
)
" END_INDENT
" START_INDENT
prop_add(1, col('.'), {
length: 2,
type: 'test'
})
" END_INDENT
" START_INDENT
echo (() => " string starting with space")()
echo
" END_INDENT
" START_INDENT
var variables = deepcopy(g:)
->filter((k: string, _): bool =>
k =~ '\c\V' .. keyword->escape('\')
&& k !~ '\%(loaded\|did_plugin_\)')
->items()
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
new
" END_INDENT
" START_INDENT
var d = freq
->map((_, v) =>
v * (
1
+ 2
))
for item in d
->items()
->sort((a, b) => b[1] - a[1])
echo
endfor
" END_INDENT
" START_INDENT
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
callback: function(MakeProcessOutput, [qfid]),
@@ -726,109 +156,16 @@ make_job = job_start([&shell, &shellcmdflag, make_cmd], {
})
" END_INDENT
" START_INDENT
var matching_abbrev: list<dict<string>> = copy(ABBREV)
->filter((_, v: dict<string>): bool =>
stridx(v.lhs, word_to_complete) == 0)
->map((_, v: dict<string>) => ({
word: v.lhs,
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
: AbbrevRhs(v.rhs)
}))
" END_INDENT
" START_INDENT
def Func()
if true
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
endif
enddef
" END_INDENT
" START_INDENT
setlocal iskeyword+=[
cword = expand('<cword>')
" END_INDENT
" START_INDENT
silent if true
echo
endif
" END_INDENT
" START_INDENT
def Func()
sort :^.*[\/]:
enddef
" END_INDENT
" START_INDENT
def Func()
d = {
}
hd =<< trim END
['
]'
END
enddef
" END_INDENT
" START_INDENT
def Func()
if true
var hd =<< trim END
if get(b:, 'current_syntax', '')
endif
END
elseif true
echo
endif
enddef
" END_INDENT
" START_INDENT
# test for control-flow keyword followed by commented fold marker {{{
if true
echo
endif #}}}
" END_INDENT
" START_INDENT
if winsz == 0|let winsz= ""|endif
exe "noswapfile ".winsz."wincmd s"
" END_INDENT
" START_INDENT
if true
if true
windo if true | echo | endif
augroup Name
autocmd WinLeave * if true | eval 1 + 2 | endif
augroup END
endif
endif
" END_INDENT
" START_INDENT
if true
echo ' =<< trim END'
->len()
endif
" END_INDENT
" START_INDENT
function Func()
if true
if true
if true | echo com | endif
if true | echo com | endif
endif
else
endif
endfunction
" END_INDENT
" START_INDENT
function Func()
if v:true
@@ -839,128 +176,11 @@ function Func()
endfunction
" END_INDENT
" START_INDENT
var matchpairs: string = &matchpairs
var pairs: dict<list<string>>
for [opening: string, closing: string]
in matchpairs
->split(',')
->map((_, v: string): list<string> => split(v, ':'))
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
endfor
" END_INDENT
" START_INDENT
{
echo []
+ []
+ [{a: 1,
b: 2}]
}
" END_INDENT
" START_INDENT
silent! argdel *
edit file
" END_INDENT
" START_INDENT
def Foo()
Bar(1,
[]->filter((_, v) => {
return true
}),
() => {
echo
})
enddef
" END_INDENT
" START_INDENT
echo {
k: () => {
if true
echo
popup_setoptions(id,
{title: 'title'})
endif
}
}
" END_INDENT
" START_INDENT
if true
elseif
endif
" END_INDENT
" START_INDENT
if (
true)
&& true
echo
endif
" END_INDENT
" START_INDENT
abstract class Shape
var color = Color.Black
var thickness = 10
endclass
" END_INDENT
" START_INDENT
class OtherThing
var size: number
static var totalSize: number
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
" END_INDENT
" START_INDENT
interface HasSurface
var size: number
def Surface(): number
endinterface
" END_INDENT
" START_INDENT
interface EnterExit
def Enter(): void
def Exit(): void
endinterface
" END_INDENT
" START_INDENT
enum Color
White,
Red,
Green,
Blue,
Black
endenum
" END_INDENT
" START_INDENT
enum Digits
INVALID(v:numbermax), # The null value.
ZERO(0 * v:numbermin), ONE(2 - 1),
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
NINE(3 + 3 + 3)
const value: number
def new(value: number)
this.value = value
enddef
endenum
" END_INDENT
" START_INDENT
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
call prop_type_delete('indent_after_literal_dict')
+782
View File
@@ -0,0 +1,782 @@
vim9script
# vim: set ft=vim sw=4 :
# START_INDENT
var result = Func(
arg1,
arg2
)
# END_INDENT
# START_INDENT
var result = Func(arg1,
arg2)
# END_INDENT
# START_INDENT
filter(list, (k, v) =>
v > 0)
# END_INDENT
# START_INDENT
filter(list, (k, v) => {
const x = get(list, k, 0)
return x > 0
})
# END_INDENT
# START_INDENT
if x > 0
filter(list, (k, v) => {
const x = get(list, k, 1)
return x > 0
})
endif
# END_INDENT
# START_INDENT
{
var temp = 'temp'
}
# END_INDENT
# START_INDENT
var text = lead
.. middle
.. end
# END_INDENT
# START_INDENT
var text = lead ..
middle ..
end
# END_INDENT
# START_INDENT
var total = start +
end -
correction
# END_INDENT
# START_INDENT
var result = start
:+ print
# END_INDENT
# START_INDENT
var result = positive
? PosFunc(arg)
: NegFunc(arg)
# END_INDENT
# START_INDENT
var result = GetBuilder()
->BuilderSetWidth(333)
->BuilderSetHeight(777)
->BuilderBuild()
# END_INDENT
# START_INDENT
var result = MyDict
.member
# END_INDENT
# START_INDENT
autocmd BufNewFile *.match if condition
| echo 'match'
| endif
# END_INDENT
# START_INDENT
set cpo+=C
var lines =<< trim END
| this works
END
set cpo-=C
# END_INDENT
# START_INDENT
syn region Text
\ start='foo'
#\ comment
\ end='bar'
# END_INDENT
# START_INDENT
au CursorHold * echom 'BEFORE bar'
#\ some comment
| echom 'AFTER bar'
# END_INDENT
# START_INDENT
def MyFunc(text: string,
separator = '-'
): string
enddef
# END_INDENT
# START_INDENT
def MyFunc(
text: string,
separator = '-'
): string
enddef
# END_INDENT
# START_INDENT
[var1, var2] =
Func()
# END_INDENT
# START_INDENT
const list = ['one',
'two']
# END_INDENT
# START_INDENT
const list = [
'one',
'two',
]
# END_INDENT
# START_INDENT
const dict = {one: 1,
two: 2
}
# END_INDENT
# START_INDENT
const dict = {
one: 1,
two: 2
}
# END_INDENT
# START_INDENT
if true
const dict =
{
one: 1,
two: 2
}
endif
# END_INDENT
# START_INDENT
def Func()
return {
one: 1
}
enddef
# END_INDENT
# START_INDENT
echo {
a: 0,
# b
# c
}
# END_INDENT
# START_INDENT
echo search(
# comment
'1'
.. '2'
)
# END_INDENT
# START_INDENT
if true
var v = ( # trailing "(" starts line continuation
3 + 4 # nothing special
) # end of expression indicates continued line
var x: number # needs to align with previous "var"
endif
# END_INDENT
# START_INDENT
def Func() # {{{
# comment
if true
return
endif
enddef
# END_INDENT
# START_INDENT
echo {
key:
'value',
}
# END_INDENT
# START_INDENT
var id = time
->timer_start((_) => {
n = 0
})
# END_INDENT
# START_INDENT
var n =
# comment
1
+ 2
var s = ''
# END_INDENT
# START_INDENT
var keys = {
J: 'j',
"\<Home>": '1G',
"\<End>": 'G',
z: 'zz'
}
# END_INDENT
# START_INDENT
export def Func(
n: number,
s: string,
...l: list<bool>
)
enddef
# END_INDENT
# START_INDENT
var heredoc =<< trim ENDD
var nested_heredoc =<< trim END
END
ENDD
# END_INDENT
# START_INDENT
if true
else " comment
endif
# END_INDENT
# START_INDENT
if true | echo 'one' | endif
if true | echo 'two' | endif
if true | echo 'three' | endif
# END_INDENT
# START_INDENT
if true
:'<-1 mark <
else
echo ''
endif
# END_INDENT
# START_INDENT
def Func()
Cmd %
enddef
# END_INDENT
# START_INDENT
if true
popup_move(id, {col: 1,
line: 2})
endif
setwinvar(id, 'name', 3)
# END_INDENT
# START_INDENT
var d = [
{a: 'x',
b: 'y'},
FuncA(),
FuncB(),
]
# END_INDENT
# START_INDENT
var ll = [[
1,
2,
3], [
4,
5,
6], [
7,
8,
9]]
# END_INDENT
# START_INDENT
var ld = [{
a: 'xxx',
b: 'yyy'}, {
c: 'xxx',
d: 'yyy'}, {
e: 'xxx',
f: 'yyy'}, {
}]
# END_INDENT
# START_INDENT
var d = {
a: {
b: {
c: [{
d: 'e',
f: 'g',
h: 'i'
}],
j: 'k',
},
},
}
# END_INDENT
# START_INDENT
if true
var end: any
if true
end = 0
elseif true
echo
endif
endif
# END_INDENT
# START_INDENT
if true
var d = {
end: 0}
endif
# END_INDENT
# START_INDENT
def Func(
s: string,
n = 1,
m = 2
)
enddef
# END_INDENT
# START_INDENT
var h =<< END
text
END
def Func()
echo
enddef
# END_INDENT
# START_INDENT
def Func()
var h =<< END
text
END
echo 'test'
enddef
# END_INDENT
# START_INDENT
def Foo()
lcd -
enddef
def Bar()
echo
enddef
# END_INDENT
# START_INDENT
if true
n = Func(1, 2,
3)
endif
# END_INDENT
# START_INDENT
def Func(s: string,
n: number): bool
if true
return false
endif
enddef
# END_INDENT
# START_INDENT
def Func(
n: number)
#
echo
enddef
# END_INDENT
# START_INDENT
# INDENT_AT this-line
def Func(
n: number)
#
echo # this-line
enddef
# END_INDENT
# START_INDENT
if true
if true
normal! ==
endif
endif
# END_INDENT
# START_INDENT
var d = {
a: () => true,
b: () => true
&& true
&& Foo(),
c: () => Bar(),
e: () => Baz(),
}
# END_INDENT
# START_INDENT
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
# END_INDENT
# START_INDENT
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
# END_INDENT
# START_INDENT
# INDENT_EXE unlet! g:vim_indent
# END_INDENT
# START_INDENT
g:lightline = {
'active': {
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
},
'inactive': {
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
}
}
# END_INDENT
# START_INDENT
if getline(1, 10)
->map((_, v: string): number => strcharlen(v))
->max() > 1'000
&l:breakindent = false
&l:linebreak = false
else
&l:breakindent = true
&l:linebreak = true
endif
# END_INDENT
# START_INDENT
var ext2cmd: dict<string> = {
doc: $'antiword {fname}',
docx: $'pandoc --from=docx --to=markdown {fname}',
epub: $'pandoc --from=epub --to=markdown {fname}',
odp: $'odt2txt {fname}',
odt: $'odt2txt {fname}',
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
rtf: 'unrtf --text',
}
# END_INDENT
# START_INDENT
const ptybuf: number = term_start(&shell, {
hidden: true,
exit_cb: (_, _) => {
if true
close
else
help
endif
}
})
# END_INDENT
# START_INDENT
var d = {
a: 0,
# a ' quote {{{
#}}}
b: 0,
}
# END_INDENT
# START_INDENT
echo printf('%s () %s',
1,
2
)
# END_INDENT
# START_INDENT
prop_add(1, col('.'), {
length: 2,
type: 'test'
})
# END_INDENT
# START_INDENT
echo (() => " string starting with space")()
echo
# END_INDENT
# START_INDENT
var variables = deepcopy(g:)
->filter((k: string, _): bool =>
k =~ '\c\V' .. keyword->escape('\')
&& k !~ '\%(loaded\|did_plugin_\)')
->items()
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
new
# END_INDENT
# START_INDENT
var d = freq
->map((_, v) =>
v * (
1
+ 2
))
for item in d
->items()
->sort((a, b) => b[1] - a[1])
echo
endfor
# END_INDENT
# START_INDENT
var matching_abbrev: list<dict<string>> = copy(ABBREV)
->filter((_, v: dict<string>): bool =>
stridx(v.lhs, word_to_complete) == 0)
->map((_, v: dict<string>) => ({
word: v.lhs,
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
: AbbrevRhs(v.rhs)
}))
# END_INDENT
# START_INDENT
def Func()
if true
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
endif
enddef
# END_INDENT
# START_INDENT
silent if true
echo
endif
# END_INDENT
# START_INDENT
def Func()
sort :^.*[\/]:
enddef
# END_INDENT
# START_INDENT
def Func()
d = {
}
hd =<< trim END
['
]'
END
enddef
# END_INDENT
# START_INDENT
def Func()
if true
var hd =<< trim END
if get(b:, 'current_syntax', '')
endif
END
elseif true
echo
endif
enddef
# END_INDENT
# START_INDENT
# test for control-flow keyword followed by commented fold marker {{{
if true
echo
endif #}}}
# END_INDENT
# START_INDENT
if true
if true
windo if true | echo | endif
augroup Name
autocmd WinLeave * if true | eval 1 + 2 | endif
augroup END
endif
endif
# END_INDENT
# START_INDENT
if true
echo ' =<< trim END'
->len()
endif
# END_INDENT
# START_INDENT
function Func()
if true
if true
if true | echo com | endif
if true | echo com | endif
endif
else
endif
endfunction
# END_INDENT
# START_INDENT
var matchpairs: string = &matchpairs
var pairs: dict<list<string>>
for [opening: string, closing: string]
in matchpairs
->split(',')
->map((_, v: string): list<string> => split(v, ':'))
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
endfor
# END_INDENT
# START_INDENT
{
echo []
+ []
+ [{a: 1,
b: 2}]
}
# END_INDENT
# START_INDENT
def Foo()
Bar(1,
[]->filter((_, v) => {
return true
}),
() => {
echo
})
enddef
# END_INDENT
# START_INDENT
echo {
k: () => {
if true
echo
popup_setoptions(id,
{title: 'title'})
endif
}
}
# END_INDENT
# START_INDENT
if true
elseif
endif
# END_INDENT
# START_INDENT
if (
true)
&& true
echo
endif
# END_INDENT
# START_INDENT
abstract class Shape
var color = Color.Black
var thickness = 10
endclass
# END_INDENT
# START_INDENT
class OtherThing
var size: number
static var totalSize: number
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
# END_INDENT
# START_INDENT
interface HasSurface
var size: number
def Surface(): number
endinterface
# END_INDENT
# START_INDENT
interface EnterExit
def Enter(): void
def Exit(): void
endinterface
# END_INDENT
# START_INDENT
enum Color
White,
Red,
Green,
Blue,
Black
endenum
# END_INDENT
# START_INDENT
enum Digits
INVALID(v:numbermax), # The null value.
ZERO(0 * v:numbermin), ONE(2 - 1),
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
NINE(3 + 3 + 3)
const value: number
def new(value: number)
this.value = value
enddef
endenum
# END_INDENT
+782
View File
@@ -0,0 +1,782 @@
vim9script
# vim: set ft=vim sw=4 :
# START_INDENT
var result = Func(
arg1,
arg2
)
# END_INDENT
# START_INDENT
var result = Func(arg1,
arg2)
# END_INDENT
# START_INDENT
filter(list, (k, v) =>
v > 0)
# END_INDENT
# START_INDENT
filter(list, (k, v) => {
const x = get(list, k, 0)
return x > 0
})
# END_INDENT
# START_INDENT
if x > 0
filter(list, (k, v) => {
const x = get(list, k, 1)
return x > 0
})
endif
# END_INDENT
# START_INDENT
{
var temp = 'temp'
}
# END_INDENT
# START_INDENT
var text = lead
.. middle
.. end
# END_INDENT
# START_INDENT
var text = lead ..
middle ..
end
# END_INDENT
# START_INDENT
var total = start +
end -
correction
# END_INDENT
# START_INDENT
var result = start
:+ print
# END_INDENT
# START_INDENT
var result = positive
? PosFunc(arg)
: NegFunc(arg)
# END_INDENT
# START_INDENT
var result = GetBuilder()
->BuilderSetWidth(333)
->BuilderSetHeight(777)
->BuilderBuild()
# END_INDENT
# START_INDENT
var result = MyDict
.member
# END_INDENT
# START_INDENT
autocmd BufNewFile *.match if condition
| echo 'match'
| endif
# END_INDENT
# START_INDENT
set cpo+=C
var lines =<< trim END
| this works
END
set cpo-=C
# END_INDENT
# START_INDENT
syn region Text
\ start='foo'
#\ comment
\ end='bar'
# END_INDENT
# START_INDENT
au CursorHold * echom 'BEFORE bar'
#\ some comment
| echom 'AFTER bar'
# END_INDENT
# START_INDENT
def MyFunc(text: string,
separator = '-'
): string
enddef
# END_INDENT
# START_INDENT
def MyFunc(
text: string,
separator = '-'
): string
enddef
# END_INDENT
# START_INDENT
[var1, var2] =
Func()
# END_INDENT
# START_INDENT
const list = ['one',
'two']
# END_INDENT
# START_INDENT
const list = [
'one',
'two',
]
# END_INDENT
# START_INDENT
const dict = {one: 1,
two: 2
}
# END_INDENT
# START_INDENT
const dict = {
one: 1,
two: 2
}
# END_INDENT
# START_INDENT
if true
const dict =
{
one: 1,
two: 2
}
endif
# END_INDENT
# START_INDENT
def Func()
return {
one: 1
}
enddef
# END_INDENT
# START_INDENT
echo {
a: 0,
# b
# c
}
# END_INDENT
# START_INDENT
echo search(
# comment
'1'
.. '2'
)
# END_INDENT
# START_INDENT
if true
var v = ( # trailing "(" starts line continuation
3 + 4 # nothing special
) # end of expression indicates continued line
var x: number # needs to align with previous "var"
endif
# END_INDENT
# START_INDENT
def Func() # {{{
# comment
if true
return
endif
enddef
# END_INDENT
# START_INDENT
echo {
key:
'value',
}
# END_INDENT
# START_INDENT
var id = time
->timer_start((_) => {
n = 0
})
# END_INDENT
# START_INDENT
var n =
# comment
1
+ 2
var s = ''
# END_INDENT
# START_INDENT
var keys = {
J: 'j',
"\<Home>": '1G',
"\<End>": 'G',
z: 'zz'
}
# END_INDENT
# START_INDENT
export def Func(
n: number,
s: string,
...l: list<bool>
)
enddef
# END_INDENT
# START_INDENT
var heredoc =<< trim ENDD
var nested_heredoc =<< trim END
END
ENDD
# END_INDENT
# START_INDENT
if true
else " comment
endif
# END_INDENT
# START_INDENT
if true | echo 'one' | endif
if true | echo 'two' | endif
if true | echo 'three' | endif
# END_INDENT
# START_INDENT
if true
:'<-1 mark <
else
echo ''
endif
# END_INDENT
# START_INDENT
def Func()
Cmd %
enddef
# END_INDENT
# START_INDENT
if true
popup_move(id, {col: 1,
line: 2})
endif
setwinvar(id, 'name', 3)
# END_INDENT
# START_INDENT
var d = [
{a: 'x',
b: 'y'},
FuncA(),
FuncB(),
]
# END_INDENT
# START_INDENT
var ll = [[
1,
2,
3], [
4,
5,
6], [
7,
8,
9]]
# END_INDENT
# START_INDENT
var ld = [{
a: 'xxx',
b: 'yyy'}, {
c: 'xxx',
d: 'yyy'}, {
e: 'xxx',
f: 'yyy'}, {
}]
# END_INDENT
# START_INDENT
var d = {
a: {
b: {
c: [{
d: 'e',
f: 'g',
h: 'i'
}],
j: 'k',
},
},
}
# END_INDENT
# START_INDENT
if true
var end: any
if true
end = 0
elseif true
echo
endif
endif
# END_INDENT
# START_INDENT
if true
var d = {
end: 0}
endif
# END_INDENT
# START_INDENT
def Func(
s: string,
n = 1,
m = 2
)
enddef
# END_INDENT
# START_INDENT
var h =<< END
text
END
def Func()
echo
enddef
# END_INDENT
# START_INDENT
def Func()
var h =<< END
text
END
echo 'test'
enddef
# END_INDENT
# START_INDENT
def Foo()
lcd -
enddef
def Bar()
echo
enddef
# END_INDENT
# START_INDENT
if true
n = Func(1, 2,
3)
endif
# END_INDENT
# START_INDENT
def Func(s: string,
n: number): bool
if true
return false
endif
enddef
# END_INDENT
# START_INDENT
def Func(
n: number)
#
echo
enddef
# END_INDENT
# START_INDENT
# INDENT_AT this-line
def Func(
n: number)
#
echo # this-line
enddef
# END_INDENT
# START_INDENT
if true
if true
normal! ==
endif
endif
# END_INDENT
# START_INDENT
var d = {
a: () => true,
b: () => true
&& true
&& Foo(),
c: () => Bar(),
e: () => Baz(),
}
# END_INDENT
# START_INDENT
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
# END_INDENT
# START_INDENT
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
return (Emit: func(any)) => {
Cont((t: any) => {
if Pred(t)
Emit(t)
endif
})
}
enddef
# END_INDENT
# START_INDENT
# INDENT_EXE unlet! g:vim_indent
# END_INDENT
# START_INDENT
g:lightline = {
'active': {
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
},
'inactive': {
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
}
}
# END_INDENT
# START_INDENT
if getline(1, 10)
->map((_, v: string): number => strcharlen(v))
->max() > 1'000
&l:breakindent = false
&l:linebreak = false
else
&l:breakindent = true
&l:linebreak = true
endif
# END_INDENT
# START_INDENT
var ext2cmd: dict<string> = {
doc: $'antiword {fname}',
docx: $'pandoc --from=docx --to=markdown {fname}',
epub: $'pandoc --from=epub --to=markdown {fname}',
odp: $'odt2txt {fname}',
odt: $'odt2txt {fname}',
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
rtf: 'unrtf --text',
}
# END_INDENT
# START_INDENT
const ptybuf: number = term_start(&shell, {
hidden: true,
exit_cb: (_, _) => {
if true
close
else
help
endif
}
})
# END_INDENT
# START_INDENT
var d = {
a: 0,
# a ' quote {{{
#}}}
b: 0,
}
# END_INDENT
# START_INDENT
echo printf('%s () %s',
1,
2
)
# END_INDENT
# START_INDENT
prop_add(1, col('.'), {
length: 2,
type: 'test'
})
# END_INDENT
# START_INDENT
echo (() => " string starting with space")()
echo
# END_INDENT
# START_INDENT
var variables = deepcopy(g:)
->filter((k: string, _): bool =>
k =~ '\c\V' .. keyword->escape('\')
&& k !~ '\%(loaded\|did_plugin_\)')
->items()
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
new
# END_INDENT
# START_INDENT
var d = freq
->map((_, v) =>
v * (
1
+ 2
))
for item in d
->items()
->sort((a, b) => b[1] - a[1])
echo
endfor
# END_INDENT
# START_INDENT
var matching_abbrev: list<dict<string>> = copy(ABBREV)
->filter((_, v: dict<string>): bool =>
stridx(v.lhs, word_to_complete) == 0)
->map((_, v: dict<string>) => ({
word: v.lhs,
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
: AbbrevRhs(v.rhs)
}))
# END_INDENT
# START_INDENT
def Func()
if true
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
endif
enddef
# END_INDENT
# START_INDENT
silent if true
echo
endif
# END_INDENT
# START_INDENT
def Func()
sort :^.*[\/]:
enddef
# END_INDENT
# START_INDENT
def Func()
d = {
}
hd =<< trim END
['
]'
END
enddef
# END_INDENT
# START_INDENT
def Func()
if true
var hd =<< trim END
if get(b:, 'current_syntax', '')
endif
END
elseif true
echo
endif
enddef
# END_INDENT
# START_INDENT
# test for control-flow keyword followed by commented fold marker {{{
if true
echo
endif #}}}
# END_INDENT
# START_INDENT
if true
if true
windo if true | echo | endif
augroup Name
autocmd WinLeave * if true | eval 1 + 2 | endif
augroup END
endif
endif
# END_INDENT
# START_INDENT
if true
echo ' =<< trim END'
->len()
endif
# END_INDENT
# START_INDENT
function Func()
if true
if true
if true | echo com | endif
if true | echo com | endif
endif
else
endif
endfunction
# END_INDENT
# START_INDENT
var matchpairs: string = &matchpairs
var pairs: dict<list<string>>
for [opening: string, closing: string]
in matchpairs
->split(',')
->map((_, v: string): list<string> => split(v, ':'))
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
endfor
# END_INDENT
# START_INDENT
{
echo []
+ []
+ [{a: 1,
b: 2}]
}
# END_INDENT
# START_INDENT
def Foo()
Bar(1,
[]->filter((_, v) => {
return true
}),
() => {
echo
})
enddef
# END_INDENT
# START_INDENT
echo {
k: () => {
if true
echo
popup_setoptions(id,
{title: 'title'})
endif
}
}
# END_INDENT
# START_INDENT
if true
elseif
endif
# END_INDENT
# START_INDENT
if (
true)
&& true
echo
endif
# END_INDENT
# START_INDENT
abstract class Shape
var color = Color.Black
var thickness = 10
endclass
# END_INDENT
# START_INDENT
class OtherThing
var size: number
static var totalSize: number
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
# END_INDENT
# START_INDENT
interface HasSurface
var size: number
def Surface(): number
endinterface
# END_INDENT
# START_INDENT
interface EnterExit
def Enter(): void
def Exit(): void
endinterface
# END_INDENT
# START_INDENT
enum Color
White,
Red,
Green,
Blue,
Black
endenum
# END_INDENT
# START_INDENT
enum Digits
INVALID(v:numbermax), # The null value.
ZERO(0 * v:numbermin), ONE(2 - 1),
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
NINE(3 + 3 + 3)
const value: number
def new(value: number)
this.value = value
enddef
endenum
# END_INDENT
+16
View File
@@ -0,0 +1,16 @@
Unless otherwise stated, all files in this directory are distributed under the
Zero-Clause BSD license.
Zero-Clause BSD
===============
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+544
View File
@@ -0,0 +1,544 @@
# Netrw.vim
netrw.vim plugin from vim (upstream repository)
The upstream maintained netrw plugin. The original has been created and
maintained by Charles E Campbell and maintained by the vim project until
v9.1.0988.
Every major version a snapshot from here will be sent to the main [Vim][1]
upstream for distribution with Vim.
# License
To see License informations see the LICENSE.txt file included in this
repository.
# Credits
Below are stated the contribution made in the past to netrw.
Changes made to `autoload/netrw.vim`:
- 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a)
- 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a)
- 2024 Feb 19 by Vim Project: (announce adoption)
- 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly
- 2024 Apr 03 by Vim Project: detect filetypes for remote edited files
- 2024 May 08 by Vim Project: cleanup legacy Win9X checks
- 2024 May 09 by Vim Project: remove hard-coded private.ppk
- 2024 May 10 by Vim Project: recursively delete directories by default
- 2024 May 13 by Vim Project: prefer scp over pscp
- 2024 Jun 04 by Vim Project: set bufhidden if buffer changed, nohidden is set and buffer shall be switched (#14915)
- 2024 Jun 13 by Vim Project: glob() on Windows fails when a directory name contains [] (#14952)
- 2024 Jun 23 by Vim Project: save ad restore registers when liststyle = WIDELIST (#15077, #15114)
- 2024 Jul 22 by Vim Project: avoid endless recursion (#15318)
- 2024 Jul 23 by Vim Project: escape filename before trying to delete it (#15330)
- 2024 Jul 30 by Vim Project: handle mark-copy to same target directory (#12112)
- 2024 Aug 02 by Vim Project: honor g:netrw_alt{o,v} for :{S,H,V}explore (#15417)
- 2024 Aug 15 by Vim Project: style changes, prevent E121 (#15501)
- 2024 Aug 22 by Vim Project: fix mf-selection highlight (#15551)
- 2024 Aug 22 by Vim Project: adjust echo output of mx command (#15550)
- 2024 Sep 15 by Vim Project: more strict confirmation dialog (#15680)
- 2024 Sep 19 by Vim Project: mf-selection highlight uses wrong pattern (#15700)
- 2024 Sep 21 by Vim Project: remove extraneous closing bracket (#15718)
- 2024 Oct 21 by Vim Project: remove netrwFileHandlers (#15895)
- 2024 Oct 27 by Vim Project: clean up gx mapping (#15721)
- 2024 Oct 30 by Vim Project: fix filetype detection for remote files (#15961)
- 2024 Oct 30 by Vim Project: fix x mapping on cygwin (#13687)
- 2024 Oct 31 by Vim Project: add netrw#Launch() and netrw#Open() (#15962)
- 2024 Oct 31 by Vim Project: fix E874 when browsing remote dir (#15964)
- 2024 Nov 07 by Vim Project: use keeppatterns to prevent polluting the search history
- 2024 Nov 07 by Vim Project: fix a few issues with netrw tree listing (#15996)
- 2024 Nov 10 by Vim Project: directory symlink not resolved in tree view (#16020)
- 2024 Nov 14 by Vim Project: small fixes to netrw#BrowseX (#16056)
- 2024 Nov 23 by Vim Project: update decompress defaults (#16104)
- 2024 Nov 23 by Vim Project: fix powershell escaping issues (#16094)
- 2024 Dec 04 by Vim Project: do not detach for gvim (#16168)
- 2024 Dec 08 by Vim Project: check the first arg of netrw_browsex_viewer for being executable (#16185)
- 2024 Dec 12 by Vim Project: do not pollute the search history (#16206)
- 2024 Dec 19 by Vim Project: change style (#16248)
- 2024 Dec 20 by Vim Project: change style continued (#16266), fix escaping of # in :Open command (#16265)
General changes made to netrw:
```
v172: Sep 02, 2021 * (Bram Moolenaar) Changed "l:go" to "go"
* (Bram Moolenaar) no need for "b" in
netrw-safe guioptions
Nov 15, 2021 * removed netrw_localrm and netrw_localrmdir
references
Aug 18, 2022 * (Miguel Barro) improving compatibility with
powershell
v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe()
to allow |'bh'| to be set to delete when
rather than hide when g:netrw_fastbrowse
was zero.
* Installed |g:netrw_clipboard| setting
* Installed option bypass for |'guioptions'|
a/A settings
* Changed popup_beval() to |popup_atcursor()|
in netrw#ErrorMsg (lacygoill). Apparently
popup_beval doesn't reliably close the
popup when the mouse is moved.
* VimEnter() now using win_execute to examine
buffers for an attempt to open a directory.
Avoids issues with popups/terminal from
command line. (lacygoill)
Jun 28, 2021 * (zeertzjq) provided a patch for use of
xmap,xno instead of vmap,vno in
netrwPlugin.vim. Avoids entanglement with
select mode.
Jul 14, 2021 * Fixed problem addressed by tst976; opening
a file using tree mode, going up a
directory, and opening a file there was
opening the file in the wrong directory.
Jul 28, 2021 * (Ingo Karkat) provided a patch fixing an
E488 error with netrwPlugin.vim
(occurred for vim versions < 8.02)
v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree
would not hide with the ^\..* pattern
correctly.
* (Marcin Szamotulski) NetrwOptionRestore
did not restore options correctly that
had a single quote in the option string.
Apr 13, 2020 * implemented error handling via popup
windows (see |popup_beval()|)
Apr 30, 2020 * (reported by Manatsu Takahashi) while
using Lexplore, a modified file could
be overwritten. Sol'n: will not overwrite,
but will emit an |E37| (although one cannot
add an ! to override)
Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking
:Lexplore and quitting it left unused
hidden buffers. Netrw will now set netrw
buffers created by :Lexplore to |'bh'|=wipe.
v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x
(|netrw-x|) would throw an error when
attempting to open a local directory.
v168: Dec 12, 2019 * scp timeout error message not reported,
hopefully now fixed (Shane Xb Qian)
v167: Nov 29, 2019 * netrw does a save&restore on @* and @+.
That causes problems with the clipboard.
Now restores occurs only if @* or @+ have
been changed.
* netrw will change @* or @+ less often.
Never if I happen to have caught all the
operations that modify the unnamed
register (which also writes @*).
* Modified hiding behavior so that "s"
will not ignore hiding.
v166: Nov 06, 2019 * Removed a space from a nmap for "-"
* Numerous debugging statement changes
v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel')
was left changed
* (Holger Mitschke) reported a problem with
saving and restoring history. Fixed.
* Hopefully I fixed a nasty bug that caused a
file rename to wipe out a buffer that it
should not have wiped out.
* (Holger Mitschke) amended this help file
with additional |g:netrw_special_syntax|
items
* Prioritized wget over curl for
g:netrw_http_cmd
v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
with a patch; these are now fixed.
Oct 26, 2016 * I started using mate-terminal and found that
x and gx (|netrw-x| and |netrw-gx|) were no
longer working. Fixed (using atril when
$DESKTOP_SESSION is "mate").
Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
being restored with keepregstar rather than
keepregplus.
Nov 09, 2016 * Broke apart the command from the options,
mostly for Windows. Introduced new netrw
settings: |g:netrw_localcopycmdopt|
|g:netrw_localcopydircmdopt|
|g:netrw_localmkdiropt|
|g:netrw_localmovecmdopt|
Nov 21, 2016 * (mattn) provided a patch for preview; swapped
winwidth() with winheight()
Nov 22, 2016 * (glacambre) reported that files containing
spaces weren't being obtained properly via
scp. Fix: apparently using single quotes
such as with 'file name' wasn't enough; the
spaces inside the quotes also had to be
escaped (ie. 'file\ name').
* Also fixed obtain (|netrw-O|) to be able to
obtain files with spaces in their names
Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
when atop "Hiding" in the banner also caused
the active-banner hiding control to occur
Jan 03, 2017 * (Enno Nagel) reported that attempting to
apply netrw to a directory that was without
read permission caused a syntax error.
Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
using netrw#Call() better. Now returns
value of internal routines return, for example.
Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
use |:edit| instead of |:read|. I also
changed the routine name to netrw#FileUrlEdit.
Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
could generate a new listing buffer and
window instead of toggling the netrw display.
Unfortunately, the directions for eliciting
the problem weren't complete, so I may or
may not have fixed that issue.
Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
(see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
Mar 21, 2017 * previously, netrw would specify (safe) settings
even when the setting was already safe for
netrw. Netrw now attempts to leave such
already-netrw-safe settings alone.
(affects s:NetrwOptionRestore() and
s:NetrwSafeOptions(); also introduced
s:NetrwRestoreSetting())
Jun 26, 2017 * (Christian Brabandt) provided a patch to
allow curl to follow redirects (ie. -L
option)
Jun 26, 2017 * (Callum Howard) reported a problem with
:Lexpore not removing the Lexplore window
after a change-directory
Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
previously edited file (e.g. with CTRL-^)
after editing a file:// URL. Patch to
have a "keepalt" included.
Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
did not work on directories in the current
tree
v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
a function that returned a 0 while silently
invoking a shell command. The shell command
activated a ShellCmdPost event which in turn
called s:LocalBrowseRefresh(). That looks
over all netrw buffers for changes needing
refreshes. However, inside a |:map-<expr>|,
tab and window changes are disallowed. Fixed.
(affects netrw's s:LocalBrowseRefresh())
* g:netrw_localrmdir not used any more, but
the relevant patch that causes |delete()| to
take over was #1107 (not #1109).
* |expand()| is now used on |g:netrw_home|;
consequently, g:netrw_home may now use
environment variables
* s:NetrwLeftmouse and s:NetrwCLeftmouse will
return without doing anything if invoked
when inside a non-netrw window
Jun 15, 2016 * gx now calls netrw#GX() which returns
the word under the cursor. The new
wrinkle: if one is in a netrw buffer,
then netrw's s:NetrwGetWord().
Jun 22, 2016 * Netrw was executing all its associated
Filetype commands silently; I'm going
to try doing that "noisily" and see if
folks have a problem with that.
Aug 12, 2016 * Changed order of tool selection for
handling http://... viewing.
(Nikolay Aleksandrovich Pavlov)
Aug 21, 2016 * Included hiding/showing/all for tree
listings
* Fixed refresh (^L) for tree listings
v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
Feb 23, 2016 * s:ComposePath(base,subdir) now uses
fnameescape() on the base portion
Mar 01, 2016 * (gt_macki) reported where :Explore would
make file unlisted. Fixed (tst943)
Apr 04, 2016 * (reported by John Little) netrw normally
suppresses browser messages, but sometimes
those "messages" are what is wanted.
See |g:netrw_suppress_gx_mesg|
Apr 06, 2016 * (reported by Carlos Pita) deleting a remote
file was giving an error message. Fixed.
Apr 08, 2016 * (Charles Cooper) had a problem with an
undefined b:netrw_curdir. He also provided
a fix.
Apr 20, 2016 * Changed s:NetrwGetBuffer(); now uses
dictionaries. Also fixed the "No Name"
buffer problem.
v155: Oct 29, 2015 * (Timur Fayzrakhmanov) reported that netrw's
mapping of ctrl-l was not allowing refresh of
other windows when it was done in a netrw
window.
Nov 05, 2015 * Improved s:TreeSqueezeDir() to use search()
instead of a loop
* NetrwBrowse() will return line to
w:netrw_bannercnt if cursor ended up in
banner
Nov 16, 2015 * Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
Nov 17, 2015 * Commented out imaps -- perhaps someone can
tell me how they're useful and should be
retained?
Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
file in addition to simply bringing up the
URL in a browser. Fixed.
Nov 23, 2015 * Added |g:netrw_sizestyle| support
Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
maps.
Jan 05, 2016 * |netrw-qL| implemented to mark files based
upon |location-list|s; similar to |netrw-qF|.
Jan 19, 2016 * using - call delete(directoryname,"d") -
instead of using g:netrw_localrmdir if
v7.4 + patch#1107 is available
Jan 28, 2016 * changed to using |winsaveview()| and
|winrestview()|
Jan 28, 2016 * s:NetrwTreePath() now does a save and
restore of view
Feb 08, 2016 * Fixed a tree-listing problem with remote
directories
v154: Feb 26, 2015 * (Yuri Kanivetsky) reported a situation where
a file was not treated properly as a file
due to g:netrw_keepdir == 1
Mar 25, 2015 * (requested by Ben Friz) one may now sort by
extension
Mar 28, 2015 * (requested by Matt Brooks) netrw has a lot
of buffer-local mappings; however, some
plugins (such as vim-surround) set up
conflicting mappings that cause vim to wait.
The "<nowait>" modifier has been included
with most of netrw's mappings to avoid that
delay.
Jun 26, 2015 * |netrw-gn| mapping implemented
* :Ntree NotADir resulted in having
the tree listing expand in the error messages
window. Fixed.
Jun 29, 2015 * Attempting to delete a file remotely caused
an error with "keepsol" mentioned; fixed.
Jul 08, 2015 * Several changes to keep the |:jumps| table
correct when working with
|g:netrw_fastbrowse| set to 2
* wide listing with accented characters fixed
(using %-S instead of %-s with a |printf()|
Jul 13, 2015 * (Daniel Hahler) CheckIfKde() could be true
but kfmclient not installed. Changed order
in netrw#BrowseX(): checks if kde and
kfmclient, then will use xdg-open on a unix
system (if xdg-open is executable)
Aug 11, 2015 * (McDonnell) tree listing mode wouldn't
select a file in a open subdirectory.
* (McDonnell) when multiple subdirectories
were concurrently open in tree listing
mode, a ctrl-L wouldn't refresh properly.
* The netrw:target menu showed duplicate
entries
Oct 13, 2015 * (mattn) provided an exception to handle
windows with shellslash set but no shell
Oct 23, 2015 * if g:netrw_usetab and <c-tab> now used
to control whether NetrwShrink is used
(see |netrw-c-tab|)
v153: May 13, 2014 * added another |g:netrw_ffkeep| usage {{{2
May 14, 2014 * changed s:PerformListing() so that it
always sets ft=netrw for netrw buffers
(ie. even when syntax highlighting is
off, not available, etc)
May 16, 2014 * introduced the |netrw-ctrl-r| functionality
May 17, 2014 * introduced the |netrw-:NetrwMB| functionality
* mb and mB (|netrw-mb|, |netrw-mB|) will
add/remove marked files from bookmark list
May 20, 2014 * (Enno Nagel) reported that :Lex <dirname>
wasn't working. Fixed.
May 26, 2014 * restored test to prevent leftmouse window
resizing from causing refresh.
(see s:NetrwLeftmouse())
* fixed problem where a refresh caused cursor
to go just under the banner instead of
staying put
May 28, 2014 * (László Bimba) provided a patch for opening
the |:Lexplore| window 100% high, optionally
on the right, and will work with remote
files.
May 29, 2014 * implemented :NetrwC (see |netrw-:NetrwC|)
Jun 01, 2014 * Removed some "silent"s from commands used
to implemented scp://... and pscp://...
directory listing. Permits request for
password to appear.
Jun 05, 2014 * (Enno Nagel) reported that user maps "/"
caused problems with "b" and "w", which
are mapped (for wide listings only) to
skip over files rather than just words.
Jun 10, 2014 * |g:netrw_gx| introduced to allow users to
override default "<cfile>" with the gx
(|netrw-gx|) map
Jun 11, 2014 * gx (|netrw-gx|), with |'autowrite'| set,
will write modified files. s:NetrwBrowseX()
will now save, turn off, and restore the
|'autowrite'| setting.
Jun 13, 2014 * added visual map for gx use
Jun 15, 2014 * (Enno Nagel) reported that with having hls
set and wide listing style in use, that the
b and w maps caused unwanted highlighting.
Jul 05, 2014 * |netrw-mv| and |netrw-mX| commands included
Jul 09, 2014 * |g:netrw_keepj| included, allowing optional
keepj
Jul 09, 2014 * fixing bugs due to previous update
Jul 21, 2014 * (Bruno Sutic) provided an updated
netrw_gitignore.vim
Jul 30, 2014 * (Yavuz Yetim) reported that editing two
remote files of the same name caused the
second instance to have a "temporary"
name. Fixed: now they use the same buffer.
Sep 18, 2014 * (Yasuhiro Matsumoto) provided a patch which
allows scp and windows local paths to work.
Oct 07, 2014 * gx (see |netrw-gx|) when atop a directory,
will now do |gf| instead
Nov 06, 2014 * For cygwin: cygstart will be available for
netrw#BrowseX() to use if its executable.
Nov 07, 2014 * Began support for file://... urls. Will use
|g:netrw_file_cmd| (typically elinks or links)
Dec 02, 2014 * began work on having mc (|netrw-mc|) copy
directories. Works for linux machines,
cygwin+vim, but not for windows+gvim.
Dec 02, 2014 * in tree mode, netrw was not opening
directories via symbolic links.
Dec 02, 2014 * added resolved link information to
thin and tree modes
Dec 30, 2014 * (issue#231) |:ls| was not showing
remote-file buffers reliably. Fixed.
v152: Apr 08, 2014 * uses the |'noswapfile'| option (requires {{{2
vim 7.4 with patch 213)
* (Enno Nagel) turn |'rnu'| off in netrw
buffers.
* (Quinn Strahl) suggested that netrw
allow regular window splitting to occur,
thereby allowing |'equalalways'| to take
effect.
* (qingtian zhao) normally, netrw will
save and restore the |'fileformat'|;
however, sometimes that isn't wanted
Apr 14, 2014 * whenever netrw marks a buffer as ro,
it will also mark it as nomod.
Apr 16, 2014 * sftp protocol now supported by
netrw#Obtain(); this means that one
may use "mc" to copy a remote file
to a local file using sftp, and that
the |netrw-O| command can obtain remote
files via sftp.
* added [count]C support (see |netrw-C|)
Apr 18, 2014 * when |g:netrw_chgwin| is one more than
the last window, then vertically split
the last window and use it as the
chgwin window.
May 09, 2014 * SavePosn was "saving filename under cursor"
from a non-netrw window when using :Rex.
v151: Jan 22, 2014 * extended :Rexplore to return to buffer {{{2
prior to Explore or editing a directory
* (Ken Takata) netrw gave error when
clipboard was disabled. Sol'n: Placed
several if has("clipboard") tests in.
* Fixed ftp://X@Y@Z// problem; X@Y now
part of user id, and only Z is part of
hostname.
* (A Loumiotis) reported that completion
using a directory name containing spaces
did not work. Fixed with a retry in
netrw#Explore() which removes the
backslashes vim inserted.
Feb 26, 2014 * :Rexplore now records the current file
using w:netrw_rexfile when returning via
|:Rexplore|
Mar 08, 2014 * (David Kotchan) provided some patches
allowing netrw to work properly with
windows shares.
* Multiple one-liner help messages available
by pressing <cr> while atop the "Quick
Help" line
* worked on ShellCmdPost, FocusGained event
handling.
* |:Lexplore| path: will be used to update
a left-side netrw browsing directory.
Mar 12, 2014 * |netrw-s-cr|: use <s-cr> to close
tree directory implemented
Mar 13, 2014 * (Tony Mechylynck) reported that using
the browser with ftp on a directory,
and selecting a gzipped txt file, that
an E19 occurred (which was issued by
gzip.vim). Fixed.
Mar 14, 2014 * Implemented :MF and :MT (see |netrw-:MF|
and |netrw-:MT|, respectively)
Mar 17, 2014 * |:Ntree| [dir] wasn't working properly; fixed
Mar 18, 2014 * Changed all uses of set to setl
Mar 18, 2014 * Commented the netrw_btkeep line in
s:NetrwOptionSave(); the effect is that
netrw buffers will remain as |'bt'|=nofile.
This should prevent swapfiles being created
for netrw buffers.
Mar 20, 2014 * Changed all uses of lcd to use s:NetrwLcd()
instead. Consistent error handling results
and it also handles Window's shares
* Fixed |netrw-d| command when applied with ftp
* https: support included for netrw#NetRead()
v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to {{{2
return to the netrw directory listing
Jul 13, 2013 * (Jonas Diemer) suggested changing
a <cWORD> to <cfile>.
Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
use of mkdir did not produce directories
following the user's umask.
Aug 27, 2013 * introduced |g:netrw_altfile| option
Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
when available, by default
Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
opening some directories properly from the
command line.
Nov 09, 2013 * |:Lexplore| introduced
* (Ondrej Platek) reported an issue with
netrw's trees (P15). Fixed.
* (Jorge Solis) reported that "t" in
tree mode caused netrw to forget its
line position.
Dec 05, 2013 * Added <s-leftmouse> file marking
(see |netrw-mf|)
Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
strlen() instead s:Strlen() when handling
multibyte chars with strpart()
(ie. strpart() is byte oriented, not
display-width oriented).
Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
and a portion of timestamps were wrongly
highlighted with the directory color when
setting `:let g:netrw_liststyle=1` on Windows.
* (Paul Domaskis) noted that sometimes
cursorline was activating in non-netrw
windows. All but one setting of cursorline
was done via setl; there was one that was
overlooked. Fixed.
Dec 24, 2013 * (esquifit) asked that netrw allow the
/cygdrive prefix be a user-alterable
parameter.
Jan 02, 2014 * Fixed a problem with netrw-based ballon
evaluation (ie. netrw#NetrwBaloonHelp()
not having been loaded error messages)
Jan 03, 2014 * Fixed a problem with tree listings
* New command installed: |:Ntree|
Jan 06, 2014 * (Ivan Brennan) reported a problem with
|netrw-P|. Fixed.
Jan 06, 2014 * Fixed a problem with |netrw-P| when the
modified file was to be abandoned.
Jan 15, 2014 * (Matteo Cavalleri) reported that when the
banner is suppressed and tree listing is
used, a blank line was left at the top of
the display. Fixed.
Jan 20, 2014 * (Gideon Go) reported that, in tree listing
style, with a previous window open, that
the wrong directory was being used to open
a file. Fixed. (P21)
v149: Apr 18, 2013 * in wide listing format, now have maps for {{{2
w and b to move to next/previous file
Apr 26, 2013 * one may now copy files in the same
directory; netrw will issue requests for
what names the files should be copied under
Apr 29, 2013 * Trying Benzinger's problem again. Seems
that commenting out the BufEnter and
installing VimEnter (only) works. Weird
problem! (tree listing, vim -O Dir1 Dir2)
May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
May 02, 2013 * introduced |g:netrw_bannerbackslash| as
requested by Paul Domaskis.
Jul 03, 2013 * Explore now avoids splitting when a buffer
will be hidden.
v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct {{{2
choice of listing style, hiding style, and
sorting style
```
[1]: https://github.com/vim/vim
@@ -1,51 +1,6 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
" Maintainer: This runtime file is looking for a new maintainer.
" Date: May 03, 2023
" Version: 173a
" Last Change: {{{1
" 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a)
" 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a)
" 2024 Feb 19 by Vim Project: (announce adoption)
" 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly
" 2024 Apr 03 by Vim Project: detect filetypes for remote edited files
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
" 2024 May 09 by Vim Project: remove hard-coded private.ppk
" 2024 May 10 by Vim Project: recursively delete directories by default
" 2024 May 13 by Vim Project: prefer scp over pscp
" 2024 Jun 04 by Vim Project: set bufhidden if buffer changed, nohidden is set and buffer shall be switched (#14915)
" 2024 Jun 13 by Vim Project: glob() on Windows fails when a directory name contains [] (#14952)
" 2024 Jun 23 by Vim Project: save ad restore registers when liststyle = WIDELIST (#15077, #15114)
" 2024 Jul 22 by Vim Project: avoid endless recursion (#15318)
" 2024 Jul 23 by Vim Project: escape filename before trying to delete it (#15330)
" 2024 Jul 30 by Vim Project: handle mark-copy to same target directory (#12112)
" 2024 Aug 02 by Vim Project: honor g:netrw_alt{o,v} for :{S,H,V}explore (#15417)
" 2024 Aug 15 by Vim Project: style changes, prevent E121 (#15501)
" 2024 Aug 22 by Vim Project: fix mf-selection highlight (#15551)
" 2024 Aug 22 by Vim Project: adjust echo output of mx command (#15550)
" 2024 Sep 15 by Vim Project: more strict confirmation dialog (#15680)
" 2024 Sep 19 by Vim Project: mf-selection highlight uses wrong pattern (#15700)
" 2024 Sep 21 by Vim Project: remove extraneous closing bracket (#15718)
" 2024 Oct 21 by Vim Project: remove netrwFileHandlers (#15895)
" 2024 Oct 27 by Vim Project: clean up gx mapping (#15721)
" 2024 Oct 30 by Vim Project: fix filetype detection for remote files (#15961)
" 2024 Oct 30 by Vim Project: fix x mapping on cygwin (#13687)
" 2024 Oct 31 by Vim Project: add netrw#Launch() and netrw#Open() (#15962)
" 2024 Oct 31 by Vim Project: fix E874 when browsing remote dir (#15964)
" 2024 Nov 07 by Vim Project: use keeppatterns to prevent polluting the search history
" 2024 Nov 07 by Vim Project: fix a few issues with netrw tree listing (#15996)
" 2024 Nov 10 by Vim Project: directory symlink not resolved in tree view (#16020)
" 2024 Nov 14 by Vim Project: small fixes to netrw#BrowseX (#16056)
" 2024 Nov 23 by Vim Project: update decompress defaults (#16104)
" 2024 Nov 23 by Vim Project: fix powershell escaping issues (#16094)
" 2024 Dec 04 by Vim Project: do not detach for gvim (#16168)
" 2024 Dec 08 by Vim Project: check the first arg of netrw_browsex_viewer for being executable (#16185)
" 2024 Dec 12 by Vim Project: do not pollute the search history (#16206)
" 2024 Dec 19 by Vim Project: change style (#16248)
" 2024 Dec 20 by Vim Project: change style continued (#16266), fix escaping of # in :Open command (#16265)
" }}}
" Former Maintainer: Charles E Campbell
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Former Maintainer: Charles E Campbell
" Upstream: <https://github.com/saccarosium/netrw.vim>
" 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
@@ -58,12 +13,7 @@
"
" Note: the code here was started in 1999 under a much earlier version of vim. The directory browsing
" code was written using vim v6, which did not have Lists (Lists were first offered with vim-v7).
"
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
"
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
" (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Load Once: {{{1
if &cp || exists("g:loaded_netrw")
finish
@@ -85,7 +35,7 @@ if exists("s:needspatches")
endfor
endif
let g:loaded_netrw = "v173"
let g:loaded_netrw = "v175"
let s:keepcpo= &cpo
setl cpo&vim
+242
View File
@@ -0,0 +1,242 @@
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Former Maintainer: Charles E Campbell
" Upstream: <https://github.com/saccarosium/netrw.vim>
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrwSettings.vim is provided *as is* and comes with no
" warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software. }}}
if &cp || exists("g:loaded_netrwSettings")
finish
endif
let g:loaded_netrwSettings = "v175"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
echohl Normal
finish
endif
" NetrwSettings: {{{
function! netrwSettings#NetrwSettings()
" this call is here largely just to insure that netrw has been loaded
call netrw#WinPath("")
if !exists("g:loaded_netrw")
echohl WarningMsg
echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings"
echohl None
return
endif
above wincmd s
enew
setlocal noswapfile bh=wipe
set ft=vim
file Netrw\ Settings
" these variables have the following default effects when they don't
" exist (ie. have not been set by the user in his/her .vimrc)
if !exists("g:netrw_liststyle")
let g:netrw_liststyle= 0
let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
endif
if !exists("g:netrw_silent")
let g:netrw_silent= 0
endif
if !exists("g:netrw_use_nt_rcp")
let g:netrw_use_nt_rcp= 0
endif
if !exists("g:netrw_ftp")
let g:netrw_ftp= 0
endif
if !exists("g:netrw_ignorenetrc")
let g:netrw_ignorenetrc= 0
endif
put ='+ ---------------------------------------------'
put ='+ NetrwSettings: by Charles E. Campbell'
put ='+ Press <F1> with cursor atop any line for help'
put ='+ ---------------------------------------------'
let s:netrw_settings_stop= line(".")
put =''
put ='+ Netrw Protocol Commands'
put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
let s:netrw_protocol_stop= line(".")
put = ''
put ='+Netrw Transfer Control'
put = 'let g:netrw_cygwin = '.g:netrw_cygwin
put = 'let g:netrw_ftp = '.g:netrw_ftp
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
let s:netrw_xfer_stop= line(".")
put =''
put ='+ Netrw Messages'
put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
put = ''
put ='+ Netrw Browser Control'
if exists("g:netrw_altfile")
put = 'let g:netrw_altfile = '.g:netrw_altfile
else
put = 'let g:netrw_altfile = 0'
endif
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
put = 'let g:netrw_banner = '.g:netrw_banner
if exists("g:netrw_bannerbackslash")
put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
else
put = '\" let g:netrw_bannerbackslash = (not defined)'
endif
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
if exists("g:netrw_browsex_viewer")
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
else
put = '\" let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
if exists("g:Netrw_corehandler")
put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
else
put = '\" let g:Netrw_corehandler = (not defined)'
endif
put = 'let g:netrw_ctags = '.g:netrw_ctags
put = 'let g:netrw_cursor = '.g:netrw_cursor
let decompressline= line("$")
put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
if exists("g:netrw_dynamic_maxfilenamelen")
put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
else
put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
let fnameescline= line("$")
put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
let globescline= line("$")
put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
put = 'let g:netrw_hide = '.g:netrw_hide
if exists("g:netrw_home")
put = 'let g:netrw_home = '.g:netrw_home
else
put = '\" let g:netrw_home = (not defined)'
endif
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
if exists("g:netrw_nobeval")
put = 'let g:netrw_nobeval = '.g:netrw_nobeval
else
put = '\" let g:netrw_nobeval = (not defined)'
endif
put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
put = 'let g:netrw_preview = '.g:netrw_preview
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
put = 'let g:netrw_retmap = '.g:netrw_retmap
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_servername = '.g:netrw_servername
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
let tmpfileescline= line("$")
put ='let g:netrw_tmpfile_escape...'
put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
put = 'let g:netrw_winsize = '.g:netrw_winsize
put =''
put ='+ For help, place cursor on line and press <F1>'
1d
silent %s/^+/"/e
res 99
silent %s/= \([^0-9].*\)$/= '\1'/e
silent %s/= $/= ''/e
1
call setline(decompressline, "let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
call setline(tmpfileescline, "let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
set nomod
nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
nnoremap <buffer> <silent> <leftmouse> <leftmouse> :call NetrwSettingHelp()<cr>
let tmpfile= tempname()
exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
endfunction
" }}}
" NetrwSettingHelp: {{{
function! NetrwSettingHelp()
let curline = getline(".")
if curline =~ '='
let varhelp = substitute(curline,'^\s*let ','','e')
let varhelp = substitute(varhelp,'\s*=.*$','','e')
try
exe "he ".varhelp
catch /^Vim\%((\a\+)\)\=:E149/
echo "***sorry*** no help available for <".varhelp.">"
endtry
elseif line(".") < s:netrw_settings_stop
he netrw-settings
elseif line(".") < s:netrw_protocol_stop
he netrw-externapp
elseif line(".") < s:netrw_xfer_stop
he netrw-variables
else
he netrw-browse-var
endif
endfunction
" }}}
" vim:ts=8 sts=4 sw=4 et fdm=marker
@@ -1,3 +1,7 @@
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Former Maintainer: Bruno Sutic
" Upstream: <https://github.com/saccarosium/netrw.vim>
" netrw_gitignore#Hide: gitignore-based hiding
" Function returns a string of comma separated patterns convenient for
" assignment to `g:netrw_list_hide` option.
@@ -8,7 +12,7 @@
" let g:netrw_list_hide = netrw_gitignore#Hide()
" let g:netrw_list_hide = netrw_gitignore#Hide() . 'more,hide,patterns'
"
" Copyright: Copyright (C) 2013 Bruno Sutic {{{1
" Copyright: Copyright (C) 2013 Bruno Sutic {{{
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@@ -16,7 +20,10 @@
" warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
" of this software. }}}
function! netrw_gitignore#Hide(...)
return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '')
return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '')
endfunction
" vim:ts=8 sts=4 sw=4 et fdm=marker
File diff suppressed because it is too large Load Diff
+214
View File
@@ -0,0 +1,214 @@
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Former Maintainer: Charles E Campbell
" Upstream: <https://github.com/saccarosium/netrw.vim>
" Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
" *as is* and comes with no warranty of any kind, either
" expressed or implied. By using this plugin, you agree that
" in no event will the copyright holder be liable for any damages
" resulting from the use of this software. }}}
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v175"
let s:keepcpo = &cpo
set cpo&vim
" Commands Launch/URL: {{{
command -complete=shellcmd -nargs=1 Launch call netrw#Launch(trim(<q-args>))
command -complete=file -nargs=1 Open call netrw#Open(trim(<q-args>))
" }}}
" Local Browsing Autocmds: {{{
augroup FileExplorer
au!
au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif
au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
au VimEnter * sil call s:VimEnter(expand("<amatch>"))
if has("win32")
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
endif
augroup END
" }}}
" Network Browsing Reading Writing: {{{
augroup Network
au!
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
try
au SourceCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
catch /^Vim\%((\a\+)\)\=:E216/
au SourcePre ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
endtry
augroup END
" }}}
" Commands: :Nread, :Nwrite, :NetUserPass {{{
command! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call winrestview(s:svpos)
command! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
command! -nargs=* NetUserPass call NetUserPass(<f-args>)
command! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
command! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>)
" }}}
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{
command! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>, 0, 0+<bang>0, <q-args>)
command! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>, 1, 0+<bang>0, <q-args>)
command! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>, 1, 2+<bang>0, <q-args>)
command! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>, 1, 4+<bang>0, <q-args>)
command! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>, 0, 6, <q-args>)
command! -nargs=* -bar -bang -count=0 -complete=dir Lexplore call netrw#Lexplore(<count>, <bang>0, <q-args>)
command! -nargs=* -bar -bang Nexplore call netrw#Explore(-1, 0, 0, <q-args>)
command! -nargs=* -bar -bang Pexplore call netrw#Explore(-2, 0, 0, <q-args>)
" }}}
" Commands: NetrwSettings {{{
command! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
command! -bang NetrwClean call netrw#Clean(<bang>0)
" }}}
" Maps: {{{
if !exists("g:netrw_nogx")
if maparg('gx','n') == ""
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
endif
if maparg('gx','x') == ""
if !hasmapto('<Plug>NetrwBrowseXVis')
xmap <unique> gx <Plug>NetrwBrowseXVis
endif
xno <silent> <Plug>NetrwBrowseXVis :<c-u>call netrw#BrowseXVis()<cr>
endif
endif
if exists("g:netrw_usetab") && g:netrw_usetab
if maparg('<c-tab>','n') == ""
nmap <unique> <c-tab> <Plug>NetrwShrink
endif
nno <silent> <Plug>NetrwShrink :call netrw#Shrink()<cr>
endif
" }}}
" LocalBrowse: invokes netrw#LocalBrowseCheck() on directory buffers {{{
function! s:LocalBrowse(dirname)
" do not trigger in the terminal
" https://github.com/vim/vim/issues/16463
if &buftype ==# 'terminal'
return
endif
if !exists("s:vimentered")
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
return
endif
if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
if a:dirname != '' && isdirectory(a:dirname)
sil! call netrw#LocalBrowseCheck(a:dirname)
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
exe w:netrw_bannercnt
endif
endif
elseif isdirectory(a:dirname)
" Jul 13, 2021: for whatever reason, preceding the following call with
" a sil! causes an unbalanced if-endif vim error
call netrw#LocalBrowseCheck(a:dirname)
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
exe w:netrw_bannercnt
endif
endif
endfunction
" }}}
" s:VimEnter: after all vim startup stuff is done, this function is called. {{{
" Its purpose: to look over all windows and run s:LocalBrowse() on
" them, which checks if they're directories and will create a directory
" listing when appropriate.
" It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter()
" has already been called.
function! s:VimEnter(dirname)
if has('nvim') || v:version < 802
" Johann Höchtl: reported that the call range... line causes an E488: Trailing characters
" error with neovim. I suspect its because neovim hasn't updated with recent
" vim patches. As is, this code will have problems with popup terminals
" instantiated before the VimEnter event runs.
" Ingo Karkat : E488 also in Vim 8.1.1602
let curwin = winnr()
let s:vimentered = 1
windo call s:LocalBrowse(expand("%:p"))
exe curwin."wincmd w"
else
" the following complicated expression comes courtesy of lacygoill; largely does the same thing as the windo and
" wincmd which are commented out, but avoids some side effects. Allows popup terminal before VimEnter.
let s:vimentered = 1
call range(1, winnr('$'))->map({_, v -> win_execute(win_getid(v), 'call expand("%:p")->s:LocalBrowse()')})
endif
endfunction
" }}}
" NetrwStatusLine: {{{
function! NetrwStatusLine()
if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
let &stl= s:netrw_explore_stl
unlet! w:netrw_explore_bufnr w:netrw_explore_line
return ""
else
return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
endif
endfunction
" }}}
" NetUserPass: set username and password for subsequent ftp transfer {{{
" Usage: :call NetUserPass() -- will prompt for userid and password
" :call NetUserPass("uid") -- will prompt for password
" :call NetUserPass("uid","password") -- sets global userid and password
function! NetUserPass(...)
" get/set userid
if a:0 == 0
if !exists("g:netrw_uid") || g:netrw_uid == ""
" via prompt
let g:netrw_uid= input('Enter username: ')
endif
else " from command line
let g:netrw_uid= a:1
endif
" get password
if a:0 <= 1 " via prompt
let g:netrw_passwd= inputsecret("Enter Password: ")
else " from command line
let g:netrw_passwd=a:2
endif
endfunction
" }}}
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 sts=4 sw=4 et fdm=marker
+149
View File
@@ -0,0 +1,149 @@
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Former Maintainer: Charles E Campbell
" Upstream: <https://github.com/saccarosium/netrw.vim>
" Language: Netrw Listing Syntax
if exists("b:current_syntax")
finish
endif
let b:current_syntax = "netrwlist"
" Directory List Syntax Highlighting: {{{
syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
syn match netrwPlain "\(\S\+ \)*\S\+" contains=netrwLink,@NoSpell
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
else
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
endif
syn match netrwTreeBarSpace " " contained
syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
syn match netrwDateSep "/" contained
syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
syn match netrwTimeSep ":"
syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
syn match netrwSlash "/" contained
syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep
syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat
syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
syn match netrwList ".*$" contained contains=netrwComma,@NoSpell
syn match netrwComma "," contained
syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,netrwQHTopic,@NoSpell keepend contained
syn match netrwHelpCmd "\S\+\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep
syn match netrwQHTopic "([a-zA-Z &]\+)" contained skipwhite
syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
syn match netrwLink "-->" contained skipwhite
" }}}
" Special filetype highlighting {{{
if exists("g:netrw_special_syntax") && g:netrw_special_syntax
if exists("+suffixes") && &suffixes != ""
let suflist= join(split(&suffixes,','))
let suflist= escape(substitute(suflist," ",'\\|','g'),'.~')
exe "syn match netrwSpecFile '\\(\\S\\+ \\)*\\S*\\(".suflist."\\)\\>' contains=netrwTreeBar,@NoSpell"
endif
syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell
syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell
if has("unix")
syn match netrwCoreDump "\<core\%(\.\d\+\)\=\>" contains=netrwTreeBar,@NoSpell
endif
syn match netrwLex "\(\S\+ \)*\S\+\.\%(l\|lex\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwYacc "\(\S\+ \)*\S\+\.y\>" contains=netrwTreeBar,@NoSpell
syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell
syn match netrwDoc "\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\|docx\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwHdr "\(\S\+ \)*\S\+\.\%(h\|hpp\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwPix "\c\(\S\+ \)*\S*\.\%(bmp\|fits\=\|gif\|je\=pg\|pcx\|ppc\|pgm\|png\|ppm\|psd\|rgb\|tif\|xbm\|xcf\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
endif
" }}}
" Highlighting Links: {{{
if !exists("did_drchip_netrwlist_syntax")
let did_drchip_netrwlist_syntax= 1
hi default link netrwClassify Function
hi default link netrwCmdSep Delimiter
hi default link netrwComment Comment
hi default link netrwDir Directory
hi default link netrwHelpCmd Function
hi default link netrwQHTopic Number
hi default link netrwHidePat Statement
hi default link netrwHideSep netrwComment
hi default link netrwList Statement
hi default link netrwVersion Identifier
hi default link netrwSymLink Question
hi default link netrwExe PreProc
hi default link netrwDateSep Delimiter
hi default link netrwTreeBar Special
hi default link netrwTimeSep netrwDateSep
hi default link netrwComma netrwComment
hi default link netrwHide netrwComment
hi default link netrwMarkFile TabLineSel
hi default link netrwLink Special
" special syntax highlighting (see :he g:netrw_special_syntax)
hi default link netrwCoreDump WarningMsg
hi default link netrwData Folded
hi default link netrwHdr netrwPlain
hi default link netrwLex netrwPlain
hi default link netrwLib DiffChange
hi default link netrwMakefile DiffChange
hi default link netrwYacc netrwPlain
hi default link netrwPix Special
hi default link netrwBak netrwGray
hi default link netrwCompress netrwGray
hi default link netrwSpecFile netrwGray
hi default link netrwObj netrwGray
hi default link netrwTags netrwGray
hi default link netrwTilde netrwGray
hi default link netrwTmp netrwGray
endif
" set up netrwGray to be understated (but not Ignore'd or Conceal'd, as those
" can be hard/impossible to read). Users may override this in a colorscheme by
" specifying netrwGray highlighting.
redir => s:netrwgray
sil hi netrwGray
redir END
if s:netrwgray !~ 'guifg'
if has("gui") && has("gui_running")
if &bg == "dark"
exe "hi netrwGray gui=NONE guifg=gray30"
else
exe "hi netrwGray gui=NONE guifg=gray70"
endif
else
hi link netrwGray Folded
endif
endif
" }}}
" vim:ts=8 sts=4 sw=4 et fdm=marker
+5 -230
View File
@@ -1,234 +1,9 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
" Maintainer: This runtime file is looking for a new maintainer.
" Date: Sep 09, 2021
" Last Change:
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
" 2024 Oct 27 by Vim Project: cleanup gx mapping
" 2024 Oct 28 by Vim Project: further improvements
" 2024 Oct 31 by Vim Project: use autoloaded functions
" 2024 Dec 19 by Vim Project: change style (#16248)
" Former Maintainer: Charles E Campbell
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
" *as is* and comes with no warranty of any kind, either
" expressed or implied. By using this plugin, you agree that
" in no event will the copyright holder be liable for any damages
" resulting from the use of this software.
"
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
" (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Load Once: {{{1
if &cp || exists("g:loaded_netrwPlugin")
" Load the netrw package.
if &cp || exists("g:loaded_netrw") || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v173"
let s:keepcpo = &cpo
set cpo&vim
"DechoRemOn
" ---------------------------------------------------------------------
" Public Interface: {{{1
packadd netrw
" Commands Launch/URL {{{2
command -complete=shellcmd -nargs=1 Launch call netrw#Launch(trim(<q-args>))
command -complete=file -nargs=1 Open call netrw#Open(trim(<q-args>))
" " }}}
" Local Browsing Autocmds: {{{2
augroup FileExplorer
au!
au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif
au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
au VimEnter * sil call s:VimEnter(expand("<amatch>"))
if has("win32")
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
endif
augroup END
" Network Browsing Reading Writing: {{{2
augroup Network
au!
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
try
au SourceCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
catch /^Vim\%((\a\+)\)\=:E216/
au SourcePre ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
endtry
augroup END
" Commands: :Nread, :Nwrite, :NetUserPass {{{2
com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call winrestview(s:svpos)
com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>)
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>)
com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Lexplore call netrw#Lexplore(<count>,<bang>0,<q-args>)
" Commands: NetrwSettings {{{2
com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
com! -bang NetrwClean call netrw#Clean(<bang>0)
" Maps:
if !exists("g:netrw_nogx")
if maparg('gx','n') == ""
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
endif
if maparg('gx','x') == ""
if !hasmapto('<Plug>NetrwBrowseXVis')
xmap <unique> gx <Plug>NetrwBrowseXVis
endif
xno <silent> <Plug>NetrwBrowseXVis :<c-u>call netrw#BrowseXVis()<cr>
endif
endif
if exists("g:netrw_usetab") && g:netrw_usetab
if maparg('<c-tab>','n') == ""
nmap <unique> <c-tab> <Plug>NetrwShrink
endif
nno <silent> <Plug>NetrwShrink :call netrw#Shrink()<cr>
endif
" ---------------------------------------------------------------------
" LocalBrowse: invokes netrw#LocalBrowseCheck() on directory buffers {{{2
fun! s:LocalBrowse(dirname)
" Unfortunate interaction -- only DechoMsg debugging calls can be safely used here.
" Otherwise, the BufEnter event gets triggered when attempts to write to
" the DBG buffer are made.
if !exists("s:vimentered")
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)")
" call Dret("s:LocalBrowse")
return
endif
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")")
if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)")
if a:dirname != '' && isdirectory(a:dirname)
sil! call netrw#LocalBrowseCheck(a:dirname)
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
exe w:netrw_bannercnt
endif
endif
elseif isdirectory(a:dirname)
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
" call Dredir("LocalBrowse ft last set: ","verbose set ft")
" Jul 13, 2021: for whatever reason, preceding the following call with
" a sil! causes an unbalanced if-endif vim error
call netrw#LocalBrowseCheck(a:dirname)
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
exe w:netrw_bannercnt
endif
else
" not a directory, ignore it
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
endif
" call Dret("s:LocalBrowse")
endfun
" ---------------------------------------------------------------------
" s:VimEnter: after all vim startup stuff is done, this function is called. {{{2
" Its purpose: to look over all windows and run s:LocalBrowse() on
" them, which checks if they're directories and will create a directory
" listing when appropriate.
" It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter()
" has already been called.
fun! s:VimEnter(dirname)
" call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
if has('nvim') || v:version < 802
" Johann Höchtl: reported that the call range... line causes an E488: Trailing characters
" error with neovim. I suspect its because neovim hasn't updated with recent
" vim patches. As is, this code will have problems with popup terminals
" instantiated before the VimEnter event runs.
" Ingo Karkat : E488 also in Vim 8.1.1602
let curwin = winnr()
let s:vimentered = 1
windo call s:LocalBrowse(expand("%:p"))
exe curwin."wincmd w"
else
" the following complicated expression comes courtesy of lacygoill; largely does the same thing as the windo and
" wincmd which are commented out, but avoids some side effects. Allows popup terminal before VimEnter.
let s:vimentered = 1
call range(1, winnr('$'))->map({_, v -> win_execute(win_getid(v), 'call expand("%:p")->s:LocalBrowse()')})
endif
" call Dret("s:VimEnter")
endfun
" ---------------------------------------------------------------------
" NetrwStatusLine: {{{1
fun! NetrwStatusLine()
" let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr("%")." Xline#".w:netrw_explore_line." line#".line(".")
if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
let &stl= s:netrw_explore_stl
if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
return ""
else
return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
endif
endfun
" ------------------------------------------------------------------------
" NetUserPass: set username and password for subsequent ftp transfer {{{1
" Usage: :call NetUserPass() -- will prompt for userid and password
" :call NetUserPass("uid") -- will prompt for password
" :call NetUserPass("uid","password") -- sets global userid and password
fun! NetUserPass(...)
" get/set userid
if a:0 == 0
" call Dfunc("NetUserPass(a:0<".a:0.">)")
if !exists("g:netrw_uid") || g:netrw_uid == ""
" via prompt
let g:netrw_uid= input('Enter username: ')
endif
else " from command line
" call Dfunc("NetUserPass(a:1<".a:1.">) {")
let g:netrw_uid= a:1
endif
" get password
if a:0 <= 1 " via prompt
" call Decho("a:0=".a:0." case <=1:")
let g:netrw_passwd= inputsecret("Enter Password: ")
else " from command line
" call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
let g:netrw_passwd=a:2
endif
" call Dret("NetUserPass")
endfun
" ------------------------------------------------------------------------
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 sts=2 sw=2 et fdm=marker
" vim:ts=8 sts=2 sw=2 et
+121 -17
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Aug 10
" Language: C
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jan 18
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Quit when a (custom) syntax file was already loaded
@@ -111,6 +111,20 @@ if (s:ft ==# "c" && !exists("c_no_c11")) || (s:in_cpp_family && !exists("cpp_no_
syn match cSpecialCharacter display "[Uu]'\\x\x\+'"
endif
if (s:ft ==# "c" && !exists("c_no_c23")) || (s:in_cpp_family && !exists("cpp_no_cpp17"))
syn match cCharacter "u8'[^\\]'"
syn match cCharacter "u8'[^']*'" contains=cSpecial
if exists("c_gnu")
syn match cSpecialError "u8'\\[^'\"?\\abefnrtv]'"
syn match cSpecialCharacter "u8'\\['\"?\\abefnrtv]'"
else
syn match cSpecialError "u8'\\[^'\"?\\abfnrtv]'"
syn match cSpecialCharacter "u8'\\['\"?\\abfnrtv]'"
endif
syn match cSpecialCharacter display "u8'\\\o\{1,3}'"
syn match cSpecialCharacter display "u8'\\x\x\+'"
endif
"when wanted, highlight trailing white space
if exists("c_space_errors")
if !exists("c_no_trail_space_error")
@@ -191,12 +205,25 @@ syn case ignore
syn match cNumbers display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal
" Same, but without octal error (for comments)
syn match cNumbersCom display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal
syn match cNumber display contained "\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match cNumber display contained "0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match cOctal display contained "0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
syn match cOctalZero display contained "\<0"
" cpp.vim handles these
if !exists("c_no_c23") && !s:in_cpp_family
syn match cNumber display contained "\d\%('\=\d\+\)*\%(u\=l\{0,2}\|ll\=u\|u\=wb\|wbu\=\)\>"
"hex number
syn match cNumber display contained "0x\x\%('\=\x\+\)*\%(u\=l\{0,2}\|ll\=u\|u\=wb\|wbu\=\)\>"
" Flag the first zero of an octal number as something special
syn match cOctal display contained "0\o\%('\=\o\+\)*\%(u\=l\{0,2}\|ll\=u\|u\=wb\|wbu\=\)\>" contains=cOctalZero
"binary number
syn match cNumber display contained "0b[01]\%('\=[01]\+\)*\%(u\=l\{0,2}\|ll\=u\|u\=wb\|wbu\=\)\>"
else
syn match cNumber display contained "\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match cNumber display contained "0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
" Flag the first zero of an octal number as something special
syn match cOctal display contained "0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
syn match cOctalZero display contained "\<0"
endif
"floating point number, with dot, optional exponent
syn match cFloat display contained "\d\+\.\d*\%(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
@@ -277,6 +304,13 @@ if !exists("c_no_c99") " ISO C99
syn keyword cType intptr_t uintptr_t
syn keyword cType intmax_t uintmax_t
endif
if !exists("c_no_c23") && !s:in_cpp_family
syn keyword cOperator typeof typeof_unqual
syn keyword cType _BitInt _Decimal32 _Decimal64 _Decimal128
endif
if (s:ft ==# "c" && !exists("c_no_c23")) || (s:in_cpp_family && !exists("cpp_no_cpp11"))
syn keyword cType nullptr_t
endif
syn keyword cTypedef typedef
syn keyword cStructure struct union enum
@@ -284,6 +318,9 @@ syn keyword cStorageClass static register auto volatile extern const
if !exists("c_no_c99") && !s:in_cpp_family
syn keyword cStorageClass inline restrict
endif
if (s:ft ==# "c" && !exists("c_no_c23")) || (s:in_cpp_family && !exists("cpp_no_cpp11"))
syn keyword cStorageClass constexpr
endif
if !exists("c_no_c11")
syn keyword cStorageClass _Alignas alignas
syn keyword cOperator _Alignof alignof
@@ -312,10 +349,15 @@ if !exists("c_no_c11")
syn keyword cType atomic_intmax_t atomic_uintmax_t
endif
if (s:ft ==# "c" && !exists("c_no_c23")) || (s:in_cpp_family && !exists("cpp_no_cpp20"))
syn keyword cType char8_t
endif
if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
if exists("c_gnu")
syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ __func__
endif
" TODO: __STDC_HOSTED__ is C99 and C++11
syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ __STDC_VERSION__ __STDC_HOSTED__
syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX
syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
@@ -324,6 +366,8 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN
syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX
if !exists("c_no_c99")
syn keyword cConstant __STDC_ISO_10646__ __STDC_IEC_559_COMPLEX__
syn keyword cConstant __STDC_MB_MIGHT_NEQ_WC__
syn keyword cConstant __func__ __VA_ARGS__
syn keyword cConstant LLONG_MIN LLONG_MAX ULLONG_MAX
syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN
@@ -340,6 +384,26 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
endif
if !exists("c_no_c11")
syn keyword cConstant __STDC_UTF_16__ __STDC_UTF_32__ __STDC_ANALYZABLE__
syn keyword cConstant __STDC_LIB_EXT1__ __STDC_NO_ATOMICS__
syn keyword cConstant __STDC_NO_COMPLEX__ __STDC_NO_THREADS__
syn keyword cConstant __STDC_NO_VLA__
endif
if !exists("c_no_c23")
syn keyword cConstant __STDC_UTF_16__ __STDC_UTF_32__
syn keyword cConstant __STDC_EMBED_NOT_FOUND__ __STDC_EMBED_FOUND__
syn keyword cConstant __STDC_EMBED_EMPTY__ __STDC_IEC_60559_BFP__
syn keyword cConstant __STDC_IEC_60559_DFP__ __STDC_IEC_60559_COMPLEX__
syn keyword cConstant __STDC_IEC_60559_TYPES__
syn keyword cConstant BITINT_MAXWIDTH
endif
if (s:ft ==# "c" && !exists("c_no_c23")) || (s:in_cpp_family && !exists("cpp_no_cpp20"))
syn keyword cConstant __VA_OPT__
endif
if (s:ft ==# "c" && !exists("c_no_c23")) || (s:in_cpp_family && !exists("cpp_no_cpp11"))
syn keyword cConstant nullptr
endif
syn keyword cConstant FLT_RADIX FLT_ROUNDS FLT_DIG FLT_MANT_DIG FLT_EPSILON DBL_DIG DBL_MANT_DIG DBL_EPSILON
syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP FLT_MIN_10_EXP FLT_MAX_10_EXP
syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP DBL_MIN_10_EXP DBL_MAX_10_EXP LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
@@ -377,37 +441,77 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
endif
if !exists("c_no_c99") " ISO C99
syn keyword cConstant true false
syn keyword cConstant INFINITY NAN
" math.h
syn keyword cConstant HUGE_VAL HUGE_VALF HUGE_VALL
syn keyword cConstant FP_FAST_FMAF FP_FAST_FMA FP_FAST_FMAL
syn keyword cConstant FP_ILOGB0 FP_ILOGBNAN
syn keyword cConstant math_errhandling MATH_ERRNO MATH_ERREXCEPT
syn keyword cConstant FP_NORMAL FP_SUBNORMAL FP_ZERO FP_INFINITE FP_NAN
endif
" Accept %: for # (C99)
syn region cPreCondit start="^\s*\zs\%(%:\|#\)\s*\%(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock
if !exists("c_no_c23")
syn region cPreCondit start="^\s*\zs\%(%:\|#\)\s*\%(el\)\=\%(if\|ifdef\|ifndef\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
else
syn region cPreCondit start="^\s*\zs\%(%:\|#\)\s*\%(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
endif
syn match cPreConditMatch display "^\s*\zs\%(%:\|#\)\s*\%(else\|endif\)\>"
if !exists("c_no_if0")
syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
syn region cCppOutWrapper start="^\s*\zs\%(%:\|#\)\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\%(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
if !exists("c_no_if0_fold")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
if !exists("c_no_c23")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|el\%(if\|ifdef\|ifndef\)\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
endif
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
if !exists("c_no_c23")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|el\%(if\|ifdef\|ifndef\)\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif
endif
if !exists("c_no_c23")
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\%(%:\|#\)\s*\%(else\|el\%(if\|ifdef\|ifndef\)\)" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
else
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
endif
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
syn region cCppInWrapper start="^\s*\zs\%(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\%(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
if !exists("c_no_if0_fold")
syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
if !exists("c_no_c23")
syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|el\%(if\|ifdef\|ifndef\)\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
else
syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
endif
else
syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
if !exists("c_no_c23")
syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|el\%(if\|ifdef\|ifndef\)\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
else
syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
endif
endif
if !exists("c_no_c23")
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\%(%:\|#\)\s*\%(else\|el\%(if\|ifdef\|ifndef\)\)\%([^/]\|/[^/*]\)*" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
else
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)\%([^/]\|/[^/*]\)*" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)\%([^/]\|/[^/*]\)*" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
syn region cCppOutSkip contained start="^\s*\%(%:\|#\)\s*\%(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\%(%:\|#\)\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
endif
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match cIncluded display contained "<[^>]*>"
syn match cInclude display "^\s*\zs\%(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
if !exists("c_no_c23") && !s:in_cpp_family
syn region cInclude start="^\s*\zs\%(%:\|#\)\s*embed\>" skip="\\$" end="$" keepend contains=cEmbed,cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn match cEmbed contained "\%(%:\|#\)\s*embed\>" nextgroup=cIncluded skipwhite transparent
syn cluster cPreProcGroup add=cEmbed
endif
"syn match cLineSkip "\\$"
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock
syn region cDefine start="^\s*\zs\%(%:\|#\)\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cPreProc start="^\s*\zs\%(%:\|#\)\s*\%(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
+34 -21
View File
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
" Last Change: 2025 Jan 09
" Last Change: 2025 Jan 20
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -192,13 +192,13 @@ Vim9 syn keyword vim9Boolean true false
" Numbers {{{2
" =======
syn case ignore
syn match vimNumber '\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\<0b[01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\<0o\=\o\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\<0x\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\<0z\>' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
syn match vimNumber '\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn match vimNumber '\<0b[01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn match vimNumber '\<0o\=\o\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn match vimNumber '\<0x\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn match vimNumber '\<0z\>' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
@@ -281,10 +281,16 @@ syn keyword vimAugroupKey contained aug[roup] skipwhite nextgroup=vimAugroupBan
" Operators: {{{2
" =========
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,@vimContinue,vim9Comment,vimVar,vimBoolean,vimNull
syn match vimOper "\a\@<!!" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+*/%.]" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\|!\~#\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\a\@<!!" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+*/%.]" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "?" skipwhite nextgroup=@vimExprList
" distinguish ternary : from ex-colon
syn match vimOper "\s\@1<=:\ze\s\|\s\@1<=:$" skipwhite nextgroup=@vimExprList
syn match vimOper "??" skipwhite nextgroup=@vimExprList
syn match vimOper "=" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\%#=1\%(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\)[?#]\=" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\<is\%(not\)\=\>" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\<is\%(not\)\=[?#]" skipwhite nextgroup=vimString,vimSpecFile
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
@@ -296,9 +302,9 @@ endif
syn cluster vimFuncList contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncSID,Tag
syn cluster vimDefList contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncSID,Tag
syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
syn cluster vimFuncBodyList contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert,vimConst,vimLet
syn cluster vimDefBodyList contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For
syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
syn cluster vimFuncBodyList contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert,vimConst,vimLet,vimSearch
syn cluster vimDefBodyList contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For,vim9Search
syn region vimFuncPattern contained matchgroup=vimOper start="/" end="$" contains=@vimSubstList
syn match vimFunction "\<fu\%[nction]\>" skipwhite nextgroup=vimCmdSep,vimComment,vimFuncPattern contains=vimFuncKey
@@ -558,19 +564,21 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
syn match vimNotPatSep contained "\\\\"
syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
syn region vimString oneline keepend start=+[^a-zA-Z>\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup extend
syn region vimString oneline keepend start=+[^a-zA-Z>\\@]'+lc=1 end=+'+ extend
syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z>\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup extend
syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z>\\@]'+lc=1 end=+'+ contains=vimQuoteEscape extend
"syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup " see tst45.vim
syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont
syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
syn match vimEscape contained "\\."
" syn match vimEscape contained +\\[befnrt\"]+
syn match vimEscape contained "\\\o\{1,3}\|\\[xX]\x\{1,2}\|\\u\x\{1,4}\|\\U\x\{1,8}"
syn match vimEscape contained "\\<" contains=vimNotation
syn match vimEscape contained "\\<\*[^>]*>\=>"
syn match vimQuoteEscape contained "''"
syn region vimString oneline start=+$'+ skip=+''+ end=+'+ contains=@vimStringInterpolation extend
syn region vimString oneline start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation extend
syn region vimString oneline matchgroup=vimString start=+$'+ skip=+''+ end=+'+ contains=vimQuoteEscape,@vimStringInterpolation extend
syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation extend
syn region vimStringInterpolationExpr oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
syn match vimStringInterpolationBrace contained "{{"
syn match vimStringInterpolationBrace contained "}}"
@@ -1013,8 +1021,10 @@ syn match vim9CommentTitleLeader '#\s\+'ms=s+1 contained
" Searches And Globals: {{{2
" ====================
syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim
VimL syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim
syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained
Vim9 syn match vim9Search '^\s*:[/?].*' contains=vim9SearchDelim
syn match vim9SearchDelim '^\s*\zs:[/?]\|[/?]$' contained contains=vimCmdSep
syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1
syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1
@@ -1392,10 +1402,11 @@ if !exists("skip_vim_syntax_inits")
hi def link vimPattern Type
hi def link vimPlainMark vimMark
hi def link vimPlainRegister vimRegister
hi def link vimQuoteEscape vimEscape
hi def link vimRegister SpecialChar
hi def link vimScriptDelim Comment
hi def link vimSearchDelim Statement
hi def link vimSearch vimString
hi def link vimSearchDelim Delimiter
hi def link vimSep Delimiter
hi def link vimSet vimCommand
hi def link vimSetAll vimOption
@@ -1488,6 +1499,8 @@ if !exists("skip_vim_syntax_inits")
hi def link vim9MethodNameError vimFunctionError
hi def link vim9Null Constant
hi def link vim9Public vimCommand
hi def link vim9Search vimString
hi def link vim9SearchDelim Delimiter
hi def link vim9Static vimCommand
hi def link vim9Super Identifier
hi def link vim9This Identifier
+406
View File
@@ -0,0 +1,406 @@
" Vim syntax file
" Language: Justfile
" Maintainer: Peter Benjamin <@pbnj>
" Last Change: 2025 Jan 19
" Credits: The original author, Noah Bogart <https://github.com/NoahTheDuke/vim-just/>
if exists('b:current_syntax')
finish
endif
let s:cpo_save = &cpo
set cpo&vim
let b:current_syntax = 'just'
" syncing fromstart prevents mismatched highlighting when jumping around in a justfile
" linebreaks= keeps multi-line constructs highlighted correctly while typing
syn sync fromstart linebreaks=10
" a-zA-Z0-9_-
syn iskeyword @,48-57,_,-
syn match justComment "#.*$" contains=@Spell,justCommentTodo
syn match justCommentInBody '#.*$' contained contains=justCommentTodo,justInterpolation,@justOtherCurlyBraces
syn keyword justCommentTodo TODO FIXME XXX contained
syn match justShebang "^\s*#!.*$" contains=justInterpolation,@justOtherCurlyBraces
syn match justName "\h\k*" contained
syn match justFunction "\h\k*" contained
syn match justPreBodyComment "\v%(\s|\\\n)*%([^\\]\n)@3<!#%([^!].*)?\n%(\t+| +)@=" transparent contained contains=justComment
\ nextgroup=@justBodies skipnl
syn region justBacktick start=/`/ end=/`/
syn region justBacktick start=/```/ end=/```/
syn region justRawString start=/'/ end=/'/
syn region justRawString start=/'''/ end=/'''/
syn region justString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError
syn region justString start=/"""/ skip=/\\\\\|\\"/ end=/"""/ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError
syn region justShellExpandRawString start=/\v\k@1<!x'/ end=/'/
\ contains=justShellExpandVarRaw,justDollarEscape
syn region justShellExpandRawString start=/\v\k@1<!x'''/ end=/'''/
\ contains=justShellExpandVarRaw,justDollarEscape
syn region justShellExpandString
\ start=/\v\k@1<!x"/ skip=/\\\\\|\\"/ end=/"/
\ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justShellExpandVar,justDollarEscape,justDollarEscapeSplit
syn region justShellExpandString
\ start=/\v\k@1<!x"""/ skip=/\\\\\|\\"/ end=/"""/
\ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justShellExpandVar,justDollarEscape,justDollarEscapeSplit
syn cluster justStringLiterals
\ contains=justRawString,justString,justShellExpandRawString,justShellExpandString
syn cluster justAllStrings contains=justBacktick,@justStringLiterals
syn match justRegexReplacement
\ /\v,%(\_s|\\\n)*%('\_[^']*'|'''%(\_.%(''')@!)*\_.?''')%(\_s|\\\n)*%(,%(\_s|\\\n)*)?\)/me=e-1
\ transparent contained contains=@justExpr,@justStringsWithRegexCapture
syn match justRegexReplacement
\ /\v,%(\_s|\\\n)*%("%(\_[^"]|\\")*"|"""%(\_.%(""")@!)*\_.?""")%(\_s|\\\n)*%(,%(\_s|\\\n)*)?\)/me=e-1
\ transparent contained contains=@justExpr,@justStringsWithRegexCapture
syn region justRawStrRegexRepl start=/\v'/ end=/'/ contained contains=justRegexCapture,justDollarEscape
syn region justRawStrRegexRepl start=/\v'''/ end=/'''/ contained contains=justRegexCapture,justDollarEscape
syn region justStringRegexRepl start=/\v"/ skip=/\\\\\|\\"/ end=/"/ contained contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justRegexCapture,justDollarEscape,justDollarEscapeSplit
syn region justStringRegexRepl start=/\v"""/ skip=/\\\\\|\\"/ end=/"""/ contained contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justRegexCapture,justDollarEscape,justDollarEscapeSplit
syn match justRegexCapture '\v\$%(\w+|\{\w+\})' contained
syn cluster justStringsWithRegexCapture contains=justRawStrRegexRepl,justStringRegexRepl
syn cluster justRawStrings contains=justRawString,justRawStrRegexRepl
syn region justStringInsideBody start=/\v\\@1<!'/ end=/'/ contained contains=justInterpolation,@justOtherCurlyBraces,justIndentError
syn region justStringInsideBody start=/\v\\@1<!"/ skip=/\v\\@1<!\\"/ end=/"/ contained contains=justInterpolation,@justOtherCurlyBraces,justIndentError
syn region justStringInShebangBody start=/\v\\@1<!'/ end=/'/ contained contains=justInterpolation,@justOtherCurlyBraces,justShebangIndentError
syn region justStringInShebangBody start=/\v\\@1<!"/ skip=/\v\\@1<!\\"/ end=/"/ contained contains=justInterpolation,@justOtherCurlyBraces,justShebangIndentError
syn match justStringEscapeError '\\.' contained
syn match justStringEscapeSequence '\v\\[tnr"\\]' contained
syn match justStringUEscapeSequence '\v\\u\{[0-9A-Fa-f]{1,6}\}' contained
syn match justAssignmentOperator "\V:=" contained
syn region justExprParen start='\V(' end='\V)' transparent contains=@justExpr
syn region justExprParenInInterp start='\V(' end='\V)' transparent contained contains=@justExprInInterp
syn match justRecipeAt "^@" contained
syn match justRecipeColon ":" contained
syn region justRecipeAttributes
\ matchgroup=justRecipeAttr start='\v^%(\\\n)@3<!\[' end='\V]'
\ contains=justRecipeAttr,justRecipeAttrSep,justRecipeAttrArgs,justRecipeAttrArgError,justRecipeAttrValueShort
syn keyword justRecipeAttr
\ confirm doc extension group linux macos no-cd no-exit-message no-quiet openbsd positional-arguments private script unix windows working-directory
\ contained
syn match justRecipeAttrSep ',' contained
syn match justRecipeAttrValueShort '\v:%(\_s|\\\n)*' transparent contained
\ contains=justRecipeAttrValueColon nextgroup=@justStringLiterals,justInvalidAttrValue
syn match justRecipeAttrValueColon '\V:' contained
syn region justRecipeAttrArgs matchgroup=justRecipeAttr start='\V(' end='\V)' contained
\ contains=@justStringLiterals
syn match justRecipeAttrArgError '\v\(%(\s|\\?\n)*\)' contained
syn match justInvalidAttrValue '\v[^"',]["']@![^,\]]*' contained
syn match justRecipeDeclSimple "\v^\@?\h\k*%(%(\s|\\\n)*:\=@!)@="
\ transparent contains=justRecipeName
\ nextgroup=justRecipeNoDeps,justRecipeDeps
syn region justRecipeDeclComplex start="\v^\@?\h\k*%(\s|\\\n)+%([+*$]+%(\s|\\\n)*)*\h" end="\v%(:\=@!)@=|$"
\ transparent
\ contains=justRecipeName,justParameter
\ nextgroup=justRecipeNoDeps,justRecipeDeps
syn match justRecipeName "\v^\@?\h\k*" transparent contained contains=justRecipeAt,justFunction
syn match justParameter "\v%(\s|\\\n)@3<=%(%([*+]%(\s|\\\n)*)?%(\$%(\s|\\\n)*)?|\$%(\s|\\\n)*[*+]%(\s|\\\n)*)\h\k*"
\ transparent contained
\ contains=justName,justVariadicPrefix,justParamExport,justVariadicPrefixError
\ nextgroup=justPreParamValue
syn match justPreParamValue '\v%(\s|\\\n)*\=%(\s|\\\n)*'
\ contained transparent
\ contains=justParameterOperator
\ nextgroup=justParamValue
syn region justParamValue contained transparent
\ start="\v\S"
\ skip="\\\n"
\ end="\v%(\s|^)%([*+$:]|\h)@=|:@=|$"
\ contains=@justAllStrings,justRecipeParenDefault,@justExprFunc
\ nextgroup=justParameterError
syn match justParameterOperator "\V=" contained
syn match justVariadicPrefix "\v%(\s|\\\n)@3<=[*+]%(%(\s|\\\n)*\$?%(\s|\\\n)*\h)@=" contained
syn match justParamExport '\V$' contained
syn match justVariadicPrefixError "\v\$%(\s|\\\n)*[*+]" contained
syn match justParameterError "\v%(%([+*$]+%(\s|\\\n)*)*\h\k*)@>%(%(\s|\\\n)*\=)@!" contained
syn region justRecipeParenDefault
\ matchgroup=justRecipeDepParamsParen start='\v%(\=%(\s|\\\n)*)@<=\(' end='\V)'
\ contained
\ contains=@justExpr
syn match justRecipeSubsequentDeps '\V&&' contained
syn match justRecipeNoDeps '\v:%(\s|\\\n)*\n|:#@=|:%(\s|\\\n)+#@='
\ transparent contained
\ contains=justRecipeColon
\ nextgroup=justPreBodyComment,@justBodies
syn region justRecipeDeps start="\v:%(\s|\\\n)*%([a-zA-Z_(]|\&\&)" skip='\\\n' end="\v#@=|\\@1<!\n"
\ transparent contained
\ contains=justFunction,justRecipeColon,justRecipeSubsequentDeps,justRecipeParamDep
\ nextgroup=justPreBodyComment,@justBodies
syn region justRecipeParamDep contained transparent
\ matchgroup=justRecipeDepParamsParen
\ start="\V("
\ end="\V)"
\ contains=justRecipeDepParenName,@justExpr
syn keyword justBoolean true false contained
syn match justAssignment "\v^\h\k*%(\s|\\\n)*:\=" transparent contains=justAssignmentOperator
syn match justSet '\v^set' contained
syn keyword justSetKeywords
\ allow-duplicate-recipes allow-duplicate-variables dotenv-load dotenv-filename dotenv-path dotenv-required export fallback ignore-comments positional-arguments quiet script-interpreter shell tempdir unstable windows-shell working-directory
\ contained
syn keyword justSetDeprecatedKeywords windows-powershell contained
syn match justBooleanSet "\v^set%(\s|\\\n)+%(allow-duplicate-%(recip|variabl)es|dotenv-%(loa|require)d|export|fallback|ignore-comments|positional-arguments|quiet|unstable|windows-powershell)%(%(\s|\\\n)*:\=%(\s|\\\n)*%(true|false))?%(\s|\\\n)*%($|#@=)"
\ contains=justSet,justSetKeywords,justSetDeprecatedKeywords,justAssignmentOperator,justBoolean
\ transparent
syn match justStringSet '\v^set%(\s|\\\n)+\k+%(\s|\\\n)*:\=%(\s|\\\n)*%(x?['"])@=' transparent contains=justSet,justSetKeywords,justAssignmentOperator
syn match justShellSet
\ "\v^set%(\s|\\\n)+%(s%(hell|cript-interpreter)|windows-shell)%(\s|\\\n)*:\=%(\s|\\\n)*\[@="
\ contains=justSet,justSetKeywords,justAssignmentOperator
\ transparent skipwhite
\ nextgroup=justShellSetValue
syn region justShellSetValue
\ start='\V[' end='\V]'
\ contained
\ contains=@justStringLiterals,justShellSetError
syn match justShellSetError '\v\k+['"]@!' contained
syn match justAlias '\v^alias' contained
syn match justAliasDecl "\v^alias%(\s|\\\n)+\h\k*%(\s|\\\n)*:\=%(\s|\\\n)*"
\ transparent
\ contains=justAlias,justFunction,justAssignmentOperator
\ nextgroup=justAliasRes
syn match justAliasRes '\v\h\k*%(\s|\\\n)*%(#@=|$)' contained transparent contains=justFunction
syn match justExportedAssignment "\v^export%(\s|\\\n)+\h\k*%(\s|\\\n)*:\=" transparent
\ contains=justExport,justAssignmentOperator
syn match justExport '\v^export' contained
syn match justUnexportStatement '\v^unexport%(\s|\\\n)+\w+\s*$' contains=justUnexport
syn match justUnexport '\v^unexport' contained
syn keyword justConditional if else
syn region justConditionalBraces start="\v\{\{@!" end="\v\}@=" transparent contains=@justExpr
syn region justConditionalBracesInInterp start="\v\{\{@!" end="\v\}@=" transparent contained contains=@justExprInInterp
syn match justLineLeadingSymbol "\v^%(\\\n)@3<!\s+\zs%(\@-|-\@|\@|-)"
syn match justLineContinuation "\\$"
\ containedin=ALLBUT,justComment,justCommentInBody,justShebang,@justRawStrings,justRecipeAttrArgError,justShellExpandRawDefaultValue
syn region justBody
\ start=/\v^\z( +|\t+)%(#!)@!\S/
\ skip='\v\\\n|\n\s*$'
\ end="\v\n\z1@!|%(^\S)@2<=\_.@="
\ contains=justInterpolation,@justOtherCurlyBraces,justLineLeadingSymbol,justCommentInBody,justStringInsideBody,justIndentError
\ contained
syn region justShebangBody
\ start="\v^\z( +|\t+)#!"
\ skip='\v\\\n|\n\s*$'
\ end="\v\n\z1@!|%(^\S)@2<=\_.@="
\ contains=justInterpolation,@justOtherCurlyBraces,justCommentInBody,justShebang,justStringInShebangBody,justShebangIndentError
\ contained
syn cluster justBodies contains=justBody,justShebangBody
syn match justIndentError '\v^%(\\\n)@3<!%( +\zs\t|\t+\zs )\s*\S@='
syn match justShebangIndentError '\v^ +\zs\t\s*\S@='
syn region justInterpolation
\ matchgroup=justInterpolationDelim
\ start="\v\{\{\{@!" end="\v%(%(\\\n\s|\S)\s*)@<=\}\}|$"
\ matchgroup=justInterpError end='^\S'
\ contained
\ contains=@justExprInInterp
syn match justBadCurlyBraces '\v\{{3}\ze[^{]' contained
syn match justCurlyBraces '\v\{{4}' contained
syn match justBadCurlyBraces '\v\{{5}\ze[^{]' contained
syn cluster justOtherCurlyBraces contains=justCurlyBraces,justBadCurlyBraces
syn match justFunctionCall "\v\w+%(\s|\\\n)*\(@=" transparent contains=justBuiltInFunction
" error() is intentionally not included in this list
syn keyword justBuiltInFunction
\ absolute_path append arch blake3 blake3_file cache_dir cache_directory canonicalize capitalize choose clean config_dir config_directory config_local_dir config_local_directory data_dir data_directory data_local_dir data_local_directory datetime datetime_utc encode_uri_component env env_var env_var_or_default executable_dir executable_directory extension file_name file_stem home_dir home_directory invocation_dir invocation_dir_native invocation_directory invocation_directory_native is_dependency join just_executable just_pid justfile justfile_dir justfile_directory kebabcase lowercamelcase lowercase module_dir module_directory module_file num_cpus os os_family parent_dir parent_directory path_exists prepend quote replace replace_regex semver_matches sha256 sha256_file shell shoutykebabcase shoutysnakecase snakecase source_dir source_directory source_file style titlecase trim trim_end trim_end_match trim_end_matches trim_start trim_start_match trim_start_matches uppercamelcase uppercase uuid without_extension
\ contained
syn match justUserDefinedError "\v%(assert|error)%(%(\s|\\\n)*\()@="
syn match justReplaceRegex '\vreplace_regex%(\s|\\\n)*\(@=' transparent contains=justBuiltInFunction nextgroup=justReplaceRegexCall
syn match justReplaceRegexInInterp '\vreplace_regex%(\s|\\\n)*\(@=' transparent contained contains=justBuiltInFunction nextgroup=justReplaceRegexCallInInterp
syn region justReplaceRegexCall
\ matchgroup=justReplaceRegexCall
\ start='\V(' end='\V)'
\ transparent contained
\ contains=@justExpr,justRegexReplacement
syn region justReplaceRegexCallInInterp
\ matchgroup=justReplaceRegexCall
\ start='\V(' end='\V)'
\ transparent contained
\ contains=@justExprInInterp,justRegexReplacement
syn match justParameterLineContinuation '\v%(\s|\\\n)*' contained nextgroup=justParameterError
syn match justRecipeDepParenName '\v%(\(\n?)@3<=%(\_s|\\\n)*\h\k*'
\ transparent contained
\ contains=justFunction
syn cluster justBuiltInFunctions contains=justFunctionCall,justUserDefinedError
syn match justConditionalOperator "\V=="
syn match justConditionalOperator "\V!="
syn match justConditionalOperator "\V=~"
syn match justOperator "\V+"
syn match justOperator "\V/"
syn match justOperator "\V&&"
syn match justOperator "\V||"
syn keyword justConstant
\ HEX HEXLOWER HEXUPPER
\ CLEAR NORMAL BOLD ITALIC UNDERLINE INVERT HIDE STRIKETHROUGH
\ BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE
\ BG_BLACK BG_RED BG_GREEN BG_YELLOW BG_BLUE BG_MAGENTA BG_CYAN BG_WHITE
syn match justShellExpandVarRaw '\v\$%(\{\_[^}]*\}|\w+)' contained contains=justShellExpandRawDefaultDelimiter
syn match justShellExpandRawDefaultDelimiter '\V:-' contained nextgroup=justShellExpandRawDefaultValue
syn match justShellExpandRawDefaultValue '\v\_[^}]*' contained
syn match justShellExpandVar '\v\$%(\w|\\\n\s*)+' contained
syn region justShellExpandVar start='\v\$%(\\\n\s*)*\{' end='\V}' contains=justShellExpandDefaultDelimiter,justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError
syn match justShellExpandDefaultDelimiter '\v:%(\\\n\s*)*-@=' contained nextgroup=justShellExpandDefault
syn region justShellExpandDefault
\ matchgroup=justShellExpandDefaultDelimiter start='\V-' end='\v\}@='
\ contained
\ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError
syn match justDollarEscape '\V$$' contained
syn match justDollarEscapeSplit '\v\$%(\\\n\s*)*\$' contained
syn cluster justExprBase contains=@justAllStrings,@justBuiltInFunctions,justConditional,justConditionalOperator,justOperator,justConstant
syn cluster justExpr contains=@justExprBase,justExprParen,justConditionalBraces,justReplaceRegex
syn cluster justExprInInterp contains=@justExprBase,justName,justExprParenInInterp,justConditionalBracesInInterp,justReplaceRegexInInterp
syn cluster justExprFunc contains=@justBuiltInFunctions,justReplaceRegex,justExprParen
syn match justImport /\v^import%(%(\s|\\\n)*\?|%(\s|\\\n)+%(x?['"])@=)/ transparent
\ contains=justImportStatement,justOptionalFile
syn match justImportStatement '^import' contained
syn match justOldInclude "^!include"
syn match justModule /\v^mod%(%(\s|\\\n)*\?)?%(\s|\\\n)+\h\k*\s*%($|%(\s|\\\n)*%(x?['"]|#)@=)/
\ transparent contains=justModStatement,justName,justOptionalFile
syn match justModStatement '^mod' contained
syn match justOptionalFile '\V?' contained
" Most linked colorscheme colors are chosen based on semantics of the color name.
" Some are for parity with other syntax files (for example, Number for recipe body highlighting
" is to align with the make.vim distributed with Vim).
" Deprecated `just` syntaxes are highlighted as Underlined.
"
" Colors are linked 'def'(ault) so that users who prefer other colors
" can override them, e.g. in ~/.vim/after/syntax/just.vim
"
" Note that vim-just's highlight groups are an implementation detail and may be subject to change.
" The list of highlight links is sorted alphabetically.
hi def link justAlias Statement
hi def link justAssignmentOperator Operator
hi def link justBacktick Special
hi def link justBadCurlyBraces Error
hi def link justBody Number
hi def link justBoolean Boolean
hi def link justBuiltInFunction Function
hi def link justComment Comment
hi def link justCommentInBody Comment
hi def link justCommentTodo Todo
hi def link justConditional Conditional
hi def link justConditionalOperator Conditional
hi def link justConstant Constant
hi def link justCurlyBraces Special
hi def link justDollarEscape Special
hi def link justDollarEscapeSplit Special
hi def link justExport Statement
hi def link justFunction Function
hi def link justImportStatement Include
hi def link justIndentError Error
hi def link justInterpError Error
hi def link justInterpolation Normal
hi def link justInterpolationDelim Delimiter
hi def link justInvalidAttrValue Error
hi def link justLineContinuation Special
hi def link justLineLeadingSymbol Special
hi def link justModStatement Keyword
hi def link justName Identifier
hi def link justOldInclude Error
hi def link justOperator Operator
hi def link justOptionalFile Conditional
hi def link justParameterError Error
hi def link justParameterOperator Operator
hi def link justParamExport Statement
hi def link justRawString String
hi def link justRawStrRegexRepl String
hi def link justRecipeAt Special
hi def link justRecipeAttr Type
hi def link justRecipeAttrArgError Error
hi def link justRecipeAttrSep Operator
hi def link justRecipeAttrValueColon Operator
hi def link justRecipeColon Operator
hi def link justRecipeDepParamsParen Delimiter
hi def link justRecipeSubsequentDeps Delimiter
hi def link justRegexCapture Identifier
hi def link justSet Statement
hi def link justSetDeprecatedKeywords Underlined
hi def link justSetKeywords Keyword
hi def link justShebang SpecialComment
hi def link justShebangBody Number
hi def link justShebangIndentError Error
hi def link justShellExpandDefault Character
hi def link justShellExpandDefaultDelimiter Operator
hi def link justShellExpandRawDefaultDelimiter Operator
hi def link justShellExpandRawDefaultValue Character
hi def link justShellExpandRawString String
hi def link justShellExpandString String
hi def link justShellExpandVar PreProc
hi def link justShellExpandVarRaw PreProc
hi def link justShellSetError Error
hi def link justString String
hi def link justStringEscapeError Error
hi def link justStringEscapeSequence Special
hi def link justStringInShebangBody String
hi def link justStringInsideBody String
hi def link justStringRegexRepl String
hi def link justStringUEscapeSequence Special
hi def link justUnexport Statement
hi def link justUserDefinedError Exception
hi def link justVariadicPrefix Statement
hi def link justVariadicPrefixError Error
let &cpo = s:cpo_sav
unlet s:cpo_sav
+696 -696
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2,7 +2,7 @@
" Language: LyRiCs
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Filenames: *.lrc
" Last Change: 2024 Sep 20
" Last Change: 2025 Jan 13
if exists('b:current_syntax')
finish
@@ -23,7 +23,7 @@ syn match lrcTagName contained nextgroup=lrcTagValue
syn match lrcTagValue /:\zs.\+\ze\]/ contained
" Lyrics
syn match lrcLyricTime /^\s*\(\[\d\d:\d\d\.\d\d\]\)\+/
syn match lrcLyricTime /^\s*\(\[\d\d:\d\d\.\d\d\d\?\]\)\+/
\ contains=lrcNumber nextgroup=lrcLyricLine
syn match lrcLyricLine /.*$/ contained contains=lrcWordTime,@Spell
syn match lrcWordTime /<\d\d:\d\d\.\d\d>/ contained contains=lrcNumber,@NoSpell
-148
View File
@@ -1,148 +0,0 @@
" Language : Netrw Listing Syntax
" Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E. Campbell
" Last Change: Nov 07, 2019
" 2024 Feb 19 by Vim Project (announce adoption)
" Version : 20
" ---------------------------------------------------------------------
if exists("b:current_syntax")
finish
endif
" ---------------------------------------------------------------------
" Directory List Syntax Highlighting: {{{1
syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
syn match netrwPlain "\(\S\+ \)*\S\+" contains=netrwLink,@NoSpell
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
else
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
endif
syn match netrwTreeBarSpace " " contained
syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
syn match netrwDateSep "/" contained
syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
syn match netrwTimeSep ":"
syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
syn match netrwSlash "/" contained
syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep
syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat
syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
syn match netrwList ".*$" contained contains=netrwComma,@NoSpell
syn match netrwComma "," contained
syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,netrwQHTopic,@NoSpell keepend contained
syn match netrwHelpCmd "\S\+\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep
syn match netrwQHTopic "([a-zA-Z &]\+)" contained skipwhite
syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
syn match netrwLink "-->" contained skipwhite
" -----------------------------
" Special filetype highlighting {{{1
" -----------------------------
if exists("g:netrw_special_syntax") && g:netrw_special_syntax
if exists("+suffixes") && &suffixes != ""
let suflist= join(split(&suffixes,','))
let suflist= escape(substitute(suflist," ",'\\|','g'),'.~')
exe "syn match netrwSpecFile '\\(\\S\\+ \\)*\\S*\\(".suflist."\\)\\>' contains=netrwTreeBar,@NoSpell"
endif
syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell
syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell
if has("unix")
syn match netrwCoreDump "\<core\%(\.\d\+\)\=\>" contains=netrwTreeBar,@NoSpell
endif
syn match netrwLex "\(\S\+ \)*\S\+\.\%(l\|lex\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwYacc "\(\S\+ \)*\S\+\.y\>" contains=netrwTreeBar,@NoSpell
syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell
syn match netrwDoc "\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\|docx\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwHdr "\(\S\+ \)*\S\+\.\%(h\|hpp\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwPix "\c\(\S\+ \)*\S*\.\%(bmp\|fits\=\|gif\|je\=pg\|pcx\|ppc\|pgm\|png\|ppm\|psd\|rgb\|tif\|xbm\|xcf\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
endif
" ---------------------------------------------------------------------
" Highlighting Links: {{{1
if !exists("did_drchip_netrwlist_syntax")
let did_drchip_netrwlist_syntax= 1
hi default link netrwClassify Function
hi default link netrwCmdSep Delimiter
hi default link netrwComment Comment
hi default link netrwDir Directory
hi default link netrwHelpCmd Function
hi default link netrwQHTopic Number
hi default link netrwHidePat Statement
hi default link netrwHideSep netrwComment
hi default link netrwList Statement
hi default link netrwVersion Identifier
hi default link netrwSymLink Question
hi default link netrwExe PreProc
hi default link netrwDateSep Delimiter
hi default link netrwTreeBar Special
hi default link netrwTimeSep netrwDateSep
hi default link netrwComma netrwComment
hi default link netrwHide netrwComment
hi default link netrwMarkFile TabLineSel
hi default link netrwLink Special
" special syntax highlighting (see :he g:netrw_special_syntax)
hi default link netrwCoreDump WarningMsg
hi default link netrwData Folded
hi default link netrwHdr netrwPlain
hi default link netrwLex netrwPlain
hi default link netrwLib DiffChange
hi default link netrwMakefile DiffChange
hi default link netrwYacc netrwPlain
hi default link netrwPix Special
hi default link netrwBak netrwGray
hi default link netrwCompress netrwGray
hi default link netrwSpecFile netrwGray
hi default link netrwObj netrwGray
hi default link netrwTags netrwGray
hi default link netrwTilde netrwGray
hi default link netrwTmp netrwGray
endif
" set up netrwGray to be understated (but not Ignore'd or Conceal'd, as those
" can be hard/impossible to read). Users may override this in a colorscheme by
" specifying netrwGray highlighting.
redir => s:netrwgray
sil hi netrwGray
redir END
if s:netrwgray !~ 'guifg'
if has("gui") && has("gui_running")
if &bg == "dark"
exe "hi netrwGray gui=NONE guifg=gray30"
else
exe "hi netrwGray gui=NONE guifg=gray70"
endif
else
hi link netrwGray Folded
endif
endif
" Current Syntax: {{{1
let b:current_syntax = "netrwlist"
" ---------------------------------------------------------------------
" vim: ts=8 fdm=marker
+7 -5
View File
@@ -6,6 +6,7 @@
" Last Change: 2024 Mar 04 by Vim Project
" 2024 Nov 03 by Aliaksei Budavei <0x000c70 AT gmail DOT com> (improved bracket expressions, #15941)
" 2025 Jan 06 add $PS0 to bashSpecialVariables (#16394)
" 2025 Jan 18 add bash coproc, remove duplicate syn keywords (#16467)
" Version: 208
" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
@@ -24,7 +25,7 @@ elseif getline(1) =~ '\<bash\>'
elseif getline(1) =~ '\<dash\>'
let b:is_dash = 1
elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh") && !exists("g:is_dash")
" user did not specify which shell to use, and
" user did not specify which shell to use, and
" the script itself does not specify which shell to use. FYI: /bin/sh is ambiguous.
" Assuming /bin/sh is executable, and if its a link, find out what it links to.
let s:shell = ""
@@ -352,7 +353,7 @@ if exists("b:is_bash")
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
elseif exists("b:is_kornshell")
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
else
else
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
endif
ShFoldIfDoFor syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
@@ -405,7 +406,7 @@ syn region shCmdParenRegion matchgroup=shCmdSubRegion start="((\@!" skip='\\\\\|
if exists("b:is_bash")
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
syn cluster shCaseList add=bashAdminStatement,bashStatement
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS0 PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ARGC BASH_ARGV BASH_CMDS BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_LINENO BASHOPTS BASHPID BASH_REMATCH BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD CDPATH COLUMNS COMP_CWORD COMP_KEY COMP_LINE COMP_POINT COMPREPLY COMP_TYPE COMP_WORDBREAKS COMP_WORDS COPROC COPROC_PID DIRSTACK EMACS ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_NUMERIC LINENO LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT PPID PROMPT_COMMAND PS0 PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_POINT REPLY SECONDS SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR UID
syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep head less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
syn keyword bashStatement command compgen
@@ -540,6 +541,7 @@ if !exists("b:is_posix")
endif
if exists("b:is_bash")
syn keyword shFunctionKey coproc
ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
@@ -693,10 +695,10 @@ if exists("b:is_kornshell") || exists("b:is_posix")
" Additional bash Keywords: {{{1
" =====================
elseif exists("b:is_bash")
syn keyword shStatement bg builtin disown export false fg getopts jobs let printf sleep true unalias
syn keyword shStatement bg builtin disown export false fg getopts jobs let printf true unalias
syn keyword shStatement typeset nextgroup=shSetOption
syn keyword shStatement fc hash history source suspend times type
syn keyword shStatement bind builtin caller compopt declare dirs disown enable export help logout local mapfile popd pushd readarray shopt source typeset
syn keyword shStatement bind caller compopt declare dirs enable help logout local mapfile popd pushd readarray shopt typeset
else
syn keyword shStatement login newgrp
endif
+3
View File
@@ -199,6 +199,9 @@ You can now examine the extracted screendumps:
Viewing generated screendumps (submitted for a pull request)
------------------------------------------------------------
Note: There is also a "git difftool" extension described in
src/testdir/commondumps.vim
First, you need to check out the topic branch with the proposed changes and
write down a difference list between the HEAD commit (index) and its parent
commit with respect to the changed "dumps" filenames:
@@ -0,0 +1,20 @@
>/+0#0000e05#ffffff0@1| |C| |b|o@1|l|e|a|n| |c|o|n|s|t|a|n|t|s| +0#0000000&@52
@75
|/+0#0000e05&@1| |S|o|u|r|c|e|:| |h|t@1|p|s|:|/@1|e|n|.|c|p@1|r|e|f|e|r|e|n|c|e|.|c|o|m|/|w|/|c|/|l|a|n|g|u|a|g|e|/|b|o@1|l|_|c|o|n|s|t|a|n|t| +0#0000000&@9
@75
|#+0#e000e06&|i|n|c|l|u|d|e| |<+0#e000002&|a|s@1|e|r|t|.|h|>| +0#0000000&@55
@75
|i+0#00e0003&|n|t| +0#0000000&|m|a|i|n|(|)| @64
|{| @73
@4|a|s@1|e|r|t|(|t+0#e000002&|r|u|e| +0#0000000&|=@1| |1+0#e000002&| +0#0000000&|&@1| |0+0#e000002&| +0#0000000&|=@1| |f+0#e000002&|a|l|s|e|)+0#0000000&|;| @38
|}| @73
@75
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|,|1| @10|A|l@1|
@@ -0,0 +1,20 @@
>/+0#0000e05#ffffff0@1| |C| |c|h|a|r|a|c|t|e|r| |c|o|n|s|t|a|n|t|s| +0#0000000&@50
@75
|/+0#0000e05&@1| |S|o|u|r|c|e|:| |h|t@1|p|s|:|/@1|e|n|.|c|p@1|r|e|f|e|r|e|n|c|e|.|c|o|m|/|w|/|c|/|l|a|n|g|u|a|g|e|/|c|h|a|r|a|c|t|e|r|_|c|o|n|s|t|a|n|t| +0#0000000&@4
@75
|#+0#e000e06&|i|n|c|l|u|d|e| |<+0#e000002&|s|t|d@1|e|f|.|h|>| +0#0000000&@55
|#+0#e000e06&|i|n|c|l|u|d|e| |<+0#e000002&|s|t|d|i|o|.|h|>| +0#0000000&@56
|#+0#e000e06&|i|n|c|l|u|d|e| |<+0#e000002&|u|c|h|a|r|.|h|>| +0#0000000&@56
@75
|i+0#00e0003&|n|t| +0#0000000&|m|a|i|n| |(|v+0#00e0003&|o|i|d|)+0#0000000&| @59
|{| @73
@4|p|r|i|n|t|f|(|"+0#e000002&|c|o|n|s|t|a|n|t| |v|a|l|u|e| @4|\+0#e000e06&|n|"+0#e000002&|)+0#0000000&|;| @38
@4|p|r|i|n|t|f|(|"+0#e000002&|-@7| |-@9|\+0#e000e06&|n|"+0#e000002&|)+0#0000000&|;| @38
@75
@4|/+0#0000e05&@1| |i|n|t|e|g|e|r| |c|h|a|r|a|c|t|e|r| |c|o|n|s|t|a|n|t|s|,| +0#0000000&@39
@4|i+0#00e0003&|n|t| +0#0000000&|c|1|=|'+0#e000002&|a|'|;+0#0000000&| |p|r|i|n|t|f|(|"+0#e000002&|'|a|'|:|\+0#e000e06&|t| +0#e000002&|%+0#e000e06&|#|0|1|0|x|\|n|"+0#e000002&|,+0#0000000&| |c|1|)|;| @28
@4|i+0#00e0003&|n|t| +0#0000000&|c|2|=|'+0#e000002&|🍌*&|'+&|;+0#0000000&| |p|r|i|n|t|f|(|"+0#e000002&|'|🍌*&|'+&|:|\+0#e000e06&|t| +0#e000002&|%+0#e000e06&|#|0|1|0|x|\|n|\|n|"+0#e000002&|,+0#0000000&| |c|2|)|;| |/+0#0000e05&@1| |i|m|p|l|e|m|e|n|t|a|t|i|o|n|-|d|e|f|i|n|e
|d| +0#0000000&@73
@75
@4|/+0#0000e05&@1| |m|u|l|t|i|c|h|a|r|a|c|t|e|r| |c|o|n|s|t|a|n|t| +0#0000000&@44
@57|1|,|1| @10|T|o|p|

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