diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 6052197de5..9874dc7ac2 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -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
diff --git a/.github/workflows/ci-macvim.yaml b/.github/workflows/ci-macvim.yaml
index 4e2c103632..71a386d54c 100644
--- a/.github/workflows/ci-macvim.yaml
+++ b/.github/workflows/ci-macvim.yaml
@@ -68,16 +68,19 @@ jobs:
- os: macos-13
xcode: '15.2'
+ testgui: true
extra: [vimtags, check-xcodeproj-compat]
# Below runners use Apple Silicon.
- os: macos-14
xcode: '15.4'
+ testgui: false
optimized: true
# Most up to date OS and Xcode. Used to publish release for the main build.
- os: macos-15
xcode: '16.2'
+ testgui: true
publish: true
optimized: true
@@ -351,12 +354,13 @@ jobs:
fi
- name: Test MacVim
+ id: test_macvim
timeout-minutes: 10
run: |
make ${MAKE_BUILD_ARGS} -C src macvim-tests
- name: Upload failed MacVim test results
- if: ${{ !cancelled() && failure() }}
+ if: ${{ !cancelled() && failure() && steps.test_macvim.conclusion == 'failure' }}
uses: ./.github/actions/test_macvim_artifacts
- name: Build Vim test binaries
@@ -370,40 +374,56 @@ jobs:
make ${MAKE_BUILD_ARGS} -j${NPROC} -C src unittesttargets
- name: Test Vim
- timeout-minutes: 25
- run: make ${MAKE_BUILD_ARGS} test
-
- - name: Upload failed test files
- if: ${{ !cancelled() && failure() }}
- uses: ./.github/actions/test_artifacts
+ if: startsWith(github.ref, 'refs/tags/') || !matrix.testgui
+ timeout-minutes: 30
+ run: |
+ defaults delete org.vim.MacVim # Clean up stale states
+ # Currently we don't run any non-src tests, as syntax tests are fragile and prone to spamming escape codes.
+ # This needs to be investigated and fixed upstream.
+ # MacVim is unlikely to introduce breaking changes in runtime files anyway.
+ make ${MAKE_BUILD_ARGS} -C src test
- name: Test Vim (GUI)
- timeout-minutes: 25
+ if: startsWith(github.ref, 'refs/tags/') || matrix.testgui
+ timeout-minutes: 30
run: |
+ defaults delete org.vim.MacVim # Clean up stale states
make ${MAKE_BUILD_ARGS} -C src/testdir clean
make ${MAKE_BUILD_ARGS} -C src testgui
- # Creates a DMG package of MacVim. Note that this doesn't create a GitHub release for us, because we would prefer to
- # do it manually, for two reasons: 1) signing / notarization are currently done out of CI, 2) we want to manually
- # format our release notes and add pictures to make them look nice.
+ - name: Upload failed test files
+ if: ${{ !cancelled() && failure() }}
+ uses: ./.github/actions/test_artifacts
+
- name: Build MacVim dmg image
- if: startsWith(github.ref, 'refs/tags/') && matrix.publish
+ if: matrix.publish && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
run: |
# Use the --skip-jenkins flag to skip the prettify osascript calls which could fail due to permission issues in
# CI environment.
if ${{ matrix.legacy == true }}; then
- make -C src macvim-dmg-legacy CREATEDMG_FLAGS=--skip-jenkins
+ make -C src macvim-dmg-legacy
else
- make -C src macvim-dmg CREATEDMG_FLAGS=--skip-jenkins
+ make -C src macvim-dmg
fi
if ${{ matrix.publish_postfix != '' }}; then
mv src/MacVim/build/Release/MacVim.dmg src/MacVim/build/Release/MacVim${{ matrix.publish_postfix }}.dmg
fi
+ # Upload the dmg installer only when making tagged release or making a dev build from a master branch.
+ # Note that this doesn't create a GitHub release for us, because we would prefer to do it manually, for two
+ # reasons: 1) signing / notarization are currently done out of CI, 2) we want to manually format our release notes
+ # and add pictures to make them look nice.
- name: Upload MacVim image
- if: startsWith(github.ref, 'refs/tags/') && matrix.publish
+ if: matrix.publish && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
uses: actions/upload-artifact@v4
with:
name: MacVim${{ matrix.publish_postfix }}.dmg
path: src/MacVim/build/Release/MacVim${{ matrix.publish_postfix }}.dmg
+
+ # If doing a tagged release, use repository-specified number of retention days (usually 90 days) to make it
+ # easier to audit. (specify "0" to indicate using repository settings)
+ #
+ # Otherwise, we are just doing a dev build for potential testing, just use a maximum of 21 days as we don't
+ # tend to need these for long.
+ retention-days: ${{ startsWith(github.ref, 'refs/tags/') && 0 || (github.retention_days > 21 && 21 || 0) }}
diff --git a/.gitignore b/.gitignore
index 7b17b588fc..fec0abeaa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 99bfcfa2c8..17bb9b307d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -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
diff --git a/Filelist b/Filelist
index 0a1d9936a2..8e12302e18 100644
--- a/Filelist
+++ b/Filelist
@@ -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 \
diff --git a/Makefile b/Makefile
index fddf33c930..12aa1f37da 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/lang/LICENSE.itx b/lang/LICENSE.it.txt
similarity index 100%
rename from lang/LICENSE.itx
rename to lang/LICENSE.it.txt
diff --git a/lang/LICENSE.ru.txt b/lang/LICENSE.ru.txt
new file mode 100644
index 0000000000..ba9deae972
--- /dev/null
+++ b/lang/LICENSE.ru.txt
@@ -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, взамен тех лицензий, с которыми
+ они распространялись.
diff --git a/lang/README.itx b/lang/README.it.txt
similarity index 100%
rename from lang/README.itx
rename to lang/README.it.txt
diff --git a/README.rux.txt b/lang/README.ru.txt
similarity index 99%
rename from README.rux.txt
rename to lang/README.ru.txt
index be909280c8..a2a29db45b 100644
--- a/README.rux.txt
+++ b/lang/README.ru.txt
@@ -1,4 +1,4 @@
-README.rux.txt для версии 9.1 программы Vim — Vi IMproved.
+README.ru.txt для версии 9.1 программы Vim — Vi IMproved.
ЧТО ТАКОЕ РЕДАКТОР VIM?
diff --git a/nsis/Make_mvc.mak b/nsis/Make_mvc.mak
new file mode 100644
index 0000000000..c5aff151b9
--- /dev/null
+++ b/nsis/Make_mvc.mak
@@ -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:
diff --git a/nsis/Makefile b/nsis/Makefile
new file mode 100644
index 0000000000..fdbc12012f
--- /dev/null
+++ b/nsis/Makefile
@@ -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:
diff --git a/nsis/README.txt b/nsis/README.txt
index 79c1952133..4b4b7a0fbc 100644
--- a/nsis/README.txt
+++ b/nsis/README.txt
@@ -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).
-
-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
-
- Then execute tools/rename.bat to rename the executables.
+Preparatory stage
+
+1. Clone using the git tool the Vim repository or download its zip file
+ available at:
+ https://github.com/vim/vim
+
+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=
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= 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 is "..", however, you can specify another
- directory by passing /DGETTEXT= option to "makensis.exe" program via
- the command line.
+ The default 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
+
+ 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
+ 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
-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)
+ 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
-Then build gvim.exe:
- cd nsis
- makensis.exe [options] gvim.nsi
+Variables and their values available for building the installer (not mandatory):
-Options (not mandatory):
- /DVIMSRC= — directory where location of gvim_ole.exe, vimw32.exe,
+ "VIMSRC=" — directory where location of gvim_ole.exe, vimw32.exe,
GvimExt/*, etc.
- /DVIMRT= — directory where location of runtime files
- /DVIMTOOLS= — directory where location of extra tools: diff.exe,
- winpty{32|64}.dll, winpty-agent.exe, libsodium.dll
- /DGETTEXT= — directory where location of gettext libraries
- /DHAVE_UPX=1 — additional compression of the installer. UPX program
+ "VIMRT=" — directory where location of runtime files.
+ "VIMTOOLS=" — directory where location of extra tools: diff.exe,
+ winpty{32|64}.dll, winpty-agent.exe, libsodium.dll.
+ "GETTEXT=" — 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=" — executes scriptcmd in script. If multiple scriptcmd
+ are specified, they are separated by a semicolon.
+ Example "X=OutFile MyVim.exe;XPMode on"
+ "MKNSIS=" — the directory where the "makensis.exe" program is
+ located.
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index 3ea1d15de1..878867f68f 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -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}
-!endif
-!if /FileExists ..\README.nlx.txt
- ${If} $Language = ${LANG_DUTCH}
- File ..\README.nlx.txt
- ${EndIf}
-!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}
+ 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 "${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}
+!if /FileExists "..\lang\LICENSE.??.txt"
+ File ..\lang\LICENSE.??.txt
+!if /FileExists "..\lang\LICENSE.??_??.txt"
+ File ..\lang\LICENSE.??_??.txt
!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"
diff --git a/nsis/gvim_version.nsh b/nsis/gvim_version.nsh
index aee434ba06..c59366a74c 100644
--- a/nsis/gvim_version.nsh
+++ b/nsis/gvim_version.nsh
@@ -3,4 +3,5 @@
!define __GVIM_VER__NSH__
!define VER_MAJOR 9
!define VER_MINOR 1
+!define PATCHLEVEL 0
!endif
diff --git a/nsis/lang/README.txt b/nsis/lang/README.txt
index 68ff1124ca..07899cbe2d 100644
--- a/nsis/lang/README.txt
+++ b/nsis/lang/README.txt
@@ -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.
diff --git a/nsis/lang/danish.nsi b/nsis/lang/danish.nsi
index ceb18be2f1..c4000312f2 100644
--- a/nsis/lang/danish.nsi
+++ b/nsis/lang/danish.nsi
@@ -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
diff --git a/nsis/lang/dutch.nsi b/nsis/lang/dutch.nsi
index 49b1ed07c9..5a2ba14ce5 100644
--- a/nsis/lang/dutch.nsi
+++ b/nsis/lang/dutch.nsi
@@ -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
diff --git a/nsis/lang/english.nsi b/nsis/lang/english.nsi
index 6f69f58df1..d80f6f3686 100644
--- a/nsis/lang/english.nsi
+++ b/nsis/lang/english.nsi
@@ -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
diff --git a/nsis/lang/german.nsi b/nsis/lang/german.nsi
index 21cf80e52e..59d65a3425 100644
--- a/nsis/lang/german.nsi
+++ b/nsis/lang/german.nsi
@@ -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
diff --git a/nsis/lang/greek.nsi b/nsis/lang/greek.nsi
index b92d3f326b..d746cb3a2c 100644
--- a/nsis/lang/greek.nsi
+++ b/nsis/lang/greek.nsi
@@ -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
diff --git a/nsis/lang/italian.nsi b/nsis/lang/italian.nsi
index 5f326809a7..629d476589 100644
--- a/nsis/lang/italian.nsi
+++ b/nsis/lang/italian.nsi
@@ -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
diff --git a/nsis/lang/japanese.nsi b/nsis/lang/japanese.nsi
index d290355d10..c28529cb46 100644
--- a/nsis/lang/japanese.nsi
+++ b/nsis/lang/japanese.nsi
@@ -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
diff --git a/nsis/lang/russian.nsi b/nsis/lang/russian.nsi
index 876bef2b89..bcb54672fd 100644
--- a/nsis/lang/russian.nsi
+++ b/nsis/lang/russian.nsi
@@ -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
diff --git a/nsis/lang/serbian.nsi b/nsis/lang/serbian.nsi
index 122727d11a..9b829ef961 100644
--- a/nsis/lang/serbian.nsi
+++ b/nsis/lang/serbian.nsi
@@ -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
diff --git a/nsis/lang/simpchinese.nsi b/nsis/lang/simpchinese.nsi
index 8d2d073f79..0c9290eab4 100644
--- a/nsis/lang/simpchinese.nsi
+++ b/nsis/lang/simpchinese.nsi
@@ -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
diff --git a/nsis/lang/tradchinese.nsi b/nsis/lang/tradchinese.nsi
index 66bb1b8800..5d9a5d3a56 100644
--- a/nsis/lang/tradchinese.nsi
+++ b/nsis/lang/tradchinese.nsi
@@ -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
diff --git a/nsis/lang/turkish.nsi b/nsis/lang/turkish.nsi
index 429cbb3d90..3522faa7f4 100644
--- a/nsis/lang/turkish.nsi
+++ b/nsis/lang/turkish.nsi
@@ -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"
##############################################################################
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index f1e6ee272b..5bbf8ee251 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project
-# Last Change: 2025 Jan 08
+# Last Change: 2025 Jan 11
# Former Maintainer: Bram Moolenaar
# 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 =~ '\' || name =~ '\'
# Ubuntu links "sh" to "dash", thus it is expected to work the same way
b:is_sh = 1
diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim
index 33ed7fd2fc..859126f0f6 100644
--- a/runtime/autoload/dist/script.vim
+++ b/runtime/autoload/dist/script.vim
@@ -4,7 +4,7 @@ vim9script
# Invoked from "scripts.vim" in 'runtimepath'
#
# Maintainer: The Vim Project
-# Last Change: 2023 Aug 10
+# Last Change: 2025 Jan 20
# Former Maintainer: Bram Moolenaar
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'
diff --git a/runtime/autoload/netrwSettings.vim b/runtime/autoload/netrwSettings.vim
deleted file mode 100644
index 3452602272..0000000000
--- a/runtime/autoload/netrwSettings.vim
+++ /dev/null
@@ -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 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 '
-
- 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 :call NetrwSettingHelp()
- nnoremap :call NetrwSettingHelp()
- 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
diff --git a/runtime/colors/blue.vim b/runtime/colors/blue.vim
index aafa8e9fa5..5b40feb725 100644
--- a/runtime/colors/blue.vim
+++ b/runtime/colors/blue.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Steven Vertigan
" 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
diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim
index 3a0a218d28..de56d8be78 100644
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -4,7 +4,7 @@
" Maintainer: Original author Bohdan Vlasyuk
" 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
diff --git a/runtime/colors/delek.vim b/runtime/colors/delek.vim
index c06fda215c..6edd128c86 100644
--- a/runtime/colors/delek.vim
+++ b/runtime/colors/delek.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer David Schweikert
" 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
diff --git a/runtime/colors/desert.vim b/runtime/colors/desert.vim
index 4c3446832b..a3efbd8fa7 100644
--- a/runtime/colors/desert.vim
+++ b/runtime/colors/desert.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Hans Fugal
" 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
diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim
index 7ea265d310..e7c640f7da 100644
--- a/runtime/colors/evening.vim
+++ b/runtime/colors/evening.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Steven Vertigan
" 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
diff --git a/runtime/colors/habamax.vim b/runtime/colors/habamax.vim
index a9cbf524e2..b840c3d64b 100644
--- a/runtime/colors/habamax.vim
+++ b/runtime/colors/habamax.vim
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim
" 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
diff --git a/runtime/colors/industry.vim b/runtime/colors/industry.vim
index 71ef4cedf1..29a4c4012e 100644
--- a/runtime/colors/industry.vim
+++ b/runtime/colors/industry.vim
@@ -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
diff --git a/runtime/colors/lunaperche.vim b/runtime/colors/lunaperche.vim
index 5ccba2d812..a6536da8f7 100644
--- a/runtime/colors/lunaperche.vim
+++ b/runtime/colors/lunaperche.vim
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim
" 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
diff --git a/runtime/colors/morning.vim b/runtime/colors/morning.vim
index bd62d0c63f..3cdf41614e 100644
--- a/runtime/colors/morning.vim
+++ b/runtime/colors/morning.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Bram Moolenaar
" 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
diff --git a/runtime/colors/murphy.vim b/runtime/colors/murphy.vim
index 6cdbd6e04a..7ade6689a6 100644
--- a/runtime/colors/murphy.vim
+++ b/runtime/colors/murphy.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron .
" 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
diff --git a/runtime/colors/pablo.vim b/runtime/colors/pablo.vim
index 22bf377490..777698df69 100644
--- a/runtime/colors/pablo.vim
+++ b/runtime/colors/pablo.vim
@@ -3,7 +3,7 @@
" Maintainer: Original maintainerRon Aaron
" 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
diff --git a/runtime/colors/peachpuff.vim b/runtime/colors/peachpuff.vim
index bc485c49b2..f08a93ba88 100644
--- a/runtime/colors/peachpuff.vim
+++ b/runtime/colors/peachpuff.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer David Ne\v{c}as (Yeti)
" 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
diff --git a/runtime/colors/quiet.vim b/runtime/colors/quiet.vim
index 83ef067f46..687221e38b 100644
--- a/runtime/colors/quiet.vim
+++ b/runtime/colors/quiet.vim
@@ -4,7 +4,7 @@
" Maintainer: Maxence Weynans
" 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
diff --git a/runtime/colors/retrobox.vim b/runtime/colors/retrobox.vim
index fb982c2470..e848d5aabb 100644
--- a/runtime/colors/retrobox.vim
+++ b/runtime/colors/retrobox.vim
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim , ported from gruvbox8 of Lifepillar
" 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
diff --git a/runtime/colors/shine.vim b/runtime/colors/shine.vim
index 58e73781e0..f00e34f5df 100644
--- a/runtime/colors/shine.vim
+++ b/runtime/colors/shine.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer is Yasuhiro Matsumoto
" 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
diff --git a/runtime/colors/slate.vim b/runtime/colors/slate.vim
index b63a5fbab6..f7ce591f9b 100644
--- a/runtime/colors/slate.vim
+++ b/runtime/colors/slate.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ralph Amissah
" 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
diff --git a/runtime/colors/sorbet.vim b/runtime/colors/sorbet.vim
index eca239e6b9..c586baec35 100644
--- a/runtime/colors/sorbet.vim
+++ b/runtime/colors/sorbet.vim
@@ -4,7 +4,7 @@
" Maintainer: Maxence Weynans
" 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
diff --git a/runtime/colors/torte.vim b/runtime/colors/torte.vim
index 516f91687f..7526109027 100644
--- a/runtime/colors/torte.vim
+++ b/runtime/colors/torte.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Thorsten Maerz
" 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
diff --git a/runtime/colors/unokai.vim b/runtime/colors/unokai.vim
new file mode 100644
index 0000000000..8addefcc52
--- /dev/null
+++ b/runtime/colors/unokai.vim
@@ -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 != '[7m' && !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
diff --git a/runtime/colors/wildcharm.vim b/runtime/colors/wildcharm.vim
index 15f3edaf87..085ab52465 100644
--- a/runtime/colors/wildcharm.vim
+++ b/runtime/colors/wildcharm.vim
@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim
" 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
diff --git a/runtime/colors/zaibatsu.vim b/runtime/colors/zaibatsu.vim
index 02997c8177..abb02a0663 100644
--- a/runtime/colors/zaibatsu.vim
+++ b/runtime/colors/zaibatsu.vim
@@ -4,7 +4,7 @@
" Maintainer: Romain Lafourcade
" 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
diff --git a/runtime/colors/zellner.vim b/runtime/colors/zellner.vim
index 7f11fbbe91..5b0a72caa4 100644
--- a/runtime/colors/zellner.vim
+++ b/runtime/colors/zellner.vim
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron
" 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
diff --git a/runtime/doc/Make_mvc.mak b/runtime/doc/Make_mvc.mak
index a6af4baf8a..064aa3ebf3 100644
--- a/runtime/doc/Make_mvc.mak
+++ b/runtime/doc/Make_mvc.mak
@@ -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 :
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 00ea5411d9..82b5680812 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -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
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 40f829f8c9..864e83d48b 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -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 or list
+
+blob2str({blob} [, {options}]) *blob2str()*
+ Return a List of Strings in the current 'encoding' by
+ converting the bytes in {blob} into characters.
+
+ Each byte in the blob is interpreted as the end of a
+ string and a new list item is added. Each byte in the
+ blob is converted into a 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
+
+
*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 or
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 byte is added to the blob after each list item. A
+ newline character in the string is translated into a
+ 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,
diff --git a/runtime/doc/gui_mac.txt b/runtime/doc/gui_mac.txt
index 926da6e14a..619c88a314 100644
--- a/runtime/doc/gui_mac.txt
+++ b/runtime/doc/gui_mac.txt
@@ -290,6 +290,7 @@ KEY VALUE ~
*MMDialogsTrackPwd* open/save dialogs track the Vim pwd [bool]
*MMDisableLaunchAnimation* disable launch animation when opening a new
MacVim window [bool]
+*MMDisableTablineAnimation* disable animation in GUI tabs [bool]
*MMFontPreserveLineSpacing* use the line-spacing as specified by font [bool]
*MMLoginShell* use login shell for launching Vim [bool]
*MMLoginShellArgument* login shell parameter [string]
@@ -309,10 +310,6 @@ KEY VALUE ~
*MMScrollOneDirectionOnly* scroll along one axis only when using trackpad [bool]
*MMSmoothResize* allow smooth resizing of MacVim window [bool]
*MMShareFindPboard* share search text to Find Pasteboard [bool]
-*MMShowAddTabButton* enable "add tab" button on tabline [bool]
-*MMTabMaxWidth* maximum width of a tab [int]
-*MMTabMinWidth* minimum width of a tab [int]
-*MMTabOptimumWidth* default width of a tab [int]
*MMTextInsetBottom* text area offset in pixels [int]
*MMTextInsetLeft* text area offset in pixels [int]
*MMTextInsetRight* text area offset in pixels [int]
@@ -325,6 +322,14 @@ KEY VALUE ~
*MMUpdaterPrereleaseChannel* opt-in to pre-release software update [bool]
*MMShowWhatsNewOnStartup* show "What's New" after updating to new version [bool]
+Tabs ~
+*MMTabColorsMode* use default/auto/colorscheme for tab colors [int]
+*MMWindowUseTabBackgroundColor* use tabs background fill color as window color [bool]
+*MMShowAddTabButton* enable "add tab" button on tabline [bool]
+*MMShowTabScrollButtons* enable tab scroll buttons on tabline [bool]
+*MMTabMinWidth* minimum width of a tab [int]
+*MMTabOptimumWidth* default width of a tab [int]
+
As an example, if you have more than one mouse button and would wish to free
up Ctrl-click so you can bind it to something else, then the appropriate
command is: >
@@ -572,8 +577,11 @@ _cycleWindows: Select next window (similar to )
_cycleWindowsBackwards: Select previous window (similar to )
_removeWindowFromStageManagerSet Remove window from a Stage Manager Set. Same
as the "Remove Window from Set" menu item.
-joinAllStageManagerSets Window will float among all Stage Manager sets
-unjoinAllStageManagerSets Window will only show up in its own set
+joinAllStageManagerSets: Window will float among all Stage Manager sets
+unjoinAllStageManagerSets: Window will only show up in its own set
+scrollToCurrentTab: Scroll to the selected tab in the GUI tab bar
+scrollBackwardOneTab: Scroll backward by one tab in the tab bar
+scrollForwardOneTab: Scroll forward by one tab in the tab bar
==============================================================================
7. Toolbar *macvim-toolbar*
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index 3ba0920626..7b9dd7671c 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -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
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 751addfa68..1158f124a1 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -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
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
deleted file mode 100644
index c22aad3544..0000000000
--- a/runtime/doc/pi_netrw.txt
+++ /dev/null
@@ -1,4406 +0,0 @@
-*pi_netrw.txt* For Vim version 9.1. Last change: 2024 Nov 23
-
- ------------------------------------------------
- NETRW REFERENCE MANUAL by Charles E. Campbell
- ------------------------------------------------
-Original Author: Charles E. Campbell
-
-Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
- The VIM LICENSE applies to the files in this package, including
- netrw.vim, pi_netrw.txt, netrwSettings.vim, and
- syntax/netrw.vim. Like anything else that's free, netrw.vim and its
- associated files are provided *as is* and comes with no warranty of
- any kind, either expressed or implied. No guarantees of
- merchantability. No guarantees of suitability for any purpose. By
- using this plugin, you agree that in no event will the copyright
- holder be liable for any damages resulting from the use of this
- software. Use at your own risk! For bug reports, see |bugs|.
-
- *netrw*
- *dav* *ftp* *netrw-file* *rcp* *scp*
- *davs* *http* *netrw.vim* *rsync* *sftp*
- *fetch* *network*
-
-==============================================================================
-1. Contents *netrw-contents* {{{1
-
-1. Contents..............................................|netrw-contents|
-2. Starting With Netrw...................................|netrw-start|
-3. Netrw Reference.......................................|netrw-ref|
- EXTERNAL APPLICATIONS AND PROTOCOLS.................|netrw-externapp|
- READING.............................................|netrw-read|
- WRITING.............................................|netrw-write|
- SOURCING............................................|netrw-source|
- DIRECTORY LISTING...................................|netrw-dirlist|
- CHANGING THE USERID AND PASSWORD....................|netrw-chgup|
- VARIABLES AND SETTINGS..............................|netrw-variables|
- PATHS...............................................|netrw-path|
-4. Network-Oriented File Transfer........................|netrw-xfer|
- NETRC...............................................|netrw-netrc|
- PASSWORD............................................|netrw-passwd|
-5. Activation............................................|netrw-activate|
-6. Transparent Remote File Editing.......................|netrw-transparent|
-7. Ex Commands...........................................|netrw-ex|
-8. Variables and Options.................................|netrw-variables|
-9. Browsing..............................................|netrw-browse|
- Introduction To Browsing............................|netrw-intro-browse|
- Quick Reference: Maps...............................|netrw-browse-maps|
- Quick Reference: Commands...........................|netrw-browse-cmds|
- Banner Display......................................|netrw-I|
- Bookmarking A Directory.............................|netrw-mb|
- Browsing............................................|netrw-cr|
- Squeezing the Current Tree-Listing Directory........|netrw-s-cr|
- Browsing With A Horizontally Split Window...........|netrw-o|
- Browsing With A New Tab.............................|netrw-t|
- Browsing With A Vertically Split Window.............|netrw-v|
- Change Listing Style (thin wide long tree)..........|netrw-i|
- Changing To A Bookmarked Directory..................|netrw-gb|
- Quick hide/unhide of dot-files......................|netrw-gh|
- Changing local-only File Permission.................|netrw-gp|
- Changing To A Predecessor Directory.................|netrw-u|
- Changing To A Successor Directory...................|netrw-U|
- Customizing Browsing With A Special Handler.........|netrw-x|
- Deleting Bookmarks..................................|netrw-mB|
- Deleting Files Or Directories.......................|netrw-D|
- Directory Exploring Commands........................|netrw-explore|
- Exploring With Stars and Patterns...................|netrw-star|
- Displaying Information About File...................|netrw-qf|
- Edit File Or Directory Hiding List..................|netrw-ctrl-h|
- Editing The Sorting Sequence........................|netrw-S|
- Forcing treatment as a file or directory............|netrw-gd| |netrw-gf|
- Going Up............................................|netrw--|
- Hiding Files Or Directories.........................|netrw-a|
- Improving Browsing..................................|netrw-ssh-hack|
- Listing Bookmarks And History.......................|netrw-qb|
- Making A New Directory..............................|netrw-d|
- Making The Browsing Directory The Current Directory.|netrw-cd|
- Marking Files.......................................|netrw-mf|
- Unmarking Files.....................................|netrw-mF|
- Marking Files By Location List......................|netrw-qL|
- Marking Files By QuickFix List......................|netrw-qF|
- Marking Files By Regular Expression.................|netrw-mr|
- Marked Files: Arbitrary Shell Command...............|netrw-mx|
- Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
- Marked Files: Arbitrary Vim Command.................|netrw-mv|
- Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
- Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
- Marked Files: Compression And Decompression.........|netrw-mz|
- Marked Files: Copying...............................|netrw-mc|
- Marked Files: Diff..................................|netrw-md|
- Marked Files: Editing...............................|netrw-me|
- Marked Files: Grep..................................|netrw-mg|
- Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
- Marked Files: Moving................................|netrw-mm|
- Marked Files: Printing..............................|netrw-mp|
- Marked Files: Sourcing..............................|netrw-ms|
- Marked Files: Setting the Target Directory..........|netrw-mt|
- Marked Files: Tagging...............................|netrw-mT|
- Marked Files: Target Directory Using Bookmarks......|netrw-Tb|
- Marked Files: Target Directory Using History........|netrw-Th|
- Marked Files: Unmarking.............................|netrw-mu|
- Netrw Browser Variables.............................|netrw-browser-var|
- Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
- Netrw Settings Window...............................|netrw-settings-window|
- Obtaining A File....................................|netrw-O|
- Preview Window......................................|netrw-p|
- Previous Window.....................................|netrw-P|
- Refreshing The Listing..............................|netrw-ctrl-l|
- Reversing Sorting Order.............................|netrw-r|
- Renaming Files Or Directories.......................|netrw-R|
- Selecting Sorting Style.............................|netrw-s|
- Setting Editing Window..............................|netrw-C|
-10. Problems and Fixes....................................|netrw-problems|
-11. Debugging Netrw Itself................................|netrw-debug|
-12. History...............................................|netrw-history|
-13. Todo..................................................|netrw-todo|
-14. Credits...............................................|netrw-credits|
-
-==============================================================================
-2. Starting With Netrw *netrw-start* {{{1
-
-Netrw makes reading files, writing files, browsing over a network, and
-local browsing easy! First, make sure that you have plugins enabled, so
-you'll need to have at least the following in your <.vimrc>:
-(or see |netrw-activate|) >
-
- set nocp " 'compatible' is not set
- filetype plugin on " plugins are enabled
-<
-(see |'cp'| and |:filetype-plugin-on|)
-
-Netrw supports "transparent" editing of files on other machines using urls
-(see |netrw-transparent|). As an example of this, let's assume you have an
-account on some other machine; if you can use scp, try: >
-
- vim scp://hostname/path/to/file
-<
-Want to make ssh/scp easier to use? Check out |netrw-ssh-hack|!
-
-So, what if you have ftp, not ssh/scp? That's easy, too; try >
-
- vim ftp://hostname/path/to/file
-<
-Want to make ftp simpler to use? See if your ftp supports a file called
-<.netrc> -- typically it goes in your home directory, has read/write
-permissions for only the user to read (ie. not group, world, other, etc),
-and has lines resembling >
-
- machine HOSTNAME login USERID password "PASSWORD"
- machine HOSTNAME login USERID password "PASSWORD"
- ...
- default login USERID password "PASSWORD"
-<
-Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
-
- let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
-<
-Netrw will substitute the host's machine name for "MACHINE" from the URL it is
-attempting to open, and so one may specify >
- userid
- password
-for each site in a separate file: c:\Users\MyUserName\MachineName.
-
-Now about browsing -- when you just want to look around before editing a
-file. For browsing on your current host, just "edit" a directory: >
-
- vim .
- vim /home/userid/path
-<
-For browsing on a remote host, "edit" a directory (but make sure that
-the directory name is followed by a "/"): >
-
- vim scp://hostname/
- vim ftp://hostname/path/to/dir/
-<
-See |netrw-browse| for more!
-
-There are more protocols supported by netrw than just scp and ftp, too: see the
-next section, |netrw-externapp|, on how to use these external applications with
-netrw and vim.
-
-PREVENTING LOADING *netrw-noload*
-
-If you want to use plugins, but for some reason don't wish to use netrw, then
-you need to avoid loading both the plugin and the autoload portions of netrw.
-You may do so by placing the following two lines in your <.vimrc>: >
-
- :let g:loaded_netrw = 1
- :let g:loaded_netrwPlugin = 1
-<
-
-==============================================================================
-3. Netrw Reference *netrw-ref* {{{1
-
- Netrw supports several protocols in addition to scp and ftp as mentioned
- in |netrw-start|. These include dav, fetch, http,... well, just look
- at the list in |netrw-externapp|. Each protocol is associated with a
- variable which holds the default command supporting that protocol.
-
-EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
-
- Protocol Variable Default Value
- -------- ---------------- -------------
- dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
- dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
- fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
- ftp: *g:netrw_ftp_cmd* = "ftp"
- http: *g:netrw_http_cmd* = "elinks" if elinks is available
- http: g:netrw_http_cmd = "links" elseif links is available
- http: g:netrw_http_cmd = "curl" elseif curl is available
- http: g:netrw_http_cmd = "wget" elseif wget is available
- http: g:netrw_http_cmd = "fetch" elseif fetch is available
- http: *g:netrw_http_put_cmd* = "curl -T"
- rcp: *g:netrw_rcp_cmd* = "rcp"
- rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
- scp: *g:netrw_scp_cmd* = "scp -q"
- sftp: *g:netrw_sftp_cmd* = "sftp"
- file: *g:netrw_file_cmd* = "elinks" or "links"
-
- *g:netrw_http_xcmd* : the option string for http://... protocols are
- specified via this variable and may be independently overridden. By
- default, the option arguments for the http-handling commands are: >
-
- elinks : "-source >"
- links : "-dump >"
- curl : "-L -o"
- wget : "-q -O"
- fetch : "-o"
-<
- For example, if your system has elinks, and you'd rather see the
- page using an attempt at rendering the text, you may wish to have >
- let g:netrw_http_xcmd= "-dump >"
-< in your .vimrc.
-
- g:netrw_http_put_cmd: this option specifies both the executable and
- any needed options. This command does a PUT operation to the url.
-
-
-READING *netrw-read* *netrw-nread* {{{2
-
- Generally, one may just use the URL notation with a normal editing
- command, such as >
-
- :e ftp://[user@]machine/path
-<
- Netrw also provides the Nread command:
-
- :Nread ? give help
- :Nread "machine:path" uses rcp
- :Nread "machine path" uses ftp w/ <.netrc>
- :Nread "machine id password path" uses ftp
- :Nread "dav://machine[:port]/path" uses cadaver
- :Nread "fetch://[user@]machine/path" uses fetch
- :Nread "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
- :Nread "http://[user@]machine/path" uses http uses wget
- :Nread "rcp://[user@]machine/path" uses rcp
- :Nread "rsync://[user@]machine[:port]/path" uses rsync
- :Nread "scp://[user@]machine[[:#]port]/path" uses scp
- :Nread "sftp://[user@]machine/path" uses sftp
-
-WRITING *netrw-write* *netrw-nwrite* {{{2
-
- One may just use the URL notation with a normal file writing
- command, such as >
-
- :w ftp://[user@]machine/path
-<
- Netrw also provides the Nwrite command:
-
- :Nwrite ? give help
- :Nwrite "machine:path" uses rcp
- :Nwrite "machine path" uses ftp w/ <.netrc>
- :Nwrite "machine id password path" uses ftp
- :Nwrite "dav://machine[:port]/path" uses cadaver
- :Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
- :Nwrite "rcp://[user@]machine/path" uses rcp
- :Nwrite "rsync://[user@]machine[:port]/path" uses rsync
- :Nwrite "scp://[user@]machine[[:#]port]/path" uses scp
- :Nwrite "sftp://[user@]machine/path" uses sftp
- http: not supported!
-
-SOURCING *netrw-source* {{{2
-
- One may just use the URL notation with the normal file sourcing
- command, such as >
-
- :so ftp://[user@]machine/path
-<
- Netrw also provides the Nsource command:
-
- :Nsource ? give help
- :Nsource "dav://machine[:port]/path" uses cadaver
- :Nsource "fetch://[user@]machine/path" uses fetch
- :Nsource "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
- :Nsource "http://[user@]machine/path" uses http uses wget
- :Nsource "rcp://[user@]machine/path" uses rcp
- :Nsource "rsync://[user@]machine[:port]/path" uses rsync
- :Nsource "scp://[user@]machine[[:#]port]/path" uses scp
- :Nsource "sftp://[user@]machine/path" uses sftp
-
-DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
-
- One may browse a directory to get a listing by simply attempting to
- edit the directory: >
-
- :e scp://[user]@hostname/path/
- :e ftp://[user]@hostname/path/
-<
- For remote directory listings (ie. those using scp or ftp), that
- trailing "/" is necessary (the slash tells netrw to treat the argument
- as a directory to browse instead of as a file to download).
-
- The Nread command may also be used to accomplish this (again, that
- trailing slash is necessary): >
-
- :Nread [protocol]://[user]@hostname/path/
-<
- *netrw-login* *netrw-password*
-CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
-
- Attempts to use ftp will prompt you for a user-id and a password.
- These will be saved in global variables |g:netrw_uid| and
- |s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
- thereby simplifying use of ftp. However, if you need to use a
- different user id and/or password, you'll want to call |NetUserPass()|
- first. To work around the need to enter passwords, check if your ftp
- supports a <.netrc> file in your home directory. Also see
- |netrw-passwd| (and if you're using ssh/scp hoping to figure out how
- to not need to use passwords for scp, look at |netrw-ssh-hack|).
-
- :NetUserPass [uid [password]] -- prompts as needed
- :call NetUserPass() -- prompts for uid and password
- :call NetUserPass("uid") -- prompts for password
- :call NetUserPass("uid","password") -- sets global uid and password
-
-(Related topics: |ftp| |netrw-userpass| |netrw-start|)
-
-NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
- (Also see:
- |netrw-browser-var| : netrw browser option variables
- |netrw-protocol| : file transfer protocol option variables
- |netrw-settings| : additional file transfer options
- |netrw-browser-options| : these options affect browsing directories
- )
-
-Netrw provides a lot of variables which allow you to customize netrw to your
-preferences. One way to look at them is via the command :NetrwSettings (see
-|netrw-settings|) which will display your current netrw settings. Most such
-settings are described below, in |netrw-browser-options|, and in
-|netrw-externapp|:
-
- *b:netrw_lastfile* last file Network-read/written retained on a
- per-buffer basis (supports plain :Nw )
-
- *g:netrw_bufsettings* the settings that netrw buffers have
- (default) noma nomod nonu nowrap ro nobl
-
- *g:netrw_chgwin* specifies a window number where subsequent file edits
- will take place. (also see |netrw-C|)
- (default) -1
-
- *g:Netrw_funcref* specifies a function (or functions) to be called when
- netrw edits a file. The file is first edited, and
- then the function reference (|Funcref|) is called.
- This variable may also hold a |List| of Funcrefs.
- (default) not defined. (the capital in g:Netrw...
- is required by its holding a function reference)
->
- Example: place in .vimrc; affects all file opening
- fun! MyFuncRef()
- endfun
- let g:Netrw_funcref= function("MyFuncRef")
-
-<
- *g:Netrw_UserMaps* specifies a function or |List| of functions which can
- be used to set up user-specified maps and functionality.
- See |netrw-usermaps|
-
- *g:netrw_ftp* if it doesn't exist, use default ftp
- =0 use default ftp (uid password)
- =1 use alternate ftp method (user uid password)
- If you're having trouble with ftp, try changing the
- value of this variable to see if the alternate ftp
- method works for your setup.
-
- *g:netrw_ftp_options* Chosen by default, these options are supposed to
- turn interactive prompting off and to restrain ftp
- from attempting auto-login upon initial connection.
- However, it appears that not all ftp implementations
- support this (ex. ncftp).
- ="-i -n"
-
- *g:netrw_ftpextracmd* default: doesn't exist
- If this variable exists, then any string it contains
- will be placed into the commands set to your ftp
- client. As an example:
- ="passive"
-
- *g:netrw_ftpmode* ="binary" (default)
- ="ascii"
-
- *g:netrw_ignorenetrc* =0 (default for linux, cygwin)
- =1 If you have a <.netrc> file but it doesn't work and
- you want it ignored, then set this variable as
- shown. (default for Windows + cmd.exe)
-
- *g:netrw_menu* =0 disable netrw's menu
- =1 (default) netrw's menu enabled
-
- *g:netrw_nogx* if this variable exists, then the "gx" map will not
- be available (see |netrw-gx|)
-
- *g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
- *s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
-
- *g:netrw_preview* =0 (default) preview window shown in a horizontally
- split window
- =1 preview window shown in a vertically split window.
- Also affects the "previous window" (see |netrw-P|)
- in the same way.
- The |g:netrw_alto| variable may be used to provide
- additional splitting control:
- g:netrw_preview g:netrw_alto result
- 0 0 |:aboveleft|
- 0 1 |:belowright|
- 1 0 |:topleft|
- 1 1 |:botright|
- To control sizing, see |g:netrw_winsize|
-
- *g:netrw_scpport* = "-P" : option to use to set port for scp
- *g:netrw_sshport* = "-p" : option to use to set port for ssh
-
- *g:netrw_sepchr* =\0xff
- =\0x01 for enc == euc-jp (and perhaps it should be for
- others, too, please let me know)
- Separates priority codes from filenames internally.
- See |netrw-p12|.
-
- *g:netrw_silent* =0 : transfers done normally
- =1 : transfers done silently
-
- *g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
- Move the mouse and pause to remove the popup window.
- (default value if popup windows are available)
- =1 : messages from netrw will use a separate one
- line window. This window provides reliable
- delivery of messages.
- (default value if popup windows are not available)
- =0 : messages from netrw will use echoerr ;
- messages don't always seem to show up this
- way, but one doesn't have to quit the window.
-
- *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
- permits network browsing to use ls with time and
- size sorting (default if windows)
- =0 assume Windows' scp accepts windows-style paths
- Network browsing uses dir instead of ls
- This option is ignored if you're using unix
-
- *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
- =1 use WinNT's rcp in binary mode (default)
-
-PATHS *netrw-path* {{{2
-
-Paths to files are generally user-directory relative for most protocols.
-It is possible that some protocol will make paths relative to some
-associated directory, however.
->
- example: vim scp://user@host/somefile
- example: vim scp://user@host/subdir1/subdir2/somefile
-<
-where "somefile" is in the "user"'s home directory. If you wish to get a
-file using root-relative paths, use the full path:
->
- example: vim scp://user@host//somefile
- example: vim scp://user@host//subdir1/subdir2/somefile
-<
-
-==============================================================================
-4. Network-Oriented File Transfer *netrw-xfer* {{{1
-
-Network-oriented file transfer under Vim is implemented by a vim script
-() using plugin techniques. It currently supports both reading and
-writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
-dav/cadaver, rsync, or sftp.
-
-http is currently supported read-only via use of wget or fetch.
-
- is a standard plugin which acts as glue between Vim and the
-various file transfer programs. It uses autocommand events (BufReadCmd,
-FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
-
- ex. vim ftp://hostname/path/to/file
-<
-The characters preceding the colon specify the protocol to use; in the
-example, it's ftp. The script then formulates a command or a
-series of commands (typically ftp) which it issues to an external program
-(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
-from/written to a temporary file (under Unix/Linux, /tmp/...) which the
- script will clean up.
-
-Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
-ftp is not a secure protocol. User names and passwords are transmitted "in
-the clear" over the internet; any snooper tool can pick these up; this is not
-a netrw thing, this is a ftp thing. If you're concerned about this, please
-try to use scp or sftp instead.
-
-Netrw re-uses the user id and password during the same vim session and so long
-as the remote hostname remains the same.
-
-Jan seems to be a bit confused about how netrw handles ftp; normally multiple
-commands are performed in a "ftp session", and he seems to feel that the
-uid/password should only be retained over one ftp session. However, netrw
-does every ftp operation in a separate "ftp session"; so remembering the
-uid/password for just one "ftp session" would be the same as not remembering
-the uid/password at all. IMHO this would rapidly grow tiresome as one
-browsed remote directories, for example.
-
-On the other hand, thanks go to Jan M. for pointing out the many
-vulnerabilities that netrw (and vim itself) had had in handling "crafted"
-filenames. The |shellescape()| and |fnameescape()| functions were written in
-response by Bram Moolenaar to handle these sort of problems, and netrw has
-been modified to use them. Still, my advice is, if the "filename" looks like
-a vim command that you aren't comfortable with having executed, don't open it.
-
- *netrw-putty* *netrw-pscp* *netrw-psftp*
-One may modify any protocol's implementing external application by setting a
-variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
-"scp -q"). As an example, consider using PuTTY: >
-
- let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
- let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
-<
-(note: it has been reported that windows 7 with putty v0.6's "-batch" option
- doesn't work, so its best to leave it off for that system)
-
-See |netrw-p8| for more about putty, pscp, psftp, etc.
-
-Ftp, an old protocol, seems to be blessed by numerous implementations.
-Unfortunately, some implementations are noisy (ie., add junk to the end of the
-file). Thus, concerned users may decide to write a NetReadFixup() function
-that will clean up after reading with their ftp. Some Unix systems (ie.,
-FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
-not noisy and more convenient, actually, for to use.
-Consequently, if "fetch" is available (ie. executable), it may be preferable
-to use it for ftp://... based transfers.
-
-For rcp, scp, sftp, and http, one may use network-oriented file transfers
-transparently; ie.
->
- vim rcp://[user@]machine/path
- vim scp://[user@]machine/path
-<
-If your ftp supports <.netrc>, then it too can be transparently used
-if the needed triad of machine name, user id, and password are present in
-that file. Your ftp must be able to use the <.netrc> file on its own, however.
->
- vim ftp://[user@]machine[[:#]portnumber]/path
-<
-Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
-an option, -s:filename (filename can and probably should be a full path)
-which contains ftp commands which will be automatically run whenever ftp
-starts. You may use this feature to enter a user and password for one site: >
- userid
- password
-< *netrw-windows-netrc* *netrw-windows-s*
-If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines
-only) netrw will substitute the current machine name requested for ftp
-connections for MACHINE. Hence one can have multiple machine.ftp files
-containing login and password for ftp. Example: >
-
- let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
- vim ftp://myhost.somewhere.net/
-
-will use a file >
-
- C:\Users\Myself\myhost.ftp
-<
-Often, ftp will need to query the user for the userid and password.
-The latter will be done "silently"; ie. asterisks will show up instead of
-the actually-typed-in password. Netrw will retain the userid and password
-for subsequent read/writes from the most recent transfer so subsequent
-transfers (read/write) to or from that machine will take place without
-additional prompting.
-
- *netrw-urls*
- +=================================+============================+============+
- | Reading | Writing | Uses |
- +=================================+============================+============+
- | DAV: | | |
- | dav://host/path | | cadaver |
- | :Nread dav://host/path | :Nwrite dav://host/path | cadaver |
- +---------------------------------+----------------------------+------------+
- | DAV + SSL: | | |
- | davs://host/path | | cadaver |
- | :Nread davs://host/path | :Nwrite davs://host/path | cadaver |
- +---------------------------------+----------------------------+------------+
- | FETCH: | | |
- | fetch://[user@]host/path | | |
- | fetch://[user@]host:http/path | Not Available | fetch |
- | :Nread fetch://[user@]host/path| | |
- +---------------------------------+----------------------------+------------+
- | FILE: | | |
- | file:///* | file:///* | |
- | file://localhost/* | file://localhost/* | |
- +---------------------------------+----------------------------+------------+
- | FTP: (*3) | (*3) | |
- | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) |
- | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc |
- | :Nread host path | :Nwrite host path | ftp+.netrc |
- | :Nread host uid pass path | :Nwrite host uid pass path | ftp |
- +---------------------------------+----------------------------+------------+
- | HTTP: wget is executable: (*4) | | |
- | http://[user@]host/path | Not Available | wget |
- +---------------------------------+----------------------------+------------+
- | HTTP: fetch is executable (*4) | | |
- | http://[user@]host/path | Not Available | fetch |
- +---------------------------------+----------------------------+------------+
- | RCP: | | |
- | rcp://[user@]host/path | rcp://[user@]host/path | rcp |
- +---------------------------------+----------------------------+------------+
- | RSYNC: | | |
- | rsync://[user@]host/path | rsync://[user@]host/path | rsync |
- | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync |
- | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp |
- +---------------------------------+----------------------------+------------+
- | SCP: | | |
- | scp://[user@]host/path | scp://[user@]host/path | scp |
- | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) |
- +---------------------------------+----------------------------+------------+
- | SFTP: | | |
- | sftp://[user@]host/path | sftp://[user@]host/path | sftp |
- | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) |
- +=================================+============================+============+
-
- (*1) For an absolute path use scp://machine//path.
-
- (*2) if <.netrc> is present, it is assumed that it will
- work with your ftp client. Otherwise the script will
- prompt for user-id and password.
-
- (*3) for ftp, "machine" may be machine#port or machine:port
- if a different port is needed than the standard ftp port
-
- (*4) for http:..., if wget is available it will be used. Otherwise,
- if fetch is available it will be used.
-
-Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
-
-
-NETRC *netrw-netrc*
-
-The <.netrc> file, typically located in your home directory, contains lines
-therein which map a hostname (machine name) to the user id and password you
-prefer to use with it.
-
-The typical syntax for lines in a <.netrc> file is given as shown below.
-Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
->
- machine {full machine name} login {user-id} password "{password}"
- default login {user-id} password "{password}"
-
-Your ftp client must handle the use of <.netrc> on its own, but if the
-<.netrc> file exists, an ftp transfer will not ask for the user-id or
-password.
-
- Note:
- Since this file contains passwords, make very sure nobody else can
- read this file! Most programs will refuse to use a .netrc that is
- readable for others. Don't forget that the system administrator can
- still read the file! Ie. for Linux/Unix: chmod 600 .netrc
-
-Even though Windows' ftp clients typically do not support .netrc, netrw has
-a work-around: see |netrw-windows-s|.
-
-
-PASSWORD *netrw-passwd*
-
-The script attempts to get passwords for ftp invisibly using |inputsecret()|,
-a built-in Vim function. See |netrw-userpass| for how to change the password
-after one has set it.
-
-Unfortunately there doesn't appear to be a way for netrw to feed a password to
-scp. Thus every transfer via scp will require re-entry of the password.
-However, |netrw-ssh-hack| can help with this problem.
-
-
-==============================================================================
-5. Activation *netrw-activate* {{{1
-
-Network-oriented file transfers are available by default whenever Vim's
-|'nocompatible'| mode is enabled. Netrw's script files reside in your
-system's plugin, autoload, and syntax directories; just the
-plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
-vim. The main script in autoload/netrw.vim is only loaded when you actually
-use netrw. I suggest that, at a minimum, you have at least the following in
-your <.vimrc> customization file: >
-
- set nocp
- if version >= 600
- filetype plugin indent on
- endif
-<
-By also including the following lines in your .vimrc, one may have netrw
-immediately activate when using [g]vim without any filenames, showing the
-current directory: >
-
- " Augroup VimStartup:
- augroup VimStartup
- au!
- au VimEnter * if expand("%") == "" | e . | endif
- augroup END
-<
-
-==============================================================================
-6. Transparent Remote File Editing *netrw-transparent* {{{1
-
-Transparent file transfers occur whenever a regular file read or write
-(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
-events) is made. Thus one may read, write, or source files across networks
-just as easily as if they were local files! >
-
- vim ftp://[user@]machine/path
- ...
- :wq
-
-See |netrw-activate| for more on how to encourage your vim to use plugins
-such as netrw.
-
-For password-free use of scp:, see |netrw-ssh-hack|.
-
-
-==============================================================================
-7. Ex Commands *netrw-ex* {{{1
-
-The usual read/write commands are supported. There are also a few
-additional commands available. Often you won't need to use Nwrite or
-Nread as shown in |netrw-transparent| (ie. simply use >
- :e URL
- :r URL
- :w URL
-instead, as appropriate) -- see |netrw-urls|. In the explanations
-below, a {netfile} is a URL to a remote file.
-
- *:Nwrite* *:Nw*
-:[range]Nw[rite] Write the specified lines to the current
- file as specified in b:netrw_lastfile.
- (related: |netrw-nwrite|)
-
-:[range]Nw[rite] {netfile} [{netfile}]...
- Write the specified lines to the {netfile}.
-
- *:Nread* *:Nr*
-:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
- into the current buffer. (related: |netrw-nread|)
-
-:Nr[ead] {netfile} {netfile}...
- Read the {netfile} after the current line.
-
- *:Nsource* *:Ns*
-:Ns[ource] {netfile}
- Source the {netfile}.
- To start up vim using a remote .vimrc, one may use
- the following (all on one line) (tnx to Antoine Mechelynck) >
- vim -u NORC -N
- --cmd "runtime plugin/netrwPlugin.vim"
- --cmd "source scp://HOSTNAME/.vimrc"
-< (related: |netrw-source|)
-
-:call NetUserPass() *NetUserPass()*
- If g:netrw_uid and s:netrw_passwd don't exist,
- this function will query the user for them.
- (related: |netrw-userpass|)
-
-:call NetUserPass("userid")
- This call will set the g:netrw_uid and, if
- the password doesn't exist, will query the user for it.
- (related: |netrw-userpass|)
-
-:call NetUserPass("userid","passwd")
- This call will set both the g:netrw_uid and s:netrw_passwd.
- The user-id and password are used by ftp transfers. One may
- effectively remove the user-id and password by using empty
- strings (ie. "").
- (related: |netrw-userpass|)
-
-:NetrwSettings This command is described in |netrw-settings| -- used to
- display netrw settings and change netrw behavior.
-
-
-==============================================================================
-8. Variables and Options *netrw-var* *netrw-settings* {{{1
-
-(also see: |netrw-options| |netrw-variables| |netrw-protocol|
- |netrw-browser-settings| |netrw-browser-options| )
-
-The script provides several variables which act as options to
-affect 's file transfer behavior. These variables typically may be
-set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
- *netrw-options*
->
- -------------
- Netrw Options
- -------------
- Option Meaning
- -------------- -----------------------------------------------
-<
- b:netrw_col Holds current cursor position (during NetWrite)
- g:netrw_cygwin =1 assume scp under windows is from cygwin
- (default/windows)
- =0 assume scp under windows accepts windows
- style paths (default/else)
- g:netrw_ftp =0 use default ftp (uid password)
- g:netrw_ftpmode ="binary" (default)
- ="ascii" (your choice)
- g:netrw_ignorenetrc =1 (default)
- if you have a <.netrc> file but you don't
- want it used, then set this variable. Its
- mere existence is enough to cause <.netrc>
- to be ignored.
- b:netrw_lastfile Holds latest method/machine/path.
- b:netrw_line Holds current line number (during NetWrite)
- g:netrw_silent =0 transfers done normally
- =1 transfers done silently
- g:netrw_uid Holds current user-id for ftp.
- g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
- =1 use WinNT/2K/XP's rcp, binary mode
- -----------------------------------------------------------------------
-<
- *netrw-internal-variables*
-The script will also make use of the following variables internally, albeit
-temporarily.
->
- -------------------
- Temporary Variables
- -------------------
- Variable Meaning
- -------- ------------------------------------
-<
- b:netrw_method Index indicating rcp/ftp+.netrc/ftp
- w:netrw_method (same as b:netrw_method)
- g:netrw_machine Holds machine name parsed from input
- b:netrw_fname Holds filename being accessed >
- ------------------------------------------------------------
-<
- *netrw-protocol*
-
-Netrw supports a number of protocols. These protocols are invoked using the
-variables listed below, and may be modified by the user.
->
- ------------------------
- Protocol Control Options
- ------------------------
- Option Type Setting Meaning
- --------- -------- -------------- ---------------------------
-< netrw_ftp variable =doesn't exist userid set by "user userid"
- =0 userid set by "user userid"
- =1 userid set by "userid"
- NetReadFixup function =doesn't exist no change
- =exists Allows user to have files
- read via ftp automatically
- transformed however they wish
- by NetReadFixup()
- g:netrw_dav_cmd var ="cadaver" if cadaver is executable
- g:netrw_dav_cmd var ="curl -o" elseif curl is executable
- g:netrw_fetch_cmd var ="fetch -o" if fetch is available
- g:netrw_ftp_cmd var ="ftp"
- g:netrw_http_cmd var ="fetch -o" if fetch is available
- g:netrw_http_cmd var ="wget -O" else if wget is available
- g:netrw_http_put_cmd var ="curl -T"
- |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
- g:netrw_rcp_cmd var ="rcp"
- g:netrw_rsync_cmd var ="rsync"
- *g:netrw_rsync_sep* var ="/" used to separate the hostname
- from the file spec
- g:netrw_scp_cmd var ="scp -q"
- g:netrw_sftp_cmd var ="sftp" >
- -------------------------------------------------------------------------
-<
- *netrw-ftp*
-
-The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
-specify the external program to use handle the ftp protocol. They may
-include command line options (such as -p for passive mode). Example: >
-
- let g:netrw_ftp_cmd= "ftp -p"
-<
-Browsing is supported by using the |g:netrw_list_cmd|; the substring
-"HOSTNAME" will be changed via substitution with whatever the current request
-is for a hostname.
-
-Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
-that give trouble . In order to best understand how to use these options if
-ftp is giving you troubles, a bit of discussion is provided on how netrw does
-ftp reads.
-
-For ftp, netrw typically builds up lines of one of the following formats in a
-temporary file:
->
- IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
- ---------------------------------- ------------------------------
-<
- open machine [port] open machine [port]
- user userid password userid password
- [g:netrw_ftpmode] password
- [g:netrw_ftpextracmd] [g:netrw_ftpmode]
- get filename tempfile [g:netrw_extracmd]
- get filename tempfile >
- ---------------------------------------------------------------------
-<
-The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
-
-Netrw then executes the lines above by use of a filter:
->
- :%! {g:netrw_ftp_cmd} -i [-n]
-<
-where
- g:netrw_ftp_cmd is usually "ftp",
- -i tells ftp not to be interactive
- -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
-
-If <.netrc> exists it will be used to avoid having to query the user for
-userid and password. The transferred file is put into a temporary file.
-The temporary file is then read into the main editing session window that
-requested it and the temporary file deleted.
-
-If your ftp doesn't accept the "user" command and immediately just demands a
-userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
-
- *netrw-cadaver*
-To handle the SSL certificate dialog for untrusted servers, one may pull
-down the certificate and place it into /usr/ssl/cert.pem. This operation
-renders the server treatment as "trusted".
-
- *netrw-fixup* *netreadfixup*
-If your ftp for whatever reason generates unwanted lines (such as AUTH
-messages) you may write a NetReadFixup() function:
->
- function! NetReadFixup(method,line1,line2)
- " a:line1: first new line in current file
- " a:line2: last new line in current file
- if a:method == 1 "rcp
- elseif a:method == 2 "ftp + <.netrc>
- elseif a:method == 3 "ftp + machine,uid,password,filename
- elseif a:method == 4 "scp
- elseif a:method == 5 "http/wget
- elseif a:method == 6 "dav/cadaver
- elseif a:method == 7 "rsync
- elseif a:method == 8 "fetch
- elseif a:method == 9 "sftp
- else " complain
- endif
- endfunction
->
-The NetReadFixup() function will be called if it exists and thus allows you to
-customize your reading process.
-
-(Related topics: |ftp| |netrw-userpass| |netrw-start|)
-
-==============================================================================
-9. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
- *netrw-browser* *netrw-dir* *netrw-list*
-
-INTRODUCTION TO BROWSING *netrw-intro-browse* {{{2
- (Quick References: |netrw-quickmaps| |netrw-quickcoms|)
-
-Netrw supports the browsing of directories on your local system and on remote
-hosts; browsing includes listing files and directories, entering directories,
-editing files therein, deleting files/directories, making new directories,
-moving (renaming) files and directories, copying files and directories, etc.
-One may mark files and execute any system command on them! The Netrw browser
-generally implements the previous explorer's maps and commands for remote
-directories, although details (such as pertinent global variable names)
-necessarily differ. To browse a directory, simply "edit" it! >
-
- vim /your/directory/
- vim .
- vim c:\your\directory\
-<
-(Related topics: |netrw-cr| |netrw-o| |netrw-p| |netrw-P| |netrw-t|
- |netrw-mf| |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )
-
-The Netrw remote file and directory browser handles two protocols: ssh and
-ftp. The protocol in the url, if it is ftp, will cause netrw also to use ftp
-in its remote browsing. Specifying any other protocol will cause it to be
-used for file transfers; but the ssh protocol will be used to do remote
-browsing.
-
-To use Netrw's remote directory browser, simply attempt to read a "file" with
-a trailing slash and it will be interpreted as a request to list a directory:
->
- vim [protocol]://[user@]hostname/path/
-<
-where [protocol] is typically scp or ftp. As an example, try: >
-
- vim ftp://ftp.home.vim.org/pub/vim/
-<
-For local directories, the trailing slash is not required. Again, because it's
-easy to miss: to browse remote directories, the URL must terminate with a
-slash!
-
-If you'd like to avoid entering the password repeatedly for remote directory
-listings with ssh or scp, see |netrw-ssh-hack|. To avoid password entry with
-ftp, see |netrw-netrc| (if your ftp supports it).
-
-There are several things you can do to affect the browser's display of files:
-
- * To change the listing style, press the "i" key (|netrw-i|).
- Currently there are four styles: thin, long, wide, and tree.
- To make that change "permanent", see |g:netrw_liststyle|.
-
- * To hide files (don't want to see those xyz~ files anymore?) see
- |netrw-ctrl-h|.
-
- * Press s to sort files by name, time, or size.
-
-See |netrw-browse-cmds| for all the things you can do with netrw!
-
- *netrw-getftype* *netrw-filigree* *netrw-ftype*
-The |getftype()| function is used to append a bit of filigree to indicate
-filetype to locally listed files:
-
- directory : /
- executable : *
- fifo : |
- links : @
- sockets : =
-
-The filigree also affects the |g:netrw_sort_sequence|.
-
-
-QUICK HELP *netrw-quickhelp* {{{2
- (Use ctrl-] to select a topic)~
- Intro to Browsing...............................|netrw-intro-browse|
- Quick Reference: Maps.........................|netrw-quickmap|
- Quick Reference: Commands.....................|netrw-browse-cmds|
- Hiding
- Edit hiding list..............................|netrw-ctrl-h|
- Hiding Files or Directories...................|netrw-a|
- Hiding/Unhiding by suffix.....................|netrw-mh|
- Hiding dot-files.............................|netrw-gh|
- Listing Style
- Select listing style (thin/long/wide/tree)....|netrw-i|
- Associated setting variable...................|g:netrw_liststyle|
- Shell command used to perform listing.........|g:netrw_list_cmd|
- Quick file info...............................|netrw-qf|
- Sorted by
- Select sorting style (name/time/size).........|netrw-s|
- Editing the sorting sequence..................|netrw-S|
- Sorting options...............................|g:netrw_sort_options|
- Associated setting variable...................|g:netrw_sort_sequence|
- Reverse sorting order.........................|netrw-r|
-
-
- *netrw-quickmap* *netrw-quickmaps*
-QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
->
- --- ----------------- ----
- Map Quick Explanation Link
- --- ----------------- ----
-< Causes Netrw to issue help
- Netrw will enter the directory or read the file |netrw-cr|
- Netrw will attempt to remove the file/directory |netrw-del|
- Edit file hiding list |netrw-ctrl-h|
- Causes Netrw to refresh the directory listing |netrw-ctrl-l|
- Browse using a gvim server |netrw-ctrl-r|
- Shrink/expand a netrw/explore window |netrw-c-tab|
- - Makes Netrw go up one directory |netrw--|
- a Cycles between normal display, |netrw-a|
- hiding (suppress display of files matching g:netrw_list_hide)
- and showing (display only files which match g:netrw_list_hide)
- cd Make browsing directory the current directory |netrw-cd|
- C Setting the editing window |netrw-C|
- d Make a directory |netrw-d|
- D Attempt to remove the file(s)/directory(ies) |netrw-D|
- gb Go to previous bookmarked directory |netrw-gb|
- gd Force treatment as directory |netrw-gd|
- gf Force treatment as file |netrw-gf|
- gh Quick hide/unhide of dot-files |netrw-gh|
- gn Make top of tree the directory below the cursor |netrw-gn|
- gp Change local-only file permissions |netrw-gp|
- i Cycle between thin, long, wide, and tree listings |netrw-i|
- I Toggle the displaying of the banner |netrw-I|
- mb Bookmark current directory |netrw-mb|
- mc Copy marked files to marked-file target directory |netrw-mc|
- md Apply diff to marked files (up to 3) |netrw-md|
- me Place marked files on arg list and edit them |netrw-me|
- mf Mark a file |netrw-mf|
- mF Unmark files |netrw-mF|
- mg Apply vimgrep to marked files |netrw-mg|
- mh Toggle marked file suffices' presence on hiding list |netrw-mh|
- mm Move marked files to marked-file target directory |netrw-mm|
- mp Print marked files |netrw-mp|
- mr Mark files using a shell-style |regexp| |netrw-mr|
- mt Current browsing directory becomes markfile target |netrw-mt|
- mT Apply ctags to marked files |netrw-mT|
- mu Unmark all marked files |netrw-mu|
- mv Apply arbitrary vim command to marked files |netrw-mv|
- mx Apply arbitrary shell command to marked files |netrw-mx|
- mX Apply arbitrary shell command to marked files en bloc|netrw-mX|
- mz Compress/decompress marked files |netrw-mz|
- o Enter the file/directory under the cursor in a new |netrw-o|
- browser window. A horizontal split is used.
- O Obtain a file specified by cursor |netrw-O|
- p Preview the file |netrw-p|
- P Browse in the previously used window |netrw-P|
- qb List bookmarked directories and history |netrw-qb|
- qf Display information on file |netrw-qf|
- qF Mark files using a quickfix list |netrw-qF|
- qL Mark files using a |location-list| |netrw-qL|
- r Reverse sorting order |netrw-r|
- R Rename the designated file(s)/directory(ies) |netrw-R|
- s Select sorting style: by name, time, or file size |netrw-s|
- S Specify suffix priority for name-sorting |netrw-S|
- t Enter the file/directory under the cursor in a new tab|netrw-t|
- u Change to recently-visited directory |netrw-u|
- U Change to subsequently-visited directory |netrw-U|
- v Enter the file/directory under the cursor in a new |netrw-v|
- browser window. A vertical split is used.
- x View file with an associated program |netrw-x|
- X Execute filename under cursor via |system()| |netrw-X|
-
- % Open a new file in netrw's current directory |netrw-%|
-
- *netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
- (gvim only) selects word under mouse as if a
- had been pressed (ie. edit file, change directory)
- (gvim only) same as P selecting word under mouse;
- see |netrw-P|
- (gvim only) delete file/directory using word under
- mouse
- <2-leftmouse> (gvim only) when:
- * in a netrw-selected file, AND
- * |g:netrw_retmap| == 1 AND
- * the user doesn't already have a <2-leftmouse>
- mapping defined before netrw is autoloaded,
- then a double clicked leftmouse button will return
- to the netrw browser window. See |g:netrw_retmap|.
- (gvim only) like mf, will mark files. Dragging
- the shifted leftmouse will mark multiple files.
- (see |netrw-mf|)
-
- (to disable mouse buttons while browsing: |g:netrw_mousemaps|)
-
- *netrw-quickcom* *netrw-quickcoms*
-QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
- :NetrwClean[!]............................................|netrw-clean|
- :NetrwSettings............................................|netrw-settings|
- :Ntree....................................................|netrw-ntree|
- :Explore[!] [dir] Explore directory of current file......|netrw-explore|
- :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
- :Lexplore[!] [dir] Left Explorer Toggle...................|netrw-explore|
- :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
- :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
- :Rexplore Return to Explorer.....................|netrw-explore|
- :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
- :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
- :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
-
-
-BANNER DISPLAY *netrw-I*
-
-One may toggle the displaying of the banner by pressing "I".
-
-Also See: |g:netrw_banner|
-
-
-BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
-
-One may easily "bookmark" the currently browsed directory by using >
-
- mb
-<
- *.netrwbook*
-Bookmarks are retained in between sessions of vim in a file called .netrwbook
-as a |List|, which is typically stored in the first directory on the user's
-'runtimepath'; entries are kept in sorted order.
-
-If there are marked files and/or directories, mb will add them to the bookmark
-list.
-
- *netrw-:NetrwMB*
-Additionally, one may use :NetrwMB to bookmark files or directories. >
-
- :NetrwMB[!] [files/directories]
-
-< No bang: enters files/directories into Netrw's bookmark system
-
- No argument and in netrw buffer:
- if there are marked files : bookmark marked files
- otherwise : bookmark file/directory under cursor
- No argument and not in netrw buffer: bookmarks current open file
- Has arguments : |glob()|s each arg and bookmarks them
-
- With bang: deletes files/directories from Netrw's bookmark system
-
-The :NetrwMB command is available outside of netrw buffers (once netrw has been
-invoked in the session).
-
-The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
-default, its stored on the first directory on the user's |'runtimepath'|.
-
-Related Topics:
- |netrw-gb| how to return (go) to a bookmark
- |netrw-mB| how to delete bookmarks
- |netrw-qb| how to list bookmarks
- |g:netrw_home| controls where .netrwbook is kept
-
-
-BROWSING *netrw-enter* *netrw-cr* {{{2
-
-Browsing is simple: move the cursor onto a file or directory of interest.
-Hitting the (the return key) will select the file or directory.
-Directories will themselves be listed, and files will be opened using the
-protocol given in the original read request.
-
- CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes that
- two or more spaces delimit filenames and directory names for the long and
- wide listing formats. Thus, if your filename or directory name has two or
- more sequential spaces embedded in it, or any trailing spaces, then you'll
- need to use the "thin" format to select it.
-
-The |g:netrw_browse_split| option, which is zero by default, may be used to
-cause the opening of files to be done in a new window or tab instead of the
-default. When the option is one or two, the splitting will be taken
-horizontally or vertically, respectively. When the option is set to three, a
- will cause the file to appear in a new tab.
-
-
-When using the gui (gvim), one may select a file by pressing the
-button. In addition, if
-
- * |g:netrw_retmap| == 1 AND (its default value is 0)
- * in a netrw-selected file, AND
- * the user doesn't already have a <2-leftmouse> mapping defined before
- netrw is loaded
-
-then a doubly-clicked leftmouse button will return to the netrw browser
-window.
-
-Netrw attempts to speed up browsing, especially for remote browsing where one
-may have to enter passwords, by keeping and re-using previously obtained
-directory listing buffers. The |g:netrw_fastbrowse| variable is used to
-control this behavior; one may have slow browsing (no buffer re-use), medium
-speed browsing (re-use directory buffer listings only for remote directories),
-and fast browsing (re-use directory buffer listings as often as possible).
-The price for such re-use is that when changes are made (such as new files
-are introduced into a directory), the listing may become out-of-date. One may
-always refresh directory listing buffers by pressing ctrl-L (see
-|netrw-ctrl-l|).
-
- *netrw-s-cr*
-Squeezing the Current Tree-Listing Directory~
-
-When the tree listing style is enabled (see |netrw-i|) and one is using
-gvim, then the mapping may be used to squeeze (close) the
-directory currently containing the cursor.
-
-Otherwise, one may remap a key combination of one's own choice to get
-this effect: >
-
- nmap YOURKEYCOMBO NetrwTreeSqueeze
-<
-Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
-for netrw buffers only.
-
-Related topics:
- |netrw-ctrl-r| |netrw-o| |netrw-p|
- |netrw-P| |netrw-t| |netrw-v|
-Associated setting variables:
- |g:netrw_browse_split| |g:netrw_fastbrowse|
- |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
- |g:netrw_ftp_timelist_cmd| |g:netrw_ssh_browse_reject|
- |g:netrw_ssh_cmd| |g:netrw_use_noswf|
-
-
-BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* {{{2
-
-Normally one enters a file or directory using the . However, the "o" map
-allows one to open a new window to hold the new directory listing or file. A
-horizontal split is used. (for vertical splitting, see |netrw-v|)
-
-Normally, the o key splits the window horizontally with the new window and
-cursor at the top.
-
-Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
-
-Related topics:
- |netrw-ctrl-r| |netrw-o| |netrw-p|
- |netrw-P| |netrw-t| |netrw-v|
-Associated setting variables:
- |g:netrw_alto| control above/below splitting
- |g:netrw_winsize| control initial sizing
-
-BROWSING WITH A NEW TAB *netrw-t* {{{2
-
-Normally one enters a file or directory using the . The "t" map
-allows one to open a new window holding the new directory listing or file in
-a new tab.
-
-If you'd like to have the new listing in a background tab, use |gT|.
-
-Related topics:
- |netrw-ctrl-r| |netrw-o| |netrw-p|
- |netrw-P| |netrw-t| |netrw-v|
-Associated setting variables:
- |g:netrw_winsize| control initial sizing
-
-BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
-
-Normally one enters a file or directory using the . However, the "v" map
-allows one to open a new window to hold the new directory listing or file. A
-vertical split is used. (for horizontal splitting, see |netrw-o|)
-
-Normally, the v key splits the window vertically with the new window and
-cursor at the left.
-
-There is only one tree listing buffer; using "v" on a displayed subdirectory
-will split the screen, but the same buffer will be shown twice.
-
-Related topics:
- |netrw-ctrl-r| |netrw-o| |netrw-p|
- |netrw-P| |netrw-t| |netrw-v|
-Associated setting variables:
- |g:netrw_altv| control right/left splitting
- |g:netrw_winsize| control initial sizing
-
-
-BROWSING USING A GVIM SERVER *netrw-ctrl-r* {{{2
-
-One may keep a browsing gvim separate from the gvim being used to edit.
-Use the map on a file (not a directory) in the netrw browser, and it
-will use a gvim server (see |g:netrw_servername|). Subsequent use of
-(see |netrw-cr|) will re-use that server for editing files.
-
-Related topics:
- |netrw-ctrl-r| |netrw-o| |netrw-p|
- |netrw-P| |netrw-t| |netrw-v|
-Associated setting variables:
- |g:netrw_servername| : sets name of server
- |g:netrw_browse_split| : controls how will open files
-
-
-CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
-
-The "i" map cycles between the thin, long, wide, and tree listing formats.
-
-The thin listing format gives just the files' and directories' names.
-
-The long listing is either based on the "ls" command via ssh for remote
-directories or displays the filename, file size (in bytes), and the time and
-date of last modification for local directories. With the long listing
-format, netrw is not able to recognize filenames which have trailing spaces.
-Use the thin listing format for such files.
-
-The wide listing format uses two or more contiguous spaces to delineate
-filenames; when using that format, netrw won't be able to recognize or use
-filenames which have two or more contiguous spaces embedded in the name or any
-trailing spaces. The thin listing format will, however, work with such files.
-The wide listing format is the most compact.
-
-The tree listing format has a top directory followed by files and directories
-preceded by one or more "|"s, which indicate the directory depth. One may
-open and close directories by pressing the key while atop the directory
-name.
-
-One may make a preferred listing style your default; see |g:netrw_liststyle|.
-As an example, by putting the following line in your .vimrc, >
- let g:netrw_liststyle= 3
-the tree style will become your default listing style.
-
-One typical way to use the netrw tree display is to: >
-
- vim .
- (use i until a tree display shows)
- navigate to a file
- v (edit as desired in vertically split window)
- ctrl-w h (to return to the netrw listing)
- P (edit newly selected file in the previous window)
- ctrl-w h (to return to the netrw listing)
- P (edit newly selected file in the previous window)
- ...etc...
-<
-Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
- |g:netrw_timefmt| |g:netrw_list_cmd|
-
-CHANGE FILE PERMISSION *netrw-gp* {{{2
-
-"gp" will ask you for a new permission for the file named under the cursor.
-Currently, this only works for local files.
-
-Associated setting variables: |g:netrw_chgperm|
-
-
-CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
-
-To change directory back to a bookmarked directory, use
-
- {cnt}gb
-
-Any count may be used to reference any of the bookmarks.
-Note that |netrw-qb| shows both bookmarks and history; to go
-to a location stored in the history see |netrw-u| and |netrw-U|.
-
-Related Topics:
- |netrw-mB| how to delete bookmarks
- |netrw-mb| how to make a bookmark
- |netrw-qb| how to list bookmarks
-
-
-CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
-
-Every time you change to a new directory (new for the current session), netrw
-will save the directory in a recently-visited directory history list (unless
-|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
-map, one can change to an earlier directory (predecessor). To do the
-opposite, see |netrw-U|.
-
-The "u" map also accepts counts to go back in the history several slots. For
-your convenience, qb (see |netrw-qb|) lists the history number which may be
-used in that count.
-
- *.netrwhist*
-See |g:netrw_dirhistmax| for how to control the quantity of history stack
-slots. The file ".netrwhist" holds history when netrw (and vim) is not
-active. By default, its stored on the first directory on the user's
-|'runtimepath'|.
-
-Related Topics:
- |netrw-U| changing to a successor directory
- |g:netrw_home| controls where .netrwhist is kept
-
-
-CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* {{{2
-
-With the "U" map, one can change to a later directory (successor).
-This map is the opposite of the "u" map. (see |netrw-u|) Use the
-qb map to list both the bookmarks and history. (see |netrw-qb|)
-
-The "U" map also accepts counts to go forward in the history several slots.
-
-See |g:netrw_dirhistmax| for how to control the quantity of history stack
-slots.
-
-
-CHANGING TREE TOP *netrw-ntree* *:Ntree* *netrw-gn* {{{2
-
-One may specify a new tree top for tree listings using >
-
- :Ntree [dirname]
-
-Without a "dirname", the current line is used (and any leading depth
-information is elided).
-With a "dirname", the specified directory name is used.
-
-The "gn" map will take the word below the cursor and use that for
-changing the top of the tree listing.
-
-
-NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
-
-With :NetrwClean one may easily remove netrw from one's home directory;
-more precisely, from the first directory on your |'runtimepath'|.
-
-With :NetrwClean!, netrw will attempt to remove netrw from all directories on
-your |'runtimepath'|. Of course, you have to have write/delete permissions
-correct to do this.
-
-With either form of the command, netrw will first ask for confirmation
-that the removal is in fact what you want to do. If netrw doesn't have
-permission to remove a file, it will issue an error message.
-
-CUSTOMIZING BROWSING WITH A SPECIAL HANDLER *netrw-x* *netrw-handler* {{{2
-
-Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
-best seen with a special handler (ie. a tool provided with your computer's
-operating system). Netrw allows one to invoke such special handlers by:
-
- * hitting gx with the cursor atop the file path or alternatively x
- in a netrw buffer; the former can be disabled by defining the
- |g:netrw_nogx| variable
- * when in command line, typing :Open , see |:Open| below.
-
-One may also use visual mode (see |visual-start|) to select the text that the
-special handler will use. Normally gx checks for a close-by URL or file name
-to pick up the text under the cursor; one may change what |expand()| uses via the
-|g:netrw_gx| variable (options include "", ""). Note that
-expand("") depends on the |'isfname'| setting. Alternatively, one may
-select the text to be used by gx by making a visual selection (see
-|visual-block|) and then pressing gx.
-
-The selection function can be adapted for each filetype by adding a function
-`Netrw_get_URL_`, where is given by the 'filetype'.
-The function should return the URL or file name to be used by gx, and will
-fall back to the default behavior if it returns an empty string.
-For example, special handlers for links Markdown and HTML are
-
-" make gx work on concealed links regardless of exact cursor position: >
-
- function Netrw_get_URL_markdown()
- " markdown URL such as [link text](http://ya.ru 'yandex search')
- try
- let save_view = winsaveview()
- if searchpair('\[.\{-}\](', '', ')\zs', 'cbW', '', line('.')) > 0
- return matchstr(getline('.')[col('.')-1:],
- \ '\[.\{-}\](\zs' .. g:netrw_regex_url .. '\ze\(\s\+.\{-}\)\?)')
- endif
- return ''
- finally
- call winrestview(save_view)
- endtry
- endfunction
-
- function Netrw_get_URL_html()
- " HTML URL such as Python is here
- "
- try
- let save_view = winsaveview()
- if searchpair('\|/>\)\zs', 'cbW', '', line('.')) > 0
- return matchstr(getline('.')[col('.') - 1 : ],
- \ 'href=["'.."'"..']\?\zs\S\{-}\ze["'.."'"..']\?/\?>')
- endif
- return ''
- finally
- call winrestview(save_view)
- endtry
- endfunction
-<
-Other than a file path, the text under the cursor may be a URL. Netrw uses
-by default the following regular expression to determine if the text under the
-cursor is a URL:
->
- :let g:netrw_regex_url = '\%(\%(http\|ftp\|irc\)s\?\|file\)://\S\{-}'
-<
-Associated setting variables:
- |g:netrw_gx| control how gx picks up the text under the cursor
- |g:netrw_nogx| prevent gx map while editing
- |g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages
-
-OPENING FILES AND LAUNCHING APPS *netrw-gx* *:Open* *:Launch* {{{2
-
-Netrw determines which special handler by the following method:
-
- * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
- view files.
- If the viewer you wish to use does not support handling of a remote URL
- directory, set |g:netrw_browsex_support_remote| to 0.
- * otherwise:
-
- * for Windows : explorer.exe is used
- * for Mac OS X : open is used.
- * for Linux : xdg-open is used.
-
-To open a path (or URL) by the appropriate handler, type >
-
- :Open
-<
-No escaping, neither for the shell nor for Vim's command-line, is needed.
-
-To launch a specific application , often being >
-
- :Launch .
-
-Since can be arbitrarily complex, in particular contain many file
-paths, the escaping is left to the user.
-
-If you disabled the netrw plugin by setting g:loaded_netrwPlugin (see
-|netrw-noload|), then you can use >
-
- :call netrw#Launch(' ')
- :call netrw#Open('')
-<
- *netrw-curdir*
-DELETING BOOKMARKS *netrw-mB* {{{2
-
-To delete a bookmark, use >
-
- {cnt}mB
-
-If there are marked files, then mB will remove them from the
-bookmark list.
-
-Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >
-
- :NetrwMB! [files/directories]
-
-Related Topics:
- |netrw-gb| how to return (go) to a bookmark
- |netrw-mb| how to make a bookmark
- |netrw-qb| how to list bookmarks
-
-
-DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* {{{2
-
-If files have not been marked with |netrw-mf|: (local marked file list)
-
- Deleting/removing files and directories involves moving the cursor to the
- file/directory to be deleted and pressing "D". Directories must be empty
- first before they can be successfully removed. If the directory is a
- softlink to a directory, then netrw will make two requests to remove the
- directory before succeeding. Netrw will ask for confirmation before doing
- the removal(s). You may select a range of lines with the "V" command
- (visual selection), and then pressing "D".
-
-If files have been marked with |netrw-mf|: (local marked file list)
-
- Marked files (and empty directories) will be deleted; again, you'll be
- asked to confirm the deletion before it actually takes place.
-
-A further approach is to delete files which match a pattern.
-
- * use :MF pattern (see |netrw-:MF|); then press "D".
-
- * use mr (see |netrw-mr|) which will prompt you for pattern.
- This will cause the matching files to be marked. Then,
- press "D".
-
-Please note that only empty directories may be deleted with the "D" mapping.
-Regular files are deleted with |delete()|, too.
-
-The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
-used to control the attempts to remove remote files and directories. The
-g:netrw_rm_cmd is used with files, and its default value is:
-
- g:netrw_rm_cmd: ssh HOSTNAME rm
-
-The g:netrw_rmdir_cmd variable is used to support the removal of directories.
-Its default value is:
-
- |g:netrw_rmdir_cmd|: ssh HOSTNAME rmdir
-
-If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
-to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
-
- |g:netrw_rmf_cmd|: ssh HOSTNAME rm -f
-
-Related topics: |netrw-d|
-Associated setting variable: |g:netrw_rm_cmd| |g:netrw_ssh_cmd|
-
-
-*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
-*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
-DIRECTORY EXPLORATION COMMANDS {{{2
-
- :[N]Explore[!] [dir]... Explore directory of current file *:Explore*
- :[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
- :[N]Lexplore[!] [dir]... Left Explorer Toggle *:Lexplore*
- :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
- :[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
- :Texplore [dir]... Tab & Explore *:Texplore*
- :Rexplore ... Return to/from Explorer *:Rexplore*
-
- Used with :Explore **/pattern : (also see |netrw-starstar|)
- :Nexplore............. go to next matching file *:Nexplore*
- :Pexplore............. go to previous matching file *:Pexplore*
-
- *netrw-:Explore*
-:Explore will open the local-directory browser on the current file's
- directory (or on directory [dir] if specified). The window will be
- split only if the file has been modified and |'hidden'| is not set,
- otherwise the browsing window will take over that window. Normally
- the splitting is taken horizontally.
- Also see: |netrw-:Rexplore|
-:Explore! is like :Explore, but will use vertical splitting.
-
- *netrw-:Hexplore*
-:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting.
-:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
-
- *netrw-:Lexplore*
-:[N]Lexplore [dir] toggles a full height Explorer window on the left hand side
- of the current tab. It will open a netrw window on the current
- directory if [dir] is omitted; a :Lexplore [dir] will show the
- specified directory in the left-hand side browser display no matter
- from which window the command is issued.
-
- By default, :Lexplore will change an uninitialized |g:netrw_chgwin|
- to 2; edits will thus preferentially be made in window#2.
-
- The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
- window. That means that
- if [N] < 0 : use |N| columns for the Lexplore window
- if [N] = 0 : a normal split is made
- if [N] > 0 : use N% of the current window will be used for the
- new window
-
- Those who like this method often also like tree style displays;
- see |g:netrw_liststyle|.
-
-:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
- Explorer window will open on the right hand side and an
- uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
- preferentially occur in the leftmost window).
-
- Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
- |netrw-p| |netrw-P| |g:netrw_chgwin|
- |netrw-c-tab| |g:netrw_winsize|
-
- *netrw-:Sexplore*
-:[N]Sexplore will always split the window before invoking the local-directory
- browser. As with Explore, the splitting is normally done
- horizontally.
-:[N]Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.
-
- *netrw-:Texplore*
-:Texplore [dir] does a |:tabnew| before generating the browser window
-
- *netrw-:Vexplore*
-:[N]Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
-:[N]Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
-
-The optional parameters are:
-
- [N]: This parameter will override |g:netrw_winsize| to specify the quantity of
- rows and/or columns the new explorer window should have.
- Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
- user, is used to control the quantity of rows and/or columns new
- explorer windows should have.
-
- [dir]: By default, these explorer commands use the current file's directory.
- However, one may explicitly provide a directory (path) to use instead;
- ie. >
-
- :Explore /some/path
-<
- *netrw-:Rexplore*
-:Rexplore This command is a little different from the other Explore commands
- as it doesn't necessarily open an Explorer window.
-
- Return to Explorer~
- When one edits a file using netrw which can occur, for example,
- when pressing while the cursor is atop a filename in a netrw
- browser window, a :Rexplore issued while editing that file will
- return the display to that of the last netrw browser display in
- that window.
-
- Return from Explorer~
- Conversely, when one is editing a directory, issuing a :Rexplore
- will return to editing the file that was last edited in that
- window.
-
- The <2-leftmouse> map (which is only available under gvim and
- cooperative terms) does the same as :Rexplore.
-
-Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
-
-
-*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat* *netrw-grep*
-EXPLORING WITH STARS AND PATTERNS {{{2
-
-When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
-following four patterns Explore generates a list of files which satisfy the
-request for the local file system. These exploration patterns will not work
-with remote file browsing.
-
- */filepat files in current directory which satisfy filepat
- **/filepat files in current directory or below which satisfy the
- file pattern
- *//pattern files in the current directory which contain the
- pattern (vimgrep is used)
- **//pattern files in the current directory or below which contain
- the pattern (vimgrep is used)
-<
-The cursor will be placed on the first file in the list. One may then
-continue to go to subsequent files on that list via |:Nexplore| or to
-preceding files on that list with |:Pexplore|. Explore will update the
-directory and place the cursor appropriately.
-
-A plain >
- :Explore
-will clear the explore list.
-
-If your console or gui produces recognizable shift-up or shift-down sequences,
-then you'll likely find using shift-downarrow and shift-uparrow convenient.
-They're mapped by netrw as follows:
-
- == Nexplore, and
- == Pexplore.
-
-As an example, consider
->
- :Explore */*.c
- :Nexplore
- :Nexplore
- :Pexplore
-<
-The status line will show, on the right hand side of the status line, a
-message like "Match 3 of 20".
-
-Associated setting variables:
- |g:netrw_keepdir| |g:netrw_browse_split|
- |g:netrw_fastbrowse| |g:netrw_ftp_browse_reject|
- |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
- |g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
- |g:netrw_liststyle|
-
-
-DISPLAYING INFORMATION ABOUT FILE *netrw-qf* {{{2
-
-With the cursor atop a filename, pressing "qf" will reveal the file's size
-and last modification timestamp. Currently this capability is only available
-for local files.
-
-
-EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* {{{2
-
-The "" map brings up a requestor allowing the user to change the
-file/directory hiding list contained in |g:netrw_list_hide|. The hiding list
-consists of one or more patterns delimited by commas. Files and/or
-directories satisfying these patterns will either be hidden (ie. not shown) or
-be the only ones displayed (see |netrw-a|).
-
-The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
-hiding list and the hiding of files or directories that begin with ".".
-
-As an example, >
- let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
-Effectively, this makes the effect of a |netrw-gh| command the initial setting.
-What it means:
-
- \(^\|\s\s\) : if the line begins with the following, -or-
- two consecutive spaces are encountered
- \zs : start the hiding match now
- \. : if it now begins with a dot
- \S\+ : and is followed by one or more non-whitespace
- characters
-
-Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
-Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
-
- *netrw-sort-sequence*
-EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
-
-When "Sorted by" is name, one may specify priority via the sorting sequence
-(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
-name-listing by suffix, although any pattern will do. Patterns are delimited
-by commas. The default sorting sequence is (all one line):
-
-For Unix: >
- '[\/]$,\
- '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
- \.swp$,\.bak$,\~$'
-<
-The lone * is where all filenames not covered by one of the other patterns
-will end up. One may change the sorting sequence by modifying the
-g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
-using the "S" map.
-
-Related topics: |netrw-s| |netrw-S|
-Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
-
-
-EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
-
-Pressing X while the cursor is atop an executable file will yield a prompt
-using the filename asking for any arguments. Upon pressing a [return], netrw
-will then call |system()| with that command and arguments. The result will be
-displayed by |:echomsg|, and so |:messages| will repeat display of the result.
-Ansi escape sequences will be stripped out.
-
-See |cmdline-window| for directions for more on how to edit the arguments.
-
-
-FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
-
-Remote symbolic links (ie. those listed via ssh or ftp) are problematic
-in that it is difficult to tell whether they link to a file or to a
-directory.
-
-To force treatment as a file: use >
- gf
-<
-To force treatment as a directory: use >
- gd
-<
-
-GOING UP *netrw--* {{{2
-
-To go up a directory, press "-" or press the when atop the ../ directory
-entry in the listing.
-
-Netrw will use the command in |g:netrw_list_cmd| to perform the directory
-listing operation after changing HOSTNAME to the host specified by the
-user-prpvided url. By default netrw provides the command as: >
-
- ssh HOSTNAME ls -FLa
-<
-where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
-read. Naturally, the user may override this command with whatever is
-preferred. The NetList function which implements remote browsing
-expects that directories will be flagged by a trailing slash.
-
-
-HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* {{{2
-
-Netrw's browsing facility allows one to use the hiding list in one of three
-ways: ignore it, hide files which match, and show only those files which
-match.
-
-If no files have been marked via |netrw-mf|:
-
-The "a" map allows the user to cycle through the three hiding modes.
-
-The |g:netrw_list_hide| variable holds a comma delimited list of patterns
-based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
-(also see |netrw-ctrl-h|) To set the hiding list, use the map. As an
-example, to hide files which begin with a ".", one may use the map to
-set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
-in one's <.vimrc>). One may then use the "a" key to show all files, hide
-matching files, or to show only the matching files.
-
- Example: \.[ch]$
- This hiding list command will hide/show all *.c and *.h files.
-
- Example: \.c$,\.h$
- This hiding list command will also hide/show all *.c and *.h
- files.
-
-Don't forget to use the "a" map to select the mode (normal/hiding/show) you
-want!
-
-If files have been marked using |netrw-mf|, then this command will:
-
- if showing all files or non-hidden files:
- modify the g:netrw_list_hide list by appending the marked files to it
- and showing only non-hidden files.
-
- else if showing hidden files only:
- modify the g:netrw_list_hide list by removing the marked files from it
- and showing only non-hidden files.
- endif
-
- *netrw-gh* *netrw-hide*
-As a quick shortcut, one may press >
- gh
-to toggle between hiding files which begin with a period (dot) and not hiding
-them.
-
-Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
-Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
-
- *netrw-gitignore*
-Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
-|g:netrw_list_hide| automatically hides all git-ignored files.
-
-'netrw_gitignore#Hide' searches for patterns in the following files: >
-
- './.gitignore'
- './.git/info/exclude'
- global gitignore file: `git config --global core.excludesfile`
- system gitignore file: `git config --system core.excludesfile`
-<
-Files that do not exist, are ignored.
-Git-ignore patterns are taken from existing files, and converted to patterns for
-hiding files. For example, if you had '*.log' in your '.gitignore' file, it
-would be converted to '.*\.log'.
-
-To use this function, simply assign its output to |g:netrw_list_hide| option. >
-
- Example: let g:netrw_list_hide= netrw_gitignore#Hide()
- Git-ignored files are hidden in Netrw.
-
- Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
- Function can take additional files with git-ignore patterns.
-
- Example: let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
- Combining 'netrw_gitignore#Hide' with custom patterns.
-<
-
-IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
-
-Especially with the remote directory browser, constantly entering the password
-is tedious.
-
-For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
-tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
-for setting up no-password ssh and scp and discusses associated security
-issues. It used to be available at http://hacks.oreilly.com/pub/h/66 ,
-but apparently that address is now being redirected to some "hackzine".
-I'll attempt a summary based on that article and on a communication from
-Ben Schmidt:
-
- 1. Generate a public/private key pair on the local machine
- (ssh client): >
- ssh-keygen -t rsa
- (saving the file in ~/.ssh/id_rsa as prompted)
-<
- 2. Just hit the when asked for passphrase (twice) for no
- passphrase. If you do use a passphrase, you will also need to use
- ssh-agent so you only have to type the passphrase once per session.
- If you don't use a passphrase, simply logging onto your local
- computer or getting access to the keyfile in any way will suffice
- to access any ssh servers which have that key authorized for login.
-
- 3. This creates two files: >
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
-<
- 4. On the target machine (ssh server): >
- cd
- mkdir -p .ssh
- chmod 0700 .ssh
-<
- 5. On your local machine (ssh client): (one line) >
- ssh {serverhostname}
- cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
-<
- or, for OpenSSH, (one line) >
- ssh {serverhostname}
- cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
-<
-You can test it out with >
- ssh {serverhostname}
-and you should be log onto the server machine without further need to type
-anything.
-
-If you decided to use a passphrase, do: >
- ssh-agent $SHELL
- ssh-add
- ssh {serverhostname}
-You will be prompted for your key passphrase when you use ssh-add, but not
-subsequently when you use ssh. For use with vim, you can use >
- ssh-agent vim
-and, when next within vim, use >
- :!ssh-add
-Alternatively, you can apply ssh-agent to the terminal you're planning on
-running vim in: >
- ssh-agent xterm &
-and do ssh-add whenever you need.
-
-For Windows, folks on the vim mailing list have mentioned that Pageant helps
-with avoiding the constant need to enter the password.
-
-Kingston Fung wrote about another way to avoid constantly needing to enter
-passwords:
-
- In order to avoid the need to type in the password for scp each time, you
- provide a hack in the docs to set up a non password ssh account. I found a
- better way to do that: I can use a regular ssh account which uses a
- password to access the material without the need to key-in the password
- each time. It's good for security and convenience. I tried ssh public key
- authorization + ssh-agent, implementing this, and it works!
-
-
- Ssh hints:
-
- Thomer Gil has provided a hint on how to speed up netrw+ssh:
- http://thomer.com/howtos/netrw_ssh.html
-
- Alex Young has several hints on speeding ssh up:
- http://usevim.com/2012/03/16/editing-remote-files/
-
-
-LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
-
-Pressing "qb" (query bookmarks) will list both the bookmarked directories and
-directory traversal history.
-
-Related Topics:
- |netrw-gb| how to return (go) to a bookmark
- |netrw-mb| how to make a bookmark
- |netrw-mB| how to delete bookmarks
- |netrw-u| change to a predecessor directory via the history stack
- |netrw-U| change to a successor directory via the history stack
-
-MAKING A NEW DIRECTORY *netrw-d* {{{2
-
-With the "d" map one may make a new directory either remotely (which depends
-on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
-global variable g:netrw_localmkdir). Netrw will issue a request for the new
-directory's name. A bare at that point will abort the making of the
-directory. Attempts to make a local directory that already exists (as either
-a file or a directory) will be detected, reported on, and ignored.
-
-Related topics: |netrw-D|
-Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
- |g:netrw_remote_mkdir| |netrw-%|
-
-
-MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
-
-By default, |g:netrw_keepdir| is 1. This setting means that the current
-directory will not track the browsing directory. (done for backwards
-compatibility with v6's file explorer).
-
-Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
-track netrw's browsing directory.
-
-However, given the default setting for g:netrw_keepdir of 1 where netrw
-maintains its own separate notion of the current directory, in order to make
-the two directories the same, use the "cd" map (type cd). That map will
-set Vim's notion of the current directory to netrw's current browsing
-directory.
-
-|netrw-cd| : This map's name was changed from "c" to cd (see |netrw-cd|).
- This change was done to allow for |netrw-cb| and |netrw-cB| maps.
-
-Associated setting variable: |g:netrw_keepdir|
-
-MARKING FILES *netrw-:MF* *netrw-mf* {{{2
- (also see |netrw-mr|)
-
-Netrw provides several ways to mark files:
-
- * One may mark files with the cursor atop a filename and
- then pressing "mf".
-
- * With gvim, in addition one may mark files with
- . (see |netrw-mouse|)
-
- * One may use the :MF command, which takes a list of
- files (for local directories, the list may include
- wildcards -- see |glob()|) >
-
- :MF *.c
-<
- (Note that :MF uses || to break the line
- at spaces)
-
- * Mark files using the |argument-list| (|netrw-mA|)
-
- * Mark files based upon a |location-list| (|netrw-qL|)
-
- * Mark files based upon the quickfix list (|netrw-qF|)
- (|quickfix-error-lists|)
-
-The following netrw maps make use of marked files:
-
- |netrw-a| Hide marked files/directories
- |netrw-D| Delete marked files/directories
- |netrw-ma| Move marked files' names to |arglist|
- |netrw-mA| Move |arglist| filenames to marked file list
- |netrw-mb| Append marked files to bookmarks
- |netrw-mB| Delete marked files from bookmarks
- |netrw-mc| Copy marked files to target
- |netrw-md| Apply vimdiff to marked files
- |netrw-me| Edit marked files
- |netrw-mF| Unmark marked files
- |netrw-mg| Apply vimgrep to marked files
- |netrw-mm| Move marked files to target
- |netrw-mp| Print marked files
- |netrw-ms| Netrw will source marked files
- |netrw-mt| Set target for |netrw-mm| and |netrw-mc|
- |netrw-mT| Generate tags using marked files
- |netrw-mv| Apply vim command to marked files
- |netrw-mx| Apply shell command to marked files
- |netrw-mX| Apply shell command to marked files, en bloc
- |netrw-mz| Compress/Decompress marked files
- |netrw-O| Obtain marked files
- |netrw-R| Rename marked files
-
-One may unmark files one at a time the same way one marks them; ie. place
-the cursor atop a marked file and press "mf". This process also works
-with using gvim. One may unmark all files by pressing
-"mu" (see |netrw-mu|).
-
-Marked files are highlighted using the "netrwMarkFile" highlighting group,
-which by default is linked to "Identifier" (see Identifier under
-|group-name|). You may change the highlighting group by putting something
-like >
-
- highlight clear netrwMarkFile
- hi link netrwMarkFile ..whatever..
-<
-into $HOME/.vim/after/syntax/netrw.vim .
-
-If the mouse is enabled and works with your vim, you may use to
-mark one or more files. You may mark multiple files by dragging the shifted
-leftmouse. (see |netrw-mouse|)
-
- *markfilelist* *global_markfilelist* *local_markfilelist*
-All marked files are entered onto the global marked file list; there is only
-one such list. In addition, every netrw buffer also has its own buffer-local
-marked file list; since netrw buffers are associated with specific
-directories, this means that each directory has its own local marked file
-list. The various commands which operate on marked files use one or the other
-of the marked file lists.
-
-Known Problem: if one is using tree mode (|g:netrw_liststyle|) and several
-directories have files with the same name, then marking such a file will
-result in all such files being highlighted as if they were all marked. The
-|markfilelist|, however, will only have the selected file in it. This problem
-is unlikely to be fixed.
-
-
-UNMARKING FILES *netrw-mF* {{{2
- (also see |netrw-mf|, |netrw-mu|)
-
-The "mF" command will unmark all files in the current buffer. One may also use
-mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.
-
-MARKING FILES BY LOCATION LIST *netrw-qL* {{{2
- (also see |netrw-mf|)
-
-One may convert |location-list|s into a marked file list using "qL".
-You may then proceed with commands such as me (|netrw-me|) to edit them.
-
-
-MARKING FILES BY QUICKFIX LIST *netrw-qF* {{{2
- (also see |netrw-mf|)
-
-One may convert |quickfix-error-lists| into a marked file list using "qF".
-You may then proceed with commands such as me (|netrw-me|) to edit them.
-Quickfix error lists are generated, for example, by calls to |:vimgrep|.
-
-
-MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
- (also see |netrw-mf|)
-
-One may also mark files by pressing "mr"; netrw will then issue a prompt,
-"Enter regexp: ". You may then enter a shell-style regular expression such
-as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
-converts "*" into ".*" (see |regexp|) and marks files based on that. In the
-future I may make it possible to use |regexp|s instead of glob()-style
-expressions (yet-another-option).
-
-See |cmdline-window| for directions on more on how to edit the regular
-expression.
-
-
-MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the local marked-file list)
-
-The "mv" map causes netrw to execute an arbitrary vim command on each file on
-the local marked file list, individually:
-
- * 1split
- * sil! keepalt e file
- * run vim command
- * sil! keepalt wq!
-
-A prompt, "Enter vim command: ", will be issued to elicit the vim command you
-wish used. See |cmdline-window| for directions for more on how to edit the
-command.
-
-
-MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the local marked-file list)
-
-Upon activation of the "mx" map, netrw will query the user for some (external)
-command to be applied to all marked files. All "%"s in the command will be
-substituted with the name of each marked file in turn. If no "%"s are in the
-command, then the command will be followed by a space and a marked filename.
-
-Example:
- (mark files)
- mx
- Enter command: cat
-
- The result is a series of shell commands:
- cat 'file1'
- cat 'file2'
- ...
-
-
-MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC *netrw-mX* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked-file list)
-
-Upon activation of the 'mX' map, netrw will query the user for some (external)
-command to be applied to all marked files on the global marked file list. The
-"en bloc" means that one command will be executed on all the files at once: >
-
- command files
-
-This approach is useful, for example, to select files and make a tarball: >
-
- (mark files)
- mX
- Enter command: tar cf mynewtarball.tar
-<
-The command that will be run with this example:
-
- tar cf mynewtarball.tar 'file1' 'file2' ...
-
-
-MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked-file list)
-
-Using ma, one moves filenames from the marked file list to the argument list.
-Using mA, one moves filenames from the argument list to the marked file list.
-
-See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
-
-
-MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked-file list)
-
-Using cb, one moves filenames from the marked file list to the buffer list.
-Using cB, one copies filenames from the buffer list to the marked file list.
-
-See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
-
-
-MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the local marked file list)
-
-If any marked files are compressed, then "mz" will decompress them.
-If any marked files are decompressed, then "mz" will compress them
-using the command specified by |g:netrw_compress|; by default,
-that's "gzip".
-
-For decompression, netrw uses a |Dictionary| of suffices and their
-associated decompressing utilities; see |g:netrw_decompress|.
-
-Remember that one can mark multiple files by regular expression
-(see |netrw-mr|); this is particularly useful to facilitate compressing and
-decompressing a large number of files.
-
-Associated setting variables: |g:netrw_compress| |g:netrw_decompress|
-
-MARKED FILES: COPYING *netrw-mc* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (Uses the global marked file list)
-
-Select a target directory with mt (|netrw-mt|). Then change directory,
-select file(s) (see |netrw-mf|), and press "mc". The copy is done
-from the current window (where one does the mf) to the target.
-
-If one does not have a target directory set with |netrw-mt|, then netrw
-will query you for a directory to copy to.
-
-One may also copy directories and their contents (local only) to a target
-directory.
-
-Associated setting variables:
- |g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
- |g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
- |g:netrw_ssh_cmd|
-
-MARKED FILES: DIFF *netrw-md* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked file list)
-
-Use |vimdiff| to visualize difference between selected files (two or
-three may be selected for this). Uses the global marked file list.
-
-MARKED FILES: EDITING *netrw-me* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked file list)
-
-The "me" command will place the marked files on the |arglist| and commence
-editing them. One may return the to explorer window with |:Rexplore|.
-(use |:n| and |:p| to edit next and previous files in the arglist)
-
-MARKED FILES: GREP *netrw-mg* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked file list)
-
-The "mg" command will apply |:vimgrep| to the marked files.
-The command will ask for the requested pattern; one may then enter: >
-
- /pattern/[g][j]
- ! /pattern/[g][j]
- pattern
-<
-With /pattern/, editing will start with the first item on the |quickfix| list
-that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|). The |:vimgrep|
-command is in use, so without 'g' each line is added to quickfix list only
-once; with 'g' every match is included.
-
-With /pattern/j, "mg" will winnow the current marked file list to just those
-marked files also possessing the specified pattern. Thus, one may use >
-
- mr ...file-pattern...
- mg /pattern/j
-<
-to have a marked file list satisfying the file-pattern but also restricted to
-files containing some desired pattern.
-
-
-MARKED FILES: HIDING AND UNHIDING BY SUFFIX *netrw-mh* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the local marked file list)
-
-The "mh" command extracts the suffices of the marked files and toggles their
-presence on the hiding list. Please note that marking the same suffix
-this way multiple times will result in the suffix's presence being toggled
-for each file (so an even quantity of marked files having the same suffix
-is the same as not having bothered to select them at all).
-
-Related topics: |netrw-a| |g:netrw_list_hide|
-
-MARKED FILES: MOVING *netrw-mm* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked file list)
-
- WARNING: moving files is more dangerous than copying them.
- A file being moved is first copied and then deleted; if the
- copy operation fails and the delete succeeds, you will lose
- the file. Either try things out with unimportant files
- first or do the copy and then delete yourself using mc and D.
- Use at your own risk!
-
-Select a target directory with mt (|netrw-mt|). Then change directory,
-select file(s) (see |netrw-mf|), and press "mm". The move is done
-from the current window (where one does the mf) to the target.
-
-Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
-
-MARKED FILES: PRINTING *netrw-mp* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the local marked file list)
-
-When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
-What netrw does is open each file in a one-line window, execute hardcopy, then
-close the one-line window.
-
-
-MARKED FILES: SOURCING *netrw-ms* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the local marked file list)
-
-With "ms", netrw will source the marked files (using vim's |:source| command)
-
-
-MARKED FILES: SETTING THE TARGET DIRECTORY *netrw-mt* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
-
-Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
-
- * If the cursor is atop a file name, then the netrw window's currently
- displayed directory is used for the copy/move-to target.
-
- * Also, if the cursor is in the banner, then the netrw window's currently
- displayed directory is used for the copy/move-to target.
- Unless the target already is the current directory. In which case,
- typing "mf" clears the target.
-
- * However, if the cursor is atop a directory name, then that directory is
- used for the copy/move-to target
-
- * One may use the :MT [directory] command to set the target *netrw-:MT*
- This command uses ||, so spaces in the directory name are
- permitted without escaping.
-
- * With mouse-enabled vim or with gvim, one may select a target by using
-
-
-There is only one copy/move-to target at a time in a vim session; ie. the
-target is a script variable (see |s:var|) and is shared between all netrw
-windows (in an instance of vim).
-
-When using menus and gvim, netrw provides a "Targets" entry which allows one
-to pick a target from the list of bookmarks and history.
-
-Related topics:
- Marking Files......................................|netrw-mf|
- Marking Files by Regular Expression................|netrw-mr|
- Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
- Marked Files: Target Directory Using History.......|netrw-Th|
-
-
-MARKED FILES: TAGGING *netrw-mT* {{{2
- (See |netrw-mf| and |netrw-mr| for how to mark files)
- (uses the global marked file list)
-
-The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
-"ctags") to marked files. For remote browsing, in order to create a tags file
-netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
-this to work on remote systems. For your local system, see |ctags| on how to
-get a version. I myself use hdrtags, currently available at
-http://www.drchip.org/astronaut/src/index.html , and have >
-
- let g:netrw_ctags= "hdrtag"
-<
-in my <.vimrc>.
-
-When a remote set of files are tagged, the resulting tags file is "obtained";
-ie. a copy is transferred to the local system's directory. The now local tags
-file is then modified so that one may use it through the network. The
-modification made concerns the names of the files in the tags; each filename is
-preceded by the netrw-compatible URL used to obtain it. When one subsequently
-uses one of the go to tag actions (|tags|), the URL will be used by netrw to
-edit the desired file and go to the tag.
-
-Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
-
-MARKED FILES: TARGET DIRECTORY USING BOOKMARKS *netrw-Tb* {{{2
-
-Sets the marked file copy/move-to target.
-
-The |netrw-qb| map will give you a list of bookmarks (and history).
-One may choose one of the bookmarks to become your marked file
-target by using [count]Tb (default count: 1).
-
-Related topics:
- Copying files to target............................|netrw-mc|
- Listing Bookmarks and History......................|netrw-qb|
- Marked Files: Setting The Target Directory.........|netrw-mt|
- Marked Files: Target Directory Using History.......|netrw-Th|
- Marking Files......................................|netrw-mf|
- Marking Files by Regular Expression................|netrw-mr|
- Moving files to target.............................|netrw-mm|
-
-
-MARKED FILES: TARGET DIRECTORY USING HISTORY *netrw-Th* {{{2
-
-Sets the marked file copy/move-to target.
-
-The |netrw-qb| map will give you a list of history (and bookmarks).
-One may choose one of the history entries to become your marked file
-target by using [count]Th (default count: 0; ie. the current directory).
-
-Related topics:
- Copying files to target............................|netrw-mc|
- Listing Bookmarks and History......................|netrw-qb|
- Marked Files: Setting The Target Directory.........|netrw-mt|
- Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
- Marking Files......................................|netrw-mf|
- Marking Files by Regular Expression................|netrw-mr|
- Moving files to target.............................|netrw-mm|
-
-
-MARKED FILES: UNMARKING *netrw-mu* {{{2
- (See |netrw-mf|, |netrw-mF|)
-
-The "mu" mapping will unmark all currently marked files. This command differs
-from "mF" as the latter only unmarks files in the current directory whereas
-"mu" will unmark global and all buffer-local marked files.
-(see |netrw-mF|)
-
-
- *netrw-browser-settings*
-NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
-
-(if you're interested in the netrw file transfer settings, see |netrw-options|
- and |netrw-protocol|)
-
-The browser provides settings in the form of variables which
-you may modify; by placing these settings in your <.vimrc>, you may customize
-your browsing preferences. (see also: |netrw-settings|)
->
- --- -----------
- Var Explanation
- --- -----------
-< *g:netrw_altfile* some like |CTRL-^| to return to the last
- edited file. Choose that by setting this
- parameter to 1.
- Others like |CTRL-^| to return to the
- netrw browsing buffer. Choose that by setting
- this parameter to 0.
- default: =0
-
- *g:netrw_alto* change from above splitting to below splitting
- by setting this variable (see |netrw-o|)
- default: =&sb (see |'sb'|)
-
- *g:netrw_altv* change from left splitting to right splitting
- by setting this variable (see |netrw-v|)
- default: =&spr (see |'spr'|)
-
- *g:netrw_banner* enable/suppress the banner
- =0: suppress the banner
- =1: banner is enabled (default)
-
- *g:netrw_bannerbackslash* if this variable exists and is not zero, the
- banner will be displayed with backslashes
- rather than forward slashes.
-
- *g:netrw_browse_split* when browsing, will open the file by:
- =0: re-using the same window (default)
- =1: horizontally splitting the window first
- =2: vertically splitting the window first
- =3: open file in new tab
- =4: act like "P" (ie. open previous window)
- Note that |g:netrw_preview| may be used
- to get vertical splitting instead of
- horizontal splitting.
- =[servername,tab-number,window-number]
- Given a |List| such as this, a remote server
- named by the "servername" will be used for
- editing. It will also use the specified tab
- and window numbers to perform editing
- (see |clientserver|, |netrw-ctrl-r|)
- This option does not affect the production of
- |:Lexplore| windows.
-
- Related topics:
- |g:netrw_alto| |g:netrw_altv|
- |netrw-C| |netrw-cr|
- |netrw-ctrl-r|
-
- *g:netrw_browsex_viewer* specify user's preference for a viewer: >
- "kfmclient exec"
- "gnome-open"
-<
- *g:netrw_browsex_support_remote*
- specify if the specified viewer supports a
- remote URL. (see |netrw-handler|).
-
- *g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
- Windows: "cacls FILENAME /e /p PERM"
- Used to change access permission for a file.
-
- *g:netrw_clipboard* =1
- By default, netrw will attempt to insure that
- the clipboard's values will remain unchanged.
- However, some users report that they have
- speed problems with this; consequently, this
- option, when set to zero, lets such users
- prevent netrw from saving and restoring the
- clipboard (the latter is done only as needed).
- That means that if the clipboard is changed
- (inadvertently) by normal netrw operation that
- it will not be restored to its prior state.
-
- *g:netrw_compress* ="gzip"
- Will compress marked files with this
- command
-
- *g:Netrw_corehandler* Allows one to specify something additional
- to do when handling files via netrw's
- browser's "x" command (see |netrw-x|). If
- present, g:Netrw_corehandler specifies
- either one or more function references
- (see |Funcref|). (the capital g:Netrw...
- is required its holding a function reference)
-
-
- *g:netrw_ctags* ="ctags"
- The default external program used to create
- tags
-
- *g:netrw_cursor* = 2 (default)
- This option controls the use of the
- |'cursorline'| (cul) and |'cursorcolumn'|
- (cuc) settings by netrw:
-
- Value Thin-Long-Tree Wide
- =0 u-cul u-cuc u-cul u-cuc
- =1 u-cul u-cuc cul u-cuc
- =2 cul u-cuc cul u-cuc
- =3 cul u-cuc cul cuc
- =4 cul cuc cul cuc
- =5 U-cul U-cuc U-cul U-cuc
- =6 U-cul U-cuc cul U-cuc
- =7 cul U-cuc cul U-cuc
- =8 cul U-cuc cul cuc
-
- Where
- u-cul : user's |'cursorline'| initial setting used
- u-cuc : user's |'cursorcolumn'| initial setting used
- U-cul : user's |'cursorline'| current setting used
- U-cuc : user's |'cursorcolumn'| current setting used
- cul : |'cursorline'| will be locally set
- cuc : |'cursorcolumn'| will be locally set
-
- The "initial setting" means the values of
- the |'cuc'| and |'cul'| settings in effect when
- netrw last saw |g:netrw_cursor| >= 5 or when
- netrw was initially run.
-
- *g:netrw_decompress* = { '.lz4': 'lz4 -d',
- '.lzo': 'lzop -d',
- '.lz': 'lzip -dk',
- '.7z': '7za x',
- '.001': '7za x',
- '.tar.bz': 'tar -xvjf',
- '.tar.bz2': 'tar -xvjf',
- '.tbz': 'tar -xvjf',
- '.tbz2': 'tar -xvjf',
- '.tar.gz': 'tar -xvzf',
- '.tgz': 'tar -xvzf',
- '.tar.zst': 'tar --use-compress-program=unzstd -xvf',
- '.tzst': 'tar --use-compress-program=unzstd -xvf',
- '.tar': 'tar -xvf',
- '.zip': 'unzip',
- '.bz': 'bunzip2 -k',
- '.bz2': 'bunzip2 -k',
- '.gz': 'gunzip -k',
- '.lzma': 'unlzma -T0 -k',
- '.xz': 'unxz -T0 -k',
- '.zst': 'zstd -T0 -d',
- '.Z': 'uncompress -k',
- '.rar': 'unrar x -ad',
- '.tar.lzma': 'tar --lzma -xvf',
- '.tlz': 'tar --lzma -xvf',
- '.tar.xz': 'tar -xvJf',
- '.txz': 'tar -xvJf'}
-
- A dictionary mapping suffices to
- decompression programs.
-
- *g:netrw_dirhistmax* =10: controls maximum quantity of past
- history. May be zero to suppress
- history.
- (related: |netrw-qb| |netrw-u| |netrw-U|)
-
- *g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
- |g:netrw_maxfilenamelen|, which affects
- local file long listing.
-
- *g:netrw_errorlvl* =0: error levels greater than or equal to
- this are permitted to be displayed
- 0: notes
- 1: warnings
- 2: errors
-
- *g:netrw_fastbrowse* =0: slow speed directory browsing;
- never re-uses directory listings;
- always obtains directory listings.
- =1: medium speed directory browsing;
- re-use directory listings only
- when remote directory browsing.
- (default value)
- =2: fast directory browsing;
- only obtains directory listings when the
- directory hasn't been seen before
- (or |netrw-ctrl-l| is used).
-
- Fast browsing retains old directory listing
- buffers so that they don't need to be
- re-acquired. This feature is especially
- important for remote browsing. However, if
- a file is introduced or deleted into or from
- such directories, the old directory buffer
- becomes out-of-date. One may always refresh
- such a directory listing with |netrw-ctrl-l|.
- This option gives the user the choice of
- trading off accuracy (ie. up-to-date listing)
- versus speed.
-
- *g:netrw_ffkeep* (default: doesn't exist)
- If this variable exists and is zero, then
- netrw will not do a save and restore for
- |'fileformat'|.
-
- *g:netrw_fname_escape* =' ?&;%'
- Used on filenames before remote reading/writing
-
- *g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
- that can show up as "directories" and "files"
- in the listing. This pattern is used to
- remove such embedded messages. By default its
- value is:
- '^total\s\+\d\+$\|
- ^Trying\s\+\d\+.*$\|
- ^KERBEROS_V\d rejected\|
- ^Security extensions not\|
- No such file\|
- : connect to address [0-9a-fA-F:]*
- : No route to host$'
-
- *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
- listing. Defaults:
- unix or g:netrw_cygwin set: : "ls -lF"
- otherwise "dir"
-
-
- *g:netrw_ftp_sizelist_cmd* options for passing along to ftp for directory
- listing, sorted by size of file.
- Defaults:
- unix or g:netrw_cygwin set: : "ls -slF"
- otherwise "dir"
-
- *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory
- listing, sorted by time of last modification.
- Defaults:
- unix or g:netrw_cygwin set: : "ls -tlF"
- otherwise "dir"
-
- *g:netrw_glob_escape* ='[]*?`{~$' (unix)
- ='[]*?`{$' (windows
- These characters in directory names are
- escaped before applying glob()
-
- *g:netrw_gx* =""
- This option controls how gx (|netrw-gx|) picks
- up the text under the cursor. See |expand()|
- for possibilities.
-
- *g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
- =0 : show all
- =1 : show not-hidden files
- =2 : show hidden files only
- default: =1
-
- *g:netrw_home* The home directory for where bookmarks and
- history are saved (as .netrwbook and
- .netrwhist).
- Netrw uses |expand()|on the string.
- default: the first directory on the
- |'runtimepath'|
-
- *g:netrw_keepdir* =1 (default) keep current directory immune from
- the browsing directory.
- =0 keep the current directory the same as the
- browsing directory.
- The current browsing directory is contained in
- b:netrw_curdir (also see |netrw-cd|)
-
- *g:netrw_keepj* ="keepj" (default) netrw attempts to keep the
- |:jumps| table unaffected.
- ="" netrw will not use |:keepjumps| with
- exceptions only for the
- saving/restoration of position.
-
- *g:netrw_list_cmd* command for listing remote directories
- default: (if ssh is executable)
- "ssh HOSTNAME ls -FLa"
-
- *g:netrw_list_cmd_options* If this variable exists, then its contents are
- appended to the g:netrw_list_cmd. For
- example, use "2>/dev/null" to get rid of banner
- messages on unix systems.
-
-
- *g:netrw_liststyle* Set the default listing style:
- = 0: thin listing (one file per line)
- = 1: long listing (one file per line with time
- stamp information and file size)
- = 2: wide listing (multiple files in columns)
- = 3: tree style listing
-
- *g:netrw_list_hide* comma-separated pattern list for hiding files
- Patterns are regular expressions (see |regexp|)
- There's some special support for git-ignore
- files: you may add the output from the helper
- function 'netrw_gitignore#Hide() automatically
- hiding all gitignored files.
- For more details see |netrw-gitignore|.
-
- Examples:
- let g:netrw_list_hide= '.*\.swp$'
- let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
- default: ""
-
- *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
- =expand("$COMSPEC") Windows
- Copies marked files (|netrw-mf|) to target
- directory (|netrw-mt|, |netrw-mc|)
-
- *g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
- =' \c copy' Windows
- Options for the |g:netrw_localcopycmd|
-
- *g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
- =expand("$COMSPEC") Windows
- Copies directories to target directory.
- (|netrw-mc|, |netrw-mt|)
-
- *g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
- =" /c xcopy /e /c /h/ /i /k" Windows
- Options for |g:netrw_localcopydircmd|
-
- *g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
- =expand("$COMSPEC") Windows
- command for making a local directory
-
- *g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
- =" /c mkdir" Windows
- Options for |g:netrw_localmkdir|
-
- *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
- =expand("$COMSPEC") Windows
- Moves marked files (|netrw-mf|) to target
- directory (|netrw-mt|, |netrw-mm|)
-
- *g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
- =" /c move" Windows
- Options for |g:netrw_localmovecmd|
-
- *g:netrw_maxfilenamelen* =32 by default, selected so as to make long
- listings fit on 80 column displays.
- If your screen is wider, and you have file
- or directory names longer than 32 bytes,
- you may set this option to keep listings
- columnar.
-
- *g:netrw_mkdir_cmd* command for making a remote directory
- via ssh (also see |g:netrw_remote_mkdir|)
- default: "ssh USEPORT HOSTNAME mkdir"
-
- *g:netrw_mousemaps* =1 (default) enables mouse buttons while
- browsing to:
- leftmouse : open file/directory
- shift-leftmouse : mark file
- middlemouse : same as P
- rightmouse : remove file/directory
- =0: disables mouse maps
-
- *g:netrw_nobeval* doesn't exist (default)
- If this variable exists, then balloon
- evaluation will be suppressed
- (see |'ballooneval'|)
-
- *g:netrw_sizestyle* not defined: actual bytes (default)
- ="b" : actual bytes (default)
- ="h" : human-readable (ex. 5k, 4m, 3g)
- uses 1000 base
- ="H" : human-readable (ex. 5K, 4M, 3G)
- uses 1024 base
- The long listing (|netrw-i|) and query-file
- maps (|netrw-qf|) will display file size
- using the specified style.
-
- *g:netrw_usetab* if this variable exists and is non-zero, then
- the map supporting shrinking/expanding a
- Lexplore or netrw window will be enabled.
- (see |netrw-c-tab|)
-
- *g:netrw_remote_mkdir* command for making a remote directory
- via ftp (also see |g:netrw_mkdir_cmd|)
- default: "mkdir"
-
- *g:netrw_retmap* if it exists and is set to one, then:
- * if in a netrw-selected file, AND
- * no normal-mode <2-leftmouse> mapping exists,
- then the <2-leftmouse> will be mapped for easy
- return to the netrw browser window.
- example: click once to select and open a file,
- double-click to return.
-
- Note that one may instead choose to:
- * let g:netrw_retmap= 1, AND
- * nmap YourChoice NetrwReturn
- and have another mapping instead of
- <2-leftmouse> to invoke the return.
-
- You may also use the |:Rexplore| command to do
- the same thing.
-
- default: =0
-
- *g:netrw_rm_cmd* command for removing remote files
- default: "ssh USEPORT HOSTNAME rm"
-
- *g:netrw_rmdir_cmd* command for removing remote directories
- default: "ssh USEPORT HOSTNAME rmdir"
-
- *g:netrw_rmf_cmd* command for removing remote softlinks
- default: "ssh USEPORT HOSTNAME rm -f"
-
- *g:netrw_servername* use this variable to provide a name for
- |netrw-ctrl-r| to use for its server.
- default: "NETRWSERVER"
-
- *g:netrw_sort_by* sort by "name", "time", "size", or
- "exten".
- default: "name"
-
- *g:netrw_sort_direction* sorting direction: "normal" or "reverse"
- default: "normal"
-
- *g:netrw_sort_options* sorting is done using |:sort|; this
- variable's value is appended to the
- sort command. Thus one may ignore case,
- for example, with the following in your
- .vimrc: >
- let g:netrw_sort_options="i"
-< default: ""
-
- *g:netrw_sort_sequence* when sorting by name, first sort by the
- comma-separated pattern sequence. Note that
- any filigree added to indicate filetypes
- should be accounted for in your pattern.
- default: '[\/]$,*,\.bak$,\.o$,\.h$,
- \.info$,\.swp$,\.obj$'
-
- *g:netrw_special_syntax* If true, then certain files will be shown
- using special syntax in the browser:
-
- netrwBak : *.bak
- netrwCompress: *.gz *.bz2 *.Z *.zip
- netrwCoreDump: core.\d\+
- netrwData : *.dat
- netrwDoc : *.doc,*.txt,*.pdf,
- *.pdf,*.docx
- netrwHdr : *.h
- netrwLex : *.l *.lex
- netrwLib : *.a *.so *.lib *.dll
- netrwMakefile: [mM]akefile *.mak
- netrwObj : *.o *.obj
- netrwPix : *.bmp,*.fit,*.fits,*.gif,
- *.jpg,*.jpeg,*.pcx,*.ppc
- *.pgm,*.png,*.psd,*.rgb
- *.tif,*.xbm,*.xcf
- netrwTags : tags ANmenu ANtags
- netrwTilde : *
- netrwTmp : tmp* *tmp
- netrwYacc : *.y
-
- In addition, those groups mentioned in
- |'suffixes'| are also added to the special
- file highlighting group.
- These syntax highlighting groups are linked
- to netrwGray or Folded by default
- (see |hl-Folded|), but one may put lines like >
- hi link netrwCompress Visual
-< into one's <.vimrc> to use one's own
- preferences. Alternatively, one may
- put such specifications into >
- .vim/after/syntax/netrw.vim.
-< The netrwGray highlighting is set up by
- netrw when >
- * netrwGray has not been previously
- defined
- * the gui is running
-< As an example, I myself use a dark-background
- colorscheme with the following in
- .vim/after/syntax/netrw.vim: >
-
- hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green ctermbg=0 guibg=black
- hi netrwData term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
- hi netrwHdr term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
- hi netrwLex term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
- hi netrwYacc term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
- hi netrwLib term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
- hi netrwObj term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
- hi netrwTilde term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
- hi netrwTmp term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
- hi netrwTags term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
- hi netrwDoc term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
- hi netrwSymLink term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60
-<
- *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
- messages, banners, and whatnot that one doesn't
- want masquerading as "directories" and "files".
- Use this pattern to remove such embedded
- messages. By default its value is:
- '^total\s\+\d\+$'
-
- *g:netrw_ssh_cmd* One may specify an executable command
- to use instead of ssh for remote actions
- such as listing, file removal, etc.
- default: ssh
-
- *g:netrw_suppress_gx_mesg* =1 : browsers sometimes produce messages
- which are normally unwanted intermixed
- with the page.
- However, when using links, for example,
- those messages are what the browser produces.
- By setting this option to 0, netrw will not
- suppress browser messages.
-
- *g:netrw_tmpfile_escape* =' &;'
- escape() is applied to all temporary files
- to escape these characters.
-
- *g:netrw_timefmt* specify format string to vim's strftime().
- The default, "%c", is "the preferred date
- and time representation for the current
- locale" according to my manpage entry for
- strftime(); however, not all are satisfied
- with it. Some alternatives:
- "%a %d %b %Y %T",
- " %a %Y-%m-%d %I-%M-%S %p"
- default: "%c"
-
- *g:netrw_use_noswf* netrw normally avoids writing swapfiles
- for browser buffers. However, under some
- systems this apparently is causing nasty
- ml_get errors to appear; if you're getting
- ml_get errors, try putting
- let g:netrw_use_noswf= 0
- in your .vimrc.
- default: 1
-
- *g:netrw_winsize* specify initial size of new windows made with
- "o" (see |netrw-o|), "v" (see |netrw-v|),
- |:Hexplore| or |:Vexplore|. The g:netrw_winsize
- is an integer describing the percentage of the
- current netrw buffer's window to be used for
- the new window.
- If g:netrw_winsize is less than zero, then
- the absolute value of g:netrw_winsize will be
- used to specify the quantity of lines or
- columns for the new window.
- If g:netrw_winsize is zero, then a normal
- split will be made (ie. |'equalalways'| will
- take effect, for example).
- default: 50 (for 50%)
-
- *g:netrw_wiw* =1 specifies the minimum window width to use
- when shrinking a netrw/Lexplore window
- (see |netrw-c-tab|).
-
- *g:netrw_xstrlen* Controls how netrw computes string lengths,
- including multi-byte characters' string
- length. (thanks to N Weibull, T Mechelynck)
- =0: uses Vim's built-in strlen()
- =1: number of codepoints (Latin a + combining
- circumflex is two codepoints) (DEFAULT)
- =2: number of spacing codepoints (Latin a +
- combining circumflex is one spacing
- codepoint; a hard tab is one; wide and
- narrow CJK are one each; etc.)
- =3: virtual length (counting tabs as anything
- between 1 and |'tabstop'|, wide CJK as 2
- rather than 1, Arabic alif as zero when
- immediately preceded by lam, one
- otherwise, etc)
-
- *g:NetrwTopLvlMenu* This variable specifies the top level
- menu name; by default, it's "Netrw.". If
- you wish to change this, do so in your
- .vimrc.
-
-NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* {{{2
-
-Netrw has been designed to handle user options by saving them, setting the
-options to something that's compatible with netrw's needs, and then restoring
-them. However, the autochdir option: >
- :set acd
-is problematic. Autochdir sets the current directory to that containing the
-file you edit; this apparently also applies to directories. In other words,
-autochdir sets the current directory to that containing the "file" (even if
-that "file" is itself a directory).
-
-NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
-
-With the NetrwSettings.vim plugin, >
- :NetrwSettings
-will bring up a window with the many variables that netrw uses for its
-settings. You may change any of their values; when you save the file, the
-settings therein will be used. One may also press "?" on any of the lines for
-help on what each of the variables do.
-
-(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
-
-
-==============================================================================
-OBTAINING A FILE *netrw-obtain* *netrw-O* {{{2
-
-If there are no marked files:
-
- When browsing a remote directory, one may obtain a file under the cursor
- (ie. get a copy on your local machine, but not edit it) by pressing the O
- key.
-
-If there are marked files:
-
- The marked files will be obtained (ie. a copy will be transferred to your
- local machine, but not set up for editing).
-
-Only ftp and scp are supported for this operation (but since these two are
-available for browsing, that shouldn't be a problem). The status bar will
-then show, on its right hand side, a message like "Obtaining filename". The
-statusline will be restored after the transfer is complete.
-
-Netrw can also "obtain" a file using the local browser. Netrw's display
-of a directory is not necessarily the same as Vim's "current directory",
-unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
-a file using the local browser (by putting the cursor on it) and pressing
-"O" will then "obtain" the file; ie. copy it to Vim's current directory.
-
-Related topics:
- * To see what the current directory is, use |:pwd|
- * To make the currently browsed directory the current directory, see
- |netrw-cd|
- * To automatically make the currently browsed directory the current
- directory, see |g:netrw_keepdir|.
-
- *netrw-newfile* *netrw-createfile*
-OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%* {{{2
-
-To open a new file in netrw's current directory, press "%". This map
-will query the user for a new filename; an empty file by that name will
-be placed in the netrw's current directory (ie. b:netrw_curdir).
-
-If Lexplore (|netrw-:Lexplore|) is in use, the new file will be generated
-in the |g:netrw_chgwin| window.
-
-Related topics: |netrw-d|
-
-
-PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
-
-One may use a preview window by using the "p" key when the cursor is atop the
-desired filename to be previewed. The display will then split to show both
-the browser (where the cursor will remain) and the file (see |:pedit|). By
-default, the split will be taken horizontally; one may use vertical splitting
-if one has set |g:netrw_preview| first.
-
-An interesting set of netrw settings is: >
-
- let g:netrw_preview = 1
- let g:netrw_liststyle = 3
- let g:netrw_winsize = 30
-
-These will:
-
- 1. Make vertical splitting the default for previewing files
- 2. Make the default listing style "tree"
- 3. When a vertical preview window is opened, the directory listing
- will use only 30% of the columns available; the rest of the window
- is used for the preview window.
-
- Related: if you like this idea, you may also find :Lexplore
- (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
-
-Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
-
-
-PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
-
-To edit a file or directory under the cursor in the previously used (last
-accessed) window (see :he |CTRL-W_p|), press a "P". If there's only one
-window, then the one window will be horizontally split (by default).
-
-If there's more than one window, the previous window will be re-used on
-the selected file/directory. If the previous window's associated buffer
-has been modified, and there's only one window with that buffer, then
-the user will be asked if s/he wishes to save the buffer first (yes,
-no, or cancel).
-
-Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
-Associated setting variables:
- |g:netrw_alto| control above/below splitting
- |g:netrw_altv| control right/left splitting
- |g:netrw_preview| control horizontal vs vertical splitting
- |g:netrw_winsize| control initial sizing
-
-Also see: |g:netrw_chgwin| |netrw-p|
-
-
-REFRESHING THE LISTING *netrw-refresh* *netrw-ctrl-l* *netrw-ctrl_l* {{{2
-
-To refresh either a local or remote directory listing, press ctrl-l () or
-hit the when atop the ./ directory entry in the listing. One may also
-refresh a local directory by using ":e .".
-
-
-REVERSING SORTING ORDER *netrw-r* *netrw-reverse* {{{2
-
-One may toggle between normal and reverse sorting order by pressing the
-"r" key.
-
-Related topics: |netrw-s|
-Associated setting variable: |g:netrw_sort_direction|
-
-
-RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* {{{2
-
-If there are no marked files: (see |netrw-mf|)
-
- Renaming files and directories involves moving the cursor to the
- file/directory to be moved (renamed) and pressing "R". You will then be
- queried for what you want the file/directory to be renamed to. You may
- select a range of lines with the "V" command (visual selection), and then
- press "R"; you will be queried for each file as to what you want it
- renamed to.
-
-If there are marked files: (see |netrw-mf|)
-
- Marked files will be renamed (moved). You will be queried as above in
- order to specify where you want the file/directory to be moved.
-
- If you answer a renaming query with a "s/frompattern/topattern/", then
- subsequent files on the marked file list will be renamed by taking each
- name, applying that substitute, and renaming each file to the result.
- As an example : >
-
- mr [query: reply with *.c]
- R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
-<
- This example will mark all *.c files and then rename them to *.cpp
- files. Netrw will protect you from overwriting local files without
- confirmation, but not remote ones.
-
- The ctrl-X character has special meaning for renaming files: >
-
- : a single ctrl-x tells netrw to ignore the portion of the response
- lying between the last '/' and the ctrl-x.
-
- : a pair of contiguous ctrl-x's tells netrw to ignore any
- portion of the string preceding the double ctrl-x's.
-<
- WARNING:~
-
- Note that moving files is a dangerous operation; copies are safer. That's
- because a "move" for remote files is actually a copy + delete -- and if
- the copy fails and the delete succeeds you may lose the file.
- Use at your own risk.
-
-The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
-default its value is: >
-
- ssh HOSTNAME mv
-<
-One may rename a block of files and directories by selecting them with
-V (|linewise-visual|) when using thin style.
-
-See |cmdline-editing| for more on how to edit the command line; in particular,
-you'll find (initiates cmdline window editing) and (uses the
-command line under the cursor) useful in conjunction with the R command.
-
-
-SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
-
-One may select the sorting style by name, time, or (file) size. The "s" map
-allows one to circulate amongst the three choices; the directory listing will
-automatically be refreshed to reflect the selected style.
-
-Related topics: |netrw-r| |netrw-S|
-Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
-
-
-SETTING EDITING WINDOW *netrw-editwindow* *netrw-C* *netrw-:NetrwC* {{{2
-
-One may select a netrw window for editing with the "C" mapping, using the
-:NetrwC [win#] command, or by setting |g:netrw_chgwin| to the selected window
-number. Subsequent selection of a file to edit (|netrw-cr|) will use that
-window.
-
- * C : by itself, will select the current window holding a netrw buffer
- for subsequent editing via |netrw-cr|. The C mapping is only available
- while in netrw buffers.
-
- * [count]C : the count will be used as the window number to be used
- for subsequent editing via |netrw-cr|.
-
- * :NetrwC will set |g:netrw_chgwin| to the current window
-
- * :NetrwC win# will set |g:netrw_chgwin| to the specified window
- number
-
-Using >
- let g:netrw_chgwin= -1
-will restore the default editing behavior
-(ie. subsequent editing will use the current window).
-
-Related topics: |netrw-cr| |g:netrw_browse_split|
-Associated setting variables: |g:netrw_chgwin|
-
-
-SHRINKING OR EXPANDING A NETRW OR LEXPLORE WINDOW *netrw-c-tab* {{{2
-
-The key will toggle a netrw or |:Lexplore| window's width,
-but only if |g:netrw_usetab| exists and is non-zero (and, of course,
-only if your terminal supports differentiating from a plain
-).
-
- * If the current window is a netrw window, toggle its width
- (between |g:netrw_wiw| and its original width)
-
- * Else if there is a |:Lexplore| window in the current tab, toggle
- its width
-
- * Else bring up a |:Lexplore| window
-
-If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
-for , then the will not be mapped. One may map something other
-than a , too: (but you'll still need to have had |g:netrw_usetab| set). >
-
- nmap (whatever) NetrwShrink
-<
-Related topics: |:Lexplore|
-Associated setting variable: |g:netrw_usetab|
-
-
-USER SPECIFIED MAPS *netrw-usermaps* {{{1
-
-One may make customized user maps. Specify a variable, |g:Netrw_UserMaps|,
-to hold a |List| of lists of keymap strings and function names: >
-
- [["keymap-sequence","ExampleUserMapFunc"],...]
-<
-When netrw is setting up maps for a netrw buffer, if |g:Netrw_UserMaps|
-exists, then the internal function netrw#UserMaps(islocal) is called.
-This function goes through all the entries in the |g:Netrw_UserMaps| list:
-
- * sets up maps: >
- nno KEYMAP-SEQUENCE
- :call s:UserMaps(islocal,"ExampleUserMapFunc")
-< * refreshes if result from that function call is the string
- "refresh"
- * if the result string is not "", then that string will be
- executed (:exe result)
- * if the result is a List, then the above two actions on results
- will be taken for every string in the result List
-
-The user function is passed one argument; it resembles >
-
- fun! ExampleUserMapFunc(islocal)
-<
-where a:islocal is 1 if its a local-directory system call or 0 when
-remote-directory system call.
-
- *netrw-call* *netrw-expose* *netrw-modify*
-Use netrw#Expose("varname") to access netrw-internal (script-local)
- variables.
-Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
-Use netrw#Call("funcname"[,args]) to call a netrw-internal function with
- specified arguments.
-
-Example: Get a copy of netrw's marked file list: >
-
- let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
-<
-Example: Modify the value of netrw's marked file list: >
-
- call netrw#Modify("netrwmarkfilelist",[])
-<
-Example: Clear netrw's marked file list via a mapping on gu >
- " ExampleUserMap: {{{2
- fun! ExampleUserMap(islocal)
- call netrw#Modify("netrwmarkfilelist",[])
- call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
- let retval= ["refresh"]
- return retval
- endfun
- let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
-<
-
-10. Problems and Fixes *netrw-problems* {{{1
-
- (This section is likely to grow as I get feedback)
- (also see |netrw-debug|)
- *netrw-p1*
- P1. I use Windows, and my network browsing with ftp doesn't sort by {{{2
- time or size! -or- The remote system is a Windows server; why
- don't I get sorts by time or size?
-
- Windows' ftp has a minimal support for ls (ie. it doesn't
- accept sorting options). It doesn't support the -F which
- gives an explanatory character (ABC/ for "ABC is a directory").
- Netrw then uses "dir" to get both its thin and long listings.
- If you think your ftp does support a full-up ls, put the
- following into your <.vimrc>: >
-
- let g:netrw_ftp_list_cmd = "ls -lF"
- let g:netrw_ftp_timelist_cmd= "ls -tlF"
- let g:netrw_ftp_sizelist_cmd= "ls -slF"
-<
- Alternatively, if you have cygwin on your Windows box, put
- into your <.vimrc>: >
-
- let g:netrw_cygwin= 1
-<
- This problem also occurs when the remote system is Windows.
- In this situation, the various g:netrw_ftp_[time|size]list_cmds
- are as shown above, but the remote system will not correctly
- modify its listing behavior.
-
-
- *netrw-p2*
- P2. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
- used ssh! That wasn't what I asked for...
-
- Netrw has two methods for browsing remote directories: ssh
- and ftp. Unless you specify ftp specifically, ssh is used.
- When it comes time to do download a file (not just a directory
- listing), netrw will use the given protocol to do so.
-
- *netrw-p3*
- P3. I would like long listings to be the default. {{{2
-
- Put the following statement into your |.vimrc|: >
-
- let g:netrw_liststyle= 1
-<
- Check out |netrw-browser-var| for more customizations that
- you can set.
-
- *netrw-p4*
- P4. My times come up oddly in local browsing {{{2
-
- Does your system's strftime() accept the "%c" to yield dates
- such as "Sun Apr 27 11:49:23 1997"? If not, do a
- "man strftime" and find out what option should be used. Then
- put it into your |.vimrc|: >
-
- let g:netrw_timefmt= "%X" (where X is the option)
-<
- *netrw-p5*
- P5. I want my current directory to track my browsing. {{{2
- How do I do that?
-
- Put the following line in your |.vimrc|:
->
- let g:netrw_keepdir= 0
-<
- *netrw-p6*
- P6. I use Chinese (or other non-ascii) characters in my filenames, {{{2
- and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
-
- (taken from an answer provided by Wu Yongwei on the vim
- mailing list)
- I now see the problem. Your code page is not 936, right? Vim
- seems only able to open files with names that are valid in the
- current code page, as are many other applications that do not
- use the Unicode version of Windows APIs. This is an OS-related
- issue. You should not have such problems when the system
- locale uses UTF-8, such as modern Linux distros.
-
- (...it is one more reason to recommend that people use utf-8!)
-
- *netrw-p7*
- P7. I'm getting "ssh is not executable on your system" -- what do I {{{2
- do?
-
- (Dudley Fox) Most people I know use putty for windows ssh. It
- is a free ssh/telnet application. You can read more about it
- here:
-
- http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:
-
- (Marlin Unruh) This program also works for me. It's a single
- executable, so he/she can copy it into the Windows\System32
- folder and create a shortcut to it.
-
- (Dudley Fox) You might also wish to consider plink, as it
- sounds most similar to what you are looking for. plink is an
- application in the putty suite.
-
- http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
-
- (Vissale Neang) Maybe you can try OpenSSH for windows, which
- can be obtained from:
-
- http://sshwindows.sourceforge.net/
-
- It doesn't need the full Cygwin package.
-
- (Antoine Mechelynck) For individual Unix-like programs needed
- for work in a native-Windows environment, I recommend getting
- them from the GnuWin32 project on sourceforge if it has them:
-
- http://gnuwin32.sourceforge.net/
-
- Unlike Cygwin, which sets up a Unix-like virtual machine on
- top of Windows, GnuWin32 is a rewrite of Unix utilities with
- Windows system calls, and its programs works quite well in the
- cmd.exe "Dos box".
-
- (dave) Download WinSCP and use that to connect to the server.
- In Preferences > Editors, set gvim as your editor:
-
- - Click "Add..."
- - Set External Editor (adjust path as needed, include
- the quotes and !.! at the end):
- "c:\Program Files\Vim\vim82\gvim.exe" !.!
- - Check that the filetype in the box below is
- {asterisk}.{asterisk} (all files), or whatever types
- you want (cec: change {asterisk} to * ; I had to
- write it that way because otherwise the helptags
- system thinks it's a tag)
- - Make sure it's at the top of the listbox (click it,
- then click "Up" if it's not)
- If using the Norton Commander style, you just have to hit
- to edit a file in a local copy of gvim.
-
- (Vit Gottwald) How to generate public/private key and save
- public key it on server: >
- http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
- (8.3 Getting ready for public key authentication)
-<
- How to use a private key with 'pscp': >
-
- http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
- (5.2.4 Using public key authentication with PSCP)
-<
- (Ben Schmidt) I find the ssh included with cwRsync is
- brilliant, and install cwRsync or cwRsyncServer on most
- Windows systems I come across these days. I guess COPSSH,
- packed by the same person, is probably even better for use as
- just ssh on Windows, and probably includes sftp, etc. which I
- suspect the cwRsync doesn't, though it might
-
- (cec) To make proper use of these suggestions above, you will
- need to modify the following user-settable variables in your
- .vimrc:
-
- |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd|
- |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|
-
- The first one (|g:netrw_ssh_cmd|) is the most important; most
- of the others will use the string in g:netrw_ssh_cmd by
- default.
-
- *netrw-p8* *netrw-ml_get*
- P8. I'm browsing, changing directory, and bang! ml_get errors {{{2
- appear and I have to kill vim. Any way around this?
-
- Normally netrw attempts to avoid writing swapfiles for
- its temporary directory buffers. However, on some systems
- this attempt appears to be causing ml_get errors to
- appear. Please try setting |g:netrw_use_noswf| to 0
- in your <.vimrc>: >
- let g:netrw_use_noswf= 0
-<
- *netrw-p9*
- P9. I'm being pestered with "[something] is a directory" and {{{2
- "Press ENTER or type command to continue" prompts...
-
- The "[something] is a directory" prompt is issued by Vim,
- not by netrw, and there appears to be no way to work around
- it. Coupled with the default cmdheight of 1, this message
- causes the "Press ENTER..." prompt. So: read |hit-enter|;
- I also suggest that you set your |'cmdheight'| to 2 (or more) in
- your <.vimrc> file.
-
- *netrw-p10*
- P10. I want to have two windows; a thin one on the left and my {{{2
- editing window on the right. How may I accomplish this?
-
- You probably want netrw running as in a side window. If so, you
- will likely find that ":[N]Lexplore" does what you want. The
- optional "[N]" allows you to select the quantity of columns you
- wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
- for how this parameter works).
-
- Previous solution:
-
- * Put the following line in your <.vimrc>:
- let g:netrw_altv = 1
- * Edit the current directory: :e .
- * Select some file, press v
- * Resize the windows as you wish (see |CTRL-W_<| and
- |CTRL-W_>|). If you're using gvim, you can drag
- the separating bar with your mouse.
- * When you want a new file, use ctrl-w h to go back to the
- netrw browser, select a file, then press P (see |CTRL-W_h|
- and |netrw-P|). If you're using gvim, you can press
- in the browser window and then press the
- to select the file.
-
-
- *netrw-p11*
- P11. My directory isn't sorting correctly, or unwanted letters are {{{2
- appearing in the listed filenames, or things aren't lining
- up properly in the wide listing, ...
-
- This may be due to an encoding problem. I myself usually use
- utf-8, but really only use ascii (ie. bytes from 32-126).
- Multibyte encodings use two (or more) bytes per character.
- You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
-
- *netrw-p12*
- P12. I'm a Windows + putty + ssh user, and when I attempt to {{{2
- browse, the directories are missing trailing "/"s so netrw treats
- them as file transfers instead of as attempts to browse
- subdirectories. How may I fix this?
-
- (mikeyao) If you want to use vim via ssh and putty under Windows,
- try combining the use of pscp/psftp with plink. pscp/psftp will
- be used to connect and plink will be used to execute commands on
- the server, for example: list files and directory using 'ls'.
-
- These are the settings I use to do this:
->
- " list files, it's the key setting, if you haven't set,
- " you will get a blank buffer
- let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
- " if you haven't add putty directory in system path, you should
- " specify scp/sftp command. For examples:
- "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
- "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
-<
- *netrw-p13*
- P13. I would like to speed up writes using Nwrite and scp/ssh {{{2
- style connections. How? (Thomer M. Gil)
-
- Try using ssh's ControlMaster and ControlPath (see the ssh_config
- man page) to share multiple ssh connections over a single network
- connection. That cuts out the cryptographic handshake on each
- file write, sometimes speeding it up by an order of magnitude.
- (see http://thomer.com/howtos/netrw_ssh.html)
- (included by permission)
-
- Add the following to your ~/.ssh/config: >
-
- # you change "*" to the hostname you care about
- Host *
- ControlMaster auto
- ControlPath /tmp/%r@%h:%p
-
-< Then create an ssh connection to the host and leave it running: >
-
- ssh -N host.domain.com
-
-< Now remotely open a file with Vim's Netrw and enjoy the
- zippiness: >
-
- vim scp://host.domain.com//home/user/.bashrc
-<
- *netrw-p14*
- P14. How may I use a double-click instead of netrw's usual single {{{2
- click to open a file or directory? (Ben Fritz)
-
- First, disable netrw's mapping with >
- let g:netrw_mousemaps= 0
-< and then create a netrw buffer only mapping in
- $HOME/.vim/after/ftplugin/netrw.vim: >
- nmap <2-leftmouse>
-< Note that setting g:netrw_mousemaps to zero will turn off
- all netrw's mouse mappings, not just the one.
- (see |g:netrw_mousemaps|)
-
- *netrw-p15*
- P15. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
- under Windows I get an |E303| message complaining that its unable
- to open a swap file.
-
- (romainl) It looks like you are starting Vim from a protected
- directory. Start netrw from your $HOME or other writable
- directory.
-
- *netrw-p16*
- P16. Netrw is closing buffers on its own. {{{2
- What steps will reproduce the problem?
- 1. :Explore, navigate directories, open a file
- 2. :Explore, open another file
- 3. Buffer opened in step 1 will be closed. o
- What is the expected output? What do you see instead?
- I expect both buffers to exist, but only the last one does.
-
- (Lance) Problem is caused by "set autochdir" in .vimrc.
- (drchip) I am able to duplicate this problem with |'acd'| set.
- It appears that the buffers are not exactly closed;
- a ":ls!" will show them (although ":ls" does not).
-
- *netrw-P17*
- P17. How to locally edit a file that's only available via {{{2
- another server accessible via ssh?
- See http://stackoverflow.com/questions/12469645/
- "Using Vim to Remotely Edit A File on ServerB Only
- Accessible From ServerA"
-
- *netrw-P18*
- P18. How do I get numbering on in directory listings? {{{2
- With |g:netrw_bufsettings|, you can control netrw's buffer
- settings; try putting >
- let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
-< in your .vimrc. If you'd like to have relative numbering
- instead, try >
- let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
-<
- *netrw-P19*
- P19. How may I have gvim start up showing a directory listing? {{{2
- Try putting the following code snippet into your .vimrc: >
- augroup VimStartup
- au!
- au VimEnter * if expand("%") == "" && argc() == 0 &&
- \ (v:servername =~ 'GVIM\d*' || v:servername == "")
- \ | e . | endif
- augroup END
-< You may use Lexplore instead of "e" if you're so inclined.
- This snippet assumes that you have client-server enabled
- (ie. a "huge" vim version).
-
- *netrw-P20*
- P20. I've made a directory (or file) with an accented character, {{{2
- but netrw isn't letting me enter that directory/read that file:
-
- Its likely that the shell or o/s is using a different encoding
- than you have vim (netrw) using. A patch to vim supporting
- "systemencoding" may address this issue in the future; for
- now, just have netrw use the proper encoding. For example: >
-
- au FileType netrw set enc=latin1
-<
- *netrw-P21*
- P21. I get an error message when I try to copy or move a file: {{{2
-
- **error** (netrw) tried using g:netrw_localcopycmd; it doesn't work!
-
- What's wrong?
-
- Netrw uses several system level commands to do things (see
-
- |g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
- |g:netrw_mkdir_cmd|).
-
- You may need to adjust the default commands for one or more of
- these commands by setting them properly in your .vimrc. Another
- source of difficulty is that these commands use vim's local
- directory, which may not be the same as the browsing directory
- shown by netrw (see |g:netrw_keepdir|).
-
-
-==============================================================================
-11. Debugging Netrw Itself *netrw-debug* {{{1
-
-Step 1: check that the problem you've encountered hasn't already been resolved
-by obtaining a copy of the latest (often developmental) netrw at:
-
- http://www.drchip.org/astronaut/vim/index.html#NETRW
-
-The script is typically installed on systems as something like:
->
- /usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
- /usr/local/share/vim/vim8x/autoload/netrw.vim
- (see output of :echo &rtp)
-<
-which is loaded automatically at startup (assuming :set nocp). If you
-installed a new netrw, then it will be located at >
-
- $HOME/.vim/plugin/netrwPlugin.vim
- $HOME/.vim/autoload/netrw.vim
-<
-Step 2: assuming that you've installed the latest version of netrw,
-check that your problem is really due to netrw. Create a file
-called netrw.vimrc with the following contents: >
-
- set nocp
- so $HOME/.vim/plugin/netrwPlugin.vim
-<
-Then run netrw as follows: >
-
- vim -u netrw.vimrc --noplugins -i NONE [some path here]
-<
-Perform whatever netrw commands you need to, and check that the problem is
-still present. This procedure sidesteps any issues due to personal .vimrc
-settings, .viminfo file, and other plugins. If the problem does not appear,
-then you need to determine which setting in your .vimrc is causing the
-conflict with netrw or which plugin(s) is/are involved.
-
-Step 3: If the problem still is present, then get a debugging trace from
-netrw:
-
- 1. Get the script, available as:
-
- http://www.drchip.org/astronaut/vim/index.html#DECHO
- or
- http://vim.sourceforge.net/scripts/script.php?script_id=120
-
- Decho.vim is provided as a "vimball"; see |vimball-intro|. You
- should edit the Decho.vba.gz file and source it in: >
-
- vim Decho.vba.gz
- :so %
- :q
-<
- 2. To turn on debug tracing in netrw, then edit the
- file by typing: >
-
- vim netrw.vim
- :DechoOn
- :wq
-<
- To restore to normal non-debugging behavior, re-edit
- and type >
-
- vim netrw.vim
- :DechoOff
- :wq
-<
- This command, provided by , will comment out all
- Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
-
- 3. Then bring up vim and attempt to evoke the problem by doing a
- transfer or doing some browsing. A set of messages should appear
- concerning the steps that took in attempting to
- read/write your file over the network in a separate tab or
- server vim window.
-
- Change the netrw.vimrc file to include the Decho plugin: >
-
- set nocp
- so $HOME/.vim/plugin/Decho.vim
- so $HOME/.vim/plugin/netrwPlugin.vim
-<
- You should continue to run vim with >
-
- vim -u netrw.vimrc --noplugins -i NONE [some path here]
-<
- to avoid entanglements with options and other plugins.
-
- To save the file: under linux, the output will be in a separate
- remote server window; in it, just save the file with >
-
- :w! DBG
-
-< Under a vim that doesn't support clientserver, your debugging
- output will appear in another tab: >
-
- :tabnext
- :set bt=
- :w! DBG
-<
- Furthermore, it'd be helpful if you would type >
-
- :Dsep
-
-< where is the command you're about to type next,
- thereby making it easier to associate which part of the
- debugging trace is due to which command.
-
- For bug reports, please see |bugs|.
-==============================================================================
-12. History *netrw-history* {{{1
-
- 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 ..." 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-|,
- 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 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 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 "" 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 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
- 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 "" 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 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 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 to .
- 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 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
-
-==============================================================================
-13. Todo *netrw-todo* {{{1
-
-07/29/09 : banner :|g:netrw_banner| can be used to suppress the
- suppression banner. This feature is new and experimental,
- so its in the process of being debugged.
-09/04/09 : "gp" : See if it can be made to work for remote systems.
- : See if it can be made to work with marked files.
-
-==============================================================================
-14. Credits *netrw-credits* {{{1
-
- Vim editor by Bram Moolenaar (Thanks, Bram!)
- dav support by C Campbell
- fetch support by Bram Moolenaar and C Campbell
- ftp support by C Campbell
- http support by Bram Moolenaar
- rcp
- rsync support by C Campbell (suggested by Erik Warendorph)
- scp support by raf
- sftp support by C Campbell
-
- inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
-
- Jérôme Augé -- also using new buffer method with ftp+.netrc
- Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use,
- fetch,...
- Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution
- Erik Warendorph -- for several suggestions (g:netrw_..._cmd
- variables, rsync etc)
- Doug Claar -- modifications to test for success with ftp
- operation
-
-==============================================================================
-Modelines: {{{1
-vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
new file mode 120000
index 0000000000..9a5c117e03
--- /dev/null
+++ b/runtime/doc/pi_netrw.txt
@@ -0,0 +1 @@
+../pack/dist/opt/netrw/doc/netrw.txt
\ No newline at end of file
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index b6d79507ff..834f0e1b6e 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -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
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 005f33f4e3..2dbcd996a0 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2024 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*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 097d88ed55..b55d15bddf 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -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*
@@ -5644,6 +5647,7 @@ MMCellWidthMultiplier gui_mac.txt /*MMCellWidthMultiplier*
MMCmdLineAlignBottom gui_mac.txt /*MMCmdLineAlignBottom*
MMDialogsTrackPwd gui_mac.txt /*MMDialogsTrackPwd*
MMDisableLaunchAnimation gui_mac.txt /*MMDisableLaunchAnimation*
+MMDisableTablineAnimation gui_mac.txt /*MMDisableTablineAnimation*
MMFontPreserveLineSpacing gui_mac.txt /*MMFontPreserveLineSpacing*
MMFullScreenFadeTime gui_mac.txt /*MMFullScreenFadeTime*
MMLoginShell gui_mac.txt /*MMLoginShell*
@@ -5658,9 +5662,10 @@ MMRendererClipToRow gui_mac.txt /*MMRendererClipToRow*
MMScrollOneDirectionOnly gui_mac.txt /*MMScrollOneDirectionOnly*
MMShareFindPboard gui_mac.txt /*MMShareFindPboard*
MMShowAddTabButton gui_mac.txt /*MMShowAddTabButton*
+MMShowTabScrollButtons gui_mac.txt /*MMShowTabScrollButtons*
MMShowWhatsNewOnStartup gui_mac.txt /*MMShowWhatsNewOnStartup*
MMSmoothResize gui_mac.txt /*MMSmoothResize*
-MMTabMaxWidth gui_mac.txt /*MMTabMaxWidth*
+MMTabColorsMode gui_mac.txt /*MMTabColorsMode*
MMTabMinWidth gui_mac.txt /*MMTabMinWidth*
MMTabOptimumWidth gui_mac.txt /*MMTabOptimumWidth*
MMTextInsetBottom gui_mac.txt /*MMTextInsetBottom*
@@ -5673,6 +5678,7 @@ MMTranslateCtrlClick gui_mac.txt /*MMTranslateCtrlClick*
MMUpdaterPrereleaseChannel gui_mac.txt /*MMUpdaterPrereleaseChannel*
MMUseMouseTime gui_mac.txt /*MMUseMouseTime*
MMVerticalSplit gui_mac.txt /*MMVerticalSplit*
+MMWindowUseTabBackgroundColor gui_mac.txt /*MMWindowUseTabBackgroundColor*
MMZoomBoth gui_mac.txt /*MMZoomBoth*
MS-DOS os_msdos.txt /*MS-DOS*
MS-Windows os_win32.txt /*MS-Windows*
@@ -6285,6 +6291,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*
@@ -6451,6 +6458,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*
@@ -7455,6 +7463,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*
@@ -8026,6 +8035,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()*
@@ -8643,6 +8653,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*
@@ -9160,7 +9171,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*
@@ -9194,7 +9204,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*
@@ -9305,7 +9314,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*
@@ -9322,6 +9330,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*
@@ -9550,9 +9559,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*
@@ -9630,7 +9647,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*
@@ -10407,6 +10423,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()*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 7e2d898245..43b5e5f247 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -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
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 48937b1041..2d48cc974d 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -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
diff --git a/runtime/doc/uganda.rux b/runtime/doc/uganda.rux
deleted file mode 100644
index 6f0f205f86..0000000000
--- a/runtime/doc/uganda.rux
+++ /dev/null
@@ -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.
-
-Если у вас остались вопросы, можете задать их по электронной почте
-.
-
-Адрес центра:
- 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,
-© Restorer, редакторская правка, 2024,
-
- vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index 70d24d3dd9..00d496253e 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -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-. So >
+ :help package-comment
+<
+ will bring you to the help section for the included comment plugin and how to
+ enable it.
+
==============================================================================
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index ca6b910754..93231f6cd1 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -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
diff --git a/runtime/doc/usr_25.txt b/runtime/doc/usr_25.txt
index af013bcfe7..5b4df0d0e6 100644
--- a/runtime/doc/usr_25.txt
+++ b/runtime/doc/usr_25.txt
@@ -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
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 08b7b9d539..068f6ab30b 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -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
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index bcb0b78f7b..2f2ab5ae07 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -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: ~
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index a978ea3693..5ea4ebe58e 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -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.
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 154ce79cb6..d2ff662269 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: The Vim Project
-" Last Change: 2025 Jan 08
+" Last Change: 2025 Jan 21
" Former Maintainer: Bram Moolenaar
" 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
diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim
index 378d58065a..915861b8d5 100644
--- a/runtime/ftplugin/c.vim
+++ b/runtime/ftplugin/c.vim
@@ -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
diff --git a/runtime/ftplugin/editorconfig.vim b/runtime/ftplugin/editorconfig.vim
index 6d437351eb..1693a95c0b 100644
--- a/runtime/ftplugin/editorconfig.vim
+++ b/runtime/ftplugin/editorconfig.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: EditorConfig
" Maintainer: Riley Bruins
-" 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<'
diff --git a/runtime/ftplugin/just.vim b/runtime/ftplugin/just.vim
new file mode 100644
index 0000000000..6f2acddf96
--- /dev/null
+++ b/runtime/ftplugin/just.vim
@@ -0,0 +1,17 @@
+" Vim ftplugin file
+" Language: Justfile
+" Maintainer: Peter Benjamin <@pbnj>
+" Last Change: 2025 Jan 19
+" Credits: The original author, Noah Bogart
+
+" 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<"
diff --git a/runtime/ftplugin/kconfig.vim b/runtime/ftplugin/kconfig.vim
index 767490701b..1c2857ec50 100644
--- a/runtime/ftplugin/kconfig.vim
+++ b/runtime/ftplugin/kconfig.vim
@@ -2,7 +2,7 @@
" Vim syntax file
" Maintainer: Christian Brabandt
" Previous Maintainer: Nikolai Weibull
-" 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 = '^\