mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Merge remote-tracking branch 'vim/master'
This commit is contained in:
@@ -1,52 +0,0 @@
|
||||
version: "{build}"
|
||||
|
||||
image: Visual Studio 2015
|
||||
|
||||
skip_tags: true
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- FEATURE: HUGE
|
||||
|
||||
# Alternate environments, not used right now. 2022 is a lot slower.
|
||||
#
|
||||
# - job_name: VS-2015
|
||||
# appveyor_build_worker_image: Visual Studio 2015
|
||||
# FEATURE: HUGE
|
||||
|
||||
# - job_name: VS-2017
|
||||
# appveyor_build_worker_image: Visual Studio 2017
|
||||
# FEATURE: HUGE
|
||||
|
||||
# - job_name: VS-2019
|
||||
# appveyor_build_worker_image: Visual Studio 2019
|
||||
# FEATURE: HUGE
|
||||
|
||||
# - job_name: VS-2022
|
||||
# appveyor_build_worker_image: Visual Studio 2022
|
||||
# FEATURE: HUGE
|
||||
|
||||
# disabled
|
||||
# - FEATURE: TINY
|
||||
# - FEATURE: NORMAL
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
before_build:
|
||||
- call ver
|
||||
- ci\appveyor.bat install
|
||||
|
||||
build_script:
|
||||
- ci\appveyor.bat build
|
||||
|
||||
test_script:
|
||||
- ci\appveyor.bat test
|
||||
|
||||
artifacts:
|
||||
- path: src/vim.exe
|
||||
name: vim
|
||||
- path: src/gvim.exe
|
||||
name: gvim
|
||||
|
||||
# vim: sw=2 sts=2 et ts=8 sr
|
||||
+15
-6
@@ -18,6 +18,7 @@ runtime/autoload/javascriptcomplete.vim @jsit
|
||||
runtime/autoload/modula2.vim @dkearns
|
||||
runtime/autoload/rubycomplete.vim @segfault @dkearns
|
||||
runtime/autoload/rust.vim @lilyball
|
||||
runtime/autoload/tohtml.vim @fritzophrenic
|
||||
runtime/autoload/typeset.vim @lifepillar
|
||||
runtime/autoload/xmlformat.vim @chrisbra
|
||||
runtime/autoload/dist/json.vim @habamax
|
||||
@@ -133,6 +134,7 @@ runtime/doc/xxd-ru.1 @RestorerZ
|
||||
runtime/doc/xxd-ru.UTF-8.1 @RestorerZ
|
||||
runtime/ftplugin/abaqus.vim @costerwi
|
||||
runtime/ftplugin/abnf.vim @A4-Tacks
|
||||
runtime/ftplugin/algol68.vim @dkearns
|
||||
runtime/ftplugin/antlr4.vim @jiangyinzuo
|
||||
runtime/ftplugin/apache.vim @dubgeiser
|
||||
runtime/ftplugin/arduino.vim @k-takata
|
||||
@@ -338,6 +340,7 @@ runtime/ftplugin/thrift.vim @jiangyinzuo
|
||||
runtime/ftplugin/tiasm.vim @Freed-Wu
|
||||
runtime/ftplugin/tidy.vim @dkearns
|
||||
runtime/ftplugin/tmux.vim @ericpruitt
|
||||
runtime/ftplugin/tolk.vim @redavy
|
||||
runtime/ftplugin/toml.vim @averms
|
||||
runtime/ftplugin/tt2html.vim @petdance
|
||||
runtime/ftplugin/twig.vim @ribru17
|
||||
@@ -402,6 +405,7 @@ runtime/indent/json.vim @elzr
|
||||
runtime/indent/jsonc.vim @izhakjakov
|
||||
runtime/indent/julia.vim @carlobaldassi
|
||||
runtime/indent/just.vim @pbnj
|
||||
runtime/indent/karel.vim @KnoP-01
|
||||
runtime/indent/kdl.vim @imsnif @jiangyinzuo
|
||||
runtime/indent/kotlin.vim @udalov
|
||||
runtime/indent/krl.vim @KnoP-01
|
||||
@@ -468,10 +472,12 @@ runtime/pack/dist/opt/helptoc/ @kennypete
|
||||
runtime/pack/dist/opt/matchit/ @chrisbra
|
||||
runtime/pack/dist/opt/nohlsearch/ @habamax
|
||||
runtime/plugin/manpager.vim @Konfekt
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/plugin/tohtml.vim @fritzophrenic
|
||||
runtime/syntax/2html.vim @fritzophrenic
|
||||
runtime/syntax/abaqus.vim @costerwi
|
||||
runtime/syntax/abnf.vim @A4-Tacks
|
||||
runtime/syntax/aidl.vim @dpelle
|
||||
runtime/syntax/algol68.vim @dkearns
|
||||
runtime/syntax/amiga.vim @sodero
|
||||
runtime/syntax/ant.vim @dkearns
|
||||
runtime/syntax/antlr4.vim @jiangyinzuo
|
||||
@@ -578,17 +584,17 @@ runtime/syntax/java.vim @zzzyxwvut
|
||||
runtime/syntax/javascript.vim @fleiner
|
||||
runtime/syntax/jinja.vim @gpanders
|
||||
runtime/syntax/jjdescription.vim @gpanders
|
||||
runtime/syntax/jq.vim @vito-c
|
||||
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
|
||||
runtime/syntax/kdl.vim @imsnif @jiangyinzuo
|
||||
runtime/syntax/kitty.vim @OXY2DEV
|
||||
runtime/syntax/kivy.vim @prophittcorey
|
||||
runtime/syntax/kotlin.vim @udalov
|
||||
runtime/syntax/kdl.vim @imsnif @jiangyinzuo
|
||||
runtime/syntax/krl.vim @KnoP-01
|
||||
runtime/syntax/leex.vim @jparise
|
||||
runtime/syntax/less.vim @genoma
|
||||
@@ -605,8 +611,8 @@ runtime/syntax/m3quake.vim @dkearns
|
||||
runtime/syntax/mailcap.vim @dkearns
|
||||
runtime/syntax/mallard.vim @jhradilek
|
||||
runtime/syntax/markdown.vim @tpope
|
||||
runtime/syntax/mbsync.vim @fymyte
|
||||
runtime/syntax/mason.vim @petdance
|
||||
runtime/syntax/mbsync.vim @fymyte
|
||||
runtime/syntax/mediawiki.vim @avidseeker
|
||||
runtime/syntax/meson.vim @Liambeguin
|
||||
runtime/syntax/mf.vim @lifepillar
|
||||
@@ -655,8 +661,8 @@ runtime/syntax/qml.vim @ChaseKnowlden
|
||||
runtime/syntax/racket.vim @benknoble
|
||||
runtime/syntax/raml.vim @in3d
|
||||
runtime/syntax/rapid.vim @KnoP-01
|
||||
runtime/syntax/ratpoison.vim @trapd00r
|
||||
runtime/syntax/rasi.vim @fymyte
|
||||
runtime/syntax/ratpoison.vim @trapd00r
|
||||
runtime/syntax/rc.vim @chrisbra
|
||||
runtime/syntax/rcs.vim @hdima
|
||||
runtime/syntax/rebol.vim @mrdubya
|
||||
@@ -672,8 +678,10 @@ runtime/syntax/scala.vim @derekwyatt
|
||||
runtime/syntax/scheme.vim @evhan
|
||||
runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/sgf.vim @lykahb
|
||||
runtime/syntax/shaderslang.vim @mTvare6
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/syntax/skhd.vim @kiyoon
|
||||
runtime/syntax/solidity.vim @coti-z
|
||||
runtime/syntax/spajson.vim @dseomn
|
||||
@@ -698,6 +706,7 @@ runtime/syntax/thrift.vim @jiangyinzuo
|
||||
runtime/syntax/tiasm.vim @Freed-Wu
|
||||
runtime/syntax/tidy.vim @dkearns
|
||||
runtime/syntax/tmux.vim @ericpruitt
|
||||
runtime/syntax/tolk.vim @redavy
|
||||
runtime/syntax/toml.vim @averms
|
||||
runtime/syntax/tt2.vim @petdance
|
||||
runtime/syntax/tt2html.vim @petdance
|
||||
|
||||
@@ -0,0 +1,325 @@
|
||||
name: Build Vim on Linux
|
||||
description: Build Vim on Linux
|
||||
|
||||
inputs:
|
||||
features:
|
||||
description: Vim features
|
||||
required: true
|
||||
compiler:
|
||||
description: Compiler
|
||||
required: true
|
||||
architecture:
|
||||
description: Architecture
|
||||
required: false
|
||||
extra:
|
||||
description: Extra flags
|
||||
required: true
|
||||
shadow:
|
||||
description: Shadow directory
|
||||
required: false
|
||||
interface:
|
||||
description: Interface of language interpreter
|
||||
required: false
|
||||
lua_ver:
|
||||
description: Lua version
|
||||
required: false
|
||||
python3:
|
||||
description: Python3 ABI type
|
||||
required: false
|
||||
coverage:
|
||||
description: Enable coverage
|
||||
required: false
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Check Filelist (for packaging)
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Check Filelist (for packaging)'
|
||||
# If any files in the repository are not listed in Filelist this will
|
||||
# exit with an error code and list the missing entries.
|
||||
make -f ci/unlisted.make
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Check hlgroups (are any new hlgroups added, but not handled in highlight.c)
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Check hlgroups (are any new hlgroups added, but not handled in highlight.c)'
|
||||
# If any highlight groups have been documented, but not handled in
|
||||
# highlight.c, nor listed as 'intentionally left out' in hlgroups.ignore,
|
||||
# exit with an error code and list the missing entries.
|
||||
make -C ci -f hlgroups.make
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Report executable syntax tests
|
||||
if: contains(fromJSON(inputs.extra), 'syn_test_execs')
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Report executable syntax tests'
|
||||
# Search and list all found executable syntax tests, and exit with
|
||||
# an error code.
|
||||
make -C runtime/syntax executables
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Add i386 packages to dpkg
|
||||
if: inputs.architecture == 'i386'
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Add i386 packages to dpkg'
|
||||
sudo dpkg --add-architecture i386
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Uninstall snap
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Uninstall snap'
|
||||
sudo bash ci/remove_snap.sh
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Enable debug packages
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Enable debug packages'
|
||||
# Some of the ASAN suppressions are in libraries linked with dlopen
|
||||
# and symbolization of them requires these debug packages.
|
||||
sudo apt install ubuntu-dbgsym-keyring
|
||||
sudo cp ci/ddebs.list /etc/apt/sources.list.d/ddebs.list
|
||||
sudo cp ci/pinned-pkgs /etc/apt/preferences.d/pinned-pkgs
|
||||
echo '::endgroup::'
|
||||
|
||||
# TODO: switch to GTK4 GUI
|
||||
- name: Install packages
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Install packages'
|
||||
# This is added by default, and it is often broken, but we don't need anything from it
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
PKGS=( \
|
||||
gettext \
|
||||
x11-utils \
|
||||
labwc \
|
||||
wl-clipboard \
|
||||
wayland-utils \
|
||||
libgtk-3-dev:${{ inputs.architecture }} \
|
||||
libgtk-3-bin:${{ inputs.architecture }} \
|
||||
desktop-file-utils \
|
||||
libc6-dbgsym:${{ inputs.architecture }} \
|
||||
libtool-bin \
|
||||
libncurses-dev:${{ inputs.architecture }} \
|
||||
libxt-dev:${{ inputs.architecture }} \
|
||||
libegl-mesa0:${{ inputs.architecture }} \
|
||||
libegl1:${{ inputs.architecture }} \
|
||||
libegl1-mesa-dev:${{ inputs.architecture }} \
|
||||
libepoxy-dev:${{ inputs.architecture }} \
|
||||
libwayland-egl1:${{ inputs.architecture }} \
|
||||
libwayland-client0:${{ inputs.architecture }} \
|
||||
libwayland-cursor0:${{ inputs.architecture }} \
|
||||
locales-all \
|
||||
software-properties-common \
|
||||
)
|
||||
if ${{ contains(fromJSON(inputs.extra), 'asan') }} && ${{ contains(inputs.architecture, 'native') }}; then
|
||||
PKGS+=( \
|
||||
libepoxy0-dbgsym:${{ inputs.architecture }} \
|
||||
libxdamage1-dbgsym:${{ inputs.architecture }} \
|
||||
libxcb1-dbgsym:${{ inputs.architecture }} \
|
||||
libgtk-3-bin-dbgsym:${{ inputs.architecture }} \
|
||||
libgtk-3-0t64-dbgsym:${{ inputs.architecture }} \
|
||||
libglib2.0-0t64-dbgsym:${{ inputs.architecture }} \
|
||||
libglib2.0-bin-dbgsym:${{ inputs.architecture }} \
|
||||
libglib2.0-dev-bin-dbgsym:${{ inputs.architecture }} \
|
||||
)
|
||||
fi
|
||||
if ${{ inputs.features == 'huge' }}; then
|
||||
LUA_VER=${{ inputs.lua_ver || '5.4' }}
|
||||
PKGS+=( \
|
||||
autoconf \
|
||||
gdb \
|
||||
lcov \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python3-dev \
|
||||
liblua${LUA_VER}-dev \
|
||||
lua${LUA_VER} \
|
||||
ruby-dev \
|
||||
tcl-dev \
|
||||
cscope \
|
||||
libsodium-dev \
|
||||
attr \
|
||||
libattr1-dev
|
||||
)
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'proto') }}; then
|
||||
PKGS+=( python3-clang )
|
||||
fi
|
||||
sudo apt-get update && sudo apt-get upgrade -y --allow-downgrades && sudo apt-get install -y --allow-downgrades "${PKGS[@]}"
|
||||
|
||||
- name: Install gcc-${{ env.GCC_VER }}
|
||||
if: inputs.compiler == 'gcc'
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Install gcc-${{ env.GCC_VER }}'
|
||||
# ubuntu-toolchain-r/test PPA for gcc-13 compiler
|
||||
# disabled because the installation failed, causing test failures
|
||||
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ inputs.architecture }}
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100
|
||||
sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }}
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Install clang-${{ env.CLANG_VER }}
|
||||
if: inputs.compiler == 'clang'
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Install clang-${{ env.CLANG_VER }}'
|
||||
. /etc/lsb-release
|
||||
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/llvm-archive-keyring.gpg > /dev/null
|
||||
echo "Types: deb
|
||||
URIs: https://apt.llvm.org/${DISTRIB_CODENAME}/
|
||||
Suites: llvm-toolchain-${DISTRIB_CODENAME}-${{ env.CLANG_VER }}
|
||||
Components: main
|
||||
Signed-By: /usr/share/keyrings/llvm-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/llvm-toolchain.sources > /dev/null
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y clang-${{ env.CLANG_VER }} llvm-${{ env.CLANG_VER }}
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ env.CLANG_VER }} 100
|
||||
sudo update-alternatives --set clang /usr/bin/clang-${{ env.CLANG_VER }}
|
||||
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-${{ env.CLANG_VER }} 100
|
||||
sudo update-alternatives --install /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-${{ env.CLANG_VER }} 100
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Set up environment
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Set up environment'
|
||||
mkdir -p "${LOG_DIR}"
|
||||
mkdir -p "${HOME}/bin"
|
||||
echo "${HOME}/bin" >> $GITHUB_PATH
|
||||
(
|
||||
echo "LINUX_VERSION=$(uname -r)"
|
||||
echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
|
||||
echo "TMPDIR=$(mktemp -d -p /tmp)"
|
||||
|
||||
case "${{ inputs.features }}" in
|
||||
tiny)
|
||||
echo "TEST=testtiny"
|
||||
if ${{ contains(fromJSON(inputs.extra), 'nogui') }}; then
|
||||
CONFOPT="--disable-gui"
|
||||
fi
|
||||
;;
|
||||
normal)
|
||||
;;
|
||||
huge)
|
||||
echo "TEST=scripttests test_libvterm indenttest syntaxtest"
|
||||
INTERFACE=${{ inputs.interface || 'yes' }}
|
||||
if ${{ inputs.python3 == 'stable-abi' }}; then
|
||||
PYTHON3_CONFOPT="--with-python3-stable-abi=3.8"
|
||||
fi
|
||||
# The ubuntu-24.04 CI runner does not provide a python2 package.
|
||||
CONFOPT="--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}"
|
||||
;;
|
||||
esac
|
||||
|
||||
if ${{ contains(fromJSON(inputs.extra), 'no_x11_wl') }}; then
|
||||
CONFOPT="${CONFOPT} --without-x --disable-gui --without-wayland --enable-socketserver"
|
||||
fi
|
||||
if ${{ inputs.coverage == true }}; then
|
||||
CFLAGS="${CFLAGS} --coverage -DUSE_GCOV_FLUSH"
|
||||
echo "LDFLAGS=--coverage"
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'uchar') }}; then
|
||||
CFLAGS="${CFLAGS} -funsigned-char"
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'testgui') }}; then
|
||||
echo "TEST=-C src testgui"
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'unittests') }}; then
|
||||
echo "TEST=unittests"
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'asan') }}; then
|
||||
echo "SANITIZER_CFLAGS=-g -O0 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize-recover=all -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer"
|
||||
echo "ASAN_OPTIONS=print_stacktrace=1:log_path=${LOG_DIR}/asan"
|
||||
echo "UBSAN_OPTIONS=print_stacktrace=1:log_path=${LOG_DIR}/ubsan"
|
||||
echo "LSAN_OPTIONS=suppressions=${GITHUB_WORKSPACE}/src/testdir/lsan-suppress.txt"
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'vimtags') }}; then
|
||||
echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
|
||||
fi
|
||||
if ${{ contains(fromJSON(inputs.extra), 'proto') }}; then
|
||||
echo "TEST=-C src protoclean proto"
|
||||
fi
|
||||
echo "CFLAGS=${CFLAGS}"
|
||||
echo "CONFOPT=${CONFOPT}"
|
||||
# Disables GTK attempt to integrate with the accessibility service that does run in CI.
|
||||
echo "NO_AT_BRIDGE=1"
|
||||
) >> $GITHUB_ENV
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Set up system
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Set up system'
|
||||
if [[ ${CC} = clang ]]; then
|
||||
# Use llvm-cov instead of gcov when compiler is clang.
|
||||
ln -fs /usr/bin/llvm-cov ${HOME}/bin/gcov
|
||||
fi
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
sudo usermod -a -G audio "${USER}"
|
||||
sudo bash ci/setup-xvfb.sh
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(fromJSON(inputs.extra), 'unittests')
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Check autoconf'
|
||||
make -C src autoconf
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Set up shadow dir
|
||||
if: inputs.shadow
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Set up shadow dir'
|
||||
make -C src shadow
|
||||
echo "SRCDIR=${{ inputs.shadow }}" >> $GITHUB_ENV
|
||||
echo "SHADOWOPT=-C ${{ inputs.shadow }}" >> $GITHUB_ENV
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Configure
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Configure'
|
||||
./configure --with-features=${{ inputs.features }} ${CONFOPT} --enable-fail-if-missing
|
||||
# Append various warning flags to CFLAGS.
|
||||
sed -i -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||
sed -i -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
|
||||
if [[ ${CC} = clang ]]; then
|
||||
# Suppress some warnings produced by clang 12 and later.
|
||||
sed -i -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk
|
||||
fi
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Build
|
||||
if: (!contains(fromJSON(inputs.extra), 'unittests'))
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Build'
|
||||
make ${SHADOWOPT} -j${NPROC}
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Check version
|
||||
if: (!contains(fromJSON(inputs.extra), 'unittests'))
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Check version'
|
||||
"${SRCDIR}"/vim --version
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
if ${{ inputs.features == 'huge' }}; then
|
||||
# Also check that optional and dynamic features are configured and working
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \
|
||||
-c "let g:required=['gettext', 'sodium', 'sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
fi
|
||||
echo '::endgroup::'
|
||||
@@ -1,4 +1,4 @@
|
||||
name: 'test_artifacts'
|
||||
name: "test_artifacts"
|
||||
description: "Upload failed test artifacts"
|
||||
inputs:
|
||||
artifact-name:
|
||||
@@ -14,7 +14,7 @@ runs:
|
||||
# it from the matrix automatically like in Vim
|
||||
# upstream.
|
||||
# - name: Collect matrix properties for naming
|
||||
# uses: actions/github-script@v8
|
||||
# uses: actions/github-script@v9
|
||||
# id: matrix-props
|
||||
# env:
|
||||
# MATRIX_PROPS: ${{ toJSON(inputs) }}
|
||||
@@ -50,9 +50,10 @@ runs:
|
||||
# A file, directory or wildcard pattern that describes what
|
||||
# to upload.
|
||||
path: |
|
||||
${{ github.workspace }}/runtime/indent/testdir/*.fail
|
||||
${{ github.workspace }}/runtime/syntax/testdir/failed/*
|
||||
${{ github.workspace }}/src/testdir/failed/*
|
||||
${{ github.workspace }}/logs/**/*.symbolized
|
||||
${{ github.workspace }}/runtime/indent/testdir/*.fail
|
||||
${{ github.workspace }}/runtime/syntax/testdir/failed/*
|
||||
${{ github.workspace }}/src/testdir/failed/*
|
||||
# The desired behavior if no files are found using the
|
||||
# provided path.
|
||||
if-no-files-found: ignore
|
||||
|
||||
@@ -8,7 +8,6 @@ CI:
|
||||
- '.github/dependabot.yml'
|
||||
- '.github/labeler.yml'
|
||||
- '.github/workflows/*'
|
||||
- '.appveyor.yml'
|
||||
- '.codecov.yml'
|
||||
|
||||
documentation:
|
||||
|
||||
@@ -0,0 +1,176 @@
|
||||
name: CI for Linux
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
# Cancels all previous workflow runs for pull requests that have not completed.
|
||||
concurrency:
|
||||
# The concurrency group contains the workflow name and the branch name for
|
||||
# pull requests or the commit hash for any other events.
|
||||
group: ${{ github.workflow }}-linux-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
runs-on: ${{ matrix.architecture == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
|
||||
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
GCC_VER: 14
|
||||
CLANG_VER: 22
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
LOG_DIR: ${{ github.workspace }}/logs
|
||||
TERM: xterm
|
||||
DISPLAY: ":99"
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
features: [tiny, normal, huge]
|
||||
compiler: [clang, gcc]
|
||||
extra: [[]]
|
||||
# Only use non-native architecture when features != huge.
|
||||
# features=huge tries to install python3-dev, which fails to install
|
||||
# for the non-native architecture.
|
||||
architecture: [native]
|
||||
include:
|
||||
- features: tiny
|
||||
compiler: clang
|
||||
extra: [nogui]
|
||||
- features: tiny
|
||||
compiler: gcc
|
||||
extra: [nogui, syn_test_execs]
|
||||
- features: tiny
|
||||
compiler: gcc
|
||||
extra: [nogui]
|
||||
architecture: arm64
|
||||
- features: normal
|
||||
shadow: ./src/shadow
|
||||
compiler: gcc
|
||||
architecture: i386
|
||||
- features: huge
|
||||
coverage: true
|
||||
- features: huge
|
||||
compiler: clang
|
||||
interface: dynamic
|
||||
python3: stable-abi
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
coverage: true
|
||||
interface: dynamic
|
||||
extra: [uchar, testgui]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
coverage: true
|
||||
extra: [unittests]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
coverage: true
|
||||
extra: [unittests]
|
||||
architecture: arm64
|
||||
- features: normal
|
||||
compiler: gcc
|
||||
extra: [vimtags, proto, preproc_indent, encoding, codestyle]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
extra: [no_x11_wl]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from GitHub
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Build
|
||||
timeout-minutes: 15
|
||||
uses: ./.github/actions/build_vim_on_linux
|
||||
with:
|
||||
features: ${{ matrix.features }}
|
||||
compiler: ${{ matrix.compiler }}
|
||||
architecture: ${{ matrix.architecture }}
|
||||
extra: ${{ toJSON(matrix.extra) }}
|
||||
shadow: ${{ matrix.shadow }}
|
||||
interface: ${{ matrix.interface }}
|
||||
lua_ver: ${{ matrix.lua_ver }}
|
||||
python3: ${{ matrix.python3 }}
|
||||
coverage: ${{ matrix.coverage }}
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 20
|
||||
run: make ${SHADOWOPT} ${TEST}
|
||||
|
||||
# Enable to debug failing tests live and ssh into the CI runners
|
||||
# - name: Setup tmate session
|
||||
# if: ${{ failure() }}
|
||||
# uses: mxschmitt/action-tmate@v3
|
||||
# with:
|
||||
# limit-access-to-actor: true
|
||||
|
||||
- name: Upload failed test artifacts
|
||||
if: ${{ !cancelled() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
|
||||
- name: Vim tags
|
||||
if: contains(matrix.extra, 'vimtags')
|
||||
run: |
|
||||
# This will exit with an error code if the generated vim tags differs from source.
|
||||
(
|
||||
cd runtime/doc
|
||||
git diff --exit-code -- tags
|
||||
make html; rm *.html tags.ref;
|
||||
test -f errors.log && exit 3;
|
||||
true
|
||||
)
|
||||
|
||||
- name: Generate Proto files
|
||||
if: contains(matrix.extra, 'proto')
|
||||
run: |
|
||||
# This will exit with an error code if the generated proto files differ from source
|
||||
(
|
||||
git diff --exit-code -- src/proto/
|
||||
true
|
||||
)
|
||||
|
||||
- name: Check Source Code style
|
||||
if: contains(matrix.extra, 'codestyle')
|
||||
run: |
|
||||
make -C src/testdir codestyle
|
||||
|
||||
- name: Check preprocessor indent
|
||||
if: contains(matrix.extra, 'preproc_indent')
|
||||
run: |
|
||||
# This will exit with an error code if the files differ from source
|
||||
(
|
||||
"${SRCDIR}"/vim -u NONE --not-a-term -esNX +"cd runtime/tools" -S preproc_indent.vim
|
||||
git diff --exit-code -- src/*.[ch] src/xxd/xxd.c
|
||||
true
|
||||
)
|
||||
|
||||
- name: Check encoding of utf-8 runtime files
|
||||
if: contains(matrix.extra, 'encoding')
|
||||
run: |
|
||||
# This will exit with an error code if utf-8 runtime files are not in utf-8 encoding
|
||||
(
|
||||
find . -type f -name "*utf-8*.vim" -exec sh -c \
|
||||
'iconv -f utf-8 -t utf-8 "$1" >/dev/null 2>&1 || echo "non utf-8 encoding detected in $1"' \
|
||||
find-sh {} \; |grep "non utf-8 encoding" && exit 3
|
||||
true
|
||||
)
|
||||
|
||||
- name: Generate gcov files
|
||||
if: matrix.coverage
|
||||
run: |
|
||||
cd "${SRCDIR}"
|
||||
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
|
||||
|
||||
- name: Codecov
|
||||
timeout-minutes: 20
|
||||
if: matrix.coverage
|
||||
uses: codecov/codecov-action@v6
|
||||
with:
|
||||
flags: linux,${{ matrix.features }}-${{ matrix.compiler }}-${{ join(matrix.extra, '-') }}
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
@@ -0,0 +1,82 @@
|
||||
name: CI for Linux ASan
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
# Cancels all previous workflow runs for pull requests that have not completed.
|
||||
concurrency:
|
||||
# The concurrency group contains the workflow name and the branch name for
|
||||
# pull requests or the commit hash for any other events.
|
||||
group: ${{ github.workflow }}-linux_asan-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
linux-asan:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
env:
|
||||
CC: clang
|
||||
CLANG_VER: 21
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
LOG_DIR: ${{ github.workspace }}/logs
|
||||
TERM: xterm
|
||||
DISPLAY: ":99"
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
testset:
|
||||
- tinytests
|
||||
- newtests.1
|
||||
- newtests.2
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from GitHub
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Build
|
||||
timeout-minutes: 15
|
||||
uses: ./.github/actions/build_vim_on_linux
|
||||
with:
|
||||
features: huge
|
||||
compiler: clang
|
||||
extra: '["asan"]'
|
||||
# Lua5.1 is the most widely used version (since it's what LuaJIT is
|
||||
# compatible with), so ensure it works
|
||||
lua_ver: "5.1"
|
||||
|
||||
- name: Test (tinytests)
|
||||
if: matrix.testset == 'tinytests'
|
||||
timeout-minutes: 20
|
||||
run: make ${TEST} NEW_TESTS_RES=
|
||||
|
||||
- name: Test (newtests)
|
||||
if: startsWith(matrix.testset, 'newtests')
|
||||
timeout-minutes: 20
|
||||
env:
|
||||
JOB_INDEX: ${{ strategy.job-index }}
|
||||
JOB_TOTAL: ${{ strategy.job-total }}
|
||||
run: |
|
||||
set -x
|
||||
make -C src/testdir SCRIPTS_TINY_OUT= \
|
||||
NEW_TESTS_RES="$(python3 ci/gen_testset.py $((JOB_TOTAL-1)) | jq -r --argjson i $((JOB_INDEX-1)) '.[$i]|join(" ")')"
|
||||
|
||||
- name: ASan logs
|
||||
if: ${{ !cancelled() }}
|
||||
run: |
|
||||
for f in $(grep -lR '#[[:digit:]]* *0x[[:xdigit:]]*' "${LOG_DIR}"); do
|
||||
(
|
||||
echo "$f"
|
||||
asan_symbolize -l "$f"
|
||||
) | tee "$f".symbolized
|
||||
false # in order to fail a job
|
||||
done
|
||||
|
||||
- name: Upload failed test artifacts
|
||||
if: ${{ !cancelled() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
@@ -0,0 +1,103 @@
|
||||
name: CI for macOS
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
# Cancels all previous workflow runs for pull requests that have not completed.
|
||||
concurrency:
|
||||
# The concurrency group contains the workflow name and the branch name for
|
||||
# pull requests or the commit hash for any other events.
|
||||
group: ${{ github.workflow }}-macos-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
macos:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
|
||||
env:
|
||||
CC: clang
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
TERM: xterm
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
features: [tiny, normal, huge]
|
||||
runner: [macos-15-intel, macos-26]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from GitHub
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.features == 'huge'
|
||||
run: |
|
||||
brew install lua libtool
|
||||
echo "LUA_PREFIX=$(brew --prefix)" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
(
|
||||
echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
|
||||
case "${{ matrix.features }}" in
|
||||
tiny)
|
||||
echo "TEST=testtiny"
|
||||
echo "CONFOPT=--disable-gui"
|
||||
;;
|
||||
normal)
|
||||
;;
|
||||
huge)
|
||||
echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
;;
|
||||
esac
|
||||
) >> $GITHUB_ENV
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
./configure --with-features=${{ matrix.features }} ${CONFOPT} --enable-fail-if-missing
|
||||
# Append various warning flags to CFLAGS.
|
||||
# BSD sed needs backup extension specified.
|
||||
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||
# On macOS, the entity of gcc is clang.
|
||||
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
|
||||
# Suppress some warnings produced by clang 12 and later.
|
||||
if clang --version | grep -qs 'Apple clang version \(1[3-9]\|[2-9]\)\.'; then
|
||||
sed -i.bak -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk
|
||||
fi
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
LC_ALL: C
|
||||
run: |
|
||||
make -j${NPROC}
|
||||
|
||||
- name: Check version
|
||||
run: |
|
||||
"${SRCDIR}"/vim --version
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
# Also check that optional and dynamic features are configured and working
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \
|
||||
-c "let g:required=['sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
fi
|
||||
|
||||
- name: Install packages for testing
|
||||
run: |
|
||||
# Apple diff is broken. Use GNU diff instead. See #14032.
|
||||
brew install diffutils
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 25
|
||||
run: |
|
||||
make ${TEST}
|
||||
|
||||
- name: Upload failed test artifacts
|
||||
if: ${{ !cancelled() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
@@ -0,0 +1,362 @@
|
||||
name: CI for Windows
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
# Cancels all previous workflow runs for pull requests that have not completed.
|
||||
concurrency:
|
||||
# The concurrency group contains the workflow name and the branch name for
|
||||
# pull requests or the commit hash for any other events.
|
||||
group: ${{ github.workflow }}-windows-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
runs-on: windows-2022
|
||||
|
||||
env:
|
||||
# Interfaces
|
||||
# Lua
|
||||
LUA_VER: 54
|
||||
LUA_VER_DOT: "5.4"
|
||||
LUA_RELEASE: 5.4.2
|
||||
LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
|
||||
LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
|
||||
LUA_DIR: D:\Lua
|
||||
# do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l
|
||||
LUA_DIR_SLASH: D:/Lua
|
||||
# Python 2
|
||||
PYTHON_VER: 27
|
||||
PYTHON_VER_DOT: "2.7"
|
||||
PYTHON_DIR: 'C:\Python27'
|
||||
# Python 3
|
||||
PYTHON3_VER: 313
|
||||
PYTHON3_VER_DOT: "3.13"
|
||||
# Other dependencies
|
||||
# winpty
|
||||
WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
|
||||
# libsodium
|
||||
SODIUM_VER: "1.0.20"
|
||||
# SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip
|
||||
SODIUM_MSVC_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-msvc.zip
|
||||
SODIUM_MSVC_VER: v143
|
||||
# SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz
|
||||
SODIUM_MINGW_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-mingw.tar.gz
|
||||
SODIUM_MINGW_VER: 26
|
||||
# Gettext-tools, iconv and libraries
|
||||
GETTEXT32_URL: https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-32.zip
|
||||
GETTEXT64_URL: https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-64.zip
|
||||
# Escape sequences
|
||||
COL_RED: "\x1b[31m"
|
||||
COL_GREEN: "\x1b[32m"
|
||||
COL_YELLOW: "\x1b[33m"
|
||||
COL_RESET: "\x1b[m"
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, python3: stable }
|
||||
- { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: yes, arch: x86, python3: stable, coverage: yes }
|
||||
- { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: yes, arch: x86 }
|
||||
- { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: no, arch: x64, coverage: yes }
|
||||
- { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, ttytype: conpty }
|
||||
- { features: NORMAL, toolchain: msvc, VIMDLL: yes, GUI: no, arch: x86 }
|
||||
- { features: NORMAL, toolchain: mingw, VIMDLL: no, GUI: yes, arch: x64 }
|
||||
- { features: TINY, toolchain: msvc, VIMDLL: yes, GUI: yes, arch: x64 }
|
||||
- { features: TINY, toolchain: mingw, VIMDLL: no, GUI: no, arch: x86 }
|
||||
|
||||
steps:
|
||||
- name: Initialize
|
||||
id: init
|
||||
shell: bash
|
||||
run: |
|
||||
# Show Windows version
|
||||
cmd /c ver
|
||||
|
||||
if ${{ matrix.arch == 'x64' }}; then
|
||||
cygreg=registry
|
||||
pyreg=
|
||||
echo "VCARCH=amd64" >> $GITHUB_ENV
|
||||
echo "WARCH=x64" >> $GITHUB_ENV
|
||||
echo "BITS=64" >> $GITHUB_ENV
|
||||
echo "MSYSTEM=MINGW64" >> $GITHUB_ENV
|
||||
else
|
||||
cygreg=registry32
|
||||
pyreg=-32
|
||||
echo "VCARCH=x86" >> $GITHUB_ENV
|
||||
echo "WARCH=ia32" >> $GITHUB_ENV
|
||||
echo "BITS=32" >> $GITHUB_ENV
|
||||
echo "MSYSTEM=MINGW32" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
echo "VCVARSALL=$(vswhere -products \* -latest -property installationPath)\\VC\\Auxiliary\\Build\\vcvarsall.bat" >> $GITHUB_ENV
|
||||
if ${{ matrix.features != 'TINY' }}; then
|
||||
if ${{ matrix.arch == 'x86' }}; then
|
||||
choco install python2 --no-progress --forcex86
|
||||
else
|
||||
choco install python2 --no-progress
|
||||
fi
|
||||
fi
|
||||
python3_dir=$(cat "/proc/$cygreg/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}$pyreg/InstallPath/@")
|
||||
echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
|
||||
|
||||
if ${{ matrix.toolchain == 'msvc' }}; then
|
||||
SODIUM_DIR=D:\\libsodium
|
||||
echo "SODIUM_LIB=${SODIUM_DIR}\\${{ matrix.arch == 'x64' && 'x64' || 'Win32' }}\\Release\\${SODIUM_MSVC_VER}\\dynamic" >> $GITHUB_ENV
|
||||
else
|
||||
SODIUM_DIR=D:\\libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }}
|
||||
# do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l
|
||||
SODIUM_DIR_SLASH=D:/libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }}
|
||||
echo "SODIUM_LIB=${SODIUM_DIR}\\bin" >> $GITHUB_ENV
|
||||
echo "SODIUM_DIR_SLASH=${SODIUM_DIR_SLASH}" >> $GITHUB_ENV
|
||||
fi
|
||||
echo "SODIUM_DIR=${SODIUM_DIR}" >> $GITHUB_ENV
|
||||
echo "GETTEXT_PATH=D:\gettext${{ matrix.arch == 'x64' && '64' || '32' }}" >> $GITHUB_ENV
|
||||
|
||||
- uses: msys2/setup-msys2@v2.31.1
|
||||
if: matrix.toolchain == 'mingw'
|
||||
with:
|
||||
update: true
|
||||
install: tar
|
||||
pacboy: >-
|
||||
make:p gcc:p
|
||||
msystem: ${{ env.MSYSTEM }}
|
||||
release: false
|
||||
|
||||
- name: Checkout repository from GitHub
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Create a list of download URLs
|
||||
shell: cmd
|
||||
run: |
|
||||
type NUL > urls.txt
|
||||
echo %LUA_RELEASE%>> urls.txt
|
||||
echo %WINPTY_URL%>> urls.txt
|
||||
echo %SODIUM_VER%>> urls.txt
|
||||
echo %GETTEXT32_URL%>> urls.txt
|
||||
echo %GETTEXT64_URL%>> urls.txt
|
||||
|
||||
- name: Cache downloaded files
|
||||
uses: actions/cache@v5.0.5
|
||||
with:
|
||||
path: downloads
|
||||
key: ${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('urls.txt') }}
|
||||
|
||||
- name: Download dependencies
|
||||
shell: cmd
|
||||
run: |
|
||||
path C:\Program Files\7-Zip;%path%
|
||||
if not exist downloads mkdir downloads
|
||||
|
||||
echo %COL_GREEN%Download Lua%COL_RESET%
|
||||
call :downloadfile %LUA${{ env.BITS }}_URL% downloads\lua.zip
|
||||
7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1
|
||||
|
||||
if not "${{ matrix.ttytype }}" == "conpty" (
|
||||
echo %COL_GREEN%Download winpty%COL_RESET%
|
||||
call :downloadfile %WINPTY_URL% downloads\winpty.zip
|
||||
7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1
|
||||
copy /Y D:\winpty\%WARCH%\bin\winpty.dll src\winpty%BITS%.dll
|
||||
copy /Y D:\winpty\%WARCH%\bin\winpty-agent.exe src\
|
||||
)
|
||||
|
||||
echo %COL_GREEN%Download libsodium%COL_RESET%
|
||||
if "${{ matrix.toolchain }}"=="msvc" (
|
||||
call :downloadfile %SODIUM_MSVC_URL% downloads\libsodium.zip
|
||||
7z x -y downloads\libsodium.zip -oD:\ > nul || exit 1
|
||||
) else (
|
||||
call :downloadfile %SODIUM_MINGW_URL% downloads\libsodium.tar.gz
|
||||
7z x -y downloads\libsodium.tar.gz -so | 7z x -si -ttar -oD:\ > nul || exit 1
|
||||
mklink %SODIUM_LIB%\libsodium.dll %SODIUM_LIB%\libsodium-%SODIUM_MINGW_VER%.dll
|
||||
)
|
||||
|
||||
echo %COL_GREEN%Download Gettext%COL_RESET%
|
||||
call :downloadfile %GETTEXT${{ env.BITS }}_URL% downloads\gettext${{ env.BITS }}.zip
|
||||
7z e -y downloads\gettext${{ env.BITS }}.zip -oD:\gettext${{ env.BITS }} > nul || exit 1
|
||||
copy /y D:\gettext${{ env.BITS }}\libintl-8.dll src\ || exit 1
|
||||
copy /y D:\gettext${{ env.BITS }}\libiconv-2.dll src\ || exit 1
|
||||
|
||||
goto :eof
|
||||
|
||||
:downloadfile
|
||||
:: call :downloadfile <URL> <localfile>
|
||||
if not exist %2 (
|
||||
curl -f -L %1 -o %2
|
||||
)
|
||||
if ERRORLEVEL 1 (
|
||||
rem Retry once.
|
||||
curl -f -L %1 -o %2 || exit 1
|
||||
)
|
||||
goto :eof
|
||||
|
||||
- name: Build (MSVC)
|
||||
if: matrix.toolchain == 'msvc'
|
||||
shell: cmd
|
||||
run: |
|
||||
call "%VCVARSALL%" %VCARCH%
|
||||
cd src
|
||||
if "${{ matrix.VIMDLL }}"=="yes" (
|
||||
set GUI=yes
|
||||
) else (
|
||||
set GUI=${{ matrix.GUI }}
|
||||
)
|
||||
if "${{ matrix.python3 }}"=="stable" (
|
||||
set PYTHON3_STABLE=yes
|
||||
) else (
|
||||
set PYTHON3_STABLE=no
|
||||
)
|
||||
if "${{ matrix.features }}"=="HUGE" (
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
FEATURES=${{ matrix.features }} ^
|
||||
GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^
|
||||
DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
|
||||
DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
|
||||
DYNAMIC_PYTHON3_STABLE_ABI=%PYTHON3_STABLE% ^
|
||||
DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR% ^
|
||||
CI_FLAGS=/we4267
|
||||
) else (
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
FEATURES=${{ matrix.features }} ^
|
||||
GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^
|
||||
CI_FLAGS=/we4267
|
||||
)
|
||||
|
||||
- name: Build (MinGW)
|
||||
if: matrix.toolchain == 'mingw'
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd src
|
||||
if [ "${{ matrix.VIMDLL }}" = "yes" ]; then
|
||||
GUI=yes
|
||||
else
|
||||
GUI=${{ matrix.GUI }}
|
||||
fi
|
||||
if [ "${{ matrix.python3 }}" = "stable" ]; then
|
||||
PYTHON3_STABLE=yes
|
||||
else
|
||||
PYTHON3_STABLE=no
|
||||
fi
|
||||
if [ "${{ matrix.features }}" = "HUGE" ]; then
|
||||
mingw32-make -f Make_ming.mak -j2 \
|
||||
FEATURES=${{ matrix.features }} \
|
||||
GUI=$GUI IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} \
|
||||
DYNAMIC_LUA=yes LUA=${LUA_DIR_SLASH} \
|
||||
DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
|
||||
DYNAMIC_PYTHON3_STABLE_ABI=${PYTHON3_STABLE} \
|
||||
DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR_SLASH} \
|
||||
STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }}
|
||||
else
|
||||
mingw32-make -f Make_ming.mak -j2 \
|
||||
FEATURES=${{ matrix.features }} \
|
||||
GUI=$GUI IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} \
|
||||
STATIC_STDCPLUS=yes
|
||||
fi
|
||||
|
||||
- name: Check version
|
||||
shell: cmd
|
||||
run: |
|
||||
PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%
|
||||
if "${{ matrix.GUI }}"=="yes" (
|
||||
start /wait src\gvim -u NONE -i NONE -c "redir > version.txt | ver | q" || exit 1
|
||||
type version.txt
|
||||
echo.
|
||||
start /wait src\gvim -u NONE -i NONE -c "redir! > version.txt | so ci\if_ver-1.vim | q"
|
||||
start /wait src\gvim -u NONE -i NONE -c "redir >> version.txt | so ci\if_ver-2.vim | q"
|
||||
type version.txt
|
||||
del version.txt
|
||||
) else (
|
||||
src\vim --version || exit 1
|
||||
src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
if "${{ matrix.features }}"=="HUGE" (
|
||||
src\vim -u NONE -i NONE --not-a-term -esNX -V1 ^
|
||||
-c "let g:required=['gettext', 'sodium', 'sound', 'python3', 'lua']" ^
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
)
|
||||
)
|
||||
|
||||
#- name: Prepare Artifact
|
||||
# shell: cmd
|
||||
# run: |
|
||||
# mkdir artifacts
|
||||
# copy src\*vim.exe artifacts
|
||||
# copy src\vim*.dll artifacts
|
||||
#
|
||||
#- name: Upload Artifact
|
||||
# uses: actions/upload-artifact@v7
|
||||
# with:
|
||||
# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
|
||||
# path: ./artifacts
|
||||
|
||||
# disabled because of https://github.com/tunisiano187/Chocolatey-packages/issues/3916
|
||||
#- name: Install packages for testing
|
||||
# shell: bash
|
||||
# run: |
|
||||
# if ${{ matrix.features != 'TINY' }}; then
|
||||
# if ${{ matrix.arch == 'x64' }}; then
|
||||
# choco install netbeans --no-progress
|
||||
# else
|
||||
# exit 0
|
||||
# fi
|
||||
# fi
|
||||
|
||||
- name: Test and show the result of testing gVim
|
||||
if: matrix.GUI == 'yes' || matrix.VIMDLL == 'yes'
|
||||
shell: cmd
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%;%SODIUM_LIB%
|
||||
call "%VCVARSALL%" %VCARCH%
|
||||
|
||||
echo %COL_GREEN%Test gVim:%COL_RESET%
|
||||
cd src\testdir
|
||||
if "${{ matrix.GUI }}"=="yes" (
|
||||
nmake -nologo -f Make_mvc.mak VIMPROG=..\gvim || exit 1
|
||||
) else (
|
||||
@rem Run only tiny tests.
|
||||
nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\gvim || exit 1
|
||||
)
|
||||
|
||||
- name: Test and show the result of testing Vim
|
||||
if: matrix.GUI == 'no' || matrix.VIMDLL == 'yes'
|
||||
shell: cmd
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%;%SODIUM_LIB%
|
||||
call "%VCVARSALL%" %VCARCH%
|
||||
|
||||
echo %COL_GREEN%Test Vim:%COL_RESET%
|
||||
cd src\testdir
|
||||
nmake -nologo -f Make_mvc.mak clean
|
||||
if "${{ matrix.GUI }}"=="no" (
|
||||
nmake -nologo -f Make_mvc.mak VIMPROG=..\vim || exit 1
|
||||
) else (
|
||||
@rem Run only tiny tests.
|
||||
nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\vim || exit 1
|
||||
)
|
||||
|
||||
- name: Upload failed test artifacts
|
||||
if: ${{ !cancelled() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
|
||||
- name: Generate gcov files
|
||||
if: matrix.coverage
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd src
|
||||
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
|
||||
|
||||
- name: Codecov
|
||||
timeout-minutes: 20
|
||||
if: matrix.coverage
|
||||
uses: codecov/codecov-action@v6
|
||||
with:
|
||||
directory: src
|
||||
flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }}
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v4
|
||||
uses: github/codeql-action/init@v4.36.0
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
uses: github/codeql-action/autobuild@v4.36.0
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -73,4 +73,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v4
|
||||
uses: github/codeql-action/analyze@v4.36.0
|
||||
|
||||
@@ -17,6 +17,6 @@ jobs:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/labeler@v6
|
||||
- uses: actions/labeler@v6.1.0
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
@@ -0,0 +1,325 @@
|
||||
# AGENTS.md
|
||||
|
||||
Guidance for AI coding agents working in the Vim repository.
|
||||
|
||||
## Project
|
||||
|
||||
Vim is a text editor written in C. The canonical repository is
|
||||
https://github.com/vim/vim. The code is old and has grown organically over
|
||||
the past 30+ years. Some files are vendored from upstream projects
|
||||
(`src/xdiff`, `src/libvterm`); parts of the runtime are occasionally shared
|
||||
with forks like Neovim.
|
||||
|
||||
Vim strives to be portable across several different operating systems and
|
||||
aims to be a stable, robust editor gradually developing new features while
|
||||
remaining backwards compatible as much as possible.
|
||||
|
||||
At the same time, Vim can be compiled with different feature sets, from the
|
||||
POSIX compatible minimal vi to a full-fledged GUI editor which includes
|
||||
additional scripting interfaces.
|
||||
|
||||
See `runtime/doc/develop.txt` for the high level design goals.
|
||||
|
||||
## Build and test
|
||||
|
||||
# Full build on Unix/Linux (from src/):
|
||||
make
|
||||
|
||||
# Run the full test suite:
|
||||
make test
|
||||
|
||||
# Generate proto files
|
||||
make proto
|
||||
|
||||
# Run a single test file:
|
||||
cd src/testdir && make test_name.res
|
||||
|
||||
Output is in testdir/messages and testdir/test.log
|
||||
|
||||
Builds on Windows depend on the Environment, see `src/INSTALLpc.txt`
|
||||
for Cygwin/MSYS and MSVC ways to build Vim
|
||||
|
||||
Before submitting any patch, at minimum:
|
||||
1. The build succeeds without new warnings.
|
||||
2. Relevant tests pass.
|
||||
3. The code matches the style of the file being edited.
|
||||
|
||||
## Layout
|
||||
|
||||
- `src/` - the C source. Subsystem names are usually obvious from filenames
|
||||
(`buffer.c`, `window.c`, `search.c`, `vim9compile.c`, etc.).
|
||||
- `src/proto/` - function prototypes, one `.pro` file per source file.
|
||||
Regenerated; do not hand-edit unless you know what you're doing.
|
||||
- `src/po` - Translations
|
||||
- `src/xxd` - for the xxd subproject
|
||||
- `src/xdiff` - for the xdiff library (imported from git)
|
||||
- `src/libvterm` - for the libvterm library
|
||||
- `src/testdir/` - tests. Vim-script files named `test_*.vim`.
|
||||
Screendump expected output lives in `src/testdir/dumps/`.
|
||||
- `runtime/doc/` - user-facing documentation in Vim help format, when updating,
|
||||
also update the Last Change header
|
||||
- `runtime/syntax/generator` - Syntax script for Vim Script, automatically generated
|
||||
from Vims source
|
||||
- `runtime/` - runtime files shipped with Vim, when updating, also update the
|
||||
Last Change header and a short description if this file has no maintainer
|
||||
If the file has a maintainer, changes should go via them (so make a merge
|
||||
request against the upstream repo instead)
|
||||
- `src/version.c` - contains the `included_patches[]` list. Every
|
||||
patch touching anything below `src/` (with the exception of `src/po`) needs a
|
||||
new entry at the top, will be updated only when merging into
|
||||
the master tree.
|
||||
|
||||
## Commit format
|
||||
|
||||
Vim uses a strict commit message format. The subject line is a
|
||||
one-sentence **problem statement**, not a description of the fix:
|
||||
|
||||
patch 9.2.NNNN: short description of the problem
|
||||
|
||||
Problem: Restatement of the problem as a full sentence, possibly
|
||||
with a reporter attribution in parentheses.
|
||||
Solution: Short description of the fix, ending with the author's
|
||||
name in parentheses.
|
||||
|
||||
optional longer description of the problem and solution goes here in prose.
|
||||
Do not use bullet points.
|
||||
|
||||
fixes: #NNNN
|
||||
related: #NNNN
|
||||
closes: #NNNN
|
||||
|
||||
Co-authored-by: Name
|
||||
Signed-off-by: Author Name <email>
|
||||
|
||||
Rules:
|
||||
|
||||
- **Subject line states the problem**, not the solution. "fix typo" is
|
||||
wrong; "typo in foo() causes OOB read" is right.
|
||||
- **Problem line is a full sentence with a trailing period.** It mirrors
|
||||
the subject.
|
||||
- **Solution line ends with `(Author Name)`** — parentheses, period
|
||||
after them.
|
||||
- **Longer prose**, if any, goes after the Problem/Solution header
|
||||
- **`fixes:` references the issue** the patch fixes.
|
||||
**`closes:` references the PR** that introduces the fix.
|
||||
**`related:` references related issues**, including issues that caused this
|
||||
one.
|
||||
All can appear. Colon, aligned, no trailing period.
|
||||
- **`Signed-off-by:` is required** — DCO.
|
||||
- **`Co-Authored-By:` is allowed** and is the accepted way to
|
||||
acknowledge AI assistance transparently. Human
|
||||
coauthors should usually also have their own Signed-off-by.
|
||||
|
||||
## C code conventions
|
||||
|
||||
- **Indentation is 4 spaces per level.** Existing files use tabs with
|
||||
`ts=8 sts=4 sw=4 noet` (set by the modeline in the file),
|
||||
so tabs of width 8 appear where two levels of indent collapse. `sign.c`,
|
||||
`sound.c`, and any new file must use spaces only and follow the style from
|
||||
the .editorconfig file.
|
||||
- **Opening braces go on their own line (Allman style)** — for function
|
||||
definitions and for control-flow constructs (`if`/`else`/`for`/`while`/
|
||||
`do`) alike.
|
||||
- **Function definitions**: return type on its own indented line, with
|
||||
the function name beginning on the next line.
|
||||
- Initialize locals where a reader cannot trivially see the first
|
||||
assignment (common for pointers and return-value accumulators).
|
||||
Don't add `= 0` initializers for values that are always assigned
|
||||
before use — they can hide real uninitialized-read bugs from
|
||||
the compiler.
|
||||
- `for (int i = 0; ...)` loop declarations are fine in files that
|
||||
use them; older files may declare the counter at the top of the
|
||||
block.
|
||||
- **Function-scope declarations at the top of a block** is the historical
|
||||
style, but mid-block declarations are acceptable in files that have
|
||||
adopted them. Match the surrounding code.
|
||||
- **Custom types end in `_T`** (e.g., `buf_T`, `linenr_T`, `pos_T`).
|
||||
Never use `_t` — it collides with POSIX typedefs.
|
||||
- **C language is C95 plus specific C99 features**: `//` comments,
|
||||
mixed declarations and statements, `__func__`, `bool`/`_Bool`,
|
||||
variadic macros, compound literals, `static inline`, trailing enum
|
||||
commas. Do not reach for later C standards — Vim still must build
|
||||
with Compaq C on OpenVMS. See `*assumptions-C-compiler*` in
|
||||
`develop.txt` for the full list.
|
||||
- **`bool` / `true` / `false` are acceptable.** Vim is transitioning
|
||||
from `int` with `TRUE`/`FALSE` to C99 `bool`. Do not "fix" `bool`
|
||||
back to `int`. Within a single patch, be consistent — don't mix
|
||||
`true` and `TRUE` in new code.
|
||||
- **Do not mass-convert** `TRUE`/`FALSE` to `true`/`false` across files
|
||||
unless that is the patch's explicit purpose. Opportunistic
|
||||
conversions create noise in diffs.
|
||||
- **`STRLEN_LITERAL("...")`** should be used when the length of a
|
||||
string literal is needed. Avoid `STRLEN()` on literals.
|
||||
- **`vim_snprintf_safelen()`** returns the written length; prefer it
|
||||
over `vim_snprintf()` when the length is then needed.
|
||||
- **Prefer `dict_add_string_len()`** when the string length is already
|
||||
known, over `dict_add_string()` which calls `STRLEN()`.
|
||||
- **String/buffer parameters go `(char_u *buf, size_t buflen)`** —
|
||||
length alongside pointer, in bytes. Use `size_t` for byte counts,
|
||||
`int` only where required by legacy APIs.
|
||||
- **Guards before divisions.** Check for divisor zero explicitly, even
|
||||
when a composite earlier guard would prevent it. Relying on
|
||||
transitive guards is fragile.
|
||||
- When introducing new allocations, verify the cleanup paths handle all exit
|
||||
conditions (early return, error branches, etc).
|
||||
|
||||
**Use Vim wrappers instead of libc where one exists:**
|
||||
|
||||
| libc | Vim | Why |
|
||||
|---------------|------------------------|-----------------------------|
|
||||
| `free()` | `vim_free()` | Tolerates NULL |
|
||||
| `malloc()` | `alloc()` / `lalloc()` | Checks for OOM |
|
||||
| `strcpy()` | `STRCPY()` | Cast for `char_u *` |
|
||||
| `strchr()` | `vim_strchr()` | Handles special characters |
|
||||
| `strrchr()` | `vim_strrchr()` | Handles special characters |
|
||||
| `memcpy()` | `mch_memmove()` | Handles overlapping copies |
|
||||
| `bcopy()` | `mch_memmove()` | Handles overlapping copies |
|
||||
| `memset()` | `vim_memset()` | Uniform across systems |
|
||||
| `isspace()` | `vim_isspace()` | Handles bytes > 127 |
|
||||
| `iswhite()` | `vim_iswhite()` | TRUE only for tab and space |
|
||||
|
||||
Further rules, not spelled out here, live in `runtime/doc/develop.txt`:
|
||||
|
||||
- `*style-names*` — reserved name patterns (`is*`, `to*`, `str*`, `mem*`,
|
||||
`wcs*`, `.*_t`, `__.*`), forbidden identifiers (`delete`, `this`, `new`,
|
||||
`time`, `index`), and the 31-character function-name limit.
|
||||
- `*style-spaces*`, `*style-examples*` — spacing and one-statement-per-line.
|
||||
- `*style-various*` — `FEAT_` feature prefix, uppercase `#define`,
|
||||
`#ifdef HAVE_X` rather than `#if HAVE_X`, no `'\"'`.
|
||||
- `*assumptions-makefiles*` — POSIX.1-2001 `make` only in the main
|
||||
Makefiles (no `%` rules, `:=`, `.ONESHELL`, GNU conditionals).
|
||||
- Vim uses `char_u` instead of `char` type
|
||||
- Vim uses the macros `STRLEN`, `STRCPY`, `STRCMP`, `STRCAT` that work
|
||||
with the `char_u` type.
|
||||
- `*style-clang-format*` — `sign.c` and `sound.c` are formatted with
|
||||
`clang-format`; re-run it after editing those files.
|
||||
|
||||
## Vim9 script conventions (in tests and runtime files)
|
||||
|
||||
- Write modern Vim style (new files can use Vim9 script, but compatibility
|
||||
with Neovim and other forks is a concern, so in doubt please ask!)
|
||||
- **Drop `l:` prefix from local variables** in Vim-script tests.
|
||||
- **Don't add `CheckFeature` inside individual tests** if it's already
|
||||
at the top of the file.
|
||||
- If a test file doesn't gate features at the top, add CheckFeature to
|
||||
individual tests that depend on specific build features.
|
||||
|
||||
## Test conventions
|
||||
|
||||
- Tests are in `src/testdir/test_*.vim`.
|
||||
- Reproducible tests beat "it doesn't crash" tests. If a patch fixes
|
||||
a rendering bug, add a screendump test. If it fixes incorrect output,
|
||||
assert the output.
|
||||
- Add comprehensive tests for newly added features and include them
|
||||
in existing tests if possible
|
||||
- **Screendump tests** use `CheckScreendump`, `RunVimInTerminal`,
|
||||
`VerifyScreenDump`, and live dumps in `src/testdir/dumps/`.
|
||||
- `v9.CheckScriptSuccess(lines)` / `v9.CheckScriptFailure(lines, error, lnum)`
|
||||
are the standard way to test Vim9 script behavior at script-load time.
|
||||
- When fixing a bug reported as an issue, include a test that
|
||||
reproduces the original report, not just a minimal synthetic case.
|
||||
- Tests for Syntax runtime are in `runtime/syntax/testdir`
|
||||
- Tests for Indent runtime are in `runtime/indent/testdir`
|
||||
|
||||
## Common gotchas
|
||||
|
||||
- **Distinguish what code enforces from what docs claim.** If a patch
|
||||
changes documented behavior, say so in the Problem/Solution.
|
||||
- **Generated files** (`src/auto/configure`, generated Wayland protocol
|
||||
C, etc.) should only be regenerated when their source changes.
|
||||
Mixing unrelated regeneration into a functional patch creates noise.
|
||||
|
||||
## Documentation
|
||||
|
||||
- User-facing option or feature changes require a `runtime/doc/*.txt`
|
||||
update in the same patch.
|
||||
- When editing an existing help file, bump the `Last change:` header
|
||||
at the top.
|
||||
|
||||
### Help file style
|
||||
|
||||
See `runtime/doc/helphelp.txt` (`*help-writing*`) for the authoritative
|
||||
reference. Key conventions:
|
||||
|
||||
- **File header**: first line is `*filename.txt*` then a tab then a
|
||||
short description. That description appears under `LOCAL ADDITIONS`
|
||||
in `help.txt`. The version and `Last change:` date go on the second
|
||||
line, right aligned.
|
||||
- **Modeline**: every help file ends with a Vim modeline — typically
|
||||
`vim:tw=78:ts=8:noet:ft=help:norl:`.
|
||||
- **Layout**: `'textwidth'` 78, `'tabstop'` 8, indent and align with
|
||||
tab characters. Two spaces between sentences. Run `:retab`
|
||||
(not `:retab!`, and review the diff) after editing.
|
||||
- **Tags** are defined as `*tag-name*`, usually right-aligned on the
|
||||
line where the thing they name is introduced. Tag names must be
|
||||
unique across all of `runtime/doc/`; for plugin help, prefix with
|
||||
the plugin name.
|
||||
- **Cross-references inside help text**:
|
||||
- `|tag-name|` — hot-link to an existing tag.
|
||||
- `` `:cmd` `` — Ex command, highlighted as a code block.
|
||||
- `'option'` — option name, in single quotes.
|
||||
- `<Key>` or `CTRL-X` — special keys.
|
||||
- `{placeholder}` — user-supplied argument.
|
||||
- **Sections** are separated by a line of `=` starting in column 1.
|
||||
Column or subsection headings end with `~` to trigger heading
|
||||
highlighting.
|
||||
- **Code blocks** start with `>` at the end of the introducing line
|
||||
and end with `<` as the first non-blank on a later line (any line
|
||||
starting in column 1 also implicitly closes the block). Use `>vim`
|
||||
(or another language name) to request syntax highlighting inside
|
||||
the block.
|
||||
- **Notation** — `Note`, `Todo`, `Error` and a few similar words are
|
||||
auto-highlighted; do not try to fake the highlighting by other means.
|
||||
- **Language**: gender-neutral language is preferred for new or updated
|
||||
text; existing wording does not need to be rewritten for this alone.
|
||||
|
||||
## Release policy
|
||||
|
||||
Vim alternates between development cycles and stability periods — see
|
||||
`runtime/doc/develop.txt` `*design-policy*`.
|
||||
|
||||
- **During a stability period** only clear bug fixes, security fixes,
|
||||
documentation updates, translations, and runtime file updates are
|
||||
accepted. No new features, no backwards-incompatible changes.
|
||||
- **Once released in a minor version**, C-core features must stay
|
||||
backwards-compatible. Runtime files have a bit more flexibility so
|
||||
their maintainers can correct old behavior.
|
||||
- **Deprecated features** stay reachable via config (do not hard-error),
|
||||
are documented as deprecated, can be disabled at compile time, and
|
||||
may be removed in a later cycle.
|
||||
|
||||
## Security
|
||||
|
||||
Before reporting a suspected security issue or submitting a patch
|
||||
that touches security-sensitive code, read `SECURITY.md`. Follow
|
||||
the disclosure process described there.
|
||||
|
||||
## Before submitting
|
||||
|
||||
1. Commit message follows the format above.
|
||||
2. All modified code compiles without new warnings.
|
||||
3. Tests pass, and new functionality has regression tests.
|
||||
4. Documentation is updated for user-visible changes.
|
||||
5. Signed-off-by is present.
|
||||
6. Diff contains only changes relevant to the stated problem —
|
||||
no stray whitespace fixes, no unrelated refactors, no unrelated
|
||||
regeneration of `auto/configure`.
|
||||
7. For multi-patch series: each commit compiles and passes its own
|
||||
tests. A known-broken intermediate state that a later patch fixes
|
||||
is not acceptable — squash instead.
|
||||
|
||||
## When in doubt
|
||||
|
||||
- Make the smallest possible change to achieve the goal. Do not rewrite
|
||||
entire files or functions when a targeted edit suffices.
|
||||
- Read surrounding code and match its style rather than imposing an
|
||||
"improvement."
|
||||
- Err toward smaller, more focused patches. A patch that does three
|
||||
things is three patches.
|
||||
- If a patch fixes a symptom of a deeper bug, say so in the Problem
|
||||
and acknowledge the scope limitation in the Solution.
|
||||
- Before claiming a bug exists, reproduce it. Before claiming code does X, read
|
||||
the code. Do not rely on training-data memory of file contents.
|
||||
- Before running shell commands that modify files outside the working tree,
|
||||
install packages, push branches, or invoke network operations, confirm with
|
||||
the user.
|
||||
@@ -9,20 +9,24 @@ SRC_ALL = \
|
||||
.github/MAINTAINERS \
|
||||
.github/ISSUE_TEMPLATE/bug_report.yml \
|
||||
.github/ISSUE_TEMPLATE/feature_request.md \
|
||||
.github/workflows/ci-linux.yml \
|
||||
.github/workflows/ci-linux_asan.yml \
|
||||
.github/workflows/ci-macos.yml \
|
||||
.github/workflows/ci-windows.yml \
|
||||
.github/workflows/ci.yml \
|
||||
.github/workflows/codeql-analysis.yml \
|
||||
.github/workflows/coverity.yml \
|
||||
.github/workflows/link-check.yml \
|
||||
.github/actions/build_vim_on_linux/action.yml \
|
||||
.github/actions/test_artifacts/action.yml \
|
||||
.github/dependabot.yml \
|
||||
.gitignore \
|
||||
.hgignore \
|
||||
.appveyor.yml \
|
||||
.clang-format \
|
||||
.codecov.yml \
|
||||
.editorconfig \
|
||||
ci/appveyor.bat \
|
||||
ci/config.mk*.sed \
|
||||
ci/gen_testset.py \
|
||||
ci/if_ver*.vim \
|
||||
ci/if_feat_check.vim \
|
||||
ci/lychee.toml \
|
||||
@@ -145,12 +149,14 @@ SRC_ALL = \
|
||||
src/session.c \
|
||||
src/sha256.c \
|
||||
src/sign.c \
|
||||
src/socketserver.c \
|
||||
src/sound.c \
|
||||
src/spell.c \
|
||||
src/spell.h \
|
||||
src/spellfile.c \
|
||||
src/spellsuggest.c \
|
||||
src/strings.c \
|
||||
src/strptime.c \
|
||||
src/structs.h \
|
||||
src/syntax.c \
|
||||
src/tabpanel.c \
|
||||
@@ -343,6 +349,7 @@ SRC_ALL = \
|
||||
src/proto/session.pro \
|
||||
src/proto/sha256.pro \
|
||||
src/proto/sign.pro \
|
||||
src/proto/socketserver.pro \
|
||||
src/proto/sound.pro \
|
||||
src/proto/spell.pro \
|
||||
src/proto/spellfile.pro \
|
||||
@@ -440,6 +447,7 @@ SRC_ALL = \
|
||||
src/libvterm/t/66screen_extent.test \
|
||||
src/libvterm/t/67screen_dbl_wh.test \
|
||||
src/libvterm/t/68screen_termprops.test \
|
||||
src/libvterm/t/69screen_pushline.test \
|
||||
src/libvterm/t/69screen_reflow.test \
|
||||
src/libvterm/t/90vttest_01-movement-1.test \
|
||||
src/libvterm/t/90vttest_01-movement-2.test \
|
||||
@@ -496,6 +504,9 @@ SRC_UNIX = \
|
||||
src/gui_gtk_f.c \
|
||||
src/gui_gtk_f.h \
|
||||
src/gui_gtk_x11.c \
|
||||
src/gui_gtk4.c \
|
||||
src/gui_gtk4_f.c \
|
||||
src/gui_gtk4_f.h \
|
||||
src/gui_gtk_res.xml \
|
||||
src/gui_motif.c \
|
||||
src/gui_xmdlg.c \
|
||||
@@ -525,6 +536,7 @@ SRC_UNIX = \
|
||||
src/proto/gui_gtk.pro \
|
||||
src/proto/gui_gtk_x11.pro \
|
||||
src/proto/gui_gtk_gresources.pro \
|
||||
src/proto/gui_gtk4.pro \
|
||||
src/proto/gui_motif.pro \
|
||||
src/proto/gui_xmdlg.pro \
|
||||
src/proto/gui_x11.pro \
|
||||
@@ -1191,10 +1203,10 @@ LANG_DOS = \
|
||||
# be excluded from distribution tarballs and the like.
|
||||
# This excludes them from the CI check for unlisted files.
|
||||
IGNORE = \
|
||||
.appveyor.yml \
|
||||
.github/FUNDING.yml \
|
||||
.github/labeler.yml \
|
||||
.github/workflows/label.yml \
|
||||
AGENTS.md \
|
||||
SECURITY.md \
|
||||
ci/unlisted.make \
|
||||
ci/hlgroups.make \
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# [](https://www.vim.org)
|
||||
|
||||
[](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
|
||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||
[](https://cirrus-ci.com/github/vim/vim)
|
||||
[](https://codecov.io/gh/vim/vim?branch=master)
|
||||
[](https://scan.coverity.com/projects/vim)
|
||||
|
||||
-131
@@ -1,131 +0,0 @@
|
||||
@echo off
|
||||
:: Batch file for building/testing Vim on AppVeyor
|
||||
set target=%1
|
||||
set "GETTEXT_PATH=c:\gettext64\bin"
|
||||
|
||||
setlocal ENABLEDELAYEDEXPANSION
|
||||
cd %APPVEYOR_BUILD_FOLDER%
|
||||
|
||||
:: Python3
|
||||
set "PYTHON3_VER=311"
|
||||
set "PYTHON3_RELEASE=3.11.1"
|
||||
set "PYTHON3_URL=https://www.python.org/ftp/python/%PYTHON3_RELEASE%/python-%PYTHON3_RELEASE%-amd64.exe"
|
||||
set "PYTHON3_DIR=C:\python%PYTHON3_VER%-x64"
|
||||
|
||||
:: Gettext-tools, iconv and libraries
|
||||
set "GETTEXT64_URL=https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-64.zip"
|
||||
set "GETTEXT64_DIR=c:\gettext64"
|
||||
|
||||
set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
|
||||
|
||||
if exist "%VSWHERE%" (
|
||||
for /f "usebackq delims=" %%i in (
|
||||
`"%VSWHERE%" -products * -latest -property installationPath`
|
||||
) do (
|
||||
set "VCVARSALL=%%i\VC\Auxiliary\Build\vcvarsall.bat"
|
||||
)
|
||||
)
|
||||
|
||||
if not exist "%VCVARSALL%" (
|
||||
set "VCVARSALL=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
|
||||
)
|
||||
call "%VCVARSALL%" x64
|
||||
|
||||
goto %target%
|
||||
echo Unknown build target.
|
||||
exit 1
|
||||
|
||||
:: ----------------------------------------------------------------------------
|
||||
:install
|
||||
@echo on
|
||||
if not exist downloads mkdir downloads
|
||||
|
||||
:: Python 3
|
||||
if not exist %PYTHON3_DIR% (
|
||||
call :downloadfile %PYTHON3_URL% downloads\python3.exe
|
||||
cmd /c start /wait downloads\python3.exe /quiet TargetDir=%PYTHON3_DIR% ^
|
||||
Include_pip=0 Include_tcltk=0 Include_test=0 Include_tools=0 ^
|
||||
AssociateFiles=0 Shortcuts=0 Include_doc=0 Include_launcher=0 ^
|
||||
InstallLauncherAllUsers=0
|
||||
)
|
||||
:: GETTEXT
|
||||
if not exist %GETTEXT64_DIR% (
|
||||
mkdir %GETTEXT64_DIR%
|
||||
call :downloadfile %GETTEXT64_URL% downloads\gettext64.zip
|
||||
cmd /c powershell.exe -NoLogo -NoProfile -Command ^
|
||||
Add-Type -AssemblyName 'System.IO.Compression.FileSystem'; ^
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory^('downloads\gettext64.zip', ^
|
||||
'%GETTEXT64_DIR%'^)
|
||||
copy /y %GETTEXT64_DIR%\bin\libintl-8.dll C:\projects\vim\src\ || exit 1
|
||||
copy /y %GETTEXT64_DIR%\bin\libiconv-2.dll C:\projects\vim\src\ || exit 1
|
||||
)
|
||||
|
||||
@echo off
|
||||
goto :eof
|
||||
|
||||
:: ----------------------------------------------------------------------------
|
||||
:build
|
||||
|
||||
cd src
|
||||
|
||||
echo "Building MSVC 64bit console Version"
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
if not exist vim.exe (
|
||||
echo Build failure.
|
||||
exit 1
|
||||
)
|
||||
|
||||
:: build MSVC huge version with python and channel support
|
||||
:: GUI needs to be last, so that testing works
|
||||
echo "Building MSVC 64bit GUI Version"
|
||||
if "%FEATURE%" == "HUGE" (
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
|
||||
PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
|
||||
PYTHON3_VER=%PYTHON3_VER% DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
) ELSE (
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
)
|
||||
if not exist gvim.exe (
|
||||
echo Build failure.
|
||||
exit 1
|
||||
)
|
||||
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt || exit 1
|
||||
|
||||
echo "version output MSVC console"
|
||||
.\vim --version || exit 1
|
||||
echo "version output MSVC GUI"
|
||||
type ver_msvc.txt || exit 1
|
||||
|
||||
goto :eof
|
||||
|
||||
:: ----------------------------------------------------------------------------
|
||||
:test
|
||||
@echo on
|
||||
cd src/testdir
|
||||
:: Testing with MSVC gvim
|
||||
path %PYTHON3_DIR%;%GETTEXT_PATH%;%PATH%
|
||||
nmake -f Make_mvc.mak VIMPROG=..\gvim
|
||||
nmake -f Make_mvc.mak clean
|
||||
:: Testing with MSVC console version
|
||||
nmake -f Make_mvc.mak VIMPROG=..\vim
|
||||
|
||||
@echo off
|
||||
goto :eof
|
||||
|
||||
:: ----------------------------------------------------------------------------
|
||||
:downloadfile
|
||||
:: call :downloadfile <URL> <localfile>
|
||||
if not exist %2 (
|
||||
curl -f -L %1 -o %2
|
||||
)
|
||||
if ERRORLEVEL 1 (
|
||||
rem Retry once.
|
||||
curl -f -L %1 -o %2 || exit 1
|
||||
)
|
||||
@goto :eof
|
||||
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import itertools
|
||||
import json
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
|
||||
def generate_testset(n):
|
||||
cp = subprocess.run(["make", "-C", "src/testdir", "-npq"], capture_output=True)
|
||||
|
||||
tests = set()
|
||||
for line in cp.stdout.decode().split("\n"):
|
||||
if re.match(r"^(NEW_TESTS_RES|TEST_VIM9_RES) = ", line):
|
||||
tests.update(re.findall(r"\btest\w+\.res\b", line))
|
||||
|
||||
tests = sorted(list(tests))
|
||||
# move test_alot*.res to the end
|
||||
tests = (
|
||||
[t for t in tests if not t.startswith("test_alot")]
|
||||
+ [t for t in tests if t.startswith("test_alot_")]
|
||||
+ ["test_alot.res"]
|
||||
)
|
||||
targets = tests
|
||||
|
||||
if n > 1:
|
||||
targets = [ts for ts in itertools.batched(tests, n)]
|
||||
targets = [[t for t in ts if t] for ts in itertools.zip_longest(*targets)]
|
||||
|
||||
return targets
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("n", type=int, nargs="?", default=1)
|
||||
args = parser.parse_args()
|
||||
|
||||
print(json.dumps(generate_testset(args.n)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+1
-1
@@ -13,7 +13,7 @@ extensions = ["c", "h", "md", "html", "txt"]
|
||||
accept = ["100..=103", "200..=299", "429"]
|
||||
|
||||
# Retry each request a few times on transient network errors
|
||||
retries = 2
|
||||
max_retries = 2
|
||||
retry_wait_time = 2
|
||||
|
||||
# Timeout per request in seconds
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ README_vms.txt VMS
|
||||
|
||||
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
|
||||
|
||||
Для системе macOS вы може использовать MacVim: https://macvim.org
|
||||
Для системе macOS вы можете использовать MacVim: https://macvim.org
|
||||
|
||||
Последние новости о редакторе Vim можно найти на его домашней странице:
|
||||
https://www.vim.org/
|
||||
|
||||
+18
-16
@@ -90,7 +90,7 @@ Unicode true ; !include defaults to UTF-8 after Unicode True since 3.0 Alpha 2
|
||||
# ----------- No configurable settings below this line -----------
|
||||
|
||||
##########################################################
|
||||
# Installer Attributes, Including headers, Plugins and etc.
|
||||
# Installer Attributes, Including headers, Plugins and etc.
|
||||
|
||||
CRCCheck force
|
||||
|
||||
@@ -638,21 +638,23 @@ SectionGroupEnd
|
||||
!undef LIBRARY_X64
|
||||
${EndIf}
|
||||
|
||||
# Install DLLs for 32-bit gvimext.dll into the GvimExt32 directory.
|
||||
SetOutPath $0\GvimExt32
|
||||
ClearErrors
|
||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
|
||||
"${GETTEXT}\gettext32\libintl-8.dll" \
|
||||
"$0\GvimExt32\libintl-8.dll" "$0\GvimExt32"
|
||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
|
||||
"${GETTEXT}\gettext32\libiconv-2.dll" \
|
||||
"$0\GvimExt32\libiconv-2.dll" "$0\GvimExt32"
|
||||
# Install libgcc_s_sjlj-1.dll only if it is needed.
|
||||
!if ${INCLUDE_LIBGCC}
|
||||
!if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll"
|
||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
|
||||
"${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \
|
||||
"$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32"
|
||||
!if ! ${ARM64}
|
||||
# Install DLLs for 32-bit gvimext.dll into the GvimExt32 directory.
|
||||
SetOutPath $0\GvimExt32
|
||||
ClearErrors
|
||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
|
||||
"${GETTEXT}\gettext32\libintl-8.dll" \
|
||||
"$0\GvimExt32\libintl-8.dll" "$0\GvimExt32"
|
||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
|
||||
"${GETTEXT}\gettext32\libiconv-2.dll" \
|
||||
"$0\GvimExt32\libiconv-2.dll" "$0\GvimExt32"
|
||||
# Install libgcc_s_sjlj-1.dll only if it is needed.
|
||||
!if ${INCLUDE_LIBGCC}
|
||||
!if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll"
|
||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
|
||||
"${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \
|
||||
"$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32"
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
${EndIf}
|
||||
|
||||
@@ -14,9 +14,10 @@ Omni completion files:
|
||||
ccomplete.vim C
|
||||
csscomplete.vim HTML / CSS
|
||||
htmlcomplete.vim HTML
|
||||
javascriptcomplete.vim Javascript
|
||||
javascriptcomplete.vim Javascript
|
||||
phpcomplete.vim PHP
|
||||
pythoncomplete.vim Python
|
||||
python3complete.vim Python
|
||||
rubycomplete.vim Ruby
|
||||
syntaxcomplete.vim from syntax highlighting
|
||||
xmlcomplete.vim XML (uses files in the xml directory)
|
||||
|
||||
@@ -3,9 +3,7 @@ vim9script
|
||||
# Language: ConTeXt typesetting engine
|
||||
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
|
||||
# Latest Revision: 2026 Feb 03
|
||||
# Last Change:
|
||||
# 2026 Mar 30 by Vim project: Use fnameescape for the Log command
|
||||
# Latest Revision: 2026 May 20
|
||||
|
||||
# Typesetting {{{
|
||||
import autoload './typeset.vim'
|
||||
@@ -35,7 +33,7 @@ export def Log(bufname: string)
|
||||
var logpath = typeset.LogPath(bufname)
|
||||
|
||||
if filereadable(logpath)
|
||||
execute 'edit' .. fnameescape(typeset.LogPath(bufname))
|
||||
execute 'edit' fnameescape(typeset.LogPath(bufname))
|
||||
return
|
||||
endif
|
||||
|
||||
|
||||
Vendored
+40
-6
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2026 Apr 03
|
||||
# Last Change: 2026 May 29
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -63,6 +63,21 @@ export def FTapp()
|
||||
endfor
|
||||
enddef
|
||||
|
||||
# This function checks for Kawasaki robots AS file or atlas file type.
|
||||
export def FTas()
|
||||
if exists("g:filetype_as")
|
||||
exe "setf " .. g:filetype_as
|
||||
return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 30]))
|
||||
if getline(lnum) =~ '^\.NETCONF'
|
||||
setf kawasaki_as
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
setf atlas
|
||||
enddef
|
||||
|
||||
# This function checks for the kind of assembly that is wanted by the user, or
|
||||
# can be detected from the beginning of the file.
|
||||
export def FTasm()
|
||||
@@ -547,7 +562,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
|
||||
@@ -798,9 +813,14 @@ export def FTnroff(): number
|
||||
enddef
|
||||
|
||||
export def FTmm()
|
||||
if exists("g:filetype_mm")
|
||||
exe "setf " .. g:filetype_mm
|
||||
return
|
||||
endif
|
||||
|
||||
var n = 1
|
||||
while n < 20
|
||||
if getline(n) =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
if getline(n) =~ '^\s*\(//\|#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
setf objcpp
|
||||
return
|
||||
endif
|
||||
@@ -915,7 +935,7 @@ export def FTinc()
|
||||
elseif line =~ '^\s*\%({\|(\*\)' || line =~? ft_pascal_keywords
|
||||
setf pascal
|
||||
return
|
||||
elseif line =~# '\<\%(require\|inherit\)\>' || line =~# '[A-Z][A-Za-z0-9_:${}/]*\s\+\%(??\|[?:+.]\)\?=.\? '
|
||||
elseif line =~# '^\s*\<\%(require\|inherit\)\>' || line =~# '^\s*[A-Z][A-Za-z0-9_:${}/]*\%(\[[A-Za-z0-9_:/]\+\]\)*\s\+\%(??=\|[?:+.]=\|=[+.]\?\)\s\+'
|
||||
setf bitbake
|
||||
return
|
||||
endif
|
||||
@@ -1726,6 +1746,8 @@ const ft_from_ext = {
|
||||
"tdf": "ahdl",
|
||||
# AIDL
|
||||
"aidl": "aidl",
|
||||
# Algol 68
|
||||
"a68": "algol68",
|
||||
# AMPL
|
||||
"run": "ampl",
|
||||
# ANTLR / PCCTS
|
||||
@@ -1764,7 +1786,6 @@ const ft_from_ext = {
|
||||
"astro": "astro",
|
||||
# Atlas
|
||||
"atl": "atlas",
|
||||
"as": "atlas",
|
||||
# Atom is based on XML
|
||||
"atom": "xml",
|
||||
# Authzed
|
||||
@@ -1798,6 +1819,7 @@ const ft_from_ext = {
|
||||
# BDF font
|
||||
"bdf": "bdf",
|
||||
# Beancount
|
||||
"bean": "beancount",
|
||||
"beancount": "beancount",
|
||||
# BibTeX bibliography database file
|
||||
"bib": "bib",
|
||||
@@ -2292,6 +2314,8 @@ const ft_from_ext = {
|
||||
# KAREL
|
||||
"kl": "karel",
|
||||
"KL": "karel",
|
||||
# Kawasaki AS
|
||||
"pg": "kawasaki_as",
|
||||
# KDL
|
||||
"kdl": "kdl",
|
||||
# KerML
|
||||
@@ -2312,6 +2336,8 @@ const ft_from_ext = {
|
||||
"kts": "kotlin",
|
||||
# KDE script
|
||||
"ks": "kscript",
|
||||
# Kaitai struct
|
||||
"ksy": "yaml",
|
||||
# Kyaml
|
||||
"kyaml": "yaml",
|
||||
"kyml": "yaml",
|
||||
@@ -2613,6 +2639,8 @@ const ft_from_ext = {
|
||||
"qmd": "quarto",
|
||||
# QuickBms
|
||||
"bms": "quickbms",
|
||||
# Popcap Reanimation files
|
||||
"reanim": "xml",
|
||||
# Racket (formerly detected as "scheme")
|
||||
"rkt": "racket",
|
||||
"rktd": "racket",
|
||||
@@ -2707,6 +2735,8 @@ const ft_from_ext = {
|
||||
"mill": "scala",
|
||||
# SBT - Scala Build Tool
|
||||
"sbt": "sbt",
|
||||
# SGF, Smart Game Format
|
||||
"sgf": "sgf",
|
||||
# Slang Shading Language
|
||||
"slang": "shaderslang",
|
||||
# Slint
|
||||
@@ -2735,6 +2765,8 @@ const ft_from_ext = {
|
||||
"sieve": "sieve",
|
||||
# TriG
|
||||
"trig": "trig",
|
||||
# Tolk
|
||||
"tolk": "tolk",
|
||||
# Zig and Zig Object Notation (ZON)
|
||||
"zig": "zig",
|
||||
"zon": "zig",
|
||||
@@ -3113,7 +3145,9 @@ const ft_from_ext = {
|
||||
"bp": "bp",
|
||||
# Tiltfile
|
||||
"Tiltfile": "tiltfile",
|
||||
"tiltfile": "tiltfile"
|
||||
"tiltfile": "tiltfile",
|
||||
# Ghostty
|
||||
"ghostty": "ghostty",
|
||||
}
|
||||
# Key: file name (the final path component, excluding the drive and root)
|
||||
# Value: filetype
|
||||
|
||||
Vendored
+5
-3
@@ -4,7 +4,7 @@ vim9script
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Dec 22
|
||||
# Last Change: 2026 Apr 09
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
export def DetectFiletype()
|
||||
@@ -45,6 +45,8 @@ def DetectFromHashBang(firstline: string)
|
||||
name = substitute(line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
|
||||
elseif line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
|
||||
name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
|
||||
elseif line1 =~ '^#!.*\<busybox\>'
|
||||
name = substitute(line1, '^#!.*\<busybox\>\s\+\(\i\+\).*', '\1', '')
|
||||
else
|
||||
name = substitute(line1, '^#!\s*\S*[/\\]\(\f\+\).*', '\1', '')
|
||||
endif
|
||||
@@ -67,7 +69,7 @@ enddef
|
||||
# Returns an empty string when not recognized.
|
||||
export def Exe2filetype(name: string, line1: string): string
|
||||
# Bourne-like shell scripts: bash bash2 dash ksh ksh93 sh
|
||||
if name =~ '^\(bash\d*\|dash\|ksh\d*\|sh\)\>'
|
||||
if name =~ '^\(bash\d*\|d\?ash\|ksh\d*\|sh\)\>'
|
||||
return dist#ft#SetFileTypeSH(line1, false)
|
||||
|
||||
# csh scripts
|
||||
@@ -115,7 +117,7 @@ export def Exe2filetype(name: string, line1: string): string
|
||||
return 'php'
|
||||
|
||||
# Python
|
||||
elseif name =~ 'python'
|
||||
elseif name =~ 'python' || (name == 'uv' && line1 =~ '\<uv run\>')
|
||||
return 'python'
|
||||
|
||||
# Groovy
|
||||
|
||||
Vendored
+9
-6
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2026 Apr 06
|
||||
# Last Change: 2026 May 30
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
if empty(exepath(executable))
|
||||
@@ -51,7 +51,7 @@ if has('unix')
|
||||
execute $'silent !cmd /c start "" /b {args} {Redir()}' | redraw!
|
||||
enddef
|
||||
endif
|
||||
elseif exists('$WSL_DISTRO_NAME') # use cmd.exe to start GUI apps in WSL
|
||||
elseif exists('$WSL_DISTRO_NAME') && executable('cmd.exe') # use cmd.exe to start GUI apps in WSL
|
||||
export def Launch(args: string)
|
||||
const command = (args =~? '\v<\f+\.(exe|com|bat|cmd)>')
|
||||
? $'cmd.exe /c start /b {args} {Redir()}'
|
||||
@@ -131,15 +131,18 @@ enddef
|
||||
export def Open(file: string)
|
||||
# disable shellslash for shellescape, required on Windows #17995
|
||||
if exists('+shellslash') && &shellslash
|
||||
&shellslash = false
|
||||
defer setbufvar('%', '&shellslash', true)
|
||||
&shellslash = false
|
||||
endif
|
||||
if &shell == 'pwsh' || &shell == 'powershell'
|
||||
const shell = &shell
|
||||
defer setbufvar('%', '&shell', &shell)
|
||||
setlocal shell&
|
||||
defer setbufvar('%', '&shell', shell)
|
||||
endif
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
if has('unix') && !has('win32unix') && !exists('$WSL_DISTRO_NAME')
|
||||
Launch($"{Viewer()} {shellescape(file)}")
|
||||
else
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
|
||||
" 2025 May 11 by Vim Project: check network connectivity (#17249)
|
||||
" 2025 Dec 21 by Vim Project: make the wget check more robust (#18987)
|
||||
" 2026 May 20 by Vim Project: use correct shellescape() with ! command
|
||||
" }}}
|
||||
"
|
||||
" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
|
||||
@@ -433,9 +434,9 @@ fun! s:GetOneScript(...)
|
||||
let itry= 1
|
||||
while itry <= 3
|
||||
if has("win32") || has("win16") || has("win95")
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile,1).' '.shellescape(scriptaddr,1)|bw!
|
||||
else
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile,1)." ".shellescape(scriptaddr,1)
|
||||
endif
|
||||
if itry == 1
|
||||
exe "silent vsplit ".fnameescape(tmpfile)
|
||||
@@ -503,9 +504,9 @@ fun! s:GetOneScript(...)
|
||||
" -----------------------------------------------------------------------------
|
||||
echomsg ".downloading new <".sname.">"
|
||||
if has("win32") || has("win16") || has("win95")
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape(g:GetLatestVimScripts_downloadaddr.latestsrcid)|bw!
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname,1)." ".shellescape(g:GetLatestVimScripts_downloadaddr.latestsrcid,1)|bw!
|
||||
else
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape(g:GetLatestVimScripts_downloadaddr.latestsrcid)
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname,1)." ".shellescape(g:GetLatestVimScripts_downloadaddr.latestsrcid,1)
|
||||
endif
|
||||
|
||||
" --------------------------------------------------------------------------
|
||||
@@ -513,7 +514,7 @@ fun! s:GetOneScript(...)
|
||||
" --------------------------------------------------------------------------
|
||||
if doautoinstall
|
||||
if filereadable(sname)
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname,1)." ".shellescape(s:autoinstall,1)
|
||||
let curdir = fnameescape(substitute(getcwd(),'\','/','ge'))
|
||||
let installdir= curdir."/Installed"
|
||||
if !isdirectory(installdir)
|
||||
@@ -532,33 +533,33 @@ fun! s:GetOneScript(...)
|
||||
|
||||
" decompress
|
||||
if sname =~ '\.bz2$'
|
||||
exe "sil !".g:GetLatestVimScripts_bunzip2." ".shellescape(sname)
|
||||
exe "sil !".g:GetLatestVimScripts_bunzip2." ".shellescape(sname,1)
|
||||
let sname= substitute(sname,'\.bz2$','','')
|
||||
elseif sname =~ '\.bz3$'
|
||||
exe "sil !".g:GetLatestVimScripts_bunzip3." ".shellescape(sname)
|
||||
exe "sil !".g:GetLatestVimScripts_bunzip3." ".shellescape(sname,1)
|
||||
let sname= substitute(sname,'\.bz3$','','')
|
||||
elseif sname =~ '\.gz$'
|
||||
exe "sil !".g:GetLatestVimScripts_gunzip." ".shellescape(sname)
|
||||
exe "sil !".g:GetLatestVimScripts_gunzip." ".shellescape(sname,1)
|
||||
let sname= substitute(sname,'\.gz$','','')
|
||||
elseif sname =~ '\.xz$'
|
||||
exe "sil !".g:GetLatestVimScripts_unxz." ".shellescape(sname)
|
||||
exe "sil !".g:GetLatestVimScripts_unxz." ".shellescape(sname,1)
|
||||
let sname= substitute(sname,'\.xz$','','')
|
||||
else
|
||||
endif
|
||||
|
||||
" distribute archive(.zip, .tar, .vba, .vmb, ...) contents
|
||||
if sname =~ '\.zip$'
|
||||
exe "silent !".g:GetLatestVimScripts_unzip." -o ".shellescape(sname)
|
||||
exe "silent !".g:GetLatestVimScripts_unzip." -o ".shellescape(sname,1)
|
||||
elseif sname =~ '\.tar$'
|
||||
exe "silent !tar -xvf ".shellescape(sname)
|
||||
exe "silent !tar -xvf ".shellescape(sname,1)
|
||||
elseif sname =~ '\.tgz$'
|
||||
exe "silent !tar -zxvf ".shellescape(sname)
|
||||
exe "silent !tar -zxvf ".shellescape(sname,1)
|
||||
elseif sname =~ '\.taz$'
|
||||
exe "silent !tar -Zxvf ".shellescape(sname)
|
||||
exe "silent !tar -Zxvf ".shellescape(sname,1)
|
||||
elseif sname =~ '\.tbz$'
|
||||
exe "silent !tar -jxvf ".shellescape(sname)
|
||||
exe "silent !tar -jxvf ".shellescape(sname,1)
|
||||
elseif sname =~ '\.txz$'
|
||||
exe "silent !tar -Jxvf ".shellescape(sname)
|
||||
exe "silent !tar -Jxvf ".shellescape(sname,1)
|
||||
elseif sname =~ '\.vba$\|\.vmb$'
|
||||
silent 1split
|
||||
if exists("g:vimball_home")
|
||||
@@ -579,12 +580,12 @@ fun! s:GetOneScript(...)
|
||||
" move plugin to plugin/ or AsNeeded/ directory
|
||||
" ---------------------------------------------
|
||||
if sname =~ '.vim$'
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname,1)." ".tgtdir
|
||||
else
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname,1)." ".installdir
|
||||
endif
|
||||
if tgtdir != "plugin"
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape("plugin/".pname)." ".tgtdir
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape("plugin/".pname,1)." ".tgtdir
|
||||
endif
|
||||
|
||||
" helptags step
|
||||
|
||||
+23
-34
@@ -1,6 +1,6 @@
|
||||
" Vim autoload file for editing compressed files.
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Nov 25
|
||||
" Last Change: 2026 Apr 26
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" These functions are used by the gzip plugin.
|
||||
@@ -82,13 +82,8 @@ fun gzip#read(cmd)
|
||||
let empty = line("'[") == 1 && line("']") == line("$")
|
||||
let tmp = tempname()
|
||||
let tmpe = tmp . "." . expand("<afile>:e")
|
||||
if exists('*fnameescape')
|
||||
let tmp_esc = fnameescape(tmp)
|
||||
let tmpe_esc = fnameescape(tmpe)
|
||||
else
|
||||
let tmp_esc = escape(tmp, ' ')
|
||||
let tmpe_esc = escape(tmpe, ' ')
|
||||
endif
|
||||
let tmp_esc = fnameescape(tmp)
|
||||
let tmpe_esc = fnameescape(tmpe)
|
||||
" write the just read lines to a temp file "'[,']w tmp.gz"
|
||||
execute "silent '[,']w " . tmpe_esc
|
||||
" uncompress the temp file: call system("gzip -dn tmp.gz")
|
||||
@@ -101,22 +96,14 @@ fun gzip#read(cmd)
|
||||
let ok = 1
|
||||
" delete the compressed lines; remember the line number
|
||||
let l = line("'[") - 1
|
||||
if exists(":lockmarks")
|
||||
lockmarks '[,']d _
|
||||
else
|
||||
'[,']d _
|
||||
endif
|
||||
lockmarks '[,']d _
|
||||
" read in the uncompressed lines "'[-1r tmp"
|
||||
" Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options.
|
||||
setlocal nobin
|
||||
if exists(":lockmarks")
|
||||
if empty
|
||||
execute "silent lockmarks " . l . "r ++edit " . tmp_esc
|
||||
else
|
||||
execute "silent lockmarks " . l . "r " . tmp_esc
|
||||
endif
|
||||
if empty
|
||||
execute "silent lockmarks " . l . "r ++edit " . tmp_esc
|
||||
else
|
||||
execute "silent " . l . "r " . tmp_esc
|
||||
execute "silent lockmarks " . l . "r " . tmp_esc
|
||||
endif
|
||||
|
||||
" if buffer became empty, delete trailing blank line
|
||||
@@ -143,11 +130,7 @@ fun gzip#read(cmd)
|
||||
|
||||
" When uncompressed the whole buffer, do autocommands
|
||||
if ok && empty
|
||||
if exists('*fnameescape')
|
||||
let fname = fnameescape(expand("%:r"))
|
||||
else
|
||||
let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
|
||||
endif
|
||||
let fname = fnameescape(expand("%:r"))
|
||||
if filereadable(undofile(expand("%")))
|
||||
exe "sil rundo " . fnameescape(undofile(expand("%")))
|
||||
endif
|
||||
@@ -191,8 +174,9 @@ fun gzip#appre(cmd)
|
||||
call s:set_compression(readfile(nm, "b", 1)[0])
|
||||
endif
|
||||
|
||||
" Rename to a weird name to avoid the risk of overwriting another file
|
||||
let nmt = expand("<afile>:p:h") . "/X~=@l9q5"
|
||||
" Rename to a unique name to avoid the risk of overwriting another file
|
||||
" or being targeted by a symlink in a shared directory.
|
||||
let nmt = s:samedir_tempname(nm)
|
||||
let nmte = nmt . "." . expand("<afile>:e")
|
||||
if rename(nm, nmte) == 0
|
||||
if &patchmode != "" && getfsize(nm . &patchmode) == -1
|
||||
@@ -208,22 +192,27 @@ fun gzip#appre(cmd)
|
||||
endfun
|
||||
|
||||
" find a file name for the file to be compressed. Use "name" without an
|
||||
" extension if possible. Otherwise use a weird name to avoid overwriting an
|
||||
" existing file.
|
||||
" extension if possible. Otherwise use a unique name to avoid overwriting an
|
||||
" existing file or following a symlink set up by another user.
|
||||
fun s:tempname(name)
|
||||
let fn = fnamemodify(a:name, ":r")
|
||||
if !filereadable(fn) && !isdirectory(fn)
|
||||
return fn
|
||||
endif
|
||||
return fnamemodify(a:name, ":p:h") . "/X~=@l9q5"
|
||||
return s:samedir_tempname(a:name)
|
||||
endfun
|
||||
|
||||
" Generate an unpredictable file name in the same directory as "name", using
|
||||
" the random component of tempname() to avoid symlink attacks in shared
|
||||
" directories (e.g. /tmp).
|
||||
fun s:samedir_tempname(name)
|
||||
let tmp = tempname()
|
||||
return fnamemodify(a:name, ":p:h") . "/" . fnamemodify(tmp, ":h:t") . fnamemodify(tmp, ":t")
|
||||
endfun
|
||||
|
||||
fun s:escape(name)
|
||||
" shellescape() was added by patch 7.0.111
|
||||
if exists("*shellescape")
|
||||
return shellescape(a:name)
|
||||
endif
|
||||
return "'" . a:name . "'"
|
||||
return shellescape(a:name)
|
||||
endfun
|
||||
|
||||
" vim: set sw=2 :
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
" i.e. "import url<c-x,c-o>"
|
||||
" Continue parsing on invalid line??
|
||||
"
|
||||
" v 0.10 by Vim project
|
||||
" * disables importing local modules, unless the global Vim variable
|
||||
" g:pythoncomplete_allow_import is set to non-zero
|
||||
"
|
||||
" v 0.9
|
||||
" * Fixed docstring parsing for classes and functions
|
||||
" * Fixed parsing of *args and **kwargs type arguments
|
||||
@@ -131,12 +135,24 @@ class Completer(object):
|
||||
self.parser = PyParser()
|
||||
|
||||
def evalsource(self,text,line=0):
|
||||
# vim is imported locally in vimpy3complete(); re-import here so the
|
||||
# vim.eval() below works (otherwise NameError, silently caught).
|
||||
import vim
|
||||
sc = self.parser.parse(text,line)
|
||||
try: allow_imports = int(
|
||||
vim.eval("get(g:, 'pythoncomplete_allow_import', 0)"))
|
||||
except Exception:
|
||||
allow_imports = 0
|
||||
src = sc.get_code()
|
||||
dbg("source: %s" % src)
|
||||
try: exec(src,self.compldict)
|
||||
except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
|
||||
for l in sc.locals:
|
||||
# Executing import/from statements harvested from the buffer runs
|
||||
# arbitrary package code; only do so when the user opted in.
|
||||
if not allow_imports and (l.startswith('import')
|
||||
or l.startswith('from ')):
|
||||
continue
|
||||
try: exec(l,self.compldict)
|
||||
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
|
||||
|
||||
@@ -300,13 +316,11 @@ class Scope(object):
|
||||
def get_code(self):
|
||||
str = ""
|
||||
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
|
||||
for l in self.locals:
|
||||
if l.startswith('import'): str += l+'\n'
|
||||
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
|
||||
for sub in self.subscopes:
|
||||
str += sub.get_code()
|
||||
for l in self.locals:
|
||||
if not l.startswith('import'): str += l+'\n'
|
||||
if not l.startswith('import') and not l.startswith('from '): str += l+'\n'
|
||||
|
||||
return str
|
||||
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
" i.e. "import url<c-x,c-o>"
|
||||
" Continue parsing on invalid line??
|
||||
"
|
||||
" v 0.10 by Vim project
|
||||
" * disables importing local modules, unless the global Vim variable
|
||||
" g:pythoncomplete_allow_import is set to non-zero
|
||||
"
|
||||
" v 0.9
|
||||
" * Fixed docstring parsing for classes and functions
|
||||
" * Fixed parsing of *args and **kwargs type arguments
|
||||
@@ -145,12 +149,24 @@ class Completer(object):
|
||||
self.parser = PyParser()
|
||||
|
||||
def evalsource(self,text,line=0):
|
||||
# vim is imported locally in vimcomplete(); re-import here so the
|
||||
# vim.eval() below works (otherwise NameError, silently caught).
|
||||
import vim
|
||||
sc = self.parser.parse(text,line)
|
||||
try: allow_imports = int(
|
||||
vim.eval("get(g:, 'pythoncomplete_allow_import', 0)"))
|
||||
except Exception:
|
||||
allow_imports = 0
|
||||
src = sc.get_code()
|
||||
dbg("source: %s" % src)
|
||||
try: exec(src) in self.compldict
|
||||
except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
|
||||
for l in sc.locals:
|
||||
# Executing import/from statements harvested from the buffer runs
|
||||
# arbitrary package code; only do so when the user opted in.
|
||||
if not allow_imports and (l.startswith('import')
|
||||
or l.startswith('from ')):
|
||||
continue
|
||||
try: exec(l) in self.compldict
|
||||
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
|
||||
|
||||
@@ -315,13 +331,11 @@ class Scope(object):
|
||||
def get_code(self):
|
||||
str = ""
|
||||
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
|
||||
for l in self.locals:
|
||||
if l.startswith('import'): str += l+'\n'
|
||||
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
|
||||
for sub in self.subscopes:
|
||||
str += sub.get_code()
|
||||
for l in self.locals:
|
||||
if not l.startswith('import'): str += l+'\n'
|
||||
if not l.startswith('import') and not l.startswith('from '): str += l+'\n'
|
||||
|
||||
return str
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
" Description: Helper functions for Rust commands/mappings
|
||||
" Last Modified: 2023-09-11
|
||||
" 2026 May 20 by Vim project: use correct shellescape() with ! command
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
function! rust#Load()
|
||||
@@ -125,7 +126,7 @@ function! s:Run(dict, rustc_args, args)
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||
exe '!' . shellescape(exepath,1) . " " . join(map(a:args, 'shellescape(v:val,1)'))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
+69
-43
@@ -21,6 +21,11 @@
|
||||
" 2026 Feb 06 by Vim Project: consider 'nowrapscan' (#19333)
|
||||
" 2026 Feb 07 by Vim Project: make the path traversal detection more robust (#19341)
|
||||
" 2026 Apr 06 by Vim Project: fix bugs with lz4 support (#19925)
|
||||
" 2026 Apr 09 by Vim Project: fix bugs with zstd support (#19930)
|
||||
" 2026 Apr 09 by Vim Project: fix bug with dotted filename (#19930)
|
||||
" 2026 Apr 15 by Vim Project: fix more path traversal issues (#19981)
|
||||
" 2026 Apr 16 by Vim Project: use g:tar_secure in tar#Extract()
|
||||
" 2026 May 14 by Vim Project: use correct shellescape() call in Vimuntar()
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
@@ -610,118 +615,139 @@ fun! tar#Extract()
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
|
||||
let tarball = expand("%")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
if fname =~ '^[.]\?[.]/' || simplify(fname) =~ '\.\.[/\\]'
|
||||
call s:Msg('tar#Extract', 'error', "Path Traversal Attack detected, not extracting!")
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
if has("unix")
|
||||
if fname =~ '^/'
|
||||
call s:Msg('tar#Extract', 'error', "Path Traversal Attack detected, not extracting!")
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
else
|
||||
if fname =~ '^\%(\a:[\\/]\|[\\/]\)'
|
||||
call s:Msg('tar#Extract', 'error', "Path Traversal Attack detected, not extracting!")
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
let extractcmd= s:WinPath(g:tar_extractcmd)
|
||||
if filereadable(tarbase.".tar")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||
let tarball = expand("%")
|
||||
if !filereadable(tarball)
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
|
||||
if tarball =~# "\.tar$"
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ". fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tgz")
|
||||
elseif tarball =~# "\.tgz$"
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tgz {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.gz")
|
||||
elseif tarball =~# "\.tar\.gz$"
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.gz {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tbz")
|
||||
elseif tarball =~# "\.tbz$"
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tbz {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.bz2")
|
||||
elseif tarball =~# "\.tar\.bz2$"
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.bz2 {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.bz3")
|
||||
elseif tarball =~# "\.tar\.bz3$"
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz3 ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.bz3 {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".txz")
|
||||
elseif tarball =~# "\.txz$"
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.txz {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.xz")
|
||||
elseif tarball =~# "\.tar\.xz$"
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.xz {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tzst")
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname))
|
||||
elseif tarball =~# "\.tzst$"
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd -","")
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tzst {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.zst")
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname))
|
||||
elseif tarball =~# "\.tar\.zst$"
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd -","")
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.zst {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tlz4")
|
||||
elseif tarball =~# "\.tlz4$"
|
||||
if has("linux")
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4 -","")
|
||||
endif
|
||||
call system(extractcmd." ".shellescape(tarbase).".tlz4 ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tlz4 {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.lz4")
|
||||
elseif tarball =~# "\.tar\.lz4$"
|
||||
if has("linux")
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4 -","")
|
||||
endif
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.lz4 ".shellescape(fname))
|
||||
call system(extractcmd." ".shellescape(tarball)." ".g:tar_secure.shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.lz4 {fname}: failed!")
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarball} {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -807,9 +833,9 @@ fun! tar#Vimuntar(...)
|
||||
" if necessary, decompress the tarball; then, extract it
|
||||
if tartail =~ '\.tgz'
|
||||
if executable("gunzip")
|
||||
silent exe "!gunzip ".shellescape(tartail)
|
||||
silent exe "!gunzip ".shellescape(tartail, 1)
|
||||
elseif executable("gzip")
|
||||
silent exe "!gzip -d ".shellescape(tartail)
|
||||
silent exe "!gzip -d ".shellescape(tartail, 1)
|
||||
else
|
||||
echoerr "unable to decompress<".tartail."> on this system"
|
||||
if simplify(curdir) != simplify(tarhome)
|
||||
|
||||
+735
-734
File diff suppressed because it is too large
Load Diff
@@ -2,9 +2,7 @@ vim9script
|
||||
|
||||
# Language: Generic TeX typesetting engine
|
||||
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
# Latest Revision: 2026 Feb 19
|
||||
# Last Change:
|
||||
# 2026 Mar 30 by Vim project: Use fnameescape for the ProcessOutput command
|
||||
# Latest Revision: 2026 May 20
|
||||
|
||||
# Constants and helpers {{{
|
||||
const SLASH = !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||
@@ -62,7 +60,7 @@ def ProcessOutput(qfid: number, wd: string, efm: string, ch: channel, msg: strin
|
||||
endif
|
||||
|
||||
# Make sure the working directory is correct
|
||||
silent execute "lcd" .. fnameescape(wd)
|
||||
silent execute "lcd" fnameescape(wd)
|
||||
setqflist([], 'a', {'id': qfid, 'lines': [msg], 'efm': efm})
|
||||
silent lcd -
|
||||
enddef
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
" vimball.vim : construct a file containing both paths and files
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Original Author: Charles E. Campbell
|
||||
" Date: Apr 11, 2016
|
||||
" Date: May 20, 2026
|
||||
" Version: 37 (with modifications from the Vim Project)
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Last Change:
|
||||
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
|
||||
" 2026 Apr 05 by Vim Project: Detect Path Traversal Attacks
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||
@@ -105,14 +102,14 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
|
||||
while linenr <= a:line2
|
||||
let svfile = getline(linenr)
|
||||
|
||||
|
||||
if !filereadable(svfile)
|
||||
call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">")
|
||||
call s:ChgDir(curdir)
|
||||
call vimball#RestoreSettings()
|
||||
return
|
||||
endif
|
||||
|
||||
|
||||
" create/switch to mkvimball tab
|
||||
if !exists("vbtabnr")
|
||||
tabnew
|
||||
@@ -121,7 +118,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
else
|
||||
exe "tabn ".vbtabnr
|
||||
endif
|
||||
|
||||
|
||||
let lastline= line("$") + 1
|
||||
if lastline == 2 && getline("$") == ""
|
||||
call setline(1,'" Vimball Archiver by Charles E. Campbell')
|
||||
@@ -165,7 +162,7 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" vimball#Vimball: extract and distribute contents from a vimball {{{2
|
||||
" (invoked the the UseVimball command embedded in
|
||||
" (invoked the the UseVimball command embedded in
|
||||
" vimballs' prologue)
|
||||
fun! vimball#Vimball(really,...)
|
||||
|
||||
@@ -215,7 +212,7 @@ fun! vimball#Vimball(really,...)
|
||||
" give title to listing of (extracted) files from Vimball Archive
|
||||
if a:really
|
||||
echohl Title | echomsg "Vimball Archive" | echohl None
|
||||
else
|
||||
else
|
||||
echohl Title | echomsg "Vimball Archive Listing" | echohl None
|
||||
echohl Statement | echomsg "files would be placed under: ".home | echohl None
|
||||
endif
|
||||
@@ -229,12 +226,25 @@ fun! vimball#Vimball(really,...)
|
||||
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
|
||||
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\{-}\)$','\1','')
|
||||
let filecnt = filecnt + 1
|
||||
if fname =~ '\.\.'
|
||||
" Do not allow a leading /, .. anywhere, or a Windows drive letter
|
||||
" (e.g. C:/foo) in the file name. Backslashes were already converted
|
||||
" to forward slashes above, so this also catches \\server\share UNC
|
||||
" paths via the leading-slash check.
|
||||
if fname =~ '\.\.' || fname =~ '^/' || fname =~ '^\a:'
|
||||
echomsg "(Vimball) Path Traversal Attack detected, aborting..."
|
||||
exe "tabn ".curtabnr
|
||||
bw! Vimball
|
||||
call s:ChgDir(curdir)
|
||||
return
|
||||
" Also, disallow strange paths, that could lead to code execution from
|
||||
" .VimballRecord
|
||||
" Disallow: pipe, quotes and closing paren
|
||||
elseif fname =~ '[|'')"]'
|
||||
echomsg printf("(Vimball) Forbidding strange filename: '%s', aborting...", fname)
|
||||
exe "tabn ".curtabnr
|
||||
bw! Vimball
|
||||
call s:ChgDir(curdir)
|
||||
return
|
||||
endif
|
||||
|
||||
if a:really
|
||||
@@ -293,7 +303,7 @@ fun! vimball#Vimball(really,...)
|
||||
exe "silent w! ".fnameescape(fnamepath)
|
||||
endif
|
||||
echo "wrote ".fnameescape(fnamepath)
|
||||
call s:RecordInVar(home,"call delete('".fnamepath."')")
|
||||
call s:RecordInVar(home,"call delete('".escape(fnamepath, '"''|')."')")
|
||||
endif
|
||||
|
||||
" return to tab with vimball
|
||||
@@ -368,7 +378,7 @@ fun! vimball#RmVimball(...)
|
||||
|
||||
call s:ChgDir(home)
|
||||
if filereadable(".VimballRecord")
|
||||
keepalt keepjumps 1split
|
||||
keepalt keepjumps 1split
|
||||
sil! keepalt keepjumps e .VimballRecord
|
||||
let keepsrch= @/
|
||||
if search('^\M'.curfile."\m: ".'cw')
|
||||
@@ -416,7 +426,7 @@ fun! vimball#Decompress(fname,...)
|
||||
" decompression:
|
||||
if expand("%") =~ '.*\.gz' && executable("gunzip")
|
||||
" handle *.gz with gunzip
|
||||
silent exe "!gunzip ".shellescape(a:fname)
|
||||
silent exe "!gunzip ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
|
||||
endif
|
||||
@@ -426,7 +436,7 @@ fun! vimball#Decompress(fname,...)
|
||||
|
||||
elseif expand("%") =~ '.*\.gz' && executable("gzip")
|
||||
" handle *.gz with gzip -d
|
||||
silent exe "!gzip -d ".shellescape(a:fname)
|
||||
silent exe "!gzip -d ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
@@ -436,7 +446,7 @@ fun! vimball#Decompress(fname,...)
|
||||
|
||||
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
|
||||
" handle *.bz2 with bunzip2
|
||||
silent exe "!bunzip2 ".shellescape(a:fname)
|
||||
silent exe "!bunzip2 ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
|
||||
endif
|
||||
@@ -446,7 +456,7 @@ fun! vimball#Decompress(fname,...)
|
||||
|
||||
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
|
||||
" handle *.bz2 with bzip2 -d
|
||||
silent exe "!bzip2 -d ".shellescape(a:fname)
|
||||
silent exe "!bzip2 -d ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
@@ -456,7 +466,7 @@ fun! vimball#Decompress(fname,...)
|
||||
|
||||
elseif expand("%") =~ '.*\.bz3' && executable("bunzip3")
|
||||
" handle *.bz3 with bunzip3
|
||||
silent exe "!bunzip3 ".shellescape(a:fname)
|
||||
silent exe "!bunzip3 ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip3 may have failed with <".a:fname.">")
|
||||
endif
|
||||
@@ -466,7 +476,7 @@ fun! vimball#Decompress(fname,...)
|
||||
|
||||
elseif expand("%") =~ '.*\.bz3' && executable("bzip3")
|
||||
" handle *.bz3 with bzip3 -d
|
||||
silent exe "!bzip3 -d ".shellescape(a:fname)
|
||||
silent exe "!bzip3 -d ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip3 -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
@@ -476,7 +486,7 @@ fun! vimball#Decompress(fname,...)
|
||||
|
||||
elseif expand("%") =~ '.*\.zip' && executable("unzip")
|
||||
" handle *.zip with unzip
|
||||
silent exe "!unzip ".shellescape(a:fname)
|
||||
silent exe "!unzip ".shellescape(a:fname,1)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
|
||||
endif
|
||||
@@ -556,7 +566,7 @@ fun! s:RecordInFile(home)
|
||||
if exists("s:recordfile") || exists("s:recorddir")
|
||||
let curdir= getcwd()
|
||||
call s:ChgDir(a:home)
|
||||
keepalt keepjumps 1split
|
||||
keepalt keepjumps 1split
|
||||
|
||||
let cmd= expand("%:tr").": "
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
" 2026 Mar 08 by Vim Project: Make ZipUpdatePS() check for powershell
|
||||
" 2026 Apr 01 by Vim Project: Detect more path traversal attacks
|
||||
" 2026 Apr 05 by Vim Project: Detect more path traversal attacks
|
||||
" 2026 Apr 14 by Vim Project: Detect more path traversal attacks on Windows
|
||||
" 2026 Apr 15 by Vim Project: Detect more path traversal attacks on Windows
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@@ -405,7 +407,12 @@ fun! zip#Write(fname)
|
||||
else
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
" TODO: what to check on MS-Windows to avoid writing absolute paths?
|
||||
" fname should not start with drive letter, UNC path, or leading slash
|
||||
if fname =~ '^\%(\a:[\\/]\|[\\/]\)'
|
||||
call s:Mess('Error', "***error*** (zip#Write) Path Traversal Attack detected, not writing!")
|
||||
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
|
||||
return
|
||||
endif
|
||||
endif
|
||||
if fname =~ '^[.]\{1,2}/'
|
||||
let gnu_cmd = g:zip_zipcmd . ' -d ' . s:Escape(fnamemodify(zipfile,":p"),0) . ' ' . s:Escape(fname,0)
|
||||
@@ -499,6 +506,18 @@ fun! zip#Extract()
|
||||
call s:Mess('Error', "***error*** (zip#Browse) Path Traversal Attack detected, not extracting!")
|
||||
return
|
||||
endif
|
||||
" block absolute paths
|
||||
if has("unix")
|
||||
if fname =~ '^/'
|
||||
call s:Mess('Error', "***error*** (zip#Extract) Path Traversal Attack detected, not extracting!")
|
||||
return
|
||||
endif
|
||||
else
|
||||
if fname =~ '^\%(\a:[\\/]\|[\\/]\)'
|
||||
call s:Mess('Error', "***error*** (zip#Extract) Path Traversal Attack detected, not extracting!")
|
||||
return
|
||||
endif
|
||||
endif
|
||||
if filereadable(fname)
|
||||
call s:Mess('Error', "***error*** (zip#Extract) <" .. fname .."> already exists in directory, not overwriting!")
|
||||
return
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 14
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -124,7 +124,8 @@ hi ToolbarButton guifg=#ffffff guibg=#005faf guisp=NONE gui=NONE ctermfg=231 cte
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#ffa500 guibg=NONE guisp=NONE gui=bold ctermfg=214 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#008787 guibg=NONE guisp=NONE gui=NONE ctermfg=30 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#5fffff guibg=NONE guisp=NONE gui=NONE ctermfg=87 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#008787 guibg=NONE guisp=NONE gui=NONE ctermfg=30 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Visual guifg=#ffffff guibg=#008787 guisp=NONE gui=NONE ctermfg=231 ctermbg=30 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=#008787 guibg=#ffffff guisp=NONE gui=NONE ctermfg=30 ctermbg=231 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#d787d7 guibg=NONE guisp=NONE gui=NONE ctermfg=176 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -197,7 +198,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi VertSplit ctermfg=cyan ctermbg=NONE cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
|
||||
hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
|
||||
hi WarningMsg ctermfg=magenta ctermbg=NONE cterm=NONE
|
||||
@@ -268,6 +270,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=red ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=cyan ctermbg=NONE cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi VisualNOS ctermfg=cyan ctermbg=gray cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
" Description: Soothing pastel theme for the high-spirited!
|
||||
" Author: The Catppuccin Community <catppuccin.com>
|
||||
" Maintainer: Mao-Yining <mao.yining@outlook.com>
|
||||
" URL: https://www.github.com/vim/colorschemes
|
||||
" Last Change: 2026 Jan 31
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" Last Change: 2026 May 04
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'catppuccin'
|
||||
@@ -80,7 +80,7 @@ if &background == 'dark'
|
||||
hi PmenuExtra guifg=#6c7086 guibg=#181825 guisp=NONE gui=NONE ctermfg=59 ctermbg=232 cterm=NONE term=NONE
|
||||
hi PmenuExtraSel guifg=#6c7086 guibg=#313244 guisp=NONE gui=bold ctermfg=59 ctermbg=236 cterm=bold term=bold
|
||||
hi PmenuMatch guifg=#cdd6f4 guibg=NONE guisp=NONE gui=bold ctermfg=189 ctermbg=NONE cterm=bold term=bold
|
||||
hi PmenuMatchSel guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold
|
||||
hi PmenuMatchSel guifg=#cdd6f4 guibg=NONE guisp=NONE gui=bold ctermfg=189 ctermbg=NONE cterm=bold term=bold
|
||||
hi PmenuSbar guifg=NONE guibg=#313244 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#313244 guisp=NONE gui=bold ctermfg=NONE ctermbg=236 cterm=bold term=bold
|
||||
hi PmenuThumb guifg=NONE guibg=#6c7086 guisp=NONE gui=NONE ctermfg=NONE ctermbg=59 cterm=NONE term=NONE
|
||||
@@ -98,8 +98,8 @@ if &background == 'dark'
|
||||
hi SpellLocal guifg=NONE guibg=NONE guisp=#89b4fa gui=undercurl ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi SpellRare guifg=NONE guibg=NONE guisp=#a6e3a1 gui=undercurl ctermfg=114 ctermbg=NONE cterm=underline term=underline
|
||||
hi Statement guifg=#cba6f7 guibg=NONE guisp=NONE gui=NONE ctermfg=183 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi StatusLine guifg=#cdd6f4 guibg=#11111b guisp=NONE gui=NONE ctermfg=189 ctermbg=16 cterm=NONE term=bold,reverse
|
||||
hi StatusLineNC guifg=#45475a guibg=#181825 guisp=NONE gui=NONE ctermfg=240 ctermbg=232 cterm=NONE term=bold,underline
|
||||
hi StatusLine guifg=#cdd6f4 guibg=#11111b guisp=NONE gui=bold ctermfg=189 ctermbg=16 cterm=bold term=bold,reverse
|
||||
hi StatusLineNC guifg=#6c7086 guibg=#181825 guisp=NONE gui=NONE ctermfg=59 ctermbg=232 cterm=NONE term=bold,underline
|
||||
hi StorageClass guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi String guifg=#a6e3a1 guibg=NONE guisp=NONE gui=NONE ctermfg=114 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Structure guifg=#f9e2af guibg=NONE guisp=NONE gui=NONE ctermfg=222 ctermbg=NONE cterm=NONE term=NONE
|
||||
@@ -207,8 +207,8 @@ if &background == 'dark'
|
||||
hi PmenuExtra ctermfg=Grey ctermbg=DarkGrey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=Grey ctermbg=DarkYellow cterm=bold
|
||||
hi PmenuMatch ctermfg=White ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=DarkYellow cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=White ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=DarkYellow cterm=bold
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=Grey cterm=NONE
|
||||
hi PreInsert ctermfg=Grey ctermbg=NONE cterm=NONE
|
||||
@@ -328,8 +328,8 @@ if &background == 'dark'
|
||||
hi PmenuExtra ctermfg=Grey ctermbg=DarkGrey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=Grey ctermbg=DarkYellow cterm=bold
|
||||
hi PmenuMatch ctermfg=White ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=DarkYellow cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=White ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=DarkYellow cterm=bold
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=Grey cterm=NONE
|
||||
hi PreInsert ctermfg=Grey ctermbg=NONE cterm=NONE
|
||||
@@ -466,7 +466,7 @@ if &background == 'light'
|
||||
hi PmenuExtra guifg=#9ca0b0 guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=247 ctermbg=255 cterm=NONE term=NONE
|
||||
hi PmenuExtraSel guifg=#9ca0b0 guibg=#ccd0da guisp=NONE gui=bold ctermfg=247 ctermbg=253 cterm=bold term=bold
|
||||
hi PmenuMatch guifg=#4c4f69 guibg=NONE guisp=NONE gui=bold ctermfg=236 ctermbg=NONE cterm=bold term=bold
|
||||
hi PmenuMatchSel guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold term=bold
|
||||
hi PmenuMatchSel guifg=#4c4f69 guibg=NONE guisp=NONE gui=bold ctermfg=236 ctermbg=NONE cterm=bold term=bold
|
||||
hi PmenuSbar guifg=NONE guibg=#ccd0da guisp=NONE gui=NONE ctermfg=NONE ctermbg=253 cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#ccd0da guisp=NONE gui=bold ctermfg=NONE ctermbg=253 cterm=bold term=bold
|
||||
hi PmenuThumb guifg=NONE guibg=#9ca0b0 guisp=NONE gui=NONE ctermfg=NONE ctermbg=247 cterm=NONE term=NONE
|
||||
@@ -484,8 +484,8 @@ if &background == 'light'
|
||||
hi SpellLocal guifg=NONE guibg=NONE guisp=#1e66f5 gui=undercurl ctermfg=27 ctermbg=NONE cterm=underline term=underline
|
||||
hi SpellRare guifg=NONE guibg=NONE guisp=#40a02b gui=undercurl ctermfg=34 ctermbg=NONE cterm=underline term=underline
|
||||
hi Statement guifg=#8839ef guibg=NONE guisp=NONE gui=NONE ctermfg=93 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi StatusLine guifg=#4c4f69 guibg=#dce0e8 guisp=NONE gui=NONE ctermfg=236 ctermbg=254 cterm=NONE term=bold,reverse
|
||||
hi StatusLineNC guifg=#bcc0cc guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=250 ctermbg=255 cterm=NONE term=bold,underline
|
||||
hi StatusLine guifg=#4c4f69 guibg=#dce0e8 guisp=NONE gui=bold ctermfg=236 ctermbg=254 cterm=bold term=bold,reverse
|
||||
hi StatusLineNC guifg=#9ca0b0 guibg=#e6e9ef guisp=NONE gui=NONE ctermfg=247 ctermbg=255 cterm=NONE term=bold,underline
|
||||
hi StorageClass guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi String guifg=#40a02b guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Structure guifg=#df8e1d guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
|
||||
@@ -593,8 +593,8 @@ if &background == 'light'
|
||||
hi PmenuExtra ctermfg=DarkGrey ctermbg=Grey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=DarkGrey ctermbg=Grey cterm=bold
|
||||
hi PmenuMatch ctermfg=Black ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=Grey cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=Black ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=Grey cterm=bold
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=DarkGrey cterm=NONE
|
||||
hi PreInsert ctermfg=Black ctermbg=NONE cterm=NONE
|
||||
@@ -714,8 +714,8 @@ if &background == 'light'
|
||||
hi PmenuExtra ctermfg=DarkGrey ctermbg=Grey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=DarkGrey ctermbg=Grey cterm=bold
|
||||
hi PmenuMatch ctermfg=Black ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=Grey cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=Black ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=Grey cterm=bold
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=DarkGrey cterm=NONE
|
||||
hi PreInsert ctermfg=Black ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
" Author: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 14
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -126,7 +126,8 @@ hi ToolbarButton guifg=#ffffff guibg=#0030ff guisp=NONE gui=NONE ctermfg=231 cte
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#90f020 guibg=NONE guisp=NONE gui=NONE ctermfg=118 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#80a0ff guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#000000 guibg=#808080 guisp=NONE gui=NONE ctermfg=16 ctermbg=102 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000040 guibg=#c0c0c0 guisp=NONE gui=NONE ctermfg=17 ctermbg=252 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#000000 guibg=#808080 guisp=NONE gui=NONE ctermfg=16 ctermbg=102 cterm=NONE term=NONE
|
||||
hi Visual guifg=#8080ff guibg=#ffffff guisp=NONE gui=reverse ctermfg=105 ctermbg=231 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#8080ff guibg=#c0c0c0 guisp=NONE gui=reverse,underline ctermfg=105 ctermbg=252 cterm=reverse,underline term=NONE
|
||||
hi WarningMsg guifg=#ff0000 guibg=NONE guisp=NONE gui=NONE ctermfg=196 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -196,7 +197,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=green ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=blue ctermbg=white cterm=reverse
|
||||
hi VisualNOS ctermfg=blue ctermbg=grey cterm=reverse,underline
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -264,7 +266,8 @@ if s:t_Co >= 8
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=reverse
|
||||
hi VertSplitNC ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi Visual ctermfg=blue ctermbg=grey cterm=reverse
|
||||
hi VisualNOS ctermfg=blue ctermbg=grey cterm=reverse,underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=light
|
||||
|
||||
@@ -91,7 +91,8 @@ hi ToolbarButton guifg=#ffffff guibg=#bcbcbc guisp=NONE gui=bold ctermfg=231 cte
|
||||
hi ToolbarLine guifg=NONE guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=reverse
|
||||
hi Type guifg=#0000ff guibg=NONE guisp=NONE gui=bold ctermfg=21 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#6a5acd guibg=NONE guisp=NONE gui=underline ctermfg=62 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#e4e4e4 guibg=#00008b guisp=NONE gui=NONE ctermfg=254 ctermbg=18 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#ffff00 guibg=#00008b guisp=NONE gui=NONE ctermfg=226 ctermbg=18 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#e4e4e4 guibg=#00008b guisp=NONE gui=NONE ctermfg=254 ctermbg=18 cterm=NONE term=NONE
|
||||
hi Visual guifg=#000000 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=16 ctermbg=252 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#ee0000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=196 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#cd00cd guibg=#ffffff guisp=NONE gui=NONE ctermfg=164 ctermbg=231 cterm=NONE term=standout
|
||||
@@ -164,7 +165,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi Type ctermfg=blue ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=darkblue cterm=NONE
|
||||
hi VertSplit ctermfg=yellow ctermbg=darkblue cterm=NONE
|
||||
hi VertSplitNC ctermfg=grey ctermbg=darkblue cterm=NONE
|
||||
hi Visual ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=darkred cterm=NONE
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
|
||||
@@ -236,6 +238,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkblue ctermbg=darkyellow cterm=reverse
|
||||
hi VertSplitNC ctermfg=darkblue ctermbg=darkyellow cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -91,7 +91,8 @@ hi ToolbarButton guifg=#333333 guibg=#ffde9b guisp=NONE gui=bold ctermfg=236 cte
|
||||
hi ToolbarLine guifg=NONE guibg=#666666 guisp=NONE gui=NONE ctermfg=NONE ctermbg=241 cterm=NONE term=reverse
|
||||
hi Type guifg=#bdb76b guibg=NONE guisp=NONE gui=bold ctermfg=143 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#75a0ff guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#7f7f8c guibg=#c2bfa5 guisp=NONE gui=NONE ctermfg=242 ctermbg=144 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#333333 guibg=#c2bfa5 guisp=NONE gui=NONE ctermfg=236 ctermbg=144 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#7f7f8c guibg=#c2bfa5 guisp=NONE gui=NONE ctermfg=242 ctermbg=144 cterm=NONE term=NONE
|
||||
hi Visual guifg=#f0e68c guibg=#6b8e24 guisp=NONE gui=NONE ctermfg=186 ctermbg=64 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=#f0e68c guibg=#6dceeb guisp=NONE gui=NONE ctermfg=186 ctermbg=81 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#cd5c5c guibg=NONE guisp=NONE gui=bold ctermfg=167 ctermbg=NONE cterm=bold term=standout
|
||||
@@ -167,7 +168,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
@@ -237,6 +239,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi VertSplitNC ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
|
||||
" URL: https://www.github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -114,7 +114,8 @@ hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 cter
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#60ff60 guibg=NONE guisp=NONE gui=bold ctermfg=83 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#80a0ff guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#000000 guibg=#00cdcd guisp=NONE gui=NONE ctermfg=16 ctermbg=44 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000000 guibg=#00ffff guisp=NONE gui=NONE ctermfg=16 ctermbg=51 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#000000 guibg=#00cdcd guisp=NONE gui=NONE ctermfg=16 ctermbg=44 cterm=NONE term=NONE
|
||||
hi Visual guifg=#000000 guibg=#a9a9a9 guisp=NONE gui=NONE ctermfg=16 ctermbg=145 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#000000 guisp=NONE gui=bold,underline ctermfg=NONE ctermbg=16 cterm=underline term=NONE
|
||||
hi WarningMsg guifg=#ff0000 guibg=NONE guisp=NONE gui=NONE ctermfg=196 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -188,7 +189,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=green ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -263,6 +265,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -59,7 +59,8 @@ hi! link TabPanelFill EndOfBuffer
|
||||
hi! link Tag Special
|
||||
hi! link Terminal Normal
|
||||
hi! link Typedef Type
|
||||
hi! link VertSplit StatusLineNC
|
||||
hi! link VertSplit StatusLine
|
||||
hi! link VertSplitNC StatusLineNC
|
||||
hi! link diffBDiffer WarningMsg
|
||||
hi! link diffCommon WarningMsg
|
||||
hi! link diffDiffer WarningMsg
|
||||
|
||||
+45
-27
@@ -3,9 +3,9 @@
|
||||
" Author: Maxim Kim <habamax@gmail.com>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 22
|
||||
" Last Change: 2026 May 28
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -37,17 +37,17 @@ hi! link TabPanelFill Normal
|
||||
hi! link Terminal Normal
|
||||
hi! link asciidoctorBlock Special
|
||||
hi! link asciidoctorCode String
|
||||
hi! link asciidoctorH1Delimiter Statement
|
||||
hi! link asciidoctorH2Delimiter Statement
|
||||
hi! link asciidoctorH3Delimiter Statement
|
||||
hi! link asciidoctorH4Delimiter Statement
|
||||
hi! link asciidoctorH5Delimiter Statement
|
||||
hi! link asciidoctorH6Delimiter Statement
|
||||
hi! link asciidoctorH1 htmlH1
|
||||
hi! link asciidoctorH2 htmlH1
|
||||
hi! link asciidoctorH3 htmlH1
|
||||
hi! link asciidoctorH4 htmlH1
|
||||
hi! link asciidoctorH5 htmlH1
|
||||
hi! link asciidoctorH6 htmlH1
|
||||
hi! link asciidoctorListMarker Constant
|
||||
hi! link asciidoctorMacro Special
|
||||
hi! link asciidoctorOption Special
|
||||
hi! link asciidoctorSetextHeaderDelimiter Statement
|
||||
hi! link asciidoctorTitleDelimiter Statement
|
||||
hi! link asciidoctorTitle htmlH1
|
||||
hi! link javaScriptFunction Statement
|
||||
hi! link javaScriptIdentifier Statement
|
||||
hi! link lspDiagSignErrorText Removed
|
||||
@@ -58,11 +58,14 @@ hi! link lspDiagVirtualTextError Removed
|
||||
hi! link lspDiagVirtualTextHint Added
|
||||
hi! link lspDiagVirtualTextInfo Question
|
||||
hi! link lspDiagVirtualTextWarning Changed
|
||||
hi! link markdownHeadingRule Special
|
||||
hi! link markdownUrl String
|
||||
hi! link rstSection htmlH1
|
||||
hi! link rubyDefine Statement
|
||||
hi! link rubyMacro Statement
|
||||
hi! link sqlKeyword Statement
|
||||
hi! link sqlSpecial Constant
|
||||
hi! link typstMarkupHeading htmlH1
|
||||
hi! link vimCommentString Comment
|
||||
hi! link vimOper Normal
|
||||
hi! link vimParenSep Normal
|
||||
@@ -107,12 +110,15 @@ hi PmenuExtra guifg=#767676 guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=243 ctermb
|
||||
hi PmenuExtraSel guifg=#9e9e9e guibg=#585858 guisp=NONE gui=NONE ctermfg=247 ctermbg=240 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#5f8787 guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=66 ctermbg=237 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#5f8787 guibg=#585858 guisp=NONE gui=NONE ctermfg=66 ctermbg=240 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#ffaf5f guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=215 ctermbg=237 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#ffaf5f guibg=#585858 guisp=NONE gui=NONE ctermfg=215 ctermbg=240 cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi PmenuMatch guifg=#ffaf5f guibg=NONE guisp=NONE gui=NONE ctermfg=215 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#ffaf5f guibg=NONE guisp=NONE gui=NONE ctermfg=215 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#585858 guisp=NONE gui=NONE ctermfg=NONE ctermbg=240 cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#585858 guisp=NONE gui=NONE ctermfg=NONE ctermbg=240 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#767676 guibg=#121212 guisp=NONE gui=NONE ctermfg=243 ctermbg=233 cterm=NONE term=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#767676 guisp=NONE gui=NONE ctermfg=NONE ctermbg=243 cterm=NONE term=NONE
|
||||
hi Popup guifg=NONE guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=NONE ctermbg=237 cterm=NONE term=NONE
|
||||
hi PopupBorder guifg=#767676 guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=243 ctermbg=237 cterm=NONE term=NONE
|
||||
hi PopupTitle guifg=#9e9e9e guibg=#3a3a3a guisp=NONE gui=bold ctermfg=247 ctermbg=237 cterm=bold term=bold
|
||||
hi PreProc guifg=#af875f guibg=NONE guisp=NONE gui=NONE ctermfg=137 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Question guifg=#d7af87 guibg=NONE guisp=NONE gui=NONE ctermfg=180 ctermbg=NONE cterm=NONE term=standout
|
||||
hi QuickFixLine guifg=NONE guibg=#4f2f4f guisp=NONE gui=NONE ctermfg=251 ctermbg=53 cterm=NONE term=NONE
|
||||
@@ -136,17 +142,19 @@ hi Title guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cte
|
||||
hi TitleBar guifg=#dadada guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
|
||||
hi TitleBarNC guifg=#767676 guibg=#2c2c2c guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
|
||||
hi Todo guifg=#dadada guibg=NONE guisp=NONE gui=bold ctermfg=253 ctermbg=NONE cterm=bold term=bold,reverse
|
||||
hi ToolbarButton guifg=#767676 guibg=#1c1c1c guisp=NONE gui=bold,reverse ctermfg=243 ctermbg=234 cterm=bold,reverse term=bold,reverse
|
||||
hi ToolbarButton guifg=#5f8787 guibg=#1c1c1c guisp=NONE gui=bold,reverse ctermfg=66 ctermbg=234 cterm=bold,reverse term=bold,reverse
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#5f87af guibg=NONE guisp=NONE gui=NONE ctermfg=67 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#9e9e9e guibg=#9e9e9e guisp=NONE gui=NONE ctermfg=247 ctermbg=247 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#1a3456 guisp=NONE gui=NONE ctermfg=109 ctermbg=234 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#1c1c1c guibg=#5f8787 guisp=NONE gui=NONE ctermfg=234 ctermbg=66 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#d75f87 guibg=NONE guisp=NONE gui=NONE ctermfg=168 ctermbg=NONE cterm=NONE term=standout
|
||||
hi WildMenu guifg=#1c1c1c guibg=#d7af87 guisp=NONE gui=bold ctermfg=234 ctermbg=180 cterm=bold term=bold
|
||||
hi debugBreakpoint guifg=#1c1c1c guibg=#d75f87 guisp=NONE gui=NONE ctermfg=234 ctermbg=168 cterm=NONE term=NONE
|
||||
hi debugPC guifg=#1c1c1c guibg=#5f87af guisp=NONE gui=NONE ctermfg=234 ctermbg=67 cterm=NONE term=NONE
|
||||
hi htmlH1 guifg=#dadada guibg=NONE guisp=NONE gui=bold ctermfg=253 ctermbg=NONE cterm=bold term=bold
|
||||
hi lCursor guifg=#1c1c1c guibg=#5fff00 guisp=NONE gui=NONE ctermfg=234 ctermbg=82 cterm=NONE term=NONE
|
||||
|
||||
if s:tgc || s:t_Co >= 256
|
||||
@@ -202,12 +210,15 @@ if s:t_Co >= 16
|
||||
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
|
||||
hi PmenuKindSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuMatch ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=darkyellow ctermbg=NONE cterm=reverse
|
||||
hi PmenuMatch ctermfg=NONE ctermbg=darkred cterm=reverse
|
||||
hi PmenuMatchSel ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuShadow ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Popup ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PopupBorder ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PopupTitle ctermfg=NONE ctermbg=NONE cterm=bold,reverse
|
||||
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
|
||||
@@ -231,17 +242,19 @@ if s:t_Co >= 16
|
||||
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
|
||||
hi TitleBarNC ctermfg=darkgray ctermbg=black cterm=NONE
|
||||
hi Todo ctermfg=white ctermbg=NONE cterm=bold
|
||||
hi ToolbarButton ctermfg=darkgray ctermbg=black cterm=bold,reverse
|
||||
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgray ctermbg=darkgray cterm=NONE
|
||||
hi VertSplit ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgray ctermbg=darkgray cterm=NONE
|
||||
hi Visual ctermfg=cyan ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
hi WildMenu ctermfg=black ctermbg=yellow cterm=bold
|
||||
hi debugBreakpoint ctermfg=black ctermbg=red cterm=NONE
|
||||
hi debugPC ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi htmlH1 ctermfg=white ctermbg=NONE cterm=bold
|
||||
hi lCursor ctermfg=black ctermbg=green cterm=NONE
|
||||
finish
|
||||
endif
|
||||
@@ -284,12 +297,15 @@ if s:t_Co >= 8
|
||||
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
|
||||
hi PmenuKindSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuMatch ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=darkyellow ctermbg=NONE cterm=reverse
|
||||
hi PmenuMatch ctermfg=NONE ctermbg=darkred cterm=reverse
|
||||
hi PmenuMatchSel ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi PmenuShadow ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Popup ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PopupBorder ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi PopupTitle ctermfg=NONE ctermbg=NONE cterm=bold,reverse
|
||||
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
|
||||
@@ -313,17 +329,19 @@ if s:t_Co >= 8
|
||||
hi TitleBar ctermfg=white ctermbg=black cterm=NONE
|
||||
hi TitleBarNC ctermfg=darkgray ctermbg=black cterm=NONE
|
||||
hi Todo ctermfg=white ctermbg=NONE cterm=bold
|
||||
hi ToolbarButton ctermfg=gray ctermbg=black cterm=reverse
|
||||
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi VertSplitNC ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi Visual ctermfg=darkcyan ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
|
||||
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi htmlH1 ctermfg=white ctermbg=NONE cterm=bold
|
||||
hi lCursor ctermfg=black ctermbg=green cterm=NONE
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Shian Lee.
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -92,7 +92,8 @@ hi Todo guifg=#005fff guibg=#ffff00 guisp=NONE gui=NONE ctermfg=27 ctermbg=226 c
|
||||
hi ToolbarLine guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
|
||||
hi Type guifg=#00ff00 guibg=NONE guisp=NONE gui=bold ctermfg=46 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#87afff guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#000000 guibg=#6c6c6c guisp=NONE gui=NONE ctermfg=16 ctermbg=242 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000000 guibg=#dadada guisp=NONE gui=NONE ctermfg=16 ctermbg=253 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#000000 guibg=#6c6c6c guisp=NONE gui=NONE ctermfg=16 ctermbg=242 cterm=NONE term=NONE
|
||||
hi Visual guifg=#dadada guibg=#6c6c6c guisp=NONE gui=NONE ctermfg=253 ctermbg=242 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=#dadada guibg=#6c6c6c guisp=NONE gui=NONE ctermfg=253 ctermbg=242 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#ff0000 guibg=NONE guisp=NONE gui=bold ctermfg=196 ctermbg=NONE cterm=bold term=standout
|
||||
@@ -165,7 +166,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi Type ctermfg=green ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=white cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VisualNOS ctermfg=white ctermbg=grey cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=bold
|
||||
@@ -238,6 +240,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi VertSplitNC ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
|
||||
" URL: https://www.github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 27
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -114,7 +114,8 @@ hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 cter
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#60ff60 guibg=NONE guisp=NONE gui=bold ctermfg=83 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#add8e6 guibg=NONE guisp=NONE gui=bold,underline ctermfg=153 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#0000ff guibg=#e5e5e5 guisp=NONE gui=NONE ctermfg=21 ctermbg=254 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#0000ff guibg=#ffffff guisp=NONE gui=NONE ctermfg=21 ctermbg=231 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#0000ff guibg=#e5e5e5 guisp=NONE gui=NONE ctermfg=21 ctermbg=254 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#666666 guisp=NONE gui=reverse ctermfg=NONE ctermbg=59 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#000000 guisp=NONE gui=bold,underline ctermfg=NONE ctermbg=16 cterm=underline term=NONE
|
||||
hi WarningMsg guifg=#ff0000 guibg=NONE guisp=NONE gui=NONE ctermfg=196 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -183,7 +184,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=green ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
|
||||
hi VertSplit ctermfg=darkblue ctermbg=white cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkblue ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=darkgrey cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -251,6 +253,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkblue ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
" Description: White(perchè il sole)/Black(la luna perchè?) background colorscheme.
|
||||
" Author: Maxim Kim <habamax@gmail.com>
|
||||
" URL: https://www.github.com/vim/colorschemes
|
||||
" Last Change: 2025 Oct 22
|
||||
" Last Change: 2026 Apr 30
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'lunaperche'
|
||||
@@ -138,8 +138,8 @@ if &background == 'dark'
|
||||
hi PmenuExtraSel guifg=#767676 guibg=#4e4e4e guisp=NONE gui=NONE ctermfg=243 ctermbg=239 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#ff5f5f guibg=#303030 guisp=NONE gui=NONE ctermfg=203 ctermbg=236 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#ff5f5f guibg=#4e4e4e guisp=NONE gui=NONE ctermfg=203 ctermbg=239 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#d787d7 guibg=#303030 guisp=NONE gui=NONE ctermfg=176 ctermbg=236 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#d787d7 guibg=#4e4e4e guisp=NONE gui=NONE ctermfg=176 ctermbg=239 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#d787d7 guibg=NONE guisp=NONE gui=NONE ctermfg=176 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#d787d7 guibg=NONE guisp=NONE gui=NONE ctermfg=176 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#4e4e4e guisp=NONE gui=NONE ctermfg=NONE ctermbg=239 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#767676 guibg=#121212 guisp=NONE gui=NONE ctermfg=243 ctermbg=233 cterm=NONE term=NONE
|
||||
@@ -171,7 +171,8 @@ if &background == 'dark'
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#5fd75f guibg=NONE guisp=NONE gui=NONE ctermfg=77 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#c6c6c6 guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=251 ctermbg=251 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#104070 guisp=NONE gui=NONE ctermfg=32 ctermbg=16 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#000000 guibg=#5fafaf guisp=NONE gui=NONE ctermfg=16 ctermbg=73 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#ff5f5f guibg=NONE guisp=NONE gui=NONE ctermfg=203 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -266,7 +267,8 @@ if &background == 'dark'
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=green ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=darkblue ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -354,6 +356,7 @@ if &background == 'dark'
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
@@ -426,8 +429,8 @@ if &background == 'light'
|
||||
hi PmenuExtraSel guifg=#767676 guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=243 ctermbg=251 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#af0000 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=124 ctermbg=254 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#af0000 guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=124 ctermbg=251 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#af00af guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=127 ctermbg=254 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#af00af guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=127 ctermbg=251 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#af00af guibg=NONE guisp=NONE gui=NONE ctermfg=127 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#af00af guibg=NONE guisp=NONE gui=NONE ctermfg=127 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=NONE ctermbg=251 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#767676 guibg=#303030 guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
|
||||
@@ -459,7 +462,8 @@ if &background == 'light'
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#008700 guibg=NONE guisp=NONE gui=NONE ctermfg=28 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000000 guibg=#000000 guisp=NONE gui=NONE ctermfg=16 ctermbg=16 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#bfdfff guisp=NONE gui=NONE ctermfg=67 ctermbg=231 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#ffffff guibg=#008787 guisp=NONE gui=NONE ctermfg=231 ctermbg=30 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#d70000 guibg=NONE guisp=NONE gui=bold ctermfg=160 ctermbg=NONE cterm=bold term=standout
|
||||
@@ -524,8 +528,8 @@ if &background == 'light'
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuMatch ctermfg=darkmagenta ctermbg=grey cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=darkmagenta ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuMatch ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuShadow ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
@@ -557,7 +561,8 @@ if &background == 'light'
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=black cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=white ctermbg=darkblue cterm=NONE
|
||||
hi VisualNOS ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=bold
|
||||
@@ -648,6 +653,7 @@ if &background == 'light'
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=black cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=black cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=light
|
||||
|
||||
@@ -92,7 +92,8 @@ hi ToolbarButton guifg=NONE guibg=#bcbcbc guisp=NONE gui=bold ctermfg=NONE cterm
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#2e8b57 guibg=NONE guisp=NONE gui=bold ctermfg=29 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#6a5acd guibg=NONE guisp=NONE gui=underline ctermfg=62 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#bcbcbc guibg=#000000 guisp=NONE gui=NONE ctermfg=250 ctermbg=16 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#eeeeee guibg=#000000 guisp=NONE gui=NONE ctermfg=255 ctermbg=16 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#bcbcbc guibg=#000000 guisp=NONE gui=NONE ctermfg=250 ctermbg=16 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=NONE ctermbg=252 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#0000ff guisp=NONE gui=NONE ctermfg=NONE ctermbg=21 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#6a0dad guibg=NONE guisp=NONE gui=bold ctermfg=55 ctermbg=NONE cterm=bold term=standout
|
||||
@@ -162,7 +163,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=black cterm=NONE
|
||||
hi VertSplit ctermfg=white ctermbg=black cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=black cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=blue cterm=NONE
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=bold
|
||||
@@ -231,6 +233,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=gray cterm=reverse
|
||||
hi VertSplitNC ctermfg=black ctermbg=gray cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -93,7 +93,8 @@ hi ToolbarButton guifg=#ffffff guibg=#444444 guisp=NONE gui=bold ctermfg=231 cte
|
||||
hi ToolbarLine guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=reverse
|
||||
hi Type guifg=#bcbcbc guibg=NONE guisp=NONE gui=NONE ctermfg=250 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#00afaf guibg=NONE guisp=NONE gui=underline ctermfg=37 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#ffffff guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#ffffff guibg=#00008b guisp=NONE gui=NONE ctermfg=231 ctermbg=18 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#ffffff guibg=#3a3a3a guisp=NONE gui=NONE ctermfg=231 ctermbg=237 cterm=NONE term=NONE
|
||||
hi Visual guifg=#ffffff guibg=#005f00 guisp=NONE gui=NONE ctermfg=231 ctermbg=22 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=#ffffff guibg=#005f00 guisp=NONE gui=NONE ctermfg=231 ctermbg=22 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#ffa700 guibg=NONE guisp=NONE gui=bold ctermfg=214 ctermbg=NONE cterm=bold term=standout
|
||||
@@ -163,7 +164,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi Type ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=darkcyan ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=white ctermbg=darkblue cterm=NONE
|
||||
hi VertSplitNC ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi VisualNOS ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
@@ -231,7 +233,8 @@ if s:t_Co >= 8
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi Type ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=reverse
|
||||
hi VertSplitNC ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=reverse,underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -92,7 +92,8 @@ hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 cter
|
||||
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
|
||||
hi Type guifg=#00c000 guibg=NONE guisp=NONE gui=NONE ctermfg=34 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#80a0ff guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#000000 guibg=#ffffff guisp=NONE gui=NONE ctermfg=16 ctermbg=231 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#ffff00 guibg=#0000ee guisp=NONE gui=NONE ctermfg=226 ctermbg=20 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#000000 guibg=#ffffff guisp=NONE gui=NONE ctermfg=16 ctermbg=231 cterm=NONE term=NONE
|
||||
hi Visual guifg=#00008b guibg=#a9a9a9 guisp=NONE gui=NONE ctermfg=20 ctermbg=248 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#000000 guisp=NONE gui=bold,underline ctermfg=NONE ctermbg=16 cterm=underline term=NONE
|
||||
hi WarningMsg guifg=#ff0000 guibg=NONE guisp=NONE gui=NONE ctermfg=196 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -163,7 +164,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=darkgreen ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=white cterm=NONE
|
||||
hi VertSplit ctermfg=yellow ctermbg=darkblue cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=white cterm=NONE
|
||||
hi Visual ctermfg=darkblue ctermbg=grey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -234,7 +236,8 @@ if s:t_Co >= 8
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi VertSplit ctermfg=darkblue ctermbg=grey cterm=reverse
|
||||
hi VertSplitNC ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 14
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=light
|
||||
|
||||
@@ -94,7 +94,8 @@ hi ToolbarButton guifg=#ffdab9 guibg=#737373 guisp=NONE gui=bold ctermfg=223 cte
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#2e8b57 guibg=NONE guisp=NONE gui=bold ctermfg=29 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#6a5acd guibg=NONE guisp=NONE gui=underline ctermfg=62 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#ffdab9 guibg=#737373 guisp=NONE gui=NONE ctermfg=223 ctermbg=243 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#ffdab9 guibg=#000000 guisp=NONE gui=NONE ctermfg=223 ctermbg=16 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#ffdab9 guibg=#737373 guisp=NONE gui=NONE ctermfg=223 ctermbg=243 cterm=NONE term=NONE
|
||||
hi Visual guifg=#000000 guibg=#cccccc guisp=NONE gui=NONE ctermfg=16 ctermbg=252 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#406090 guisp=NONE gui=NONE ctermfg=NONE ctermbg=25 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#cd00cd guibg=#ffdab9 guisp=NONE gui=bold ctermfg=164 ctermbg=223 cterm=bold term=standout
|
||||
@@ -168,7 +169,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=white ctermbg=black cterm=NONE
|
||||
hi VertSplitNC ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=darkgrey cterm=NONE
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=bold
|
||||
@@ -241,6 +243,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=gray cterm=reverse
|
||||
hi VertSplitNC ctermfg=black ctermbg=gray cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=bold
|
||||
|
||||
+18
-12
@@ -2,9 +2,9 @@
|
||||
" Description: Retro groove color scheme similar to gruvbox originally designed by morhetz <morhetz@gmail.com>
|
||||
" Author: Maxim Kim <habamax@gmail.com>, ported from gruvbox8 of Lifepillar <lifepillar@lifepillar.me>
|
||||
" URL: https://www.github.com/vim/colorschemes
|
||||
" Last Change: 2025 Oct 22
|
||||
" Last Change: 2026 Apr 30
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'retrobox'
|
||||
@@ -79,8 +79,8 @@ if &background == 'dark'
|
||||
hi PmenuExtraSel guifg=#a89984 guibg=#504945 guisp=NONE gui=NONE ctermfg=102 ctermbg=239 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#fb5944 guibg=#3c3836 guisp=NONE gui=NONE ctermfg=203 ctermbg=237 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#fb5944 guibg=#504945 guisp=NONE gui=NONE ctermfg=203 ctermbg=239 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#d3869b guibg=#3c3836 guisp=NONE gui=NONE ctermfg=175 ctermbg=237 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#d3869b guibg=#504945 guisp=NONE gui=NONE ctermfg=175 ctermbg=239 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#d3869b guibg=NONE guisp=NONE gui=NONE ctermfg=175 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#d3869b guibg=NONE guisp=NONE gui=NONE ctermfg=175 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#3c3836 guisp=NONE gui=NONE ctermfg=NONE ctermbg=237 cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#504945 guisp=NONE gui=NONE ctermfg=NONE ctermbg=239 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#a89984 guibg=#121212 guisp=NONE gui=NONE ctermfg=102 ctermbg=233 cterm=NONE term=NONE
|
||||
@@ -118,7 +118,8 @@ if &background == 'dark'
|
||||
hi Type guifg=#fabd2f guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Typedef guifg=#fabd2f guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#83a598 guibg=NONE guisp=NONE gui=underline ctermfg=109 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#303030 guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=236 ctermbg=234 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#504945 guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=239 ctermbg=234 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#303030 guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=236 ctermbg=234 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#2a405a guisp=NONE gui=NONE ctermfg=109 ctermbg=234 cterm=reverse term=reverse
|
||||
hi WarningMsg guifg=#fb5944 guibg=NONE guisp=NONE gui=bold ctermfg=203 ctermbg=NONE cterm=bold term=standout
|
||||
hi WildMenu guifg=#83a598 guibg=#504945 guisp=NONE gui=bold ctermfg=109 ctermbg=239 cterm=bold term=bold
|
||||
@@ -221,7 +222,8 @@ if &background == 'dark'
|
||||
hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=Black ctermbg=gray cterm=NONE
|
||||
hi VertSplit ctermfg=gray ctermbg=Black cterm=NONE
|
||||
hi VertSplitNC ctermfg=gray ctermbg=Black cterm=NONE
|
||||
hi Visual ctermfg=Blue ctermbg=Black cterm=reverse
|
||||
hi WarningMsg ctermfg=Red ctermbg=NONE cterm=bold
|
||||
hi WildMenu ctermfg=White ctermbg=Black cterm=bold
|
||||
@@ -316,7 +318,8 @@ if &background == 'dark'
|
||||
hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=Black ctermbg=gray cterm=NONE
|
||||
hi VertSplit ctermfg=gray ctermbg=Black cterm=NONE
|
||||
hi VertSplitNC ctermfg=gray ctermbg=Black cterm=NONE
|
||||
hi Visual ctermfg=Black ctermbg=Blue cterm=NONE
|
||||
hi WarningMsg ctermfg=Red ctermbg=NONE cterm=bold
|
||||
hi WildMenu ctermfg=Blue ctermbg=DarkGray cterm=bold
|
||||
@@ -389,8 +392,8 @@ if &background == 'light'
|
||||
hi PmenuExtraSel guifg=#3c3836 guibg=#bdae93 guisp=NONE gui=NONE ctermfg=237 ctermbg=144 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#9d0006 guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=124 ctermbg=187 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#9d0006 guibg=#bdae93 guisp=NONE gui=NONE ctermfg=124 ctermbg=144 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#8f3f71 guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=126 ctermbg=187 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#8f3f71 guibg=#bdae93 guisp=NONE gui=NONE ctermfg=126 ctermbg=144 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#8f3f71 guibg=NONE guisp=NONE gui=NONE ctermfg=126 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#8f3f71 guibg=NONE guisp=NONE gui=NONE ctermfg=126 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#e5d4b1 guisp=NONE gui=NONE ctermfg=NONE ctermbg=187 cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#bdae93 guisp=NONE gui=NONE ctermfg=NONE ctermbg=144 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#7c6f64 guibg=#303030 guisp=NONE gui=NONE ctermfg=243 ctermbg=236 cterm=NONE term=NONE
|
||||
@@ -428,7 +431,8 @@ if &background == 'light'
|
||||
hi Type guifg=#b57614 guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Typedef guifg=#b57614 guibg=NONE guisp=NONE gui=NONE ctermfg=172 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#076678 guibg=NONE guisp=NONE gui=underline ctermfg=23 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#bdae93 guibg=#fbf1c7 guisp=NONE gui=NONE ctermfg=144 ctermbg=230 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#7c6f64 guibg=#fbf1c7 guisp=NONE gui=NONE ctermfg=243 ctermbg=230 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#bdae93 guibg=#fbf1c7 guisp=NONE gui=NONE ctermfg=144 ctermbg=230 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#b0d0d0 guisp=NONE gui=NONE ctermfg=23 ctermbg=230 cterm=reverse term=reverse
|
||||
hi WarningMsg guifg=#9d0006 guibg=NONE guisp=NONE gui=bold ctermfg=124 ctermbg=NONE cterm=bold term=standout
|
||||
hi WildMenu guifg=#076678 guibg=#e5d4b1 guisp=NONE gui=bold ctermfg=23 ctermbg=187 cterm=bold term=bold
|
||||
@@ -531,7 +535,8 @@ if &background == 'light'
|
||||
hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=DarkGray ctermbg=Grey cterm=NONE
|
||||
hi VertSplit ctermfg=DarkGray ctermbg=White cterm=NONE
|
||||
hi VertSplitNC ctermfg=DarkGray ctermbg=White cterm=NONE
|
||||
hi Visual ctermfg=Blue ctermbg=White cterm=reverse
|
||||
hi WarningMsg ctermfg=Red ctermbg=NONE cterm=bold
|
||||
hi WildMenu ctermfg=Black ctermbg=White cterm=bold
|
||||
@@ -626,7 +631,8 @@ if &background == 'light'
|
||||
hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=White ctermbg=Black cterm=NONE
|
||||
hi VertSplit ctermfg=Black ctermbg=White cterm=NONE
|
||||
hi VertSplitNC ctermfg=Black ctermbg=White cterm=NONE
|
||||
hi Visual ctermfg=White ctermbg=Blue cterm=NONE
|
||||
hi WarningMsg ctermfg=Red ctermbg=NONE cterm=bold
|
||||
hi WildMenu ctermfg=Blue ctermbg=Grey cterm=bold
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 27
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=light
|
||||
|
||||
@@ -96,7 +96,8 @@ hi ToolbarButton guifg=NONE guibg=#a8a8a8 guisp=NONE gui=bold ctermfg=NONE cterm
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#2e8b57 guibg=NONE guisp=NONE gui=bold ctermfg=29 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#6a0dad guibg=NONE guisp=NONE gui=underline ctermfg=55 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#a8a8a8 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=248 ctermbg=248 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000000 guibg=#000000 guisp=NONE gui=NONE ctermfg=16 ctermbg=16 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#a8a8a8 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=248 ctermbg=248 cterm=NONE term=NONE
|
||||
hi Visual guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=underline term=NONE
|
||||
hi WarningMsg guifg=#6a0dad guibg=#ffffff guisp=NONE gui=NONE ctermfg=55 ctermbg=231 cterm=NONE term=standout
|
||||
@@ -170,7 +171,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=darkmagenta ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=black cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
|
||||
@@ -243,6 +245,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=grey cterm=reverse
|
||||
hi VertSplitNC ctermfg=black ctermbg=grey cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Ralph Amissah <ralph@amissah.com>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 27
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -93,7 +93,8 @@ hi ToolbarButton guifg=#262626 guibg=#d7d787 guisp=NONE gui=NONE ctermfg=235 cte
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#5f87d7 guibg=NONE guisp=NONE gui=bold ctermfg=68 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#5f87d7 guibg=NONE guisp=NONE gui=underline ctermfg=68 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#666666 guibg=#afaf87 guisp=NONE gui=NONE ctermfg=241 ctermbg=144 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000000 guibg=#afaf87 guisp=NONE gui=NONE ctermfg=16 ctermbg=144 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#666666 guibg=#afaf87 guisp=NONE gui=NONE ctermfg=241 ctermbg=144 cterm=NONE term=NONE
|
||||
hi Visual guifg=#d7d787 guibg=#5f8700 guisp=NONE gui=NONE ctermfg=186 ctermbg=64 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=#d7d787 guibg=#5f8700 guisp=NONE gui=NONE ctermfg=186 ctermbg=64 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#ff8787 guibg=NONE guisp=NONE gui=NONE ctermfg=210 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -173,7 +174,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=blue ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
|
||||
hi VertSplit ctermfg=white ctermbg=black cterm=reverse
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=yellow ctermbg=darkgreen cterm=NONE
|
||||
hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=NONE
|
||||
hi WarningMsg ctermfg=cyan ctermbg=NONE cterm=NONE
|
||||
@@ -247,6 +249,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi VertSplitNC ctermfg=grey ctermbg=black cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=underline
|
||||
hi WarningMsg ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Thorsten Maerz <info@netztorte.de>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 24
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -93,7 +93,8 @@ hi ToolbarButton guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=bold ctermfg=16 cter
|
||||
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
|
||||
hi Type guifg=#60ff60 guibg=NONE guisp=NONE gui=NONE ctermfg=83 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#80a0ff guibg=NONE guisp=NONE gui=underline ctermfg=111 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=NONE ctermfg=16 ctermbg=254 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#000000 guibg=#0000ee guisp=NONE gui=NONE ctermfg=16 ctermbg=20 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#000000 guibg=#e5e5e5 guisp=NONE gui=NONE ctermfg=16 ctermbg=254 cterm=NONE term=NONE
|
||||
hi Visual guifg=#000000 guibg=#a9a9a9 guisp=NONE gui=bold ctermfg=16 ctermbg=248 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#000000 guisp=NONE gui=bold,underline ctermfg=NONE ctermbg=16 cterm=underline term=NONE
|
||||
hi WarningMsg guifg=#ff0000 guibg=NONE guisp=NONE gui=NONE ctermfg=196 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -164,7 +165,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi Type ctermfg=green ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VertSplit ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -233,7 +235,8 @@ if s:t_Co >= 8
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi VertSplit ctermfg=grey ctermbg=darkblue cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
" Description: Color scheme similar to Monokai originally created by Wimer Hazenberg for TextMate
|
||||
" Author: k-37 <60838818+k-37@users.noreply.github.com>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 May 07
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=dark
|
||||
|
||||
@@ -108,7 +108,8 @@ hi ToolbarButton guifg=#74705d guibg=#f8f8f2 guisp=NONE gui=bold,reverse ctermfg
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#fd971f guibg=NONE guisp=NONE gui=bold ctermfg=208 ctermbg=NONE cterm=bold term=NONE
|
||||
hi Underlined guifg=#66d9ef guibg=NONE guisp=NONE gui=underline ctermfg=81 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#74705d guibg=#74705d guisp=NONE gui=NONE ctermfg=244 ctermbg=244 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#bababa guibg=#bababa guisp=NONE gui=NONE ctermfg=250 ctermbg=250 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#74705d guibg=#74705d guisp=NONE gui=NONE ctermfg=244 ctermbg=244 cterm=NONE term=NONE
|
||||
hi Visual guifg=#a1efe4 guibg=#282923 guisp=NONE gui=reverse ctermfg=116 ctermbg=235 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#282923 guibg=#80beb5 guisp=NONE gui=NONE ctermfg=235 ctermbg=73 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#f92672 guibg=NONE guisp=NONE gui=NONE ctermfg=197 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -206,7 +207,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgray ctermbg=darkgray cterm=NONE
|
||||
hi VertSplit ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgray ctermbg=darkgray cterm=NONE
|
||||
hi Visual ctermfg=cyan ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
@@ -298,6 +300,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi VertSplitNC ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
" Author: Maxim Kim <habamax@gmail.com>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 22
|
||||
" Last Change: 2026 Apr 30
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'wildcharm'
|
||||
@@ -67,8 +67,8 @@ if &background == 'dark'
|
||||
hi PmenuExtraSel guifg=#767676 guibg=#585858 guisp=NONE gui=NONE ctermfg=243 ctermbg=240 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#ff5f87 guibg=#303030 guisp=NONE gui=NONE ctermfg=204 ctermbg=236 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#ff5f87 guibg=#585858 guisp=NONE gui=NONE ctermfg=204 ctermbg=240 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#d787d7 guibg=#303030 guisp=NONE gui=NONE ctermfg=176 ctermbg=236 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#d787d7 guibg=#585858 guisp=NONE gui=NONE ctermfg=176 ctermbg=240 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#d787d7 guibg=NONE guisp=NONE gui=NONE ctermfg=176 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#d787d7 guibg=NONE guisp=NONE gui=NONE ctermfg=176 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#585858 guisp=NONE gui=NONE ctermfg=NONE ctermbg=240 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#767676 guibg=#121212 guisp=NONE gui=NONE ctermfg=243 ctermbg=233 cterm=NONE term=NONE
|
||||
@@ -100,7 +100,8 @@ if &background == 'dark'
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#ffaf00 guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#9e9e9e guibg=#9e9e9e guisp=NONE gui=NONE ctermfg=247 ctermbg=247 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#767676 guibg=#767676 guisp=NONE gui=NONE ctermfg=243 ctermbg=243 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#204060 guisp=NONE gui=NONE ctermfg=81 ctermbg=16 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#000000 guibg=#00afff guisp=NONE gui=NONE ctermfg=16 ctermbg=39 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#ffaf00 guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -191,7 +192,8 @@ if &background == 'dark'
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplit ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi Visual ctermfg=cyan ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=blue cterm=NONE
|
||||
hi WarningMsg ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
@@ -270,6 +272,7 @@ if &background == 'dark'
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi VertSplitNC ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=darkblue ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi WarningMsg ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
@@ -331,13 +334,13 @@ if &background == 'light'
|
||||
hi Pmenu guifg=NONE guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=reverse
|
||||
hi PmenuBorder guifg=#808080 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=240 ctermbg=254 cterm=NONE term=NONE
|
||||
hi PmenuExtra guifg=#808080 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=240 ctermbg=254 cterm=NONE term=NONE
|
||||
hi PmenuExtraSel guifg=#808080 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=240 ctermbg=252 cterm=NONE term=NONE
|
||||
hi PmenuExtraSel guifg=#808080 guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=240 ctermbg=251 cterm=NONE term=NONE
|
||||
hi PmenuKind guifg=#d70000 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=160 ctermbg=254 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#d70000 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=160 ctermbg=252 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#870087 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=90 ctermbg=254 cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#870087 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=90 ctermbg=252 cterm=NONE term=NONE
|
||||
hi PmenuKindSel guifg=#d70000 guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=160 ctermbg=251 cterm=NONE term=NONE
|
||||
hi PmenuMatch guifg=#870087 guibg=NONE guisp=NONE gui=NONE ctermfg=90 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuMatchSel guifg=#870087 guibg=NONE guisp=NONE gui=NONE ctermfg=90 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi PmenuSel guifg=NONE guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=NONE ctermbg=252 cterm=NONE term=bold
|
||||
hi PmenuSel guifg=NONE guibg=#c6c6c6 guisp=NONE gui=NONE ctermfg=NONE ctermbg=251 cterm=NONE term=bold
|
||||
hi PmenuShadow guifg=#808080 guibg=#303030 guisp=NONE gui=NONE ctermfg=240 ctermbg=236 cterm=NONE term=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#808080 guisp=NONE gui=NONE ctermfg=NONE ctermbg=240 cterm=NONE term=NONE
|
||||
hi PreProc guifg=#008787 guibg=NONE guisp=NONE gui=NONE ctermfg=30 ctermbg=NONE cterm=NONE term=NONE
|
||||
@@ -367,7 +370,8 @@ if &background == 'light'
|
||||
hi ToolbarLine guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=reverse
|
||||
hi Type guifg=#af5f00 guibg=NONE guisp=NONE gui=NONE ctermfg=130 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#d0d0d0 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=252 ctermbg=252 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#5f5f5f guibg=#5f5f5f guisp=NONE gui=NONE ctermfg=59 ctermbg=59 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#d0d0d0 guibg=#d0d0d0 guisp=NONE gui=NONE ctermfg=252 ctermbg=252 cterm=NONE term=NONE
|
||||
hi Visual guifg=NONE guibg=#bfdfff guisp=NONE gui=NONE ctermfg=32 ctermbg=231 cterm=reverse term=reverse
|
||||
hi VisualNOS guifg=#ffffff guibg=#005faf guisp=NONE gui=NONE ctermfg=231 ctermbg=25 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#af5f00 guibg=NONE guisp=NONE gui=NONE ctermfg=130 ctermbg=NONE cterm=NONE term=standout
|
||||
@@ -458,7 +462,8 @@ if &background == 'light'
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=lightgrey ctermbg=lightgrey cterm=NONE
|
||||
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplitNC ctermfg=lightgrey ctermbg=lightgrey cterm=NONE
|
||||
hi Visual ctermfg=blue ctermbg=white cterm=reverse
|
||||
hi VisualNOS ctermfg=white ctermbg=darkblue cterm=NONE
|
||||
hi WarningMsg ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
@@ -537,6 +542,7 @@ if &background == 'light'
|
||||
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=black cterm=NONE
|
||||
hi VertSplitNC ctermfg=black ctermbg=black cterm=NONE
|
||||
hi Visual ctermfg=darkblue ctermbg=grey cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi WarningMsg ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>
|
||||
" URL: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Oct 08
|
||||
" Last Change: 2026 Apr 27
|
||||
|
||||
" Generated by Colortemplate v3.0.0-beta10
|
||||
" Generated by Colortemplate v3.0.0-rc1
|
||||
|
||||
set background=light
|
||||
|
||||
@@ -93,7 +93,8 @@ hi ToolbarButton guifg=NONE guibg=#a9a9a9 guisp=NONE gui=bold ctermfg=NONE cterm
|
||||
hi ToolbarLine guifg=NONE guibg=#d3d3d3 guisp=NONE gui=NONE ctermfg=NONE ctermbg=252 cterm=NONE term=reverse
|
||||
hi Type guifg=#0000ff guibg=NONE guisp=NONE gui=NONE ctermfg=21 ctermbg=NONE cterm=NONE term=NONE
|
||||
hi Underlined guifg=#6a5acd guibg=NONE guisp=NONE gui=underline ctermfg=62 ctermbg=NONE cterm=underline term=underline
|
||||
hi VertSplit guifg=#ffffff guibg=#000000 guisp=NONE gui=NONE ctermfg=231 ctermbg=16 cterm=NONE term=NONE
|
||||
hi VertSplit guifg=#ffff00 guibg=#a9a9a9 guisp=NONE gui=NONE ctermfg=226 ctermbg=248 cterm=NONE term=NONE
|
||||
hi VertSplitNC guifg=#ffffff guibg=#000000 guisp=NONE gui=NONE ctermfg=231 ctermbg=16 cterm=NONE term=NONE
|
||||
hi Visual guifg=#000000 guibg=#ffff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=226 cterm=NONE term=reverse
|
||||
hi VisualNOS guifg=NONE guibg=#ff0000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=196 cterm=NONE term=NONE
|
||||
hi WarningMsg guifg=#a020f0 guibg=#ffffff guisp=NONE gui=NONE ctermfg=129 ctermbg=231 cterm=NONE term=standout
|
||||
@@ -166,7 +167,8 @@ if s:t_Co >= 16
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=white ctermbg=black cterm=NONE
|
||||
hi VertSplit ctermfg=yellow ctermbg=darkgrey cterm=NONE
|
||||
hi VertSplitNC ctermfg=white ctermbg=black cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=red cterm=NONE
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
|
||||
@@ -238,6 +240,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=bold
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi VertSplit ctermfg=black ctermbg=gray cterm=reverse
|
||||
hi VertSplitNC ctermfg=black ctermbg=gray cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi WarningMsg ctermfg=darkmagenta ctermbg=black cterm=NONE
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
" added line suggested by Anton Lindqvist 2016 Mar 31
|
||||
" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
|
||||
" 2025 Dec 17 by The Vim Project (correctly parse: 'make: *** [Makefile:2: all] Error 1')
|
||||
" 2026 May 28 by The Vim Project (Use %v to parse column number)
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -24,9 +25,9 @@ CompilerSet errorformat=
|
||||
\\"%f\"%*\\D%l:\ %m,
|
||||
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
|
||||
\%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
|
||||
\%f:%l:%c:\ %trror:\ %m,
|
||||
\%f:%l:%c:\ %tarning:\ %m,
|
||||
\%f:%l:%c:\ %m,
|
||||
\%f:%l:%v:\ %trror:\ %m,
|
||||
\%f:%l:%v:\ %tarning:\ %m,
|
||||
\%f:%l:%v:\ %m,
|
||||
\%f:%l:\ %trror:\ %m,
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%f:%l:\ %m,
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
" Upstream: https://codeberg.org/ziglang/zig.vim
|
||||
" Last Change:
|
||||
" 2026 May 12 by the Vim project (set errormformat)
|
||||
" 2026 May 24 by the Vim project (do not escape vars for makeprg)
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -11,13 +14,29 @@ let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" a subcommand must be provided for the this compiler (test, build-exe, etc)
|
||||
if has('patch-7.4.191')
|
||||
CompilerSet makeprg=zig\ \$*\ \%:S
|
||||
else
|
||||
CompilerSet makeprg=zig\ \$*\ \"%\"
|
||||
endif
|
||||
CompilerSet makeprg=zig\ $*\ %:S
|
||||
|
||||
" TODO: improve errorformat as needed.
|
||||
CompilerSet errorformat=
|
||||
\%-G,
|
||||
\%-G\ %#+-\ %.%#,
|
||||
\%-Ginstall,
|
||||
\%-Ginstall\ transitive\ failure,
|
||||
\%-Grun,
|
||||
\%-Grun\ transitive\ failure,
|
||||
\%-Gtest,
|
||||
\%-Gtest\ transitive\ failure,
|
||||
\%-Gfailed\ command:\ %.%#,
|
||||
\%-Gerror:\ %*\\d\ compilation\ errors,
|
||||
\%-GBuild\ Summary:\ %.%#,
|
||||
\%-Gerror:\ the\ following\ build\ command\ failed\ with\ exit\ code\ %*\\d:,
|
||||
\%-G.zig-cache%.%#,
|
||||
\%E%f:%l:%c:\ error:\ %m,
|
||||
\%I%f:%l:%c:\ note:\ %m
|
||||
|
||||
" zig has no warnings, but zig cc and zig c++ do
|
||||
CompilerSet errorformat+=
|
||||
\%W%f:%l:%c:\ warning:\ %m,
|
||||
\%-G%*\\d\ warnings\ generated.
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig build)
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
" Last Change: 2024 Apr 05 by The Vim Project (removed :CompilerSet definition)
|
||||
" Upstream: https://codeberg.org/ziglang/zig.vim
|
||||
" Last Change: 2024 Apr 05 by the Vim Project (removed :CompilerSet definition)
|
||||
" 2026 May 12 by the Vim Project (removed comment)
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
@@ -13,13 +14,11 @@ let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists('g:zig_build_makeprg_params')
|
||||
execute 'CompilerSet makeprg=zig\ build\ '.escape(g:zig_build_makeprg_params, ' \|"').'\ $*'
|
||||
execute 'CompilerSet makeprg=zig\ build\ '.escape(g:zig_build_makeprg_params, ' \|"').'\ $*'
|
||||
else
|
||||
CompilerSet makeprg=zig\ build\ $*
|
||||
CompilerSet makeprg=zig\ build\ $*
|
||||
endif
|
||||
|
||||
" TODO: anything to add to errorformat for zig build specifically?
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
" vim: tabstop=8 shiftwidth=2 softtabstop=2 expandtab
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig build-exe)
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
" Last Change: 2025 Nov 16 by The Vim Project (set errorformat)
|
||||
" Upstream: https://codeberg.org/ziglang/zig.vim
|
||||
" Last Change: 2025 Nov 16 by the Vim Project (set errorformat)
|
||||
" 2026 May 12 by the Vim project (remove errorformat)
|
||||
" 2026 May 24 by the Vim project (do not escape vars for makeprg)
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
@@ -12,10 +14,8 @@ let current_compiler = 'zig_build_exe'
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=zig\ build-exe\ \%:S\ \$*
|
||||
" CompilerSet errorformat=%f:%l:%c: %t%*[^:]: %m, %f:%l:%c: %m, %f:%l: %m
|
||||
CompilerSet errorformat&
|
||||
CompilerSet makeprg=zig\ build-exe\ %:S\ $*
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
" vim: tabstop=8 shiftwidth=2 softtabstop=2 expandtab
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig cc)
|
||||
" Last Change: 2026 May 12
|
||||
" 2026 May 24 by the Vim project (do not escape vars for makeprg)
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
runtime compiler/zig.vim
|
||||
let current_compiler = 'zig_cc'
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=zig\ cc\ %:S\ $*
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=2 softtabstop=2 expandtab
|
||||
@@ -1,7 +1,9 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig test)
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
" Last Change: 2025 Nov 16 by The Vim Project (set errorformat)
|
||||
" Upstream: https://codeberg.org/ziglang/zig.vim
|
||||
" Last Change: 2025 Nov 16 by the Vim Project (set errorformat)
|
||||
" 2026 May 12 by the Vim Project (remove error format)
|
||||
" 2026 May 24 by the Vim project (do not escape vars for makeprg)
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
@@ -12,10 +14,8 @@ let current_compiler = 'zig_test'
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=zig\ test\ \%:S\ \$*
|
||||
" CompilerSet errorformat=%f:%l:%c: %t%*[^:]: %m, %f:%l:%c: %m, %f:%l: %m
|
||||
CompilerSet errorformat&
|
||||
CompilerSet makeprg=zig\ test\ %:S\ $*
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
" vim: tabstop=8 shiftwidth=2 softtabstop=2 expandtab
|
||||
|
||||
+43
-1
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.2. Last change: 2026 Feb 25
|
||||
*autocmd.txt* For Vim version 9.2. Last change: 2026 May 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -423,6 +423,8 @@ Name triggered by ~
|
||||
|TextChangedP| after a change was made to the text in Insert mode
|
||||
when popup menu visible
|
||||
|TextChangedT| after a change was made to the text in Terminal mode
|
||||
|TextPutPost| after text has been put
|
||||
|TextPutPre| before text is put
|
||||
|TextYankPost| after text has been yanked or deleted
|
||||
|
||||
|SafeState| nothing pending, going to wait for the user to type a
|
||||
@@ -1367,6 +1369,46 @@ TextChangedP After a change was made to the text in the
|
||||
TextChangedT After a change was made to the text in the
|
||||
current buffer in Terminal mode.
|
||||
Otherwise the same as TextChanged.
|
||||
*TextPutPost*
|
||||
TextPutPost After text has been put in the current buffer.
|
||||
The following values in |v:event| are mostly
|
||||
the same as |TextYankPost|:
|
||||
operator The operation performed,
|
||||
either 'p' or 'P'.
|
||||
regcontents Text that was put. For
|
||||
|quote_=|, this is the result
|
||||
of the expression.
|
||||
regname Name of the register or empty
|
||||
string for the unnamed
|
||||
register.
|
||||
regtype Type of the register, see
|
||||
|getregtype()|.
|
||||
visual True if the operation is
|
||||
performed in |Visual| mode.
|
||||
Not triggered when |quote_| is used nor when
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|.
|
||||
Note that for the |quote_.| register, since
|
||||
the last inserted text is buffered into the
|
||||
input buffer (buffer isn't modified directly),
|
||||
this autocommand is called directly after
|
||||
|TextPutPre|.
|
||||
{only when compiled with the +eval feature}
|
||||
*TextPutPre*
|
||||
TextPutPre Before text has been put in the current buffer.
|
||||
Same values as |TextPutPost| in |v:event|. It
|
||||
is valid to call |setreg()| in this
|
||||
autocommand, allowing you to process and
|
||||
modify the text in "regcontents" before it is
|
||||
put. However this does not apply to
|
||||
|quote_#|, |quote_=|, |quote_%|, |quote_:|,
|
||||
|quote_/| or |quote_.|.
|
||||
Not triggered when |quote_| is used nor when
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|.
|
||||
{only when compiled with the +eval feature}
|
||||
*TextYankPost*
|
||||
TextYankPost After text has been yanked or deleted in the
|
||||
current buffer. The following values of
|
||||
|
||||
+71
-12
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.2. Last change: 2026 Apr 06
|
||||
*builtin.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -107,7 +107,8 @@ ch_getbufnr({handle}, {what}) Number get buffer number for {handle}/{what}
|
||||
ch_getjob({channel}) Job get the Job of {channel}
|
||||
ch_info({handle}) Dict info about channel {handle}
|
||||
ch_listen({address} [, {options}])
|
||||
Channel listen on {address}
|
||||
Channel listen on {address} - port on loopback
|
||||
or UNIX domain socket
|
||||
ch_log({msg} [, {handle}]) none write {msg} in the channel log file
|
||||
ch_logfile({fname} [, {mode}]) none start logging channel activity
|
||||
ch_open({address} [, {options}])
|
||||
@@ -706,6 +707,8 @@ tabpagebuflist([{arg}]) List list of buffer numbers in tab page
|
||||
tabpagenr([{arg}]) Number number of current or last tab page
|
||||
tabpagewinnr({tabarg} [, {arg}])
|
||||
Number number of current window in tab page
|
||||
tabpanel_getinfo() Dict get current state of the tabpanel
|
||||
tabpanel_scroll({n} [, {opts}]) Bool scroll the tabpanel
|
||||
tagfiles() List tags files used
|
||||
taglist({expr} [, {filename}]) List list of tags matching {expr}
|
||||
tan({expr}) Float tangent of {expr}
|
||||
@@ -3671,14 +3674,22 @@ fullcommand({name} [, {vim9}]) *fullcommand()*
|
||||
ambiguous (for user-defined commands) or cannot be shortened
|
||||
this way. |vim9-no-shorten|
|
||||
|
||||
Without the {vim9} argument uses the current script version.
|
||||
If {vim9} is present and FALSE then legacy script rules are
|
||||
used. When {vim9} is present and TRUE then Vim9 rules are
|
||||
used, e.g. "en" is not a short form of "endif".
|
||||
|
||||
For example `fullcommand('s')`, `fullcommand('sub')`,
|
||||
`fullcommand(':%substitute')` all return "substitute".
|
||||
Without the {vim9} argument, the current script version is
|
||||
used. When {vim9} is present and FALSE, legacy script rules
|
||||
are used. When {vim9} is present and TRUE, Vim9 rules are
|
||||
used (e.g., "en" is not a short form of "endif").
|
||||
|
||||
Note: Command validation is not performed. Results depend on
|
||||
Vim's internal command-specific identification rules.
|
||||
Examples:
|
||||
>vim
|
||||
echo [fullcommand('s')] |" ['substitute']
|
||||
echo [fullcommand('sub')] |" ['substitute']
|
||||
echo [fullcommand(': mark word')] |" ['mark']
|
||||
echo [fullcommand(': markword')] |" ['']
|
||||
echo [fullcommand('en')] |" ['endif']
|
||||
echo [fullcommand('en', v:true)] |" ['']
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetName()->fullcommand()
|
||||
<
|
||||
@@ -6260,7 +6271,7 @@ insert({object}, {item} [, {idx}]) *insert()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
instanceof({object}, {class}) *instanceof()* *E614* *E616* *E693*
|
||||
instanceof({object}, {class}) *instanceof()* *E616* *E693*
|
||||
The result is a Number, which is |TRUE| when the {object}
|
||||
argument is a direct or indirect instance of a |Class|,
|
||||
|Interface|, or class |:type| alias specified by {class}.
|
||||
@@ -6866,6 +6877,8 @@ listener_add({callback} [, {buf} [, {unbuffered}]]) *listener_add()*
|
||||
second argument: >
|
||||
GetBuffer()->listener_add(callback)
|
||||
<
|
||||
This function is not available in the |sandbox|.
|
||||
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
@@ -6880,6 +6893,8 @@ listener_flush([{buf}]) *listener_flush()*
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->listener_flush()
|
||||
<
|
||||
This function is not available in the |sandbox|.
|
||||
|
||||
Return type: void
|
||||
|
||||
|
||||
@@ -6891,6 +6906,8 @@ listener_remove({id}) *listener_remove()*
|
||||
Can also be used as a |method|: >
|
||||
GetListenerId()->listener_remove()
|
||||
<
|
||||
This function is not available in the |sandbox|.
|
||||
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
@@ -8870,6 +8887,8 @@ redraw_listener_add({opts}) *redraw_listener_add()*
|
||||
Can also be used as a |method|: >
|
||||
GetOpts()->redraw_listener_add()
|
||||
<
|
||||
This function is not available in the |sandbox|.
|
||||
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
@@ -11342,7 +11361,12 @@ strptime({format}, {timestring}) *strptime()*
|
||||
can try different {format} values until you get a non-zero
|
||||
result.
|
||||
|
||||
Note: On MS-Windows, where the C runtime does not provide
|
||||
strptime(), Vim uses a built-in fallback that always uses
|
||||
English locale names regardless of the active locale.
|
||||
|
||||
See also |strftime()|.
|
||||
|
||||
Examples: >
|
||||
:echo strptime("%Y %b %d %X", "1997 Apr 27 11:49:23")
|
||||
< 862156163 >
|
||||
@@ -11896,6 +11920,38 @@ tabpagewinnr({tabarg} [, {arg}]) *tabpagewinnr()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
tabpanel_getinfo() *tabpanel_getinfo()*
|
||||
Return a |Dictionary| describing the current state of the
|
||||
tabpanel (see |tabpanel|). The dictionary has these keys:
|
||||
align "left" or "right"
|
||||
columns width in screen columns
|
||||
scrollbar |TRUE| if a scrollbar is shown
|
||||
offset current scroll offset in rows
|
||||
total total number of rows rendered
|
||||
max_offset largest valid value for "offset"
|
||||
|
||||
The "total" and "max_offset" values are only accurate after
|
||||
the tabpanel has been drawn at least once.
|
||||
|
||||
Return type: dict<any>
|
||||
|
||||
|
||||
tabpanel_scroll({n} [, {opts}]) *tabpanel_scroll()*
|
||||
Scroll the tabpanel by {n} rows. Positive values scroll down
|
||||
(later tab pages become visible), negative values scroll up.
|
||||
The new offset is clamped to the valid range.
|
||||
|
||||
When {opts} is a |Dictionary| and its "absolute" entry is
|
||||
|TRUE|, {n} is used as the new absolute scroll offset instead
|
||||
of a delta.
|
||||
|
||||
Returns |TRUE| if the scroll offset changed, |FALSE| otherwise
|
||||
(for example when the tabpanel is not shown, or the offset is
|
||||
already at the requested value).
|
||||
|
||||
Return type: |vim9-boolean|
|
||||
|
||||
|
||||
tagfiles() *tagfiles()*
|
||||
Returns a |List| with the file names used to search for tags
|
||||
for the current buffer. This is the 'tags' option expanded.
|
||||
@@ -12015,6 +12071,7 @@ terminalprops() *terminalprops()*
|
||||
underline_rgb whether |t_8u| works **
|
||||
mouse mouse type supported
|
||||
kitty whether Kitty terminal was detected
|
||||
decrqm whether sending DECRQM sequences work
|
||||
|
||||
** value 'u' for unknown, 'y' for yes, 'n' for no
|
||||
|
||||
@@ -12034,6 +12091,9 @@ terminalprops() *terminalprops()*
|
||||
|
||||
For "mouse" the value 'u' is unknown
|
||||
|
||||
If "decrqm" is 'y', then Vim will query support for the
|
||||
'termsync' and 'termresize' ("inband") options.
|
||||
|
||||
Also see:
|
||||
- 'ambiwidth' - detected by using |t_u7|.
|
||||
- |v:termstyleresp| and |v:termblinkresp| for the response to
|
||||
@@ -13326,6 +13386,7 @@ spell Compiled with spell checking support |spell|.
|
||||
startuptime Compiled with |--startuptime| support.
|
||||
statusline Compiled with support for 'statusline', 'rulerformat'
|
||||
and special formats of 'titlestring' and 'iconstring'.
|
||||
statusline_click Click handlers in 'statusline' |stl-%[FuncName]|
|
||||
sun SunOS version of Vim.
|
||||
sun_workshop Support for Sun |workshop| has been removed.
|
||||
syntax Compiled with syntax highlighting support |syntax|.
|
||||
@@ -13378,8 +13439,6 @@ vtp Compiled for vcon support |+vtp| (check vcon to find
|
||||
out if it works in the current console).
|
||||
wayland Compiled with Wayland protocol support.
|
||||
wayland_clipboard Compiled with support for Wayland clipboard.
|
||||
wayland_focus_steal Compiled with support for Wayland clipboard focus
|
||||
stealing.
|
||||
wildignore Compiled with 'wildignore' option.
|
||||
wildmenu Compiled with 'wildmenu' option.
|
||||
win16 old version for MS-Windows 3.1 (always false)
|
||||
|
||||
+18
-14
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.2. Last change: 2026 Mar 31
|
||||
*change.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -75,18 +75,21 @@ For inserting text see |insert.txt|.
|
||||
*:d* *:de* *:del* *:delete* *:dl* *:dp*
|
||||
:[range]d[elete] [x] Delete [range] lines (default: current line) [into
|
||||
register x].
|
||||
Note these weird abbreviations:
|
||||
:dl delete and list
|
||||
:dell idem
|
||||
:delel idem
|
||||
:deletl idem
|
||||
:deletel idem
|
||||
:dp delete and print
|
||||
:dep idem
|
||||
:delp idem
|
||||
:delep idem
|
||||
:deletp idem
|
||||
:deletep idem
|
||||
Note these weird abbreviations applicable only to
|
||||
legacy Vim script:
|
||||
:dl delete and list
|
||||
:dell idem
|
||||
:delel idem
|
||||
:deletl idem
|
||||
:deletel idem
|
||||
:dp delete and print
|
||||
:dep idem
|
||||
:delp idem
|
||||
:delep idem
|
||||
:deletp idem
|
||||
:deletep idem
|
||||
Warning: These give |E492| in |Vim9| script and `:dl`
|
||||
executes as `:dlist`.
|
||||
|
||||
:[range]d[elete] [x] {count}
|
||||
Delete {count} lines, starting with [range]
|
||||
@@ -798,7 +801,8 @@ out then. Example: >
|
||||
:%s/TESTING
|
||||
This deletes "TESTING" from all lines, but only one per line.
|
||||
*E1270*
|
||||
For compatibility with Vi these two exceptions are allowed in legacy script:
|
||||
For compatibility with Vi these two exceptions are allowed in legacy Vim
|
||||
script:
|
||||
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
|
||||
"\&{string}&" does the same as "//{string}/".
|
||||
*pattern-delimiter* *E146* *E1241* *E1242*
|
||||
|
||||
+16
-13
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 9.2. Last change: 2026 Apr 06
|
||||
*channel.txt* For Vim version 9.2. Last change: 2026 Apr 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -132,7 +132,7 @@ Start Vim and create a listening channel: >
|
||||
endfunc
|
||||
|
||||
" Start listening on port 8765
|
||||
let server = ch_listen('localhost:8765', {"callback": "OnAccept"})
|
||||
let server = ch_listen('8765', {"callback": "OnAccept"})
|
||||
|
||||
From another Vim instance (or any program) you can connect to it: >
|
||||
let channel = ch_open('localhost:8765')
|
||||
@@ -170,6 +170,7 @@ unreachable on the network.
|
||||
"js" - Use JS (JavaScript) encoding, more efficient than JSON.
|
||||
"nl" - Use messages that end in a NL character
|
||||
"raw" - Use raw messages
|
||||
"blob" - Use raw messages and pass callback data as a |Blob|
|
||||
"lsp" - Use language server protocol encoding
|
||||
"dap" - Use debug adapter protocol encoding
|
||||
*channel-callback* *E921*
|
||||
@@ -189,6 +190,8 @@ unreachable on the network.
|
||||
excluding the NL.
|
||||
When "mode" is "raw" the "msg" argument is the whole message
|
||||
as a string.
|
||||
When "mode" is "blob" the "msg" argument is the whole message
|
||||
as a |Blob|.
|
||||
|
||||
For all callbacks: Use |function()| to bind it to arguments
|
||||
and/or a Dictionary. Or use the form "dict.function" to bind
|
||||
@@ -637,8 +640,7 @@ ch_info({handle}) *ch_info()*
|
||||
"status" "open", "buffered" or "closed", like
|
||||
ch_status()
|
||||
When opened with ch_open():
|
||||
"hostname" the hostname of the address
|
||||
"port" the port of the address
|
||||
"port" the port on loopback
|
||||
"path" the path of the Unix-domain socket
|
||||
"sock_status" "open" or "closed"
|
||||
"sock_mode" "NL", "RAW", "JSON" or "JS"
|
||||
@@ -668,22 +670,23 @@ ch_info({handle}) *ch_info()*
|
||||
Return type: dict<any>
|
||||
|
||||
ch_listen({address} [, {options}]) *E1573* *E1574* *ch_listen()*
|
||||
Listen on {address} for incoming channel connections.
|
||||
This creates a server-side channel, unlike |ch_open()|
|
||||
which connects to an existing server.
|
||||
Listen on {address} - port on loopback or UNIX domain socket
|
||||
for incoming channel connections. This creates a server-side
|
||||
channel, unlike |ch_open()| which connects to an existing
|
||||
server.
|
||||
Returns a Channel. Use |ch_status()| to check for failure.
|
||||
|
||||
{address} is a String, see |channel-address| for the possible
|
||||
accepted forms, however binding to all interfaces is not
|
||||
allowed for security reasons.
|
||||
accepted forms, however in case of TCP sockets it allows to
|
||||
set only a port and binds to loopback address for security
|
||||
reasons.
|
||||
Note: IPv6 is not yet supported.
|
||||
|
||||
If {options} is given it must be a |Dictionary|.
|
||||
See |channel-open-options|.
|
||||
The "callback" in {options} is invoked when a new
|
||||
connection is accepted. It receives two arguments: the
|
||||
new Channel and the client address as a String (e.g.
|
||||
"127.0.0.1:12345").
|
||||
The "callback" in {options} is invoked when a new connection
|
||||
is accepted. It receives two arguments: the new Channel and
|
||||
the client address as a String (e.g. "127.0.0.1:12345").
|
||||
|
||||
Use |ch_open()| to connect to an existing server instead.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 9.2. Last change: 2026 Mar 17
|
||||
*cmdline.txt* For Vim version 9.2. Last change: 2026 May 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -56,7 +56,7 @@ history tables:
|
||||
These are completely separate. Each history can only be accessed when
|
||||
entering the same type of line.
|
||||
Use the 'history' option to set the number of lines that are remembered
|
||||
(default: 50).
|
||||
(default: 200).
|
||||
Notes:
|
||||
- When you enter a command-line that is exactly the same as an older one, the
|
||||
old one is removed (to avoid repeated commands moving older commands out of
|
||||
@@ -466,14 +466,15 @@ CTRL-L A match is done on the pattern in front of the cursor. If
|
||||
*c_CTRL-G* */_CTRL-G*
|
||||
CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-G will move
|
||||
to the next match (does not take |search-offset| into account)
|
||||
to the next match. The |search-offset| is applied when <CR>
|
||||
is pressed, but does not affect the match highlighting.
|
||||
Use CTRL-T to move to the previous match. Hint: on a regular
|
||||
keyboard G is below T.
|
||||
*c_CTRL-T* */_CTRL-T*
|
||||
CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-T will move
|
||||
to the previous match (does not take |search-offset| into
|
||||
account).
|
||||
to the previous match. The |search-offset| is applied when
|
||||
<CR> is pressed, but does not affect the match highlighting.
|
||||
Use CTRL-G to move to the next match. Hint: on a regular
|
||||
keyboard T is above G.
|
||||
|
||||
|
||||
+11
-5
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*eval.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -170,8 +170,8 @@ Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
|
||||
A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
|
||||
|
||||
*E611* *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910*
|
||||
*E913* *E974* *E975* *E976* *E1319* *E1320* *E1321* *E1322*
|
||||
*E1323* *E1324* *E1520* *E1522*
|
||||
*E913* *E974* *E975* *E976* *E1320* *E1322* *E1324* *E1520*
|
||||
*E1522*
|
||||
|List|, |Tuple|, |Dictionary|, |Funcref|, |Job|, |Channel|, |Blob|, |Class|
|
||||
and |object| types are not automatically converted.
|
||||
|
||||
@@ -3399,7 +3399,7 @@ text...
|
||||
s: script-local variables
|
||||
l: local function variables
|
||||
v: Vim variables.
|
||||
This does not work in Vim9 script. |vim9-declaration|
|
||||
This does not work in Vim9 script. |vim9-declaration|
|
||||
|
||||
:let List the values of all variables. The type of the
|
||||
variable is indicated before the value:
|
||||
@@ -3675,7 +3675,7 @@ text...
|
||||
all nested `:try`s inside the loop. The outermost
|
||||
`:endtry` then jumps back to the start of the loop.
|
||||
|
||||
In |Vim9| script `:cont` is the shortest form, to
|
||||
In |Vim9| script `:continue` cannot be shortened, to
|
||||
improve script readability.
|
||||
*:break* *:brea* *E587*
|
||||
:brea[k] When used inside a `:while` or `:for` loop, skips to
|
||||
@@ -5361,6 +5361,9 @@ a |lambda| expression.
|
||||
With the exception of the "available" callback if a callback is not provided,
|
||||
Vim will not invoke anything, and this is not an error.
|
||||
|
||||
If the "paste" or "copy" callbacks are triggered recursively, then they will
|
||||
not be called.
|
||||
|
||||
*clipboard-providers-textlock*
|
||||
In both the "paste" and "copy" callbacks, it is not allowed to change the
|
||||
buffer text, see |textlock|.
|
||||
@@ -5382,6 +5385,9 @@ order:
|
||||
is an empty string, then the type is automatically chosen.
|
||||
2. A |list| of strings to return to Vim, each representing a line.
|
||||
|
||||
If an invalid value is returned, then this is not an error. Instead the
|
||||
register will be left unchanged (not cleared).
|
||||
|
||||
*clipboard-providers-copy*
|
||||
The "copy" callback returns nothing and takes the following arguments in the
|
||||
following order:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.2. Last change: 2026 Apr 07
|
||||
*filetype.txt* For Vim version 9.2. Last change: 2026 May 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -139,6 +139,7 @@ variables can be used to overrule the filetype used for certain extensions:
|
||||
|
||||
file name variable ~
|
||||
*.app g:filetype_app
|
||||
*.as g:filetype_as
|
||||
*.asa g:filetype_asa |ft-aspperl-syntax|
|
||||
|ft-aspvbs-syntax|
|
||||
*.asm g:asmsyntax |ft-asm-syntax|
|
||||
@@ -164,6 +165,7 @@ variables can be used to overrule the filetype used for certain extensions:
|
||||
*.int g:filetype_int
|
||||
*.lsl g:filetype_lsl
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*.mm g:filetype_mm
|
||||
*.mac g:filetype_mac
|
||||
*[mM]makefile,*.mk,*.mak,[mM]akefile*
|
||||
g:make_flavor |ft-make-syntax|
|
||||
@@ -652,7 +654,6 @@ One command, :DiffGitCached, is provided to show a diff of the current commit
|
||||
in the preview window. It is equivalent to calling "git diff --cached" plus
|
||||
any arguments given to the command.
|
||||
|
||||
|
||||
The length of the first line of the commit message used for
|
||||
syntax highlighting can be configured via `g:gitcommit_summary_length`.
|
||||
The default is 50. Example: >
|
||||
@@ -975,7 +976,20 @@ By default the following options are set, in accordance with PEP8: >
|
||||
To disable this behavior, set the following variable in your vimrc: >
|
||||
|
||||
let g:python_recommended_style = 0
|
||||
<
|
||||
Python omni-completion |compl-omni| is provided by python3complete.vim (or
|
||||
pythoncomplete.vim) for Vim builds with the |+python|/|+python3| interpreter.
|
||||
By default it does not inspect the import / from statements found in the
|
||||
buffer. This means completion of names defined in the buffer itself (classes,
|
||||
functions, variables) works, but completion of members of imported modules is
|
||||
not offered.
|
||||
|
||||
To enable completion of imported module members, set: >
|
||||
let g:pythoncomplete_allow_import = 1
|
||||
<
|
||||
WARNING: enabling this causes omni-completion to execute the import statements
|
||||
found in the buffer through Python's import machinery, which runs the imported
|
||||
modules' top-level code. Only enable this for code you trust.
|
||||
|
||||
QF QUICKFIX *qf.vim* *ft-qf-plugin*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*ft_mp.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*ft_mp.txt* For Vim version 9.2. Last change: 2026 May 04
|
||||
|
||||
This is the documentation for the METAFONT and MetaPost filetype plugins.
|
||||
Unless otherwise specified, the commands, settings and mappings defined below
|
||||
@@ -25,7 +25,7 @@ MetaPost documents, including syntax coloring, indentation, and completion.
|
||||
Defining indentation rules for METAFONT and MetaPost code is tricky and
|
||||
somewhat subjective, because the syntax is quite liberal. The plugin uses some
|
||||
heuristics that work well most of the time, but in particular cases you may
|
||||
want to to override the automatic rules, so that the manually defined
|
||||
want to override the automatic rules, so that the manually defined
|
||||
indentation is preserved by commands like `gg=G`.
|
||||
|
||||
This can be achieved by appending `%>`, `%<`, `%=` or `%!` to a line to
|
||||
|
||||
+27
-1
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 9.2. Last change: 2026 Apr 07
|
||||
*gui.txt* For Vim version 9.2. Last change: 2026 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1296,6 +1296,32 @@ A recommended Japanese font is MS Mincho. You can find info here:
|
||||
https://learn.microsoft.com/en-us/typography/font-list/ms-mincho
|
||||
It should be distributed with Windows.
|
||||
|
||||
|
||||
Full Screen *gui-fullscreen*
|
||||
|
||||
Fullscreen mode is currently only supported in the Windows and GTK GUI
|
||||
versions of Vim.
|
||||
|
||||
To enable fullscreen mode in the GUI version of Vim, add the "s" flag to the
|
||||
'guioptions' setting.
|
||||
|
||||
For convenience, you can define a command or mapping to toggle fullscreen
|
||||
mode:
|
||||
>
|
||||
command ToggleFullscreen {
|
||||
if &guioptions =~# 's'
|
||||
set guioptions-=s
|
||||
else
|
||||
set guioptions+=s
|
||||
endif
|
||||
}
|
||||
|
||||
map <expr> <F11> &go =~# 's' ? ":se go-=s<CR>" : ":se go+=s<CR>"
|
||||
|
||||
The fullscreen mode will occupy the entire screen area while hiding window
|
||||
decorations such as the title bar and borders.
|
||||
|
||||
|
||||
==============================================================================
|
||||
8. Shell Commands *gui-shell*
|
||||
|
||||
|
||||
+1
-22
@@ -1,4 +1,4 @@
|
||||
*gui_w32.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*gui_w32.txt* For Vim version 9.2. Last change: 2026 May 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -505,25 +505,4 @@ To use the system's default title bar colors, set highlighting groups to
|
||||
hi TitleBarNC guibg=NONE guifg=NONE
|
||||
<
|
||||
|
||||
Full Screen *gui-w32-fullscreen*
|
||||
|
||||
To enable fullscreen mode in the Windows GUI version of Vim, add the 's' flag
|
||||
to the 'guioptions' setting.
|
||||
|
||||
For convenience, you can define a command or mapping to toggle fullscreen
|
||||
mode:
|
||||
>
|
||||
command ToggleFullscreen {
|
||||
if &guioptions =~# 's'
|
||||
set guioptions-=s
|
||||
else
|
||||
set guioptions+=s
|
||||
endif
|
||||
}
|
||||
|
||||
map <expr> <F11> &go =~# 's' ? ":se go-=s<CR>" : ":se go+=s<CR>"
|
||||
|
||||
The fullscreen mode will occupy the entire screen area while hiding window
|
||||
decorations such as the title bar and borders.
|
||||
|
||||
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
||||
|
||||
+14
-13
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*insert.txt* For Vim version 9.2. Last change: 2026 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1813,14 +1813,15 @@ for the syntax items. For example, in the Scheme language completion should
|
||||
include the "-", call-with-output-file. Depending on your filetype, this may
|
||||
not provide the words you are expecting. Setting the
|
||||
g:omni_syntax_use_iskeyword option to 0 will force the syntax plugin to break
|
||||
on word characters. This can be controlled adding the following to your
|
||||
on word characters. This can be controlled adding the following to your
|
||||
vimrc: >
|
||||
let g:omni_syntax_use_iskeyword = 0
|
||||
|
||||
For plugin developers, the plugin exposes a public function OmniSyntaxList.
|
||||
This function can be used to request a List of syntax items. When editing a
|
||||
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
||||
various groups and syntax items. For example: >
|
||||
For plugin developers, the plugin exposes a public function
|
||||
syntaxcomplete#OmniSyntaxList. This function can be used to request a List of
|
||||
syntax items. When editing a SQL file (:e syntax.sql) you can use the
|
||||
":syntax list" command to see the various groups and syntax items. For
|
||||
example: >
|
||||
syntax list
|
||||
|
||||
Yields data similar to this:
|
||||
@@ -1834,22 +1835,22 @@ Yields data similar to this:
|
||||
image float integer timestamp real decimal ~
|
||||
|
||||
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
|
||||
a List of syntax items you can call OmniSyntaxList a number of different
|
||||
ways. To retrieve all syntax items regardless of syntax group: >
|
||||
echo OmniSyntaxList( [] )
|
||||
a List of syntax items you can call syntaxcomplete#OmniSyntaxList a number of
|
||||
different ways. To retrieve all syntax items regardless of syntax group: >
|
||||
echo syntaxcomplete#OmniSyntaxList( [] )
|
||||
|
||||
To retrieve only the syntax items for the sqlOperator syntax group: >
|
||||
echo OmniSyntaxList( ['sqlOperator'] )
|
||||
echo syntaxcomplete#OmniSyntaxList( ['sqlOperator'] )
|
||||
|
||||
To retrieve all syntax items for both the sqlOperator and sqlType groups: >
|
||||
echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )
|
||||
echo syntaxcomplete#OmniSyntaxList( ['sqlOperator', 'sqlType'] )
|
||||
|
||||
A regular expression can also be used: >
|
||||
echo OmniSyntaxList( ['sql\w\+'] )
|
||||
echo syntaxcomplete#OmniSyntaxList( ['sql\w\+'] )
|
||||
|
||||
From within a plugin, you would typically assign the output to a List: >
|
||||
let myKeywords = []
|
||||
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
||||
let myKeywords = syntaxcomplete#OmniSyntaxList( ['sqlKeyword'] )
|
||||
|
||||
|
||||
SQL *ft-sql-omni*
|
||||
|
||||
+38
-6
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*map.txt* For Vim version 9.2. Last change: 2026 May 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -208,8 +208,7 @@ be effective in the current buffer only. Example: >
|
||||
Then you can map ",w" to something else in another buffer: >
|
||||
:map <buffer> ,w /[#&!]<CR>
|
||||
The local buffer mappings are used before the global ones. See <nowait> below
|
||||
to make a short local mapping not taking effect when a longer global one
|
||||
exists.
|
||||
to make a short local mapping take effect when a longer global one exists.
|
||||
The "<buffer>" argument can also be used to clear mappings: >
|
||||
:unmap <buffer> ,w
|
||||
:mapclear <buffer>
|
||||
@@ -1593,7 +1592,10 @@ reported if any are supplied). However, it is possible to specify that the
|
||||
command can take arguments, using the -nargs attribute. Valid cases are:
|
||||
|
||||
-nargs=0 No arguments are allowed (the default)
|
||||
-nargs=1 Exactly one argument is required, it includes spaces
|
||||
-nargs=1 Exactly one argument is required, it includes spaces;
|
||||
completion treats white spaces as argument separation
|
||||
-nargs=_ Exactly one argument is required, it includes spaces;
|
||||
completion treats white spaces as part of the argument
|
||||
-nargs=* Any number of arguments are allowed (0, 1, or many),
|
||||
separated by white space
|
||||
-nargs=? 0 or 1 arguments are allowed
|
||||
@@ -1601,7 +1603,23 @@ command can take arguments, using the -nargs attribute. Valid cases are:
|
||||
|
||||
Arguments are considered to be separated by (unescaped) spaces or tabs in this
|
||||
context, except when there is one argument, then the white space is part of
|
||||
the argument.
|
||||
the argument. The difference between the "-nargs=1" and "-nargs=_": >
|
||||
|
||||
func MyComplete(ArgLead, CmdLine, CursorPos)
|
||||
return ["one value", "two values", "three values"]
|
||||
\->matchfuzzy(a:ArgLead)
|
||||
endfunc
|
||||
:command -nargs=1 -complete=customlist,MyComplete MyCmd1 echo <q-args>
|
||||
:command -nargs=_ -complete=customlist,MyComplete MyCmd2 echo <q-args>
|
||||
|
||||
Completing ":MyCmd1 two va<tab>" will complete with: >
|
||||
|
||||
:MyCmd1 two one value
|
||||
|
||||
Completing ":MyCmd2 two va<tab>" will complete with: >
|
||||
|
||||
:MyCmd2 two values
|
||||
|
||||
|
||||
Note that arguments are used as text, not as expressions. Specifically,
|
||||
"s:var" will use the script-local variable in the script where the command was
|
||||
@@ -1693,7 +1711,21 @@ For the "custom" argument, the function should return the completion
|
||||
candidates one per line in a newline separated string.
|
||||
*E1303*
|
||||
For the "customlist" argument, the function should return the completion
|
||||
candidates as a Vim List. Non-string items in the list are ignored.
|
||||
candidates as a Vim List. Each item may be either a string or a |Dictionary|.
|
||||
A Dictionary item may have the following keys:
|
||||
word (required) the text inserted into the command line when the
|
||||
item is selected
|
||||
abbr alternative text shown in the popup menu in place of "word",
|
||||
when 'wildoptions' contains "pum"; useful when the inserted
|
||||
text and the displayed text should differ
|
||||
kind short kind text (one or two characters), shown in the popup
|
||||
menu when 'wildoptions' contains "pum"
|
||||
menu extra text shown after the match in the popup menu
|
||||
info long description shown in the info popup; the |+popupwin|
|
||||
feature is required to display it
|
||||
Items that are neither a string nor a Dictionary, and Dictionary items without
|
||||
a "word" key, are ignored. When 'wildoptions' does not contain "pum", only
|
||||
"word" is shown.
|
||||
|
||||
The function arguments are:
|
||||
ArgLead the leading portion of the argument currently being
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 9.2. Last change: 2026 Mar 07
|
||||
*netbeans.txt* For Vim version 9.2. Last change: 2026 Apr 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
|
||||
+219
-54
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.2. Last change: 2026 Apr 07
|
||||
*options.txt* For Vim version 9.2. Last change: 2026 May 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -324,12 +324,12 @@ that was last closed are used again. If this buffer has been edited in this
|
||||
window, the values from back then are used. Otherwise the values from the
|
||||
last closed window where the buffer was edited last are used.
|
||||
|
||||
It's possible to set a local window option specifically for a type of buffer.
|
||||
When you edit another buffer in the same window, you don't want to keep
|
||||
using these local window options. Therefore Vim keeps a global value of the
|
||||
local window options, which is used when editing another buffer. Each window
|
||||
has its own copy of these values. Thus these are local to the window, but
|
||||
global to all buffers in the window. With this you can do: >
|
||||
":setlocal" can be used to set a local window option specifically for a type
|
||||
of buffer. When you edit another buffer in the same window, you don't want to
|
||||
keep using these local window options. Meanwhile ":set" also sets a global
|
||||
value of a local window option, which is used when editing another buffer.
|
||||
Each window has its own copy of these global values, making them local to the
|
||||
window, but global to all buffers in the window. With this you can do: >
|
||||
:e one
|
||||
:set list
|
||||
:e two
|
||||
@@ -2408,6 +2408,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
close show close button: "on" (default) or "off"
|
||||
height maximum height of the popup
|
||||
highlight popup highlight group (default: PmenuSel)
|
||||
opacity opacity percentage 0-100 (default 100, fully
|
||||
opaque). When less than 100, content beneath
|
||||
the popup shows through.
|
||||
resize show resize handle: "on" (default) or "off"
|
||||
shadow "off" (default) or "on" using |hl-PmenuShadow|
|
||||
width maximum width of the popup
|
||||
@@ -2415,6 +2418,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Example: >
|
||||
:set completepopup=height:10,border:single,highlight:InfoPopup
|
||||
:set completepopup=width:60,border:custom:─;│;─;│;┌;┐;┘;└
|
||||
:set completepopup=border:round,opacity:80
|
||||
<
|
||||
When "align" is set to "item", the popup is positioned near the
|
||||
selected item and moves as the selection changes.
|
||||
@@ -3994,7 +3998,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|String| and is the |:find| command argument. The second argument is
|
||||
a |Boolean| and is set to |v:true| when the function is called to get
|
||||
a List of command-line completion matches for the |:find| command.
|
||||
The function should return a List of strings.
|
||||
The function should return a List, which is handled similarly to the
|
||||
return value of a |:command-completion-customlist| function.
|
||||
|
||||
The function is called only once per |:find| command invocation.
|
||||
The function can process all the directories specified in 'path'.
|
||||
@@ -4707,10 +4712,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Photon and MacVim GUIs.
|
||||
*'go-s'*
|
||||
's' Enable fullscreen mode. Currently only supported in the
|
||||
MS-Windows GUI version. When set, the window will occupy the
|
||||
entire screen and remove window decorations. Define custom
|
||||
mappings to toggle this mode conveniently. For detailed usage
|
||||
instructions, see |gui-w32-fullscreen|.
|
||||
MS-Windows and GTK GUI version. When set, the window will
|
||||
occupy the entire screen and remove window decorations.
|
||||
Define custom mappings to toggle this mode conveniently.
|
||||
For detailed usage instructions, see |gui-fullscreen|.
|
||||
*'go-r'*
|
||||
'r' Right-hand scrollbar is always present.
|
||||
*'go-R'*
|
||||
@@ -4856,7 +4861,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
|
||||
a:LineNrAbove,b:LineNrBelow,
|
||||
N:CursorLineNr,r:Question,s:StatusLine,
|
||||
S:StatusLineNC,c:VertSplit,t:Title,
|
||||
S:StatusLineNC,c:VertSplit,
|
||||
|:VertSplitNC,t:Title,
|
||||
v:Visual,V:VisualNOS,w:WarningMsg,
|
||||
W:WildMenu,f:Folded,F:FoldColumn,
|
||||
A:DiffAdd,C:DiffChange,D:DiffDelete,
|
||||
@@ -4867,7 +4873,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
[:PmenuKind,]:PmenuKindSel,
|
||||
{:PmenuExtra,}:PmenuExtraSel,
|
||||
x:PmenuSbar,X:PmenuThumb,j:PmenuBorder,
|
||||
H:PmenuShadow,*:TabLine,
|
||||
H:PmenuShadow,p:Popup,J:PopupBorder,
|
||||
Q:PopupTitle,*:TabLine,
|
||||
#:TabLineSel,_:TabLineFill,!:CursorColumn,
|
||||
.:CursorLine,o:ColorColumn,q:QuickFixLine,
|
||||
z:StatusLineTerm,Z:StatusLineTermNC,
|
||||
@@ -4904,6 +4911,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-StatusLineNC| S status lines of not-current windows
|
||||
|hl-Title| t Titles for output from ":set all", ":autocmd" etc.
|
||||
|hl-VertSplit| c column used to separate vertically split windows
|
||||
|hl-VertSplitNC| | column separating non-current vertically split
|
||||
windows
|
||||
|hl-Visual| v Visual mode
|
||||
|hl-VisualNOS| V Visual mode when Vim is "Not Owning the
|
||||
Selection" Only X11 Gui's |gui-x11|,
|
||||
@@ -4936,6 +4945,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-PmenuMatchSel| < popup menu matched text in selected line
|
||||
|hl-PmenuBorder| j popup menu border characters
|
||||
|hl-PmenuShadow| H popup menu shadow
|
||||
|hl-Popup| p popup window body
|
||||
|hl-PopupBorder| J popup window border characters
|
||||
|hl-PopupTitle| Q popup window title
|
||||
|hl-PreInsert| I text inserted when "preinsert" is in 'completeopt'
|
||||
|hl-Normal| ( Window color (supersedes 'wincolor' option)
|
||||
|
||||
@@ -6332,6 +6344,54 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
NOTE: 'modeline' is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
*'modelinestrict'* *'mlst'* *'nomodelinestrict'* *'nomlst'*
|
||||
'modelinestrict' 'mlst' boolean (default: on)
|
||||
global
|
||||
When on, only a safe subset of options can be set from a |modeline|.
|
||||
The following options are allowed:
|
||||
'autoindent'
|
||||
'cindent'
|
||||
'commentstring'
|
||||
'expandtab'
|
||||
'filetype'
|
||||
'foldcolumn'
|
||||
'foldenable'
|
||||
'foldmarker'
|
||||
'foldmethod'
|
||||
'modifiable'
|
||||
'readonly'
|
||||
'rightleft'
|
||||
'shiftwidth'
|
||||
'smartindent'
|
||||
'softtabstop'
|
||||
'spell'
|
||||
'spelllang'
|
||||
'tabstop'
|
||||
'textwidth'
|
||||
'varsofttabstop'
|
||||
'vartabstop'
|
||||
|
||||
Any other option set from a modeline will be silently ignored.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
As an exception, `set nomodeline` is honored from within a modeline
|
||||
even when 'modelinestrict' is on. Other forms (`set modeline=0`,
|
||||
`set modeline!`, `set invmodeline`) are still silently ignored.
|
||||
This lets a file disable further modeline processing for itself.
|
||||
|
||||
The behaviour of 'modeline', 'modelinestrict' and 'modelineexpr' is
|
||||
as follows:
|
||||
|
||||
'modeline'| 'modelinestrict'| 'modelineexpr' | Meaning
|
||||
----------+-----------------+-------------------+--------~
|
||||
on | off | on | All options can be set
|
||||
on | on | any | Only whitelisted
|
||||
| | | options can be set
|
||||
on | off | off | All options except for
|
||||
| | | expr options can be set
|
||||
off | any | any | No options can be set
|
||||
|
||||
*'modifiable'* *'ma'* *'nomodifiable'* *'noma'*
|
||||
*E21*
|
||||
'modifiable' 'ma' boolean (default on)
|
||||
@@ -6445,7 +6505,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
be acted upon, i.e. no cursor move. This implies of
|
||||
course, that right clicking outside a selection will
|
||||
end Visual mode.
|
||||
Overview of what button does what for each model:
|
||||
|
||||
For a detailed description of 'mousemodel' behaviour see
|
||||
|mouse-mode-table|. Overview of what button does what for each model:
|
||||
|
||||
mouse extend popup(_setpos) ~
|
||||
left click place cursor place cursor
|
||||
left drag start selection start selection
|
||||
@@ -7022,7 +7085,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
Defines a border and optional decorations for the popup menu in
|
||||
completion. The value is a comma-separated list of keywords.
|
||||
See |'pumopt'| for a consolidated alternative.
|
||||
See 'pumopt' for a consolidated alternative.
|
||||
|
||||
Border styles (at most one):
|
||||
"single" use thin box-drawing characters
|
||||
@@ -7058,7 +7121,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Determines the maximum number of items to show in the popup menu for
|
||||
Insert mode completion. When zero as much space as available is used.
|
||||
|ins-completion-menu|.
|
||||
See |'pumopt'| for a consolidated alternative.
|
||||
See 'pumopt' for a consolidated alternative.
|
||||
|
||||
*'pummaxwidth'* *'pmw'*
|
||||
'pummaxwidth' 'pmw' number (default 0)
|
||||
@@ -7070,13 +7133,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
This option takes precedence over 'pumwidth'.
|
||||
|ins-completion-menu|.
|
||||
See |'pumopt'| for a consolidated alternative.
|
||||
See 'pumopt' for a consolidated alternative.
|
||||
|
||||
*'pumopt'*
|
||||
'pumopt' string (default "")
|
||||
global
|
||||
Configures the popup menu used for Insert mode completion.
|
||||
The value is a comma-separated list of key:value pairs and flags.
|
||||
The value is a comma-separated list of "key:value" pairs and flags.
|
||||
|
||||
Keys with values:
|
||||
border:{style} set a border style (at most one):
|
||||
@@ -7098,7 +7161,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
of 'fillchars' option.
|
||||
opacity:{n} opacity percentage 0-100 (default 100).
|
||||
When less than 100, background content shows
|
||||
through the popup menu.
|
||||
through the popup menu. Requires the GUI,
|
||||
'termguicolors', or a 256-color terminal.
|
||||
|
||||
Flags (no value):
|
||||
margin adds one-cell spacing inside the left and
|
||||
@@ -7106,8 +7170,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
shadow draws a shadow at the right and bottom edges.
|
||||
|
||||
Border styles using box-drawing characters ("single", "double",
|
||||
"round") are only available when 'encoding' is "utf-8" and
|
||||
'ambiwidth' is "single".
|
||||
"round") are only available when 'encoding' is "utf-8" and 'ambiwidth'
|
||||
is "single".
|
||||
|
||||
Highlight groups:
|
||||
|hl-PmenuBorder| used for the border characters
|
||||
@@ -7130,7 +7194,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
Determines the minimum width to use for the popup menu for Insert mode
|
||||
completion. |ins-completion-menu|.
|
||||
See |'pumopt'| for a consolidated alternative.
|
||||
See 'pumopt' for a consolidated alternative.
|
||||
|
||||
*'pythondll'*
|
||||
'pythondll' string (default depends on the build)
|
||||
@@ -7668,8 +7732,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Minimal number of screen lines to keep above and below the cursor.
|
||||
This will make some context visible around where you are working. If
|
||||
you set it to a very large value (999) the cursor line will always be
|
||||
in the middle of the window (except at the start or end of the file or
|
||||
when long lines wrap).
|
||||
in the middle of the window (except at the start or end of the file,
|
||||
see 'scrolloffpad', or when long lines wrap).
|
||||
After using the local value, go back the global value with one of
|
||||
these two: >
|
||||
setlocal scrolloff<
|
||||
@@ -7677,7 +7741,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< For scrolling horizontally see 'sidescrolloff'.
|
||||
NOTE: This option is set to 0 when 'compatible' is set.
|
||||
|
||||
*'scrollopt'* *'sbo'*
|
||||
*'scrolloffpad'* *'sop'*
|
||||
'scrolloffpad' 'sop' number (default 0)
|
||||
global or local to window |global-local|
|
||||
When 'scrolloff' and 'scrolloffpad' are greater than zero, allow
|
||||
the cursor to remain centered when at the end of the file.
|
||||
Normally, 'scrolloff' will not keep the cursor centered at the
|
||||
end of the file.
|
||||
|
||||
A value of 0 disables this feature. Any value above 0 enables it.
|
||||
For a window-local value, -1 means to use the global value.
|
||||
Values below -1 are invalid.
|
||||
|
||||
After using the local value, go back the global value with one of
|
||||
these two: >
|
||||
setlocal scrolloffpad<
|
||||
setlocal scrolloffpad=-1
|
||||
|
||||
< *'scrollopt'* *'sbo'*
|
||||
'scrollopt' 'sbo' string (default "ver,jump")
|
||||
global
|
||||
This is a comma-separated list of words that specifies how
|
||||
@@ -7914,6 +7995,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Note: When using a pipe like "| tee", you'll lose the exit code of the
|
||||
shell command. This might be configurable by your shell, look for
|
||||
the pipefail option (for bash and zsh, use ":set -o pipefail").
|
||||
Only a single "%s" value is allowed.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
@@ -7957,6 +8039,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
become obsolete (at least for Unix).
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
*E1577*
|
||||
Only a single "%s" item is allowed in the option value.
|
||||
|
||||
|
||||
*'shellslash'* *'ssl'* *'noshellslash'* *'nossl'*
|
||||
'shellslash' 'ssl' boolean (default off)
|
||||
@@ -8118,6 +8203,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
search count statistics. The maximum limit can be set with
|
||||
the 'maxsearchcount' option, see also |searchcount()|
|
||||
function.
|
||||
u don't give undo and redo messages like *shm-u*
|
||||
"1 line less; before #1 1 second ago", "Already at oldest
|
||||
change" or "Already at newest change"
|
||||
|
||||
This gives you the opportunity to avoid that a change between buffers
|
||||
requires you to hit <Enter>, but still gives as useful a message as
|
||||
@@ -8718,7 +8806,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{ NF Evaluate expression between '%{' and '}' and substitute result.
|
||||
Note that there is no '%' before the closing '}'. The
|
||||
expression cannot contain a '}' character, call a function to
|
||||
work around that. See |stl-%{| below.
|
||||
work around that. See |stl-%{| below. Use '%0{' to insert the
|
||||
result verbatim.
|
||||
{% - This is almost same as { except the result of the expression is
|
||||
re-evaluated as a statusline format string. Thus if the
|
||||
return value of expr contains % items they will get expanded.
|
||||
@@ -8756,10 +8845,62 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
applied to StatusLineNC for the statusline of non-current
|
||||
windows.
|
||||
The number N must be between 1 and 9. See |hl-User1..9|
|
||||
*stl-%@*
|
||||
*stl-%@*
|
||||
@ - Inserts a newline. This only takes effect when the "maxheight"
|
||||
value of 'statuslineopt' is greater than 1, or for |tabpanel|.
|
||||
|
||||
*stl-%[FuncName]*
|
||||
%[ defines clickable regions in the statusline. When the user clicks
|
||||
on a region with the mouse, the specified function is called. The
|
||||
same syntax can also be used in 'tabline' and 'tabpanel'.
|
||||
|
||||
%[FuncName] Start of a clickable region. "FuncName" is the name
|
||||
of a Vim function to call when the region is clicked.
|
||||
%[] End of the clickable region. If omitted, the region
|
||||
extends to the end of the statusline or to the start
|
||||
of the next clickable region.
|
||||
|
||||
A {minwid} value can be used to pass an identifier to the callback:
|
||||
%3[FuncName] Starts a clickable region with minwid 3.
|
||||
|
||||
The function receives a single |Dictionary| argument with these
|
||||
entries:
|
||||
"minwid" The minwid value from %N[Func] (0 if not specified).
|
||||
"nclicks" Number of clicks: 1, 2, or 3.
|
||||
"button" Mouse button: "l" (left), "m" (middle), "r" (right).
|
||||
"mods" Modifier keys: combination of "s" (shift), "c" (ctrl),
|
||||
"a" (alt). Empty string if no modifiers.
|
||||
"winid" |window-ID| of the window whose statusline was clicked,
|
||||
or 0 when the click was in 'tabline' or 'tabpanel'.
|
||||
"area" "statusline", "tabline", or "tabpanel". Indicates
|
||||
which option the clicked region belongs to.
|
||||
"tabnr" (tabpanel only) Tab page number of the clicked label.
|
||||
|
||||
If the function returns non-zero, the statusline is redrawn.
|
||||
Dragging the statusline to resize the window still works even when
|
||||
click handlers are defined. When used in 'tabline' or 'tabpanel',
|
||||
clicks in %[FuncName] regions are dispatched to the callback
|
||||
instead of the default tab-selection behavior.
|
||||
|
||||
Example: >
|
||||
func! ClickFile(info)
|
||||
if a:info.button ==# 'l' && a:info.nclicks == 2
|
||||
browse edit
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
set statusline=%[ClickFile]%f%[]\ %l:%c
|
||||
< This makes the filename in the statusline clickable. Double-clicking
|
||||
it opens the file browser.
|
||||
|
||||
Use `has('statusline_click')` to check if this feature is available.
|
||||
This is useful for backward compatibility: >
|
||||
if has('statusline_click')
|
||||
set statusline=%[ClickFile]%f%[]\ %l:%c
|
||||
else
|
||||
set statusline=%f\ %l:%c
|
||||
endif
|
||||
<
|
||||
When displaying a flag, Vim removes the leading comma, if any, when
|
||||
that flag comes right after plaintext. This will make a nice display
|
||||
when flags are used like in the examples below.
|
||||
@@ -8793,6 +8934,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
A result of all digits is regarded a number for display purposes.
|
||||
Otherwise the result is taken as flag text and applied to the rules
|
||||
described above.
|
||||
*stl-%0{*
|
||||
With %0{ neither applies: the result is inserted as a literal string.
|
||||
|
||||
Watch out for errors in expressions. They may render Vim unusable!
|
||||
If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and
|
||||
@@ -9074,24 +9217,22 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Optional settings for the |tabpanel|, It can consist of the following
|
||||
items. Items must be separated by a comma.
|
||||
|
||||
align:{text} Specifies the position of the tabpanel.
|
||||
Currently supported positions are:
|
||||
|
||||
left left-side
|
||||
align:{text} Specifies the position of the tabpanel.
|
||||
Currently supported positions are:
|
||||
left left-side (default)
|
||||
right right-side
|
||||
|
||||
(default "left")
|
||||
|
||||
columns:{n} Number of columns of the tabpanel.
|
||||
If this value is 0 or less than 'columns', the
|
||||
tab panel will not be displayed.
|
||||
(default 20)
|
||||
|
||||
vert Use a vertical separator for tabpanel.
|
||||
The vertical separator character is taken from
|
||||
"tpl_vert" in 'fillchars'.
|
||||
(default off)
|
||||
|
||||
columns:{n} Number of columns of the tabpanel. (default 20)
|
||||
If this value is 0 or less than 'columns', the
|
||||
tabpanel will not be displayed.
|
||||
scrollbar A one-column scrollbar is always displayed at the
|
||||
right edge of the tabpanel, regardless of the
|
||||
"align:" setting. (default off)
|
||||
See |tabpanel-scroll|.
|
||||
vert The vertical separator is drawn at the boundary
|
||||
between the tabpanel and the buffer area.
|
||||
(default off)
|
||||
The character to be drawn uses "tpl_vert" from
|
||||
'fillchars'.
|
||||
Examples: >
|
||||
:set tabpanelopt=columns:16,align:right
|
||||
:set tabpanelopt=
|
||||
@@ -9229,6 +9370,22 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
file names from the list. This avoids problems when a future version
|
||||
uses another default.
|
||||
|
||||
*'tagsecure'* *'tsc'* *'notagsecure'* *'notsc'*
|
||||
'tagsecure' 'tsc' boolean (default on)
|
||||
global
|
||||
When on, Vim refuses to follow tag entries whose file field looks like
|
||||
a URL ("scheme://..."), aborting the jump with error |E1576|. This
|
||||
prevents tag files from causing Vim to open URLs through |netrw|, which
|
||||
would trigger a network request and expose netrw's URL-handling code to
|
||||
attacker-controlled input or lead to environment exfiltration.
|
||||
|
||||
Tag files might be distributed alongside source code (e.g. via Git
|
||||
repositories) and may therefore be untrustworthy. Only disable
|
||||
this option if you fully control the tag files Vim will read.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'tagstack'* *'tgst'* *'notagstack'* *'notgst'*
|
||||
'tagstack' 'tgst' boolean (default on)
|
||||
global
|
||||
@@ -10078,6 +10235,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
|
||||
and "_K_L_M" are not. Nested List and Dict items may not be
|
||||
read back correctly, you end up with an empty item.
|
||||
|
||||
Restoring |List|, |Dictionary| and |Tuple| variables is done by
|
||||
parsing their textual form with the Vim expression evaluator.
|
||||
Reading a viminfo file with "!" enabled is therefore only safe
|
||||
when the file is trusted. In particular, do not enable "!"
|
||||
before reading a viminfo file you obtained from another user,
|
||||
downloaded, or that is writable by another account. See
|
||||
also |viminfo-security|.
|
||||
*viminfo-quote*
|
||||
" Maximum number of lines saved for each register. Old name of
|
||||
the '<' item, with the disadvantage that you need to put a
|
||||
@@ -10435,8 +10600,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
applies to buffer name completion.
|
||||
"noselect" If 'wildmenu' is enabled, show the menu but do not
|
||||
preselect the first item.
|
||||
If only one match exists, it is completed fully, unless "noselect" is
|
||||
specified.
|
||||
"noinsert" If 'wildmenu' is enabled, show the menu and preselect
|
||||
the first match, but do not insert it in the command
|
||||
line. If both "noinsert" and "noselect" are present,
|
||||
"noselect" takes precedence.
|
||||
If only one match exists, it is completed fully, unless "noselect" or
|
||||
"noinsert" is specified.
|
||||
|
||||
Some useful combinations of colon-separated values:
|
||||
"longest:full" Start with the longest common string and show
|
||||
@@ -10704,11 +10873,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'wlsteal'* *'wst'* *'nowlsteal'* *'nowst'*
|
||||
'wlsteal' 'wst' boolean (default off)
|
||||
global
|
||||
{only when the |+wayland_focus_steal| feature is
|
||||
included}
|
||||
DEPRECATED: This option is no longer used; changing it has no effect.
|
||||
|
||||
When enabled, then allow Vim to steal focus by creating a temporary
|
||||
surface, in order to access the clipboard. For more information see
|
||||
|wayland-focus-steal|.
|
||||
surface, in order to access the clipboard.
|
||||
|
||||
*'wltimeoutlen'* *'wtm'*
|
||||
'wltimeoutlen' 'wtm' number (default 500)
|
||||
@@ -10721,9 +10889,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
some cases. On the other hand, it may also mean you receive errors
|
||||
when the compositor takes more time to respond than usual.
|
||||
|
||||
Additionally, this option is also used as the maximum timeout when
|
||||
waiting for a surface to gain focus, see |wayland-focus-steal|.
|
||||
|
||||
*'wrap'* *'nowrap'*
|
||||
'wrap' boolean (default on)
|
||||
local to window
|
||||
|
||||
+19
-13
@@ -1047,7 +1047,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
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|
|
||||
gb Go to bookmark |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|
|
||||
@@ -1056,11 +1056,12 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
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|
|
||||
mB Delete bookmark |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|
|
||||
mF Unmark buffer-local 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|
|
||||
@@ -1142,6 +1143,8 @@ One may easily "bookmark" the currently browsed directory by using >
|
||||
|
||||
mb
|
||||
<
|
||||
Note: Bookmarked paths are normalized and stored as absolute paths.
|
||||
|
||||
*.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
|
||||
@@ -1363,13 +1366,16 @@ Currently, this only works for local files.
|
||||
Associated setting variables: |g:netrw_chgperm|
|
||||
|
||||
|
||||
CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
|
||||
CHANGING TO A BOOKMARKED PATH *netrw-gb* {{{2
|
||||
|
||||
To change directory back to a bookmarked directory, use
|
||||
To change to a bookmarked path, use >
|
||||
|
||||
{cnt}gb
|
||||
[{cnt}]gb
|
||||
|
||||
Any count may be used to reference any of the bookmarks.
|
||||
If {cnt} is omitted, it shows a list of the current bookmarks
|
||||
and prompts for a bookmark number to go to.
|
||||
|
||||
Note that |netrw-qb| shows both bookmarks and history; to go
|
||||
to a location stored in the history see |netrw-u| and |netrw-U|.
|
||||
|
||||
@@ -1432,10 +1438,13 @@ DELETING BOOKMARKS *netrw-mB* {{{2
|
||||
|
||||
To delete a bookmark, use >
|
||||
|
||||
{cnt}mB
|
||||
[{cnt}]mB
|
||||
|
||||
If there are marked files, then mB will remove them from the
|
||||
bookmark list.
|
||||
If no files are marked and {cnt} is omitted, it shows a list
|
||||
of the current bookmarks and prompts for a bookmark number
|
||||
to delete.
|
||||
|
||||
Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >
|
||||
|
||||
@@ -2275,9 +2284,10 @@ Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
|
||||
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.
|
||||
displayed directory is used for the copy/move-to target - unless that
|
||||
directory is already the target, in which case typing "mt" again clears
|
||||
it. Repeating "mt" in the banner thus toggles the current directory as
|
||||
the target.
|
||||
|
||||
* However, if the cursor is atop a directory name, then that directory is
|
||||
used for the copy/move-to target
|
||||
@@ -2854,10 +2864,6 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
such as listing, file removal, etc.
|
||||
default: ssh
|
||||
|
||||
*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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_tar.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*pi_tar.txt* For Vim version 9.2. Last change: 2026 Apr 16
|
||||
|
||||
+====================+
|
||||
| Tar File Interface |
|
||||
@@ -101,10 +101,17 @@ Copyright 2005-2017: *tar-copyright*
|
||||
4. History *tar-history*
|
||||
|
||||
unreleased:
|
||||
Apr 16, 2026 * add missing g:tar_secure into tar#Extract
|
||||
Apr 15, 2026 * add path traversal checks in tar#Extract()
|
||||
Apr 09, 2026 * fix zstd support and dotted filename support
|
||||
Apr 06, 2026 * fix lz4 support
|
||||
Feb 07, 2026 * make path traversal detection more robust
|
||||
Feb 06, 2026 * fix bug with nowrapscan
|
||||
Jul 16, 2025 * update minimum required Vim version
|
||||
Jul 13, 2025 * drop leading /
|
||||
May 19, 2025 * restore working directory after read/write
|
||||
Apr 16, 2025 * decouple from netrw by adding s:WinPath()
|
||||
instead of shelling out to file(1)
|
||||
instead of shelling out to file(1)
|
||||
Mar 02, 2025 * determine the compression using readblob()
|
||||
Mar 02, 2025 * escape the filename before using :read
|
||||
Mar 01, 2025 * fix syntax error in tar#Read()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_vimball.txt* For Vim version 9.2. Last change: 2026 Apr 05
|
||||
*pi_vimball.txt* For Vim version 9.2. Last change: 2026 Apr 16
|
||||
|
||||
----------------
|
||||
Vimball Archiver
|
||||
@@ -166,6 +166,11 @@ WINDOWS *vimball-windows*
|
||||
==============================================================================
|
||||
4. Vimball History *vimball-history* {{{1
|
||||
|
||||
unreleased:
|
||||
Feb 28, 2025 * add support for bzip3 (#16755)
|
||||
Apr 05, 2026 * Detect path traversal attacks
|
||||
Apr 09, 2026 * Detect more path traversal attacks
|
||||
Apr 16, 2026 * Block Windows drive letter paths
|
||||
37 : Jul 18, 2014 * (by request of T. Miedema) added augroup around
|
||||
the autocmds in vimballPlugin.vim
|
||||
Jul 06, 2015 * there are two uses of tabc; changed to tabc!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 9.2. Last change: 2026 Apr 05
|
||||
*pi_zip.txt* For Vim version 9.2. Last change: 2026 May 16
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -114,9 +114,9 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
should be treated as zip files.
|
||||
|
||||
Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
|
||||
Currently (as of October 2025) it holds: >
|
||||
Currently (as of May 2026) it holds: >
|
||||
|
||||
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,
|
||||
let g:zipPlugin_ext='*.aar,*.apk,*.cbz,*.celzip,*.crtx,*.docm,*.docx,
|
||||
\ *.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,
|
||||
\ *.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,
|
||||
\ *.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.pkpass,*.potm,*.potx,
|
||||
|
||||
+49
-5
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 9.2. Last change: 2026 Apr 06
|
||||
*popup.txt* For Vim version 9.2. Last change: 2026 May 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -44,8 +44,11 @@ A popup window can be used for such things as:
|
||||
The text in the popup window can be colored with |text-properties|. It is
|
||||
also possible to use syntax highlighting.
|
||||
|
||||
The default color used is "Pmenu". If you prefer something else use the
|
||||
"highlight" argument or the 'wincolor' option, e.g.: >
|
||||
The default colors are taken from |hl-Popup| (body), |hl-PopupBorder|
|
||||
(border) and |hl-PopupTitle| (title), which all link to |hl-Pmenu| by
|
||||
default for backward compatibility. Override them to give general popup
|
||||
windows a different look than the popup completion menu, or use the
|
||||
"highlight" argument or the 'wincolor' option for a per-popup override: >
|
||||
hi MyPopupColor ctermbg=lightblue guibg=lightblue
|
||||
call setwinvar(winid, '&wincolor', 'MyPopupColor')
|
||||
|
||||
@@ -712,6 +715,15 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
when "textprop" is present.
|
||||
textpropid Used to identify the text property when "textprop" is
|
||||
present. Use zero to reset.
|
||||
clipwindow Only used when "textprop" is set. When TRUE the popup
|
||||
is kept within the window containing the text
|
||||
property: if the text property scrolls past that
|
||||
window's top, bottom, left or right edge, the popup
|
||||
is clipped at that edge instead of being drawn
|
||||
outside it. Once the text property has scrolled out
|
||||
of the window the popup is hidden.
|
||||
Default FALSE.
|
||||
See |popup-clipwindow|.
|
||||
fixed When FALSE (the default), and:
|
||||
- "pos" is "botleft" or "topleft", and
|
||||
- the popup would be truncated at the right edge of
|
||||
@@ -751,6 +763,10 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
border one line of padding is added to put the title
|
||||
on. You might want to add one or more spaces at the
|
||||
start and end as padding.
|
||||
The title uses |hl-PopupTitle| by default; if
|
||||
"borderhighlight" is set the top border highlight is
|
||||
used instead, and if "highlight"/'wincolor' is set
|
||||
that is used.
|
||||
wrap TRUE to make the lines wrap (default TRUE).
|
||||
drag TRUE to allow the popup to be dragged with the mouse
|
||||
by grabbing at the border. Has no effect if the
|
||||
@@ -799,6 +815,8 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
the highlight for the top/right/bottom/left border.
|
||||
Example: ['TopColor', 'RightColor', 'BottomColor,
|
||||
'LeftColor']
|
||||
When not given and "highlight"/'wincolor' is also not
|
||||
set, |hl-PopupBorder| is used.
|
||||
borderchars List with characters, defining the character to use
|
||||
for the top/right/bottom/left border. Optionally
|
||||
followed by the character to use for the
|
||||
@@ -949,6 +967,31 @@ If the window for which the popup was defined is closed, the popup is closed.
|
||||
If the popup cannot fit in the desired position, it may show at a nearby
|
||||
position.
|
||||
|
||||
|
||||
CLIP TEXTPROP POPUP TO HOST WINDOW *popup-clipwindow*
|
||||
|
||||
When the popup is anchored to a text property in a split window, the popup is
|
||||
by default drawn relative to the whole screen and may extend past the edges of
|
||||
the window that contains the text property (the "host window"). Setting
|
||||
"clipwindow" to TRUE keeps the popup within window's content area:
|
||||
parts of the popup that fall outside the window are clipped, and the popup is
|
||||
hidden once the text property has scrolled entirely past one of the edges.
|
||||
|
||||
Example: a tall popup anchored above the cursor that should never spill into
|
||||
the window below the split: >
|
||||
call popup_create(body, #{
|
||||
\ textprop: 'marker',
|
||||
\ textpropid: id,
|
||||
\ pos: 'topleft',
|
||||
\ line: -1, col: 0,
|
||||
\ posinvert: v:false,
|
||||
\ clipwindow: v:true,
|
||||
\ })
|
||||
<
|
||||
With "posinvert" left at its default (TRUE) the popup may be flipped to the
|
||||
opposite side of the text property when there is no room; set it to FALSE to
|
||||
keep the requested side and rely on "clipwindow" to clip the overflow.
|
||||
|
||||
Some hints:
|
||||
- To avoid collision with other plugins the text property type name has to be
|
||||
unique. You can also use the "bufnr" item to make it local to a buffer.
|
||||
@@ -1067,8 +1110,9 @@ The opacity value ranges from 0 to 100:
|
||||
1-99 Partially transparent - the popup background is blended with
|
||||
the underlying text, making both partially visible.
|
||||
|
||||
The transparency effect requires using the GUI or having 'termguicolors'
|
||||
enabled in the terminal. Without it, the opacity setting has no effect.
|
||||
The transparency effect requires using the GUI, having 'termguicolors'
|
||||
enabled, or running in a 256-color terminal. On terminals with fewer
|
||||
than 256 colors the opacity setting has no effect.
|
||||
|
||||
When a popup is transparent:
|
||||
- The popup's background color is blended with the background text
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*quickfix.txt* For Vim version 9.2. Last change: 2026 May 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1821,9 +1821,9 @@ Basic items
|
||||
%c column number (finds a number representing character
|
||||
column of the error, byte index, a <tab> is 1
|
||||
character column)
|
||||
%v virtual column number (finds a number representing
|
||||
screen column of the error (1 <tab> == 8 screen
|
||||
columns))
|
||||
%v virtual column number (finds a number representing the
|
||||
screen column of the error, where a <tab> is always 8
|
||||
screen columns regardless of 'tabstop')
|
||||
%k end column number (finds a number representing
|
||||
the character column of the error, byte index, or a
|
||||
number representing screen end column of the error if
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.2. Last change: 2026 Apr 07
|
||||
*quickref.txt* For Vim version 9.2. Last change: 2026 May 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -830,6 +830,7 @@ Short explanation of each option: *option-list*
|
||||
'modeline' 'ml' recognize modelines at start or end of file
|
||||
'modelineexpr' 'mle' allow setting expression options from a modeline
|
||||
'modelines' 'mls' number of lines checked for modelines
|
||||
'modelinestrict' 'mlst' only allow safe options in modelines
|
||||
'modifiable' 'ma' changes to the text are not possible
|
||||
'modified' 'mod' buffer has been modified
|
||||
'more' pause listings when the whole screen is filled
|
||||
@@ -901,6 +902,7 @@ Short explanation of each option: *option-list*
|
||||
'scrollfocus' 'scf' scroll wheel applies to window under pointer
|
||||
'scrolljump' 'sj' minimum number of lines to scroll
|
||||
'scrolloff' 'so' minimum nr. of lines above and below cursor
|
||||
'scrolloffpad' 'sop' vertically center cursor at end of file
|
||||
'scrollopt' 'sbo' how 'scrollbind' should behave
|
||||
'sections' 'sect' nroff macros that separate sections
|
||||
'secure' secure mode for reading .vimrc in current dir
|
||||
@@ -965,6 +967,7 @@ Short explanation of each option: *option-list*
|
||||
'taglength' 'tl' number of significant characters for a tag
|
||||
'tagrelative' 'tr' file names in tag file are relative
|
||||
'tags' 'tag' list of file names used by the tag command
|
||||
'tagsecure' 'tsc' do not open remote files using tag commands
|
||||
'tagstack' 'tgst' push tags onto the tag stack
|
||||
'tcldll' name of the Tcl dynamic library
|
||||
'term' name of the terminal
|
||||
|
||||
@@ -195,6 +195,10 @@ recovered file. Or use |:DiffOrig|.
|
||||
Once you are sure the recovery is ok delete the swap file. Otherwise, you
|
||||
will continue to get warning messages that the ".swp" file already exists.
|
||||
|
||||
Note: Recovering swap files is best-effort. Vim attempts to validate fields
|
||||
and skip corrupted sections, but the swap file format is intended for files
|
||||
you trust. A crafted swap file may trigger parser bugs; such reports are
|
||||
treated as robustness issues rather than security vulnerabilities.
|
||||
|
||||
|
||||
ENCRYPTION AND THE SWAP FILE *:recover-crypt*
|
||||
|
||||
+47
-32
@@ -80,9 +80,10 @@ The following command line arguments are available:
|
||||
*--clientserver*
|
||||
--clientserver {method} Use the specified method {method} as the
|
||||
backend for clientserver functionality. Can
|
||||
either be "socket" or "x11".
|
||||
either be "socket", "x11", or "mswin".
|
||||
{only available when compiled with both |+X11|
|
||||
and |+socketserver| features}
|
||||
and |+socketserver| features, or
|
||||
|+socketserver| on MS-Windows}
|
||||
|
||||
|
||||
Examples ~
|
||||
@@ -221,12 +222,16 @@ When using gvim, the --remote-wait only works properly this way: >
|
||||
<
|
||||
==============================================================================
|
||||
4. Socket server specific items *socketserver-clientserver*
|
||||
*E1563* *E1564* *E1565* *E1566* *E1567*
|
||||
*E1564* *E1565* *E1566*
|
||||
|
||||
The communication between client and server is done using Unix domain sockets.
|
||||
These sockets are either placed in these directories in the following order of
|
||||
NOTE: Vim version before patch 9.2.511 use a different socketserver backend
|
||||
which is incompatible with the new one, which is based on channels and JSON.
|
||||
|
||||
The communication between client and server is done using channels internally.
|
||||
When using the traditional/generic clientserver naming (only available on
|
||||
Unix), sockets are placed in these directories in the following order of
|
||||
availability:
|
||||
1. "$XDG_RUTIME_DIR/vim" if $XDG_RUNTIME_DIR is set in the environment.
|
||||
1. "$XDG_RUNTIME_DIR/vim" if $XDG_RUNTIME_DIR is set in the environment.
|
||||
2. "$TMPDIR/vim-[uid]", where "[uid]" is the uid of the user. This
|
||||
directory will have the access permissions set to 700 so only the user
|
||||
can read or write from/to it. If $TMPDIR is not set, "/tmp" is used.
|
||||
@@ -238,46 +243,56 @@ absolute or relative path. If the server id starts with either a "/"
|
||||
Otherwise the server id will be the filename of the socket which will be
|
||||
placed in the above common directories. Note that a server id/name can only
|
||||
contain slashes "/" if it is taken as a path, so names such as "abc/dir" will
|
||||
be invalid.
|
||||
be invalid. This feature is only available on Unix.
|
||||
|
||||
Socket server functionality is available in both GTK GUI and terminal versions
|
||||
of Vim. Unless Vim is compiled with |+autoservername| feature, the socket
|
||||
server will have to started explicitly, just like X11, even in the GUI.
|
||||
*socketserver-address*
|
||||
In addition, the socketserver can also be created as a |channel-address|. To
|
||||
do this, prefix the address with "channel:" (which will be ignored). This is
|
||||
available on both Unix and MS-Windows, and is the only available naming for the
|
||||
socketserver backend on Windows. However, note that |ch_listen()|
|
||||
restrictions apply, meaning only port numbers can be used for TCP sockets.
|
||||
|
||||
If the name is prefixed with "name:", then the legacy servername behaviour is
|
||||
used, so "name:VIM" is the same as "VIM".
|
||||
|
||||
Unless Vim is compiled with |+autoservername| feature, the socket server will
|
||||
have to started explicitly, similar to X11. This is unless a X11 GUI Vim is
|
||||
being used.
|
||||
|
||||
If Vim crashes or does not exit cleanly, the socket server will not remove the
|
||||
socket file and it will be left around. This is generally not a problem,
|
||||
because if a socket name is taken, Vim checks if the socket in its place is
|
||||
dead (not attached to any process), and can replace it instead of finding a
|
||||
new name.
|
||||
|
||||
To send commands to a Vim socket server from another application, read the
|
||||
source file src/os_unix.c, there is detailed description of the protocol used.
|
||||
new name. This is only relevant for Unix.
|
||||
|
||||
*socketserver-differences*
|
||||
Most of the functionality is the same as X11, however unlike X11, where the
|
||||
client does not need to be a server in order to communicate with another
|
||||
server, the socket server requires the server to be running even as a client.
|
||||
The exception is |serverlist()| or the |--serverlist| argument, which does not
|
||||
require the server to be running.
|
||||
Most of the functionality is the same as the other clientserver backends.
|
||||
|
||||
Additionally, the server id or client id will not be a number like X11 or
|
||||
However, the server id or client id will not be a number like X11 or
|
||||
MS-Windows (shown in hex representation), instead it is the absolute path to
|
||||
the socket. This can be seen via the |v:servername| variable.
|
||||
the socket. This can be seen via the |v:servername| variable. If the name is
|
||||
a channel address, then it will be the address with the "a/" prefix as well.
|
||||
|
||||
The |--serverlist| argument will act just like X11, however it only checks the
|
||||
given common directories above. If a custom path is used for a socket, it
|
||||
will not be detected, such as a path either not in $XDG_RUNTIME_DIR or
|
||||
<$TMPDIR or /tmp>/vim of the |--serverlist| Vim process.
|
||||
Note when using |--remote-wait|, the client id will look like "t/<some
|
||||
number>". This naming is specifically for this command, and attempting to use
|
||||
it as an address will fail.
|
||||
|
||||
If you have both |+socketserver| and |+X11| compiled, you will need to add
|
||||
|--clientserver| set to "socket" in combination with |--serverlist| to list
|
||||
the available servers. You cannot list both types of backends in one command.
|
||||
If on Unix, the |--serverlist| argument will act just like X11, however it
|
||||
only checks the given common directories above. If a custom path is used for
|
||||
a socket, it will not be detected, such as a path either not in
|
||||
$XDG_RUNTIME_DIR or <$TMPDIR or /tmp>/vim of the |--serverlist| Vim process.
|
||||
If on MS-Windows, then the |--serverlist| argument will output nothing.
|
||||
|
||||
The |+socketserver| feature is automatically enabled when on Unix or
|
||||
MS-Windows, and the |+channel| feature is enabled
|
||||
|
||||
*socketserver-x11*
|
||||
If Vim is compiled with both |+X11| and |+socketserver|, then deciding which
|
||||
backend to use is done at startup time, via the |--clientserver| argument. By
|
||||
default if it is not specified, then X11 will be used. A Vim instance using a
|
||||
socket server cannot communicate with one using X11.
|
||||
If Vim is compiled with |+socketserver| and another clientserver backend, then
|
||||
deciding which backend to use is done at startup time, via the
|
||||
|--clientserver| argument. By default if it is not specified, then the native
|
||||
backend (X11 or MS-Window messages) will be used, if available. A Vim
|
||||
instance using a socket server cannot communicate with one using another
|
||||
clientserver backend.
|
||||
|
||||
==============================================================================
|
||||
5. MacVim specific items *macvim-clientserver*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*repeat.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -454,6 +454,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
nested ":try"s in the script. The outermost ":endtry"
|
||||
then stops sourcing the script.
|
||||
|
||||
In |Vim9| script `:finish` cannot be shortened, to
|
||||
improve script readability.
|
||||
|
||||
All commands and command sequences can be repeated by putting them in a named
|
||||
register and then executing it. There are two ways to get the commands in the
|
||||
register:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*spell.txt* For Vim version 9.2. Last change: 2026 May 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -562,6 +562,11 @@ then Vim will try to guess.
|
||||
avoid running out of memory compression will be done
|
||||
now and then. This can be tuned with the 'mkspellmem'
|
||||
option.
|
||||
*E1578*
|
||||
There is a limit on how many postponed prefix and
|
||||
compound flags can be stored for one word. Reduce the
|
||||
number of affix/compound flags on a word in the .dic
|
||||
file that exceeds it.
|
||||
|
||||
After the spell file was written and it was being used
|
||||
in a buffer it will be reloaded automatically.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.2. Last change: 2026 Mar 17
|
||||
*starting.txt* For Vim version 9.2. Last change: 2026 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -642,6 +642,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
of the output is: >
|
||||
WID: 12345\n
|
||||
|
||||
--display {display} *--display*
|
||||
Run Vim on {display}, connecting to that X server instead of
|
||||
the one in $DISPLAY. The "--display" long form is accepted
|
||||
only by the GTK+ 2 or GTK+ 3 GUI, see also |-display|.
|
||||
{only available with the |+xterm_clipboard| feature}
|
||||
|
||||
--role {role} *--role*
|
||||
GTK+ 2 GUI only. Set the role of the main window to {role}.
|
||||
The window role can be used by a window manager to uniquely
|
||||
@@ -1574,6 +1580,24 @@ Session. You could have several Session files, one for each project you are
|
||||
working on. Viminfo and Session files together can be used to effectively
|
||||
enter Vim and directly start working in your desired setup. |session-file|
|
||||
|
||||
*viminfo-security*
|
||||
A viminfo file written by Vim is plain text and contains Vim expressions for
|
||||
|List|, |Dictionary| and |Tuple| values. When "!" is in 'viminfo' at the time
|
||||
Vim processes the file as a viminfo file, those expressions are evaluated.
|
||||
|
||||
The default value of 'viminfo' does not include "!", so by default no
|
||||
expression evaluation happens.
|
||||
|
||||
Opening a viminfo file in a buffer (e.g. with |:edit|) is harmless; Vim only
|
||||
displays the file contents. The risk is letting Vim process an untrusted file
|
||||
through the viminfo machinery, which happens when:
|
||||
- |:rviminfo| is used on the file, or
|
||||
- 'viminfofile' is set to point at it, or
|
||||
- the file is placed at the path Vim already reads as viminfo
|
||||
|viminfo-file-name|
|
||||
|
||||
In any of those cases, do not have "!" in 'viminfo' if you do not trust it.
|
||||
|
||||
*viminfo-read*
|
||||
When Vim is started and the 'viminfo' option is non-empty, the contents of
|
||||
the viminfo file are read and the info can be used in the appropriate places.
|
||||
|
||||
+58
-20
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.2. Last change: 2026 Mar 22
|
||||
*syntax.txt* For Vim version 9.2. Last change: 2026 Jun 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -402,9 +402,8 @@ the desired value, or restored to their default by removing the variable using
|
||||
Remarks:
|
||||
- Some truly ancient browsers may not show the background colors.
|
||||
- From most browsers you can also print the file (in color)!
|
||||
- The latest TOhtml may actually work with older versions of Vim, but some
|
||||
features such as conceal support will not function, and the colors may be
|
||||
incorrect for an old Vim without GUI support compiled in.
|
||||
- Colors may be incorrect for Vim without GUI support compiled in.
|
||||
- The latest TOhtml requires Vim 9.1 or later.
|
||||
|
||||
Here is an example how to run the script over all .c and .h files from a
|
||||
Unix shell: >
|
||||
@@ -849,6 +848,19 @@ ADA
|
||||
See |ft-ada-syntax|
|
||||
|
||||
|
||||
ALGOL 68 *algol68* *ft-algol68-syntax*
|
||||
|
||||
This syntax file currently targets the Algol 68 Genie project using the
|
||||
default UPPER stropping regime. It should also be usable in other
|
||||
environments using the UPPER stropping regime, though somewhat less complete.
|
||||
|
||||
Highlighting can be further configured with the following variables.
|
||||
|
||||
Variable Highlight ~
|
||||
*algol68_no_preludes* no prelude identifiers, procedures or
|
||||
operators
|
||||
|
||||
|
||||
ANT *ant.vim* *ft-ant-syntax*
|
||||
|
||||
The ant syntax file provides syntax highlighting for javascript and python
|
||||
@@ -1248,6 +1260,7 @@ cpp_no_cpp11 don't highlight C++11 standard items
|
||||
cpp_no_cpp14 don't highlight C++14 standard items
|
||||
cpp_no_cpp17 don't highlight C++17 standard items
|
||||
cpp_no_cpp20 don't highlight C++20 standard items
|
||||
cpp_no_cpp23 don't highlight C++23 standard items
|
||||
|
||||
|
||||
CSH *csh.vim* *ft-csh-syntax*
|
||||
@@ -5978,7 +5991,14 @@ EndOfBuffer Filler lines (~) after the last line in the buffer.
|
||||
*hl-ErrorMsg*
|
||||
ErrorMsg Error messages on the command line.
|
||||
*hl-VertSplit*
|
||||
VertSplit Column separating vertically split windows.
|
||||
VertSplit Column separating vertically split windows that is adjacent
|
||||
to the current window. Drawn with the "vert" item of
|
||||
'fillchars'.
|
||||
*hl-VertSplitNC*
|
||||
VertSplitNC Column separating vertically split windows where neither
|
||||
adjacent window is the current window. Drawn with the
|
||||
"vert" item of 'fillchars'.
|
||||
By default, highlighted like |hl-VertSplit|.
|
||||
*hl-Folded*
|
||||
Folded Line used for closed folds.
|
||||
*hl-FoldColumn*
|
||||
@@ -6056,6 +6076,18 @@ PmenuShadow Popup menu: Used for shadow.
|
||||
ComplMatchIns Matched text of the currently inserted completion.
|
||||
*hl-PreInsert*
|
||||
PreInsert Text inserted when "preinsert" is in 'completeopt'.
|
||||
*hl-Popup*
|
||||
Popup Popup window body, used when neither the popup's 'wincolor'
|
||||
nor explicit "highlight" argument is set. Linked to |hl-Pmenu|
|
||||
by default.
|
||||
*hl-PopupBorder*
|
||||
PopupBorder Popup window border characters, used when "borderhighlight" is
|
||||
not set and the popup's 'wincolor' is also not set.
|
||||
Linked to |hl-Pmenu| by default.
|
||||
*hl-PopupTitle*
|
||||
PopupTitle Popup window title, used when "borderhighlight" is not set and
|
||||
the popup's 'wincolor' is also not set. Linked to
|
||||
|hl-Pmenu| by default.
|
||||
*hl-PopupSelected*
|
||||
PopupSelected Popup window created with |popup_menu()|. Linked to
|
||||
|hl-PmenuSel| by default.
|
||||
@@ -6094,16 +6126,23 @@ SpellRare Word that is recognized by the spellchecker as one that is
|
||||
hardly ever used. |spell|
|
||||
This will be combined with the highlighting used otherwise.
|
||||
*hl-StatusLine*
|
||||
StatusLine Status line of current window.
|
||||
StatusLine Status line of current window. The highlight at the status
|
||||
line's edge (StatusLine, or any %#... / %N* in 'statusline')
|
||||
also extends into the adjacent vertical separator cell when
|
||||
the status lines are connected (The "vert" in 'fillchars' is
|
||||
not being drawn).
|
||||
*hl-StatusLineNC*
|
||||
StatusLineNC status lines of not-current windows
|
||||
StatusLineNC status lines of not-current windows. Like |hl-StatusLine|,
|
||||
the edge highlight also extends into the adjacent vertical
|
||||
separator cell.
|
||||
Note: If this is equal to "StatusLine", Vim will use "^^^" in
|
||||
the status line of the current window.
|
||||
*hl-StatusLineTerm*
|
||||
StatusLineTerm Status line of current window, if it is a |terminal| window.
|
||||
*hl-StatusLineTermNC*
|
||||
StatusLineTermNC Status lines of not-current windows that is a
|
||||
|terminal| window.
|
||||
StatusLineTermNC
|
||||
Status lines of not-current windows that is a |terminal|
|
||||
window.
|
||||
*hl-TabLine*
|
||||
TabLine Tab pages line, not active tab page label.
|
||||
*hl-TabLineFill*
|
||||
@@ -6123,18 +6162,19 @@ Title Titles for output from ":set all", ":autocmd" etc.
|
||||
*hl-TitleBar*
|
||||
TitleBar Title bar for the active Gui's window.
|
||||
This feature is supported only in the MS-Windows GUI.
|
||||
See |gui-w32-title-bar| for details
|
||||
See |gui-w32-title-bar| for details.
|
||||
Only the `guibg` and `guifg` highlight arguments are effective.
|
||||
*hl-TitleBarNC*
|
||||
TitleBarNC Title bar for inactive Gui's window.
|
||||
This feature is supported only in the MS-Windows GUI.
|
||||
See |gui-w32-title-bar| for details
|
||||
See |gui-w32-title-bar| for details.
|
||||
Only the `guibg` and `guifg` highlight arguments are effective.
|
||||
*hl-Visual*
|
||||
Visual Visual mode selection.
|
||||
*hl-VisualNOS*
|
||||
VisualNOS Visual mode selection when vim is "Not Owning the Selection".
|
||||
Only X11 Gui's |gui-x11| and |xterm-clipboard| supports this.
|
||||
Only X11 Gui's |gui-x11|, |xterm-clipboard| and
|
||||
|wayland-selections| supports this.
|
||||
*hl-WarningMsg*
|
||||
WarningMsg Warning messages.
|
||||
*hl-WildMenu*
|
||||
@@ -6154,10 +6194,9 @@ Menu Current font, background and foreground colors of the menus.
|
||||
Also used for the toolbar.
|
||||
Applicable highlight arguments: font, guibg, guifg.
|
||||
|
||||
NOTE: For Motif the font argument actually
|
||||
specifies a fontset at all times, no matter if 'guifontset' is
|
||||
empty, and as such it is tied to the current |:language| when
|
||||
set.
|
||||
NOTE: For Motif the font argument actually specifies a fontset
|
||||
at all times, no matter if 'guifontset' is empty, and as such
|
||||
it is tied to the current |:language| when set.
|
||||
|
||||
*hl-Scrollbar*
|
||||
Scrollbar Current background and foreground of the main window's
|
||||
@@ -6168,10 +6207,9 @@ Scrollbar Current background and foreground of the main window's
|
||||
Tooltip Current font, background and foreground of the tooltips.
|
||||
Applicable highlight arguments: font, guibg, guifg.
|
||||
|
||||
NOTE: For Motif the font argument actually
|
||||
specifies a fontset at all times, no matter if 'guifontset' is
|
||||
empty, and as such it is tied to the current |:language| when
|
||||
set.
|
||||
NOTE: For Motif the font argument actually specifies a fontset
|
||||
at all times, no matter if 'guifontset' is empty, and as such
|
||||
it is tied to the current |:language| when set.
|
||||
|
||||
==============================================================================
|
||||
15. Linking groups *:hi-link* *:highlight-link* *E412* *E413*
|
||||
|
||||
+37
-1
@@ -1,4 +1,4 @@
|
||||
*tabpage.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*tabpage.txt* For Vim version 9.2. Last change: 2026 May 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -482,6 +482,42 @@ The vertical separator character is taken from "tpl_vert" in 'fillchars'.
|
||||
You can customize the appearance of the tab page labels using the highlight
|
||||
groups: |hl-TabPanel| |hl-TabPanelSel| |hl-TabPanelFill|
|
||||
|
||||
SCROLLING IN THE TABPANEL *tabpanel-scroll*
|
||||
|
||||
When the total height of the tab page list exceeds the visible screen height,
|
||||
mouse wheel events over the tabpanel area scroll the tab page list up or down.
|
||||
The scroll step follows the 'mousescroll' setting. Wheel events inside the
|
||||
tabpanel area are consumed by the tabpanel and do not trigger
|
||||
|<ScrollWheelUp>| or |<ScrollWheelDown>| mappings.
|
||||
|
||||
The current tab page is always brought into view: when the selected tab page
|
||||
changes (by |gt|, |gT|, |:tabnext| etc.), the panel scrolls so the current
|
||||
entry is visible.
|
||||
|
||||
To show a vertical scrollbar indicating the current scroll position, add
|
||||
"scrollbar" to 'tabpanelopt': >
|
||||
:set tabpanelopt+=scrollbar
|
||||
|
||||
A one-column scrollbar is always displayed at the right edge of the tabpanel,
|
||||
regardless of the "align:" setting in 'tabpanelopt'. Clicking on the
|
||||
scrollbar column moves the thumb to the click position, and the thumb can be
|
||||
dragged to scroll continuously.
|
||||
|
||||
The scrollbar uses the |hl-PmenuSbar| highlight group for the track and
|
||||
|hl-PmenuThumb| for the thumb.
|
||||
|
||||
The scroll offset is remembered across redraws.
|
||||
|
||||
MOUSE CLICKS IN THE TABPANEL *tabpanel-mouse*
|
||||
|
||||
A left click on a row in the tabpanel selects the tab page that the row
|
||||
belongs to. Unlike the tabline, a double click in the tabpanel does not open
|
||||
a new, empty tab page; it is treated the same as a single click.
|
||||
|
||||
For finer-grained control, the 'tabpanel' value may contain |stl-%[FuncName]|
|
||||
click regions. Clicks on those regions are dispatched to the callback
|
||||
function instead of falling through to tab page selection.
|
||||
|
||||
==============================================================================
|
||||
6. Setting 'guitablabel' *setting-guitablabel*
|
||||
|
||||
|
||||
+36
-15
@@ -542,6 +542,7 @@ $quote eval.txt /*$quote*
|
||||
'ml' options.txt /*'ml'*
|
||||
'mle' options.txt /*'mle'*
|
||||
'mls' options.txt /*'mls'*
|
||||
'mlst' options.txt /*'mlst'*
|
||||
'mm' options.txt /*'mm'*
|
||||
'mmd' options.txt /*'mmd'*
|
||||
'mmp' options.txt /*'mmp'*
|
||||
@@ -551,6 +552,7 @@ $quote eval.txt /*$quote*
|
||||
'modeline' options.txt /*'modeline'*
|
||||
'modelineexpr' options.txt /*'modelineexpr'*
|
||||
'modelines' options.txt /*'modelines'*
|
||||
'modelinestrict' options.txt /*'modelinestrict'*
|
||||
'modifiable' options.txt /*'modifiable'*
|
||||
'modified' options.txt /*'modified'*
|
||||
'mopt' options.txt /*'mopt'*
|
||||
@@ -723,10 +725,12 @@ $quote eval.txt /*$quote*
|
||||
'nomh' options.txt /*'nomh'*
|
||||
'noml' options.txt /*'noml'*
|
||||
'nomle' options.txt /*'nomle'*
|
||||
'nomlst' options.txt /*'nomlst'*
|
||||
'nommta' options.txt /*'nommta'*
|
||||
'nomod' options.txt /*'nomod'*
|
||||
'nomodeline' options.txt /*'nomodeline'*
|
||||
'nomodelineexpr' options.txt /*'nomodelineexpr'*
|
||||
'nomodelinestrict' options.txt /*'nomodelinestrict'*
|
||||
'nomodifiable' options.txt /*'nomodifiable'*
|
||||
'nomodified' options.txt /*'nomodified'*
|
||||
'nomore' options.txt /*'nomore'*
|
||||
@@ -799,6 +803,7 @@ $quote eval.txt /*$quote*
|
||||
'nota' options.txt /*'nota'*
|
||||
'notagbsearch' options.txt /*'notagbsearch'*
|
||||
'notagrelative' options.txt /*'notagrelative'*
|
||||
'notagsecure' options.txt /*'notagsecure'*
|
||||
'notagstack' options.txt /*'notagstack'*
|
||||
'notbi' options.txt /*'notbi'*
|
||||
'notbidi' options.txt /*'notbidi'*
|
||||
@@ -817,6 +822,7 @@ $quote eval.txt /*$quote*
|
||||
'noto' options.txt /*'noto'*
|
||||
'notop' options.txt /*'notop'*
|
||||
'notr' options.txt /*'notr'*
|
||||
'notsc' options.txt /*'notsc'*
|
||||
'nottimeout' options.txt /*'nottimeout'*
|
||||
'nottybuiltin' options.txt /*'nottybuiltin'*
|
||||
'nottyfast' options.txt /*'nottyfast'*
|
||||
@@ -967,6 +973,7 @@ $quote eval.txt /*$quote*
|
||||
'scrollfocus' options.txt /*'scrollfocus'*
|
||||
'scrolljump' options.txt /*'scrolljump'*
|
||||
'scrolloff' options.txt /*'scrolloff'*
|
||||
'scrolloffpad' options.txt /*'scrolloffpad'*
|
||||
'scrollopt' options.txt /*'scrollopt'*
|
||||
'scs' options.txt /*'scs'*
|
||||
'sect' options.txt /*'sect'*
|
||||
@@ -1025,6 +1032,7 @@ $quote eval.txt /*$quote*
|
||||
'so' options.txt /*'so'*
|
||||
'softtabstop' options.txt /*'softtabstop'*
|
||||
'sol' options.txt /*'sol'*
|
||||
'sop' options.txt /*'sop'*
|
||||
'sourceany' vi_diff.txt /*'sourceany'*
|
||||
'sp' options.txt /*'sp'*
|
||||
'spc' options.txt /*'spc'*
|
||||
@@ -1241,6 +1249,7 @@ $quote eval.txt /*$quote*
|
||||
'taglength' options.txt /*'taglength'*
|
||||
'tagrelative' options.txt /*'tagrelative'*
|
||||
'tags' options.txt /*'tags'*
|
||||
'tagsecure' options.txt /*'tagsecure'*
|
||||
'tagstack' options.txt /*'tagstack'*
|
||||
'tal' options.txt /*'tal'*
|
||||
'tb' options.txt /*'tb'*
|
||||
@@ -1293,6 +1302,7 @@ $quote eval.txt /*$quote*
|
||||
'transparency' options.txt /*'transparency'*
|
||||
'trz' options.txt /*'trz'*
|
||||
'ts' options.txt /*'ts'*
|
||||
'tsc' options.txt /*'tsc'*
|
||||
'tsl' options.txt /*'tsl'*
|
||||
'tsr' options.txt /*'tsr'*
|
||||
'tsrfu' options.txt /*'tsrfu'*
|
||||
@@ -1579,7 +1589,6 @@ $quote eval.txt /*$quote*
|
||||
+vtp various.txt /*+vtp*
|
||||
+wayland various.txt /*+wayland*
|
||||
+wayland_clipboard various.txt /*+wayland_clipboard*
|
||||
+wayland_focus_steal various.txt /*+wayland_focus_steal*
|
||||
+wildignore various.txt /*+wildignore*
|
||||
+wildmenu various.txt /*+wildmenu*
|
||||
+windows various.txt /*+windows*
|
||||
@@ -1605,6 +1614,7 @@ $quote eval.txt /*$quote*
|
||||
--clean starting.txt /*--clean*
|
||||
--clientserver remote.txt /*--clientserver*
|
||||
--cmd starting.txt /*--cmd*
|
||||
--display starting.txt /*--display*
|
||||
--echo-wid starting.txt /*--echo-wid*
|
||||
--gui-dialog-file starting.txt /*--gui-dialog-file*
|
||||
--help starting.txt /*--help*
|
||||
@@ -4606,12 +4616,9 @@ E1315 vim9class.txt /*E1315*
|
||||
E1316 vim9class.txt /*E1316*
|
||||
E1317 vim9class.txt /*E1317*
|
||||
E1318 vim9class.txt /*E1318*
|
||||
E1319 eval.txt /*E1319*
|
||||
E132 userfunc.txt /*E132*
|
||||
E1320 eval.txt /*E1320*
|
||||
E1321 eval.txt /*E1321*
|
||||
E1322 eval.txt /*E1322*
|
||||
E1323 eval.txt /*E1323*
|
||||
E1324 eval.txt /*E1324*
|
||||
E1325 vim9class.txt /*E1325*
|
||||
E1326 vim9class.txt /*E1326*
|
||||
@@ -4688,15 +4695,12 @@ E1391 eval.txt /*E1391*
|
||||
E1392 eval.txt /*E1392*
|
||||
E1393 vim9class.txt /*E1393*
|
||||
E1394 vim9class.txt /*E1394*
|
||||
E1395 vim9class.txt /*E1395*
|
||||
E1395 vim9.txt /*E1395*
|
||||
E1396 vim9class.txt /*E1396*
|
||||
E1397 vim9class.txt /*E1397*
|
||||
E1398 vim9class.txt /*E1398*
|
||||
E1399 vim9class.txt /*E1399*
|
||||
E140 message.txt /*E140*
|
||||
E1400 vim9class.txt /*E1400*
|
||||
E1401 vim9class.txt /*E1401*
|
||||
E1402 vim9class.txt /*E1402*
|
||||
E1403 vim9class.txt /*E1403*
|
||||
E1404 vim9class.txt /*E1404*
|
||||
E1405 vim9class.txt /*E1405*
|
||||
@@ -4812,11 +4816,9 @@ E156 sign.txt /*E156*
|
||||
E1560 vim9.txt /*E1560*
|
||||
E1561 vim9.txt /*E1561*
|
||||
E1562 options.txt /*E1562*
|
||||
E1563 remote.txt /*E1563*
|
||||
E1564 remote.txt /*E1564*
|
||||
E1565 remote.txt /*E1565*
|
||||
E1566 remote.txt /*E1566*
|
||||
E1567 remote.txt /*E1567*
|
||||
E1568 options.txt /*E1568*
|
||||
E1569 builtin.txt /*E1569*
|
||||
E157 sign.txt /*E157*
|
||||
@@ -4826,6 +4828,9 @@ E1572 options.txt /*E1572*
|
||||
E1573 channel.txt /*E1573*
|
||||
E1574 channel.txt /*E1574*
|
||||
E1575 builtin.txt /*E1575*
|
||||
E1576 tagsrch.txt /*E1576*
|
||||
E1577 options.txt /*E1577*
|
||||
E1578 spell.txt /*E1578*
|
||||
E158 sign.txt /*E158*
|
||||
E159 sign.txt /*E159*
|
||||
E16 cmdline.txt /*E16*
|
||||
@@ -5315,7 +5320,6 @@ E610 editing.txt /*E610*
|
||||
E611 eval.txt /*E611*
|
||||
E612 sign.txt /*E612*
|
||||
E613 print.txt /*E613*
|
||||
E614 builtin.txt /*E614*
|
||||
E616 builtin.txt /*E616*
|
||||
E617 options.txt /*E617*
|
||||
E618 print.txt /*E618*
|
||||
@@ -6062,6 +6066,8 @@ TextChanged autocmd.txt /*TextChanged*
|
||||
TextChangedI autocmd.txt /*TextChangedI*
|
||||
TextChangedP autocmd.txt /*TextChangedP*
|
||||
TextChangedT autocmd.txt /*TextChangedT*
|
||||
TextPutPost autocmd.txt /*TextPutPost*
|
||||
TextPutPre autocmd.txt /*TextPutPre*
|
||||
TextYankPost autocmd.txt /*TextYankPost*
|
||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||
Tuple eval.txt /*Tuple*
|
||||
@@ -6328,6 +6334,8 @@ added-win32-GUI version5.txt /*added-win32-GUI*
|
||||
aff-dic-format spell.txt /*aff-dic-format*
|
||||
after-directory options.txt /*after-directory*
|
||||
aleph options.txt /*aleph*
|
||||
algol68 syntax.txt /*algol68*
|
||||
algol68_no_preludes syntax.txt /*algol68_no_preludes*
|
||||
alt intro.txt /*alt*
|
||||
alt-input debugger.txt /*alt-input*
|
||||
alt-movement gui_mac.txt /*alt-movement*
|
||||
@@ -7619,6 +7627,7 @@ ft-ada-options ft_ada.txt /*ft-ada-options*
|
||||
ft-ada-plugin ft_ada.txt /*ft-ada-plugin*
|
||||
ft-ada-syntax ft_ada.txt /*ft-ada-syntax*
|
||||
ft-ada-variables ft_ada.txt /*ft-ada-variables*
|
||||
ft-algol68-syntax syntax.txt /*ft-algol68-syntax*
|
||||
ft-ant-syntax syntax.txt /*ft-ant-syntax*
|
||||
ft-apache-syntax syntax.txt /*ft-apache-syntax*
|
||||
ft-arduino-plugin filetype.txt /*ft-arduino-plugin*
|
||||
@@ -7841,6 +7850,7 @@ ft_hare.txt ft_hare.txt /*ft_hare.txt*
|
||||
ft_mp.txt ft_mp.txt /*ft_mp.txt*
|
||||
ft_ps1.txt ft_ps1.txt /*ft_ps1.txt*
|
||||
ft_raku.txt ft_raku.txt /*ft_raku.txt*
|
||||
ft_recommended_style usr_51.txt /*ft_recommended_style*
|
||||
ft_rust.txt ft_rust.txt /*ft_rust.txt*
|
||||
ft_sql.txt ft_sql.txt /*ft_sql.txt*
|
||||
ftdetect filetype.txt /*ftdetect*
|
||||
@@ -8072,7 +8082,6 @@ g:netrw_ssh_browse_reject pi_netrw.txt /*g:netrw_ssh_browse_reject*
|
||||
g:netrw_ssh_cmd pi_netrw.txt /*g:netrw_ssh_cmd*
|
||||
g:netrw_sshport pi_netrw.txt /*g:netrw_sshport*
|
||||
g:netrw_timefmt pi_netrw.txt /*g:netrw_timefmt*
|
||||
g:netrw_tmpfile_escape pi_netrw.txt /*g:netrw_tmpfile_escape*
|
||||
g:netrw_uid pi_netrw.txt /*g:netrw_uid*
|
||||
g:netrw_use_noswf pi_netrw.txt /*g:netrw_use_noswf*
|
||||
g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
|
||||
@@ -8356,6 +8365,7 @@ gui-font gui.txt /*gui-font*
|
||||
gui-fontwide gui.txt /*gui-fontwide*
|
||||
gui-footer debugger.txt /*gui-footer*
|
||||
gui-fork gui_x11.txt /*gui-fork*
|
||||
gui-fullscreen gui.txt /*gui-fullscreen*
|
||||
gui-functions usr_41.txt /*gui-functions*
|
||||
gui-gnome gui_x11.txt /*gui-gnome*
|
||||
gui-gnome-session gui_x11.txt /*gui-gnome-session*
|
||||
@@ -8386,7 +8396,6 @@ gui-vert-scroll gui.txt /*gui-vert-scroll*
|
||||
gui-w32 gui_w32.txt /*gui-w32*
|
||||
gui-w32-cmdargs gui_w32.txt /*gui-w32-cmdargs*
|
||||
gui-w32-dialogs gui_w32.txt /*gui-w32-dialogs*
|
||||
gui-w32-fullscreen gui_w32.txt /*gui-w32-fullscreen*
|
||||
gui-w32-printing gui_w32.txt /*gui-w32-printing*
|
||||
gui-w32-start gui_w32.txt /*gui-w32-start*
|
||||
gui-w32-title-bar gui_w32.txt /*gui-w32-title-bar*
|
||||
@@ -8562,8 +8571,11 @@ hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
|
||||
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
||||
hl-PmenuShadow syntax.txt /*hl-PmenuShadow*
|
||||
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
||||
hl-Popup syntax.txt /*hl-Popup*
|
||||
hl-PopupBorder syntax.txt /*hl-PopupBorder*
|
||||
hl-PopupNotification syntax.txt /*hl-PopupNotification*
|
||||
hl-PopupSelected syntax.txt /*hl-PopupSelected*
|
||||
hl-PopupTitle syntax.txt /*hl-PopupTitle*
|
||||
hl-PreInsert syntax.txt /*hl-PreInsert*
|
||||
hl-Question syntax.txt /*hl-Question*
|
||||
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
|
||||
@@ -8597,6 +8609,7 @@ hl-User1 syntax.txt /*hl-User1*
|
||||
hl-User1..9 syntax.txt /*hl-User1..9*
|
||||
hl-User9 syntax.txt /*hl-User9*
|
||||
hl-VertSplit syntax.txt /*hl-VertSplit*
|
||||
hl-VertSplitNC syntax.txt /*hl-VertSplitNC*
|
||||
hl-Visual syntax.txt /*hl-Visual*
|
||||
hl-VisualNOS syntax.txt /*hl-VisualNOS*
|
||||
hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
||||
@@ -9951,6 +9964,7 @@ popt-option print.txt /*popt-option*
|
||||
popup popup.txt /*popup*
|
||||
popup-buffer popup.txt /*popup-buffer*
|
||||
popup-callback popup.txt /*popup-callback*
|
||||
popup-clipwindow popup.txt /*popup-clipwindow*
|
||||
popup-close popup.txt /*popup-close*
|
||||
popup-examples popup.txt /*popup-examples*
|
||||
popup-filter popup.txt /*popup-filter*
|
||||
@@ -10492,6 +10506,7 @@ shm-q options.txt /*shm-q*
|
||||
shm-r options.txt /*shm-r*
|
||||
shm-s options.txt /*shm-s*
|
||||
shm-t options.txt /*shm-t*
|
||||
shm-u options.txt /*shm-u*
|
||||
shm-w options.txt /*shm-w*
|
||||
shm-x options.txt /*shm-x*
|
||||
short-name-changed version4.txt /*short-name-changed*
|
||||
@@ -10534,6 +10549,7 @@ slow-fast-terminal term.txt /*slow-fast-terminal*
|
||||
slow-start starting.txt /*slow-start*
|
||||
slow-terminal term.txt /*slow-terminal*
|
||||
socket-interface channel.txt /*socket-interface*
|
||||
socketserver-address remote.txt /*socketserver-address*
|
||||
socketserver-clientserver remote.txt /*socketserver-clientserver*
|
||||
socketserver-differences remote.txt /*socketserver-differences*
|
||||
socketserver-name remote.txt /*socketserver-name*
|
||||
@@ -10718,7 +10734,9 @@ static-tag tagsrch.txt /*static-tag*
|
||||
status-line windows.txt /*status-line*
|
||||
statusmsg-variable eval.txt /*statusmsg-variable*
|
||||
stl-%! options.txt /*stl-%!*
|
||||
stl-%0{ options.txt /*stl-%0{*
|
||||
stl-%@ options.txt /*stl-%@*
|
||||
stl-%[FuncName] options.txt /*stl-%[FuncName]*
|
||||
stl-%{ options.txt /*stl-%{*
|
||||
str2blob() builtin.txt /*str2blob()*
|
||||
str2float() builtin.txt /*str2float()*
|
||||
@@ -11055,6 +11073,10 @@ tabpagebuflist() builtin.txt /*tabpagebuflist()*
|
||||
tabpagenr() builtin.txt /*tabpagenr()*
|
||||
tabpagewinnr() builtin.txt /*tabpagewinnr()*
|
||||
tabpanel tabpage.txt /*tabpanel*
|
||||
tabpanel-mouse tabpage.txt /*tabpanel-mouse*
|
||||
tabpanel-scroll tabpage.txt /*tabpanel-scroll*
|
||||
tabpanel_getinfo() builtin.txt /*tabpanel_getinfo()*
|
||||
tabpanel_scroll() builtin.txt /*tabpanel_scroll()*
|
||||
tag tagsrch.txt /*tag*
|
||||
tag-! tagsrch.txt /*tag-!*
|
||||
tag-binary-search tagsrch.txt /*tag-binary-search*
|
||||
@@ -11920,6 +11942,7 @@ viminfo-r options.txt /*viminfo-r*
|
||||
viminfo-read starting.txt /*viminfo-read*
|
||||
viminfo-read-write starting.txt /*viminfo-read-write*
|
||||
viminfo-s options.txt /*viminfo-s*
|
||||
viminfo-security starting.txt /*viminfo-security*
|
||||
viminfo-timestamp starting.txt /*viminfo-timestamp*
|
||||
viminfo-write starting.txt /*viminfo-write*
|
||||
vimrc starting.txt /*vimrc*
|
||||
@@ -11971,8 +11994,6 @@ waittime channel.txt /*waittime*
|
||||
warningmsg-variable eval.txt /*warningmsg-variable*
|
||||
wayland wayland.txt /*wayland*
|
||||
wayland-and-x11 wayland.txt /*wayland-and-x11*
|
||||
wayland-focus-steal wayland.txt /*wayland-focus-steal*
|
||||
wayland-gnome wayland.txt /*wayland-gnome*
|
||||
wayland-gui wayland.txt /*wayland-gui*
|
||||
wayland-persist wayland.txt /*wayland-persist*
|
||||
wayland-primary-selection wayland.txt /*wayland-primary-selection*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*tagsrch.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -579,6 +579,10 @@ ctags).
|
||||
have an absolute or relative path. It may contain environment
|
||||
variables and wildcards (although the use of wildcards is
|
||||
doubtful). It cannot contain a <Tab>.
|
||||
*E1576*
|
||||
Using a remote file via network protocol (e.g. using
|
||||
http://remote/file.txt) is not allowed unless 'tagsecure'
|
||||
is unset.
|
||||
{tagaddress} The Ex command that positions the cursor on the tag. It can
|
||||
be any Ex command, although restrictions apply (see
|
||||
|tag-security|). Posix only allows line numbers and search
|
||||
@@ -829,8 +833,9 @@ CTRL-W i Open a new window, with the cursor on the first line
|
||||
Like `[D` and `]D`, but search in [range] lines
|
||||
(default: whole file).
|
||||
See |:search-args| for [/] and [!].
|
||||
Note that `:dl` works like `:delete` with the "l"
|
||||
flag, not `:dlist`.
|
||||
Note: In legacy Vim script, `:dl` works like
|
||||
`:delete` with the "l" flag, not `:dlist`, whereas in
|
||||
|Vim9| script `:dl` does work like `:dlist`.
|
||||
|
||||
*[_CTRL-D*
|
||||
[ CTRL-D Jump to the first macro definition that contains the
|
||||
|
||||
@@ -965,6 +965,20 @@ term_start({cmd} [, {options}]) *term_start()*
|
||||
input and one output handle, with no separate handle for
|
||||
stderr.
|
||||
|
||||
Note: term_start() always uses RAW mode for its callbacks.
|
||||
"out_cb" and "err_cb" receive the raw chunk of data as read
|
||||
from the OS. A single callback invocation may contain
|
||||
multiple lines separated by NL, and (for stdout via a pty)
|
||||
each line may have a trailing CR from the line discipline
|
||||
(ONLCR). If per-line handling is desired, the callback must
|
||||
split "msg" on NL and strip the trailing CR itself.
|
||||
Example: >
|
||||
func Handle(ch, msg)
|
||||
for line in split(a:msg, "\n")
|
||||
echom substitute(line, '\r$', '', '')
|
||||
endfor
|
||||
endfunc
|
||||
<
|
||||
There are extra options:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the command name.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*textprop.txt* For Vim version 9.2. Last change: 2026 Apr 07
|
||||
*textprop.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -177,7 +177,9 @@ prop_add({lnum}, {col}, {props})
|
||||
When omitted "truncate" is used.
|
||||
Note that this applies to the individual text
|
||||
property, the 'wrap' option sets the overall
|
||||
behavior
|
||||
behavior. "wrap" only takes effect when the
|
||||
'wrap' option is set; with 'nowrap' the text
|
||||
is truncated at the right edge of the window.
|
||||
All fields except "type" are optional.
|
||||
|
||||
It is an error when both "length" and "end_lnum" or "end_col"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*todo.txt* For Vim version 9.2. Last change: 2026 Apr 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -421,8 +421,6 @@ more information.
|
||||
|
||||
Add an option to restrict 'incsearch' to not scroll the view. (Tavis Ormandy)
|
||||
|
||||
Remove SPACE_IN_FILENAME ? It is only used for completion.
|
||||
|
||||
When 'term' starts with "foot" then default t_TI and t_TE to the values used
|
||||
for the builtin xterm termcap.
|
||||
|
||||
@@ -2115,7 +2113,6 @@ es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
|
||||
|
||||
When $HOME contains special characters, such as a comma, escape them when used
|
||||
in an option. (Michael Hordijk, 2009 May 5)
|
||||
Turn "esc" argument of expand_env_esc() into string of chars to be escaped.
|
||||
|
||||
Should make 'ignorecase' global-local, so that it makes sense setting it from
|
||||
a modeline.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*userfunc.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*userfunc.txt* For Vim version 9.2. Last change: 2026 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -27,13 +27,13 @@ make them script-local. If you do use a global function then avoid obvious,
|
||||
short names. A good habit is to start the function name with the name of the
|
||||
script, e.g., "HTMLcolor()".
|
||||
|
||||
In legacy script it is also possible to use curly braces, see
|
||||
In legacy Vim script it is also possible to use curly braces, see
|
||||
|curly-braces-names|.
|
||||
|
||||
The |autoload| facility is useful to define a function only when it's called.
|
||||
|
||||
*local-function*
|
||||
A function local to a legacy script must start with "s:". A local script
|
||||
A function local to a legacy Vim script must start with "s:". A local script
|
||||
function can only be called from within the script and from functions, user
|
||||
commands and autocommands defined in the script. It is also possible to call
|
||||
the function from a mapping defined in the script, but then |<SID>| must be
|
||||
@@ -195,9 +195,19 @@ See |:verbose-cmd| for more information.
|
||||
When a function ends without an explicit ":return",
|
||||
the number 0 is returned.
|
||||
|
||||
In a :def function *E1095* is given if unreachable
|
||||
code follows after the `:return`.
|
||||
In legacy script there is no check for unreachable
|
||||
In |Vim9| script:
|
||||
- `:return` cannot be shortened, and
|
||||
- *E1095* is given if unreachable code follows after
|
||||
the `:return`. For example:
|
||||
>vim9
|
||||
vim9script
|
||||
var L: func = (): bool => {
|
||||
return false
|
||||
echo 'no' # E1095: Unreachable code after :return
|
||||
}
|
||||
echo L()
|
||||
<
|
||||
In legacy Vim script there is no check for unreachable
|
||||
lines, thus there is no warning if commands follow
|
||||
`:return`. Also, there is no check if the following
|
||||
line contains a valid command. Forgetting the line
|
||||
|
||||
+11
-1
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*usr_05.txt* For Vim version 9.2. Last change: 2026 May 11
|
||||
|
||||
|
||||
VIM USER MANUAL by Bram Moolenaar
|
||||
@@ -509,6 +509,16 @@ To highlight in visual mode, use: >
|
||||
To disable the effect of the plugin after it has been loaded: >
|
||||
au! hlyank
|
||||
|
||||
Additionally, the plugin can also highlight regions that are put using the
|
||||
|TextPutPost| autocommand. This is by default disabled and can be enabled
|
||||
using: >
|
||||
:let g:hlput_enable = v:true
|
||||
<
|
||||
The following configuration variables can be used are "g:hlput_hlgroup" and
|
||||
"g:hlput_duration", which have the same effect as their yank counterparts: >
|
||||
:let g:hlput_hlgroup = 'IncSearch'
|
||||
:let g:hlput_duration = 300
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
Adding the osc52 package *osc52-install* *package-osc52*
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
+12
-3
@@ -1,4 +1,4 @@
|
||||
*usr_20.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*usr_20.txt* For Vim version 9.2. Last change: 2026 Jun 02
|
||||
|
||||
|
||||
VIM USER MANUAL by Bram Moolenaar
|
||||
@@ -116,9 +116,18 @@ command. It's like deleting the ":" or "/" that the line starts with.
|
||||
*20.2* Command line abbreviations
|
||||
|
||||
Some of the ":" commands are really long. We already mentioned that
|
||||
":substitute" can be abbreviated to ":s". This is a generic mechanism, all
|
||||
":" commands can be abbreviated.
|
||||
":substitute" can be abbreviated to ":s". This is a generic mechanism, and
|
||||
most ":" commands can be abbreviated. However, in Vim9 script some commands
|
||||
cannot be shortened to improve readability - see |vim9-no-shorten|.
|
||||
|
||||
The builtin function |fullcommand()| can be used to return an abbreviated
|
||||
command's full name. For example, the following commands echo "edit", "echo",
|
||||
and "echowindow":
|
||||
>vim
|
||||
:echo fullcommand('e')
|
||||
:echo fullcommand('ec')
|
||||
:echo fullcommand('echow')
|
||||
<
|
||||
How short can a command get? There are 26 letters, and many more commands.
|
||||
For example, ":set" also starts with ":s", but ":s" doesn't start a ":set"
|
||||
command. Instead ":set" can be abbreviated to ":se".
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_30.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*usr_30.txt* For Vim version 9.2. Last change: 2026 May 23
|
||||
|
||||
|
||||
VIM USER MANUAL by Bram Moolenaar
|
||||
@@ -531,9 +531,9 @@ they do when using only tab characters.
|
||||
Vim 5.4 introduced the 'softtabstop' option. On top of the (hard) tab stops
|
||||
used to display the horizontal tab characters in the text, Vim adds extra
|
||||
soft tab stops dedicated only to the cursor. When 'softtabstop' is set to a
|
||||
positive value, and the <Tab> key will push the cursor to the next soft tab
|
||||
stop. Vim will insert the correct combination of tab characters and spaces to
|
||||
make the effect visually. Likewise pressing <BS> will have the cursor try to
|
||||
positive value, the <Tab> key will push the cursor to the next soft tab stop.
|
||||
Vim will insert the correct combination of tab characters and spaces to
|
||||
achieve this effect. Likewise pressing <BS> will have the cursor try to
|
||||
reach the nearest soft tab stop. The following example uses
|
||||
`:set softtabstop=4`
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.2. Last change: 2026 Feb 16
|
||||
*usr_41.txt* For Vim version 9.2. Last change: 2026 Apr 28
|
||||
|
||||
|
||||
VIM USER MANUAL by Bram Moolenaar
|
||||
@@ -1081,6 +1081,8 @@ Buffers, windows and the argument list:
|
||||
tabpagebuflist() return List of buffers in a tab page
|
||||
tabpagenr() get the number of a tab page
|
||||
tabpagewinnr() like winnr() for a specified tab page
|
||||
tabpanel_getinfo() get current state of the tabpanel
|
||||
tabpanel_scroll() scroll the tabpanel
|
||||
winnr() get the window number for the current window
|
||||
bufwinid() get the window ID of a specific buffer
|
||||
bufwinnr() get the window number of a specific buffer
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user