Compare commits
214 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7292c0cb15 | ||
|
|
1c58019a82 | ||
|
|
83cb8174c8 | ||
|
|
6af20a9be3 | ||
|
|
f5bfc48c05 | ||
|
|
f57c065e75 | ||
|
|
ff3d4b2d49 | ||
|
|
fb08192ca7 | ||
|
|
fa8b7db99a | ||
|
|
c3e71d4da6 | ||
|
|
a74d5503d5 | ||
|
|
612f63bf81 | ||
|
|
be51e90497 | ||
|
|
355db99d12 | ||
|
|
9240369774 | ||
|
|
6220bbad4e | ||
|
|
910bfd5d38 | ||
|
|
e3302cf2b1 | ||
|
|
46755e6b52 | ||
|
|
b9ffbf57f8 | ||
|
|
fa9753a721 | ||
|
|
fbe4a8f5c0 | ||
|
|
411ae580a9 | ||
|
|
ffc89e47d0 | ||
|
|
c29b533cf1 | ||
|
|
c5cb6b2ee4 | ||
|
|
c25368ba14 | ||
|
|
cf2642fc72 | ||
|
|
35cfc3d3c4 | ||
|
|
3accf046ec | ||
|
|
e380b5cbba | ||
|
|
e36a931d9b | ||
|
|
f102f4c2e8 | ||
|
|
bcd5995b40 | ||
|
|
32f49738d1 | ||
|
|
a3422aa317 | ||
|
|
031f2273cb | ||
|
|
ec270a5f55 | ||
|
|
1343681aba | ||
|
|
229f79c168 | ||
|
|
7bc988067e | ||
|
|
dd776dd5f0 | ||
|
|
362be6ba27 | ||
|
|
d847b241f5 | ||
|
|
7dfc9e6121 | ||
|
|
69e6ab6db3 | ||
|
|
5c3d1e3258 | ||
|
|
fa3b1043c6 | ||
|
|
31b78cce6e | ||
|
|
b753d80e59 | ||
|
|
926e2af42e | ||
|
|
16341e7090 | ||
|
|
92f68e26ec | ||
|
|
eac45c558e | ||
|
|
2cb42efc18 | ||
|
|
187df69fd1 | ||
|
|
f39de60608 | ||
|
|
e125ee4b9f | ||
|
|
9919085491 | ||
|
|
7938c40b34 | ||
|
|
67fe77d272 | ||
|
|
2398460232 | ||
|
|
3041cf67d3 | ||
|
|
5ecb452f5b | ||
|
|
4e3df44aa2 | ||
|
|
fe8508eda0 | ||
|
|
6924eb81f4 | ||
|
|
baa8c90cc0 | ||
|
|
8167799651 | ||
|
|
54081f0ce0 | ||
|
|
cb3b752f95 | ||
|
|
13960a8779 | ||
|
|
0ed11ba223 | ||
|
|
ded2b41326 | ||
|
|
7e93d4c617 | ||
|
|
aee34ef23e | ||
|
|
1d96caaa4b | ||
|
|
98800979dc | ||
|
|
e9a27ef373 | ||
|
|
8f09684569 | ||
|
|
cca5dea76e | ||
|
|
7ddba51635 | ||
|
|
cfe502c575 | ||
|
|
06fdfa11c5 | ||
|
|
b53d4fb63e | ||
|
|
ad503fe927 | ||
|
|
0ac1eb3555 | ||
|
|
1c2b258250 | ||
|
|
40daa1358c | ||
|
|
031919c7ac | ||
|
|
fbbaa6ebe9 | ||
|
|
470317f78b | ||
|
|
839fd94265 | ||
|
|
b156588eb7 | ||
|
|
f35bd76b31 | ||
|
|
32f2bb6e1e | ||
|
|
cf7f01252f | ||
|
|
babdb0554a | ||
|
|
d62377386c | ||
|
|
2137710b43 | ||
|
|
d2079cff48 | ||
|
|
cbe53191d0 | ||
|
|
10f69298b4 | ||
|
|
4ec93fec12 | ||
|
|
836b87d699 | ||
|
|
906f306812 | ||
|
|
f4b1a60dd1 | ||
|
|
3cbd7f18e3 | ||
|
|
3956c5b53c | ||
|
|
c98250377d | ||
|
|
829eda7d38 | ||
|
|
d4dbf822dc | ||
|
|
cf665ccd37 | ||
|
|
6f6c0dba9f | ||
|
|
eded33621b | ||
|
|
bc27b6e34f | ||
|
|
ab2fe65fbf | ||
|
|
0e59e67a63 | ||
|
|
c8ce81b0dc | ||
|
|
d82f3cae39 | ||
|
|
5c84d12df1 | ||
|
|
ec032de646 | ||
|
|
06a41ad084 | ||
|
|
9b171bdfd6 | ||
|
|
b0e19f9e1b | ||
|
|
96a0b2a6d5 | ||
|
|
f9f53f5a8f | ||
|
|
520a2c7852 | ||
|
|
0b540c6f38 | ||
|
|
7517a8cadf | ||
|
|
b71f1309a2 | ||
|
|
2525573de7 | ||
|
|
adcfb6caeb | ||
|
|
e370141bf4 | ||
|
|
5ce1e4ad4a | ||
|
|
b87620466c | ||
|
|
2ffb4d0298 | ||
|
|
00b927b295 | ||
|
|
2afdb3a65b | ||
|
|
9cd6d82fbb | ||
|
|
9adb310cf3 | ||
|
|
88d41ab270 | ||
|
|
c54a8eb258 | ||
|
|
221927b2bf | ||
|
|
ba73766788 | ||
|
|
8daae6fea9 | ||
|
|
d22f43111b | ||
|
|
2f5a8c0b5b | ||
|
|
d84cbdb5a3 | ||
|
|
9aa120f7ad | ||
|
|
b8d5c85099 | ||
|
|
2a6be83512 | ||
|
|
d211558044 | ||
|
|
6fa62085ff | ||
|
|
f16d8b2dda | ||
|
|
3e50a28a03 | ||
|
|
6099db9a60 | ||
|
|
e74ec3f523 | ||
|
|
c1e019247d | ||
|
|
df68419ba0 | ||
|
|
a359c9c25e | ||
|
|
7fb90815a0 | ||
|
|
8293574c8b | ||
|
|
e4e4d1c381 | ||
|
|
7f518e044f | ||
|
|
9301b437bc | ||
|
|
de8f8f732a | ||
|
|
7b6add0b4a | ||
|
|
2f4aa50c91 | ||
|
|
71f17fdd5f | ||
|
|
4ac995bf93 | ||
|
|
b1d6db0be5 | ||
|
|
20393bc02d | ||
|
|
1c2f475850 | ||
|
|
583f5aee96 | ||
|
|
f13c856154 | ||
|
|
c6336acfe3 | ||
|
|
649a237bc8 | ||
|
|
53fed23cb7 | ||
|
|
e9a369f9c3 | ||
|
|
a580761a45 | ||
|
|
bb8e5ddb97 | ||
|
|
1054b18291 | ||
|
|
f2b16986a1 | ||
|
|
90e52490b3 | ||
|
|
0dc9a0bc60 | ||
|
|
0980e41161 | ||
|
|
722fbd1554 | ||
|
|
532c5aec6f | ||
|
|
aa68f8a095 | ||
|
|
ce80c59bfd | ||
|
|
c5aad6cca5 | ||
|
|
5a307c361c | ||
|
|
e06b2aea43 | ||
|
|
88d75934c3 | ||
|
|
757c37da6d | ||
|
|
29d11a8326 | ||
|
|
45377e2096 | ||
|
|
7d8e7df551 | ||
|
|
4f9b1243e3 | ||
|
|
d9b82cfe84 | ||
|
|
35cb38d34b | ||
|
|
14dec7b204 | ||
|
|
9943d4790e | ||
|
|
06774a271a | ||
|
|
4dd17a90ee | ||
|
|
08283b28af | ||
|
|
f9f4e27ad7 | ||
|
|
052b86ba63 | ||
|
|
721be7fd0b | ||
|
|
038be2701d | ||
|
|
9d5487f6fd | ||
|
|
20e46fa65b | ||
|
|
7746348c5d |
@@ -13,3 +13,5 @@
|
||||
# change indentation style of netrw plugin
|
||||
c363ca1ecd1f8db03663ef98dcf41eeacc3c22c7
|
||||
c673b805ad80d0aef07e745d412a2bf298ba1c07
|
||||
# fix indentation style in insexpand.c v9.1.1352
|
||||
355db99d12a89f05765948b33eecd6d9733e16bb
|
||||
|
||||
17
.github/MAINTAINERS
vendored
17
.github/MAINTAINERS
vendored
@@ -63,6 +63,7 @@ runtime/compiler/eruby.vim @dkearns
|
||||
runtime/compiler/fbc.vim @dkearns
|
||||
runtime/compiler/gawk.vim @dkearns
|
||||
runtime/compiler/gjs.vim @dkearns
|
||||
runtime/compiler/gleam.vim @kirillmorozov
|
||||
runtime/compiler/gm2.vim @dkearns
|
||||
runtime/compiler/go.vim @dbarnett
|
||||
runtime/compiler/groff.vim @Konfekt
|
||||
@@ -149,6 +150,7 @@ runtime/ftplugin/csv.vim @habamax
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/cuda.vim @ribru17
|
||||
runtime/ftplugin/dart.vim @ribru17
|
||||
runtime/ftplugin/dax.vim @anarion80
|
||||
runtime/ftplugin/deb822sources.vim @jamessan
|
||||
runtime/ftplugin/debchangelog.vim @jamessan
|
||||
runtime/ftplugin/debcontrol.vim @jamessan
|
||||
@@ -179,12 +181,13 @@ runtime/ftplugin/gitconfig.vim @tpope
|
||||
runtime/ftplugin/gitignore.vim @ObserverOfTime
|
||||
runtime/ftplugin/gitrebase.vim @tpope
|
||||
runtime/ftplugin/gitsendemail.vim @tpope
|
||||
runtime/ftplugin/gleam.vim @trilowy
|
||||
runtime/ftplugin/gleam.vim @kirillmorozov
|
||||
runtime/ftplugin/go.vim @dbarnett
|
||||
runtime/ftplugin/goaccess.vim @meonkeys
|
||||
runtime/ftplugin/gomod.vim @yu-yk
|
||||
runtime/ftplugin/gprof.vim @dpelle
|
||||
runtime/ftplugin/graphql.vim @jparise
|
||||
runtime/ftplugin/groff.vim @e-kwsm
|
||||
runtime/ftplugin/gyp.vim @ObserverOfTime
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hare.vim @selenebun
|
||||
@@ -221,6 +224,7 @@ runtime/ftplugin/ldapconf.vim @ribru17
|
||||
runtime/ftplugin/leo.vim @ribru17
|
||||
runtime/ftplugin/less.vim @genoma
|
||||
runtime/ftplugin/lex.vim @ribru17
|
||||
runtime/ftplugin/lf.vim @andis-sprinkis
|
||||
runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/lua.vim @dkearns
|
||||
runtime/ftplugin/lc.vim @ribru17
|
||||
@@ -229,6 +233,7 @@ runtime/ftplugin/m17ndb.vim @dseomn
|
||||
runtime/ftplugin/m3build.vim @dkearns
|
||||
runtime/ftplugin/m3quake.vim @dkearns
|
||||
runtime/ftplugin/markdown.vim @tpope
|
||||
runtime/ftplugin/mbsync.vim @fymyte
|
||||
runtime/ftplugin/mediawiki.vim @avidseeker
|
||||
runtime/ftplugin/meson.vim @Liambeguin
|
||||
runtime/ftplugin/modula2.vim @dkearns
|
||||
@@ -254,6 +259,7 @@ runtime/ftplugin/plsql.vim @lee-lindley
|
||||
runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
runtime/ftplugin/pq.vim @anarion80
|
||||
runtime/ftplugin/prisma.vim @ribru17
|
||||
runtime/ftplugin/proto.vim @Limero
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
@@ -267,6 +273,7 @@ runtime/ftplugin/qml.vim @ChaseKnowlden
|
||||
runtime/ftplugin/racket.vim @benknoble
|
||||
runtime/ftplugin/rasi.vim @fymyte
|
||||
runtime/ftplugin/readline.vim @dkearns
|
||||
runtime/ftplugin/remind.vim @joereynolds
|
||||
runtime/ftplugin/rescript.vim @ribru17
|
||||
runtime/ftplugin/routeros.vim @zainin
|
||||
runtime/ftplugin/rst.vim @marshallward
|
||||
@@ -412,6 +419,8 @@ runtime/indent/xml.vim @chrisbra
|
||||
runtime/indent/zsh.vim @chrisbra
|
||||
runtime/keymap/armenian-eastern_utf-8.vim @blinskey
|
||||
runtime/keymap/armenian-western_utf-8.vim @blinskey
|
||||
runtime/keymap/brazilian_portuguese-abnt.vim @LuMarquesIlva
|
||||
runtime/keymap/brazilian_portuguese-compact.vim @LuMarquesIlva
|
||||
runtime/keymap/russian-typograph.vim @RestorerZ
|
||||
runtime/keymap/tamil_tscii.vim @yegappan
|
||||
runtime/keymap/ukrainian-enhanced.vim @Dolfost
|
||||
@@ -457,6 +466,7 @@ runtime/syntax/cucumber.vim @tpope
|
||||
runtime/syntax/d.vim @JesseKPhillips
|
||||
runtime/syntax/dart.vim @pr3d4t0r
|
||||
runtime/syntax/datascript.vim @dpelle
|
||||
runtime/syntax/dax.vim @anarion80
|
||||
runtime/syntax/deb822sources.vim @jamessan
|
||||
runtime/syntax/debchangelog.vim @jamessan
|
||||
runtime/syntax/debcontrol.vim @jamessan
|
||||
@@ -492,6 +502,7 @@ runtime/syntax/gitconfig.vim @tpope
|
||||
runtime/syntax/gitignore.vim @ObserverOfTime
|
||||
runtime/syntax/gitolite.vim @sitaramc
|
||||
runtime/syntax/gitrebase.vim @tpope
|
||||
runtime/syntax/gleam.vim @kirillmorozov
|
||||
runtime/syntax/glsl.vim @gpanders
|
||||
runtime/syntax/go.vim @bhcleek
|
||||
runtime/syntax/goaccess.vim @meonkeys
|
||||
@@ -547,6 +558,7 @@ runtime/syntax/mailcap.vim @dkearns
|
||||
runtime/syntax/make.vim @rohieb
|
||||
runtime/syntax/mallard.vim @jhradilek
|
||||
runtime/syntax/markdown.vim @tpope
|
||||
runtime/syntax/mbsync.vim @fymyte
|
||||
runtime/syntax/mason.vim @petdance
|
||||
runtime/syntax/mediawiki.vim @avidseeker
|
||||
runtime/syntax/meson.vim @Liambeguin
|
||||
@@ -562,6 +574,8 @@ runtime/syntax/ninja.vim @nico
|
||||
runtime/syntax/nix.vim @equill
|
||||
runtime/syntax/nroff.vim @jmarshall
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/odin.vim @habamax
|
||||
runtime/syntax/omnimark.vim @kennypete
|
||||
runtime/syntax/ondir.vim @jparise
|
||||
runtime/syntax/opencl.vim @Freed-Wu
|
||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||
@@ -576,6 +590,7 @@ runtime/syntax/plsql.vim @lee-lindley
|
||||
runtime/syntax/pod.vim @petdance
|
||||
runtime/syntax/poefilter.vim @ObserverOfTime
|
||||
runtime/syntax/postscr.vim @mrdubya
|
||||
runtime/syntax/pq.vim @anarion80
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
runtime/syntax/progress.vim @rdnlsmith
|
||||
runtime/syntax/prolog.vim @XVilka
|
||||
|
||||
36
.github/workflows/ci.yml
vendored
36
.github/workflows/ci.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
GCC_VER: 13
|
||||
GCC_VER: 14
|
||||
CLANG_VER: 20
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
@@ -29,6 +29,7 @@ jobs:
|
||||
LOG_DIR: ${{ github.workspace }}/logs
|
||||
TERM: xterm
|
||||
DISPLAY: ':99'
|
||||
WAYLAND_DISPLAY: 'wayland-1'
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
strategy:
|
||||
@@ -114,6 +115,7 @@ jobs:
|
||||
run: |
|
||||
# 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 \
|
||||
libgtk2.0-dev:${{ matrix.architecture }} \
|
||||
@@ -123,6 +125,7 @@ jobs:
|
||||
libxt-dev:${{ matrix.architecture }} \
|
||||
locales-all \
|
||||
software-properties-common \
|
||||
sway \
|
||||
)
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
LUA_VER=${{ matrix.lua_ver || '5.4' }}
|
||||
@@ -143,13 +146,15 @@ jobs:
|
||||
libattr1-dev
|
||||
)
|
||||
fi
|
||||
|
||||
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y "${PKGS[@]}"
|
||||
|
||||
- name: Install gcc-${{ env.GCC_VER }}
|
||||
if: matrix.compiler == 'gcc'
|
||||
run: |
|
||||
# ubuntu-toolchain-r/test PPA for gcc-13 compiler
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
# 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 }}:${{ matrix.architecture }}
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100
|
||||
@@ -231,6 +236,8 @@ jobs:
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
sudo usermod -a -G audio "${USER}"
|
||||
sudo bash ci/setup-xvfb.sh
|
||||
# Sway requires user session
|
||||
bash ci/setup-sway.sh
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(matrix.extra, 'unittests')
|
||||
@@ -266,6 +273,12 @@ jobs:
|
||||
"${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=['gettext', 'sodium', 'sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
fi
|
||||
|
||||
- name: Test
|
||||
if: matrix.architecture != 'arm64'
|
||||
@@ -349,7 +362,7 @@ jobs:
|
||||
if: matrix.runner == 'macos-15'
|
||||
run: |
|
||||
# Xcode 16 has compiler bugs which are fixed in 16.2+
|
||||
sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
|
||||
sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
@@ -392,6 +405,12 @@ jobs:
|
||||
"${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: |
|
||||
@@ -608,11 +627,13 @@ jobs:
|
||||
DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
|
||||
DYNAMIC_PYTHON3_STABLE_ABI=%PYTHON3_STABLE% ^
|
||||
DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR%
|
||||
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 }}
|
||||
GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^
|
||||
CI_FLAGS=/we4267
|
||||
)
|
||||
|
||||
- name: Build (MinGW)
|
||||
@@ -663,6 +684,11 @@ jobs:
|
||||
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
|
||||
|
||||
5
.github/workflows/coverity.yml
vendored
5
.github/workflows/coverity.yml
vendored
@@ -9,7 +9,7 @@ permissions:
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
env:
|
||||
CC: gcc
|
||||
@@ -36,7 +36,6 @@ jobs:
|
||||
gettext \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python2-dev \
|
||||
python3-dev \
|
||||
liblua5.4-dev \
|
||||
lua5.4 \
|
||||
@@ -53,7 +52,7 @@ jobs:
|
||||
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
|
||||
(
|
||||
echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
|
||||
echo "CONFOPT=--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
) >> $GITHUB_ENV
|
||||
|
||||
- name: Configure
|
||||
|
||||
@@ -21,6 +21,31 @@ Contributions will be distributed with Vim under the Vim license. Providing a
|
||||
change to be included implies that you agree with this and your contribution
|
||||
does not cause us trouble with trademarks or patents. There is no CLA to sign.
|
||||
|
||||
## Signing-off commits
|
||||
|
||||
While not required, it's recommended to use **Signed-off commits** to ensure
|
||||
transparency, accountability, and compliance with open-source best practices.
|
||||
Signed-off commits follow the [Developer Certificate of Origin (DCO)][15],
|
||||
which confirms that contributors have the right to submit their changes under
|
||||
the project's license. This process adds a `Signed-off-by` line to commit
|
||||
messages, verifying that the contributor agrees to the project's licensing
|
||||
terms. To sign off a commit, simply use the -s flag when committing:
|
||||
|
||||
```sh
|
||||
git commit -s
|
||||
```
|
||||
|
||||
This ensures that every contribution is properly documented and traceable,
|
||||
aligning with industry standards used in projects like the Linux Kernel or
|
||||
the git project. By making Signed-off commits a standard practice, we help
|
||||
maintain a legally compliant and well-governed codebase while fostering trust
|
||||
within our contributor community.
|
||||
|
||||
When merging PRs into Vim, the current maintainer @chrisbra usually adds missing
|
||||
`Signed-off-by` trailers for the author user name and email address as well for
|
||||
anybody that explicitly *ACK*s a pull request as a statement that those
|
||||
approvers are happy with that particular change.
|
||||
|
||||
# Reporting issues
|
||||
|
||||
We use GitHub issues, but that is not a requirement. Writing to the Vim
|
||||
@@ -46,7 +71,7 @@ Or open [the todo file][todo list] on GitHub to see the latest version.
|
||||
# Syntax, indent and other runtime files
|
||||
|
||||
The latest version of these files can be obtained from the repository.
|
||||
They are usually not updated with numbered patches. However, they may
|
||||
They are usually not updated with numbered patches. However, they may
|
||||
or may not work with older Vim releases (since they may contain new features).
|
||||
|
||||
If you find a problem with one of these files or have a suggestion for
|
||||
@@ -113,3 +138,4 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
|
||||
[12]: https://github.com/vim/vim/blob/master/src/testdir/test_filetype.vim
|
||||
[13]: https://github.com/vim/vim/blob/master/runtime/doc/filetype.txt
|
||||
[14]: https://github.com/vim/vim/blob/master/runtime/doc/syntax.txt
|
||||
[15]: https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin
|
||||
|
||||
3
Filelist
3
Filelist
@@ -23,7 +23,9 @@ SRC_ALL = \
|
||||
ci/appveyor.bat \
|
||||
ci/config.mk*.sed \
|
||||
ci/if_ver*.vim \
|
||||
ci/if_feat_check.vim \
|
||||
ci/setup-xvfb.sh \
|
||||
ci/setup-sway.sh \
|
||||
ci/remove_snap.sh \
|
||||
src/Make_all.mak \
|
||||
src/README.md \
|
||||
@@ -862,6 +864,7 @@ RT_SCRIPTS = \
|
||||
runtime/indent/testdir/*.vim \
|
||||
runtime/indent/testdir/*.in \
|
||||
runtime/indent/testdir/*.ok \
|
||||
runtime/indent/testdir/tools/* \
|
||||
runtime/ftplugin/*.vim \
|
||||
runtime/ftplugin/logtalk.dict \
|
||||
runtime/ftplugin/README.txt \
|
||||
|
||||
@@ -71,7 +71,7 @@ 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%
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
if not exist vim.exe (
|
||||
echo Build failure.
|
||||
exit 1
|
||||
@@ -85,11 +85,11 @@ if "%FEATURE%" == "HUGE" (
|
||||
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%
|
||||
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%
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
)
|
||||
if not exist gvim.exe (
|
||||
echo Build failure.
|
||||
|
||||
15
ci/if_feat_check.vim
Normal file
15
ci/if_feat_check.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
if 1 " This prevents it from being run in tiny versions
|
||||
" Check for required features
|
||||
if exists("g:required")
|
||||
for feature in g:required
|
||||
if !has(feature)
|
||||
echo "Error: Feature '" .. feature .. "' not found"
|
||||
echo ''
|
||||
cquit
|
||||
endif
|
||||
endfor
|
||||
echo "\nChecked features: " .. string(g:required)
|
||||
echo ''
|
||||
endif
|
||||
endif
|
||||
" vim: sts=2 sw=2 et
|
||||
@@ -1,6 +1,6 @@
|
||||
" Print all interface versions for Ubuntu. Part 1.
|
||||
" Print all interface versions. Part 1.
|
||||
|
||||
if 1
|
||||
if 1 " This prevents it from being run in tiny versions
|
||||
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||
|
||||
echo "*** Interface versions ***\n"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
" Print py3 interface versions for Ubuntu. Part 2.
|
||||
" Print py3 interface versions. Part 2.
|
||||
" This is done separately from part 1 because Vim cannot concurrently load
|
||||
" Python 2 and 3 together.
|
||||
|
||||
if 1
|
||||
if 1 " This prevents it from being run in tiny versions
|
||||
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||
|
||||
echo 'Python 3:'
|
||||
|
||||
7
ci/setup-sway.sh
Normal file
7
ci/setup-sway.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Using a systemd user service doesn't work because it seems like github actions
|
||||
# doesn't support user sessions? Just run sway in the background and disown it.
|
||||
WLR_BACKENDS=headless sway &
|
||||
disown
|
||||
109
runtime/autoload/dist/ft.vim
vendored
109
runtime/autoload/dist/ft.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 25
|
||||
# Last Change: 2025 Apr 21
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -203,19 +203,36 @@ export def FTlpc()
|
||||
setf c
|
||||
enddef
|
||||
|
||||
export def FTheader()
|
||||
if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
|
||||
if exists("g:c_syntax_for_h")
|
||||
setf objc
|
||||
else
|
||||
setf objcpp
|
||||
# Searches within the first `maxlines` lines of the file for distinctive
|
||||
# Objective-C or C++ syntax and returns the appropriate filetype. Returns a
|
||||
# null_string if the search was inconclusive.
|
||||
def CheckObjCOrCpp(maxlines = 100): string
|
||||
var n = 1
|
||||
while n < maxlines && n <= line('$')
|
||||
const line = getline(n)
|
||||
if line =~ '\v^\s*\@%(class|interface|end)>'
|
||||
return 'objcpp'
|
||||
elseif line =~ '\v^\s*%(class|namespace|template|using)>'
|
||||
return 'cpp'
|
||||
endif
|
||||
elseif exists("g:c_syntax_for_h")
|
||||
++n
|
||||
endwhile
|
||||
return null_string
|
||||
enddef
|
||||
|
||||
# Determines whether a *.h file is C, C++, Ch, or Objective-C/Objective-C++.
|
||||
export def FTheader()
|
||||
if exists('g:filetype_h')
|
||||
execute $'setf {g:filetype_h}'
|
||||
elseif exists('g:c_syntax_for_h')
|
||||
setf c
|
||||
elseif exists("g:ch_syntax_for_h")
|
||||
elseif exists('g:ch_syntax_for_h')
|
||||
setf ch
|
||||
else
|
||||
setf cpp
|
||||
# Search the first 100 lines of the file for distinctive Objective-C or C++
|
||||
# syntax and set the filetype accordingly. Otherwise, use C as the default
|
||||
# filetype.
|
||||
execute $'setf {CheckObjCOrCpp() ?? 'c'}'
|
||||
endif
|
||||
enddef
|
||||
|
||||
@@ -557,17 +574,47 @@ export def FTm()
|
||||
enddef
|
||||
|
||||
export def FTmake()
|
||||
# Check if it is a Microsoft Makefile
|
||||
unlet! b:make_microsoft
|
||||
# Check if it is a BSD, GNU, or Microsoft Makefile
|
||||
unlet! b:make_flavor
|
||||
|
||||
# 1. filename
|
||||
if expand('%:t') == 'BSDmakefile'
|
||||
b:make_flavor = 'bsd'
|
||||
setf make
|
||||
return
|
||||
elseif expand('%:t') == 'GNUmakefile'
|
||||
b:make_flavor = 'gnu'
|
||||
setf make
|
||||
return
|
||||
endif
|
||||
|
||||
# 2. user's setting
|
||||
if exists('g:make_flavor')
|
||||
b:make_flavor = g:make_flavor
|
||||
setf make
|
||||
return
|
||||
elseif get(g:, 'make_microsoft')
|
||||
echom "make_microsoft is deprecated; try g:make_flavor = 'microsoft' instead"
|
||||
b:make_flavor = 'microsoft'
|
||||
setf make
|
||||
return
|
||||
endif
|
||||
|
||||
# 3. try to detect a flavor from file content
|
||||
var n = 1
|
||||
while n < 1000 && n <= line('$')
|
||||
var line = getline(n)
|
||||
if line =~? '^\s*!\s*\(ifn\=\(def\)\=\|include\|message\|error\)\>'
|
||||
b:make_microsoft = 1
|
||||
b:make_flavor = 'microsoft'
|
||||
break
|
||||
elseif line =~ '^ *ifn\=\(eq\|def\)\>' || line =~ '^ *[-s]\=include\s'
|
||||
elseif line =~ '^\.\%(export\|error\|for\|if\%(n\=\%(def\|make\)\)\=\|info\|warning\)\>'
|
||||
b:make_flavor = 'bsd'
|
||||
break
|
||||
elseif line =~ '^ *\w\+\s*[!?:+]='
|
||||
elseif line =~ '^ *\%(ifn\=\%(eq\|def\)\|define\|override\)\>'
|
||||
b:make_flavor = 'gnu'
|
||||
break
|
||||
elseif line =~ '\$[({][a-z-]\+\s\+\S\+' # a function call, e.g. $(shell pwd)
|
||||
b:make_flavor = 'gnu'
|
||||
break
|
||||
endif
|
||||
n += 1
|
||||
@@ -592,14 +639,19 @@ export def FTmms()
|
||||
setf mmix
|
||||
enddef
|
||||
|
||||
# This function checks if one of the first five lines start with a dot. In
|
||||
# that case it is probably an nroff file: 'filetype' is set and 1 is returned.
|
||||
# This function checks if one of the first five lines start with a typical
|
||||
# nroff pattern in man files. In that case it is probably an nroff file:
|
||||
# 'filetype' is set and 1 is returned.
|
||||
export def FTnroff(): number
|
||||
if getline(1)[0] .. getline(2)[0] .. getline(3)[0]
|
||||
.. getline(4)[0] .. getline(5)[0] =~ '\.'
|
||||
setf nroff
|
||||
return 1
|
||||
endif
|
||||
var n = 1
|
||||
while n <= 5
|
||||
var line = getline(n)
|
||||
if line =~ '^\%([.'']\s*\%(TH\|D[dt]\|S[Hh]\|d[es]1\?\|so\)\s\+\S\|[.'']\s*ig\>\|\%([.'']\s*\)\?\\"\)'
|
||||
setf nroff
|
||||
return 1
|
||||
endif
|
||||
n += 1
|
||||
endwhile
|
||||
return 0
|
||||
enddef
|
||||
|
||||
@@ -875,16 +927,16 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if setft && expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return ''
|
||||
endif
|
||||
if name =~ '\<csh\>'
|
||||
if name =~ '^csh$' || name =~ '^#!.\{-2,}\<csh\>'
|
||||
# Some .sh scripts contain #!/bin/csh.
|
||||
return SetFileTypeShell("csh", setft)
|
||||
elseif name =~ '\<tcsh\>'
|
||||
elseif name =~ '^tcsh$' || name =~ '^#!.\{-2,}\<tcsh\>'
|
||||
# Some .sh scripts contain #!/bin/tcsh.
|
||||
return SetFileTypeShell("tcsh", setft)
|
||||
elseif name =~ '\<zsh\>'
|
||||
elseif name =~ '^zsh$' || name =~ '^#!.\{-2,}\<zsh\>'
|
||||
# Some .sh scripts contain #!/bin/zsh.
|
||||
return SetFileTypeShell("zsh", setft)
|
||||
elseif name =~ '\<ksh\>'
|
||||
elseif name =~ '^ksh$' || name =~ '^#!.\{-2,}\<ksh\>'
|
||||
b:is_kornshell = 1
|
||||
if exists("b:is_bash")
|
||||
unlet b:is_bash
|
||||
@@ -892,7 +944,8 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif exists("g:bash_is_sh") || name =~ '\<bash\>' || name =~ '\<bash2\>'
|
||||
elseif exists("g:bash_is_sh") || name =~ '^bash2\=$' ||
|
||||
\ name =~ '^#!.\{-2,}\<bash2\=\>'
|
||||
b:is_bash = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
@@ -900,7 +953,7 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif name =~ '\<sh\>' || name =~ '\<dash\>'
|
||||
elseif name =~ '^\%(da\)\=sh$' || name =~ '^#!.\{-2,}\<\%(da\)\=sh\>'
|
||||
# Ubuntu links "sh" to "dash", thus it is expected to work the same way
|
||||
b:is_sh = 1
|
||||
if exists("b:is_kornshell")
|
||||
|
||||
7
runtime/autoload/dist/script.vim
vendored
7
runtime/autoload/dist/script.vim
vendored
@@ -4,7 +4,7 @@ vim9script
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 20
|
||||
# Last Change: 2025 Apr 24
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
export def DetectFiletype()
|
||||
@@ -26,8 +26,9 @@ def DetectFromHashBang(firstline: string)
|
||||
# "#!/usr/bin/bash" to make matching easier.
|
||||
# Recognize only a few {options} that are commonly used.
|
||||
if line1 =~ '^#!\s*\S*\<env\s'
|
||||
line1 = substitute(line1, '\S\+=\S\+', '', 'g')
|
||||
line1 = substitute(line1, '\(-[iS]\|--ignore-environment\|--split-string\)', '', '')
|
||||
line1 = substitute(line1, '\s\zs--split-string[ \t=]', '', '')
|
||||
line1 = substitute(line1, '\s\zs[A-Za-z0-9_]\+=\S*\ze\s', '', 'g')
|
||||
line1 = substitute(line1, '\s\zs\%(-[iS]\+\|--ignore-environment\)\ze\s', '', 'g')
|
||||
line1 = substitute(line1, '\<env\s\+', '', '')
|
||||
endif
|
||||
|
||||
|
||||
4
runtime/autoload/dist/vim.vim
vendored
4
runtime/autoload/dist/vim.vim
vendored
@@ -1,9 +1,9 @@
|
||||
" Vim runtime support library,
|
||||
" runs the vim9 script version or legacy script version
|
||||
" runs the Vim9 script version or legacy script version
|
||||
" on demand (mostly for Neovim compatability)
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Nov 04
|
||||
" Last Change: 2025 Apr 27
|
||||
|
||||
|
||||
" enable the zip and gzip plugin by default, if not set
|
||||
|
||||
6
runtime/autoload/dist/vimindent.vim
vendored
6
runtime/autoload/dist/vimindent.vim
vendored
@@ -2,7 +2,7 @@ vim9script
|
||||
|
||||
# Language: Vim script
|
||||
# Maintainer: github user lacygoill
|
||||
# Last Change: 2024 Dec 26
|
||||
# Last Change: 2025 Apr 13
|
||||
#
|
||||
# Includes changes from The Vim Project:
|
||||
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
|
||||
@@ -981,8 +981,10 @@ def SearchPair( # {{{3
|
||||
if end == '[' || end == ']'
|
||||
e = e->escape('[]')
|
||||
endif
|
||||
# VIM_INDENT_TEST_TRACE_START
|
||||
return searchpair('\C' .. s, (middle == '' ? '' : '\C' .. middle), '\C' .. e,
|
||||
flags, (): bool => InCommentOrString(), stopline, TIMEOUT)
|
||||
# VIM_INDENT_TEST_TRACE_END dist#vimindent#SearchPair
|
||||
enddef
|
||||
|
||||
def SearchPairStart( # {{{3
|
||||
@@ -1268,7 +1270,9 @@ def NonCommentedMatch(line: dict<any>, pat: string): bool # {{{3
|
||||
|
||||
var pos: list<number> = getcurpos()
|
||||
cursor(line.lnum, 1)
|
||||
# VIM_INDENT_TEST_TRACE_START
|
||||
var match_lnum: number = search(pat, 'cnW', line.lnum, TIMEOUT, (): bool => InCommentOrString())
|
||||
# VIM_INDENT_TEST_TRACE_END dist#vimindent#NonCommentedMatch
|
||||
setpos('.', pos)
|
||||
return match_lnum > 0
|
||||
enddef
|
||||
|
||||
@@ -20,10 +20,12 @@ let g:python_indent = extend(get(g:, 'python_indent', {}), #{
|
||||
let s:maxoff = 50 " maximum number of lines to look backwards for ()
|
||||
|
||||
function s:SearchBracket(fromlnum, flags)
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
return searchpairpos('[[({]', '', '[])}]', a:flags,
|
||||
\ {-> synstack('.', col('.'))
|
||||
\ ->indexof({_, id -> synIDattr(id, 'name') =~ '\%(Comment\|Todo\|String\)$'}) >= 0},
|
||||
\ [0, a:fromlnum - s:maxoff]->max(), g:python_indent.searchpair_timeout)
|
||||
" VIM_INDENT_TEST_TRACE_END python#s:SearchBracket
|
||||
endfunction
|
||||
|
||||
" See if the specified line is already user-dedented from the expected value.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
" Author: Stephen Sugden <stephen@stephensugden.com>
|
||||
" Last Modified: 2023-09-11
|
||||
" Last Change: 2025 Mar 31 by Vim project (rename s:RustfmtConfigOptions())
|
||||
"
|
||||
" Adapted from https://github.com/fatih/vim-go
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
@@ -61,7 +62,7 @@ function! s:RustfmtWriteMode()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtConfigOptions()
|
||||
function! rustfmt#RustfmtConfigOptions()
|
||||
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
|
||||
@@ -84,7 +85,7 @@ function! s:RustfmtCommandRange(filename, line1, line2)
|
||||
|
||||
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
|
||||
let l:write_mode = s:RustfmtWriteMode()
|
||||
let l:rustfmt_config = s:RustfmtConfigOptions()
|
||||
let l:rustfmt_config = rustfmt#RustfmtConfigOptions()
|
||||
|
||||
" FIXME: When --file-lines gets to be stable, add version range checking
|
||||
" accordingly.
|
||||
@@ -99,7 +100,7 @@ endfunction
|
||||
|
||||
function! s:RustfmtCommand()
|
||||
let write_mode = g:rustfmt_emit_files ? '--emit=stdout' : '--write-mode=display'
|
||||
let config = s:RustfmtConfigOptions()
|
||||
let config = rustfmt#RustfmtConfigOptions()
|
||||
return join([g:rustfmt_command, write_mode, config, g:rustfmt_options])
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
" 2025 Mar 02 by Vim Project: escape the filename before using :read
|
||||
" 2025 Mar 02 by Vim Project: determine the compression using readblob()
|
||||
" instead of shelling out to file(1)
|
||||
" 2025 Apr 16 by Vim Project: decouple from netrw by adding s:WinPath()
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
@@ -146,7 +147,7 @@ fun! tar#Browse(tarfile)
|
||||
let lastline= line("$")
|
||||
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
|
||||
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
|
||||
call setline(lastline+3,'" Select a file with cursor and press ENTER')
|
||||
call setline(lastline+3,'" Select a file with cursor and press ENTER, "x" to extract a file')
|
||||
keepj $put =''
|
||||
keepj sil! 0d
|
||||
keepj $
|
||||
@@ -615,7 +616,7 @@ fun! tar#Extract()
|
||||
let tarball = expand("%")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
let extractcmd= s:WinPath(g:tar_extractcmd)
|
||||
if filereadable(tarbase.".tar")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
@@ -765,6 +766,25 @@ fun! s:Header(fname)
|
||||
return "unknown"
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:WinPath: {{{2
|
||||
fun! s:WinPath(path)
|
||||
if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && has("win32")
|
||||
" remove cygdrive prefix, if present
|
||||
let path = substitute(a:path, '/cygdrive/\(.\)', '\1:', '')
|
||||
" remove trailing slash (Win95)
|
||||
let path = substitute(path, '\(\\\|/\)$', '', 'g')
|
||||
" remove escaped spaces
|
||||
let path = substitute(path, '\ ', ' ', 'g')
|
||||
" convert slashes to backslashes
|
||||
let path = substitute(path, '/', '\', 'g')
|
||||
else
|
||||
let path = a:path
|
||||
endif
|
||||
|
||||
return path
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
|
||||
fun! tar#Vimuntar(...)
|
||||
@@ -786,7 +806,7 @@ fun! tar#Vimuntar(...)
|
||||
|
||||
if simplify(curdir) != simplify(vimhome)
|
||||
" copy (possibly compressed) tarball to .vim/vimfiles
|
||||
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
call system(s:WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
exe "cd ".fnameescape(vimhome)
|
||||
endif
|
||||
|
||||
@@ -808,7 +828,7 @@ fun! tar#Vimuntar(...)
|
||||
else
|
||||
call vimball#Decompress(tartail,0)
|
||||
endif
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
let extractcmd= s:WinPath(g:tar_extractcmd)
|
||||
call system(extractcmd." ".shellescape(tarbase.".tar"))
|
||||
|
||||
" set up help
|
||||
|
||||
25
runtime/compiler/gleam_build.vim
Normal file
25
runtime/compiler/gleam_build.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Language: Gleam
|
||||
" Maintainer: Kirill Morozov <kirill@robotix.pro>
|
||||
" Based On: https://github.com/gleam-lang/gleam.vim
|
||||
" Last Change: 2025 Apr 21
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "gleam_build"
|
||||
|
||||
CompilerSet makeprg=gleam\ build
|
||||
|
||||
" Example error message:
|
||||
"
|
||||
" error: Unknown variable
|
||||
" ┌─ /home/michael/root/projects/tutorials/gleam/try/code/src/main.gleam:19:18
|
||||
" │
|
||||
" 19 │ Ok(tuple(name, spot))
|
||||
" │ ^^^^ did you mean `sport`?
|
||||
"
|
||||
" The name `spot` is not in scope here.
|
||||
CompilerSet errorformat=%Eerror:\ %m,%Wwarning:\ %m,%C\ %#┌─%#\ %f:%l:%c\ %#-%#
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
@@ -107,6 +107,7 @@ if 1
|
||||
\ let line = line("'\"")
|
||||
\ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
|
||||
\ && index(['xxd', 'gitrebase', 'tutor'], &filetype) == -1
|
||||
\ && !&diff
|
||||
\ | execute "normal! g`\""
|
||||
\ | endif
|
||||
|
||||
|
||||
@@ -142,7 +142,9 @@ os_win32.txt:
|
||||
touch $@
|
||||
|
||||
pi_netrw.txt: ../pack/dist/opt/netrw/doc/netrw.txt
|
||||
cp ../pack/dist/opt/netrw/doc/netrw.txt $@
|
||||
cp ../pack/dist/opt/netrw/doc/netrw.txt $@.tmp
|
||||
sed -e '1s/$$/ *pi_netrw.txt*/' $@.tmp > $@ && \
|
||||
rm -f $@.tmp
|
||||
|
||||
vietnamese.txt:
|
||||
touch $@
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Mar 12
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -398,6 +398,7 @@ Name triggered by ~
|
||||
|CmdlineChanged| after a change was made to the command-line text
|
||||
|CmdlineEnter| after the cursor moves to the command line
|
||||
|CmdlineLeave| before the cursor leaves the command line
|
||||
|CmdlineLeavePre| before preparing to leave the command line
|
||||
|
||||
|InsertEnter| starting Insert mode
|
||||
|InsertChange| when typing <Insert> while in Insert or Replace mode
|
||||
@@ -593,7 +594,8 @@ BufWriteCmd Before writing the whole buffer to a file.
|
||||
The buffer contents should not be changed.
|
||||
When the command resets 'modified' the undo
|
||||
information is adjusted to mark older undo
|
||||
states as 'modified', like |:write| does.
|
||||
states as 'modified', like |:write| does. Use
|
||||
the |'[| and |']| marks for the range of lines.
|
||||
|Cmd-event|
|
||||
*BufWritePost*
|
||||
BufWritePost After writing the whole buffer to a file
|
||||
@@ -638,6 +640,18 @@ CmdlineLeave Before leaving the command line; including
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdlineLeavePre*
|
||||
CmdlineLeavePre Just before leaving the command line, and
|
||||
before |CmdlineLeave|. Useful for capturing
|
||||
completion info with |cmdcomplete_info()|, as
|
||||
this information is cleared before
|
||||
|CmdlineLeave| is triggered. Triggered for
|
||||
non-interactive use of ":" in a mapping, but
|
||||
not when using |<Cmd>|. Also triggered when
|
||||
abandoning the command line by typing CTRL-C
|
||||
or <Esc>. <afile> is set to a single
|
||||
character indicating the command-line type.
|
||||
See |cmdwin-char| for details.
|
||||
*CmdwinEnter*
|
||||
CmdwinEnter After entering the command-line window.
|
||||
Useful for setting options specifically for
|
||||
@@ -886,14 +900,14 @@ FileType When the 'filetype' option has been set. The
|
||||
FileWriteCmd Before writing to a file, when not writing the
|
||||
whole buffer. Should do the writing to the
|
||||
file. Should not change the buffer. Use the
|
||||
'[ and '] marks for the range of lines.
|
||||
|'[| and |']| marks for the range of lines.
|
||||
|Cmd-event|
|
||||
*FileWritePost*
|
||||
FileWritePost After writing to a file, when not writing the
|
||||
whole buffer.
|
||||
*FileWritePre*
|
||||
FileWritePre Before writing to a file, when not writing the
|
||||
whole buffer. Use the '[ and '] marks for the
|
||||
whole buffer. Use the |'[| and |']| marks for the
|
||||
range of lines.
|
||||
*FilterReadPost*
|
||||
FilterReadPost After reading a file from a filter command.
|
||||
@@ -1480,6 +1494,13 @@ WinScrolled After any window in the current tab page
|
||||
or changed width or height. See
|
||||
|win-scrolled-resized|.
|
||||
|
||||
Note: This can not be skipped with
|
||||
`:noautocmd`, because it triggers after
|
||||
processing normal commands when Vim is back in
|
||||
the main loop. If you want to disable this,
|
||||
consider setting the 'eventignore' option
|
||||
instead.
|
||||
|
||||
The pattern is matched against the |window-ID|
|
||||
of the first window that scrolled or resized.
|
||||
Both <amatch> and <afile> are set to the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Mar 24
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -129,11 +129,14 @@ charidx({string}, {idx} [, {countcc} [, {utf16}]])
|
||||
chdir({dir}) String change current working directory
|
||||
cindent({lnum}) Number C indent for line {lnum}
|
||||
clearmatches([{win}]) none clear all matches
|
||||
cmdcomplete_info() Dict get current cmdline completion
|
||||
information
|
||||
col({expr} [, {winid}]) Number column byte index of cursor or mark
|
||||
complete({startcol}, {matches}) none set Insert mode completion
|
||||
complete_add({expr}) Number add completion match
|
||||
complete_check() Number check for key typed during completion
|
||||
complete_info([{what}]) Dict get current completion information
|
||||
complete_match([{lnum}, {col}]) List get completion column and trigger text
|
||||
confirm({msg} [, {choices} [, {default} [, {type}]]])
|
||||
Number number of choice picked by user
|
||||
copy({expr}) any make a shallow copy of {expr}
|
||||
@@ -1832,6 +1835,29 @@ clearmatches([{win}]) *clearmatches()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
cmdcomplete_info() *cmdcomplete_info()*
|
||||
Returns a |Dictionary| with information about cmdline
|
||||
completion. See |cmdline-completion|.
|
||||
The items are:
|
||||
cmdline_orig The original command-line string before
|
||||
completion began.
|
||||
pum_visible |TRUE| if popup menu is visible.
|
||||
See |pumvisible()|.
|
||||
matches List of all completion candidates. Each item
|
||||
is a string.
|
||||
selected Selected item index. First index is zero.
|
||||
Index is -1 if no item is selected (showing
|
||||
typed text only, or the last completion after
|
||||
no item is selected when using the <Up> or
|
||||
<Down> keys)
|
||||
|
||||
Returns an empty |Dictionary| if no completion was attempted,
|
||||
if there was only one candidate and it was fully completed, or
|
||||
if an error occurred.
|
||||
|
||||
Return type: dict<any>
|
||||
|
||||
|
||||
col({expr} [, {winid}]) *col()*
|
||||
The result is a Number, which is the byte index of the column
|
||||
position given with {expr}.
|
||||
@@ -2007,6 +2033,50 @@ complete_info([{what}]) *complete_info()*
|
||||
<
|
||||
Return type: dict<any>
|
||||
|
||||
complete_match([{lnum}, {col}]) *complete_match()*
|
||||
Searches backward from the given position and returns a List
|
||||
of matches according to the 'isexpand' option. When no
|
||||
arguments are provided, uses the current cursor position.
|
||||
|
||||
Each match is represented as a List containing
|
||||
[startcol, trigger_text] where:
|
||||
- startcol: column position where completion should start,
|
||||
or -1 if no trigger position is found. For multi-character
|
||||
triggers, returns the column of the first character.
|
||||
- trigger_text: the matching trigger string from 'isexpand',
|
||||
or empty string if no match was found or when using the
|
||||
default 'iskeyword' pattern.
|
||||
|
||||
When 'isexpand' is empty, uses the 'iskeyword' pattern
|
||||
"\k\+$" to find the start of the current keyword.
|
||||
|
||||
Examples: >
|
||||
set isexpand=.,->,/,/*,abc
|
||||
func CustomComplete()
|
||||
let res = complete_match()
|
||||
if res->len() == 0 | return | endif
|
||||
let [col, trigger] = res[0]
|
||||
let items = []
|
||||
if trigger == '/*'
|
||||
let items = ['/** */']
|
||||
elseif trigger == '/'
|
||||
let items = ['/*! */', '// TODO:', '// fixme:']
|
||||
elseif trigger == '.'
|
||||
let items = ['length()']
|
||||
elseif trigger =~ '^\->'
|
||||
let items = ['map()', 'reduce()']
|
||||
elseif trigger =~ '^\abc'
|
||||
let items = ['def', 'ghk']
|
||||
endif
|
||||
if items->len() > 0
|
||||
let startcol = trigger =~ '^/' ? col : col + len(trigger)
|
||||
call complete(startcol, items)
|
||||
endif
|
||||
endfunc
|
||||
inoremap <Tab> <Cmd>call CustomComplete()<CR>
|
||||
<
|
||||
Return type: list<list<any>>
|
||||
|
||||
*confirm()*
|
||||
confirm({msg} [, {choices} [, {default} [, {type}]]])
|
||||
confirm() offers the user a dialog, from which a choice can be
|
||||
@@ -3235,7 +3305,8 @@ finddir({name} [, {path} [, {count}]]) *finddir()*
|
||||
Can also be used as a |method|: >
|
||||
GetName()->finddir()
|
||||
<
|
||||
Return type: |String|
|
||||
Return type: list<string> if {count} is negative, |String|
|
||||
otherwise
|
||||
|
||||
|
||||
findfile({name} [, {path} [, {count}]]) *findfile()*
|
||||
@@ -3249,7 +3320,8 @@ findfile({name} [, {path} [, {count}]]) *findfile()*
|
||||
Can also be used as a |method|: >
|
||||
GetName()->findfile()
|
||||
<
|
||||
Return type: |String|
|
||||
Return type: list<string> if {count} is negative, |String|
|
||||
otherwise
|
||||
|
||||
|
||||
flatten({list} [, {maxdepth}]) *flatten()*
|
||||
@@ -4243,6 +4315,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
file file and directory names
|
||||
file_in_path file and directory names in |'path'|
|
||||
filetype filetype names |'filetype'|
|
||||
filetypecmd |:filetype| suboptions
|
||||
function function name
|
||||
help help subjects
|
||||
highlight highlight groups
|
||||
@@ -8158,7 +8231,8 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
< 1.41
|
||||
|
||||
You will get an overflow error |E1510|, when the field-width
|
||||
or precision will result in a string longer than 6400 chars.
|
||||
or precision will result in a string longer than 1 MiB
|
||||
(1024*1024 = 1048576) chars.
|
||||
|
||||
*E1500*
|
||||
You cannot mix positional and non-positional arguments: >
|
||||
@@ -8336,13 +8410,14 @@ py3eval({expr} [, {locals}]) *py3eval()*
|
||||
converted to Vim data structures.
|
||||
If a {locals} |Dictionary| is given, it defines set of local
|
||||
variables available in the expression. The keys are variable
|
||||
names and the values are the variable values. |Dictionary| and
|
||||
|List| values are referenced, and may be updated by the
|
||||
expression (as if |python-bindeval| was used).
|
||||
names and the values are the variable values. |Dictionary|,
|
||||
|List| and |Tuple| values are referenced, and may be updated
|
||||
by the expression (as if |python-bindeval| was used).
|
||||
Numbers and strings are returned as they are (strings are
|
||||
copied though, Unicode strings are additionally converted to
|
||||
'encoding').
|
||||
Lists are represented as Vim |List| type.
|
||||
Tuples are represented as Vim |Tuple| type.
|
||||
Dictionaries are represented as Vim |Dictionary| type with
|
||||
keys converted to strings.
|
||||
Note that in a `:def` function local variables are not visible
|
||||
@@ -8364,6 +8439,7 @@ pyeval({expr} [, {locals}]) *pyeval()*
|
||||
Numbers and strings are returned as they are (strings are
|
||||
copied though).
|
||||
Lists are represented as Vim |List| type.
|
||||
Tuples are represented as Vim |Tuple| type.
|
||||
Dictionaries are represented as Vim |Dictionary| type,
|
||||
non-string keys result in error.
|
||||
Note that in a `:def` function local variables are not visible
|
||||
@@ -11921,7 +11997,7 @@ trunc({expr}) *trunc()*
|
||||
Return type: |Float|
|
||||
|
||||
|
||||
tuple2list({list}) *tuple2list()*
|
||||
tuple2list({tuple}) *tuple2list()*
|
||||
Create a List from a shallow copy of the tuple items.
|
||||
Examples: >
|
||||
tuple2list((1, 2, 3)) returns [1, 2, 3]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 Mar 18
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -156,8 +156,8 @@ only after a '.').
|
||||
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
|
||||
spaces before and after a multibyte character |fo-table|.
|
||||
|
||||
The '[ mark is set at the end of the first line that was joined, '] at the end
|
||||
of the resulting line.
|
||||
The |'[| mark is set at the end of the first line that was joined, |']| at the
|
||||
end of the resulting line.
|
||||
|
||||
|
||||
==============================================================================
|
||||
@@ -1188,8 +1188,8 @@ the ":put" command, Vim always inserts the text in the next line. You can
|
||||
exchange two characters with the command sequence "xp". You can exchange two
|
||||
lines with the command sequence "ddp". You can exchange two words with the
|
||||
command sequence "deep" (start with the cursor in the blank space before the
|
||||
first word). You can use the "']" or "`]" command after the put command to
|
||||
move the cursor to the end of the inserted text, or use "'[" or "`[" to move
|
||||
first word). You can use the |']| or |`]| command after the put command to
|
||||
move the cursor to the end of the inserted text, or use |'[| or |`[| to move
|
||||
the cursor to the start.
|
||||
|
||||
*put-Visual-mode* *v_p* *v_P*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 9.1. Last change: 2024 Dec 25
|
||||
*develop.txt* For Vim version 9.1. Last change: 2025 Apr 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -192,7 +192,7 @@ For any non-trivial change, please always create a pull request on github,
|
||||
since this triggers the test suite.
|
||||
|
||||
*style-clang-format*
|
||||
sound.c and sign.c can be (semi-) automatically formated using the
|
||||
sound.c and sign.c can be (semi-) automatically formatted using the
|
||||
`clang-format` formatter according to the distributed .clang-format file.
|
||||
Other source files do not yet correspond to the .clang-format file. This may
|
||||
change in the future and they may be reformatted as well.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 9.1. Last change: 2024 Feb 01
|
||||
*diff.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -226,14 +226,28 @@ The diffs are highlighted with these groups:
|
||||
|hl-DiffAdd| DiffAdd Added (inserted) lines. These lines exist in
|
||||
this buffer but not in another.
|
||||
|hl-DiffChange| DiffChange Changed lines.
|
||||
|hl-DiffText| DiffText Changed text inside a Changed line. Vim
|
||||
finds the first character that is different,
|
||||
and the last character that is different
|
||||
(searching from the end of the line). The
|
||||
text in between is highlighted. This means
|
||||
that parts in the middle that are still the
|
||||
same are highlighted anyway. The 'diffopt'
|
||||
flags "iwhite" and "icase" are used here.
|
||||
|hl-DiffText| DiffText Changed text inside a Changed line. Exact
|
||||
behavior depends on the `inline:` setting in
|
||||
'diffopt'.
|
||||
With `inline:` set to "simple", Vim finds the
|
||||
first character that is different, and the
|
||||
last character that is different (searching
|
||||
from the end of the line). The text in
|
||||
between is highlighted. This means that parts
|
||||
in the middle that are still the same are
|
||||
highlighted anyway. The 'diffopt' flags
|
||||
"iwhite" and "icase" are used here.
|
||||
With `inline:` set to "char" or "word", Vim
|
||||
uses the internal diff library to perform a
|
||||
detailed diff between the changed blocks and
|
||||
highlight the exact difference between the
|
||||
two. Will respect any 'diffopt' flag that
|
||||
affects internal diff.
|
||||
Not used when `inline:` is set to "none".
|
||||
|hl-DiffTextAdd| DiffTextAdd Added text inside a Changed line. Similar to
|
||||
DiffText, but used when there is no
|
||||
corresponding text in other buffers. Not used
|
||||
when `inline:` is set to "simple" or "none".
|
||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||
because they don't really exist in this
|
||||
buffer.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 9.1. Last change: 2024 Oct 14
|
||||
*editing.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -974,8 +974,9 @@ Note: When the 'write' option is off, you are not able to write any file.
|
||||
executed like with ":!{cmd}", any '!' is replaced with
|
||||
the previous command |:!|.
|
||||
|
||||
The default [range] for the ":w" command is the whole buffer (1,$). If you
|
||||
write the whole buffer, it is no longer considered changed. When you
|
||||
The default [range] for the ":w" command is the whole buffer (1,$). The |'[|
|
||||
and |']| marks will be set to the [range] being used for the write command.
|
||||
If you write the whole buffer, it is no longer considered changed. When you
|
||||
write it to a different file with ":w somefile" it depends on the "+" flag in
|
||||
'cpoptions'. When included, the write command will reset the 'modified' flag,
|
||||
even though the buffer itself may still be different from its file.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Apr 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -541,7 +541,8 @@ example, to add up all the numbers in a list: >
|
||||
A Tuple is an ordered sequence of items. An item can be of any type. Items
|
||||
can be accessed by their index number. A Tuple is immutable.
|
||||
|
||||
A Tuple uses less memory compared to a List and provides O(1) lookup time.
|
||||
A Tuple is similar to a List but uses less memory and provides O(1) lookup
|
||||
time for an item.
|
||||
|
||||
Tuple creation ~
|
||||
*E1526* *E1527*
|
||||
@@ -579,6 +580,15 @@ is not available it returns zero or the default value you specify: >
|
||||
:echo get(mytuple, idx, "NONE")
|
||||
|
||||
|
||||
Tuple modification ~
|
||||
*tuple-modification*
|
||||
A tuple is immutable and items cannot be added or removed from a tuple. But
|
||||
List and Dict items within a tuple can be modified: >
|
||||
:let tuple = (1, [2, 3], {'a': 4})
|
||||
:let tuple[1][0] = 10
|
||||
:let tuple[2]['a'] = 20
|
||||
|
||||
|
||||
Tuple concatenation ~
|
||||
*tuple-concatenation*
|
||||
Two tuples can be concatenated with the "+" operator: >
|
||||
@@ -5139,7 +5149,7 @@ executable. It takes the following arguments:
|
||||
filetype string
|
||||
executable string
|
||||
|
||||
*dist#vim9#Open()* *:Open*
|
||||
*dist#vim9#Open()* *:Open* *:URLOpen*
|
||||
*g:Openprg* *gx*
|
||||
dist#vim9#Open(file: string) ~
|
||||
|
||||
@@ -5147,6 +5157,8 @@ Opens `path` with the system default handler (macOS `open`, Windows
|
||||
`explorer.exe`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the
|
||||
string specified in the variable is used instead.
|
||||
|
||||
The |:Open| user command uses file completion for its argument.
|
||||
|
||||
This function is by default called using the gx mapping. In visual mode
|
||||
tries to open the visually selected text.
|
||||
|
||||
@@ -5165,13 +5177,18 @@ Usage: >vim
|
||||
:call dist#vim9#Open(<path>)
|
||||
:Open <path>
|
||||
<
|
||||
*package-open*
|
||||
The |:Open| and |:Launch| command are provided by the included plugin
|
||||
$VIMRUNTIME/plugin/openPlugin.vim
|
||||
|
||||
*dist#vim9#Launch()* *:Launch*
|
||||
*dist#vim9#Launch()* *:Launch*
|
||||
dist#vim9#Launch(file: string) ~
|
||||
|
||||
Launches <args> with the appropriate system programs. Intended for launching
|
||||
GUI programs within Vim.
|
||||
|
||||
The |:Launch| user command uses shell completion for its first argument.
|
||||
|
||||
NOTE: escaping of <args> is left to the user
|
||||
|
||||
Examples: >vim
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Mar 15
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -153,11 +153,17 @@ variables can be used to overrule the filetype used for certain extensions:
|
||||
*.f g:filetype_f |ft-forth-syntax|
|
||||
*.frm g:filetype_frm |ft-form-syntax|
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.h g:c_syntax_for_h |ft-c-syntax|
|
||||
*.h g:c_syntax_for_h |ft-c-syntax| (deprecated)
|
||||
*.h g:ch_syntax_for_h |ft-ch-syntax| (deprecated)
|
||||
*.h g:filetype_h |ft-c-syntax|
|
||||
|ft-ch-syntax|
|
||||
|ft-cpp-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.inc g:filetype_inc
|
||||
*.lsl g:filetype_lsl
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*[mM]makefile,*.mk,*.mak,[mM]akefile*
|
||||
g:make_flavor |ft-make-syntax|
|
||||
*.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md
|
||||
g:filetype_md |ft-pandoc-syntax|
|
||||
*.mod g:filetype_mod
|
||||
@@ -263,7 +269,7 @@ D. If your filetype can only be detected by inspecting the contents of the
|
||||
item of the 'runtimepath' option. Example for Unix: >
|
||||
:!mkdir ~/.vim
|
||||
<
|
||||
2. Create a vim script file for doing this. Example: >
|
||||
2. Create a Vim script file for doing this. Example: >
|
||||
if did_filetype() " filetype already set..
|
||||
finish " ..don't do these checks
|
||||
endif
|
||||
@@ -660,6 +666,16 @@ possibilities: >
|
||||
The `:Cycle` command is also mapped to the CTRL-A and CTRL-X keys.
|
||||
For details, see `git-rebase --help`.
|
||||
|
||||
GLEAM *ft-gleam-plugin*
|
||||
|
||||
By default the following options are set for the recommended gleam style: >
|
||||
|
||||
setlocal expandtab shiftwidth=2 softtabstop=2
|
||||
|
||||
To disable this behavior, set the following variable in your vimrc: >
|
||||
|
||||
let g:gleam_recommended_style = 0
|
||||
|
||||
GO *ft-go-plugin*
|
||||
|
||||
By default the following options are set, based on Golang official docs: >
|
||||
@@ -1027,6 +1043,13 @@ functions with [[ and ]]. Move around comments with ]" and [".
|
||||
The mappings can be disabled with: >
|
||||
let g:no_vim_maps = 1
|
||||
|
||||
YAML *ft-yaml-plugin*
|
||||
By default, the YAML filetype plugin enables the following options: >
|
||||
setlocal shiftwidth=2 softtabstop=2
|
||||
|
||||
To disable this, set the following variable: >
|
||||
let g:yaml_recommended_style = 0
|
||||
|
||||
|
||||
ZIG *ft-zig-plugin*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -383,6 +383,10 @@ standard Vim help files, except for the first line. If you are writing a new
|
||||
help file it's best to copy one of the existing files and use it as a
|
||||
template.
|
||||
|
||||
Vim help files generally use 2 spaces after a sentence (since they are written
|
||||
using a fixed-width font and that was the prefered style in the 70s/80s), like
|
||||
what is described here: https://english.stackexchange.com/a/2602
|
||||
|
||||
The first line in a help file should have the following format:
|
||||
|
||||
*plugin_name.txt* {short description of the plugin}
|
||||
@@ -471,8 +475,13 @@ highlighting. So do these:
|
||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
|
||||
|
||||
GENDER NEUTRAL LANGUAGE
|
||||
FILETYPE COMPLETION *ft-help-omni*
|
||||
|
||||
To get completion for help tags when writing a tag reference, you can use the
|
||||
|i_CTRL-X_CTRL-O| command.
|
||||
|
||||
|
||||
GENDER NEUTRAL LANGUAGE
|
||||
*gender-neutral* *inclusion*
|
||||
Vim is for everybody, no matter race, gender or anything. For new or updated
|
||||
help text, gender neutral language is recommended. Some of the help text is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_perl.txt* For Vim version 9.1. Last change: 2023 May 14
|
||||
*if_perl.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||
@@ -74,7 +74,7 @@ The ActiveState one should work, Strawberry Perl is a good alternative.
|
||||
|script-here|.
|
||||
|
||||
|
||||
Example vim script: >
|
||||
Example Vim script: >
|
||||
|
||||
function! WhitePearl()
|
||||
perl << EOF
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 9.1. Last change: 2024 Nov 09
|
||||
*if_pyth.txt* For Vim version 9.1. Last change: 2025 Mar 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -184,8 +184,9 @@ vim.eval(str) *python-eval*
|
||||
evaluator (see |expression|). Returns the expression result as:
|
||||
- a string if the Vim expression evaluates to a string or number
|
||||
- a list if the Vim expression evaluates to a Vim list
|
||||
- a tuple if the Vim expression evaluates to a Vim tuple
|
||||
- a dictionary if the Vim expression evaluates to a Vim dictionary
|
||||
Dictionaries and lists are recursively expanded.
|
||||
Dictionaries, lists and tuples are recursively expanded.
|
||||
Examples: >
|
||||
:" value of the 'textwidth' option
|
||||
:py text_width = vim.eval("&tw")
|
||||
@@ -196,6 +197,8 @@ vim.eval(str) *python-eval*
|
||||
:" Result is a string! Use string.atoi() to convert to a number.
|
||||
:py str = vim.eval("12+12")
|
||||
:
|
||||
:py tuple = vim.eval('(1, 2, 3)')
|
||||
:
|
||||
:py tagList = vim.eval('taglist("eval_expr")')
|
||||
< The latter will return a python list of python dicts, for instance:
|
||||
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
|
||||
@@ -207,8 +210,8 @@ vim.eval(str) *python-eval*
|
||||
|
||||
vim.bindeval(str) *python-bindeval*
|
||||
Like |python-eval|, but returns special objects described in
|
||||
|python-bindeval-objects|. These python objects let you modify (|List|
|
||||
or |Dictionary|) or call (|Funcref|) vim objects.
|
||||
|python-bindeval-objects|. These python objects let you modify
|
||||
(|List|, |Tuple| or |Dictionary|) or call (|Funcref|) vim objects.
|
||||
|
||||
vim.strwidth(str) *python-strwidth*
|
||||
Like |strwidth()|: returns number of display cells str occupies, tab
|
||||
@@ -688,6 +691,22 @@ vim.List object *python-List*
|
||||
print isinstance(l, vim.List) # True
|
||||
class List(vim.List): # Subclassing
|
||||
|
||||
vim.Tuple object *python-Tuple*
|
||||
Sequence-like object providing access to vim |Tuple| type.
|
||||
Supports `.locked` attribute, see |python-.locked|. Also supports the
|
||||
following methods:
|
||||
Method Description ~
|
||||
__new__(), __new__(iterable)
|
||||
You can use `vim.Tuple()` to create new vim tuples.
|
||||
Without arguments constructs empty list.
|
||||
Examples: >
|
||||
t = vim.Tuple("abc") # Constructor, result: ('a', 'b', 'c')
|
||||
print t[1:] # slicing
|
||||
print t[0] # getting item
|
||||
for i in t: # iteration
|
||||
print isinstance(t, vim.Tuple) # True
|
||||
class Tuple(vim.Tuple): # Subclassing
|
||||
|
||||
vim.Function object *python-Function*
|
||||
Function-like object, acting like vim |Funcref| object. Accepts special
|
||||
keyword argument `self`, see |Dictionary-function|. You can also use
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Mar 09
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Apr 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1167,6 +1167,9 @@ For example, the function can contain this: >
|
||||
let matches = ... list of words ...
|
||||
return {'words': matches, 'refresh': 'always'}
|
||||
<
|
||||
If looking for matches is time-consuming, |complete_check()| may be used to
|
||||
maintain responsiveness.
|
||||
|
||||
*complete-items*
|
||||
Each list item can either be a string or a Dictionary. When it is a string it
|
||||
is used as the completion. When it is a Dictionary it can contain these
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
*motion.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -895,12 +895,12 @@ Numbered mark should be stored. See |viminfo-file-marks|.
|
||||
|
||||
|
||||
*'[* *`[*
|
||||
'[ `[ To the first character of the previously changed
|
||||
or yanked text.
|
||||
'[ `[ To the first character of the previously changed,
|
||||
or yanked text. Also set when writing the buffer.
|
||||
|
||||
*']* *`]*
|
||||
'] `] To the last character of the previously changed or
|
||||
yanked text.
|
||||
yanked text. Also set when writing the buffer.
|
||||
|
||||
After executing an operator the Cursor is put at the beginning of the text
|
||||
that was operated upon. After a put command ("p" or "P") the cursor is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Mar 14
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -212,7 +212,7 @@ A few examples: >
|
||||
:set makeprg=make,file results in "make,file"
|
||||
:set makeprg=make\\,file results in "make\,file"
|
||||
:set tags=tags,file results in "tags" and "file"
|
||||
:set tags=tags\\,file results in "tags,file"
|
||||
:set tags=tags\\,file results in "tags\,file"
|
||||
:let &tags='tags\,file' (same as above)
|
||||
|
||||
The "|" character separates a ":set" command from a following command. To
|
||||
@@ -1717,6 +1717,19 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'chistory'* *'chi'*
|
||||
'chistory' 'chi' number (default: 10)
|
||||
global
|
||||
{only available when compiled with the |+quickfix|
|
||||
feature}
|
||||
Number of quickfix lists that should be remembered for the quickfix
|
||||
stack. Must be between 1 and 100. If the option is set to a value
|
||||
that is lower than the amount of entries in the quickfix list stack,
|
||||
entries will be removed starting from the oldest one. If the current
|
||||
quickfix list was removed, then the quickfix list at top of the stack
|
||||
(the most recently created) will be used in its place. For additional
|
||||
info, see |quickfix-stack|.
|
||||
|
||||
*'cindent'* *'cin'* *'nocindent'* *'nocin'*
|
||||
'cindent' 'cin' boolean (default off)
|
||||
local to buffer
|
||||
@@ -2072,6 +2085,28 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|i_CTRL-X_CTRL-D|
|
||||
] tag completion
|
||||
t same as "]"
|
||||
f{func} call the function {func}. Multiple "f" flags may be specified.
|
||||
Refer to |complete-functions| for details on how the function
|
||||
is invoked and what it should return. The value can be the
|
||||
name of a function or a |Funcref|. For |Funcref| values,
|
||||
spaces must be escaped with a backslash ('\'), and commas with
|
||||
double backslashes ('\\') (see |option-backslash|).
|
||||
If the Dict returned by the {func} includes {"refresh": "always"},
|
||||
the function will be invoked again whenever the leading text
|
||||
changes.
|
||||
Completion matches are always inserted at the keyword
|
||||
boundary, regardless of the column returned by {func} when
|
||||
a:findstart is 1. This ensures compatibility with other
|
||||
completion sources.
|
||||
To make further modifications to the inserted text, {func}
|
||||
can make use of |CompleteDonePre|.
|
||||
If generating matches is potentially slow, |complete_check()|
|
||||
should be used to avoid blocking and preserve editor
|
||||
responsiveness.
|
||||
f equivalent to using "f{func}", where the function is taken from
|
||||
the 'completefunc' option.
|
||||
o equivalent to using "f{func}", where the function is taken from
|
||||
the 'omnifunc' option.
|
||||
|
||||
Unloaded buffers are not loaded, thus their autocmds |:autocmd| are
|
||||
not executed, this may lead to unexpected completions from some files
|
||||
@@ -2090,6 +2125,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns
|
||||
|i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).
|
||||
|
||||
An optional match limit can be specified for a completion source by
|
||||
appending a caret ("^") followed by a {count} to the source flag.
|
||||
For example: ".^9,w,u,t^5" limits matches from the current buffer
|
||||
to 9 and from tags to 5. Other sources remain unlimited.
|
||||
Note: The match limit takes effect only during forward completion
|
||||
(CTRL-N) and is ignored during backward completion (CTRL-P).
|
||||
|
||||
*'completefunc'* *'cfu'*
|
||||
'completefunc' 'cfu' string (default: empty)
|
||||
local to buffer
|
||||
@@ -2166,6 +2208,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Useful when there is additional information about the
|
||||
match, e.g., what file it comes from.
|
||||
|
||||
nearest Matches are listed based on their proximity to the cursor
|
||||
position, unlike the default behavior, which only
|
||||
considers proximity for matches appearing below the
|
||||
cursor. This applies only to matches from the current
|
||||
buffer. No effect if "fuzzy" is present.
|
||||
|
||||
noinsert Do not insert any text for a match until the user selects
|
||||
a match from the menu. Only works in combination with
|
||||
"menu" or "menuone". No effect if "longest" is present.
|
||||
@@ -2655,7 +2703,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*E1193* *E1194* *E1195* *E1196* *E1230*
|
||||
*E1197* *E1198* *E1199* *E1200* *E1201*
|
||||
xchacha20 XChaCha20 Cipher with Poly1305 Message Authentication
|
||||
Code. Medium strong till strong encryption.
|
||||
Code. Medium strong to strong encryption.
|
||||
Encryption is provided by the libsodium library, it
|
||||
requires Vim to be built with |+sodium|.
|
||||
It adds a seed and a message authentication code (MAC)
|
||||
@@ -2910,7 +2958,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
security reasons.
|
||||
|
||||
*'dip'* *'diffopt'*
|
||||
'diffopt' 'dip' string (default "internal,filler,closeoff")
|
||||
'diffopt' 'dip' string (default
|
||||
"internal,filler,closeoff,inline:simple")
|
||||
global
|
||||
{not available when compiled without the |+diff|
|
||||
feature}
|
||||
@@ -2975,6 +3024,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Use the indent heuristic for the internal
|
||||
diff library.
|
||||
|
||||
inline:{text} Highlight inline differences within a change.
|
||||
See |view-diffs|. Supported values are:
|
||||
|
||||
none Do not perform inline highlighting.
|
||||
simple Highlight from first different
|
||||
character to the last one in each
|
||||
line. This is the default if no
|
||||
`inline:` value is set.
|
||||
char Use internal diff to perform a
|
||||
character-wise diff and highlight the
|
||||
difference.
|
||||
word Use internal diff to perform a
|
||||
|word|-wise diff and highlight the
|
||||
difference. Non-alphanumeric
|
||||
multi-byte characters such as emoji
|
||||
and CJK characters are considered
|
||||
individual words.
|
||||
|
||||
internal Use the internal diff library. This is
|
||||
ignored when 'diffexpr' is set. *E960*
|
||||
When running out of memory when writing a
|
||||
@@ -3571,8 +3638,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'fillchars'* *'fcs'*
|
||||
'fillchars' 'fcs' string (default "vert:|,fold:-,eob:~,lastline:@")
|
||||
global or local to window |global-local|
|
||||
Characters to fill the statuslines, vertical separators and special
|
||||
lines in the window.
|
||||
Characters to fill the statuslines, vertical separators, special
|
||||
lines in the window and truncated text in the |ins-completion-menu|.
|
||||
It is a comma-separated list of items. Each item has a name, a colon
|
||||
and the value of that item: |E1511|
|
||||
|
||||
@@ -3587,6 +3654,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
diff '-' deleted lines of the 'diff' option
|
||||
eob '~' empty lines below the end of a buffer
|
||||
lastline '@' 'display' contains lastline/truncate
|
||||
trunc '>' truncated text in the
|
||||
|ins-completion-menu|.
|
||||
truncrl '<' same as "trunc" in 'rightleft' mode
|
||||
|
||||
Any one that is omitted will fall back to the default.
|
||||
|
||||
@@ -3603,9 +3673,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
stlnc StatusLineNC |hl-StatusLineNC|
|
||||
vert VertSplit |hl-VertSplit|
|
||||
fold Folded |hl-Folded|
|
||||
foldopen FoldColumn |hl-FoldColumn|
|
||||
foldclose FoldColumn |hl-FoldColumn|
|
||||
foldsep FoldColumn |hl-FoldColumn|
|
||||
diff DiffDelete |hl-DiffDelete|
|
||||
eob EndOfBuffer |hl-EndOfBuffer|
|
||||
lastline NonText |hl-NonText|
|
||||
trunc one of the many Popup menu highlighting groups like
|
||||
|hl-PmenuSel|
|
||||
truncrl same as "trunc"
|
||||
|
||||
*'findfunc'* *'ffu'* *E1514*
|
||||
'findfunc' 'ffu' string (default empty)
|
||||
@@ -4392,10 +4468,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
v:Visual,V:VisualNOS,w:WarningMsg,
|
||||
W:WildMenu,f:Folded,F:FoldColumn,
|
||||
A:DiffAdd,C:DiffChange,D:DiffDelete,
|
||||
T:DiffText,>:SignColumn,-:Conceal,
|
||||
B:SpellBad,P:SpellCap,R:SpellRare,
|
||||
L:SpellLocal,+:Pmenu,=:PmenuSel,
|
||||
k:PmenuMatch,<:PmenuMatchSel,
|
||||
T:DiffText,E:DiffTextAdd,>:SignColumn,
|
||||
-:Conceal,B:SpellBad,P:SpellCap,
|
||||
R:SpellRare, L:SpellLocal,+:Pmenu,
|
||||
=:PmenuSel, k:PmenuMatch,<:PmenuMatchSel,
|
||||
[:PmenuKind,]:PmenuKindSel,
|
||||
{:PmenuExtra,}:PmenuExtraSel,
|
||||
x:PmenuSbar,X:PmenuThumb,*:TabLine,
|
||||
@@ -4447,7 +4523,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-DiffAdd| A added line in diff mode
|
||||
|hl-DiffChange| C changed line in diff mode
|
||||
|hl-DiffDelete| D deleted line in diff mode
|
||||
|hl-DiffText| T inserted text in diff mode
|
||||
|hl-DiffText| T changed text in diff mode
|
||||
|hl-DiffTextAdd| E inserted text in diff mode
|
||||
|hl-SignColumn| > column used for |signs|
|
||||
|hl-Conceal| - the placeholders used for concealed characters
|
||||
(see 'conceallevel')
|
||||
@@ -4768,7 +4845,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<
|
||||
Also used for the |gf| command if an unmodified file name can't be
|
||||
found. Allows doing "gf" on the name after an 'include' statement.
|
||||
Also used for |<cfile>|.
|
||||
Note: Not used for |<cfile>|.
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
@@ -4906,6 +4983,23 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
and there is a letter before it, the completed part is made uppercase.
|
||||
With 'noinfercase' the match is used as-is.
|
||||
|
||||
*'isexpand'* *'ise'*
|
||||
'isexpand' 'ise' string (default: "")
|
||||
local to buffer
|
||||
Defines characters and patterns for completion in insert mode. Used
|
||||
by the |complete_match()| function to determine the starting position
|
||||
for completion. This is a comma-separated list of triggers. Each
|
||||
trigger can be:
|
||||
- A single character like "." or "/"
|
||||
- A sequence of characters like "->", "/*", or "/**"
|
||||
|
||||
Note: Use "\\," to add a literal comma as trigger character, see
|
||||
|option-backslash|.
|
||||
|
||||
Examples: >
|
||||
set isexpand=.,->,/*,\\,
|
||||
<
|
||||
|
||||
*'insertmode'* *'im'* *'noinsertmode'* *'noim'*
|
||||
'insertmode' 'im' boolean (default off)
|
||||
global
|
||||
@@ -5296,6 +5390,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
temporarily when performing an operation where redrawing may cause
|
||||
flickering or cause a slowdown.
|
||||
|
||||
*'lhistory'* *'lhi'*
|
||||
'lhistory' 'lhi' number (default: 10)
|
||||
local to window
|
||||
{only available when compiled with the |+quickfix|
|
||||
feature}
|
||||
Like 'chistory', but for the location list stack associated with a
|
||||
window. If the option is changed in either the location list window
|
||||
itself or the window that is associated with the location list stack,
|
||||
the new value will also be applied to the other one. This means this
|
||||
value will always be the same for a given location list window and its
|
||||
corresponding window. See |quickfix-stack| for additional info.
|
||||
|
||||
*'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'*
|
||||
'linebreak' 'lbr' boolean (default off)
|
||||
local to window
|
||||
@@ -6459,6 +6565,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
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|.
|
||||
|
||||
*'pummaxwidth'* *'pmw'*
|
||||
'pummaxwidth' 'pmw' number (default 0)
|
||||
global
|
||||
Determines the maximum width to use for the popup menu for completion.
|
||||
When zero, there is no maximum width limit, otherwise the popup menu
|
||||
will never be wider than this value. Truncated text will be indicated
|
||||
by "trunc" value of 'fillchars' option.
|
||||
|
||||
This option takes precedence over 'pumwidth'.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'pumwidth'* *'pw'*
|
||||
@@ -8404,7 +8521,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
local to buffer
|
||||
{not available when compiled without the |+eval|
|
||||
feature}
|
||||
This option specifies a function to be used to perform tag searches.
|
||||
This option specifies a function to be used to perform tag searches
|
||||
(including |taglist()|).
|
||||
The function gets the tag pattern and should return a List of matching
|
||||
tags. See |tag-function| for an explanation of how to write the
|
||||
function and an example. The value can be the name of a function, a
|
||||
@@ -9575,55 +9693,65 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'wildmode'* *'wim'*
|
||||
'wildmode' 'wim' string (Vim default: "full")
|
||||
global
|
||||
Completion mode that is used for the character specified with
|
||||
'wildchar'. It is a comma-separated list of up to four parts. Each
|
||||
part specifies what to do for each consecutive use of 'wildchar'. The
|
||||
first part specifies the behavior for the first use of 'wildchar',
|
||||
The second part for the second use, etc.
|
||||
Completion mode used for the character specified with 'wildchar'.
|
||||
This option is a comma-separated list of up to four parts,
|
||||
corresponding to the first, second, third, and fourth presses of
|
||||
'wildchar'. Each part is a colon-separated list of completion
|
||||
behaviors, which are applied simultaneously during that phase.
|
||||
|
||||
Each part consists of a colon separated list consisting of the
|
||||
following possible values:
|
||||
"" Complete only the first match.
|
||||
"full" Complete the next full match. After the last match,
|
||||
the original string is used and then the first match
|
||||
again. Will also start 'wildmenu' if it is enabled.
|
||||
"longest" Complete till longest common string. If this doesn't
|
||||
result in a longer string, use the next part.
|
||||
"list" When more than one match, list all matches.
|
||||
"lastused" When completing buffer names and more than one buffer
|
||||
matches, sort buffers by time last used (other than
|
||||
the current buffer).
|
||||
"noselect" Do not pre-select first menu item and start 'wildmenu'
|
||||
if it is enabled.
|
||||
When there is only a single match, it is fully completed in all cases
|
||||
except when "noselect" is present.
|
||||
The possible behavior values are:
|
||||
"" Only complete (insert) the first match. No further
|
||||
matches are cycled or listed.
|
||||
"full" Complete the next full match. Cycles through all
|
||||
matches, returning to the original input after the
|
||||
last match. If 'wildmenu' is enabled, it will be
|
||||
shown.
|
||||
"longest" Complete to the longest common substring. If this
|
||||
doesn't extend the input, the next 'wildmode' part is
|
||||
used.
|
||||
"list" If multiple matches are found, list all of them.
|
||||
"lastused" When completing buffer names, sort them by most
|
||||
recently used (excluding the current buffer). Only
|
||||
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.
|
||||
|
||||
Examples of useful colon-separated values:
|
||||
"longest:full" Like "longest", but also start 'wildmenu' if it is
|
||||
enabled. Will not complete to the next full match.
|
||||
"list:full" When more than one match, list all matches and
|
||||
complete first match.
|
||||
"list:longest" When more than one match, list all matches and
|
||||
complete till longest common string.
|
||||
"list:lastused" When more than one buffer matches, list all matches
|
||||
and sort buffers by time last used (other than the
|
||||
current buffer).
|
||||
Some useful combinations of colon-separated values:
|
||||
"longest:full" Start with the longest common string and show
|
||||
'wildmenu' (if enabled). Does not cycle
|
||||
through full matches.
|
||||
"list:full" List all matches and complete first match.
|
||||
"list:longest" List all matches and complete till the longest
|
||||
common prefix.
|
||||
"list:lastused" List all matches. When completing buffers,
|
||||
sort them by most recently used (excluding the
|
||||
current buffer).
|
||||
"noselect:lastused" Do not preselect the first item in 'wildmenu'
|
||||
if it is active. When completing buffers,
|
||||
sort them by most recently used (excluding the
|
||||
current buffer).
|
||||
|
||||
Examples: >
|
||||
:set wildmode=full
|
||||
< Complete first full match, next match, etc. (the default) >
|
||||
< Complete full match on every press (default behavior) >
|
||||
:set wildmode=longest,full
|
||||
< Complete longest common string, then each full match >
|
||||
< First press: longest common substring
|
||||
Second press: cycle through full matches >
|
||||
:set wildmode=list:full
|
||||
< List all matches and complete each full match >
|
||||
< First press: list all matches and complete the first one >
|
||||
:set wildmode=list,full
|
||||
< List all matches without completing, then each full match >
|
||||
< First press: list matches only
|
||||
Second press: complete full matches >
|
||||
:set wildmode=longest,list
|
||||
< Complete longest common string, then list alternatives >
|
||||
< First press: longest common substring
|
||||
Second press: list all matches >
|
||||
:set wildmode=noselect:full
|
||||
< Display 'wildmenu' without completing, then each full match >
|
||||
< First press: show 'wildmenu' without completing or selecting
|
||||
Second press: cycle full matches >
|
||||
:set wildmode=noselect:lastused,full
|
||||
< Same as above, but sort buffers by time last used.
|
||||
< Same as above, but buffer matches are sorted by time last used
|
||||
More info here: |cmdline-completion|.
|
||||
|
||||
*'wildoptions'* *'wop'*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Mar 21
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1222,7 +1222,8 @@ x A single character, with no special meaning, matches itself
|
||||
\o40 octal number of character up to 0o377
|
||||
\x20 hexadecimal number of character up to 0xff
|
||||
\u20AC hex. number of multibyte character up to 0xffff
|
||||
\U1234 hex. number of multibyte character up to 0xffffffff
|
||||
\U1234 hex. number of multibyte character up to 8 characters
|
||||
0xffffffff |E1541|
|
||||
NOTE: The other backslash codes mentioned above do not work inside
|
||||
[]!
|
||||
- Matching with a collection can be slow, because each character in
|
||||
@@ -1263,7 +1264,8 @@ x A single character, with no special meaning, matches itself
|
||||
\%u20AC Matches the character specified with up to four hexadecimal
|
||||
characters.
|
||||
\%U1234abcd Matches the character specified with up to eight hexadecimal
|
||||
characters, up to 0x7fffffff
|
||||
characters, up to 0x7fffffff (the maximum allowed value is INT_MAX
|
||||
|E1541|, but the maximum valid Unicode codepoint is U+10FFFF).
|
||||
|
||||
==============================================================================
|
||||
7. Ignoring case in a pattern */ignorecase*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Mar 15
|
||||
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
>
|
||||
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
||||
<
|
||||
@@ -156,7 +156,7 @@ may have. As an example, consider: >
|
||||
|
||||
" GetLatestVimScripts: 884 1 :AutoInstall: AutoAlign.vim
|
||||
|
||||
This comment line tells getscript.vim to check vimscript #884 and that the
|
||||
This comment line tells getscript.vim to check Vim script #884 and that the
|
||||
script is automatically installable. Getscript will also use this line to
|
||||
help build the GetLatestVimScripts.dat file, by including a line such as: >
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netrw.txt*
|
||||
*netrw.txt* *pi_netrw.txt*
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@@ -431,17 +431,6 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_silent* =0 : transfers done normally
|
||||
=1 : transfers done silently
|
||||
|
||||
*g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
|
||||
Move the mouse and pause to remove the popup window.
|
||||
(default value if popup windows are available)
|
||||
=1 : messages from netrw will use a separate one
|
||||
line window. This window provides reliable
|
||||
delivery of messages.
|
||||
(default value if popup windows are not available)
|
||||
=0 : messages from netrw will use echoerr ;
|
||||
messages don't always seem to show up this
|
||||
way, but one doesn't have to quit the window.
|
||||
|
||||
*g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
|
||||
permits network browsing to use ls with time and
|
||||
size sorting (default if windows)
|
||||
@@ -471,7 +460,7 @@ file using root-relative paths, use the full path:
|
||||
==============================================================================
|
||||
4. Network-Oriented File Transfer *netrw-xfer* {{{1
|
||||
|
||||
Network-oriented file transfer under Vim is implemented by a vim script
|
||||
Network-oriented file transfer under Vim is implemented by a Vim script
|
||||
(<netrw.vim>) using plugin techniques. It currently supports both reading and
|
||||
writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
|
||||
dav/cadaver, rsync, or sftp.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_tar.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*pi_tar.txt* For Vim version 9.1. Last change: 2025 Mar 16
|
||||
|
||||
+====================+
|
||||
| Tar File Interface |
|
||||
@@ -74,6 +74,15 @@ Copyright 2005-2017: *tar-copyright*
|
||||
let g:loaded_tarPlugin= 1
|
||||
let g:loaded_tar = 1
|
||||
<
|
||||
*tar-mappings*
|
||||
MAPPINGS~
|
||||
|
||||
The following (buffer-local) mappings are available in a tar buffer:
|
||||
|
||||
<CR> Open selected file for editing, any changes will be
|
||||
written back to the archive.
|
||||
<LeftMouse> same as <CR>
|
||||
x Extract selected file.
|
||||
|
||||
==============================================================================
|
||||
3. Options *tar-options*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 9.1. Last change: 2023 Nov 05
|
||||
*pi_zip.txt* For Vim version 9.1. Last change: 2025 Apr 02
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -100,12 +100,14 @@ 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 (11/30/15) it holds: >
|
||||
Currently (as of April 2025) it holds: >
|
||||
|
||||
let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,
|
||||
\ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,
|
||||
\ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,
|
||||
\ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub'
|
||||
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,
|
||||
\ *.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,
|
||||
\ *.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,
|
||||
\ *.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.potm,*.potx,*.ppam,
|
||||
\ *.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,*.wsz,
|
||||
\ *.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
|
||||
|
||||
==============================================================================
|
||||
4. History *zip-history* {{{1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Mar 11
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Apr 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -43,12 +43,12 @@ From inside Vim an easy way to run a command and handle the output is with the
|
||||
The 'errorformat' option should be set to match the error messages from your
|
||||
compiler (see |errorformat| below).
|
||||
|
||||
*quickfix-ID*
|
||||
*quickfix-stack* *quickfix-ID*
|
||||
Each quickfix list has a unique identifier called the quickfix ID and this
|
||||
number will not change within a Vim session. The |getqflist()| function can be
|
||||
used to get the identifier assigned to a list. There is also a quickfix list
|
||||
number which may change whenever more than ten lists are added to a quickfix
|
||||
stack.
|
||||
number which may change whenever more than 'chistory' lists are added to a
|
||||
quickfix stack.
|
||||
|
||||
*location-list* *E776*
|
||||
A location list is a window-local quickfix list. You get one after commands
|
||||
@@ -860,10 +860,12 @@ using these functions are below:
|
||||
=============================================================================
|
||||
3. Using more than one list of errors *quickfix-error-lists*
|
||||
|
||||
So far has been assumed that there is only one list of errors. Actually the
|
||||
ten last used lists are remembered. When starting a new list, the previous
|
||||
ones are automatically kept. Two commands can be used to access older error
|
||||
lists. They set one of the existing error lists as the current one.
|
||||
So far it has been assumed that there is only one list of errors. Actually
|
||||
there can be multiple used lists that are remembered; see 'chistory' and
|
||||
'lhistory'.
|
||||
When starting a new list, the previous ones are automatically kept. Two
|
||||
commands can be used to access older error lists. They set one of the
|
||||
existing error lists as the current one.
|
||||
|
||||
*:colder* *:col* *E380*
|
||||
:col[der] [count] Go to older error list. When [count] is given, do
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Feb 08
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Apr 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -639,6 +639,7 @@ Short explanation of each option: *option-list*
|
||||
'cdpath' 'cd' list of directories searched with ":cd"
|
||||
'cedit' key used to open the command-line window
|
||||
'charconvert' 'ccv' expression for character encoding conversion
|
||||
'chistory' 'chi' maximum number of quickfix lists in history
|
||||
'cindent' 'cin' do C program indenting
|
||||
'cinkeys' 'cink' keys that trigger indent when 'cindent' is set
|
||||
'cinoptions' 'cino' how to do indenting when 'cindent' is set
|
||||
@@ -786,6 +787,7 @@ Short explanation of each option: *option-list*
|
||||
'langremap' 'lrm' do apply 'langmap' to mapped characters
|
||||
'laststatus' 'ls' tells when last window has status lines
|
||||
'lazyredraw' 'lz' don't redraw while executing macros
|
||||
'lhistory' 'lhi' maximum number of location lists in history
|
||||
'linebreak' 'lbr' wrap long lines at a blank
|
||||
'lines' number of lines in the display
|
||||
'linespace' 'lsp' number of pixel lines to use between characters
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Mar 21
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Apr 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1056,8 +1056,12 @@ Variable Highlight ~
|
||||
*c_ansi_typedefs* ... but do standard ANSI types
|
||||
*c_ansi_constants* ... but do standard ANSI constants
|
||||
*c_no_utf* don't highlight \u and \U in strings
|
||||
*c_syntax_for_h* for *.h files use C syntax instead of C++ and use objc
|
||||
syntax instead of objcpp
|
||||
*c_syntax_for_h* use C syntax for *.h files instead of C++/ObjC/ObjC++
|
||||
(NOTE: This variable is deprecated and no longer
|
||||
necessary, as *.h files now default to C, unless the
|
||||
file contains C++ or Objective-C syntax. If the
|
||||
automated detection fails, the default filetype can
|
||||
be adjusted using `g:filetype_h`.)
|
||||
*c_no_if0* don't highlight "#if 0" blocks as comments
|
||||
*c_no_cformat* don't highlight %-formats in strings
|
||||
*c_no_c99* don't highlight C99 standard items
|
||||
@@ -1116,8 +1120,11 @@ the C syntax file. See |c.vim| for all the settings that are available for C.
|
||||
|
||||
By setting a variable you can tell Vim to use Ch syntax for *.h files, instead
|
||||
of C or C++: >
|
||||
:let ch_syntax_for_h = 1
|
||||
:let g:filetype_h = 'ch'
|
||||
|
||||
NOTE: In previous versions of Vim, the following (now-deprecated) variable was
|
||||
used, but is no longer the preferred approach: >
|
||||
:let ch_syntax_for_h = 1
|
||||
|
||||
CHILL *chill.vim* *ft-chill-syntax*
|
||||
|
||||
@@ -2168,6 +2175,13 @@ line for any comments written in this way, and showing the contents of a first
|
||||
line otherwise, with >
|
||||
:let g:java_foldtext_show_first_or_second_line = 1
|
||||
|
||||
HTML tags in Javadoc comments can additionally be folded by following the
|
||||
instructions listed under |html-folding| and giving explicit consent with >
|
||||
:let g:java_consent_to_html_syntax_folding = 1
|
||||
Do not default to this kind of folding unless ALL start tags and optional end
|
||||
tags are balanced in Javadoc comments; otherwise, put up with creating runaway
|
||||
folds that break syntax highlighting.
|
||||
|
||||
Trailing whitespace characters or a run of space characters before a tab
|
||||
character can be marked as an error with >
|
||||
:let g:java_space_errors = 1
|
||||
@@ -2202,12 +2216,12 @@ cycles for such a feature to become either integrated into the platform or
|
||||
withdrawn from this effort. To cater for early adopters, there is optional
|
||||
support in Vim for syntax related preview features that are implemented. You
|
||||
can request it by specifying a list of preview feature numbers as follows: >
|
||||
:let g:java_syntax_previews = [455, 476]
|
||||
:let g:java_syntax_previews = [488, 494]
|
||||
|
||||
The supported JEP numbers are to be drawn from this table:
|
||||
`430`: String Templates [JDK 21]
|
||||
`455`: Primitive types in Patterns, instanceof, and switch
|
||||
`476`: Module Import Declarations
|
||||
`488`: Primitive types in Patterns, instanceof, and switch
|
||||
`494`: Module Import Declarations
|
||||
|
||||
Note that as soon as the particular preview feature will have been integrated
|
||||
into the Java platform, its entry will be removed from the table and related
|
||||
@@ -2393,11 +2407,16 @@ Comments are also highlighted by default. You can turn this off by using: >
|
||||
|
||||
:let make_no_comments = 1
|
||||
|
||||
Microsoft Makefile handles variable expansion and comments differently
|
||||
(backslashes are not used for escape). If you see any wrong highlights
|
||||
because of this, you can try this: >
|
||||
There are various Make implementations, which add extensions other than the
|
||||
POSIX specification and thus are mutually incompatible. If the filename is
|
||||
BSDmakefile or GNUmakefile, the corresponding implementation is automatically
|
||||
determined; otherwise vim tries to detect it by the file contents. If you see
|
||||
any wrong highlights because of this, you can enforce a flavor by setting one
|
||||
of the following: >
|
||||
|
||||
:let make_microsoft = 1
|
||||
:let g:make_flavor = 'bsd' " or
|
||||
:let g:make_flavor = 'gnu' " or
|
||||
:let g:make_flavor = 'microsoft'
|
||||
|
||||
|
||||
MAPLE *maple.vim* *ft-maple-syntax*
|
||||
@@ -2451,6 +2470,12 @@ have the following in your .vimrc: >
|
||||
|
||||
let filetype_m = "mma"
|
||||
|
||||
MBSYNC *mbsync.vim* *ft-mbsync-syntax*
|
||||
|
||||
The mbsync application uses a configuration file to setup mailboxes names,
|
||||
user and password. All files ending with `.mbsyncrc` or with the name
|
||||
`isyncrc` will be recognized as mbsync configuration files.
|
||||
|
||||
MEDIAWIKI *ft-mediawiki-syntax*
|
||||
|
||||
By default, syntax highlighting includes basic HTML tags like style and
|
||||
@@ -5832,6 +5857,9 @@ DiffChange Diff mode: Changed line. |diff.txt|
|
||||
DiffDelete Diff mode: Deleted line. |diff.txt|
|
||||
*hl-DiffText*
|
||||
DiffText Diff mode: Changed text within a changed line. |diff.txt|
|
||||
*hl-DiffTextAdd*
|
||||
DiffTextAdd Diff mode: Added text within a changed line. Linked to
|
||||
|hl-DiffText| by default. |diff.txt|
|
||||
*hl-EndOfBuffer*
|
||||
EndOfBuffer Filler lines (~) after the last line in the buffer.
|
||||
By default, this is highlighted like |hl-NonText|.
|
||||
|
||||
@@ -134,6 +134,8 @@ $quote eval.txt /*$quote*
|
||||
'ch' options.txt /*'ch'*
|
||||
'character' intro.txt /*'character'*
|
||||
'charconvert' options.txt /*'charconvert'*
|
||||
'chi' options.txt /*'chi'*
|
||||
'chistory' options.txt /*'chistory'*
|
||||
'ci' options.txt /*'ci'*
|
||||
'cia' options.txt /*'cia'*
|
||||
'cin' options.txt /*'cin'*
|
||||
@@ -434,6 +436,8 @@ $quote eval.txt /*$quote*
|
||||
'infercase' options.txt /*'infercase'*
|
||||
'insertmode' options.txt /*'insertmode'*
|
||||
'is' options.txt /*'is'*
|
||||
'ise' options.txt /*'ise'*
|
||||
'isexpand' options.txt /*'isexpand'*
|
||||
'isf' options.txt /*'isf'*
|
||||
'isfname' options.txt /*'isfname'*
|
||||
'isi' options.txt /*'isi'*
|
||||
@@ -463,6 +467,8 @@ $quote eval.txt /*$quote*
|
||||
'lazyredraw' options.txt /*'lazyredraw'*
|
||||
'lbr' options.txt /*'lbr'*
|
||||
'lcs' options.txt /*'lcs'*
|
||||
'lhi' options.txt /*'lhi'*
|
||||
'lhistory' options.txt /*'lhistory'*
|
||||
'linebreak' options.txt /*'linebreak'*
|
||||
'lines' options.txt /*'lines'*
|
||||
'linespace' options.txt /*'linespace'*
|
||||
@@ -843,6 +849,7 @@ $quote eval.txt /*$quote*
|
||||
'pm' options.txt /*'pm'*
|
||||
'pmbcs' options.txt /*'pmbcs'*
|
||||
'pmbfn' options.txt /*'pmbfn'*
|
||||
'pmw' options.txt /*'pmw'*
|
||||
'popt' options.txt /*'popt'*
|
||||
'pp' options.txt /*'pp'*
|
||||
'preserveindent' options.txt /*'preserveindent'*
|
||||
@@ -860,6 +867,7 @@ $quote eval.txt /*$quote*
|
||||
'prompt' options.txt /*'prompt'*
|
||||
'pt' options.txt /*'pt'*
|
||||
'pumheight' options.txt /*'pumheight'*
|
||||
'pummaxwidth' options.txt /*'pummaxwidth'*
|
||||
'pumwidth' options.txt /*'pumwidth'*
|
||||
'pvh' options.txt /*'pvh'*
|
||||
'pvp' options.txt /*'pvp'*
|
||||
@@ -2186,6 +2194,7 @@ $quote eval.txt /*$quote*
|
||||
:TermdebugCommand terminal.txt /*:TermdebugCommand*
|
||||
:Texplore pi_netrw.txt /*:Texplore*
|
||||
:Tutor pi_tutor.txt /*:Tutor*
|
||||
:URLOpen eval.txt /*:URLOpen*
|
||||
:Until terminal.txt /*:Until*
|
||||
:Up terminal.txt /*:Up*
|
||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||
@@ -4072,6 +4081,7 @@ Cmdline-mode cmdline.txt /*Cmdline-mode*
|
||||
CmdlineChanged autocmd.txt /*CmdlineChanged*
|
||||
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
||||
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||
CmdlineLeavePre autocmd.txt /*CmdlineLeavePre*
|
||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
CmdwinLeave autocmd.txt /*CmdwinLeave*
|
||||
ColorScheme autocmd.txt /*ColorScheme*
|
||||
@@ -4619,6 +4629,7 @@ E1538 eval.txt /*E1538*
|
||||
E1539 vim9.txt /*E1539*
|
||||
E154 helphelp.txt /*E154*
|
||||
E1540 eval.txt /*E1540*
|
||||
E1541 vi_diff.txt /*E1541*
|
||||
E155 sign.txt /*E155*
|
||||
E156 sign.txt /*E156*
|
||||
E157 sign.txt /*E157*
|
||||
@@ -6560,6 +6571,7 @@ close_cb channel.txt /*close_cb*
|
||||
closure eval.txt /*closure*
|
||||
cmdarg-variable eval.txt /*cmdarg-variable*
|
||||
cmdbang-variable eval.txt /*cmdbang-variable*
|
||||
cmdcomplete_info() builtin.txt /*cmdcomplete_info()*
|
||||
cmdline-arguments vi_diff.txt /*cmdline-arguments*
|
||||
cmdline-changed version5.txt /*cmdline-changed*
|
||||
cmdline-completion cmdline.txt /*cmdline-completion*
|
||||
@@ -6653,6 +6665,7 @@ complete_add() builtin.txt /*complete_add()*
|
||||
complete_check() builtin.txt /*complete_check()*
|
||||
complete_info() builtin.txt /*complete_info()*
|
||||
complete_info_mode builtin.txt /*complete_info_mode*
|
||||
complete_match() builtin.txt /*complete_match()*
|
||||
completed_item-variable eval.txt /*completed_item-variable*
|
||||
completion-functions usr_41.txt /*completion-functions*
|
||||
complex-change change.txt /*complex-change*
|
||||
@@ -7380,12 +7393,14 @@ ft-fvwm-syntax syntax.txt /*ft-fvwm-syntax*
|
||||
ft-gdscript-plugin filetype.txt /*ft-gdscript-plugin*
|
||||
ft-gitcommit-plugin filetype.txt /*ft-gitcommit-plugin*
|
||||
ft-gitrebase-plugin filetype.txt /*ft-gitrebase-plugin*
|
||||
ft-gleam-plugin filetype.txt /*ft-gleam-plugin*
|
||||
ft-go-plugin filetype.txt /*ft-go-plugin*
|
||||
ft-gprof-plugin filetype.txt /*ft-gprof-plugin*
|
||||
ft-groff-syntax syntax.txt /*ft-groff-syntax*
|
||||
ft-gsp-syntax syntax.txt /*ft-gsp-syntax*
|
||||
ft-hare filetype.txt /*ft-hare*
|
||||
ft-haskell-syntax syntax.txt /*ft-haskell-syntax*
|
||||
ft-help-omni helphelp.txt /*ft-help-omni*
|
||||
ft-html-indent indent.txt /*ft-html-indent*
|
||||
ft-html-omni insert.txt /*ft-html-omni*
|
||||
ft-html-syntax syntax.txt /*ft-html-syntax*
|
||||
@@ -7421,6 +7436,7 @@ ft-markdown-syntax syntax.txt /*ft-markdown-syntax*
|
||||
ft-masm-syntax syntax.txt /*ft-masm-syntax*
|
||||
ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
|
||||
ft-matlab-indent indent.txt /*ft-matlab-indent*
|
||||
ft-mbsync-syntax syntax.txt /*ft-mbsync-syntax*
|
||||
ft-mediawiki-syntax syntax.txt /*ft-mediawiki-syntax*
|
||||
ft-metafont ft_mp.txt /*ft-metafont*
|
||||
ft-metafont-intro ft_mp.txt /*ft-metafont-intro*
|
||||
@@ -7518,6 +7534,7 @@ ft-xml-omni insert.txt /*ft-xml-omni*
|
||||
ft-xml-syntax syntax.txt /*ft-xml-syntax*
|
||||
ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
|
||||
ft-yaml-indent indent.txt /*ft-yaml-indent*
|
||||
ft-yaml-plugin filetype.txt /*ft-yaml-plugin*
|
||||
ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
|
||||
ft-zig-plugin filetype.txt /*ft-zig-plugin*
|
||||
ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin*
|
||||
@@ -7757,7 +7774,6 @@ 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_errorwindow pi_netrw.txt /*g:netrw_use_errorwindow*
|
||||
g:netrw_use_noswf pi_netrw.txt /*g:netrw_use_noswf*
|
||||
g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
|
||||
g:netrw_usetab pi_netrw.txt /*g:netrw_usetab*
|
||||
@@ -8205,6 +8221,7 @@ hl-DiffAdd syntax.txt /*hl-DiffAdd*
|
||||
hl-DiffChange syntax.txt /*hl-DiffChange*
|
||||
hl-DiffDelete syntax.txt /*hl-DiffDelete*
|
||||
hl-DiffText syntax.txt /*hl-DiffText*
|
||||
hl-DiffTextAdd syntax.txt /*hl-DiffTextAdd*
|
||||
hl-Directory syntax.txt /*hl-Directory*
|
||||
hl-EndOfBuffer syntax.txt /*hl-EndOfBuffer*
|
||||
hl-ErrorMsg syntax.txt /*hl-ErrorMsg*
|
||||
@@ -8585,7 +8602,6 @@ jsbterm-mouse options.txt /*jsbterm-mouse*
|
||||
json.vim syntax.txt /*json.vim*
|
||||
json_decode() builtin.txt /*json_decode()*
|
||||
json_encode() builtin.txt /*json_encode()*
|
||||
jtags tagsrch.txt /*jtags*
|
||||
jump-motions motion.txt /*jump-motions*
|
||||
jumplist motion.txt /*jumplist*
|
||||
jumplist-stack motion.txt /*jumplist-stack*
|
||||
@@ -8844,6 +8860,7 @@ matlab-indent indent.txt /*matlab-indent*
|
||||
matlab-indenting indent.txt /*matlab-indenting*
|
||||
max() builtin.txt /*max()*
|
||||
maxcol-variable eval.txt /*maxcol-variable*
|
||||
mbsync.vim syntax.txt /*mbsync.vim*
|
||||
mbyte-IME mbyte.txt /*mbyte-IME*
|
||||
mbyte-XIM mbyte.txt /*mbyte-XIM*
|
||||
mbyte-combining mbyte.txt /*mbyte-combining*
|
||||
@@ -9444,6 +9461,7 @@ package-hlyank usr_05.txt /*package-hlyank*
|
||||
package-justify usr_25.txt /*package-justify*
|
||||
package-matchit usr_05.txt /*package-matchit*
|
||||
package-nohlsearch usr_05.txt /*package-nohlsearch*
|
||||
package-open eval.txt /*package-open*
|
||||
package-termdebug terminal.txt /*package-termdebug*
|
||||
package-translate_example repeat.txt /*package-translate_example*
|
||||
package-translation repeat.txt /*package-translation*
|
||||
@@ -9522,6 +9540,7 @@ phtml.vim syntax.txt /*phtml.vim*
|
||||
pi_getscript.txt pi_getscript.txt /*pi_getscript.txt*
|
||||
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
|
||||
pi_logipat.txt pi_logipat.txt /*pi_logipat.txt*
|
||||
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
|
||||
pi_paren.txt pi_paren.txt /*pi_paren.txt*
|
||||
pi_spec.txt pi_spec.txt /*pi_spec.txt*
|
||||
pi_tar.txt pi_tar.txt /*pi_tar.txt*
|
||||
@@ -9683,6 +9702,7 @@ python-2-and-3 if_pyth.txt /*python-2-and-3*
|
||||
python-Dictionary if_pyth.txt /*python-Dictionary*
|
||||
python-Function if_pyth.txt /*python-Function*
|
||||
python-List if_pyth.txt /*python-List*
|
||||
python-Tuple if_pyth.txt /*python-Tuple*
|
||||
python-VIM_SPECIAL_PATH if_pyth.txt /*python-VIM_SPECIAL_PATH*
|
||||
python-_get_paths if_pyth.txt /*python-_get_paths*
|
||||
python-bindeval if_pyth.txt /*python-bindeval*
|
||||
@@ -9760,6 +9780,7 @@ quickfix-pandoc quickfix.txt /*quickfix-pandoc*
|
||||
quickfix-parse quickfix.txt /*quickfix-parse*
|
||||
quickfix-perl quickfix.txt /*quickfix-perl*
|
||||
quickfix-size quickfix.txt /*quickfix-size*
|
||||
quickfix-stack quickfix.txt /*quickfix-stack*
|
||||
quickfix-title quickfix.txt /*quickfix-title*
|
||||
quickfix-valid quickfix.txt /*quickfix-valid*
|
||||
quickfix-window quickfix.txt /*quickfix-window*
|
||||
@@ -10666,6 +10687,7 @@ tar-contents pi_tar.txt /*tar-contents*
|
||||
tar-copyright pi_tar.txt /*tar-copyright*
|
||||
tar-history pi_tar.txt /*tar-history*
|
||||
tar-manual pi_tar.txt /*tar-manual*
|
||||
tar-mappings pi_tar.txt /*tar-mappings*
|
||||
tar-options pi_tar.txt /*tar-options*
|
||||
tar-usage pi_tar.txt /*tar-usage*
|
||||
tcl if_tcl.txt /*tcl*
|
||||
@@ -10931,6 +10953,7 @@ tuple-concatenation eval.txt /*tuple-concatenation*
|
||||
tuple-functions usr_41.txt /*tuple-functions*
|
||||
tuple-identity eval.txt /*tuple-identity*
|
||||
tuple-index eval.txt /*tuple-index*
|
||||
tuple-modification eval.txt /*tuple-modification*
|
||||
tuple-type vim9.txt /*tuple-type*
|
||||
tuple2list() builtin.txt /*tuple2list()*
|
||||
tutor usr_01.txt /*tutor*
|
||||
@@ -11359,6 +11382,7 @@ vim-modes-intro intro.txt /*vim-modes-intro*
|
||||
vim-raku ft_raku.txt /*vim-raku*
|
||||
vim-script-intro usr_41.txt /*vim-script-intro*
|
||||
vim-script-library eval.txt /*vim-script-library*
|
||||
vim-script-notation usr_41.txt /*vim-script-notation*
|
||||
vim-security intro.txt /*vim-security*
|
||||
vim-shebang various.txt /*vim-shebang*
|
||||
vim-tutor-create pi_tutor.txt /*vim-tutor-create*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 9.1. Last change: 2024 Aug 01
|
||||
*tagsrch.txt* For Vim version 9.1. Last change: 2025 May 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -526,7 +526,7 @@ directory where the tag file is.
|
||||
==============================================================================
|
||||
5. Tags file format *tags-file-format* *E431*
|
||||
|
||||
*ctags* *jtags*
|
||||
*ctags*
|
||||
A tags file can be created with an external command, for example "ctags". It
|
||||
will contain a tag for each function. Some versions of "ctags" will also make
|
||||
a tag for each "#defined" macro, typedefs, enums, etc.
|
||||
@@ -542,13 +542,11 @@ exuberant ctags This is a very good one. It works for C, C++, Java,
|
||||
many items. See http://ctags.sourceforge.net.
|
||||
No new version since 2009.
|
||||
etags Connected to Emacs. Supports many languages.
|
||||
JTags For Java, in Java. It can be found at
|
||||
http://www.fleiner.com/jtags/.
|
||||
|:helptags| For Vim's |help| files
|
||||
ptags.py For Python, in Python. Found in your Python source
|
||||
directory at Tools/scripts/ptags.py.
|
||||
ptags For Perl, in Perl. It can be found at (link seems
|
||||
dead):
|
||||
http://www.eleves.ens.fr:8080/home/nthiery/Tags/.
|
||||
ptags For Perl, in Perl. It can be found at
|
||||
https://metacpan.org/pod/Vim::Tag
|
||||
gnatxref For Ada. See http://www.gnuada.org/. gnatxref is
|
||||
part of the gnat package.
|
||||
|
||||
@@ -894,8 +892,8 @@ Common arguments for the commands above:
|
||||
7. Using 'tagfunc' *tag-function*
|
||||
|
||||
It is possible to provide Vim with a function which will generate a list of
|
||||
tags used for commands like |:tag|, |:tselect| and Normal mode tag commands
|
||||
like |CTRL-]|.
|
||||
tags used for commands like |:tag|, |:tselect|, Normal mode tag commands like
|
||||
|CTRL-]| and for the |taglist()| function.
|
||||
|
||||
The function used for generating the taglist is specified by setting the
|
||||
'tagfunc' option. The function will be called with three arguments:
|
||||
@@ -914,7 +912,7 @@ Currently up to three flags may be passed to the tag function:
|
||||
(mnemonic: the tag function may use the context around the
|
||||
cursor to perform a better job of generating the tag list.)
|
||||
'i' In Insert mode, the user was completing a tag (with
|
||||
|i_CTRL-X_CTRL-]| or 'completeopt' contains `t`).
|
||||
|i_CTRL-X_CTRL-]| or 'complete' contains "`t`" or "`]`").
|
||||
'r' The first argument to tagfunc should be interpreted as a
|
||||
|pattern| (see |tag-regexp|), such as when using: >
|
||||
:tag /pat
|
||||
@@ -950,15 +948,14 @@ It is not allowed to close a window or change window from inside 'tagfunc'.
|
||||
The following is a hypothetical example of a function used for 'tagfunc'. It
|
||||
uses the output of |taglist()| to generate the result: a list of tags in the
|
||||
inverse order of file names.
|
||||
>
|
||||
function TagFunc(pattern, flags, info)
|
||||
function CompareFilenames(item1, item2)
|
||||
let f1 = a:item1['filename']
|
||||
let f2 = a:item2['filename']
|
||||
return f1 >=# f2 ?
|
||||
\ -1 : f1 <=# f2 ? 1 : 0
|
||||
endfunction
|
||||
>vim
|
||||
function CompareFilenames(item1, item2)
|
||||
let f1 = a:item1['filename']
|
||||
let f2 = a:item2['filename']
|
||||
return f1 >=# f2 ? -1 : f1 <=# f2 ? 1 : 0
|
||||
endfunction
|
||||
|
||||
function TagFunc(pattern, flags, info)
|
||||
let result = taglist(a:pattern)
|
||||
call sort(result, "CompareFilenames")
|
||||
|
||||
@@ -966,5 +963,7 @@ inverse order of file names.
|
||||
endfunc
|
||||
set tagfunc=TagFunc
|
||||
<
|
||||
Note: When executing |taglist()| the 'tagfunc' function won't be called
|
||||
recursively.
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*testing.txt* For Vim version 9.1. Last change: 2025 Mar 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -68,7 +68,7 @@ test_feedinput({string}) *test_feedinput()*
|
||||
|
||||
|
||||
test_garbagecollect_now() *test_garbagecollect_now()*
|
||||
Like garbagecollect(), but executed right away. This must
|
||||
Like |garbagecollect()|, but executed right away. This must
|
||||
only be called directly to avoid any structure to exist
|
||||
internally, and |v:testing| must have been set before calling
|
||||
any function. *E1142*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Mar 08
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Apr 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -357,8 +357,6 @@ https://github.com/vim/vim/pull/5566
|
||||
|
||||
PR #11579 to add visualtext(), return Visually selected text.
|
||||
|
||||
PR #12032: Support Python 3 stable ABI.
|
||||
|
||||
PR #11860: Add more info to 'colorcolumn': display a character and highlight
|
||||
for each separate entry. Disadvantage: option value gets very complicated
|
||||
with multiple entries, e.g. every 8 columns.
|
||||
@@ -706,8 +704,6 @@ find them. (Max Kukartsev, #6218)
|
||||
|
||||
Enable 'termbidi' if $VTE_VERSION >= 5703 ?
|
||||
|
||||
Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
|
||||
"--cleanFOO" does not result in an error. (#5537)
|
||||
|
||||
Output from assert_equalfile() doesn't give a hint about what's different.
|
||||
@@ -1490,8 +1486,6 @@ github with a URL like this:
|
||||
https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
|
||||
Diff for version.c contains more context, can't skip a patch.
|
||||
|
||||
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
|
||||
Comparing nested structures with "==" uses a different comparator than when
|
||||
comparing individual items.
|
||||
|
||||
@@ -1514,9 +1508,6 @@ C highlighting: modern C allows: /* comment */ #ifdef
|
||||
and also line continuation after #include.
|
||||
I can't recommend it though.
|
||||
|
||||
Build with Python on Mac does not always use the right library.
|
||||
(Kazunobu Kuriyama, 2015 Mar 28)
|
||||
|
||||
To support Thai (and other languages) word boundaries, include the ICU
|
||||
library: http://userguide.icu-project.org/boundaryanalysis
|
||||
|
||||
@@ -1793,13 +1784,6 @@ Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
|
||||
b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
|
||||
7)
|
||||
|
||||
Win32: The Python interface only works with one version of Python, selected at
|
||||
compile time. Can this be made to work with version 2.1 and 2.2 dynamically?
|
||||
|
||||
Python: Be able to define a Python function that can be called directly from
|
||||
Vim script. Requires converting the arguments and return value, like with
|
||||
vim.bindeval().
|
||||
|
||||
Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
|
||||
2012 Aug 4)
|
||||
|
||||
@@ -2912,6 +2896,20 @@ Quickfix/Location List:
|
||||
7 Add a command that goes back to the position from before jumping to the
|
||||
first quickfix location.
|
||||
|
||||
|
||||
Python Interface:
|
||||
- Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
- Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
- Build with Python on Mac does not always use the right library.
|
||||
(Kazunobu Kuriyama, 2015 Mar 28)
|
||||
- Win32: The Python interface only works with one version of Python,
|
||||
selected at compile time. Can this be made to work with version 2.1 and
|
||||
2.2 dynamically?
|
||||
- Be able to define a Python function that can be called directly from Vim
|
||||
script. Requires converting the arguments and return value, like with
|
||||
vim.bindeval().
|
||||
|
||||
|
||||
Vi incompatibility:
|
||||
- Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
|
||||
Version 1.5 is in ~/src/posix/1.5. (Lynne Canal)
|
||||
@@ -4751,20 +4749,10 @@ Insert mode completion/expansion:
|
||||
7 When expanding file names with an environment variable, add the match with
|
||||
the unexpanded var. So $HOME/tm expands to "/home/guy/tmp" and
|
||||
"$HOME/tmp"
|
||||
8 When there is no word before the cursor but something like "sys." complete
|
||||
with "sys.". Works well for C and similar languages.
|
||||
9 ^X^L completion doesn't repeat correctly. It uses the first match with
|
||||
the last added line, instead of continuing where the last match ended.
|
||||
(Webb)
|
||||
8 Add option to set different behavior for Insert mode completion:
|
||||
- ignore/match case
|
||||
- different characters than 'iskeyword'
|
||||
8 Add option 'isexpand', containing characters when doing expansion (so that
|
||||
"." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
|
||||
Also: 'istagword': characters used for CTRL-].
|
||||
When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
|
||||
Alternative: Use a pattern so that start and end of a keyword can be
|
||||
defined, only allow dash in the middle, etc.
|
||||
8 Add option 'istagword': characters used for CTRL-]. like 'isexpand'
|
||||
8 Add a command to undo the completion, go back to the original text.
|
||||
7 Completion of an abbreviation: Can leave letters out, like what Instant
|
||||
text does: www.textware.com
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Mar 22
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Apr 10
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -307,23 +307,27 @@ This switches on three very clever mechanisms:
|
||||
filetypes. See |:filetype-indent-on| and 'indentexpr'.
|
||||
|
||||
|
||||
*restore-cursor* *last-position-jump* >
|
||||
*restore-cursor* *last-position-jump* >vim
|
||||
augroup RestoreCursor
|
||||
autocmd!
|
||||
autocmd BufReadPost *
|
||||
\ let line = line("'\"")
|
||||
\ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
|
||||
\ && index(['xxd', 'gitrebase'], &filetype) == -1
|
||||
\ && !&diff
|
||||
\ | execute "normal! g`\""
|
||||
\ | endif
|
||||
augroup END
|
||||
|
||||
Another autocommand. This time it is used after reading any file. The
|
||||
complicated stuff after it checks if the '" mark is defined, and jumps to it
|
||||
if so. It doesn't do that for a commit or rebase message, which are likely
|
||||
a different one than last time, and when using xxd(1) to filter and edit
|
||||
binary files, which transforms input files back and forth, causing them to
|
||||
have dual nature, so to speak. See also |using-xxd|.
|
||||
if so. It doesn't do that when:
|
||||
- editing a commit or rebase message, which are likely a different one than
|
||||
last time,
|
||||
- using xxd(1) to filter and edit binary files, which transforms input files
|
||||
back and forth, causing them to have dual nature, so to speak (see also
|
||||
|using-xxd|) and
|
||||
- Vim is in diff mode
|
||||
|
||||
The backslash at the start of a line is used to continue the command from the
|
||||
previous line. That avoids a line getting very long. See |line-continuation|.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -35,8 +35,10 @@ like for example .vim files or configuration files like .vimrc and .gvimrc.
|
||||
These scripts may define functions, commands and settings that Vim uses to
|
||||
customize and extend its behavior.
|
||||
|
||||
With a slight abuse of nomenclature, we will use "Vim script" to refer to the
|
||||
Vim scripting language throughout this documentation. This shorthand helps to
|
||||
*vim-script-notation*
|
||||
The correct notation is "Vim script" (or "Vim9 script" when refering to the
|
||||
new Vim9 language |Vim9-script|), so we will use "Vim script" to refer to the
|
||||
Vim scripting language throughout this documentation. This shorthand helps to
|
||||
streamline explanations and discussions about scripting with Vim.
|
||||
|
||||
A Vim plugin is a collection of one or more Vim scripts, along with additional
|
||||
@@ -862,7 +864,7 @@ Tuple manipulation: *tuple-functions*
|
||||
reverse() reverse the order of items in a Tuple
|
||||
slice() take a slice of a Tuple
|
||||
string() string representation of a Tuple
|
||||
tuple2list() convert a Tuple of items into a list
|
||||
tuple2list() convert a Tuple into a List
|
||||
|
||||
Dictionary manipulation: *dict-functions*
|
||||
get() get an entry without an error for a wrong key
|
||||
@@ -1111,6 +1113,7 @@ Command line: *command-line-functions*
|
||||
getcmdwintype() return the current command-line window type
|
||||
getcompletion() list of command-line completion matches
|
||||
fullcommand() get full command name
|
||||
cmdcomplete_info() get command-line completion information
|
||||
|
||||
Quickfix and location lists: *quickfix-functions*
|
||||
getqflist() list of quickfix errors
|
||||
@@ -1123,6 +1126,8 @@ Insert mode completion: *completion-functions*
|
||||
complete_add() add to found matches
|
||||
complete_check() check if completion should be aborted
|
||||
complete_info() get current completion information
|
||||
complete_match() get insert completion start match col and
|
||||
trigger text
|
||||
pumvisible() check if the popup menu is displayed
|
||||
pum_getpos() position and size of popup menu if visible
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.1. Last change: 2025 Feb 13
|
||||
*various.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -98,7 +98,9 @@ g8 Print the hex values of the bytes used in the
|
||||
|
||||
*:p* *:pr* *:print* *E749*
|
||||
:[range]p[rint] [flags]
|
||||
Print [range] lines (default current line).
|
||||
Print [range] lines (default current line). Can also
|
||||
be spelled `:[range]|` due to Vi compatibility (see
|
||||
|:bar|). Gives an error in an empty buffer.
|
||||
Note: If you are looking for a way to print your text
|
||||
on paper see |:hardcopy|. In the GUI you can use the
|
||||
File.Print menu entry.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Apr 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -41553,6 +41553,18 @@ Enum support for Vim9 script |:enum|
|
||||
|
||||
Support for protected _new() method
|
||||
|
||||
Add support for object<{type}> as variable data type |vim9-types|
|
||||
|
||||
Diff mode ~
|
||||
---------
|
||||
Include the "linematch" algorithm for the 'diffopt' setting. This aligns
|
||||
changes between buffers on similar lines improving the diff highlighting in
|
||||
Vim
|
||||
|
||||
Improve the diff highlighting for changes within a line. Configurable using
|
||||
the "inline" sub option value for the 'diffopt' setting, with "inline:simple"
|
||||
being added to the default "diffopt" value (but this does not change how diff
|
||||
mode works).
|
||||
*new-other-9.2*
|
||||
Other new features ~
|
||||
------------------
|
||||
@@ -41570,10 +41582,6 @@ Support highlighting the matched text and the completion kind for insert-mode
|
||||
completion and command-line completion in |ins-completion-menu|, see
|
||||
|complete-items|
|
||||
|
||||
Include the "linematch" algorithm for the 'diffopt' setting. This aligns
|
||||
changes between buffers on similar lines improving the diff highlighting in
|
||||
Vim
|
||||
|
||||
Support for the |Tuple| data type in Vim script and Vim9 script.
|
||||
|
||||
*changed-9.2*
|
||||
@@ -41586,11 +41594,10 @@ Default values: ~
|
||||
- the default 'backspace' option for Vim has been set to "indent,eol,start"
|
||||
and removed from |defaults.vim|
|
||||
- the default fontsize for the GTK builds of Vim (Windows and Unix) has been
|
||||
increased to 12pt to accomodate modern high-dpi monitors
|
||||
increased to 12pt to accommodate modern high-dpi monitors
|
||||
- the default value of the 'keyprotocol' option has been updated and support
|
||||
for the ghostty terminal emulator (using kitty protocol) has been added
|
||||
|
||||
|
||||
Completion: ~
|
||||
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
|
||||
add the "cd_in_path" completion type for e.g. |:command-complete| and
|
||||
@@ -41606,10 +41613,19 @@ Completion: ~
|
||||
- New option value for 'completeopt':
|
||||
"nosort" - do not sort completion results
|
||||
"preinsert" - highlight to be inserted values
|
||||
- handle multi-line completion as expected
|
||||
"nearest" - sort completion results by distance to cursor
|
||||
- handle multi-line completion items as expected
|
||||
- improved commandline completion for the |:hi| command
|
||||
- New option value for 'wildmode':
|
||||
"noselect" - do not auto select an entry in the wildmenu
|
||||
- New flags for 'complete':
|
||||
"f{func}" - complete using given function
|
||||
"f" - complete using 'completefunc'
|
||||
"o" - complete using 'omnifunc'
|
||||
- allow to limit matches for the 'complete' sources by using the
|
||||
"{flag}^<limit>" notation
|
||||
- add ":filetype" command completion
|
||||
- add "filetypecmd" completion type for |getcompletion()|
|
||||
|
||||
Options: ~
|
||||
- the default for 'commentstring' contains whitespace padding to have
|
||||
@@ -41622,6 +41638,9 @@ Options: ~
|
||||
- 'rulerformat' now supports the |stl-%!| item
|
||||
- use 'smoothscroll' logic for CTRL-F / CTRL-B for pagewise scrolling
|
||||
and CTRL-D / CTRL-U for half-pagewise scrolling
|
||||
- New option value for 'fillchars':
|
||||
"trunc" - configure truncation indicator, 'pummaxwidth'
|
||||
"truncrl" - like "trunc" but in 'rl' mode, 'pummaxwidth'
|
||||
|
||||
Ex commands: ~
|
||||
- allow to specify a priority when defining a new sign |:sign-define|
|
||||
@@ -41668,6 +41687,8 @@ Functions: ~
|
||||
|base64_encode()| encode a blob into a base64 string
|
||||
|blob2str()| convert a blob into a List of strings
|
||||
|bindtextdomain()| set message lookup translation base path
|
||||
|cmdcomplete_info()| get current cmdline completion info
|
||||
|complete_match()| get completion and trigger info
|
||||
|diff()| diff two Lists of strings
|
||||
|filecopy()| copy a file {from} to {to}
|
||||
|foreach()| apply function to List items
|
||||
@@ -41691,6 +41712,7 @@ Functions: ~
|
||||
|
||||
Autocommands: ~
|
||||
|
||||
|CmdlineLeavePre| before preparing to leave the command line
|
||||
|CursorMovedC| after the cursor was moved in the command-line
|
||||
|KeyInputPre| before processing any key event in any mode
|
||||
|SessionWritePost| after writing the session file |:mksession|
|
||||
@@ -41702,7 +41724,8 @@ Autocommands: ~
|
||||
|
||||
Highlighting: ~
|
||||
|
||||
|hl-ComplMatchIns| matched text of the currently inserted completion.
|
||||
|hl-ComplMatchIns| matched text of the currently inserted completion
|
||||
|hl-DiffTextAdd| added text within a changed line
|
||||
|hl-MsgArea| highlighting of the Command-line and messages area
|
||||
|hl-PmenuMatch| Popup menu: highlighting of matched text
|
||||
|hl-PmenuMatchSel| Popup menu: highlighting of matched text in selected
|
||||
@@ -41720,18 +41743,22 @@ Ex-Commands: ~
|
||||
|
||||
Options: ~
|
||||
|
||||
'completefuzzycollect' Enable fuzzy collection of candiates for (some)
|
||||
'chistory' Size of the quickfix stack |quickfix-stack|.
|
||||
'completefuzzycollect' Enable fuzzy collection of candidates for (some)
|
||||
|ins-completion| modes
|
||||
'completeitemalign' Order of |complete-items| in Insert mode completion
|
||||
popup
|
||||
'eventignorewin' autocommand events that are ignored in a window
|
||||
'findfunc' Vim function to obtain the results for a |:find|
|
||||
command
|
||||
'isexpand' defines triggers for completion
|
||||
'lhistory' Size of the location list stack |quickfix-stack|.
|
||||
'messagesopt' configure |:messages| and |hit-enter| prompt
|
||||
'winfixbuf' Keep buffer focused in a window
|
||||
'pummaxwidth' maximum width for the completion popup menu
|
||||
'tabclose' Which tab page to focus after closing a tab page
|
||||
't_xo' Terminal uses XON/XOFF handshaking (e.g. vt420)
|
||||
't_CF' Support for alternate font highlighting terminal code
|
||||
'winfixbuf' Keep buffer focused in a window
|
||||
|
||||
==============================================================================
|
||||
INCOMPATIBLE CHANGES *incompatible-9.2*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 9.1. Last change: 2024 Nov 10
|
||||
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -91,8 +91,11 @@ Maximum display width Unix and Win32: 1024 characters, otherwise 255
|
||||
Maximum lhs of a mapping 50 characters.
|
||||
Number of different highlighting types: over 30000
|
||||
Range of a Number variable: -2147483648 to 2147483647 (might be more on 64
|
||||
bit systems)
|
||||
bit systems) See also: |v:numbermax|,
|
||||
|v:numbermin| and |v:numbersize|
|
||||
Maximum length of a line in a tags file: 512 bytes.
|
||||
*E1541*
|
||||
Maximum value for |/\U| and |/\%U|: 2147483647 (for 32bit integer).
|
||||
|
||||
Information for undo and text in registers is kept in memory, thus when making
|
||||
(big) changes the amount of (virtual) memory available limits the number of
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1467,6 +1467,7 @@ The following builtin types are supported:
|
||||
blob
|
||||
list<{type}>
|
||||
dict<{type}>
|
||||
object<{type}>
|
||||
job
|
||||
channel
|
||||
tuple<{type}>
|
||||
@@ -1492,11 +1493,11 @@ tuple<number> a tuple with a single item of type |Number|
|
||||
tuple<number, string> a tuple with two items of type |Number| and
|
||||
|String|
|
||||
tuple<number, float, bool> a tuple with three items of type |Number|,
|
||||
|Float| and |Boolean|.
|
||||
|Float| and |Boolean|
|
||||
tuple<...list<number>> a variadic tuple with zero or more items of
|
||||
type |Number|.
|
||||
type |Number|
|
||||
tuple<number, ...list<string>> a tuple with an item of type |Number| followed
|
||||
by zero or more items of type |String|.
|
||||
by zero or more items of type |String|
|
||||
|
||||
Examples: >
|
||||
var myTuple: tuple<number> = (20,)
|
||||
@@ -2042,7 +2043,7 @@ The script name after `import` can be:
|
||||
|
||||
If the name does not end in ".vim" then the use of "as name" is required.
|
||||
|
||||
Once a vim9 script file has been imported, the result is cached and used the
|
||||
Once a Vim9 script file has been imported, the result is cached and used the
|
||||
next time the same script is imported. It will not be read again.
|
||||
|
||||
It is not allowed to import the same script twice, also when using two
|
||||
@@ -2055,7 +2056,7 @@ line, there can be no line break: >
|
||||
echo that
|
||||
.name # Error!
|
||||
< *import-map*
|
||||
When you've imported a function from one script into a vim9 script you can
|
||||
When you've imported a function from one script into a Vim9 script you can
|
||||
refer to the imported function in a mapping by prefixing it with |<SID>|: >
|
||||
noremap <silent> ,a :call <SID>name.Function()<CR>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2025 Feb 16
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -641,8 +641,8 @@ class, then the type of the variable is set.
|
||||
|
||||
The following reserved keyword names cannot be used as an object or class
|
||||
variable name: "super", "this", "true", "false", "null", "null_blob",
|
||||
"null_dict", "null_function", "null_list", "null_partial", "null_string",
|
||||
"null_channel" and "null_job".
|
||||
"null_channel", "null_class", "null_dict", "null_function", "null_job",
|
||||
"null_list", "null_object", "null_partial" and "null_string".
|
||||
|
||||
Extending a class ~
|
||||
*extends*
|
||||
@@ -1067,6 +1067,21 @@ The above enum definition is equivalent to the following class definition: >
|
||||
public const ordinal: number
|
||||
endclass
|
||||
<
|
||||
A enum can contain object variables and methods just like a regular class: >
|
||||
|
||||
enum Color
|
||||
Cyan([0, 255, 255]),
|
||||
Magenta([255, 0, 255]),
|
||||
Gray([128, 128, 128])
|
||||
|
||||
var rgb_values: list<number>
|
||||
|
||||
def Get_RGB(): list<number>
|
||||
return this.rgb_values
|
||||
enddef
|
||||
endenum
|
||||
echo Color.Magenta.Get_RGB()
|
||||
<
|
||||
==============================================================================
|
||||
|
||||
9. Rationale
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 9.1. Last change: 2025 Jan 02
|
||||
*windows.txt* For Vim version 9.1. Last change: 2025 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1289,7 +1289,9 @@ list of buffers. |unlisted-buffer|
|
||||
name also works, so long as it is unique in the list of
|
||||
buffers.
|
||||
Note that a buffer whose name is a number cannot be referenced
|
||||
by that name; use the buffer number instead.
|
||||
by that name; use the buffer number instead. Same is true if
|
||||
the buffer name starts with a `+`, it will be interpreted as
|
||||
the start of a |+cmd|.
|
||||
Insert a backslash before a space in a buffer name.
|
||||
See |:buffer-!| for [!].
|
||||
This will also edit a buffer that is not in the buffer list,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Mar 18
|
||||
" Last Change: 2025 Apr 24
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
@@ -53,7 +53,7 @@ endfunc
|
||||
|
||||
" Vim help file, set ft explicitly, because 'modeline' might be off
|
||||
au BufNewFile,BufRead */doc/*.txt
|
||||
\ if getline('$') =~ '\(^\|\s\)vim:.*\<\(ft\|filetype\)=help\>'
|
||||
\ if getline('$') =~ '\%(^\|\s\)vim:\%(.*\%(:\|\s\)\)\?\%(ft\|filetype\)=help\%(:\|\s\|$\)'
|
||||
\| setf help
|
||||
\| endif
|
||||
|
||||
@@ -429,13 +429,15 @@ if has("fname_case")
|
||||
au BufNewFile,BufRead *.C,*.H if !&fileignorecase | setf cpp | endif
|
||||
endif
|
||||
|
||||
" MS files (ixx: C++ module interface file, Microsoft Project file)
|
||||
au BufNewFile,BufRead *.ixx,*.mpp setf cpp
|
||||
|
||||
" C++ 20 modules (clang)
|
||||
" https://clang.llvm.org/docs/StandardCPlusPlusModules.html#file-name-requirement
|
||||
au BufNewFile,BufRead *.cppm,*.ccm,*.cxxm,*.c++m setf cpp
|
||||
|
||||
" .h files can be C, Ch C++, ObjC or ObjC++.
|
||||
" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
|
||||
" detected automatically.
|
||||
" .h files can be C, C++, Ch, Objective-C, or Objective-C++.
|
||||
" Set g_filetype_h to set a different filetype
|
||||
au BufNewFile,BufRead *.h call dist#ft#FTheader()
|
||||
|
||||
" Ch (CHscript)
|
||||
@@ -561,6 +563,9 @@ au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||
" Cue
|
||||
au BufNewFile,BufRead *.cue setf cue
|
||||
|
||||
" DAX
|
||||
au BufNewFile,BufRead *.dax setf dax
|
||||
|
||||
" Debian devscripts
|
||||
au BufNewFile,BufRead devscripts.conf,.devscripts setf sh
|
||||
|
||||
@@ -1551,7 +1556,7 @@ au BufNewFile,BufRead *.nb,*.wl setf mma
|
||||
au BufNewFile,BufRead *.mel setf mel
|
||||
|
||||
" mbsync
|
||||
au BufNewFile,BufRead .mbsyncrc setf conf
|
||||
au BufNewFile,BufRead *.mbsyncrc,isyncrc setf mbsync
|
||||
|
||||
" mcmeta
|
||||
au BufNewFile,BufRead *.mcmeta setf json
|
||||
@@ -1723,7 +1728,7 @@ au BufNewFile,BufRead *.me
|
||||
\ setf nroff |
|
||||
\ endif
|
||||
au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff
|
||||
au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff()
|
||||
au BufNewFile,BufRead *.[0-9],*.[013]p,*.[1-8]x,*.3{am,perl,pm,posix,type},*.n call dist#ft#FTnroff()
|
||||
|
||||
" Nroff or Objective C++
|
||||
au BufNewFile,BufRead *.mm call dist#ft#FTmm()
|
||||
@@ -1777,6 +1782,9 @@ au BufNewFile,BufRead .ondirrc setf ondir
|
||||
" OPAM
|
||||
au BufNewFile,BufRead opam,*.opam,*.opam.template,opam.locked,*.opam.locked setf opam
|
||||
|
||||
" OpenAL Soft config files
|
||||
au BufNewFile,BufRead .alsoftrc,alsoft.conf,alsoft.ini,alsoftrc.sample setf dosini
|
||||
|
||||
" OpenFOAM
|
||||
au BufNewFile,BufRead [a-zA-Z0-9]*Dict\(.*\)\=,[a-zA-Z]*Properties\(.*\)\=,*Transport\(.*\),fvSchemes,fvSolution,fvConstrains,fvModels,*/constant/g,*/0\(\.orig\)\=/* call dist#ft#FTfoam()
|
||||
|
||||
@@ -1964,6 +1972,9 @@ au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1
|
||||
au BufNewFile,BufRead *.ps1xml setf ps1xml
|
||||
au BufNewFile,BufRead *.cdxml,*.psc1 setf xml
|
||||
|
||||
" Power Query M
|
||||
au BufNewFile,BufRead *.pq setf pq
|
||||
|
||||
" Printcap and Termcap
|
||||
au BufNewFile,BufRead *printcap
|
||||
\ let b:ptcap_type = "print" | setf ptcap
|
||||
@@ -2050,9 +2061,9 @@ au BufNewFile,BufRead *.arr setf pyret
|
||||
au BufNewFile,BufRead *.pyx,*.pyx+,*.pxd,*.pxi setf pyrex
|
||||
|
||||
" Python, Python Shell Startup and Python Stub Files
|
||||
" Quixote (Python-based web framework)
|
||||
" Quixote (Python-based web framework) and IPython
|
||||
au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc,.python_history,.jline-jython.history setf python
|
||||
au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
|
||||
au BufNewFile,BufRead *.ipy,*.ptl,*.pyi,SConstruct setf python
|
||||
|
||||
" QL
|
||||
au BufRead,BufNewFile *.ql,*.qll setf ql
|
||||
@@ -3180,7 +3191,7 @@ au BufNewFile,BufRead */etc/sensors.d/[^.]* call s:StarSetf('sensors')
|
||||
au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck')
|
||||
|
||||
" Makefile
|
||||
au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
|
||||
au BufNewFile,BufRead [mM]akefile* if expand('<afile>:t') !~ g:ft_ignore_pat | call dist#ft#FTmake() | endif
|
||||
|
||||
" Ruby Makefile
|
||||
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
|
||||
|
||||
16
runtime/ftplugin/dax.vim
Normal file
16
runtime/ftplugin/dax.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Data Analysis Expressions (DAX)
|
||||
" Maintainer: Anarion Dunedain <anarion80@gmail.com>
|
||||
" Last Change: 2025 Apr 2
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
@@ -2,9 +2,12 @@
|
||||
" Language: fstab file
|
||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||
" URL: https://raw.github.com/rid9/vim-fstab/master/ftplugin/fstab.vim
|
||||
" Last Change: 2021 Jan 02
|
||||
" 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" Version: 1.0
|
||||
" Last Change: 2025 Mar 31
|
||||
" Version: 1.0.1
|
||||
"
|
||||
" Changelog:
|
||||
" - 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" - 2025 Mar 31 added setlocal formatoptions-=t
|
||||
"
|
||||
" Credits:
|
||||
" Subhaditya Nath <sn03.general@gmail.com>
|
||||
@@ -15,6 +18,8 @@ endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
let b:undo_ftplugin = "setlocal commentstring<"
|
||||
setlocal formatoptions-=t
|
||||
|
||||
let b:undo_ftplugin = "setlocal commentstring< formatoptions<"
|
||||
|
||||
" vim: ts=8 ft=vim
|
||||
|
||||
@@ -1,16 +1,33 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Gleam
|
||||
" Maintainer: Trilowy (https://github.com/trilowy)
|
||||
" Last Change: 2024 Oct 13
|
||||
" Language: Gleam
|
||||
" Maintainer: Kirill Morozov <kirill@robotix.pro>
|
||||
" Previous Maintainer: Trilowy (https://github.com/trilowy)
|
||||
" Based On: https://github.com/gleam-lang/gleam.vim
|
||||
" Last Change: 2025 Apr 21
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=://,:///,:////
|
||||
setlocal comments=:////,:///,://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal formatprg=gleam\ format\ --stdin
|
||||
setlocal suffixesadd=.gleam
|
||||
let b:undo_ftplugin = "setlocal com< cms< fp< sua<"
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< commentstring<"
|
||||
if get(g:, "gleam_recommended_style", 1)
|
||||
setlocal expandtab
|
||||
setlocal shiftwidth=2
|
||||
setlocal smartindent
|
||||
setlocal softtabstop=2
|
||||
setlocal tabstop=2
|
||||
let b:undo_ftplugin ..= " | setlocal et< sw< si< sts< ts<"
|
||||
endif
|
||||
|
||||
if !exists('current_compiler')
|
||||
compiler gleam_build
|
||||
let b:undo_ftplugin ..= "| compiler make"
|
||||
endif
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
@@ -5,12 +5,16 @@
|
||||
" 2024 Jul 16 by Vim Project (add recommended indent style)
|
||||
" 2025 Mar 07 by Vim Project (add formatprg and keywordprg option #16804)
|
||||
" 2025 Mar 18 by Vim Project (use :term for 'keywordprg' #16911)
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal formatprg=gofmt
|
||||
|
||||
@@ -45,4 +49,7 @@ if !exists('*' .. expand('<SID>') .. 'GoKeywordPrg')
|
||||
endfunc
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
15
runtime/ftplugin/groff.vim
Normal file
15
runtime/ftplugin/groff.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
" Vim syntax file
|
||||
" Language: groff(7)
|
||||
" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
|
||||
" Last Change: 2025 Apr 24
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:nroff_is_groff = 1
|
||||
|
||||
runtime! ftplugin/nroff.vim
|
||||
|
||||
let b:undo_ftplugin .= '| unlet! b:nroff_is_groff'
|
||||
let b:did_ftplugin = 1
|
||||
@@ -2,12 +2,16 @@
|
||||
" Language: HEEx
|
||||
" Maintainer: Mitchell Hanberg <vimNOSPAM@mitchellhanberg.com>
|
||||
" Last Change: 2022 Sep 21
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal shiftwidth=2 softtabstop=2 expandtab
|
||||
|
||||
setlocal comments=:<%!--
|
||||
@@ -25,3 +29,6 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ '<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Vim help file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2018-12-29
|
||||
" Last Change: 2025 Apr 08
|
||||
" 2025 Apr 08 by Vim project (set 'omnifunc' and 'iskeyword', #17073)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -11,12 +12,33 @@ let b:did_ftplugin = 1
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl fo< tw< cole< cocu< keywordprg<"
|
||||
let b:undo_ftplugin = "setl isk< fo< tw< cole< cocu< keywordprg< omnifunc<"
|
||||
|
||||
setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help
|
||||
setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help omnifunc=s:HelpComplete
|
||||
let &l:iskeyword='!-~,^*,^|,^",192-255'
|
||||
if has("conceal")
|
||||
setlocal cole=2 cocu=nc
|
||||
endif
|
||||
|
||||
if !exists('*s:HelpComplete')
|
||||
func s:HelpComplete(findstart, base)
|
||||
if a:findstart
|
||||
let colnr = col('.') - 1 " Get the column number before the cursor
|
||||
let line = getline('.')
|
||||
for i in range(colnr - 1, 0, -1)
|
||||
if line[i] ==# '|'
|
||||
return i + 1 " Don't include the `|` in base
|
||||
elseif line[i] ==# "'"
|
||||
return i " Include the `'` in base
|
||||
endif
|
||||
endfor
|
||||
else
|
||||
return taglist('^' .. a:base)
|
||||
\ ->map({_, item -> #{word: item->get('name'), kind: item->get('kind')}})
|
||||
\ ->extend(getcompletion(a:base, 'help'))
|
||||
endif
|
||||
endfunc
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
22
runtime/ftplugin/lf.vim
Normal file
22
runtime/ftplugin/lf.vim
Normal file
@@ -0,0 +1,22 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: lf file manager configuration file (lfrc)
|
||||
" Maintainer: Andis Sprinkis <andis@sprinkis.com>
|
||||
" URL: https://github.com/andis-sprinkis/lf-vim
|
||||
" Last Change: 6 Apr 2025
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< commentstring< formatoptions<"
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=rol
|
||||
|
||||
let &cpo = s:cpo
|
||||
unlet s:cpo
|
||||
@@ -2,7 +2,9 @@
|
||||
" Language: LambdaProlog (Teyjus)
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" URL: http://www.ocaml.info/vim/ftplugin/lprolog.vim
|
||||
" Last Change: 2023 Aug 28 - added undo_ftplugin (Vim Project)
|
||||
" Last Change: 2025 Apr 16
|
||||
" 2025 Apr 16 - set 'cpoptions' for line continuation
|
||||
" 2023 Aug 28 - added undo_ftplugin (Vim Project)
|
||||
" 2006 Feb 05
|
||||
" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
|
||||
" 2001 Sep 02 - initial release (MM)
|
||||
@@ -12,6 +14,9 @@ if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Don't do other file type settings for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
@@ -43,3 +48,6 @@ if !exists("no_plugin_maps") && !exists("no_lprolog_maps")
|
||||
vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i/*<ESC>`>o<ESC>0i*/<ESC>`<
|
||||
vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
" Vim filetype plugin file.
|
||||
|
||||
" Language: Lua
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Max Ischenko <mfi@ukr.net>
|
||||
@@ -6,7 +7,8 @@
|
||||
" C.D. MacEachern <craig.daniel.maceachern@gmail.com>
|
||||
" Tyler Miller <tmillr@proton.me>
|
||||
" Phạm Bình An <phambinhanctb2004@gmail.com>
|
||||
" Last Change: 2025 Feb 27
|
||||
" @konfekt
|
||||
" Last Change: 2025 Apr 04
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -61,7 +63,7 @@ endif
|
||||
|
||||
if has("folding") && get(g:, "lua_folding", 0)
|
||||
setlocal foldmethod=expr
|
||||
setlocal foldexpr=s:LuaFold(v:lnum)
|
||||
setlocal foldexpr=s:LuaFold()
|
||||
let b:lua_lasttick = -1
|
||||
let b:undo_ftplugin ..= " | setl foldexpr< foldmethod< | unlet! b:lua_lasttick b:lua_foldlists"
|
||||
endif
|
||||
@@ -97,9 +99,9 @@ let s:patterns = [
|
||||
\ ['local\s+function\s+.+', 'end'],
|
||||
\ ]
|
||||
|
||||
function s:LuaFold(lnum) abort
|
||||
function s:LuaFold() abort
|
||||
if b:lua_lasttick == b:changedtick
|
||||
return b:lua_foldlists[a:lnum - 1]
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
endif
|
||||
let b:lua_lasttick = b:changedtick
|
||||
|
||||
@@ -108,26 +110,78 @@ function s:LuaFold(lnum) abort
|
||||
let buf = getline(1, "$")
|
||||
for line in buf
|
||||
for t in s:patterns
|
||||
let open = 0
|
||||
let end = 0
|
||||
let tagopen = '\v^\s*' .. t[0] ..'\s*$'
|
||||
let tagclose = '\v^\s*' .. t[1] ..'\s*$'
|
||||
let tagend = '\v^\s*' .. t[1] ..'\s*$'
|
||||
if line =~# tagopen
|
||||
call add(foldlist, t)
|
||||
let open = 1
|
||||
break
|
||||
elseif line =~# tagclose
|
||||
elseif line =~# tagend
|
||||
if len(foldlist) > 0 && line =~# foldlist[-1][1]
|
||||
call remove(foldlist, -1)
|
||||
let end = 1
|
||||
else
|
||||
let foldlist = []
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
call add(b:lua_foldlists, len(foldlist))
|
||||
let prefix = ""
|
||||
if open == 1 | let prefix = ">" | endif
|
||||
if end == 1 | let prefix = "<" | endif
|
||||
let b:lua_foldlists += [prefix..(len(foldlist) + end)]
|
||||
endfor
|
||||
|
||||
return lua_foldlists[a:lnum - 1]
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
endfunction
|
||||
|
||||
if !has('vim9script')
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
finish
|
||||
endif
|
||||
|
||||
delfunction! s:LuaFold
|
||||
def s:LuaFold(): string
|
||||
if b:lua_lasttick == b:changedtick
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
endif
|
||||
b:lua_lasttick = b:changedtick
|
||||
|
||||
b:lua_foldlists = []
|
||||
var foldlist = []
|
||||
var buf = getline(1, "$")
|
||||
for line in buf
|
||||
var open = 0
|
||||
var end = 0
|
||||
for t in patterns
|
||||
var tagopen = '\v^\s*' .. t[0] .. '\s*$'
|
||||
var tagend = '\v^\s*' .. t[1] .. '\s*$'
|
||||
if line =~# tagopen
|
||||
add(foldlist, t)
|
||||
open = 1
|
||||
break
|
||||
elseif line =~# tagend
|
||||
if len(foldlist) > 0 && line =~# foldlist[-1][1]
|
||||
end = 1
|
||||
remove(foldlist, -1)
|
||||
else
|
||||
foldlist = []
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
var prefix = ""
|
||||
if open == 1 | prefix = ">" | endif
|
||||
if end == 1 | prefix = "<" | endif
|
||||
b:lua_foldlists += [prefix .. (len(foldlist) + end)]
|
||||
endfor
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
enddef
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
|
||||
13
runtime/ftplugin/mbsync.vim
Normal file
13
runtime/ftplugin/mbsync.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: mbsync configuration file
|
||||
" Maintainer: Pierrick Guillaume <pguillaume@fymyte.com>
|
||||
" Last Change: 2025 Apr 13
|
||||
|
||||
if (exists('b:did_ftplugin'))
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setlocal commentstring<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
@@ -3,6 +3,7 @@
|
||||
" Home: http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim
|
||||
" Last Change: 2024 Jul 14
|
||||
" Credits: chikamichi
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
"
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -10,6 +11,9 @@ if exists("b:did_ftplugin")
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Many MediaWiki wikis prefer line breaks only at the end of paragraphs
|
||||
" (like in a text processor), which results in long, wrapping lines.
|
||||
setlocal wrap linebreak
|
||||
@@ -40,3 +44,6 @@ setlocal foldmethod=expr
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments< formatoptions< foldexpr< foldmethod<"
|
||||
let b:undo_ftplugin += " matchpairs< linebreak< wrap< textwidth<"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
" Language: Mojo
|
||||
" Maintainer: Riley Bruins <ribru17@gmail.com>
|
||||
" Last Change: 2024 Jul 07
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal include=^\\s*\\(from\\\|import\\)
|
||||
setlocal define=^\\s*\\(\\(async\\s\\+\\)\\?def\\\|class\\)
|
||||
|
||||
@@ -39,3 +43,6 @@ let b:undo_ftplugin = 'setlocal include<'
|
||||
\ . '|setlocal suffixesadd<'
|
||||
\ . '|setlocal comments<'
|
||||
\ . '|setlocal commentstring<'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
" Language: nix
|
||||
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
|
||||
" Last Change: 2023 Jul 22
|
||||
" 2025 Apr 18 by Vim Project (set 'iskeyword' and b:match_words #17154)
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -11,7 +12,10 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments<"
|
||||
let b:undo_ftplugin = "setl commentstring< comments< iskeyword< | unlet! b:match_words"
|
||||
|
||||
let b:match_words = "\<if\>:\<then\>:\<else\>,\<let\>:\<in\>"
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal iskeyword+=-
|
||||
|
||||
@@ -7,18 +7,33 @@
|
||||
" Last Changes:
|
||||
" 2024 May 24 by Riley Bruins <ribru17@gmail.com> ('commentstring' #14843)
|
||||
" 2025 Feb 12 by Wu, Zhenyu <wuzhenyu@ustc.edu> (matchit configuration #16619)
|
||||
" 2025 Apr 16 by Eisuke Kawashima (cpoptions #17121)
|
||||
" 2025 Apr 24 by Eisuke Kawashima (move options from syntax to ftplugin #17174)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal commentstring=.\\\"\ %s
|
||||
setlocal comments=:.\\\"
|
||||
setlocal sections+=Sh
|
||||
setlocal define=.\s*de
|
||||
|
||||
let b:undo_ftplugin = 'setlocal commentstring< comments< sections< define<'
|
||||
if get(b:, 'preprocs_as_sections')
|
||||
setlocal sections=EQTSPS[\ G1GS
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = 'setlocal commentstring< comments< sections& define<'
|
||||
|
||||
if get(b:, 'nroff_is_groff')
|
||||
" groff_ms exdented paragraphs are not in the default paragraphs list.
|
||||
setlocal paragraphs+=XP
|
||||
let b:undo_ftplugin .= ' paragraphs&'
|
||||
endif
|
||||
|
||||
if exists('loaded_matchit')
|
||||
let b:match_words = '^\.\s*ie\>:^\.\s*el\>'
|
||||
@@ -30,3 +45,6 @@ if exists('loaded_matchit')
|
||||
\ . ',^\.\s*FS\>:^\.\s*FE\>'
|
||||
let b:undo_ftplugin .= "| unlet b:match_words"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
16
runtime/ftplugin/pq.vim
Normal file
16
runtime/ftplugin/pq.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Power Query M
|
||||
" Maintainer: Anarion Dunedain <anarion80@gmail.com>
|
||||
" Last Change: 2025 Apr 3
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
14
runtime/ftplugin/remind.vim
Normal file
14
runtime/ftplugin/remind.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Remind - a sophisticated calendar and alarm
|
||||
" Maintainer: Joe Reynolds <joereynolds952@gmail.com>
|
||||
" Latest Revision: 2025 April 08
|
||||
" License: Vim (see :h license)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com<"
|
||||
@@ -3,6 +3,7 @@
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Last Change: 2024 Mar 17
|
||||
" 2024 May 23 by Riley Bruins <ribru17@gmail.com ('commentstring')
|
||||
" 2025 Mar 31 by Vim project (set 'formatprg' option)
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -57,6 +58,19 @@ setlocal includeexpr=rust#IncludeExpr(v:fname)
|
||||
|
||||
setlocal suffixesadd=.rs
|
||||
|
||||
if executable(get(g:, 'rustfmt_command', 'rustfmt'))
|
||||
if get(g:, "rustfmt_fail_silently", 0)
|
||||
augroup rust.vim.FailSilently
|
||||
autocmd! * <buffer>
|
||||
autocmd ShellFilterPost <buffer> if v:shell_error | execute 'echom "shell filter returned error " . v:shell_error . ", undoing changes"' | undo | endif
|
||||
augroup END
|
||||
endif
|
||||
|
||||
let &l:formatprg = get(g:, 'rustfmt_command', 'rustfmt') . ' ' .
|
||||
\ get(g:, 'rustfmt_options', '') . ' ' .
|
||||
\ rustfmt#RustfmtConfigOptions()
|
||||
endif
|
||||
|
||||
if exists("g:ftplugin_rust_source_path")
|
||||
let &l:path=g:ftplugin_rust_source_path . ',' . &l:path
|
||||
endif
|
||||
@@ -149,7 +163,7 @@ endif
|
||||
|
||||
let b:undo_ftplugin = "
|
||||
\ compiler make |
|
||||
\ setlocal formatoptions< comments< commentstring< include< includeexpr< suffixesadd<
|
||||
\ setlocal formatoptions< comments< commentstring< include< includeexpr< suffixesadd< formatprg<
|
||||
\|if exists('b:rust_set_style')
|
||||
\|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
|
||||
\|endif
|
||||
|
||||
@@ -1,13 +1,40 @@
|
||||
" Vim filetype plugin
|
||||
" Language: svelte
|
||||
" Maintainer: Igor Lacerda <igorlafarsi@gmail.com>
|
||||
" Last Change: 2024 Jun 09
|
||||
" Last Change: 2025 Apr 06
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl commentstring=<!--\ %s\ -->
|
||||
let s:cpo_sav = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = 'setl cms<'
|
||||
setlocal matchpairs+=<:>
|
||||
setlocal commentstring=<!--\ %s\ -->
|
||||
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
|
||||
|
||||
let b:undo_ftplugin = 'setlocal comments< commentstring< matchpairs<'
|
||||
|
||||
if exists('&omnifunc')
|
||||
setlocal omnifunc=htmlcomplete#CompleteTags
|
||||
call htmlcomplete#DetectOmniFlavor()
|
||||
let b:undo_ftplugin ..= " | setlocal omnifunc<"
|
||||
endif
|
||||
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_ignorecase = 1
|
||||
let b:match_words = '<:>,' .
|
||||
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
|
||||
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>,' .
|
||||
\ '{#\(if\|each\)[^}]*}:{\:else[^}]*}:{\/\(if\|each\)},' .
|
||||
\ '{#await[^}]*}:{\:then[^}]*}:{\:catch[^}]*}:{\/await},' .
|
||||
\ '{#snippet[^}]*}:{\/snippet},' .
|
||||
\ '{#key[^}]*}:{\/key}'
|
||||
let b:html_set_match_words = 1
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:html_set_match_words"
|
||||
endif
|
||||
let &cpo = s:cpo_sav
|
||||
unlet! s:cpo_sav
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
" Language: Tera
|
||||
" Maintainer: Muntasir Mahmud <muntasir.joypurhat@gmail.com>
|
||||
" Last Change: 2025 Mar 08
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal autoindent
|
||||
|
||||
setlocal commentstring={#\ %s\ #}
|
||||
@@ -28,3 +32,6 @@ setlocal softtabstop=2
|
||||
let b:undo_ftplugin = "setlocal autoindent< commentstring< comments< " ..
|
||||
\ "includeexpr< suffixesadd< expandtab< shiftwidth< softtabstop<"
|
||||
let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: YAML (YAML Ain't Markup Language)
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> (inactive)
|
||||
" Last Change: 2024 Oct 04
|
||||
" Last Change: 2024 Oct 04
|
||||
" 2025 Apr 22 by Vim project re-order b:undo_ftplugin (#17179)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -16,20 +17,25 @@ let b:undo_ftplugin = "setl com< cms< et< fo<"
|
||||
setlocal comments=:# commentstring=#\ %s expandtab
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
" rime input method engine uses `*.custom.yaml` as its config files
|
||||
if expand('%:r:e') ==# 'custom'
|
||||
if !exists('current_compiler')
|
||||
compiler rime_deployer
|
||||
let b:undo_ftplugin ..= "| compiler make"
|
||||
endif
|
||||
setlocal include=__include:\\s*
|
||||
let b:undo_ftplugin ..= " inc<"
|
||||
endif
|
||||
|
||||
if !exists("g:yaml_recommended_style") || g:yaml_recommended_style != 0
|
||||
if get(g:, "yaml_recommended_style",1)
|
||||
let b:undo_ftplugin ..= " sw< sts<"
|
||||
setlocal shiftwidth=2 softtabstop=2
|
||||
endif
|
||||
|
||||
" rime input method engine(https://rime.im/)
|
||||
" uses `*.custom.yaml` as its config files
|
||||
if expand('%:r:e') ==# 'custom'
|
||||
" `__include` command in `*.custom.yaml`
|
||||
" see: https://github.com/rime/home/wiki/Configuration#%E5%8C%85%E5%90%AB
|
||||
setlocal include=__include:\\s*
|
||||
let b:undo_ftplugin ..= " inc<"
|
||||
|
||||
if !exists('current_compiler')
|
||||
compiler rime_deployer
|
||||
let b:undo_ftplugin ..= " | compiler make"
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
" Language: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2023 Dec 28
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=GetCucumberIndent()
|
||||
@@ -95,4 +98,7 @@ function! GetCucumberIndent(...) abort
|
||||
return prev.indent < 0 ? 0 : prev.indent
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sts=2 sw=2:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent script for HTML
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
||||
" Last Change: 2023 Aug 13
|
||||
" Last Change: 2025 Apr 13
|
||||
" Version: 1.0 "{{{
|
||||
" Description: HTML indent script with cached state for faster indenting on a
|
||||
" range of lines.
|
||||
@@ -868,7 +868,9 @@ func HtmlIndent_FindTagStart(lnum)
|
||||
let idx = match(getline(a:lnum), '\S>\s*$')
|
||||
if idx > 0
|
||||
call cursor(a:lnum, idx)
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
let lnum = searchpair('<\w', '' , '\S>', 'bW', '', max([a:lnum - b:html_indent_line_limit, 0]))
|
||||
" VIM_INDENT_TEST_TRACE_END HtmlIndent_FindTagStart
|
||||
if lnum > 0
|
||||
return [lnum, 1]
|
||||
endif
|
||||
@@ -903,7 +905,9 @@ func HtmlIndent_FindTagEnd()
|
||||
call search('--\zs>')
|
||||
elseif s:get_tag('/' . tagname) != 0
|
||||
" tag with a closing tag, find matching "</tag>"
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
call searchpair('<' . tagname, '', '</' . tagname . '\zs>', 'W', '', line('.') + b:html_indent_line_limit)
|
||||
" VIM_INDENT_TEST_TRACE_END HtmlIndent_FindTagEnd
|
||||
else
|
||||
" self-closing tag, find the ">"
|
||||
call search('\S\zs>')
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Javascript
|
||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Last Change: December 4, 2017
|
||||
" Last Change: 2025 Apr 13
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
@@ -69,7 +69,9 @@ let s:rel = has('reltime')
|
||||
" searchpair() wrapper
|
||||
if s:rel
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
|
||||
" VIM_INDENT_TEST_TRACE_END s:GetPair
|
||||
endfunction
|
||||
else
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Last Change: 2022 Apr 06
|
||||
" 2025 Apr 22 by Vim Project: do not indent after special targets #17183
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -21,6 +22,8 @@ endif
|
||||
|
||||
let s:comment_rx = '^\s*#'
|
||||
let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
|
||||
" .PHONY, .DELETE_ON_ERROR, etc
|
||||
let s:rule_special = '^\.[A-Z_]\+\s*:'
|
||||
let s:continued_rule_rx = '^[^#:]*:\{1,2}\%([^=:]\|$\)'
|
||||
let s:continuation_rx = '\\$'
|
||||
let s:assignment_rx = '^\s*\h\w*\s*[+:?]\==\s*\zs.*\\$'
|
||||
@@ -50,7 +53,7 @@ function GetMakeIndent()
|
||||
if prev_line =~ s:continuation_rx
|
||||
if prev_prev_line =~ s:continuation_rx
|
||||
return indent(prev_lnum)
|
||||
elseif prev_line =~ s:rule_rx
|
||||
elseif prev_line =~ s:rule_rx && prev_line !~ s:rule_special
|
||||
return shiftwidth()
|
||||
elseif prev_line =~ s:assignment_rx
|
||||
call cursor(prev_lnum, 1)
|
||||
@@ -81,15 +84,15 @@ function GetMakeIndent()
|
||||
let line = getline(lnum)
|
||||
endwhile
|
||||
let folded_lnum = lnum + 1
|
||||
if folded_line =~ s:rule_rx
|
||||
if getline(v:lnum) =~ s:rule_rx
|
||||
if folded_line =~ s:rule_rx && prev_line !~ s:rule_special
|
||||
if getline(v:lnum) =~ s:rule_rx && prev_line !~ s:rule_special
|
||||
return 0
|
||||
else
|
||||
return &ts
|
||||
endif
|
||||
else
|
||||
" elseif folded_line =~ s:folded_assignment_rx
|
||||
if getline(v:lnum) =~ s:rule_rx
|
||||
if getline(v:lnum) =~ s:rule_rx && prev_line !~ s:rule_special
|
||||
return 0
|
||||
else
|
||||
return indent(folded_lnum)
|
||||
@@ -98,8 +101,8 @@ function GetMakeIndent()
|
||||
" " TODO: ?
|
||||
" return indent(prev_lnum)
|
||||
endif
|
||||
elseif prev_line =~ s:rule_rx
|
||||
if getline(v:lnum) =~ s:rule_rx
|
||||
elseif prev_line =~ s:rule_rx && prev_line !~ s:rule_special
|
||||
if getline(v:lnum) =~ s:rule_rx && prev_line !~ s:rule_special
|
||||
return 0
|
||||
else
|
||||
return &ts
|
||||
|
||||
@@ -36,6 +36,9 @@ First of all, create a FILETYPE.in file. It should contain:
|
||||
\ 'string'
|
||||
" END_INDENT
|
||||
|
||||
When an indent script utilises timed "search*()"es and supports related
|
||||
timeout configuration, consider setting a generous timeout value from
|
||||
INDENT_EXE lines (look at "g:vim_indent" in "testdir/vim.in" for details).
|
||||
Note that the command is not undone, you may need to reverse the effect for
|
||||
the next block of lines.
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set filetype=bitbake :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 64
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
FOO = " \
|
||||
bar \
|
||||
baz \
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set filetype=bitbake :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 64
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
FOO = " \
|
||||
bar \
|
||||
baz \
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
% START_INDENT
|
||||
% INDENT_EXE let b:html_indent_line_limit = 64
|
||||
<html>
|
||||
<body>
|
||||
<style>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
% START_INDENT
|
||||
% INDENT_EXE let b:html_indent_line_limit = 64
|
||||
<html>
|
||||
<body>
|
||||
<style>
|
||||
|
||||
20
runtime/indent/testdir/make.in
Normal file
20
runtime/indent/testdir/make.in
Normal file
@@ -0,0 +1,20 @@
|
||||
# vim:ft=make
|
||||
# START_INDENT
|
||||
.POSIX :
|
||||
MAKEFLAGS += -rR
|
||||
|
||||
.SUFFIXES: .F .f
|
||||
FC = f95
|
||||
FFLAGS =
|
||||
CPPFLAGS =
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo indentation test
|
||||
|
||||
.F.f:
|
||||
$(FC) $(CPPFLAGS) -E $< > $@
|
||||
|
||||
.f.o:
|
||||
$(FC) $(FFLAGS) -c -o $@ $<
|
||||
# END_INDENT
|
||||
20
runtime/indent/testdir/make.ok
Normal file
20
runtime/indent/testdir/make.ok
Normal file
@@ -0,0 +1,20 @@
|
||||
# vim:ft=make
|
||||
# START_INDENT
|
||||
.POSIX :
|
||||
MAKEFLAGS += -rR
|
||||
|
||||
.SUFFIXES: .F .f
|
||||
FC = f95
|
||||
FFLAGS =
|
||||
CPPFLAGS =
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo indentation test
|
||||
|
||||
.F.f:
|
||||
$(FC) $(CPPFLAGS) -E $< > $@
|
||||
|
||||
.f.o:
|
||||
$(FC) $(FFLAGS) -c -o $@ $<
|
||||
# END_INDENT
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set ft=python sw=4 et:
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 256
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
dict = {
|
||||
'a': 1,
|
||||
'b': 2,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set ft=python sw=4 et:
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 256
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
dict = {
|
||||
'a': 1,
|
||||
'b': 2,
|
||||
|
||||
@@ -14,19 +14,6 @@ set modeline
|
||||
set debug=throw
|
||||
set nomore
|
||||
|
||||
" Remember the directory where we started.
|
||||
let indentDir = getcwd()
|
||||
cd ../../src/testdir
|
||||
|
||||
" Needed for ValgrindOrAsan().
|
||||
source shared.vim
|
||||
exe 'cd ' .. fnameescape(indentDir)
|
||||
|
||||
if ValgrindOrAsan()
|
||||
let g:vim_indent = {"searchpair_timeout": 1024}
|
||||
let g:python_indent = {"searchpair_timeout": 1024}
|
||||
endif
|
||||
|
||||
au! SwapExists * call HandleSwapExists()
|
||||
func HandleSwapExists()
|
||||
" Ignore finding a swap file for the test input and output, the user might be
|
||||
|
||||
166
runtime/indent/testdir/tools/tracer.vim
Normal file
166
runtime/indent/testdir/tools/tracer.vim
Normal file
@@ -0,0 +1,166 @@
|
||||
vim9script
|
||||
|
||||
# Whenever indent plugins contain "search*()" lines explicitly annotated with
|
||||
# "VIM_INDENT_TEST_TRACE_(START|END)" comment markers; this script can then be
|
||||
# used as shown to measure and record elapsed time for such decorated calls.
|
||||
#
|
||||
# Usage:
|
||||
# cd runtime/indent
|
||||
# vim -u NONE -S testdir/tools/tracer.vim \
|
||||
# html.vim javascript.vim \
|
||||
# ../autoload/python.vim ../autoload/dist/vimindent.vim
|
||||
# git diff
|
||||
# make clean test
|
||||
# vim testdir/00-TRACE_LOG.fail
|
||||
|
||||
def GenerateTempletForTracing(fname: string, vname: string): list<string>
|
||||
#### ONLY INSTRUMENT "search*()"es FOR INDENT TESTS.
|
||||
|
||||
const templet: list<string> =<< trim eval END
|
||||
|
||||
if getcwd() =~# '\<runtime/indent$'
|
||||
|
||||
def! g:IndentTestTrace(id: string, start: list<number>, result: any): any
|
||||
const end: list<number> = reltime(start)
|
||||
|
||||
if !has_key(g:indent_test_trace_times, id)
|
||||
g:indent_test_trace_times[id] = []
|
||||
endif
|
||||
|
||||
g:indent_test_trace_times[id]
|
||||
->add(reltimefloat(end))
|
||||
return result
|
||||
enddef
|
||||
|
||||
def! g:IndentTestInitTracing()
|
||||
# Possibly use a later "{fname}", cf. ":runtime indent/foo.vim".
|
||||
autocmd_add([{{
|
||||
replace: true,
|
||||
group: 'tracing',
|
||||
event: 'QuitPre',
|
||||
bufnr: bufnr(),
|
||||
cmd: 'g:IndentTestWriteTraceTimes()',
|
||||
}}])
|
||||
g:indent_test_trace_times = {{}}
|
||||
enddef
|
||||
|
||||
def! g:IndentTestWriteTraceTimes()
|
||||
# Anticipate usage by multiple languages.
|
||||
const token: string = printf('%02x', (rand() % 26))
|
||||
writefile(['" {fname}:',
|
||||
"let {vname}_" .. token .. " = " .. string(g:indent_test_trace_times),
|
||||
"let {vname}_" .. token .. "_summary = " .. string(g:indent_test_trace_times
|
||||
->items()
|
||||
->reduce((outer: dict<dict<any>>, times: list<any>) =>
|
||||
extend({{[times[0]]: times[1]
|
||||
->copy()
|
||||
->reduce((inner: dict<any>, v: float) =>
|
||||
extend({{
|
||||
min: inner.min < v ? inner.min : v,
|
||||
max: inner.max > v ? inner.max : v,
|
||||
sum: (inner.sum + v),
|
||||
avg: ((inner.sum + v) / inner.count),
|
||||
}},
|
||||
inner,
|
||||
"keep"),
|
||||
{{
|
||||
min: v:numbermax - 0.0,
|
||||
max: v:numbermin + 0.0,
|
||||
sum: 0.0,
|
||||
avg: 0.0,
|
||||
count: len(times[1]),
|
||||
}})}},
|
||||
outer),
|
||||
{{}}))],
|
||||
(!empty($VIM_INDENT_TEST_LOG) && filewritable($VIM_INDENT_TEST_LOG))
|
||||
? $VIM_INDENT_TEST_LOG
|
||||
: "testdir/00-TRACE_LOG.fail",
|
||||
"a")
|
||||
enddef
|
||||
|
||||
call g:IndentTestInitTracing()
|
||||
|
||||
else
|
||||
|
||||
def! g:IndentTestTrace(_: string, _: list<number>, result: any): any
|
||||
return result
|
||||
enddef
|
||||
|
||||
endif
|
||||
|
||||
END
|
||||
return templet
|
||||
enddef
|
||||
|
||||
def InstrumentMarkedEntry(): bool
|
||||
const marker_start: string = 'VIM_INDENT_TEST_TRACE_START'
|
||||
const start: number = search('\C\<' .. marker_start .. '\>', 'ceW')
|
||||
|
||||
if start == 0
|
||||
return false
|
||||
endif
|
||||
|
||||
const marker_end: string = 'VIM_INDENT_TEST_TRACE_END'
|
||||
const end: number = search('\C\<' .. marker_end .. '\>', 'ceW')
|
||||
|
||||
if end == 0
|
||||
return false
|
||||
endif
|
||||
|
||||
const tracee: list<string> = matchlist(
|
||||
getline(start + 1),
|
||||
'\(^.\+\)\(\<search\%(pair\)\=\%(pos\)\=\s*(.*$\)')
|
||||
|
||||
if empty(get(tracee, 1, '')) || empty(get(tracee, 2, ''))
|
||||
return false
|
||||
endif
|
||||
|
||||
const end_line: string = getline(end)
|
||||
const tracer: string = printf('%sg:IndentTestTrace("%s", reltime(), %s',
|
||||
tracee[1],
|
||||
strpart(end_line, (stridx(end_line, marker_end) + strlen(marker_end) + 1)),
|
||||
tracee[2])
|
||||
|
||||
if (end - start) > 1
|
||||
setline((start + 1), tracer)
|
||||
setline((end - 1), getline(end - 1) .. ')')
|
||||
else
|
||||
setline((start + 1), tracer .. ')')
|
||||
endif
|
||||
|
||||
return true
|
||||
enddef
|
||||
|
||||
def ProcessIndentPluginCmdlineArgs()
|
||||
const names: list<string> = range(char2nr('a'), char2nr('z'))
|
||||
->map((_: number, n: number) => nr2char(n, true))
|
||||
var entries: number = 0
|
||||
var next: number = 0
|
||||
|
||||
for fname: string in argv(-1)
|
||||
if filereadable(fname) && filewritable(fname)
|
||||
execute 'new ' .. fname
|
||||
call cursor(1, 1)
|
||||
|
||||
while InstrumentMarkedEntry()
|
||||
entries += 1
|
||||
endwhile
|
||||
|
||||
if entries > 0
|
||||
append(1, GenerateTempletForTracing(fname, get(names, next, names[-1])))
|
||||
wq
|
||||
endif
|
||||
|
||||
entries = 0
|
||||
next += 1
|
||||
endif
|
||||
endfor
|
||||
enddef
|
||||
|
||||
if empty(system('git status --porcelain=v1'))
|
||||
ProcessIndentPluginCmdlineArgs()
|
||||
endif
|
||||
|
||||
quitall
|
||||
|
||||
# vim:fdm=syntax:sw=2:ts=8:noet:nosta:
|
||||
@@ -1,6 +1,8 @@
|
||||
" vim: set ft=vim sw=4 :
|
||||
|
||||
" START_INDENT
|
||||
" INDENT_EXE let g:vim_indent = {'searchpair_timeout': 1024}
|
||||
" INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
func Some()
|
||||
let x = 1
|
||||
endfunc
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
" vim: set ft=vim sw=4 :
|
||||
|
||||
" START_INDENT
|
||||
" INDENT_EXE let g:vim_indent = {'searchpair_timeout': 1024}
|
||||
" INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
func Some()
|
||||
let x = 1
|
||||
endfunc
|
||||
|
||||
@@ -2,6 +2,8 @@ vim9script
|
||||
# vim: set ft=vim sw=4 :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
var result = Func(
|
||||
arg1,
|
||||
arg2
|
||||
@@ -455,7 +457,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
||||
# INDENT_EXE let g:vim_indent.more_in_bracket_block = v:true
|
||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||
return (Emit: func(any)) => {
|
||||
Cont((t: any) => {
|
||||
@@ -468,7 +470,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE unlet! g:vim_indent
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
|
||||
@@ -2,6 +2,8 @@ vim9script
|
||||
# vim: set ft=vim sw=4 :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
var result = Func(
|
||||
arg1,
|
||||
arg2
|
||||
@@ -455,7 +457,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
||||
# INDENT_EXE let g:vim_indent.more_in_bracket_block = v:true
|
||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||
return (Emit: func(any)) => {
|
||||
Cont((t: any) => {
|
||||
@@ -468,7 +470,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE unlet! g:vim_indent
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
|
||||
71
runtime/keymap/brazilian_portuguese-abnt.vim
Normal file
71
runtime/keymap/brazilian_portuguese-abnt.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
" Vim Keymap file for Brazilian Portuguese - ABNT (without altgr because that would be ABNT2)
|
||||
|
||||
" Maintainer: Elsarques
|
||||
" Last Changed: 2025-04-06
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let b:keymap_name = "abnt"
|
||||
|
||||
loadkeymap
|
||||
[[ ´ LATIN ACUTE ACCENT
|
||||
[a á LATIN SMALL LETTER A WITH ACUTE
|
||||
[e é LATIN SMALL LETTER E WITH ACUTE
|
||||
[u ú LATIN SMALL LETTER U WITH ACUTE
|
||||
[i í LATIN SMALL LETTER I WITH ACUTE
|
||||
[o ó LATIN SMALL LETTER O WITH ACUTE
|
||||
[A Á LATIN CAPITAL LETTER A WITH ACUTE
|
||||
[E É LATIN CAPITAL LETTER E WITH ACUTE
|
||||
[U Ú LATIN CAPITAL LETTER U WITH ACUTE
|
||||
[I Í LATIN CAPITAL LETTER I WITH ACUTE
|
||||
[O Ó LATIN CAPITAL LETTER O WITH ACUTE
|
||||
{{ ` GRAVE
|
||||
{e è LATIN SMALL LETTER E WITH GRAVE
|
||||
{a à LATIN SMALL LETTER A WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{i ì LATIN SMALL LETTER I WITH GRAVE
|
||||
{o ò LATIN SMALL LETTER O WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{E È LATIN CAPITAL LETTER E WITH GRAVE
|
||||
{A À LATIN CAPITAL LETTER A WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
{I Ì LATIN CAPITAL LETTER I WITH GRAVE
|
||||
{O Ò LATIN CAPITAL LETTER O WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
] [ ASCII OPENING BRACKETS
|
||||
} { ASCII OPENING CURLY BRACKETS
|
||||
; ç LATIN SMALL LETTER C WITH CEDILLA
|
||||
: Ç LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
' ~ ASCII TILDE
|
||||
'a ã LATIN SMALL LETTER A WITH TILDE
|
||||
'e ẽ LATIN SMALL LETTER E WITH TILDE
|
||||
'i ĩ LATIN SMALL LETTER I WITH TILDE
|
||||
'o õ LATIN SMALL LETTER O WITH TILDE
|
||||
'u ũ LATIN SMALL LETTER U WITH TILDE
|
||||
'A Ã LATIN CAPITAL LETTER A WITH TILDE
|
||||
'E Ẽ LATIN CAPITAL LETTER E WITH TILDE
|
||||
'I Ĩ LATIN CAPITAL LETTER I WITH TILDE
|
||||
'O Õ LATIN CAPITAL LETTER O WITH TILDE
|
||||
'U Ũ LATIN CAPITAL LETTER U WITH TILDE
|
||||
\" ^ ASCII CIRCUMFLEX
|
||||
\"a â LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
\"e ê LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
\"i î LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
\"o ô LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
\"u û LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
\"A Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
\"E Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
\"I Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
\"O Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
\"U Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
[- | ASCII VERTICAL-BAR
|
||||
\\ ] ASCII CLOSING BRACKETS
|
||||
| } ASCII CLOSING CURLY BRACKETS
|
||||
/ ; ASCII SEMICOLON
|
||||
? : ASCII COLON
|
||||
~ " ASCII DOUBLE QUOTES
|
||||
¬ \\ ASCII BACKSLASH
|
||||
® | ASCII HORIZONTAL SLASH
|
||||
[= / ASCII SLASH
|
||||
'= ? ASCII INTERROGATION
|
||||
` ' ASCII SINGLE QUOTE
|
||||
72
runtime/keymap/brazilian_portuguese-compact.vim
Normal file
72
runtime/keymap/brazilian_portuguese-compact.vim
Normal file
@@ -0,0 +1,72 @@
|
||||
" Vim Keymap file for Brazilian Portuguese - ABNT Compact (for keyboards
|
||||
" with less keys and without altgr because that would be ABNT2)
|
||||
|
||||
" Maintainer: Elsarques
|
||||
" Last Changed: 2025-04-06
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let b:keymap_name = "abnt-compact"
|
||||
|
||||
loadkeymap
|
||||
[[ ´ LATIN ACUTE ACCENT
|
||||
[a á LATIN SMALL LETTER A WITH ACUTE
|
||||
[e é LATIN SMALL LETTER E WITH ACUTE
|
||||
[u ú LATIN SMALL LETTER U WITH ACUTE
|
||||
[i í LATIN SMALL LETTER I WITH ACUTE
|
||||
[o ó LATIN SMALL LETTER O WITH ACUTE
|
||||
[A Á LATIN CAPITAL LETTER A WITH ACUTE
|
||||
[E É LATIN CAPITAL LETTER E WITH ACUTE
|
||||
[U Ú LATIN CAPITAL LETTER U WITH ACUTE
|
||||
[I Í LATIN CAPITAL LETTER I WITH ACUTE
|
||||
[O Ó LATIN CAPITAL LETTER O WITH ACUTE
|
||||
{{ ` GRAVE
|
||||
{e è LATIN SMALL LETTER E WITH GRAVE
|
||||
{a à LATIN SMALL LETTER A WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{i ì LATIN SMALL LETTER I WITH GRAVE
|
||||
{o ò LATIN SMALL LETTER O WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{E È LATIN CAPITAL LETTER E WITH GRAVE
|
||||
{A À LATIN CAPITAL LETTER A WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
{I Ì LATIN CAPITAL LETTER I WITH GRAVE
|
||||
{O Ò LATIN CAPITAL LETTER O WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
] [ ASCII OPENING BRACKETS
|
||||
} { ASCII OPENING CURLY BRACKETS
|
||||
; ç LATIN SMALL LETTER C WITH CEDILLA
|
||||
: Ç LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
' ~ ASCII TILDE
|
||||
'a ã LATIN SMALL LETTER A WITH TILDE
|
||||
'e ẽ LATIN SMALL LETTER E WITH TILDE
|
||||
'i ĩ LATIN SMALL LETTER I WITH TILDE
|
||||
'o õ LATIN SMALL LETTER O WITH TILDE
|
||||
'u ũ LATIN SMALL LETTER U WITH TILDE
|
||||
'A Ã LATIN CAPITAL LETTER A WITH TILDE
|
||||
'E Ẽ LATIN CAPITAL LETTER E WITH TILDE
|
||||
'I Ĩ LATIN CAPITAL LETTER I WITH TILDE
|
||||
'O Õ LATIN CAPITAL LETTER O WITH TILDE
|
||||
'U Ũ LATIN CAPITAL LETTER U WITH TILDE
|
||||
[- \\ ASCII BACKSLASH
|
||||
[= / ASCII SLASH
|
||||
\" ^ ASCII CIRCUMFLEX
|
||||
\"a â LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
\"e ê LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
\"i î LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
\"o ô LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
\"u û LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
\"A Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
\"E Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
\"I Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
\"O Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
\"U Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
\"- | ASCII VERTICAL-BAR
|
||||
\\ ] ASCII CLOSING BRACKETS
|
||||
| } ASCII CLOSING CURLY BRACKETS
|
||||
/ ; ASCII SEMICOLON
|
||||
? : ASCII COLON
|
||||
~ " ASCII DOUBLE QUOTES
|
||||
'- ? ASCII EXCLAMATION
|
||||
'= | ASCII VERTICAL SLASH
|
||||
` ' ASCII SINGLE QUOTE
|
||||
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Mar 07
|
||||
" Last Change: 2025 Apr 24
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -371,7 +371,7 @@ call <SID>AddOption("sidescrolloff", gettext("minimal number of columns to keep
|
||||
call append("$", " \tset siso=" . &siso)
|
||||
call <SID>AddOption("display", gettext("include \"lastline\" to show the last line even if it doesn't fit\ninclude \"uhex\" to show unprintable characters as a hex number"))
|
||||
call <SID>OptionG("dy", &dy)
|
||||
call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds and filler lines"))
|
||||
call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds, diffs, buffer text, filler lines and truncation in the completion menu"))
|
||||
call <SID>OptionG("fcs", &fcs)
|
||||
call <SID>AddOption("cmdheight", gettext("number of lines used for the command-line"))
|
||||
call append("$", " \tset ch=" . &ch)
|
||||
@@ -405,6 +405,13 @@ if has("linebreak")
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>OptionL("nuw")
|
||||
endif
|
||||
if has("quickfix")
|
||||
call <SID>AddOption("chistory", gettext("maximum number of quickfix lists that can be stored in history"))
|
||||
call <SID>OptionL("chi")
|
||||
call <SID>AddOption("lhistory", gettext("maximum number of location lists that can be stored in history"))
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>OptionL("lhi")
|
||||
endif
|
||||
if has("conceal")
|
||||
call <SID>AddOption("conceallevel", gettext("controls whether concealable text is hidden"))
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
@@ -863,6 +870,8 @@ if has("insert_expand")
|
||||
call <SID>OptionG("ph", &ph)
|
||||
call <SID>AddOption("pumwidth", gettext("minimum width of the popup menu"))
|
||||
call <SID>OptionG("pw", &pw)
|
||||
call <SID>AddOption("pummaxwidth", gettext("maximum width of the popup menu"))
|
||||
call <SID>OptionG("pmw", &pmw)
|
||||
call <SID>AddOption("completefunc", gettext("user defined function for Insert mode completion"))
|
||||
call append("$", "\t" .. s:local_to_buffer)
|
||||
call <SID>OptionL("cfu")
|
||||
@@ -1245,6 +1254,8 @@ call <SID>AddOption("isfname", gettext("specifies the characters in a file name"
|
||||
call <SID>OptionG("isf", &isf)
|
||||
call <SID>AddOption("isident", gettext("specifies the characters in an identifier"))
|
||||
call <SID>OptionG("isi", &isi)
|
||||
call <SID>AddOption("isexpand", gettext("defines trigger strings for complete_match()"))
|
||||
call append("$", "\t" .. s:local_to_buffer)
|
||||
call <SID>AddOption("iskeyword", gettext("specifies the characters in a keyword"))
|
||||
call append("$", "\t" .. s:local_to_buffer)
|
||||
call <SID>OptionL("isk")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
vim9script
|
||||
|
||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
# Last Update: 2025 Mar 21
|
||||
# Last Update: 2025-04-22
|
||||
#
|
||||
# Toggle comments
|
||||
# Usage:
|
||||
@@ -26,8 +26,8 @@ export def Toggle(...args: list<string>): string
|
||||
if len(cms_l) == 1 && lnum1 == lnum2 && first_col < start_col
|
||||
var line_start = getline(lnum1)[0 : start_col - 1]
|
||||
var line_end = getline(lnum1)[start_col : -1]
|
||||
line_end = line_end =~ $'^\s*{cms_l[0]}' ?
|
||||
\ substitute(line_end, $'^\s*\zs{cms_l[0]}\s\ze\s*', line_end =~ '^\s' ? ' ' : '', '') :
|
||||
line_end = line_end =~ $'\c^\s*{cms_l[0]}' ?
|
||||
\ substitute(line_end, $'\c^\s*\zs{cms_l[0]}\s\ze\s*', line_end =~ '^\s' ? ' ' : '', '') :
|
||||
\ printf(substitute(cms, '%s\@!', '%%', ''), line_end)
|
||||
setline(lnum1, line_start .. line_end)
|
||||
return ''
|
||||
@@ -49,7 +49,7 @@ export def Toggle(...args: list<string>): string
|
||||
endif
|
||||
indent_spaces = indent_spaces || (stridx(indent_str, ' ') != -1)
|
||||
indent_tabs = indent_tabs || (stridx(indent_str, "\t") != -1)
|
||||
if getline(lnum) !~ $'^\s*{cms_l[0]}.*{cms_l[1]}$'
|
||||
if getline(lnum) !~ $'\c^\s*{cms_l[0]}.*{cms_l[1]}$'
|
||||
comment = true
|
||||
endif
|
||||
endfor
|
||||
@@ -69,7 +69,7 @@ export def Toggle(...args: list<string>): string
|
||||
strpart(getline(lnum), strlen(indent_current)))
|
||||
endif
|
||||
else
|
||||
line = substitute(getline(lnum), $'^\s*\zs{cms_l[0]} \?\| \?{cms_l[1]}$', '', 'g')
|
||||
line = substitute(getline(lnum), $'\c^\s*\zs{cms_l[0]} \?\| \?{cms_l[1]}$', '', 'g')
|
||||
endif
|
||||
add(lines, line)
|
||||
endfor
|
||||
@@ -107,8 +107,8 @@ export def ObjComment(inner: bool)
|
||||
|
||||
# Search for the beginning of the comment block
|
||||
if IsComment()
|
||||
if search('\v%(\S+)|$', 'bW', 0, 200, IsComment) > 0
|
||||
search('\v%(\S)|$', 'W', 0, 200, () => !IsComment())
|
||||
if search('\v%(\S+)|%(^\s*$)', 'bW', 0, 200, IsComment) > 0
|
||||
search('\v%(\S)|%(^\s*$)', 'W', 0, 200, () => !IsComment())
|
||||
else
|
||||
cursor(1, 1)
|
||||
search('\v\S+', 'cW', 0, 200)
|
||||
@@ -130,11 +130,11 @@ export def ObjComment(inner: bool)
|
||||
if pos_init[1] > pos_start[1]
|
||||
cursor(pos_init[1], pos_init[2])
|
||||
endif
|
||||
if search('\v%(\S+)|$', 'W', 0, 200, IsComment) > 0
|
||||
if search('\v%(\S+)|%(^\s*$)', 'W', 0, 200, IsComment) > 0
|
||||
search('\S', 'beW', 0, 200, () => !IsComment())
|
||||
else
|
||||
if search('\%$', 'W', 0, 200) > 0
|
||||
search('\ze\S', 'beW', 0, 200, () => !IsComment())
|
||||
search('\ze\S', 'beW', line('.'), 200, () => !IsComment())
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -144,20 +144,23 @@ export def ObjComment(inner: bool)
|
||||
var spaces = matchstr(getline(pos_end[1]), '\%>.c\s*')
|
||||
pos_end[2] += spaces->len()
|
||||
if getline(pos_end[1])[pos_end[2] : ] =~ '^\s*$'
|
||||
&& (pos_start[2] == 1 || getline(pos_start[1])[ : pos_start[2]] =~ '^\s*$')
|
||||
&& (pos_start[2] <= 1 || getline(pos_start[1])[ : pos_start[2]] =~ '^\s*$')
|
||||
if search('\v\s*\_$(\s*\n)+', 'eW', 0, 200) > 0
|
||||
pos_end = getcurpos()
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if (pos_end[2] == (getline(pos_end[1])->len() ?? 1)) && pos_start[2] == 1
|
||||
if (pos_end[2] == (getline(pos_end[1])->len() ?? 1)) && pos_start[2] <= 1
|
||||
cursor(pos_end[1], 1)
|
||||
normal! V
|
||||
cursor(pos_start[1], 1)
|
||||
else
|
||||
cursor(pos_end[1], pos_end[2])
|
||||
normal! v
|
||||
if &selection == 'exclusive'
|
||||
normal! lo
|
||||
endif
|
||||
cursor(pos_start[1], pos_start[2])
|
||||
endif
|
||||
enddef
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user