mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-05-28 00:21:57 +02:00
Compare commits
235 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a4466fe3b6 | |||
| 08f49ae8e9 | |||
| 7cb3ab5058 | |||
| b2c10a6c0d | |||
| 3d76744ff4 | |||
| 6b809a4c94 | |||
| c77b2b3bab | |||
| e06b2aea43 | |||
| 88d75934c3 | |||
| 757c37da6d | |||
| 29d11a8326 | |||
| 45377e2096 | |||
| 7d8e7df551 | |||
| 4f9b1243e3 | |||
| d9b82cfe84 | |||
| 35cb38d34b | |||
| 14dec7b204 | |||
| 9943d4790e | |||
| 06774a271a | |||
| 4dd17a90ee | |||
| 08283b28af | |||
| f9f4e27ad7 | |||
| 052b86ba63 | |||
| 721be7fd0b | |||
| 038be2701d | |||
| 9d5487f6fd | |||
| 20e46fa65b | |||
| 7746348c5d | |||
| 2726821d38 | |||
| 35cb03648f | |||
| d2232d70c8 | |||
| 7cedae3ec3 | |||
| b42b9fc41f | |||
| 92e109fc13 | |||
| 9cb865e95b | |||
| adb703e1b9 | |||
| b5459ee104 | |||
| 4e7b4308fb | |||
| 932a535bfa | |||
| e14aa3c035 | |||
| 19d4f99a34 | |||
| 8a63529a2f | |||
| 9712a2534f | |||
| 51a06ecee0 | |||
| 5753084042 | |||
| 83d74404bb | |||
| 51ff18e319 | |||
| 7a5115ce50 | |||
| e4e0a2468c | |||
| 40ab82b974 | |||
| 711f4a07f3 | |||
| e08f10a55c | |||
| 11ab02c819 | |||
| d5afc74403 | |||
| 8ac0f73eb1 | |||
| a3a7d10bfb | |||
| 18a6853a76 | |||
| c4815c157b | |||
| c00729824d | |||
| 85627732e0 | |||
| 61b3544424 | |||
| ad2f6b6662 | |||
| dd3f1c0dda | |||
| 762a79e15c | |||
| 28e40a7b55 | |||
| 250739d442 | |||
| 7ceca3eb00 | |||
| 34954972c2 | |||
| 20d23ce93b | |||
| 3c7d9b11c8 | |||
| bcf66e0141 | |||
| 21ac3a49b5 | |||
| 2c9f49b200 | |||
| ab281f8b34 | |||
| 1064426d15 | |||
| 8322923b40 | |||
| 13dcea2df1 | |||
| 63a885b650 | |||
| 5f2a959553 | |||
| 84a7503e29 | |||
| 8021830827 | |||
| 00a749bd90 | |||
| 96395e1512 | |||
| 47071c6076 | |||
| 2329bd427a | |||
| 3ca914ec74 | |||
| b55f0221cc | |||
| f22580e57c | |||
| 5606ca5349 | |||
| 587601671c | |||
| 1dc731a49f | |||
| 4d2c4b90fb | |||
| c1c1019fa3 | |||
| 6b01f02712 | |||
| 1830e787f6 | |||
| 0adbe639a5 | |||
| 54c88d0cf8 | |||
| f209dcd3de | |||
| 53b14578e0 | |||
| 7546afbf52 | |||
| c1c3b5d6a0 | |||
| 2d18789aa6 | |||
| 7db96134c2 | |||
| 23473303b7 | |||
| 4fa2dd2405 | |||
| a8aeeeb9aa | |||
| 0a336ccb57 | |||
| 6763b0ee95 | |||
| c2623824a7 | |||
| 969e11a18b | |||
| 835bc014c0 | |||
| 8d67cbfa1f | |||
| 0fab89117f | |||
| e671b1b6d1 | |||
| 3dca512939 | |||
| 42e498d9c4 | |||
| d6c7913e24 | |||
| f4d87ff888 | |||
| ccf2731fd1 | |||
| d49ba7b92a | |||
| 0a825bdde8 | |||
| 14da0fb2d8 | |||
| 9102ac11ab | |||
| d89770eb98 | |||
| 16d6fff98e | |||
| ce4f9d2a10 | |||
| 3d1a437f1b | |||
| f63c3467b1 | |||
| dd42b05f8a | |||
| af05694900 | |||
| b7dc5d3b61 | |||
| 62f19541f4 | |||
| 62e822808e | |||
| 6852e5c597 | |||
| 53d59ecc1d | |||
| 4422de6316 | |||
| b3a9127494 | |||
| 6bdfeb099a | |||
| 4a1e6dacbb | |||
| f31cfa29bf | |||
| 25e833f4ec | |||
| 5daaf23268 | |||
| ec6e82af04 | |||
| 2323f225ca | |||
| 34a7d82aae | |||
| 2e18facede | |||
| 273926e5c0 | |||
| de4b244bfc | |||
| c8cce711dd | |||
| b34ce3e205 | |||
| 08a410f674 | |||
| f7087cbec7 | |||
| 4783a2c073 | |||
| 9f827ec587 | |||
| 3ed6659549 | |||
| a95085e0fc | |||
| 4ec46f3210 | |||
| 29d596c80a | |||
| 659cb28c25 | |||
| 0b5fe42071 | |||
| d2219d547d | |||
| 360a39ae6c | |||
| fb792374cf | |||
| 15cd80a6d4 | |||
| 117efc784e | |||
| 597b39d5f6 | |||
| 2bacc3e5fb | |||
| a250738303 | |||
| bc08ceb755 | |||
| 334a13bff7 | |||
| 8872012e5f | |||
| 8ac975d97e | |||
| 1a741d3cb8 | |||
| 7003a5d63f | |||
| ff159253eb | |||
| 94a045ed56 | |||
| 56957ed410 | |||
| a2c5559f29 | |||
| 3e2affc324 | |||
| 5e8b2268e1 | |||
| da53af57a7 | |||
| 3255af850e | |||
| 85a50fe825 | |||
| 4be1ab80be | |||
| fce1fa5b61 | |||
| 0b8205484b | |||
| 60bd140256 | |||
| e9ae35f265 | |||
| 3d75ec7401 | |||
| dbedc0924d | |||
| 18bacc811c | |||
| 397700e507 | |||
| b2bd8de154 | |||
| d3c4b7e946 | |||
| 580e457a2a | |||
| 9b41e8f766 | |||
| aa8345a968 | |||
| 6c0128385e | |||
| 00a00f5d3f | |||
| 12b1eb58ab | |||
| f877040a04 | |||
| 25b16d64a0 | |||
| 16f2d3a465 | |||
| 5090a1fecb | |||
| 5b97947bbd | |||
| b3854bfc54 | |||
| e0029daa35 | |||
| 28155d0855 | |||
| 094494bf2e | |||
| 025dc48e88 | |||
| b7717d5706 | |||
| b8989fb860 | |||
| ed7d8e55ac | |||
| f1c3134ee1 | |||
| a7b8120820 | |||
| f4b36417e8 | |||
| 066a5340e3 | |||
| 95a3120b40 | |||
| 4af6e9a3c7 | |||
| 61af587f26 | |||
| d15114c148 | |||
| 14e8208d84 | |||
| 7bbb0f357e | |||
| bf595ae4ac | |||
| 51eefba1d6 | |||
| 6a15942bc2 | |||
| 41a6026f00 | |||
| b62bf81488 | |||
| 060e6556e2 | |||
| b79fa3d9c8 | |||
| a48693c6c2 | |||
| 13f100e932 | |||
| 3cb41489dc | |||
| fbe2dd7b4c | |||
| bd913cea83 |
@@ -24,6 +24,14 @@ indent_size = 2
|
||||
# https://spec.commonmark.org/0.31.2/#hard-line-breaks
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.vim]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[runtime/pack/dist/opt/{comment,nohlsearch}/**.vim]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[runtime/doc/**.txt]
|
||||
# It can mess up some documentation by trying to strip trailing whitespaces
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
@@ -98,6 +98,7 @@ runtime/compiler/se.vim @dkearns
|
||||
runtime/compiler/shellcheck.vim @dkearns
|
||||
runtime/compiler/sml.vim @dkearns
|
||||
runtime/compiler/spectral.vim @romainl
|
||||
runtime/compiler/svelte-check.vim @Konfekt
|
||||
runtime/compiler/stylelint.vim @dkearns
|
||||
runtime/compiler/tcl.vim @dkearns
|
||||
runtime/compiler/tidy.vim @dkearns
|
||||
@@ -224,6 +225,7 @@ runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/lua.vim @dkearns
|
||||
runtime/ftplugin/lc.vim @ribru17
|
||||
runtime/ftplugin/lynx.vim @dkearns
|
||||
runtime/ftplugin/m17ndb.vim @dseomn
|
||||
runtime/ftplugin/m3build.vim @dkearns
|
||||
runtime/ftplugin/m3quake.vim @dkearns
|
||||
runtime/ftplugin/markdown.vim @tpope
|
||||
@@ -248,6 +250,7 @@ runtime/ftplugin/pbtxt.vim @lakshayg
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/perl.vim @petdance @dkearns
|
||||
runtime/ftplugin/php.vim @dkearns
|
||||
runtime/ftplugin/plsql.vim @lee-lindley
|
||||
runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
@@ -282,6 +285,7 @@ runtime/ftplugin/slint.vim @ribru17
|
||||
runtime/ftplugin/snakemake.vim @ribru17
|
||||
runtime/ftplugin/solidity.vim @cothi
|
||||
runtime/ftplugin/solution.vim @dkearns
|
||||
runtime/ftplugin/spajson.vim @dseomn
|
||||
runtime/ftplugin/spec.vim @ignatenkobrain
|
||||
runtime/ftplugin/squirrel.vim @ribru17
|
||||
runtime/ftplugin/ssa.vim @ObserverOfTime
|
||||
@@ -293,6 +297,7 @@ runtime/ftplugin/systemverilog.vim @Kocha
|
||||
runtime/ftplugin/swig.vim @jmarrec
|
||||
runtime/ftplugin/tap.vim @petdance
|
||||
runtime/ftplugin/tcsh.vim @dkearns
|
||||
runtime/ftplugin/tera.vim @MuntasirSZN
|
||||
runtime/ftplugin/terraform.vim @JannoTjarks
|
||||
runtime/ftplugin/tf.vim @ribru17
|
||||
runtime/ftplugin/thrift.vim @jiangyinzuo
|
||||
@@ -366,6 +371,7 @@ runtime/indent/ld.vim @dkearns
|
||||
runtime/indent/less.vim @genoma
|
||||
runtime/indent/liquid.vim @tpope
|
||||
runtime/indent/lua.vim @marcuscf
|
||||
runtime/indent/m17ndb.vim @dseomn
|
||||
runtime/indent/make.vim @dkearns
|
||||
runtime/indent/meson.vim @Liambeguin
|
||||
runtime/indent/mma.vim @dkearns
|
||||
@@ -391,6 +397,7 @@ runtime/indent/scheme.vim @evhan
|
||||
runtime/indent/scss.vim @tpope
|
||||
runtime/indent/sh.vim @chrisbra
|
||||
runtime/indent/solidity.vim @cothi
|
||||
runtime/indent/spajson.vim @dseomn
|
||||
runtime/indent/systemverilog.vim @Kocha
|
||||
runtime/indent/tcl.vim @dkearns
|
||||
runtime/indent/tcsh.vim @dkearns
|
||||
@@ -419,6 +426,7 @@ runtime/pack/dist/opt/nohlsearch/ @habamax
|
||||
runtime/plugin/manpager.vim @Konfekt
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/syntax/abaqus.vim @costerwi
|
||||
runtime/syntax/abnf.vim @A4-Tacks
|
||||
runtime/syntax/aidl.vim @dpelle
|
||||
runtime/syntax/ant.vim @dkearns
|
||||
runtime/syntax/antlr4.vim @jiangyinzuo
|
||||
@@ -532,6 +540,7 @@ runtime/syntax/liquid.vim @tpope
|
||||
runtime/syntax/lua.vim @marcuscf
|
||||
runtime/syntax/lyrics.vim @ObserverOfTime
|
||||
runtime/syntax/lynx.vim @dkearns
|
||||
runtime/syntax/m17ndb.vim @dseomn
|
||||
runtime/syntax/m3build.vim @dkearns
|
||||
runtime/syntax/m3quake.vim @dkearns
|
||||
runtime/syntax/mailcap.vim @dkearns
|
||||
@@ -553,6 +562,7 @@ runtime/syntax/ninja.vim @nico
|
||||
runtime/syntax/nix.vim @equill
|
||||
runtime/syntax/nroff.vim @jmarshall
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/omnimark.vim @kennypete
|
||||
runtime/syntax/ondir.vim @jparise
|
||||
runtime/syntax/opencl.vim @Freed-Wu
|
||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||
@@ -570,6 +580,7 @@ runtime/syntax/postscr.vim @mrdubya
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
runtime/syntax/progress.vim @rdnlsmith
|
||||
runtime/syntax/prolog.vim @XVilka
|
||||
runtime/syntax/prql.vim @vanillajonathan
|
||||
runtime/syntax/ps1.vim @heaths
|
||||
runtime/syntax/ps1xml.vim @heaths
|
||||
runtime/syntax/psl.vim @danielkho
|
||||
@@ -601,6 +612,7 @@ runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/shaderslang.vim @mTvare6
|
||||
runtime/syntax/solidity.vim @cothi
|
||||
runtime/syntax/spajson.vim @dseomn
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
runtime/syntax/sqloracle.vim @chrisbra
|
||||
runtime/syntax/squirrel.vim @zenmatic
|
||||
@@ -615,6 +627,7 @@ runtime/syntax/swig.vim @jmarrec
|
||||
runtime/syntax/systemverilog.vim @Kocha
|
||||
runtime/syntax/tap.vim @petdance
|
||||
runtime/syntax/tcsh.vim @dkearns
|
||||
runtime/syntax/tera.vim @MuntasirSZN
|
||||
runtime/syntax/teraterm.vim @k-takata
|
||||
runtime/syntax/terraform.vim @gpanders
|
||||
runtime/syntax/thrift.vim @jiangyinzuo
|
||||
|
||||
@@ -52,6 +52,7 @@ jobs:
|
||||
os: ${{ matrix.os }}
|
||||
legacy: ${{ matrix.legacy && true || false }}
|
||||
xcode: ${{ matrix.xcode }}
|
||||
testgui: ${{ matrix.testgui && true || false }}
|
||||
publish: ${{ matrix.publish && true || false }}
|
||||
publish_postfix: ${{ matrix.publish_postfix }}
|
||||
optimized: ${{ matrix.optimized && true || false }}
|
||||
|
||||
@@ -13,6 +13,8 @@ on:
|
||||
type: boolean
|
||||
xcode:
|
||||
type: string
|
||||
testgui:
|
||||
type: boolean
|
||||
publish:
|
||||
type: boolean
|
||||
publish_postfix:
|
||||
@@ -363,7 +365,7 @@ jobs:
|
||||
make ${MAKE_BUILD_ARGS} -j${NPROC} -C src unittesttargets
|
||||
|
||||
- name: Test Vim
|
||||
if: startsWith(github.ref, 'refs/tags/') || !matrix.testgui
|
||||
if: startsWith(github.ref, 'refs/tags/') || !inputs.testgui
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
defaults delete org.vim.MacVim # Clean up stale states
|
||||
@@ -373,7 +375,7 @@ jobs:
|
||||
make ${MAKE_BUILD_ARGS} -C src test
|
||||
|
||||
- name: Test Vim (GUI)
|
||||
if: startsWith(github.ref, 'refs/tags/') || matrix.testgui
|
||||
if: startsWith(github.ref, 'refs/tags/') || inputs.testgui
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
defaults delete org.vim.MacVim # Clean up stale states
|
||||
|
||||
@@ -148,6 +148,11 @@ src/xxd/xxd
|
||||
src/xxd/xxd.dSYM
|
||||
src/a.out.dSYM
|
||||
|
||||
runtime/syntax/testdir/done/
|
||||
runtime/syntax/testdir/messages
|
||||
runtime/syntax/testdir/testdeps.mk
|
||||
runtime/syntax/testdir/vimcmd
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/doctags
|
||||
runtime/doc/tags-*
|
||||
|
||||
@@ -98,21 +98,33 @@ src/json_test
|
||||
src/message_test
|
||||
src/kword_test
|
||||
|
||||
runtime/syntax/testdir/done/
|
||||
runtime/syntax/testdir/messages
|
||||
runtime/syntax/testdir/testdeps.mk
|
||||
runtime/syntax/testdir/vimcmd
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/doctags
|
||||
runtime/doc/tags-*
|
||||
|
||||
# Temporarily generated by "runtime/syntax/generator/make"
|
||||
runtime/syntax/generator/generator.err
|
||||
runtime/syntax/generator/sanity_check.err
|
||||
runtime/syntax/generator/vim.vim.rc
|
||||
|
||||
# Generated by "make shadow". The directory names could be anything but we
|
||||
# restrict them to shadow (the default) or shadow-*
|
||||
src/shadow
|
||||
src/shadow-*
|
||||
src/runtime
|
||||
src/pixmaps
|
||||
src/LICENSE
|
||||
src/README.txt
|
||||
|
||||
# other files possibly created by tools
|
||||
src/cscope.out
|
||||
|
||||
# Linter/language server files
|
||||
/.cache/clangd/
|
||||
/.ccls-cache/
|
||||
/compile_commands.json
|
||||
.cache/clangd/
|
||||
.ccls-cache/
|
||||
compile_commands.json
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -157,6 +157,7 @@ SRC_ALL = \
|
||||
src/textobject.c \
|
||||
src/textprop.c \
|
||||
src/time.c \
|
||||
src/tuple.c \
|
||||
src/typval.c \
|
||||
src/ui.c \
|
||||
src/undo.c \
|
||||
@@ -223,6 +224,7 @@ SRC_ALL = \
|
||||
src/testdir/samples/*.html \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/*.vim \
|
||||
src/testdir/samples/poc.zip \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/samples/test.zip \
|
||||
src/testdir/samples/test_undo.txt.undo \
|
||||
@@ -338,6 +340,7 @@ SRC_ALL = \
|
||||
src/proto/textobject.pro \
|
||||
src/proto/textprop.pro \
|
||||
src/proto/time.pro \
|
||||
src/proto/tuple.pro \
|
||||
src/proto/typval.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
@@ -771,16 +774,16 @@ RT_ALL = \
|
||||
runtime/tools/[a-z]*[a-z0-9] \
|
||||
runtime/tutor/README.txt \
|
||||
runtime/tutor/tutor1 \
|
||||
runtime/tutor/tutor1.utf-8 \
|
||||
runtime/tutor/en/vim-01-beginner.tutor \
|
||||
runtime/tutor/en/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/it/vim-01-beginner.tutor \
|
||||
runtime/tutor/it/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/sr/vim-01-beginner.tutor \
|
||||
runtime/tutor/sr/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/en/vim-02-beginner.tutor \
|
||||
runtime/tutor/en/vim-02-beginner.tutor.json \
|
||||
runtime/tutor/tutor.tutor \
|
||||
runtime/tutor/tutor.tutor.json \
|
||||
runtime/tutor/tutor.vim \
|
||||
runtime/tutor/tutor2 \
|
||||
runtime/tutor/tutor2.utf-8 \
|
||||
runtime/vimrc_example.vim \
|
||||
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim \
|
||||
runtime/pack/dist/opt/comment/plugin/comment.vim \
|
||||
@@ -804,6 +807,7 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/editorconfig/plugin/editorconfig.vim \
|
||||
runtime/pack/dist/opt/helptoc/autoload/helptoc.vim \
|
||||
runtime/pack/dist/opt/helptoc/plugin/helptoc.vim \
|
||||
runtime/pack/dist/opt/hlyank/plugin/hlyank.vim \
|
||||
runtime/pack/dist/opt/justify/plugin/justify.vim \
|
||||
runtime/pack/dist/opt/matchit/plugin/matchit.vim \
|
||||
runtime/pack/dist/opt/matchit/doc/matchit.txt \
|
||||
@@ -816,7 +820,9 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/netrw/LICENSE.txt \
|
||||
runtime/pack/dist/opt/netrw/README.md \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/own.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/fs.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/os.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/msg.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrwSettings.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw_gitignore.vim \
|
||||
runtime/pack/dist/opt/netrw/doc/netrw.txt \
|
||||
@@ -876,6 +882,7 @@ RT_SCRIPTS = \
|
||||
runtime/syntax/testdir/input/setup/*.* \
|
||||
runtime/syntax/testdir/dumps/*.dump \
|
||||
runtime/syntax/testdir/dumps/*.vim \
|
||||
runtime/syntax/testdir/tools/* \
|
||||
runtime/syntax/generator/Makefile \
|
||||
runtime/syntax/generator/README.md \
|
||||
runtime/syntax/generator/gen_syntax_vim.vim \
|
||||
@@ -1074,7 +1081,16 @@ LANG_GEN = \
|
||||
runtime/tutor/README.*.txt \
|
||||
runtime/tutor/Makefile \
|
||||
runtime/tutor/Make_all.mak \
|
||||
runtime/tutor/tutor1.utf-8 \
|
||||
runtime/tutor/it/vim-01-beginner.tutor \
|
||||
runtime/tutor/it/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/ru/vim-01-beginner.tutor \
|
||||
runtime/tutor/ru/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/ru/vim-02-beginner.tutor \
|
||||
runtime/tutor/ru/vim-02-beginner.tutor.json \
|
||||
runtime/tutor/sr/vim-01-beginner.tutor \
|
||||
runtime/tutor/sr/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/sr/vim-02-beginner.tutor \
|
||||
runtime/tutor/sr/vim-02-beginner.tutor.json \
|
||||
runtime/tutor/tutor1.?? \
|
||||
runtime/tutor/tutor1.??.utf-8 \
|
||||
runtime/tutor/tutor1.??.euc \
|
||||
@@ -1087,7 +1103,6 @@ LANG_GEN = \
|
||||
runtime/tutor/tutor1.??_??.utf-8 \
|
||||
runtime/tutor/tutor1.bar \
|
||||
runtime/tutor/tutor1.bar.utf-8 \
|
||||
runtime/tutor/tutor2.utf-8 \
|
||||
runtime/tutor/tutor2.?? \
|
||||
runtime/tutor/tutor2.??.utf-8 \
|
||||
runtime/spell/README.txt \
|
||||
@@ -1148,6 +1163,8 @@ IGNORE = \
|
||||
.github/workflows/label.yml \
|
||||
SECURITY.md \
|
||||
ci/unlisted.make \
|
||||
ci/hlgroups.make \
|
||||
ci/hlgroups.ignore \
|
||||
src/libvterm/CODE-MAP \
|
||||
runtime/syntax/testdir/input/html_html \
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ VIM_FOR_SYNTAXTEST = ../../src/vim
|
||||
|
||||
# (For local testing only with GNU Make.)
|
||||
VIM_SYNTAX_TEST_FILTER =
|
||||
VIM_SYNTAX_TEST_WAIT_TIME =
|
||||
|
||||
syntaxtest:
|
||||
cd runtime/syntax && \
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
ColorColumn
|
||||
ComplMatchIns
|
||||
Conceal
|
||||
Cursor
|
||||
CursorColumn
|
||||
CursorIM
|
||||
CursorLine
|
||||
CursorLineNr
|
||||
debugBreakpoint
|
||||
debugPC
|
||||
DiffAdd
|
||||
DiffChange
|
||||
DiffDelete
|
||||
DiffText
|
||||
Directory
|
||||
ErrorMsg
|
||||
FoldColumn
|
||||
Folded
|
||||
Ignore
|
||||
IncSearch
|
||||
lCursor
|
||||
LineNr
|
||||
LineNrAbove
|
||||
LineNrBelow
|
||||
MatchParen
|
||||
Menu
|
||||
ModeMsg
|
||||
MoreMsg
|
||||
MsgArea
|
||||
NonText
|
||||
Normal
|
||||
Pmenu
|
||||
PmenuSbar
|
||||
PmenuSel
|
||||
PmenuThumb
|
||||
Question
|
||||
Scrollbar
|
||||
Search
|
||||
SignColumn
|
||||
SpecialKey
|
||||
SpellBad
|
||||
SpellCap
|
||||
SpellLocal
|
||||
SpellRare
|
||||
StatusLine
|
||||
StatusLineNC
|
||||
StatusLineTerm
|
||||
StatusLineTermNC
|
||||
TabLine
|
||||
TabLineFill
|
||||
TabLineSel
|
||||
Terminal
|
||||
Title
|
||||
TOhtmlProgress
|
||||
TOhtml-progress-color
|
||||
ToolbarButton
|
||||
ToolbarLine
|
||||
Tooltip
|
||||
User1
|
||||
User1..9
|
||||
User9
|
||||
VertSplit
|
||||
Visual
|
||||
VisualNOS
|
||||
WarningMsg
|
||||
WildMenu
|
||||
@@ -0,0 +1,18 @@
|
||||
# vim: ft=make
|
||||
SHELL = /bin/bash
|
||||
|
||||
# Default target to actually run the comparison:
|
||||
.PHONY: check
|
||||
.INTERMEDIATE: hlgroups deflinks hlgroups.stripped
|
||||
|
||||
check: hlgroups.stripped deflinks
|
||||
diff hlgroups.stripped deflinks
|
||||
|
||||
hlgroups:
|
||||
grep '\*hl-' ../runtime/doc/*txt | sed -E -e 's/.*:<?\s*//' -e 's/hl-//g' -e 's/\*//g' -e 's/ /\n/g' | sort > hlgroups
|
||||
|
||||
deflinks: ../src/highlight.c
|
||||
grep '"default link' $< | sed 's/.*default link\s*\(.*\)\s.*/\1/' | sort > deflinks
|
||||
|
||||
hlgroups.stripped: hlgroups.ignore hlgroups
|
||||
grep -v -x -F -f hlgroups.ignore hlgroups > hlgroups.stripped
|
||||
+1
-1
@@ -21,7 +21,7 @@ $(eval all_patterns := $(shell \
|
||||
p; \
|
||||
}'))
|
||||
|
||||
# In Makefile's `prepeare` target, all the IN_README_DIR files are moved from
|
||||
# In Makefile's `prepare` target, all the IN_README_DIR files are moved from
|
||||
# READMEdir to the root, so add those files in their Git-tracked location:
|
||||
all_patterns := $(all_patterns) \
|
||||
$(foreach readme, $(IN_README_DIR), READMEdir/$(readme))
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
LICENÇA DO VIM
|
||||
|
||||
I) Não há restrições para distribuir cópias não modificadas do Vim, exceto
|
||||
que elas devem incluir este texto de licença. Você também pode distribuir
|
||||
partes não modificadas do Vim, igualmente irrestritas, exceto que elas
|
||||
devem incluir este texto de licença. Você também tem permissão para incluir
|
||||
executáveis que você fez a partir das fontes não modificadas do Vim, além
|
||||
de seus próprios exemplos de uso e scripts do Vim.
|
||||
|
||||
II) É permitido distribuir uma versão modificada (ou estendida) do Vim,
|
||||
incluindo executáveis e/ou código-fonte, quando as quatro
|
||||
condições a seguir forem atendidas:
|
||||
1) Este texto de licença deve ser incluído sem modificações.
|
||||
2) O Vim modificado deve ser distribuído de uma das cinco formas a seguir:
|
||||
a) Se você fizer alterações no Vim, deverá descrever claramente na
|
||||
distribuição como entrar em contato com você. Quando o mantenedor
|
||||
solicitar a você (de qualquer forma) uma cópia do Vim modificado que
|
||||
você distribuiu, você deverá disponibilizar suas alterações,
|
||||
incluindo o código-fonte, ao mantenedor sem taxa. O mantenedor
|
||||
reserva o direito de incluir suas alterações na versão oficial
|
||||
do Vim. O que o mantenedor fará com suas alterações e sob qual
|
||||
licença elas serão distribuídas é negociável. Se não houve negociação
|
||||
então esta licença, ou uma versão posterior, também se aplica às suas
|
||||
alterações. Os mantenedores atuais estão listados aqui:
|
||||
https://github.com/orgs/vim/people. Se isso mudar, será anunciado em
|
||||
lugares apropriados (provavelmente vim.sf.net, www.vim.org e/ou
|
||||
comp.editors). Quando for completamente impossível contatar o
|
||||
mantenedor, a obrigação de enviar a ele suas alterações cessa.
|
||||
Uma vez que o mantenedor tenha confirmado que ele recebeu suas
|
||||
alterações, elas não precisarão ser enviadas novamente.
|
||||
b) Se você recebeu um Vim modificado que foi distribuído como
|
||||
mencionado em a), você tem permissão para distribuí-lo sem
|
||||
modificações, como mencionado em I). Se você fizer alterações
|
||||
adicionais, o texto em a) se aplica a essas alterações.
|
||||
c) Forneça todas as alterações, incluindo o código-fonte, com cada cópia
|
||||
do Vim modificado que você distribuir. Isso pode ser feito na forma
|
||||
de um diff de contexto. Você pode escolher qual licença usar para o
|
||||
novo código que você adicionar. As alterações e sua licença não devem
|
||||
restringir outros de fazer suas próprias alterações na versão oficial
|
||||
do Vim.
|
||||
d) Quando você tem um Vim modificado que inclui alterações conforme
|
||||
mencionado em c), você pode distribuí-lo sem o código-fonte para as
|
||||
alterações se as três condições a seguir forem atendidas:
|
||||
- A licença que se aplica às alterações permite que você distribua
|
||||
as alterações para o mantenedor do Vim sem taxa ou restrição, e
|
||||
permite que o mantenedor do Vim inclua as alterações na
|
||||
versão oficial do Vim sem taxa ou restrição.
|
||||
- Você mantém as alterações por pelo menos três anos após a última
|
||||
distribuição do Vim modificado correspondente. Quando o mantenedor
|
||||
ou alguém para quem você distribuiu o Vim modificado solicitar a
|
||||
você (de qualquer forma) as alterações dentro deste período, você
|
||||
deve disponibilizá-las a ele.
|
||||
- Você descreve claramente na distribuição como entrar em contato
|
||||
com você. Estas informações de contato devem permanecer válidas por
|
||||
pelo menos três anos após a última distribuição do Vim modificado
|
||||
correspondente, ou pelo maior tempo possível.
|
||||
e) Quando a Licença Pública Geral GNU (GPL) se aplica às alterações,
|
||||
você pode distribuir o Vim modificado sob a GNU GPL versão 2 ou
|
||||
qualquer versão posterior.
|
||||
3) Uma mensagem deve ser adicionada, no mínimo na saída do comando
|
||||
":version" e na tela de introdução, de modo que o usuário do Vim
|
||||
modificado seja capaz de ver que ele foi modificado. Ao distribuir
|
||||
conforme mencionado em 2)e), só é necessário adicionar a mensagem
|
||||
na medida em que isso não entre em conflito com a licença usada para
|
||||
as alterações.
|
||||
4) As informações de contato conforme exigido em 2)a) e 2)d) não devem ser
|
||||
removidas ou alteradas, exceto que a própria pessoa pode fazer
|
||||
correções.
|
||||
|
||||
III) Se você distribuir uma versão modificada do Vim, encorajamos que use
|
||||
a licença do Vim para suas alterações e disponibilizá-las ao
|
||||
mantenedor, incluindo o código-fonte. A maneira preferida de fazer isso é
|
||||
por e-mail ou enviando os arquivos para um servidor e enviando a URL por
|
||||
e-mail. Se o número de alterações for pequeno (por exemplo, um Makefile
|
||||
modificado), enviar um diff de contexto por e-mail será suficiente.
|
||||
O endereço de e-mail a ser usado é <maintainer@vim.org>
|
||||
|
||||
IV) Não é permitido remover esta licença da distribuição das fontes do Vim,
|
||||
partes dela ou de uma versão modificada. Você pode usar esta licença
|
||||
para versões anteriores do Vim em vez da licença com a qual elas vieram,
|
||||
a seu critério.
|
||||
@@ -0,0 +1,131 @@
|
||||
README.txt para a versão 9.1 do Vim: Vi IMproved.
|
||||
|
||||
O QUE É VIM?
|
||||
|
||||
Vim é uma versão muito melhorada do bom e velho editor UNIX Vi. Muitos novos
|
||||
recursos foram adicionados: desfazer multinível, destaque de sintaxe, histórico
|
||||
de linha de comando, ajuda on-line, verificação ortográfica, completar
|
||||
nome de arquivo, operações de bloco, linguagem de script, etc. Há também uma
|
||||
interface gráfica (GUI) disponível. Ainda assim, a compatibilidade com Vi é
|
||||
mantida, aqueles que têm Vi "nos dedos" se sentirão em casa.
|
||||
Veja "runtime/doc/vi_diff.txt" para diferenças com Vi.
|
||||
|
||||
Este editor é muito útil para editar programas e outros arquivos de texto
|
||||
simples. Todos os comandos são fornecidos com caracteres normais do teclado,
|
||||
então aqueles que podem digitar com dez dedos podem trabalhar muito rápido.
|
||||
Além disso, as teclas de função podem ser mapeadas para comandos pelo usuário,
|
||||
e o mouse pode ser usado.
|
||||
|
||||
O Vim funciona em MS-Windows (7, 8, 10, 11), macOS, Haiku, VMS e quase todos
|
||||
os sabores do UNIX. A portabilidade para outros sistemas não deve ser difícil.
|
||||
Versões mais antigas do Vim rodam em MS-DOS, MS-Windows 95/98/Me/NT/2000/XP/Vista,
|
||||
Amiga DOS, Atari MiNT, BeOS, RISC OS e OS/2. Eles não são mais mantidos.
|
||||
|
||||
DISTRIBUIÇÃO
|
||||
|
||||
Você pode frequentemente usar seu gerenciador de pacotes favorito para
|
||||
instalar o Vim. No Mac e Linux, uma pequena versão do Vim é pré-instalada,
|
||||
você ainda precisa instalar o Vim se quiser mais recursos.
|
||||
|
||||
Existem distribuições separadas para Unix, PC, Amiga e alguns outros sistemas.
|
||||
Este arquivo README.txt vem com o arquivo de tempo de execução. Ele inclui a
|
||||
documentação, arquivos de sintaxe e outros arquivos que são usados em
|
||||
tempo de execução. Para executar o Vim, você deve obter um dos arquivos
|
||||
binários ou um arquivo fonte. Qual deles você precisa depende do sistema em
|
||||
que deseja executá-lo e se você deseja ou deve compilá-lo você mesmo.
|
||||
Verifique "https://www.vim.org/download.php" para uma visão geral das
|
||||
distribuições disponíveis atualmente.
|
||||
|
||||
Alguns lugares populares para obter o Vim mais recente:
|
||||
* Confira o repositório git do github: https://github.com/vim/vim.
|
||||
* Obtenha o código-fonte como um arquivo: https://github.com/vim/vim/tags.
|
||||
* Obtenha um executável do Windows do repositório vim-win32-installer:
|
||||
https://github.com/vim/vim-win32-installer/releases.
|
||||
|
||||
COMPILAR
|
||||
|
||||
Se você obteve uma distribuição binária, não precisa compilar o Vim. Se você
|
||||
obteve uma distribuição de origem, todo o material para compilar o Vim está no
|
||||
diretório "src". Veja src/INSTALL para instruções.
|
||||
|
||||
INSTALAÇÃO
|
||||
|
||||
Veja um desses arquivos para instruções específicas do sistema. No diretório
|
||||
READMEdir (no repositório) ou no diretório superior (se você descompactar um
|
||||
arquivo):
|
||||
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS e MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_haiku.txt Haiku
|
||||
README_vms.txt VMS
|
||||
|
||||
Existem outros arquivos README_*.txt, dependendo da distribuição que você usou.
|
||||
|
||||
DOCUMENTAÇÃO
|
||||
|
||||
O tutor do Vim é um curso de treinamento de uma hora para iniciantes.
|
||||
Frequentemente, ele pode ser iniciado como "vimtutor". Veja ":help tutor"
|
||||
para mais informações.
|
||||
|
||||
O melhor é usar ":help" no Vim. Se você ainda não tem um executável, leia
|
||||
"runtime/doc/help.txt". Ele contém direcionamentos para os outros arquivos
|
||||
de documentação. O Manual do Usuário é lido como um livro e é recomendado
|
||||
para aprender a usar o Vim. Veja ":help user-manual".
|
||||
|
||||
CÓPIA
|
||||
|
||||
O Vim é um Charityware. Você pode usá-lo e copiá-lo o quanto quiser, mas
|
||||
encorajamos que faça uma doação para ajudar órfãos em Uganda. Leia o arquivo
|
||||
"runtime/doc/uganda.txt" para detalhes (execute ":help uganda" dentro do Vim).
|
||||
|
||||
Resumo da licença: Não há restrições quanto ao uso ou distribuição de uma
|
||||
cópia não modificada do Vim. Partes do Vim também podem ser distribuídas, mas
|
||||
o texto da licença deve sempre ser incluído. Para versões modificadas, algumas
|
||||
restrições se aplicam. A licença é compatível com GPL, você pode compilar o Vim
|
||||
com bibliotecas GPL e distribuí-lo.
|
||||
|
||||
PATROCÍNIO
|
||||
|
||||
Corrigir bugs e adicionar novos recursos exige muito tempo e esforço.
|
||||
Para mostrar seu apreço pelo trabalho e motivar os desenvolvedores a continuar
|
||||
trabalhando no Vim, envie uma doação.
|
||||
|
||||
O dinheiro que você doou será usado principalmente para ajudar crianças em
|
||||
Uganda. Veja "runtime/doc/uganda.txt". Mas, ao mesmo tempo, as doações aumentam
|
||||
a motivação da equipe de desenvolvimento para continuar trabalhando no Vim!
|
||||
|
||||
Para as informações mais recentes sobre patrocínio, consulte o site do Vim:
|
||||
https://www.vim.org/sponsor/
|
||||
|
||||
CONTRIBUIÇÕES
|
||||
|
||||
Se você gostaria de ajudar a tornar o Vim melhor, veja o arquivo CONTRIBUTING.md.
|
||||
|
||||
INFORMAÇÕES
|
||||
|
||||
Se você estiver no macOS, pode usar o MacVim: https://macvim.org
|
||||
|
||||
As últimas notícias sobre o Vim podem ser encontradas na página inicial do Vim:
|
||||
https://www.vim.org/
|
||||
|
||||
Se você tiver problemas, dê uma olhada na documentação ou dicas do Vim:
|
||||
https://www.vim.org/docs.php
|
||||
https://vim.fandom.com/wiki/Vim_Tips_Wiki
|
||||
|
||||
Se você ainda tiver problemas ou quaisquer outras perguntas, use uma das listas
|
||||
de discussão para discuti-las com usuários e desenvolvedores do Vim:
|
||||
https://www.vim.org/maillist.php
|
||||
|
||||
Se nada mais funcionar, relate os bugs diretamente para a lista de discussão
|
||||
vim-dev:
|
||||
<vim-dev@vim.org>
|
||||
|
||||
AUTOR PRINCIPAL
|
||||
|
||||
A maior parte do Vim foi criada por Bram Moolenaar <Bram@vim.org>,
|
||||
":help Bram-Moolenaar"
|
||||
|
||||
Envie quaisquer outros comentários, patches, flores e sugestões para
|
||||
a lista de discussão vim-dev: <vim-dev@vim.org>
|
||||
+4
-2
@@ -1,6 +1,6 @@
|
||||
# NSIS file to create a self-installing exe for Vim.
|
||||
# It requires NSIS version 3.0 or later.
|
||||
# Last Change: 2025 Jan 05
|
||||
# Last Change: 2025 Feb 24
|
||||
|
||||
Unicode true
|
||||
|
||||
@@ -216,6 +216,7 @@ Page custom SetCustom ValidateCustom
|
||||
|
||||
# Include support for other languages:
|
||||
!if ${HAVE_MULTI_LANG}
|
||||
!include "lang\portuguesebr.nsi"
|
||||
!include "lang\danish.nsi"
|
||||
!include "lang\dutch.nsi"
|
||||
!include "lang\german.nsi"
|
||||
@@ -806,7 +807,8 @@ Function .onInit
|
||||
ClearErrors
|
||||
System::Call 'kernel32::GetUserDefaultLocaleName(t.r19, *i${NSIS_MAX_STRLEN})'
|
||||
StrCmp $R9 "zh-cn" coincide 0
|
||||
StrCmp $R9 "zh-tw" 0 part
|
||||
StrCmp $R9 "zh-tw" coincide 0
|
||||
StrCmp $R9 "pt-br" 0 part
|
||||
coincide:
|
||||
System::Call 'User32::CharLower(t r19 r19)*i${NSIS_MAX_STRLEN}'
|
||||
${StrRep} $lng_usr "$R9" "-" "_"
|
||||
|
||||
@@ -18,6 +18,13 @@ allowable length of strings. For example:
|
||||
drop-down lists on the .vimrc page - 55 characters.
|
||||
Characters in this case mean characters of the English alphabet.
|
||||
|
||||
Once the message translation file is ready, it must be included in the
|
||||
"gvim.nsi" file.
|
||||
Find the line "# Include support for other languages:" in the file "gvim.nsi"
|
||||
and specify the name of the file with your translation below the line
|
||||
!if ${HAVE_MULTI_LANG}, similar to the entries already there. File names are
|
||||
specified in alphabetical order.
|
||||
|
||||
If you do not yet have a translated "LICENSE" file and/or a main "README.txt"
|
||||
file, set the following values:
|
||||
|
||||
@@ -32,3 +39,25 @@ variables similarly to what is done in the other translation files.
|
||||
Translation files should be located in the "lang" subdirectory of the root
|
||||
directory. The name of the files is as follows: "README.xx.txt", where xx is the
|
||||
language code according to ISO639.
|
||||
|
||||
|
||||
There are two ways to test the installer in different languages:
|
||||
|
||||
1. Find and uncomment the "!define MUI_LANGDLL_ALWAYSSHOW" line in the
|
||||
"gvim.nsi" file and rebuild the installer.
|
||||
Now every time you run it, you will see a dialog box with the possibility to
|
||||
select the language of the installer.
|
||||
|
||||
2. If the Vim editor is already installed in your system, delete the
|
||||
"Installer Language" parameter in the Windows registry under
|
||||
"HKEY_CURRENT_USER\Software\Vim".
|
||||
Or you can create a file "NoLangInstallerVim.reg" with the following content:
|
||||
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Vim]
|
||||
"Installer Language"=-
|
||||
|
||||
and apply it by double-clicking on it.
|
||||
After these steps, when you start the installer, a window with the installer
|
||||
language selection will also be displayed.
|
||||
|
||||
@@ -0,0 +1,291 @@
|
||||
# vi:set ts=8 sts=4 sw=4 et fdm=marker:
|
||||
#
|
||||
# portuguesebr.nsi: Brazilian Portuguese strings for gvim NSIS installer.
|
||||
#
|
||||
# Locale ID : 1046
|
||||
# Locale Name : pt-BR
|
||||
# fileencoding : UTF-8
|
||||
# Author : Rafael Fontenelle
|
||||
|
||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
||||
|
||||
|
||||
# Overwrite the default translation.
|
||||
# These strings should be always English. Otherwise dosinst.c fails.
|
||||
LangString ^SetupCaption ${LANG_PORTUGUESEBR} \
|
||||
"Configuração do $(^Name)"
|
||||
LangString ^UninstallCaption ${LANG_PORTUGUESEBR} \
|
||||
"Desinstalação do $(^Name)"
|
||||
|
||||
##############################################################################
|
||||
# License file for the license page {{{1
|
||||
##############################################################################
|
||||
|
||||
LicenseLangString page_lic_file ${LANG_PORTUGUESEBR} "..\lang\LICENSE.pt_br.nsis.txt"
|
||||
|
||||
##############################################################################
|
||||
# README.txt file, which is opened after installation {{{1
|
||||
##############################################################################
|
||||
|
||||
LangString vim_readme_file ${LANG_PORTUGUESEBR} "README.pt_br.txt"
|
||||
|
||||
##############################################################################
|
||||
# MUI Configuration Strings {{{1
|
||||
##############################################################################
|
||||
|
||||
#LangString str_dest_folder ${LANG_PORTUGUESEBR} \
|
||||
# "Pasta de destino (Deve terminar com $\"vim$\")"
|
||||
|
||||
LangString str_show_readme ${LANG_PORTUGUESEBR} \
|
||||
"Mostrar o README ao concluir a instalação"
|
||||
|
||||
# Install types:
|
||||
LangString str_type_typical ${LANG_PORTUGUESEBR} \
|
||||
"Típica"
|
||||
|
||||
LangString str_type_minimal ${LANG_PORTUGUESEBR} \
|
||||
"Mínima"
|
||||
|
||||
LangString str_type_full ${LANG_PORTUGUESEBR} \
|
||||
"Completa"
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Section Titles & Description {{{1
|
||||
##############################################################################
|
||||
|
||||
LangString str_section_old_ver ${LANG_PORTUGUESEBR} \
|
||||
"Desinstalar versões existentes"
|
||||
LangString str_desc_old_ver ${LANG_PORTUGUESEBR} \
|
||||
"Desinstala versões do Vim existentes no seu sistema."
|
||||
|
||||
LangString str_section_exe ${LANG_PORTUGUESEBR} \
|
||||
"Vim GUI e arquivos de runtime"
|
||||
LangString str_desc_exe ${LANG_PORTUGUESEBR} \
|
||||
"Executáveis e arquivos de runtime do Vim GUI. Este componente \
|
||||
é obrigatório."
|
||||
|
||||
LangString str_section_console ${LANG_PORTUGUESEBR} \
|
||||
"Programa de console do Vim"
|
||||
LangString str_desc_console ${LANG_PORTUGUESEBR} \
|
||||
"Versão de console do Vim (vim.exe)."
|
||||
|
||||
LangString str_section_batch ${LANG_PORTUGUESEBR} \
|
||||
"Criar arquivos .bat"
|
||||
LangString str_desc_batch ${LANG_PORTUGUESEBR} \
|
||||
"Cria arquivos .bat para variantes do Vim no diretório Windows para \
|
||||
usar na linha de comando."
|
||||
|
||||
LangString str_group_icons ${LANG_PORTUGUESEBR} \
|
||||
"Criar ícones para o Vim"
|
||||
LangString str_desc_icons ${LANG_PORTUGUESEBR} \
|
||||
"Cria ícones para Vim em vários locais para facilitar o acesso rápido."
|
||||
|
||||
LangString str_section_desktop ${LANG_PORTUGUESEBR} \
|
||||
"Na área de trabalho"
|
||||
LangString str_desc_desktop ${LANG_PORTUGUESEBR} \
|
||||
"Cria ícones para executáveis do gVim na área de trabalho."
|
||||
|
||||
LangString str_section_start_menu ${LANG_PORTUGUESEBR} \
|
||||
"Na pasta Programas do Menu Iniciar"
|
||||
LangString str_desc_start_menu ${LANG_PORTUGUESEBR} \
|
||||
"Adiciona Vim na pasta de programas do menu iniciar."
|
||||
|
||||
#LangString str_section_quick_launch ${LANG_PORTUGUESEBR} \
|
||||
# "Na barra de Inicialização Rápida"
|
||||
#LangString str_desc_quick_launch ${LANG_PORTUGUESEBR} \
|
||||
# "Adiciona um atalho para o Vim na barra de inicialização rápida."
|
||||
|
||||
LangString str_section_edit_with ${LANG_PORTUGUESEBR} \
|
||||
"Adicionar menu de contexto do Vim"
|
||||
LangString str_desc_edit_with ${LANG_PORTUGUESEBR} \
|
||||
"Adiciona o Vim à lista $\"Abrir com...$\" do menu de contexto."
|
||||
|
||||
#LangString str_section_edit_with32 ${LANG_PORTUGUESEBR} \
|
||||
# "Versão 32 bits"
|
||||
#LangString str_desc_edit_with32 ${LANG_PORTUGUESEBR} \
|
||||
# "Adiciona o Vim à lista $\"Abrir com...$\" do menu de contexto \
|
||||
# para aplicativos 32 bits."
|
||||
|
||||
#LangString str_section_edit_with64 ${LANG_PORTUGUESEBR} \
|
||||
# "Versão 64 bits"
|
||||
#LangString str_desc_edit_with64 ${LANG_PORTUGUESEBR} \
|
||||
# "Adiciona o Vim à lista $\"Abrir com...$\" do menu de contexto \
|
||||
# para aplicativos 64 bits."
|
||||
|
||||
LangString str_section_vim_rc ${LANG_PORTUGUESEBR} \
|
||||
"Criar configuração padrão"
|
||||
LangString str_desc_vim_rc ${LANG_PORTUGUESEBR} \
|
||||
"Cria um arquivo de configuração padrão (_vimrc) se não já existir."
|
||||
|
||||
LangString str_group_plugin ${LANG_PORTUGUESEBR} \
|
||||
"Criar diretórios de plugins"
|
||||
LangString str_desc_plugin ${LANG_PORTUGUESEBR} \
|
||||
"Cria diretórios de plugins. Diretórios de plugins permitem estender \
|
||||
o Vim adicionando um arquivo a um direótrio."
|
||||
|
||||
LangString str_section_plugin_home ${LANG_PORTUGUESEBR} \
|
||||
"Privados"
|
||||
LangString str_desc_plugin_home ${LANG_PORTUGUESEBR} \
|
||||
"Cria diretórios de plugins no diretório HOME."
|
||||
|
||||
LangString str_section_plugin_vim ${LANG_PORTUGUESEBR} \
|
||||
"Compartilhados"
|
||||
LangString str_desc_plugin_vim ${LANG_PORTUGUESEBR} \
|
||||
"Cria diretórios de plugins no diretório de instalação do Vim, \
|
||||
o qual é usado por todos os usuários do sistema."
|
||||
|
||||
LangString str_section_nls ${LANG_PORTUGUESEBR} \
|
||||
"Suporte ao idioma nativo"
|
||||
LangString str_desc_nls ${LANG_PORTUGUESEBR} \
|
||||
"Instala arquivos para suporte ao idioma nativo."
|
||||
|
||||
LangString str_unsection_register ${LANG_PORTUGUESEBR} \
|
||||
"Desregistrar Vim"
|
||||
LangString str_desc_unregister ${LANG_PORTUGUESEBR} \
|
||||
"Remove os registras do Vim do sistema."
|
||||
|
||||
LangString str_unsection_exe ${LANG_PORTUGUESEBR} \
|
||||
"Remover arquivos executáveis/runtime do Vim"
|
||||
LangString str_desc_rm_exe ${LANG_PORTUGUESEBR} \
|
||||
"Remove todos os arquivos executáveis e de runtime do Vim."
|
||||
|
||||
LangString str_ungroup_plugin ${LANG_PORTUGUESEBR} \
|
||||
"Remover diretórios de plugins"
|
||||
LangString str_desc_rm_plugin ${LANG_PORTUGUESEBR} \
|
||||
"Remove os diretórios de plugins se eles estiverem vazios."
|
||||
|
||||
LangString str_unsection_plugin_home ${LANG_PORTUGUESEBR} \
|
||||
"Privados"
|
||||
LangString str_desc_rm_plugin_home ${LANG_PORTUGUESEBR} \
|
||||
"Remove os diretórios de plugins do diretório HOME."
|
||||
|
||||
LangString str_unsection_plugin_vim ${LANG_PORTUGUESEBR} \
|
||||
"Compartilhados"
|
||||
LangString str_desc_rm_plugin_vim ${LANG_PORTUGUESEBR} \
|
||||
"Remove os diretórios de plugins do diretório de instalação do Vim."
|
||||
|
||||
LangString str_unsection_rootdir ${LANG_PORTUGUESEBR} \
|
||||
"Remover diretório raiz do Vim"
|
||||
LangString str_desc_rm_rootdir ${LANG_PORTUGUESEBR} \
|
||||
"Remove o diretório raiz do Vim. Ele contém seus \
|
||||
arquivos de configuração do Vim!"
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Messages {{{1
|
||||
##############################################################################
|
||||
|
||||
#LangString str_msg_too_many_ver ${LANG_PORTUGUESEBR} \
|
||||
# "Encontradas $vim_old_ver_count versões do Vim em seu sistema.$\r$\n\
|
||||
# Este instalador só consegue lidar com ${VIM_MAX_OLD_VER} versões\
|
||||
# no máximo.$\r$\n\
|
||||
# Por favor, remova algumas versões e comece novamente."
|
||||
|
||||
#LangString str_msg_invalid_root ${LANG_PORTUGUESEBR} \
|
||||
# "Caminho de instalação inválido: $vim_install_root!$\r$\n\
|
||||
# Ele deve terminar com $\"vim$\"."
|
||||
|
||||
#LangString str_msg_bin_mismatch ${LANG_PORTUGUESEBR} \
|
||||
# "Incompatibilidade de caminho de binários!$\r$\n$\r$\n\
|
||||
# Esperava que o caminho de binários fosse $\"$vim_bin_path$\",$\r$\n\
|
||||
# mas o sistema indica que o caminho de binários é $\"$INSTDIR$\"."
|
||||
|
||||
#LangString str_msg_vim_running ${LANG_PORTUGUESEBR} \
|
||||
# "Vim ainda está em execução em seu sistema.$\r$\n\
|
||||
# Por favor, feche todas as instâncias do Vim para poder continuar."
|
||||
|
||||
#LangString str_msg_register_ole ${LANG_PORTUGUESEBR} \
|
||||
# "Tentativa de registrar o Vim com OLE. \
|
||||
# Não há mensagem que indique se isso funciona ou não."
|
||||
|
||||
#LangString str_msg_unreg_ole ${LANG_PORTUGUESEBR} \
|
||||
# "Tentando desregistrar o Vim com OLE. \
|
||||
# Não há mensagem que indique se isso funciona ou não."
|
||||
|
||||
#LangString str_msg_rm_start ${LANG_PORTUGUESEBR} \
|
||||
# "Desinstalando a seguinte versão:"
|
||||
|
||||
#LangString str_msg_rm_fail ${LANG_PORTUGUESEBR} \
|
||||
# "Falha ao desinstalar a seguinte versão:"
|
||||
|
||||
#LangString str_msg_no_rm_key ${LANG_PORTUGUESEBR} \
|
||||
# "Não foi possível encontrar a chave de registro do desinstalador."
|
||||
|
||||
#LangString str_msg_no_rm_reg ${LANG_PORTUGUESEBR} \
|
||||
# "Não foi possível encontrar o desinstalador a partir do registro."
|
||||
|
||||
#LangString str_msg_no_rm_exe ${LANG_PORTUGUESEBR} \
|
||||
# "Não foi possível acessar o desinstalador."
|
||||
|
||||
#LangString str_msg_rm_copy_fail ${LANG_PORTUGUESEBR} \
|
||||
# "Falha ao copiar o desinstalador para um diretório temporário."
|
||||
|
||||
#LangString str_msg_rm_run_fail ${LANG_PORTUGUESEBR} \
|
||||
# "Falha ao executar o desinstalador."
|
||||
|
||||
#LangString str_msg_abort_install ${LANG_PORTUGUESEBR} \
|
||||
# "Instalador será interrompido."
|
||||
|
||||
LangString str_msg_install_fail ${LANG_PORTUGUESEBR} \
|
||||
"A instalação falhou. Mais sorte na próxima vez."
|
||||
|
||||
LangString str_msg_rm_exe_fail ${LANG_PORTUGUESEBR} \
|
||||
"Alguns arquivos em $0 não foram excluídos!$\r$\n\
|
||||
Você deve fazê-lo manualmente."
|
||||
|
||||
#LangString str_msg_rm_root_fail ${LANG_PORTUGUESEBR} \
|
||||
# "AVISO: Não foi possível remover $\"$vim_install_root$\", \
|
||||
# pois não está vazio!"
|
||||
|
||||
LangString str_msg_uninstalling ${LANG_PORTUGUESEBR} \
|
||||
"Desinstalando a versão antiga..."
|
||||
|
||||
LangString str_msg_registering ${LANG_PORTUGUESEBR} \
|
||||
"Registrando..."
|
||||
|
||||
LangString str_msg_unregistering ${LANG_PORTUGUESEBR} \
|
||||
"Desregistrando..."
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Dialog Box {{{1
|
||||
##############################################################################
|
||||
|
||||
LangString str_vimrc_page_title ${LANG_PORTUGUESEBR} \
|
||||
"Escolher configurações do _vimrc"
|
||||
LangString str_vimrc_page_subtitle ${LANG_PORTUGUESEBR} \
|
||||
"Escolha as configurações para melhorias, teclado e mouse."
|
||||
|
||||
LangString str_msg_compat_title ${LANG_PORTUGUESEBR} \
|
||||
" Comportamento Vi / Vim "
|
||||
LangString str_msg_compat_desc ${LANG_PORTUGUESEBR} \
|
||||
"&Compatibilidade e melhorias"
|
||||
LangString str_msg_compat_vi ${LANG_PORTUGUESEBR} \
|
||||
"Compatível com Vi"
|
||||
LangString str_msg_compat_vim ${LANG_PORTUGUESEBR} \
|
||||
"Vim original"
|
||||
LangString str_msg_compat_defaults ${LANG_PORTUGUESEBR} \
|
||||
"Vim com algumas melhorias (carrega defaults.vim)"
|
||||
LangString str_msg_compat_all ${LANG_PORTUGUESEBR} \
|
||||
"Vim com todas as melhorias (carrega vimrc_example.vim) (Padrão)"
|
||||
|
||||
LangString str_msg_keymap_title ${LANG_PORTUGUESEBR} \
|
||||
" Mapeamentos "
|
||||
LangString str_msg_keymap_desc ${LANG_PORTUGUESEBR} \
|
||||
"&Remapear algumas teclas para o Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
|
||||
LangString str_msg_keymap_default ${LANG_PORTUGUESEBR} \
|
||||
"Não remapear teclas (Padrão)"
|
||||
LangString str_msg_keymap_windows ${LANG_PORTUGUESEBR} \
|
||||
"Remapear algumas teclas"
|
||||
|
||||
LangString str_msg_mouse_title ${LANG_PORTUGUESEBR} \
|
||||
" Mouse "
|
||||
LangString str_msg_mouse_desc ${LANG_PORTUGUESEBR} \
|
||||
"&Comportamento de botões direito e esquerdo"
|
||||
LangString str_msg_mouse_default ${LANG_PORTUGUESEBR} \
|
||||
"Direito: menu popup, Esquerdo: modo visual (Padrão)"
|
||||
LangString str_msg_mouse_windows ${LANG_PORTUGUESEBR} \
|
||||
"Direito: menu popup, Esquerdo: modo de seleção (Windows)"
|
||||
LangString str_msg_mouse_unix ${LANG_PORTUGUESEBR} \
|
||||
"Direito: estende seleção, Esquerdo: modo visual (Unix)"
|
||||
Vendored
+87
-3
@@ -5,6 +5,8 @@
|
||||
" Autoload Split: Bram Moolenaar
|
||||
" Last Change: 2024 Jan 17 (make it work on AIX, see #13847)
|
||||
" 2024 Jul 06 (honor command modifiers, #15117)
|
||||
" 2025 Mar 05 (add :keepjumps, #16791)
|
||||
" 2025 Mar 09 (improve :Man completion for man-db, #16843)
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
@@ -34,6 +36,88 @@ endtry
|
||||
|
||||
unlet! uname_s
|
||||
|
||||
let s:man_db_pages_by_section = v:null
|
||||
func! s:ManDbPagesBySection() abort
|
||||
if s:man_db_pages_by_section isnot v:null
|
||||
return s:man_db_pages_by_section
|
||||
endif
|
||||
let s:man_db_pages_by_section = {}
|
||||
let list_command = 'apropos --long .'
|
||||
let unparsed_lines = []
|
||||
for line in systemlist(list_command)
|
||||
" Typical lines:
|
||||
" vim (1) - Vi IMproved, a programmer's text editor
|
||||
"
|
||||
" Unusual lines:
|
||||
" pgm_read_ T _ (3avr) - (unknown subject)
|
||||
"
|
||||
" Code that shows the line's format:
|
||||
" https://gitlab.com/man-db/man-db/-/blob/2607d203472efb036d888e9e7997724a41a53876/src/whatis.c#L409
|
||||
let match = matchlist(line, '^\(.\{-1,}\) (\(\S\+\)) ')
|
||||
if empty(match)
|
||||
call add(unparsed_lines, line)
|
||||
continue
|
||||
endif
|
||||
let [page, section] = match[1:2]
|
||||
if !has_key(s:man_db_pages_by_section, section)
|
||||
let s:man_db_pages_by_section[section] = []
|
||||
endif
|
||||
call add(s:man_db_pages_by_section[section], page)
|
||||
endfor
|
||||
if !empty(unparsed_lines)
|
||||
echomsg 'Unable to parse ' .. string(len(unparsed_lines)) .. ' lines ' ..
|
||||
\ 'from the output of `' .. list_command .. '`. Example lines:'
|
||||
for line in unparsed_lines[:9]
|
||||
echomsg line
|
||||
endfor
|
||||
endif
|
||||
return s:man_db_pages_by_section
|
||||
endfunc
|
||||
|
||||
func! dist#man#Reload() abort
|
||||
if g:ft_man_implementation ==# 'man-db'
|
||||
let s:man_db_pages_by_section = v:null
|
||||
call s:ManDbPagesBySection()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func! s:StartsWithCaseInsensitive(haystack, needle) abort
|
||||
if empty(a:needle)
|
||||
return v:true
|
||||
endif
|
||||
return a:haystack[:len(a:needle)-1] ==? a:needle
|
||||
endfunc
|
||||
|
||||
func! dist#man#ManDbComplete(arg_lead, cmd_line, cursor_pos) abort
|
||||
let args = split(trim(a:cmd_line[: a:cursor_pos - 1], '', 1), '', v:true)
|
||||
let pages_by_section = s:ManDbPagesBySection()
|
||||
if len(args) > 2
|
||||
" Page in the section args[1]. At least on Debian testing as of
|
||||
" 2025-03-06, man seems to match sections case-insensitively and match any
|
||||
" prefix of the section. E.g., `man 3 sigprocmask` and `man 3PoSi
|
||||
" sigprocmask` with both load sigprocmask(3posix) even though the 3 in the
|
||||
" first command is also the name of a different section.
|
||||
let results = []
|
||||
for [section, pages] in items(pages_by_section)
|
||||
if s:StartsWithCaseInsensitive(section, args[1])
|
||||
call extend(results, pages)
|
||||
endif
|
||||
endfor
|
||||
else
|
||||
" Could be a section, or a page in any section. Add space after sections
|
||||
" since there has to be a second argument in that case.
|
||||
let results = flattennew(values(pages_by_section), 1)
|
||||
for section in keys(pages_by_section)
|
||||
call add(results, section .. ' ')
|
||||
endfor
|
||||
endif
|
||||
call sort(results)
|
||||
call uniq(results)
|
||||
call filter(results,
|
||||
\ {_, val -> s:StartsWithCaseInsensitive(val, a:arg_lead)})
|
||||
return results
|
||||
endfunc
|
||||
|
||||
func s:ParseIntoPageAndSection()
|
||||
" Accommodate a reference that terminates in a hyphen.
|
||||
"
|
||||
@@ -188,7 +272,7 @@ func dist#man#GetPage(cmdmods, ...)
|
||||
setl buftype=nofile noswapfile
|
||||
|
||||
setl fdc=0 ma nofen nonu nornu
|
||||
%delete _
|
||||
keepjumps %delete _
|
||||
let unsetwidth = 0
|
||||
if empty($MANWIDTH)
|
||||
let $MANWIDTH = winwidth(0)
|
||||
@@ -218,10 +302,10 @@ func dist#man#GetPage(cmdmods, ...)
|
||||
endif
|
||||
" Remove blank lines from top and bottom.
|
||||
while line('$') > 1 && getline(1) =~ '^\s*$'
|
||||
1delete _
|
||||
keepjumps 1delete _
|
||||
endwhile
|
||||
while line('$') > 1 && getline('$') =~ '^\s*$'
|
||||
$delete _
|
||||
keepjumps $delete _
|
||||
endwhile
|
||||
1
|
||||
setl ft=man nomod
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
" autoloading search path fix
|
||||
" substitution of hardcoded commands with global variables
|
||||
" 2024 Nov 12 by Vim Project: fix problems on Windows (#16036)
|
||||
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
|
||||
" }}}
|
||||
"
|
||||
" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
|
||||
@@ -100,6 +101,10 @@ if !exists("g:GetLatestVimScripts_bunzip2")
|
||||
let g:GetLatestVimScripts_bunzip2= "bunzip2"
|
||||
endif
|
||||
|
||||
if !exists("g:GetLatestVimScripts_bunzip3")
|
||||
let g:GetLatestVimScripts_bunzip3= "bunzip3"
|
||||
endif
|
||||
|
||||
if !exists("g:GetLatestVimScripts_gunzip")
|
||||
let g:GetLatestVimScripts_gunzip= "gunzip"
|
||||
endif
|
||||
@@ -565,73 +570,55 @@ fun! s:GetOneScript(...)
|
||||
" --------------------------------------------------------------------------
|
||||
" call Decho("checking if plugin requested autoinstall: doautoinstall=".doautoinstall)
|
||||
if doautoinstall
|
||||
" call Decho(" ")
|
||||
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
|
||||
if filereadable(sname)
|
||||
" call Decho("<".sname."> is readable")
|
||||
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall))
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
|
||||
let curdir = fnameescape(substitute(getcwd(),'\','/','ge'))
|
||||
let installdir= curdir."/Installed"
|
||||
if !isdirectory(installdir)
|
||||
call mkdir(installdir)
|
||||
endif
|
||||
" call Decho("curdir<".curdir."> installdir<".installdir.">")
|
||||
" call Decho("exe cd ".fnameescape(s:autoinstall))
|
||||
exe "cd ".fnameescape(s:autoinstall)
|
||||
|
||||
" determine target directory for moves
|
||||
let firstdir= substitute(&rtp,',.*$','','')
|
||||
let pname = substitute(sname,'\..*','.vim','')
|
||||
" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
|
||||
if filereadable(firstdir.'/AsNeeded/'.pname)
|
||||
let tgtdir= "AsNeeded"
|
||||
else
|
||||
let tgtdir= "plugin"
|
||||
endif
|
||||
" call Decho("tgtdir<".tgtdir."> pname<".pname.">")
|
||||
|
||||
|
||||
" decompress
|
||||
if sname =~ '\.bz2$'
|
||||
" call Decho("decompress: attempt to bunzip2 ".sname)
|
||||
exe "sil !".g:GetLatestVimScripts_bunzip2." ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.bz2$','','')
|
||||
" call Decho("decompress: new sname<".sname."> after bunzip2")
|
||||
elseif sname =~ '\.bz3$'
|
||||
exe "sil !".g:GetLatestVimScripts_bunzip3." ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.bz3$','','')
|
||||
elseif sname =~ '\.gz$'
|
||||
" call Decho("decompress: attempt to gunzip ".sname)
|
||||
exe "sil !".g:GetLatestVimScripts_gunzip." ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.gz$','','')
|
||||
" call Decho("decompress: new sname<".sname."> after gunzip")
|
||||
elseif sname =~ '\.xz$'
|
||||
" call Decho("decompress: attempt to unxz ".sname)
|
||||
exe "sil !".g:GetLatestVimScripts_unxz." ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.xz$','','')
|
||||
" call Decho("decompress: new sname<".sname."> after unxz")
|
||||
else
|
||||
" call Decho("no decompression needed")
|
||||
endif
|
||||
|
||||
|
||||
" distribute archive(.zip, .tar, .vba, .vmb, ...) contents
|
||||
if sname =~ '\.zip$'
|
||||
" call Decho("dearchive: attempt to unzip ".sname)
|
||||
exe "silent !".g:GetLatestVimScripts_unzip." -o ".shellescape(sname)
|
||||
elseif sname =~ '\.tar$'
|
||||
" call Decho("dearchive: attempt to untar ".sname)
|
||||
exe "silent !tar -xvf ".shellescape(sname)
|
||||
elseif sname =~ '\.tgz$'
|
||||
" call Decho("dearchive: attempt to untar+gunzip ".sname)
|
||||
exe "silent !tar -zxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.taz$'
|
||||
" call Decho("dearchive: attempt to untar+uncompress ".sname)
|
||||
exe "silent !tar -Zxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.tbz$'
|
||||
" call Decho("dearchive: attempt to untar+bunzip2 ".sname)
|
||||
exe "silent !tar -jxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.txz$'
|
||||
" call Decho("dearchive: attempt to untar+xz ".sname)
|
||||
exe "silent !tar -Jxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.vba$\|\.vmb$'
|
||||
" call Decho("dearchive: attempt to handle a vimball: ".sname)
|
||||
silent 1split
|
||||
if exists("g:vimball_home")
|
||||
let oldvimballhome= g:vimball_home
|
||||
@@ -648,25 +635,21 @@ fun! s:GetOneScript(...)
|
||||
else
|
||||
" call Decho("no dearchiving needed")
|
||||
endif
|
||||
|
||||
|
||||
" ---------------------------------------------
|
||||
" move plugin to plugin/ or AsNeeded/ directory
|
||||
" ---------------------------------------------
|
||||
if sname =~ '.vim$'
|
||||
" call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
|
||||
else
|
||||
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
|
||||
endif
|
||||
if tgtdir != "plugin"
|
||||
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape("plugin/".pname)." ".tgtdir)
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape("plugin/".pname)." ".tgtdir
|
||||
endif
|
||||
|
||||
|
||||
" helptags step
|
||||
let docdir= substitute(&rtp,',.*','','e')."/doc"
|
||||
" call Decho("helptags: docdir<".docdir.">")
|
||||
exe "helptags ".fnameescape(docdir)
|
||||
exe "cd ".fnameescape(curdir)
|
||||
endif
|
||||
@@ -681,13 +664,8 @@ fun! s:GetOneScript(...)
|
||||
|
||||
" update the data in the <GetLatestVimScripts.dat> file
|
||||
call setline(line("."),modline)
|
||||
" call Decho("update data in ".expand("%")."#".line(".").": modline<".modline.">")
|
||||
" else " Decho
|
||||
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."], no need to update")
|
||||
endif
|
||||
|
||||
" call Dredir("BUFFER TEST (GetOneScript)","ls!")
|
||||
" call Dret("GetOneScript")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
+86
-32
@@ -1,9 +1,19 @@
|
||||
" tar.vim: Handles browsing tarfiles - AUTOLOAD PORTION
|
||||
" Date: Feb 06, 2025
|
||||
" Date: Mar 01, 2025
|
||||
" Version: 32b (with modifications from the Vim Project)
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Last Change:
|
||||
" 2024 Jan 08 by Vim Project: fix a few problems (#138331, #12637, #8109)
|
||||
" 2024 Feb 19 by Vim Project: announce adoption
|
||||
" 2024 Nov 11 by Vim Project: support permissions (#7379)
|
||||
" 2025 Feb 06 by Vim Project: add support for lz4 (#16591)
|
||||
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
|
||||
" 2025 Mar 01 by Vim Project: fix syntax error in tar#Read()
|
||||
" 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)
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
@@ -153,21 +163,19 @@ fun! tar#Browse(tarfile)
|
||||
|
||||
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' ||
|
||||
\ tarfile =~# '\.\(tzst\)$' || tarfile =~# '\.\(tlz4\)$'
|
||||
if has("unix") && executable("file")
|
||||
let filekind= system("file ".shellescape(tarfile,1))
|
||||
else
|
||||
let filekind= ""
|
||||
endif
|
||||
let header= s:Header(tarfile)
|
||||
|
||||
if filekind =~ "bzip2"
|
||||
if header =~? 'bzip2'
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "XZ"
|
||||
elseif header =~? 'bzip3'
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif header =~? 'xz'
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "Zstandard"
|
||||
elseif header =~? 'zstd'
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "LZ4"
|
||||
elseif header =~? 'lz4'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
else
|
||||
elseif header =~? 'gzip'
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
endif
|
||||
|
||||
@@ -175,6 +183,8 @@ fun! tar#Browse(tarfile)
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(bz3\|tb3\)$'
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(lzma\|tlz\)$'
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
@@ -273,6 +283,8 @@ fun! tar#Read(fname,mode)
|
||||
set report=10
|
||||
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
" be careful not to execute special crafted files
|
||||
let escape_file = fname->fnameescape()
|
||||
|
||||
" changing the directory to the temporary earlier to allow tar to extract the file with permissions intact
|
||||
if !exists("*mkdir")
|
||||
@@ -316,6 +328,9 @@ fun! tar#Read(fname,mode)
|
||||
if fname =~ '\.bz2$' && executable("bzcat")
|
||||
let decmp= "|bzcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.bz3$' && executable("bz3cat")
|
||||
let decmp= "|bz3cat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.t\=gz$' && executable("zcat")
|
||||
let decmp= "|zcat"
|
||||
let doro = 1
|
||||
@@ -334,7 +349,7 @@ fun! tar#Read(fname,mode)
|
||||
else
|
||||
let decmp=""
|
||||
let doro = 0
|
||||
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||
if fname =~ '\.bz2$\|\.bz3$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||
setlocal bin
|
||||
endif
|
||||
endif
|
||||
@@ -347,49 +362,51 @@ fun! tar#Read(fname,mode)
|
||||
|
||||
if tarfile =~# '\.bz2$'
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.bz3$'
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(gz\)$'
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
|
||||
if has("unix") && executable("file")
|
||||
let filekind= system("file ".shellescape(tarfile,1))
|
||||
else
|
||||
let filekind= ""
|
||||
endif
|
||||
if filekind =~ "bzip2"
|
||||
let filekind= s:Header(tarfile)
|
||||
if filekind =~? "bzip2"
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
elseif filekind =~ "XZ"
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~ "bzip3"
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~? "xz"
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
elseif filekind =~ "Zstandard"
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~? "zstd"
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
else
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~? "gzip"
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
endif
|
||||
|
||||
elseif tarfile =~# '\.lrp$'
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.lzma$'
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(lz4\|tlz4\)$'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
exe "read ".escape_file
|
||||
endif
|
||||
|
||||
redraw!
|
||||
@@ -446,6 +463,10 @@ fun! tar#Write(fname)
|
||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz2','','e')
|
||||
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.bz3'
|
||||
call system("bzip3 -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz3','','e')
|
||||
let compress= "bzip3 -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.gz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||
@@ -472,6 +493,7 @@ fun! tar#Write(fname)
|
||||
let tarfile = substitute(tarfile,'\.lzma','','e')
|
||||
let compress= "lzma -- ".shellescape(tarfile,0)
|
||||
endif
|
||||
" Note: no support for name.tar.tbz/.txz/.tgz/.tlz4/.tzst
|
||||
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
@@ -638,6 +660,15 @@ fun! tar#Extract()
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.bz3")
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz3 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz3 ".fname.": failed!" | echohl NONE
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".txz")
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
|
||||
@@ -711,6 +742,29 @@ fun! s:Rmdir(fname)
|
||||
endif
|
||||
endfun
|
||||
|
||||
" s:FileHeader: {{{2
|
||||
fun! s:Header(fname)
|
||||
let header= readblob(a:fname, 0, 6)
|
||||
if header[0:2] == str2blob(['BZh']) " bzip2 header
|
||||
return "bzip2"
|
||||
elseif header[0:2] == str2blob(['BZ3']) " bzip3 header
|
||||
return "bzip3"
|
||||
elseif header == str2blob(["\3757zXZ\n"]) " xz header
|
||||
return "xz"
|
||||
elseif header[0:3] == str2blob(["\x28\xB5\x2F\xFD"]) " zstd header
|
||||
return "zstd"
|
||||
elseif header[0:3] == str2blob(["\004\"M\030"]) " lz4 header
|
||||
return "lz4"
|
||||
elseif (header[0:1] == str2blob(["\037\235"]) ||
|
||||
\ header[0:1] == str2blob(["\037\213"]) ||
|
||||
\ header[0:1] == str2blob(["\037\236"]) ||
|
||||
\ header[0:1] == str2blob(["\037\240"]) ||
|
||||
\ header[0:1] == str2blob(["\037\036"]))
|
||||
return "gzip"
|
||||
endif
|
||||
return "unknown"
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
|
||||
fun! tar#Vimuntar(...)
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Original Author: Charles E. Campbell
|
||||
" Date: Apr 11, 2016
|
||||
" Version: 37
|
||||
" Version: 37 (with modifications from the Vim Project)
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Last Change:
|
||||
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||
@@ -530,6 +532,26 @@ fun! vimball#Decompress(fname,...)
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.bz3' && executable("bunzip3")
|
||||
" handle *.bz3 with bunzip3
|
||||
silent exe "!bunzip3 ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip3 may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.bz3$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.bz3' && executable("bzip3")
|
||||
" handle *.bz3 with bzip3 -d
|
||||
silent exe "!bzip3 -d ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip3 -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.bz3$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.zip' && executable("unzip")
|
||||
" handle *.zip with unzip
|
||||
silent exe "!unzip ".shellescape(a:fname)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
" 2024 Aug 05 by Vim Project: clean-up and make it work with shellslash on Windows
|
||||
" 2024 Aug 18 by Vim Project: correctly handle special globbing chars
|
||||
" 2024 Aug 21 by Vim Project: simplify condition to detect MS-Windows
|
||||
" 2025 Mar 11 by Vim Project: handle filenames with leading '-' correctly
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@@ -343,6 +344,11 @@ fun! zip#Extract()
|
||||
return
|
||||
endif
|
||||
let target = fname->substitute('\[', '[[]', 'g')
|
||||
" unzip 6.0 does not support -- to denote end-of-arguments
|
||||
" unzip 6.1 (2010) apparently supports, it, but hasn't been released
|
||||
" so the workaround is to use glob '[-]' so that it won't be considered an argument
|
||||
" else, it would be possible to use 'unzip -o <file.zip> '-d/tmp' to extract the whole archive
|
||||
let target = target->substitute('^-', '[&]', '')
|
||||
if &shell =~ 'cmd' && has("win32")
|
||||
let target = target
|
||||
\ ->substitute('[?*]', '[&]', 'g')
|
||||
|
||||
@@ -6,6 +6,7 @@ vim9script
|
||||
# Contributors: Enno Nagel
|
||||
# Last Change: 2024 Mar 29
|
||||
# 2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
|
||||
# 2025 Mar 11 by The Vim Project (add comment for Dispatch)
|
||||
|
||||
if exists("g:current_compiler")
|
||||
finish
|
||||
@@ -15,6 +16,7 @@ import autoload '../autoload/context.vim'
|
||||
|
||||
g:current_compiler = 'context'
|
||||
|
||||
# CompilerSet makeprg=context
|
||||
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
|
||||
(!filereadable('Makefile') && !filereadable('makefile'))
|
||||
var makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ')
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
" Compiler: Java Development Kit Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2024 Nov 19 (enable local javac_makeprg_params)
|
||||
" 2025 Mar 11 (add comment for Dispatch)
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -11,6 +12,7 @@ let current_compiler = "javac"
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=javac
|
||||
execute $'CompilerSet makeprg=javac\ {escape(get(b:, 'javac_makeprg_params', get(g:, 'javac_makeprg_params', '')), ' \|"')}'
|
||||
|
||||
CompilerSet errorformat=%E%f:%l:\ error:\ %m,
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
" 2024 Apr 03 by the Vim Project (removed :CompilerSet definition)
|
||||
" 2024 Apr 05 by the Vim Project (avoid leaving behind g:makeprg)
|
||||
" 2024 Nov 19 by the Vim Project (properly escape makeprg setting)
|
||||
" 2025 Mar 11 by the Vim Project (add comment for Dispatch)
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -50,6 +51,8 @@ let s:makeprg = g:ps1_makeprg_cmd .. ' %:p:S'
|
||||
" + CategoryInfo : ObjectNotFound: (Write-Ouput:String) [], CommandNotFoundException
|
||||
" + FullyQualifiedErrorId : CommandNotFoundException
|
||||
|
||||
" CompilerSet makeprg=pwsh
|
||||
" CompilerSet makeprg=powershell
|
||||
execute 'CompilerSet makeprg=' .. escape(s:makeprg, ' \|"')
|
||||
|
||||
" Showing error in context with underlining.
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
" Vim compiler file
|
||||
" Compiler: svelte-check
|
||||
" Maintainer: @Konfekt
|
||||
" Last Change: 2025 Feb 27
|
||||
|
||||
if exists("current_compiler") | finish | endif
|
||||
let current_compiler = "svelte-check"
|
||||
|
||||
CompilerSet makeprg=npx\ svelte-check\ --output\ machine
|
||||
CompilerSet errorformat=%*\\d\ %t%*\\a\ \"%f\"\ %l:%c\ \"%m\",
|
||||
CompilerSet errorformat+=%-G%*\\d\ START\ %.%#,
|
||||
CompilerSet errorformat+=%-G%*\\d\ COMPLETED\ %.%#,
|
||||
CompilerSet errorformat+=%-G%.%#
|
||||
|
||||
" " Fall-back for versions of svelte-check that don't support --output machine
|
||||
" " before May 2020 https://github.com/sveltejs/language-tools/commit/9f7a90379d287a41621a5e78af5b010a8ab810c3
|
||||
" " which is before the first production release 1.1.31 of Svelte-Check
|
||||
" CompilerSet makeprg=npx\ svelte-check
|
||||
" CompilerSet errorformat=%A%f:%l:%c,
|
||||
" CompilerSet errorformat+=%C%t%*\\a\\:\ %m,
|
||||
" CompilerSet errorformat+=%-G%.%#,
|
||||
@@ -6,6 +6,7 @@
|
||||
" 2024 Apr 03 by the Vim Project (removed :CompilerSet definition)
|
||||
" 2024 Apr 05 by the Vim Project (avoid leaving behind g:makeprg)
|
||||
" 2024 Nov 19 by the Vim Project (properly escape makeprg setting)
|
||||
" 2025 Mar 11 by the Vim Project (add comment for Dispatch)
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -28,6 +29,7 @@ if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') ||
|
||||
let current_compiler = "latex"
|
||||
endif
|
||||
let s:makeprg=current_compiler .. ' -interaction=nonstopmode'
|
||||
" CompilerSet makeprg=latex
|
||||
execute 'CompilerSet makeprg=' .. escape(s:makeprg, ' \|"')
|
||||
else
|
||||
let current_compiler = 'make'
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
" Compiler: TypeScript Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2024 Apr 03
|
||||
" 2025 Mar 11 by The Vim Project (add comment for Dispatch, add tsc_makeprg variable)
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -11,9 +12,9 @@ let current_compiler = "tsc"
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=tsc
|
||||
" CompilerSet makeprg=npx\ tsc
|
||||
|
||||
CompilerSet makeprg=tsc
|
||||
execute $'CompilerSet makeprg={escape(get(b:, 'tsc_makeprg', get(g:, 'tsc_makeprg', 'tsc')), ' \|"')}'
|
||||
CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m,
|
||||
\%trror\ TS%n:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
" Language: Typst
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Based On: https://github.com/kaarmu/typst.vim
|
||||
" Last Change: 2024 Dec 09
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
" 2025 Mar 11 by the Vim Project (add comment for Dispatch)
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
@@ -13,4 +14,5 @@ let current_compiler = get(g:, 'typst_cmd', 'typst')
|
||||
" With `--diagnostic-format` we can use the default errorformat
|
||||
let s:makeprg = [current_compiler, 'compile', '--diagnostic-format', 'short', '%:S']
|
||||
|
||||
" CompilerSet makeprg=typst
|
||||
execute 'CompilerSet makeprg=' . join(s:makeprg, '\ ')
|
||||
|
||||
@@ -141,6 +141,11 @@ os_risc.txt:
|
||||
os_win32.txt:
|
||||
touch $@
|
||||
|
||||
pi_netrw.txt: ../pack/dist/opt/netrw/doc/netrw.txt
|
||||
cp ../pack/dist/opt/netrw/doc/netrw.txt $@.tmp
|
||||
sed -e '1s/\(.*\)/\1 *pi_netrw.txt*/' $@.tmp > $@ && \
|
||||
rm -f $@.tmp
|
||||
|
||||
vietnamese.txt:
|
||||
touch $@
|
||||
|
||||
|
||||
+15
-2
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Feb 08
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Mar 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -389,6 +389,7 @@ Name triggered by ~
|
||||
|TabNew| after creating a new tab page
|
||||
|WinClosed| after closing a window
|
||||
|TabClosed| after closing a tab page
|
||||
|TabClosedPre| before closing a tab page
|
||||
|WinEnter| after entering another window
|
||||
|WinLeave| before leaving a window
|
||||
|TabEnter| after entering another tab page
|
||||
@@ -605,6 +606,8 @@ CmdUndefined When a user command is used but it isn't
|
||||
when it's used. The pattern is matched
|
||||
against the command name. Both <amatch> and
|
||||
<afile> are set to the name of the command.
|
||||
This is triggered even when inside an
|
||||
autocommand defined without |autocmd-nested|.
|
||||
NOTE: Autocompletion won't work until the
|
||||
command is defined. An alternative is to
|
||||
always define the user command and have it
|
||||
@@ -936,7 +939,9 @@ FuncUndefined When a user function is used but it isn't
|
||||
when it's used. The pattern is matched
|
||||
against the function name. Both <amatch> and
|
||||
<afile> are set to the name of the function.
|
||||
Not triggered when compiling a |Vim9|
|
||||
This is triggered even when inside an
|
||||
autocommand defined without |autocmd-nested|,
|
||||
but not triggered when compiling a |Vim9|
|
||||
function.
|
||||
NOTE: When writing Vim scripts a better
|
||||
alternative is to use an autoloaded function.
|
||||
@@ -1236,6 +1241,10 @@ Syntax When the 'syntax' option has been set. The
|
||||
See |:syn-on|.
|
||||
*TabClosed*
|
||||
TabClosed After closing a tab page.
|
||||
*TabClosedPre*
|
||||
TabClosedPre Before closing a tab page. The window layout
|
||||
is locked, thus opening and closing of windows
|
||||
is prohibited.
|
||||
*TabEnter*
|
||||
TabEnter Just after entering a tab page. |tab-page|
|
||||
After triggering the WinEnter and before
|
||||
@@ -1350,6 +1359,10 @@ TextYankPost After text has been yanked or deleted in the
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|. *E1064*
|
||||
Also triggered indirectly when Vim tries to
|
||||
become owner of the Visual selection because
|
||||
of setting "autoselect" for 'guioptions' or
|
||||
'clipboard'.
|
||||
{only when compiled with the +eval feature}
|
||||
|
||||
*User*
|
||||
|
||||
+166
-89
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Feb 17
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Mar 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -207,7 +207,7 @@ foldclosedend({lnum}) Number last line of fold at {lnum} if closed
|
||||
foldlevel({lnum}) Number fold level at {lnum}
|
||||
foldtext() String line displayed for closed fold
|
||||
foldtextresult({lnum}) String text for closed fold at {lnum}
|
||||
foreach({expr1}, {expr2}) List/Dict/Blob/String
|
||||
foreach({expr1}, {expr2}) List/Tuple/Dict/Blob/String
|
||||
for each item in {expr1} call {expr2}
|
||||
foreground() Number bring the Vim window to the foreground
|
||||
fullcommand({name} [, {vim9}]) String get full command from {name}
|
||||
@@ -348,7 +348,7 @@ job_start({command} [, {options}])
|
||||
Job start a job
|
||||
job_status({job}) String get the status of {job}
|
||||
job_stop({job} [, {how}]) Number stop {job}
|
||||
join({list} [, {sep}]) String join {list} items into one String
|
||||
join({expr} [, {sep}]) String join items in {expr} into one String
|
||||
js_decode({string}) any decode JS style JSON
|
||||
js_encode({expr}) String encode JS style JSON
|
||||
json_decode({string}) any decode JSON
|
||||
@@ -364,6 +364,7 @@ line2byte({lnum}) Number byte count of line {lnum}
|
||||
lispindent({lnum}) Number Lisp indent for line {lnum}
|
||||
list2blob({list}) Blob turn {list} of numbers into a Blob
|
||||
list2str({list} [, {utf8}]) String turn {list} of numbers into a String
|
||||
list2tuple({list}) Tuple turn {list} of items into a tuple
|
||||
listener_add({callback} [, {buf}])
|
||||
Number add a callback to listen to changes
|
||||
listener_flush([{buf}]) none invoke listener callbacks
|
||||
@@ -511,10 +512,10 @@ remove({blob}, {idx} [, {end}]) Number/Blob
|
||||
remove bytes {idx}-{end} from {blob}
|
||||
remove({dict}, {key}) any remove entry {key} from {dict}
|
||||
rename({from}, {to}) Number rename (move) file from {from} to {to}
|
||||
repeat({expr}, {count}) List/Blob/String
|
||||
repeat({expr}, {count}) List/Tuple/Blob/String
|
||||
repeat {expr} {count} times
|
||||
resolve({filename}) String get filename a shortcut points to
|
||||
reverse({obj}) List/Blob/String
|
||||
reverse({obj}) List/Tuple/Blob/String
|
||||
reverse {obj}
|
||||
round({expr}) Float round off {expr}
|
||||
rubyeval({expr}) any evaluate |Ruby| expression
|
||||
@@ -715,6 +716,7 @@ test_null_job() Job null value for testing
|
||||
test_null_list() List null value for testing
|
||||
test_null_partial() Funcref null value for testing
|
||||
test_null_string() String null value for testing
|
||||
test_null_tuple() Tuple null value for testing
|
||||
test_option_not_set({name}) none reset flag indicating option was set
|
||||
test_override({expr}, {val}) none test with Vim internal overrides
|
||||
test_refcount({expr}) Number get the reference count of {expr}
|
||||
@@ -736,6 +738,7 @@ tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
|
||||
trim({text} [, {mask} [, {dir}]])
|
||||
String trim characters in {mask} from {text}
|
||||
trunc({expr}) Float truncate Float {expr}
|
||||
tuple2list({tuple}) List turn {tuple} of items into a list
|
||||
type({expr}) Number type of value {expr}
|
||||
typename({expr}) String representation of the type of {expr}
|
||||
undofile({name}) String undo file name for {name}
|
||||
@@ -1311,19 +1314,25 @@ blob2str({blob} [, {options}]) *blob2str()*
|
||||
items:
|
||||
encoding Decode the bytes in {blob} using this
|
||||
encoding. The value is a |String|. See
|
||||
|encoding-names| for the supported values.
|
||||
*E1515*
|
||||
An error is given and an empty List is returned if
|
||||
an invalid byte sequence is encountered in {blob},
|
||||
|encoding-names| for the supported values
|
||||
(plus the special value "none").
|
||||
*E1515* *E1516*
|
||||
When current 'encoding' is "utf-8", an error is given and an
|
||||
empty List is returned if an invalid byte sequence is
|
||||
encountered in {blob}. To suppress this validation and get
|
||||
potentially invalid string, set "encoding" in {options} to
|
||||
"none".
|
||||
|
||||
Returns an empty List if blob is empty.
|
||||
|
||||
See also |str2blob()|
|
||||
|
||||
Examples: >
|
||||
blob2str(0z6162) returns ["ab"]
|
||||
blob2str(0zC2ABC2BB) returns ["«»"]
|
||||
blob2str(0zABBB, {'encoding': 'latin1'}) returns ["«»"]
|
||||
blob2str(0z6162) returns ['ab']
|
||||
blob2str(0zC2ABC2BB) returns ['«»']
|
||||
blob2str(0z610A62) returns ['a', 'b']
|
||||
blob2str(0z610062) returns ['a\nb']
|
||||
blob2str(0zABBB, {'encoding': 'latin1'}) returns ['«»']
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetBlob()->blob2str()
|
||||
@@ -2069,7 +2078,8 @@ copy({expr}) *copy()*
|
||||
that the original |List| can be changed without changing the
|
||||
copy, and vice versa. But the items are identical, thus
|
||||
changing an item changes the contents of both |Lists|.
|
||||
A |Dictionary| is copied in a similar way as a |List|.
|
||||
A |Tuple| or |Dictionary| is copied in a similar way as a
|
||||
|List|.
|
||||
Also see |deepcopy()|.
|
||||
Can also be used as a |method|: >
|
||||
mylist->copy()
|
||||
@@ -2112,10 +2122,10 @@ cosh({expr}) *cosh()*
|
||||
|
||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()* *E706*
|
||||
Return the number of times an item with value {expr} appears
|
||||
in |String|, |List| or |Dictionary| {comp}.
|
||||
in |String|, |List|, |Tuple| or |Dictionary| {comp}.
|
||||
|
||||
If {start} is given then start with the item with this index.
|
||||
{start} can only be used with a |List|.
|
||||
{start} can only be used with a |List| or a |Tuple|.
|
||||
|
||||
When {ic} is given and it's |TRUE| then case is ignored.
|
||||
|
||||
@@ -2235,7 +2245,8 @@ deepcopy({expr} [, {noref}]) *deepcopy()* *E698*
|
||||
|Dictionary|, a copy for it is made, recursively. Thus
|
||||
changing an item in the copy does not change the contents of
|
||||
the original |List|.
|
||||
A |Dictionary| is copied in a similar way as a |List|.
|
||||
A |Tuple| or |Dictionary| is copied in a similar way as a
|
||||
|List|.
|
||||
|
||||
When {noref} is omitted or zero a contained |List| or
|
||||
|Dictionary| is only copied once. All references point to
|
||||
@@ -2543,8 +2554,8 @@ echoraw({string}) *echoraw()*
|
||||
|
||||
empty({expr}) *empty()*
|
||||
Return the Number 1 if {expr} is empty, zero otherwise.
|
||||
- A |List| or |Dictionary| is empty when it does not have any
|
||||
items.
|
||||
- A |List|, |Tuple| or |Dictionary| is empty when it does
|
||||
not have any items.
|
||||
- A |String| is empty when its length is zero.
|
||||
- A |Number| and |Float| are empty when their value is zero.
|
||||
- |v:false|, |v:none| and |v:null| are empty, |v:true| is not.
|
||||
@@ -3471,8 +3482,9 @@ foldtextresult({lnum}) *foldtextresult()*
|
||||
Return type: |String|
|
||||
|
||||
|
||||
foreach({expr1}, {expr2}) *foreach()*
|
||||
{expr1} must be a |List|, |String|, |Blob| or |Dictionary|.
|
||||
foreach({expr1}, {expr2}) *foreach()* *E1525*
|
||||
{expr1} must be a |List|, |Tuple|, |String|, |Blob| or
|
||||
|Dictionary|.
|
||||
For each item in {expr1} execute {expr2}. {expr1} is not
|
||||
modified; its values may be, as with |:lockvar| 1. |E741|
|
||||
See |map()| and |filter()| to modify {expr1}.
|
||||
@@ -3481,10 +3493,10 @@ foreach({expr1}, {expr2}) *foreach()*
|
||||
|
||||
If {expr2} is a |string|, inside {expr2} |v:val| has the value
|
||||
of the current item. For a |Dictionary| |v:key| has the key
|
||||
of the current item and for a |List| |v:key| has the index of
|
||||
the current item. For a |Blob| |v:key| has the index of the
|
||||
current byte. For a |String| |v:key| has the index of the
|
||||
current character.
|
||||
of the current item and for a |List| or a |Tuple| |v:key| has
|
||||
the index of the current item. For a |Blob| |v:key| has the
|
||||
index of the current byte. For a |String| |v:key| has the
|
||||
index of the current character.
|
||||
Examples: >
|
||||
call foreach(mylist, 'used[v:val] = true')
|
||||
< This records the items that are in the {expr1} list.
|
||||
@@ -3510,8 +3522,8 @@ foreach({expr1}, {expr2}) *foreach()*
|
||||
Can also be used as a |method|: >
|
||||
mylist->foreach(expr2)
|
||||
<
|
||||
Return type: |String|, |Blob| list<{type}> or dict<{type}>
|
||||
depending on {expr1}
|
||||
Return type: |String|, |Blob|, list<{type}>, tuple<{type}> or
|
||||
dict<{type}> depending on {expr1}
|
||||
|
||||
*foreground()*
|
||||
foreground() Move the Vim window to the foreground. Useful when sent from
|
||||
@@ -3684,6 +3696,15 @@ get({list}, {idx} [, {default}]) *get()* *get()-list*
|
||||
<
|
||||
Return type: any, depending on {list}
|
||||
|
||||
get({tuple}, {idx} [, {default}]) *get()-tuple*
|
||||
Get item {idx} from |Tuple| {tuple}. When this item is not
|
||||
available return {default}. Return zero when {default} is
|
||||
omitted.
|
||||
Preferably used as a |method|: >
|
||||
mytuple->get(idx)
|
||||
<
|
||||
Return type: any, depending on {tuple}
|
||||
|
||||
get({blob}, {idx} [, {default}]) *get()-blob*
|
||||
Get byte {idx} from |Blob| {blob}. When this byte is not
|
||||
available return {default}. Return -1 when {default} is
|
||||
@@ -4998,6 +5019,8 @@ getregionpos({pos1}, {pos2} [, {opts}]) *getregionpos()*
|
||||
Can also be used as a |method|: >
|
||||
getpos('.')->getregionpos(getpos("'a"))
|
||||
<
|
||||
For an example, see the highlight-yank plugin |52.6|
|
||||
|
||||
Return type: list<list<list<number>>>
|
||||
|
||||
|
||||
@@ -5817,8 +5840,8 @@ id({item}) *id()*
|
||||
< prevents {item} from being garbage collected and provides a
|
||||
way to get the {item} from the `id`.
|
||||
|
||||
{item} may be a List, Dictionary, Object, Job, Channel or
|
||||
Blob. If the item is not a permitted type, or it is a null
|
||||
{item} may be a List, Tuple, Dictionary, Object, Job, Channel
|
||||
or Blob. If the item is not a permitted type, or it is a null
|
||||
value, then an empty String is returned.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@@ -5845,12 +5868,12 @@ index({object}, {expr} [, {start} [, {ic}]]) *index()*
|
||||
Find {expr} in {object} and return its index. See
|
||||
|indexof()| for using a lambda to select the item.
|
||||
|
||||
If {object} is a |List| return the lowest index where the item
|
||||
has a value equal to {expr}. There is no automatic
|
||||
conversion, so the String "4" is different from the Number 4.
|
||||
And the number 4 is different from the Float 4.0. The value
|
||||
of 'ignorecase' is not used here, case matters as indicated by
|
||||
the {ic} argument.
|
||||
If {object} is a |List| or a |Tuple| return the lowest index
|
||||
where the item has a value equal to {expr}. There is no
|
||||
automatic conversion, so the String "4" is different from the
|
||||
Number 4. And the number 4 is different from the Float 4.0.
|
||||
The value of 'ignorecase' is not used here, case matters as
|
||||
indicated by the {ic} argument.
|
||||
|
||||
If {object} is |Blob| return the lowest index where the byte
|
||||
value is equal to {expr}.
|
||||
@@ -5874,11 +5897,11 @@ index({object}, {expr} [, {start} [, {ic}]]) *index()*
|
||||
|
||||
indexof({object}, {expr} [, {opts}]) *indexof()*
|
||||
Returns the index of an item in {object} where {expr} is
|
||||
v:true. {object} must be a |List| or a |Blob|.
|
||||
v:true. {object} must be a |List|, a |Tuple| or a |Blob|.
|
||||
|
||||
If {object} is a |List|, evaluate {expr} for each item in the
|
||||
List until the expression is v:true and return the index of
|
||||
this item.
|
||||
If {object} is a |List| or a |Tuple|, evaluate {expr} for each
|
||||
item in the List or Tuple until the expression is v:true
|
||||
and return the index of this item.
|
||||
|
||||
If {object} is a |Blob| evaluate {expr} for each byte in the
|
||||
Blob until the expression is v:true and return the index of
|
||||
@@ -5886,11 +5909,11 @@ indexof({object}, {expr} [, {opts}]) *indexof()*
|
||||
|
||||
{expr} must be a |string| or |Funcref|.
|
||||
|
||||
If {expr} is a |string|: If {object} is a |List|, inside
|
||||
{expr} |v:key| has the index of the current List item and
|
||||
|v:val| has the value of the item. If {object} is a |Blob|,
|
||||
inside {expr} |v:key| has the index of the current byte and
|
||||
|v:val| has the byte value.
|
||||
If {expr} is a |string|: If {object} is a |List| or a |Tuple|,
|
||||
inside {expr} |v:key| has the index of the current List or
|
||||
Tuple item and |v:val| has the value of the item. If {object}
|
||||
is a |Blob|, inside {expr} |v:key| has the index of the
|
||||
current byte and |v:val| has the byte value.
|
||||
|
||||
If {expr} is a |Funcref| it must take two arguments:
|
||||
1. the key or the index of the current item.
|
||||
@@ -6200,9 +6223,9 @@ items({dict}) *items()*
|
||||
echo key .. ': ' .. value
|
||||
endfor
|
||||
<
|
||||
A List or a String argument is also supported. In these
|
||||
cases, items() returns a List with the index and the value at
|
||||
the index.
|
||||
A |List|, a |Tuple| or a |String| argument is also supported.
|
||||
In these cases, items() returns a List with the index and the
|
||||
value at the index.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mydict->items()
|
||||
@@ -6213,16 +6236,17 @@ items({dict}) *items()*
|
||||
job_ functions are documented here: |job-functions-details|
|
||||
|
||||
|
||||
join({list} [, {sep}]) *join()*
|
||||
Join the items in {list} together into one String.
|
||||
join({expr} [, {sep}]) *join()*
|
||||
Join the items in {expr} together into one String. {expr} can
|
||||
be a |List| or a |Tuple|.
|
||||
When {sep} is specified it is put in between the items. If
|
||||
{sep} is omitted a single space is used.
|
||||
Note that {sep} is not added at the end. You might want to
|
||||
add it there too: >
|
||||
let lines = join(mylist, "\n") .. "\n"
|
||||
< String items are used as-is. |Lists| and |Dictionaries| are
|
||||
converted into a string like with |string()|.
|
||||
The opposite function is |split()|.
|
||||
< String items are used as-is. |Lists|, |Tuples| and
|
||||
|Dictionaries| are converted into a string like with
|
||||
|string()|. The opposite function is |split()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->join()
|
||||
@@ -6316,6 +6340,8 @@ json_encode({expr}) *json_encode()*
|
||||
|Funcref| not possible, error
|
||||
|List| as an array (possibly null); when
|
||||
used recursively: []
|
||||
|Tuple| as an array (possibly null); when
|
||||
used recursively: []
|
||||
|Dict| as an object (possibly null); when
|
||||
used recursively: {}
|
||||
|Blob| as an array of the individual bytes
|
||||
@@ -6364,6 +6390,8 @@ len({expr}) *len()* *E701*
|
||||
used, as with |strlen()|.
|
||||
When {expr} is a |List| the number of items in the |List| is
|
||||
returned.
|
||||
When {expr} is a |Tuple| the number of items in the |Tuple| is
|
||||
returned.
|
||||
When {expr} is a |Blob| the number of bytes is returned.
|
||||
When {expr} is a |Dictionary| the number of entries in the
|
||||
|Dictionary| is returned.
|
||||
@@ -6545,6 +6573,25 @@ list2str({list} [, {utf8}]) *list2str()*
|
||||
Return type: |String|
|
||||
|
||||
|
||||
list2tuple({list}) *list2tuple()*
|
||||
Create a Tuple from a shallow copy of the list items.
|
||||
Examples: >
|
||||
list2tuple([1, 2, 3]) returns (1, 2, 3)
|
||||
< |tuple2list()| does the opposite.
|
||||
|
||||
This function doesn't recursively convert all the List items
|
||||
in {list} to a Tuple. Note that the items are identical
|
||||
between the list and the tuple, changing an item changes the
|
||||
contents of both the tuple and the list.
|
||||
|
||||
Returns an empty tuple on error.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetList()->list2tuple()
|
||||
<
|
||||
Return type: tuple<{type}> (depending on the given |List|)
|
||||
|
||||
|
||||
listener_add({callback} [, {buf}]) *listener_add()*
|
||||
Add a callback function that will be invoked when changes have
|
||||
been made to buffer {buf}.
|
||||
@@ -7275,6 +7322,9 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
||||
given sequence.
|
||||
limit Maximum number of matches in {list} to be
|
||||
returned. Zero means no limit.
|
||||
camelcase Use enhanced camel case scoring making results
|
||||
better suited for completion related to
|
||||
programming languages. Defaults to v:true.
|
||||
|
||||
If {list} is a list of dictionaries, then the optional {dict}
|
||||
argument supports the following additional items:
|
||||
@@ -7457,11 +7507,12 @@ max({expr}) *max()*
|
||||
Return the maximum value of all items in {expr}. Example: >
|
||||
echo max([apples, pears, oranges])
|
||||
|
||||
< {expr} can be a |List| or a |Dictionary|. For a Dictionary,
|
||||
it returns the maximum of all values in the Dictionary.
|
||||
If {expr} is neither a List nor a Dictionary, or one of the
|
||||
items in {expr} cannot be used as a Number this results in
|
||||
an error. An empty |List| or |Dictionary| results in zero.
|
||||
< {expr} can be a |List|, a |Tuple| or a |Dictionary|. For a
|
||||
Dictionary, it returns the maximum of all values in the
|
||||
Dictionary. If {expr} is neither a List nor a Tuple nor a
|
||||
Dictionary, or one of the items in {expr} cannot be used as a
|
||||
Number this results in an error. An empty |List|, |Tuple|
|
||||
or |Dictionary| results in zero.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->max()
|
||||
@@ -7548,11 +7599,12 @@ min({expr}) *min()*
|
||||
Return the minimum value of all items in {expr}. Example: >
|
||||
echo min([apples, pears, oranges])
|
||||
|
||||
< {expr} can be a |List| or a |Dictionary|. For a Dictionary,
|
||||
it returns the minimum of all values in the Dictionary.
|
||||
If {expr} is neither a List nor a Dictionary, or one of the
|
||||
items in {expr} cannot be used as a Number this results in
|
||||
an error. An empty |List| or |Dictionary| results in zero.
|
||||
< {expr} can be a |List|, a |Tuple| or a |Dictionary|. For a
|
||||
Dictionary, it returns the minimum of all values in the
|
||||
Dictionary. If {expr} is neither a List nor a Tuple nor a
|
||||
Dictionary, or one of the items in {expr} cannot be used as a
|
||||
Number this results in an error. An empty |List|, |Tuple| or
|
||||
|Dictionary| results in zero.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->min()
|
||||
@@ -7587,9 +7639,8 @@ mkdir({name} [, {flags} [, {prot}]]) *mkdir()* *E739*
|
||||
If {prot} is given it is used to set the protection bits of
|
||||
the new directory. The default is 0o755 (rwxr-xr-x: r/w for
|
||||
the user, readable for others). Use 0o700 to make it
|
||||
unreadable for others. This is only used for the last part of
|
||||
{name}. Thus if you create /tmp/foo/bar then /tmp/foo will be
|
||||
created with 0o755.
|
||||
unreadable for others. This is used for the newly created
|
||||
directories. Note: umask is applied to {prot} (on Unix).
|
||||
Example: >
|
||||
:call mkdir($HOME .. "/tmp/foo/bar", "p", 0o700)
|
||||
|
||||
@@ -8289,13 +8340,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
|
||||
@@ -8317,6 +8369,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
|
||||
@@ -8576,8 +8629,8 @@ readfile({fname} [, {type} [, {max}]])
|
||||
|
||||
reduce({object}, {func} [, {initial}]) *reduce()* *E998*
|
||||
{func} is called for every item in {object}, which can be a
|
||||
|String|, |List| or a |Blob|. {func} is called with two
|
||||
arguments: the result so far and current item. After
|
||||
|String|, |List|, |Tuple| or a |Blob|. {func} is called with
|
||||
two arguments: the result so far and current item. After
|
||||
processing all items the result is returned. *E1132*
|
||||
|
||||
{initial} is the initial result. When omitted, the first item
|
||||
@@ -8898,16 +8951,16 @@ repeat({expr}, {count}) *repeat()*
|
||||
result. Example: >
|
||||
:let separator = repeat('-', 80)
|
||||
< When {count} is zero or negative the result is empty.
|
||||
When {expr} is a |List| or a |Blob| the result is {expr}
|
||||
concatenated {count} times. Example: >
|
||||
When {expr} is a |List|, a |Tuple| or a |Blob| the result is
|
||||
{expr} concatenated {count} times. Example: >
|
||||
:let longlist = repeat(['a', 'b'], 3)
|
||||
< Results in ['a', 'b', 'a', 'b', 'a', 'b'].
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->repeat(count)
|
||||
<
|
||||
Return type: |String|, |Blob| or list<{type}> depending on
|
||||
{expr}
|
||||
Return type: |String|, |Blob|, list<{type}> or tuple<{type}>
|
||||
depending on {expr}
|
||||
|
||||
|
||||
resolve({filename}) *resolve()* *E655*
|
||||
@@ -8934,18 +8987,19 @@ resolve({filename}) *resolve()* *E655*
|
||||
|
||||
reverse({object}) *reverse()*
|
||||
Reverse the order of items in {object}. {object} can be a
|
||||
|List|, a |Blob| or a |String|. For a List and a Blob the
|
||||
items are reversed in-place and {object} is returned.
|
||||
|List|, a |Tuple|, a |Blob| or a |String|. For a List and a
|
||||
Blob the items are reversed in-place and {object} is returned.
|
||||
For a Tuple, a new Tuple is returned.
|
||||
For a String a new String is returned.
|
||||
Returns zero if {object} is not a List, Blob or a String.
|
||||
If you want a List or Blob to remain unmodified make a copy
|
||||
first: >
|
||||
Returns zero if {object} is not a List, Tuple, Blob or a
|
||||
String. If you want a List or Blob to remain unmodified make
|
||||
a copy first: >
|
||||
:let revlist = reverse(copy(mylist))
|
||||
< Can also be used as a |method|: >
|
||||
mylist->reverse()
|
||||
<
|
||||
Return type: |String|, |Blob| or list<{type}> depending on
|
||||
{object}
|
||||
Return type: |String|, |Blob|, list<{type}> or tuple<{type}>
|
||||
depending on {object}
|
||||
|
||||
|
||||
round({expr}) *round()*
|
||||
@@ -10320,7 +10374,7 @@ slice({expr}, {start} [, {end}]) *slice()*
|
||||
Can also be used as a |method|: >
|
||||
GetList()->slice(offset)
|
||||
<
|
||||
Return type: list<{type}>
|
||||
Return type: list<{type}> or tuple<{type}>
|
||||
|
||||
|
||||
sort({list} [, {how} [, {dict}]]) *sort()* *E702*
|
||||
@@ -10671,7 +10725,8 @@ str2blob({list} [, {options}]) *str2blob()*
|
||||
|
||||
The argument {options} is a |Dict| and supports the following
|
||||
items:
|
||||
encoding Encode the characters using this encoding.
|
||||
encoding Convert the characters using this encoding
|
||||
before making the Blob.
|
||||
The value is a |String|. See |encoding-names|
|
||||
for the supported values.
|
||||
|
||||
@@ -10683,11 +10738,12 @@ str2blob({list} [, {options}]) *str2blob()*
|
||||
See also |blob2str()|
|
||||
|
||||
Examples: >
|
||||
str2blob(["ab"]) returns 0z6162
|
||||
str2blob(["«»"]) returns 0zC2ABC2BB
|
||||
str2blob(["a\nb"]) returns 0z610A62
|
||||
str2blob(readfile('myfile.txt'))
|
||||
str2blob(["ab"]) returns 0z6162
|
||||
str2blob(["«»"]) returns 0zC2ABC2BB
|
||||
str2blob(["a\nb"]) returns 0z610062
|
||||
str2blob(["a","b"]) returns 0z610A62
|
||||
str2blob(["«»"], {'encoding': 'latin1'}) returns 0zABBB
|
||||
str2blob(readfile('myfile.txt'))
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetListOfStrings()->str2blob()
|
||||
@@ -10930,15 +10986,16 @@ string({expr}) *string()*
|
||||
Funcref function('name')
|
||||
Blob 0z00112233.44556677.8899
|
||||
List [item, item]
|
||||
Tuple (item, item)
|
||||
Dictionary {key: value, key: value}
|
||||
Class class SomeName
|
||||
Object object of SomeName {lnum: 1, col: 3}
|
||||
Enum enum EnumName
|
||||
EnumValue enum name.value {name: str, ordinal: nr}
|
||||
|
||||
When a |List| or |Dictionary| has a recursive reference it is
|
||||
replaced by "[...]" or "{...}". Using eval() on the result
|
||||
will then fail.
|
||||
When a |List|, |Tuple| or |Dictionary| has a recursive
|
||||
reference it is replaced by "[...]" or "(...)" or "{...}".
|
||||
Using eval() on the result will then fail.
|
||||
|
||||
For an object, invokes the string() method to get a textual
|
||||
representation of the object. If the method is not present,
|
||||
@@ -11892,6 +11949,25 @@ trunc({expr}) *trunc()*
|
||||
Return type: |Float|
|
||||
|
||||
|
||||
tuple2list({list}) *tuple2list()*
|
||||
Create a List from a shallow copy of the tuple items.
|
||||
Examples: >
|
||||
tuple2list((1, 2, 3)) returns [1, 2, 3]
|
||||
< |list2tuple()| does the opposite.
|
||||
|
||||
This function doesn't recursively convert all the Tuple items
|
||||
in {tuple} to a List. Note that the items are identical
|
||||
between the list and the tuple, changing an item changes the
|
||||
contents of both the tuple and the list.
|
||||
|
||||
Returns an empty list on error.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetTuple()->tuple2list()
|
||||
<
|
||||
Return type: list<{type}> (depending on the given |Tuple|)
|
||||
|
||||
|
||||
*type()*
|
||||
type({expr}) The result is a Number representing the type of {expr}.
|
||||
Instead of using the number directly, it is better to use the
|
||||
@@ -11912,6 +11988,7 @@ type({expr}) The result is a Number representing the type of {expr}.
|
||||
Typealias: 14 |v:t_typealias|
|
||||
Enum: 15 |v:t_enum|
|
||||
EnumValue: 16 |v:t_enumvalue|
|
||||
Tuple: 17 |v:t_tuple|
|
||||
For backward compatibility, this method can be used: >
|
||||
:if type(myvar) == type(0)
|
||||
:if type(myvar) == type("")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.1. Last change: 2024 Dec 15
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 Mar 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1149,6 +1149,11 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
:[line]pu[t]! [x] Put the text [from register x] before [line] (default
|
||||
current line).
|
||||
|
||||
*:ip* *:iput*
|
||||
:[line]ip[ut] [x] like |:put|, but adjust indent to the current line
|
||||
|
||||
:[line]ip[ut]! [x] like |:put|!, but adjust indent to the current line
|
||||
|
||||
["x]]p or *]p* *]<MiddleMouse>*
|
||||
["x]]<MiddleMouse> Like "p", but adjust the indent to the current line.
|
||||
Using the mouse only works when 'mouse' contains 'n'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*cmdline.txt* For Vim version 9.1. Last change: 2025 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -88,6 +88,10 @@ CTRL-SHIFT-V *c_CTRL-SHIFT-V* *c_CTRL-SHIFT-Q*
|
||||
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||
then it inserts the Escape sequence for a key with modifiers.
|
||||
In the GUI the |key-notation| is inserted without simplifying.
|
||||
Note: When CTRL-SHIFT-V is intercepted by your system (e.g.,
|
||||
to paste text) you can often use CTRL-SHIFT-Q instead.
|
||||
However, in some terminals (e.g. GNOME Terminal), CTRL-SHIFT-Q
|
||||
quits the terminal without confirmation.
|
||||
|
||||
*c_<Left>* *c_Left*
|
||||
<Left> cursor left. See 'wildmenu' for behavior during wildmenu
|
||||
|
||||
+24
-9
@@ -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: 2024 Mar 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -226,14 +226,29 @@ 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:` 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. Will not
|
||||
be 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.
|
||||
|
||||
+293
-61
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Jan 29
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -21,9 +21,10 @@ a remark is given.
|
||||
1.1 Variable types
|
||||
1.2 Function references |Funcref|
|
||||
1.3 Lists |Lists|
|
||||
1.4 Dictionaries |Dictionaries|
|
||||
1.5 Blobs |Blobs|
|
||||
1.6 More about variables |more-variables|
|
||||
1.4 Tuples |Tuples|
|
||||
1.5 Dictionaries |Dictionaries|
|
||||
1.6 Blobs |Blobs|
|
||||
1.7 More about variables |more-variables|
|
||||
2. Expression syntax |expression-syntax|
|
||||
3. Internal variable |internal-variables|
|
||||
4. Builtin Functions |functions|
|
||||
@@ -46,8 +47,8 @@ Profiling is documented at |profiling|.
|
||||
|
||||
1.1 Variable types ~
|
||||
*E712* *E896* *E897* *E899* *E1098*
|
||||
*E1107* *E1135* *E1138*
|
||||
There are ten types of variables:
|
||||
*E1107* *E1135* *E1138* *E1523*
|
||||
There are eleven types of variables:
|
||||
|
||||
*Number* *Integer*
|
||||
Number A 32 or 64 bit signed number. |expr-number|
|
||||
@@ -63,6 +64,10 @@ String A NUL terminated string of 8-bit unsigned characters (bytes).
|
||||
List An ordered sequence of items, see |List| for details.
|
||||
Example: [1, 2, ['a', 'b']]
|
||||
|
||||
Tuple An ordered immutable sequence of items, see |Tuple| for
|
||||
details.
|
||||
Example: (1, 2, ('a', 'b'))
|
||||
|
||||
Dictionary An associative, unordered array: Each entry has a key and a
|
||||
value. |Dictionary|
|
||||
Examples:
|
||||
@@ -165,16 +170,17 @@ A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
|
||||
|
||||
*E611* *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910*
|
||||
*E913* *E974* *E975* *E976* *E1319* *E1320* *E1321* *E1322*
|
||||
*E1323* *E1324*
|
||||
|List|, |Dictionary|, |Funcref|, |Job|, |Channel|, |Blob|, |Class| and
|
||||
|object| types are not automatically converted.
|
||||
*E1323* *E1324* *E1520* *E1522*
|
||||
|List|, |Tuple|, |Dictionary|, |Funcref|, |Job|, |Channel|, |Blob|, |Class|
|
||||
and |object| types are not automatically converted.
|
||||
|
||||
*E805* *E806* *E808*
|
||||
When mixing Number and Float the Number is converted to Float. Otherwise
|
||||
there is no automatic conversion of Float. You can use str2float() for String
|
||||
to Float, printf() for Float to String and float2nr() for Float to Number.
|
||||
|
||||
*E362* *E891* *E892* *E893* *E894* *E907* *E911* *E914*
|
||||
*E362* *E891* *E892* *E893* *E894*
|
||||
*E907* *E911* *E914* *E1521*
|
||||
When expecting a Float a Number can also be used, but nothing else.
|
||||
|
||||
*no-type-checking*
|
||||
@@ -267,9 +273,9 @@ position in the sequence.
|
||||
|
||||
List creation ~
|
||||
*E696* *E697*
|
||||
A List is created with a comma-separated list of items in square brackets.
|
||||
A List is created with a comma-separated sequence of items in square brackets.
|
||||
Examples: >
|
||||
:let mylist = [1, two, 3, "four"]
|
||||
:let mylist = [1, "two", 3, "four"]
|
||||
:let emptylist = []
|
||||
|
||||
An item can be any expression. Using a List for an item creates a
|
||||
@@ -327,13 +333,13 @@ similar to -1. >
|
||||
:let otherlist = mylist[:] " make a copy of the List
|
||||
|
||||
Notice that the last index is inclusive. If you prefer using an exclusive
|
||||
index use the |slice()| method.
|
||||
index use the |slice()| function.
|
||||
|
||||
If the first index is beyond the last item of the List or the second item is
|
||||
If the first index is beyond the last item of the List or the last index is
|
||||
before the first item, the result is an empty list. There is no error
|
||||
message.
|
||||
|
||||
If the second index is equal to or greater than the length of the list the
|
||||
If the last index is equal to or greater than the length of the list the
|
||||
length minus one is used: >
|
||||
:let mylist = [0, 1, 2, 3]
|
||||
:echo mylist[2:8] " result: [2, 3]
|
||||
@@ -463,8 +469,8 @@ Changing the order of items in a list: >
|
||||
|
||||
For loop ~
|
||||
|
||||
The |:for| loop executes commands for each item in a List, String or Blob.
|
||||
A variable is set to each item in sequence. Example with a List: >
|
||||
The |:for| loop executes commands for each item in a List, Tuple, String or
|
||||
Blob. A variable is set to each item in sequence. Example with a List: >
|
||||
:for item in mylist
|
||||
: call Doit(item)
|
||||
:endfor
|
||||
@@ -497,6 +503,8 @@ It is also possible to put remaining items in a List variable: >
|
||||
: endif
|
||||
:endfor
|
||||
|
||||
For a Tuple one tuple item at a time is used.
|
||||
|
||||
For a Blob one byte at a time is used.
|
||||
|
||||
For a String one character, including any composing characters, is used as a
|
||||
@@ -527,8 +535,206 @@ Don't forget that a combination of features can make things simple. For
|
||||
example, to add up all the numbers in a list: >
|
||||
:exe 'let sum = ' .. join(nrlist, '+')
|
||||
|
||||
1.4 Tuples ~
|
||||
*tuple* *Tuple* *Tuples*
|
||||
*E1532* *E1533*
|
||||
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.
|
||||
|
||||
1.4 Dictionaries ~
|
||||
A Tuple uses less memory compared to a List and provides O(1) lookup time.
|
||||
|
||||
Tuple creation ~
|
||||
*E1526* *E1527*
|
||||
A Tuple is created with a comma-separated sequence of items in parentheses.
|
||||
Examples: >
|
||||
:let mytuple = (1, "two", 3, "four")
|
||||
:let tuple = (5,)
|
||||
:let emptytuple = ()
|
||||
|
||||
An item can be any expression. If there is only one item in the tuple, then
|
||||
the item must be followed by a comma.
|
||||
|
||||
Using a Tuple for an item creates a Tuple of Tuples: >
|
||||
:let nesttuple = ((11, 12), (21, 22), (31, 32))
|
||||
|
||||
|
||||
Tuple index ~
|
||||
*tuple-index* *E1519*
|
||||
An item in the Tuple can be accessed by putting the index in square brackets
|
||||
after the Tuple. Indexes are zero-based, thus the first item has index zero.
|
||||
>
|
||||
:let item = mytuple[0] " get the first item: 1
|
||||
:let item = mytuple[2] " get the third item: 3
|
||||
|
||||
When the resulting item is a tuple this can be repeated: >
|
||||
:let item = nesttuple[0][1] " get the first tuple, second item: 12
|
||||
<
|
||||
A negative index is counted from the end. Index -1 refers to the last item in
|
||||
the Tuple, -2 to the last but one item, etc. >
|
||||
:let last = mytuple[-1] " get the last item: "four"
|
||||
|
||||
To avoid an error for an invalid index use the |get()| function. When an item
|
||||
is not available it returns zero or the default value you specify: >
|
||||
:echo get(mytuple, idx)
|
||||
:echo get(mytuple, idx, "NONE")
|
||||
|
||||
|
||||
Tuple concatenation ~
|
||||
*tuple-concatenation*
|
||||
Two tuples can be concatenated with the "+" operator: >
|
||||
:let longtuple = mytuple + (5, 6)
|
||||
:let longtuple = (5, 6) + mytuple
|
||||
To prepend or append an item, turn it into a tuple by putting () around it.
|
||||
The item must be followed by a comma.
|
||||
|
||||
*E1540*
|
||||
Two variadic tuples with same item type can be concatenated but with different
|
||||
item types cannot be concatenated. Examples: >
|
||||
var a: tuple<...list<number>> = (1, 2)
|
||||
var b: tuple<...list<string>> = ('a', 'b')
|
||||
echo a + b # not allowed
|
||||
|
||||
var a: tuple<number, number> = (1, 2)
|
||||
var b: tuple<...list<string>> = ('a', 'b')
|
||||
echo a + b # allowed
|
||||
|
||||
var a: tuple<...list<number>> = (1, 2)
|
||||
var b: tuple<number, number> = (3, 4)
|
||||
echo a + b # not allowed
|
||||
|
||||
var a: tuple<...list<number>> = (1, 2)
|
||||
var b: tuple<number, ...list<number>> = (3, 4)
|
||||
echo a + b # not allowed
|
||||
<
|
||||
Note that a tuple is immutable and items cannot be added or removed from a
|
||||
tuple.
|
||||
|
||||
|
||||
Subtuple ~
|
||||
*subtuple*
|
||||
A part of the Tuple can be obtained by specifying the first and last index,
|
||||
separated by a colon in square brackets: >
|
||||
:let shorttuple = mytuple[2:-1] " get Tuple (3, "four")
|
||||
|
||||
Omitting the first index is similar to zero. Omitting the last index is
|
||||
similar to -1. >
|
||||
:let endtuple = mytuple[2:] " from item 2 to the end: (3, "four")
|
||||
:let shorttuple = mytuple[2:2] " Tuple with one item: (3,)
|
||||
:let othertuple = mytuple[:] " make a copy of the Tuple
|
||||
|
||||
Notice that the last index is inclusive. If you prefer using an exclusive
|
||||
index, use the |slice()| function.
|
||||
|
||||
If the first index is beyond the last item of the Tuple or the last index is
|
||||
before the first item, the result is an empty tuple. There is no error
|
||||
message.
|
||||
|
||||
If the last index is equal to or greater than the length of the tuple, the
|
||||
length minus one is used: >
|
||||
:let mytuple = (0, 1, 2, 3)
|
||||
:echo mytuple[2:8] " result: (2, 3)
|
||||
|
||||
NOTE: mytuple[s:e] means using the variable "s:e" as index. Watch out for
|
||||
using a single letter variable before the ":". Insert a space when needed:
|
||||
mytuple[s : e].
|
||||
|
||||
|
||||
Tuple identity ~
|
||||
*tuple-identity*
|
||||
When variable "aa" is a tuple and you assign it to another variable "bb", both
|
||||
variables refer to the same tuple: >
|
||||
:let aa = (1, 2, 3)
|
||||
:let bb = aa
|
||||
<
|
||||
|
||||
Making a copy of a tuple is done with the |copy()| function. Using [:] also
|
||||
works, as explained above. This creates a shallow copy of the tuple: For
|
||||
example, changing a list item in the tuple will also change the item in the
|
||||
copied tuple: >
|
||||
:let aa = ([1, 'a'], 2, 3)
|
||||
:let bb = copy(aa)
|
||||
:let aa[0][1] = 'aaa'
|
||||
:echo aa
|
||||
< ([1, aaa], 2, 3) >
|
||||
:echo bb
|
||||
< ([1, aaa], 2, 3)
|
||||
|
||||
To make a completely independent tuple, use |deepcopy()|. This also makes a
|
||||
copy of the values in the tuple, recursively. Up to a hundred levels deep.
|
||||
|
||||
The operator "is" can be used to check if two variables refer to the same
|
||||
Tuple. "isnot" does the opposite. In contrast, "==" compares if two tuples
|
||||
have the same value. >
|
||||
:let atuple = (1, 2, 3)
|
||||
:let btuple = (1, 2, 3)
|
||||
:echo atuple is btuple
|
||||
< 0 >
|
||||
:echo atuple == btuple
|
||||
< 1
|
||||
|
||||
Note about comparing tuples: Two tuples are considered equal if they have the
|
||||
same length and all items compare equal, as with using "==". There is one
|
||||
exception: When comparing a number with a string they are considered
|
||||
different. There is no automatic type conversion, as with using "==" on
|
||||
variables. Example: >
|
||||
echo 4 == "4"
|
||||
< 1 >
|
||||
echo (4,) == ("4",)
|
||||
< 0
|
||||
|
||||
Thus comparing Tuples is more strict than comparing numbers and strings. You
|
||||
can compare simple values this way too by putting them in a tuple: >
|
||||
|
||||
:let a = 5
|
||||
:let b = "5"
|
||||
:echo a == b
|
||||
< 1 >
|
||||
:echo (a,) == (b,)
|
||||
< 0
|
||||
|
||||
|
||||
Tuple unpack ~
|
||||
|
||||
To unpack the items in a tuple to individual variables, put the variables in
|
||||
square brackets, like list items: >
|
||||
:let [var1, var2] = mytuple
|
||||
|
||||
When the number of variables does not match the number of items in the tuple
|
||||
this produces an error. To handle any extra items from the tuple, append ";"
|
||||
and a variable name (which will then be of type tuple): >
|
||||
:let [var1, var2; rest] = mytuple
|
||||
|
||||
This works like: >
|
||||
:let var1 = mytuple[0]
|
||||
:let var2 = mytuple[1]
|
||||
:let rest = mytuple[2:]
|
||||
|
||||
Except that there is no error if there are only two items. "rest" will be an
|
||||
empty tuple then.
|
||||
|
||||
|
||||
Tuple functions ~
|
||||
*E1536*
|
||||
Functions that are useful with a Tuple: >
|
||||
:let xs = count(tuple, 'x') " count number of 'x's in tuple
|
||||
:if empty(tuple) " check if tuple is empty
|
||||
:let i = index(tuple, 'x') " index of first 'x' in tuple
|
||||
:let l = items(tuple) " list of items in a tuple
|
||||
:let string = join(tuple, ', ') " create string from tuple items
|
||||
:let l = len(tuple) " number of items in tuple
|
||||
:let big = max(tuple) " maximum value in tuple
|
||||
:let small = min(tuple) " minimum value in tuple
|
||||
:let r = repeat(tuple, n) " repeat a tuple n times
|
||||
:let r = reverse(tuple) " reverse a tuple
|
||||
:let s = slice(tuple, n1, n2) " slice a tuple
|
||||
:let s = string(tuple) " String representation of tuple
|
||||
:let l = tuple2list(tuple) " convert a tuple to list
|
||||
:let t = list2tuple(list) " convert a list to tuple
|
||||
<
|
||||
*E1524*
|
||||
A tuple cannot be used with the |map()|, |mapnew()| and |filter()| functions.
|
||||
|
||||
1.5 Dictionaries ~
|
||||
*dict* *Dict* *Dictionaries* *Dictionary*
|
||||
A Dictionary is an associative array: Each entry has a key and a value. The
|
||||
entry can be located with the key. The entries are stored without a specific
|
||||
@@ -537,10 +743,10 @@ ordering.
|
||||
|
||||
Dictionary creation ~
|
||||
*E720* *E721* *E722* *E723*
|
||||
A Dictionary is created with a comma-separated list of entries in curly
|
||||
A Dictionary is created with a comma-separated sequence of entries in curly
|
||||
braces. Each entry has a key and a value, separated by a colon. Each key can
|
||||
only appear once. Examples: >
|
||||
:let mydict = {1: 'one', 2: 'two', 3: 'three'}
|
||||
:let mydict = {'one': 1, 'two': 2, 'three': 3}
|
||||
:let emptydict = {}
|
||||
< *E713* *E716* *E717*
|
||||
A key is always a String. You can use a Number, it will be converted to a
|
||||
@@ -570,8 +776,11 @@ An extra comma after the last entry is ignored.
|
||||
Accessing entries ~
|
||||
|
||||
The normal way to access an entry is by putting the key in square brackets: >
|
||||
:let mydict = {'one': 1, 'two': 2, 'three': 3}
|
||||
:let val = mydict["one"]
|
||||
:let mydict["four"] = 4
|
||||
:let val = mydict.one
|
||||
:let mydict.four = 4
|
||||
|
||||
You can add new entries to an existing Dictionary this way, unlike Lists.
|
||||
|
||||
@@ -709,7 +918,7 @@ Functions that can be used with a Dictionary: >
|
||||
:call map(dict, '">> " .. v:val') " prepend ">> " to each item
|
||||
|
||||
|
||||
1.5 Blobs ~
|
||||
1.6 Blobs ~
|
||||
*blob* *Blob* *Blobs* *E978*
|
||||
A Blob is a binary object. It can be used to read an image from a file and
|
||||
send it over a channel, for example.
|
||||
@@ -856,7 +1065,7 @@ Making a copy of a Blob is done with the |copy()| function. Using [:] also
|
||||
works, as explained above.
|
||||
|
||||
|
||||
1.6 More about variables ~
|
||||
1.7 More about variables ~
|
||||
*more-variables*
|
||||
If you need to know the type of a variable or expression, use the |type()|
|
||||
function.
|
||||
@@ -907,16 +1116,18 @@ Expression syntax summary, from least to most significant:
|
||||
etc. As above, append ? for ignoring case, # for
|
||||
matching case
|
||||
|
||||
expr5 is expr5 same |List|, |Dictionary| or |Blob| instance
|
||||
expr5 isnot expr5 different |List|, |Dictionary| or |Blob|
|
||||
expr5 is expr5 same |List|, |Tuple|, |Dictionary| or |Blob|
|
||||
instance
|
||||
expr5 isnot expr5 different |List|, |Tuple|, |Dictionary| or
|
||||
|Blob| instance
|
||||
|
||||
|expr5| expr6
|
||||
expr6 << expr6 bitwise left shift
|
||||
expr6 >> expr6 bitwise right shift
|
||||
|
||||
|expr6| expr7
|
||||
expr7 + expr7 ... number addition, list or blob concatenation
|
||||
expr7 + expr7 ... number addition, list or tuple or blob
|
||||
concatenation
|
||||
expr7 - expr7 ... number subtraction
|
||||
expr7 . expr7 ... string concatenation
|
||||
expr7 .. expr7 ... string concatenation
|
||||
@@ -935,8 +1146,10 @@ Expression syntax summary, from least to most significant:
|
||||
+ expr9 unary plus
|
||||
|
||||
|expr10| expr11
|
||||
expr10[expr1] byte of a String or item of a |List|
|
||||
expr10[expr1] byte of a String or item of a |List| or
|
||||
|Tuple|
|
||||
expr10[expr1 : expr1] substring of a String or sublist of a |List|
|
||||
or a slice of a |Tuple|
|
||||
expr10.name entry in a |Dictionary|
|
||||
expr10(expr1, ...) function call with |Funcref| variable
|
||||
expr10->name(expr1, ...) |method| call
|
||||
@@ -945,6 +1158,7 @@ Expression syntax summary, from least to most significant:
|
||||
"string" string constant, backslash is special
|
||||
'string' string constant, ' is doubled
|
||||
[expr1, ...] |List|
|
||||
(expr1, ...) |Tuple|
|
||||
{expr1: expr1, ...} |Dictionary|
|
||||
#{key: expr1, ...} legacy |Dictionary|
|
||||
&option option value
|
||||
@@ -1101,10 +1315,11 @@ Examples:
|
||||
"abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
|
||||
NOTE: In |Vim9| script 'ignorecase' is not used.
|
||||
|
||||
*E691* *E692*
|
||||
*E691* *E692* *E1517* *E1518*
|
||||
A |List| can only be compared with a |List| and only "equal", "not equal",
|
||||
"is" and "isnot" can be used. This compares the values of the list,
|
||||
recursively. Ignoring case means case is ignored when comparing item values.
|
||||
Same applies for a |Tuple|.
|
||||
|
||||
*E735* *E736*
|
||||
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
|
||||
@@ -1124,12 +1339,13 @@ Dictionary and arguments, use |get()| to get the function name: >
|
||||
if get(Part1, 'name') == get(Part2, 'name')
|
||||
" Part1 and Part2 refer to the same function
|
||||
< *E1037*
|
||||
Using "is" or "isnot" with a |List|, |Dictionary| or |Blob| checks whether
|
||||
the expressions are referring to the same |List|, |Dictionary| or |Blob|
|
||||
instance. A copy of a |List| is different from the original |List|. When
|
||||
using "is" without a |List|, |Dictionary| or |Blob|, it is equivalent to
|
||||
using "equal", using "isnot" equivalent to using "not equal". Except that
|
||||
a different type means the values are different: >
|
||||
Using "is" or "isnot" with a |List|, |Tuple|, |Dictionary| or |Blob| checks
|
||||
whether the expressions are referring to the same |List|, |Tuple|,
|
||||
|Dictionary| or |Blob| instance. A copy of a |List| or |Tuple| is different
|
||||
from the original |List| or |Tuple|. When using "is" without a |List|,
|
||||
|Tuple|, |Dictionary| or |Blob|, it is equivalent to using "equal", using
|
||||
"isnot" is equivalent to using "not equal". Except that a different type
|
||||
means the values are different: >
|
||||
echo 4 == '4'
|
||||
1
|
||||
echo 4 is '4'
|
||||
@@ -1147,7 +1363,7 @@ that: >
|
||||
because 'x' converted to a Number is zero. However: >
|
||||
echo [0] == ['x']
|
||||
0
|
||||
Inside a List or Dictionary this conversion is not used.
|
||||
Inside a List or Tuple or Dictionary this conversion is not used.
|
||||
|
||||
In |Vim9| script the types must match.
|
||||
|
||||
@@ -1191,13 +1407,14 @@ topmost bit (sometimes called the sign bit) is cleared. If the right operand
|
||||
|
||||
expr6 and expr7 *expr6* *expr7* *E1036* *E1051*
|
||||
---------------
|
||||
expr7 + expr7 Number addition, |List| or |Blob| concatenation *expr-+*
|
||||
*expr-+*
|
||||
expr7 + expr7 Number addition, |List| or |Tuple| or |Blob| concatenation
|
||||
expr7 - expr7 Number subtraction *expr--*
|
||||
expr7 . expr7 String concatenation *expr-.*
|
||||
expr7 .. expr7 String concatenation *expr-..*
|
||||
|
||||
For |Lists| only "+" is possible and then both expr7 must be a list. The
|
||||
result is a new list with the two lists Concatenated.
|
||||
result is a new list with the two lists concatenated. Same for a |Tuple|.
|
||||
|
||||
For String concatenation ".." is preferred, since "." is ambiguous, it is also
|
||||
used for |Dict| member access and floating point numbers.
|
||||
@@ -1295,7 +1512,8 @@ in any order. E.g., these are all possible:
|
||||
expr10->(expr1, ...)[expr1]
|
||||
Evaluation is always from left to right.
|
||||
|
||||
expr10[expr1] item of String or |List| *expr-[]* *E111*
|
||||
*expr-[]* *E111*
|
||||
expr10[expr1] item of String or |List| or |Tuple|
|
||||
*E909* *subscript* *E1062*
|
||||
In legacy Vim script:
|
||||
If expr10 is a Number or String this results in a String that contains the
|
||||
@@ -1328,6 +1546,8 @@ Generally, if a |List| index is equal to or higher than the length of the
|
||||
|List|, or more negative than the length of the |List|, this results in an
|
||||
error.
|
||||
|
||||
A |Tuple| index is similar to a |List| index as explained above.
|
||||
|
||||
|
||||
expr10[expr1a : expr1b] substring or |sublist| *expr-[:]* *substring*
|
||||
|
||||
@@ -1369,6 +1589,7 @@ just above. Also see |sublist| below. Examples: >
|
||||
:let l = mylist[:3] " first four items
|
||||
:let l = mylist[4:4] " List with one item
|
||||
:let l = mylist[:] " shallow copy of a List
|
||||
A |Tuple| slice is similar to a |List| slice.
|
||||
|
||||
If expr10 is a |Blob| this results in a new |Blob| with the bytes in the
|
||||
indexes expr1a and expr1b, inclusive. Examples: >
|
||||
@@ -2081,7 +2302,7 @@ v:colornames A dictionary that maps color names to hex color strings. These
|
||||
|
||||
You can make changes to that file, but make sure to add new
|
||||
keys instead of updating existing ones, otherwise Vim will skip
|
||||
loading the file (thinking is hasn't been changed).
|
||||
loading the file (thinking it hasn't been changed).
|
||||
|
||||
*v:completed_item* *completed_item-variable*
|
||||
v:completed_item
|
||||
@@ -2630,6 +2851,8 @@ v:t_typealias Value of |typealias| type. Read-only. See: |type()|
|
||||
v:t_enum Value of |enum| type. Read-only. See: |type()|
|
||||
*v:t_enumvalue* *t_enumvalue-variable*
|
||||
v:t_enumvalue Value of |enumvalue| type. Read-only. See: |type()|
|
||||
*v:t_tuple* *t_tuple-variable*
|
||||
v:t_tuple Value of |Tuple| type. Read-only. See: |type()|
|
||||
|
||||
*v:termresponse* *termresponse-variable*
|
||||
v:termresponse The escape sequence returned by the terminal for the |t_RV|
|
||||
@@ -2949,13 +3172,13 @@ declarations and assignments do not use a command. |vim9-declaration|
|
||||
:let &g:{option-name} -= {expr1}
|
||||
Like above, but only set the global value of an option
|
||||
(if there is one). Works like |:setglobal|.
|
||||
*E1093*
|
||||
*E1093* *E1537* *E1538* *E1535*
|
||||
:let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
|
||||
{expr1} must evaluate to a |List|. The first item in
|
||||
the list is assigned to {name1}, the second item to
|
||||
{name2}, etc.
|
||||
{expr1} must evaluate to a |List| or a |Tuple|. The
|
||||
first item in the list or tuple is assigned to
|
||||
{name1}, the second item to {name2}, etc.
|
||||
The number of names must match the number of items in
|
||||
the |List|.
|
||||
the |List| or |Tuple|.
|
||||
Each name can be one of the items of the ":let"
|
||||
command as mentioned above.
|
||||
Example: >
|
||||
@@ -2972,16 +3195,22 @@ declarations and assignments do not use a command. |vim9-declaration|
|
||||
:let [{name1}, {name2}, ...] .= {expr1}
|
||||
:let [{name1}, {name2}, ...] += {expr1}
|
||||
:let [{name1}, {name2}, ...] -= {expr1}
|
||||
Like above, but append/add/subtract the value for each
|
||||
|List| item.
|
||||
:let [{name1}, {name2}, ...] *= {expr1}
|
||||
:let [{name1}, {name2}, ...] /= {expr1}
|
||||
:let [{name1}, {name2}, ...] %= {expr1}
|
||||
Like above, but append, add, subtract, multiply,
|
||||
divide, or modulo the value for each |List| or |Tuple|
|
||||
item.
|
||||
|
||||
:let [{name}, ..., ; {lastname}] = {expr1} *E452*
|
||||
Like |:let-unpack| above, but the |List| may have more
|
||||
items than there are names. A list of the remaining
|
||||
items is assigned to {lastname}. If there are no
|
||||
remaining items {lastname} is set to an empty list.
|
||||
Like |:let-unpack| above, but the |List| or |Tuple|
|
||||
may have more items than there are names. A list or a
|
||||
tuple of the remaining items is assigned to
|
||||
{lastname}. If there are no remaining items,
|
||||
{lastname} is set to an empty list or tuple.
|
||||
Example: >
|
||||
:let [a, b; rest] = ["aval", "bval", 3, 4]
|
||||
:let [a, b; rest] = ("aval", "bval", 3, 4)
|
||||
<
|
||||
:let [{name}, ..., ; {lastname}] .= {expr1}
|
||||
:let [{name}, ..., ; {lastname}] += {expr1}
|
||||
@@ -3176,23 +3405,26 @@ text...
|
||||
get an error message: "E940: Cannot lock or unlock
|
||||
variable {name}".
|
||||
|
||||
[depth] is relevant when locking a |List| or
|
||||
|Dictionary|. It specifies how deep the locking goes:
|
||||
[depth] is relevant when locking a |List|, a |Tuple|
|
||||
or a |Dictionary|. It specifies how deep the locking
|
||||
goes:
|
||||
0 Lock the variable {name} but not its
|
||||
value.
|
||||
1 Lock the |List| or |Dictionary| itself,
|
||||
cannot add or remove items, but can
|
||||
still change their values.
|
||||
1 Lock the |List| or |Tuple| or
|
||||
|Dictionary| itself, cannot add or
|
||||
remove items, but can still change
|
||||
their values.
|
||||
2 Also lock the values, cannot change
|
||||
the items. If an item is a |List| or
|
||||
|Dictionary|, cannot add or remove
|
||||
items, but can still change the
|
||||
|Tuple| or |Dictionary|, cannot add or
|
||||
remove items, but can still change the
|
||||
values.
|
||||
3 Like 2 but for the |List| /
|
||||
|Dictionary| in the |List| /
|
||||
3 Like 2 but for the |List| / |Tuple| /
|
||||
|Dictionary| in the |List| / |Tuple| /
|
||||
|Dictionary|, one level deeper.
|
||||
The default [depth] is 2, thus when {name} is a |List|
|
||||
or |Dictionary| the values cannot be changed.
|
||||
The default [depth] is 2, thus when {name} is a
|
||||
|List|, a |Tuple| or a |Dictionary| the values cannot
|
||||
be changed.
|
||||
|
||||
Example with [depth] 0: >
|
||||
let mylist = [1, 2, 3]
|
||||
@@ -3297,7 +3529,7 @@ text...
|
||||
:endfo[r] *:endfo* *:endfor*
|
||||
Repeat the commands between `:for` and `:endfor` for
|
||||
each item in {object}. {object} can be a |List|,
|
||||
a |Blob| or a |String|. *E1177*
|
||||
a |Tuple|, a |Blob| or a |String|. *E1177*
|
||||
|
||||
Variable {var} is set to the value of each item.
|
||||
In |Vim9| script the loop variable must not have been
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Mar 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -640,6 +640,25 @@ One command, :DiffGitCached, is provided to show a diff of the current commit
|
||||
in the preview window. It is equivalent to calling "git diff --cached" plus
|
||||
any arguments given to the command.
|
||||
|
||||
GIT REBASE *ft-gitrebase-plugin*
|
||||
|
||||
The gitrebase filetype defines the following buffer-local commands, to help
|
||||
with interactive `git rebase`: >
|
||||
|
||||
:Drop " to discard this commit
|
||||
:Edit " to stop for editing this commit
|
||||
:Fixup " to squash (but discard the message) into the previous one
|
||||
:Pick " to pick this commit (the cursor is on)
|
||||
:Reword " to pick this commit, but change the commit message
|
||||
:Squash " to squash this commit into the previous one
|
||||
|
||||
In addition, the following command can be used to cycle between the different
|
||||
possibilities: >
|
||||
|
||||
:Cycle " to cycle between the previous commands
|
||||
<
|
||||
The `:Cycle` command is also mapped to the CTRL-A and CTRL-X keys.
|
||||
For details, see `git-rebase --help`.
|
||||
|
||||
GO *ft-go-plugin*
|
||||
|
||||
@@ -744,12 +763,21 @@ Add following lines to $HOME/.vim/ftplugin/json.vim: >
|
||||
import autoload 'dist/json.vim'
|
||||
setl formatexpr=json.FormatExpr()
|
||||
|
||||
LUA *ft-lua-plugin*
|
||||
LUA *ft-lua-plugin* *g:lua_folding*
|
||||
|
||||
You can enable folding of Lua functions using |fold-expr| by: >
|
||||
|
||||
let g:lua_folding = 1
|
||||
< *g:lua_version* *g:lua_subversion*
|
||||
Lua filetype's 'includeexpr' and |ft-lua-syntax| highlighting use the global
|
||||
variables "g:lua_version" and "g:lua_subversion" to determine the version of
|
||||
Lua to use (5.3 is the default)
|
||||
|
||||
For example, to use Lua 5.1, set the variables like this: >
|
||||
|
||||
let g:lua_version = 5
|
||||
let g:lua_subversion = 1
|
||||
<
|
||||
MAIL *ft-mail-plugin*
|
||||
|
||||
Options:
|
||||
@@ -767,7 +795,7 @@ Local mappings:
|
||||
to the end of the file in Normal mode. This means "> " is inserted in
|
||||
each line.
|
||||
|
||||
MAN *ft-man-plugin* *:Man* *man.vim*
|
||||
MAN *ft-man-plugin* *:Man* *:ManReload* *man.vim*
|
||||
|
||||
This plugin displays a manual page in a nice way. See |find-manpage| in the
|
||||
user manual for more information.
|
||||
@@ -784,6 +812,8 @@ Commands:
|
||||
Man {name} Display the manual page for {name} in a window.
|
||||
Man {number} {name}
|
||||
Display the manual page for {name} in a section {number}.
|
||||
ManReload Reload the cache of available man pages used for |:Man| argument
|
||||
completion.
|
||||
|
||||
Global mapping:
|
||||
<Leader>K Displays the manual page for the word under the cursor.
|
||||
@@ -814,6 +844,14 @@ desired folding style instead. For example: >
|
||||
If you would like :Man {number} {name} to behave like man {number} {name} by
|
||||
not running man {name} if no page is found, then use this: >
|
||||
let g:ft_man_no_sect_fallback = 1
|
||||
<
|
||||
*g:ft_man_implementation*
|
||||
The completion for the :Man command tries to guess which implementation of man
|
||||
the system has. If it guesses wrong, you can set g:ft_man_implementation to
|
||||
one of these values:
|
||||
'man-db' https://man-db.nongnu.org/
|
||||
'' Unknown, fall back to completing shell commands
|
||||
instead of man pages.
|
||||
|
||||
You may also want to set 'keywordprg' to make the |K| command open a manual
|
||||
page in a Vim window: >
|
||||
@@ -865,6 +903,12 @@ the PDF. The following are treated as tags:
|
||||
|
||||
These maps can be disabled with >
|
||||
:let g:no_pdf_maps = 1
|
||||
|
||||
PLSQL *ft-plsql-plugin*
|
||||
|
||||
To enable syntax folding in PL/SQL filetypes, set the following variable: >
|
||||
|
||||
:let g:plsql_fold = 1
|
||||
<
|
||||
|
||||
PYTHON *ft-python-plugin* *PEP8*
|
||||
|
||||
+25
-27
@@ -283,8 +283,6 @@ as general information regarding macOS user defaults.
|
||||
Here is a list of relevant dictionary entries:
|
||||
|
||||
KEY VALUE ~
|
||||
*MMAllowForceClickLookUp* use Force click for data lookup instead of
|
||||
<ForceClick> [bool]
|
||||
*MMCellWidthMultiplier* width of a normal glyph in em units [float]
|
||||
*MMCmdLineAlignBottom* Pin command-line to bottom of MacVim [bool]
|
||||
*MMDialogsTrackPwd* open/save dialogs track the Vim pwd [bool]
|
||||
@@ -307,7 +305,6 @@ KEY VALUE ~
|
||||
*MMTitlebarAppearsTransparent* enable a transparent titlebar [bool]
|
||||
*MMAppearanceModeSelection* dark mode selection (|macvim-dark-mode|)[bool]
|
||||
*MMRendererClipToRow* clip tall characters to the row they are on [bool]
|
||||
*MMScrollOneDirectionOnly* scroll along one axis only when using trackpad [bool]
|
||||
*MMSmoothResize* allow smooth resizing of MacVim window [bool]
|
||||
*MMShareFindPboard* share search text to Find Pasteboard [bool]
|
||||
*MMTextInsetBottom* text area offset in pixels [int]
|
||||
@@ -316,12 +313,22 @@ KEY VALUE ~
|
||||
*MMTextInsetTop* text area offset in pixels [int]
|
||||
*MMTexturedWindow* use brushed metal window (Tiger only) [bool]
|
||||
*MMTranslateCtrlClick* interpret ctrl-click as right-click [bool]
|
||||
*MMUseMouseTime* use mousetime to detect multiple clicks [bool]
|
||||
*MMVerticalSplit* files open in vertical splits [bool]
|
||||
*MMZoomBoth* zoom button maximizes both directions [bool]
|
||||
*MMUpdaterPrereleaseChannel* opt-in to pre-release software update [bool]
|
||||
*MMShowWhatsNewOnStartup* show "What's New" after updating to new version [bool]
|
||||
|
||||
Mouse / Trackpad ~
|
||||
*MMScrollOneDirectionOnly* scroll along one axis only when using trackpad [bool]
|
||||
*MMAllowForceClickLookUp* use Force click for data lookup instead of
|
||||
<ForceClick> [bool]
|
||||
*MMMouseWheelDisableAcceleration* disable OS scroll wheel acceleration [bool]
|
||||
*MMMouseWheelNumLines* how many lines to scroll when scroll wheel
|
||||
acceleration is turned off [int]
|
||||
*MMMouseWheelMinLines* min number of lines to scroll per scroll wheel
|
||||
click when acceleration is on [int]
|
||||
*MMUseMouseTime* use mousetime to detect multiple clicks [bool]
|
||||
|
||||
Tabs ~
|
||||
*MMTabColorsMode* use default/auto/colorscheme for tab colors [int]
|
||||
*MMWindowUseTabBackgroundColor* use tabs background fill color as window color [bool]
|
||||
@@ -395,32 +402,23 @@ top of the screen, you can set |MMNonNativeFullScreenShowMenu| to `NO` and
|
||||
==============================================================================
|
||||
5. Special colors *macvim-colors*
|
||||
|
||||
The colors in MacVim are defined in two dictionaries inside the "Resources"
|
||||
folder of the application bundle (MacVim.app/Contents/Resources). It is
|
||||
possible to add more colors by modifying these files. Color names are case
|
||||
insensitive when accessed from Vim, but in the dictionary they must be
|
||||
lowercase.
|
||||
MacVim mostly uses standard Vim colors. See |gui-colors| and |v:colornames|
|
||||
for how to set and override them.
|
||||
|
||||
*SystemColors.plist*
|
||||
There are only a few system colors that can be accessed from Vim. These
|
||||
colors are defined in the dictionary "SystemColors.plist". This dictionary
|
||||
stores (key, value) pairs where the key is the name of the color and the
|
||||
value is an NSColor selector name.
|
||||
There are a few additional system colors that can be used in the |:hi|
|
||||
command. These colors are defined in the dictionary "SystemColors.plist" in
|
||||
the MacVim.app bundle. These color values correspond to NSColor selectors in
|
||||
macOS. The available color names are:
|
||||
|
||||
The most useful system colors are: >
|
||||
MacSelectedTextBackgroundColor
|
||||
MacSecondarySelectedColor
|
||||
The former is the "Highlight Color" which can be changed in the "Appearance"
|
||||
section of the System Settings. The latter is the selection color used by
|
||||
a Cocoa application when it is not in focus.
|
||||
|
||||
*Colors.plist*
|
||||
Apart from the system colors, it is also possible to use the standard X11
|
||||
color names (see https://en.wikipedia.org/wiki/X11_color_names) which usually
|
||||
come in a file called "rgb.txt". MacVim does not have such a file, instead it
|
||||
keeps these colors in a dictionary called "Colors.plist". The key in this
|
||||
dictionary is the name of the color and the value is an RGB value on the form
|
||||
#rrggbb stored as an integer.
|
||||
KEY VALUE ~
|
||||
MacSecondarySelectedControlColor Selection color when app is not in
|
||||
focus.
|
||||
MacSelectedTextBackgroundColor "Highlight Color" which can be changed
|
||||
in the "Appearance" section of System
|
||||
Settings.
|
||||
MacTextBackgroundColor Normal text background color.
|
||||
MacTextColor Normal text color.
|
||||
|
||||
*macvim-colorscheme*
|
||||
MacVim ships with a custom color scheme that is used instead of the default
|
||||
|
||||
+23
-4
@@ -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 @@
|
||||
*index.txt* For Vim version 9.1. Last change: 2025 Jan 03
|
||||
*index.txt* For Vim version 9.1. Last change: 2025 Mar 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1400,6 +1400,8 @@ tag command action ~
|
||||
|:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode
|
||||
|:intro| :int[ro] print the introductory message
|
||||
|:interface| :interface start of an interface declaration
|
||||
|:iput| :ip[ut] like |:put|, but adjust the indent to the
|
||||
current line
|
||||
|:isearch| :is[earch] list one line where identifier matches
|
||||
|:isplit| :isp[lit] split window and jump to definition of
|
||||
identifier
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Feb 14
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Mar 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -222,6 +222,10 @@ CTRL-Q Same as CTRL-V.
|
||||
CTRL-SHIFT-V *i_CTRL-SHIFT-V* *i_CTRL-SHIFT-Q*
|
||||
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||
then it inserts the Escape sequence for a key with modifiers.
|
||||
Note: When CTRL-SHIFT-V is intercepted by your system (e.g.,
|
||||
to paste text) you can often use CTRL-SHIFT-Q instead.
|
||||
However, in some terminals (e.g. GNOME Terminal), CTRL-SHIFT-Q
|
||||
quits the terminal without confirmation.
|
||||
|
||||
CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can
|
||||
be given to complete words or scroll the window. See
|
||||
@@ -659,8 +663,8 @@ Also see the 'infercase' option if you want to adjust the case of the match.
|
||||
|
||||
When inserting a selected candidate word from the |popup-menu|, the part of
|
||||
the candidate word that does not match the query is highlighted using
|
||||
|hl-ComplMatchIns|. If fuzzy is enabled in 'completopt', highlighting will not
|
||||
be applied.
|
||||
|hl-ComplMatchIns|. If fuzzy is enabled in 'completeopt', highlighting will
|
||||
not be applied.
|
||||
|
||||
*complete_CTRL-E*
|
||||
When completion is active you can use CTRL-E to stop it and go back to the
|
||||
|
||||
+100
-40
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Feb 16
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Mar 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2119,13 +2119,35 @@ 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.
|
||||
|
||||
*'completefuzzycollect'* *'cfc'*
|
||||
'completefuzzycollect' 'cfc' string (default: empty)
|
||||
global
|
||||
A comma-separated list of strings to enable fuzzy collection for
|
||||
specific |ins-completion| modes, affecting how matches are gathered
|
||||
during completion. For specified modes, fuzzy matching is used to
|
||||
find completion candidates instead of the standard prefix-based
|
||||
matching. This option can contain the following values:
|
||||
|
||||
keyword keywords in the current file |i_CTRL-X_CTRL-N|
|
||||
keywords with flags ".", "w", |i_CTRL-N| |i_CTRL-P|
|
||||
"b", "u", "U" and "k{dict}" in 'complete'
|
||||
keywords in 'dictionary' |i_CTRL-X_CTRL-K|
|
||||
|
||||
files file names |i_CTRL-X_CTRL-F|
|
||||
|
||||
whole_line whole lines |i_CTRL-X_CTRL-L|
|
||||
|
||||
When using the 'completeopt' "longest" option value, fuzzy collection
|
||||
can identify the longest common string among the best fuzzy matches
|
||||
and insert it automatically.
|
||||
|
||||
*'completeitemalign'* *'cia'*
|
||||
'completeitemalign' 'cia' string (default: "abbr,kind,menu")
|
||||
global
|
||||
A comma-separated list of |complete-items| that controls the alignment
|
||||
and display order of items in the popup menu during Insert mode
|
||||
completion. The supported values are abbr, kind, and menu. These
|
||||
options allow to customize how the completion items are shown in the
|
||||
A comma-separated list of strings that controls the alignment and
|
||||
display order of items in the popup menu during Insert mode
|
||||
completion. The supported values are "abbr", "kind", and "menu".
|
||||
These values allow customizing how |complete-items| are shown in the
|
||||
popup menu. Note: must always contain those three values in any
|
||||
order.
|
||||
|
||||
@@ -2135,6 +2157,22 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
A comma-separated list of options for Insert mode completion
|
||||
|ins-completion|. The supported values are:
|
||||
|
||||
fuzzy Enable |fuzzy-matching| for completion candidates. This
|
||||
allows for more flexible and intuitive matching, where
|
||||
characters can be skipped and matches can be found even
|
||||
if the exact sequence is not typed. Note: This option
|
||||
does not affect the collection of candidate list, it only
|
||||
controls how completion candidates are reduced from the
|
||||
list of alternatives. If you want to use |fuzzy-matching|
|
||||
to gather more alternatives for your candidate list,
|
||||
see |'completefuzzycollect'|.
|
||||
|
||||
longest Only insert the longest common text of the matches. If
|
||||
the menu is displayed you can use CTRL-L to add more
|
||||
characters. Whether case is ignored depends on the kind
|
||||
of completion. For buffer text the 'ignorecase' option is
|
||||
used.
|
||||
|
||||
menu Use a popup menu to show the possible completions. The
|
||||
menu is only shown when there is more than one match and
|
||||
sufficient colors are available. |ins-completion-menu|
|
||||
@@ -2143,15 +2181,17 @@ 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.
|
||||
|
||||
longest Only insert the longest common text of the matches. If
|
||||
the menu is displayed you can use CTRL-L to add more
|
||||
characters. Whether case is ignored depends on the kind
|
||||
of completion. For buffer text the 'ignorecase' option is
|
||||
used.
|
||||
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.
|
||||
|
||||
preview Show extra information about the currently selected
|
||||
completion in the preview window. Only works in
|
||||
combination with "menu" or "menuone".
|
||||
noselect Same as "noinsert", except that no menu item is
|
||||
pre-selected. If both "noinsert" and "noselect" are
|
||||
present, "noselect" has precedence.
|
||||
|
||||
nosort Disable sorting of completion candidates based on fuzzy
|
||||
scores when "fuzzy" is enabled. Candidates will appear
|
||||
in their original order.
|
||||
|
||||
popup Show extra information about the currently selected
|
||||
completion in a popup window. Only works in combination
|
||||
@@ -2166,28 +2206,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
See the example at |complete-popuphidden|.
|
||||
{only works when compiled with the |+textprop| feature}
|
||||
|
||||
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.
|
||||
|
||||
noselect Same as "noinsert", except that no menu item is
|
||||
pre-selected. If both "noinsert" and "noselect" are
|
||||
present, "noselect" has precedence.
|
||||
|
||||
fuzzy Enable |fuzzy-matching| for completion candidates. This
|
||||
allows for more flexible and intuitive matching, where
|
||||
characters can be skipped and matches can be found even
|
||||
if the exact sequence is not typed.
|
||||
|
||||
nosort Disable sorting of completion candidates based on fuzzy
|
||||
scores when "fuzzy" is enabled. Candidates will appear
|
||||
in their original order.
|
||||
|
||||
preinsert
|
||||
Preinsert the portion of the first candidate word that is
|
||||
not part of the current completion leader and using the
|
||||
|hl-ComplMatchIns| highlight group. Does not work when
|
||||
"fuzzy" is also included.
|
||||
|hl-ComplMatchIns| highlight group. In order for it to
|
||||
work, "fuzzy" must not be set and "menuone" must be set.
|
||||
|
||||
preview Show extra information about the currently selected
|
||||
completion in the preview window. Only works in
|
||||
combination with "menu" or "menuone".
|
||||
|
||||
*'completepopup'* *'cpp'*
|
||||
'completepopup' 'cpp' string (default empty)
|
||||
@@ -2898,7 +2925,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}
|
||||
@@ -2963,6 +2991,21 @@ 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 nothing
|
||||
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.
|
||||
|
||||
internal Use the internal diff library. This is
|
||||
ignored when 'diffexpr' is set. *E960*
|
||||
When running out of memory when writing a
|
||||
@@ -4464,10 +4507,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,
|
||||
@@ -4519,7 +4562,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')
|
||||
@@ -6568,6 +6612,15 @@ 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 "..." at the end. Takes precedence over 'pumwidth'.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'pumwidth'* *'pw'*
|
||||
@@ -9715,7 +9768,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"lastused" When completing buffer names and more than one buffer
|
||||
matches, sort buffers by time last used (other than
|
||||
the current buffer).
|
||||
When there is only a single match, it is fully completed in all cases.
|
||||
"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.
|
||||
|
||||
Examples of useful colon-separated values:
|
||||
"longest:full" Like "longest", but also start 'wildmenu' if it is
|
||||
@@ -9738,7 +9794,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:set wildmode=list,full
|
||||
< List all matches without completing, then each full match >
|
||||
:set wildmode=longest,list
|
||||
< Complete longest common string, then list alternatives.
|
||||
< Complete longest common string, then list alternatives >
|
||||
:set wildmode=noselect:full
|
||||
< Display 'wildmenu' without completing, then each full match >
|
||||
:set wildmode=noselect:lastused,full
|
||||
< Same as above, but sort buffers by time last used.
|
||||
More info here: |cmdline-completion|.
|
||||
|
||||
*'wildoptions'* *'wop'*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2024 Dec 26
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Mar 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -141,6 +141,7 @@ CTRL-C Interrupt current (search) command. Use CTRL-Break on
|
||||
help users who use "vim file | grep word" and don't
|
||||
know how to get out (blindly typing :qa<CR> would
|
||||
work).
|
||||
If a popup is open, the active popup will be closed.
|
||||
|
||||
*:noh* *:nohlsearch*
|
||||
:noh[lsearch] Stop the highlighting for the 'hlsearch' option. It
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_getscript.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Mar 15
|
||||
>
|
||||
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
||||
<
|
||||
@@ -348,38 +348,43 @@ after/syntax/c.vim contained in it to overwrite a user's c.vim.
|
||||
Doesn't override vimball installation.
|
||||
>
|
||||
g:GetLatestVimScripts_scriptaddr
|
||||
< default='https://www.vim.org/scripts/script.php?script_id='
|
||||
< default='https://www.vim.org/scripts/script.php?script_id='
|
||||
Override this if your system needs
|
||||
... ='http://vim.sourceforge.net/script.php?script_id='
|
||||
>
|
||||
g:GetLatestVimScripts_downloadaddr
|
||||
< default='https://www.vim.org/scripts/download_script.php?src_id='
|
||||
< default='https://www.vim.org/scripts/download_script.php?src_id='
|
||||
Override this if your system needs
|
||||
... ='http://vim.sourceforge.net/scripts/download_script.php?src_id='
|
||||
>
|
||||
g:GetLatestVimScripts_bunzip2
|
||||
< default= bunzip2
|
||||
< default= bunzip2
|
||||
This variable holds the name of the command to decompress .bz2
|
||||
files
|
||||
>
|
||||
g:GetLatestVimScripts_bunzip3
|
||||
< default= bunzip3
|
||||
This variable holds the name of the command to decompress .bz3
|
||||
files
|
||||
>
|
||||
g:GetLatestVimScripts_gunzip
|
||||
< default= gunzip
|
||||
< default= gunzip
|
||||
This variable holds the name of the command to decompress .gz
|
||||
files
|
||||
>
|
||||
g:GetLatestVimScripts_unxz
|
||||
< default= unxz
|
||||
< default= unxz
|
||||
This variable holds the name of the command to decompress .xz
|
||||
files
|
||||
>
|
||||
g:GetLatestVimScripts_unzip
|
||||
< default= unzip
|
||||
< default= unzip
|
||||
This variable holds the name of the command to decompress .zip
|
||||
files
|
||||
|
||||
Note: The variables associated with decompression commands help workaround
|
||||
crossplatform issues. For example, on Windows is possible to delegate this
|
||||
calls into `wsl` by doing: >
|
||||
crossplatform issues. For example, on Windows is possible to delegate
|
||||
this calls into `wsl` by doing: >
|
||||
|
||||
let g:GetLatestVimScripts_bunzip2= "wsl -e bunzip2"
|
||||
let g:GetLatestVimScripts_gunzip= "wsl -e gunzip"
|
||||
@@ -409,6 +414,8 @@ The AutoInstall process will:
|
||||
Windows: $HOME\vimfiles
|
||||
if the downloaded file ends with ".bz2"
|
||||
bunzip2 it
|
||||
else if the downloaded file ends with ".bz3"
|
||||
bunzip3 it
|
||||
else if the downloaded file ends with ".gz"
|
||||
gunzip it
|
||||
if the resulting file ends with ".zip"
|
||||
@@ -422,6 +429,7 @@ The AutoInstall process will:
|
||||
==============================================================================
|
||||
9. GetLatestVimScripts History *getscript-history* *glvs-hist* {{{1
|
||||
|
||||
v38 Feb 25, 2025 : * handles additional decompression option for .bzip3 files.
|
||||
v37 Sep 23, 2024 : * Support for the new vimball's .vmb extension (old .vba
|
||||
extension conflicted with visual basic).
|
||||
* Support for |glvs-autoinstall| in ftplugins and packages.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_gzip.txt* For Vim version 9.1. Last change: 2025 Feb 06
|
||||
*pi_gzip.txt* For Vim version 9.1. Last change: 2025 Mar 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -29,6 +29,7 @@ with these extensions:
|
||||
|
||||
extension compression ~
|
||||
*.bz2 bzip2
|
||||
*.bz3 bzip3
|
||||
*.gz gzip
|
||||
*.lz lzip
|
||||
*.lz4 lz4
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../pack/dist/opt/netrw/doc/netrw.txt
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Mar 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1722,6 +1722,13 @@ shells and OSes and also does not allow to use other available TeX options,
|
||||
if any. If your TeX doesn't support "-interaction=nonstopmode", please
|
||||
report it with different means to express \nonstopmode from the command line.
|
||||
|
||||
TSC COMPILER *compiler-tsc*
|
||||
|
||||
The executable and compiler options can be added to 'makeprg' by setting the
|
||||
b/g:tsc_makeprg variable. For example: >
|
||||
|
||||
let b:tsc_makeprg = "npx tsc --noEmit"
|
||||
|
||||
TYPST COMPILER *compiler-typst*
|
||||
|
||||
Vim includes a compiler plugin for Typst files. This compiler is enabled
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.1. Last change: 2024 Dec 19
|
||||
*starting.txt* For Vim version 9.1. Last change: 2025 Feb 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -828,8 +828,9 @@ accordingly. Vim proceeds in this order:
|
||||
easy to copy it to another system.
|
||||
|
||||
If Vim was started with "-u filename", the file "filename" is used.
|
||||
All following initializations until 4. are skipped. $MYVIMRC and
|
||||
$MYVIMDIR are not set.
|
||||
All following initializations until 4. are skipped. `$MYVIMRC` and
|
||||
`$MYVIMDIR` are not set (but `$MYVIMDIR` will be set, if 'rtp' is
|
||||
updated).
|
||||
"vim -u NORC" can be used to skip these initializations without
|
||||
reading a file. "vim -u NONE" also skips loading plugins. |-u|
|
||||
|
||||
@@ -851,9 +852,9 @@ accordingly. Vim proceeds in this order:
|
||||
*VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc*
|
||||
*$MYVIMRC* *$MYVIMDIR*
|
||||
c. Five places are searched for initializations. The first that exists
|
||||
is used, the others are ignored. The $MYVIMRC environment variable is
|
||||
set to the file that was first found, unless $MYVIMRC was already set
|
||||
and when using VIMINIT. The $MYVIMDIR environment variable is
|
||||
is used, the others are ignored. The `$MYVIMRC` environment variable is
|
||||
set to the file that was first found, unless `$MYVIMRC` was already set
|
||||
when using VIMINIT. The `$MYVIMDIR` environment variable is
|
||||
set to the personal 'rtp' directory, however it is not verified
|
||||
that the directory actually exists.
|
||||
I The environment variable VIMINIT (see also |compatible-default|) (*)
|
||||
@@ -974,9 +975,10 @@ accordingly. Vim proceeds in this order:
|
||||
The |v:vim_did_enter| variable is set to 1.
|
||||
The |VimEnter| autocommands are executed.
|
||||
|
||||
The $MYVIMRC or $MYGVIMRC environment variable will be set to the first found
|
||||
vimrc and/or gvimrc file while $MYVIMDIR is set to the users personal runtime
|
||||
directory 'rtp' (typically the first entry in 'runtimepath').
|
||||
The `$MYVIMRC` or `$MYGVIMRC` environment variable will be set to the first found
|
||||
vimrc and/or gvimrc file while `$MYVIMDIR` is set to the users personal runtime
|
||||
directory 'rtp' (typically the first entry in 'runtimepath'). If 'rtp'
|
||||
changes, `$MYVIMDIR` will be updated.
|
||||
Note: These environment variables resolve symbolic links, but 'rtp' does not.
|
||||
|
||||
|
||||
|
||||
+54
-14
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Mar 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1286,6 +1286,21 @@ doesn't work for you, or you don't edit Progress at all, use this in your
|
||||
startup vimrc: >
|
||||
:let filetype_w = "cweb"
|
||||
|
||||
CSHARP *cs.vim* *ft-cs-syntax*
|
||||
|
||||
C# raw string literals may use any number of quote marks to encapsulate the
|
||||
block, and raw interpolated string literals may use any number of braces to
|
||||
encapsulate the interpolation, e.g. >
|
||||
|
||||
$$$""""Hello {{{name}}}""""
|
||||
<
|
||||
By default, Vim highlights 3-8 quote marks, and 1-8 interpolation braces.
|
||||
The maximum numbers of quotes and braces recognized can configured using the
|
||||
following variables:
|
||||
|
||||
Variable Default ~
|
||||
g:cs_raw_string_quote_count 8
|
||||
g:cs_raw_string_interpolation_brace_count 8
|
||||
|
||||
DART *dart.vim* *ft-dart-syntax*
|
||||
|
||||
@@ -2343,13 +2358,9 @@ instead, and the name of your source file should be *.pike
|
||||
|
||||
LUA *lua.vim* *ft-lua-syntax*
|
||||
|
||||
The Lua syntax file can be used for versions 4.0, 5.0, 5.1 and 5.2 (5.2 is
|
||||
the default). You can select one of these versions using the global variables
|
||||
lua_version and lua_subversion. For example, to activate Lua
|
||||
5.1 syntax highlighting, set the variables like this: >
|
||||
|
||||
:let lua_version = 5
|
||||
:let lua_subversion = 1
|
||||
The Lua syntax file can be used for versions 4.0, 5.0+. You can select one of
|
||||
these versions using the global variables |g:lua_version| and
|
||||
|g:lua_subversion|.
|
||||
|
||||
|
||||
MAIL *mail.vim* *ft-mail.vim*
|
||||
@@ -3501,25 +3512,25 @@ cases pertain, then the first line of the file is examined (ex. looking for
|
||||
/bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype, then
|
||||
that shelltype is used. However some files (ex. .profile) are known to be
|
||||
shell files but the type is not apparent. Furthermore, on many systems sh is
|
||||
symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix).
|
||||
symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (POSIX).
|
||||
|
||||
One may specify a global default by instantiating one of the following
|
||||
variables in your <.vimrc>:
|
||||
|
||||
ksh: >
|
||||
let g:is_kornshell = 1
|
||||
< posix: (using this is nearly the same as setting g:is_kornshell to 1) >
|
||||
< posix: (default) >
|
||||
let g:is_posix = 1
|
||||
< bash: >
|
||||
let g:is_bash = 1
|
||||
< sh: (default) Bourne shell >
|
||||
< dash: >
|
||||
let g:is_dash = 1
|
||||
< sh: Bourne shell >
|
||||
let g:is_sh = 1
|
||||
|
||||
< (dash users should use posix)
|
||||
|
||||
If there's no "#! ..." line, and the user hasn't availed himself/herself of a
|
||||
default sh.vim syntax setting as just shown, then syntax/sh.vim will assume
|
||||
the Bourne shell syntax. No need to quote RFCs or market penetration
|
||||
the POSIX shell syntax. No need to quote RFCs or market penetration
|
||||
statistics in error reports, please -- just select the default version of the
|
||||
sh your system uses and install the associated "let..." in your <.vimrc>.
|
||||
|
||||
@@ -4021,7 +4032,29 @@ highlighting is to put the following line in your |vimrc|: >
|
||||
|
||||
let g:vimsyn_noerror = 1
|
||||
<
|
||||
To suppress only specific errors, define the following variables: >
|
||||
|
||||
g:vimsyn_nobehaveerror = 1 " :behave error
|
||||
g:vimsyn_vimFTError = 1 " :filetype error
|
||||
g:vimsyn_noaugrouperror = 1 " :augroup error
|
||||
g:vimsyn_noopererror = 1 " operator error
|
||||
g:vimsyn_notypealiaserror = 1 " Vim9 type alias error
|
||||
g:vimsyn_novimfunctionerror = 1 " Vim9 method error
|
||||
g:vimsyn_nousercmderror = 1 " :com error
|
||||
g:vimsyn_novimsynerror = 1 " :syn error
|
||||
g:vimsyn_novimsyncaseerror = 1 " :syn case error
|
||||
g:vimsyn_novimsynconcealerror = 1 " :syn conceal error
|
||||
g:vimsyn_novimsynfoldlevelerror = 1 " :syn foldlevel error
|
||||
g:vimsyn_novimsynspellerror = 1 " :syn spell error
|
||||
g:vimsyn_novimsyncerror = 1 " :syn sync error
|
||||
g:vimsyn_novimhictermerror = 1 " :hi error
|
||||
g:vimsyn_vimhikeyerror = 1 " :hi key=arg error
|
||||
<
|
||||
To force highlighting of Neovim specific Vim script elements (even if not
|
||||
using Neovim), set >
|
||||
|
||||
let g:vimsyn_vim_features = ['nvim']
|
||||
<
|
||||
|
||||
WDL *wdl.vim* *wdl-syntax*
|
||||
|
||||
@@ -5432,6 +5465,10 @@ in their own color.
|
||||
See |:highlight-default| for the optional [default]
|
||||
argument.
|
||||
|
||||
:hi[ghlight][!] [default] link {from-group} {to-group}
|
||||
:hi[ghlight][!] [default] link {from-group} NONE
|
||||
See |:hi-link|.
|
||||
|
||||
Normally a highlight group is added once when starting up. This sets the
|
||||
default values for the highlighting. After that, you can use additional
|
||||
highlight commands to change the arguments that you want to set to non-default
|
||||
@@ -5795,6 +5832,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|.
|
||||
|
||||
+67
-1
@@ -131,6 +131,7 @@ $quote eval.txt /*$quote*
|
||||
'cdpath' options.txt /*'cdpath'*
|
||||
'cedit' options.txt /*'cedit'*
|
||||
'cf' options.txt /*'cf'*
|
||||
'cfc' options.txt /*'cfc'*
|
||||
'cfu' options.txt /*'cfu'*
|
||||
'ch' options.txt /*'ch'*
|
||||
'character' intro.txt /*'character'*
|
||||
@@ -165,6 +166,7 @@ $quote eval.txt /*$quote*
|
||||
'compatible' options.txt /*'compatible'*
|
||||
'complete' options.txt /*'complete'*
|
||||
'completefunc' options.txt /*'completefunc'*
|
||||
'completefuzzycollect' options.txt /*'completefuzzycollect'*
|
||||
'completeitemalign' options.txt /*'completeitemalign'*
|
||||
'completeopt' options.txt /*'completeopt'*
|
||||
'completepopup' options.txt /*'completepopup'*
|
||||
@@ -859,6 +861,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'*
|
||||
@@ -876,6 +879,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'*
|
||||
@@ -2163,6 +2167,7 @@ $quote eval.txt /*$quote*
|
||||
:Lfilter quickfix.txt /*:Lfilter*
|
||||
:LogiPat pi_logipat.txt /*:LogiPat*
|
||||
:Man filetype.txt /*:Man*
|
||||
:ManReload filetype.txt /*:ManReload*
|
||||
:MkVimball pi_vimball.txt /*:MkVimball*
|
||||
:N editing.txt /*:N*
|
||||
:Nexplore pi_netrw.txt /*:Nexplore*
|
||||
@@ -2730,6 +2735,8 @@ $quote eval.txt /*$quote*
|
||||
:insert insert.txt /*:insert*
|
||||
:interface vim9class.txt /*:interface*
|
||||
:intro starting.txt /*:intro*
|
||||
:ip change.txt /*:ip*
|
||||
:iput change.txt /*:iput*
|
||||
:is tagsrch.txt /*:is*
|
||||
:isearch tagsrch.txt /*:isearch*
|
||||
:isp tagsrch.txt /*:isp*
|
||||
@@ -4124,7 +4131,6 @@ CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
CmdwinLeave autocmd.txt /*CmdwinLeave*
|
||||
ColorScheme autocmd.txt /*ColorScheme*
|
||||
ColorSchemePre autocmd.txt /*ColorSchemePre*
|
||||
Colors.plist gui_mac.txt /*Colors.plist*
|
||||
Command-line cmdline.txt /*Command-line*
|
||||
Command-line-mode cmdline.txt /*Command-line-mode*
|
||||
CompleteChanged autocmd.txt /*CompleteChanged*
|
||||
@@ -4640,9 +4646,34 @@ E1512 options.txt /*E1512*
|
||||
E1513 message.txt /*E1513*
|
||||
E1514 options.txt /*E1514*
|
||||
E1515 builtin.txt /*E1515*
|
||||
E1516 builtin.txt /*E1516*
|
||||
E1517 eval.txt /*E1517*
|
||||
E1518 eval.txt /*E1518*
|
||||
E1519 eval.txt /*E1519*
|
||||
E152 helphelp.txt /*E152*
|
||||
E1520 eval.txt /*E1520*
|
||||
E1521 eval.txt /*E1521*
|
||||
E1522 eval.txt /*E1522*
|
||||
E1523 eval.txt /*E1523*
|
||||
E1524 eval.txt /*E1524*
|
||||
E1525 builtin.txt /*E1525*
|
||||
E1526 eval.txt /*E1526*
|
||||
E1527 eval.txt /*E1527*
|
||||
E1528 vim9.txt /*E1528*
|
||||
E1529 vim9.txt /*E1529*
|
||||
E153 helphelp.txt /*E153*
|
||||
E1530 vim9.txt /*E1530*
|
||||
E1531 vim9.txt /*E1531*
|
||||
E1532 eval.txt /*E1532*
|
||||
E1533 eval.txt /*E1533*
|
||||
E1534 vim9.txt /*E1534*
|
||||
E1535 eval.txt /*E1535*
|
||||
E1536 eval.txt /*E1536*
|
||||
E1537 eval.txt /*E1537*
|
||||
E1538 eval.txt /*E1538*
|
||||
E1539 vim9.txt /*E1539*
|
||||
E154 helphelp.txt /*E154*
|
||||
E1540 eval.txt /*E1540*
|
||||
E155 sign.txt /*E155*
|
||||
E156 sign.txt /*E156*
|
||||
E157 sign.txt /*E157*
|
||||
@@ -5654,6 +5685,9 @@ MMFullScreenFadeTime gui_mac.txt /*MMFullScreenFadeTime*
|
||||
MMLoginShell gui_mac.txt /*MMLoginShell*
|
||||
MMLoginShellArgument gui_mac.txt /*MMLoginShellArgument*
|
||||
MMLoginShellCommand gui_mac.txt /*MMLoginShellCommand*
|
||||
MMMouseWheelDisableAcceleration gui_mac.txt /*MMMouseWheelDisableAcceleration*
|
||||
MMMouseWheelMinLines gui_mac.txt /*MMMouseWheelMinLines*
|
||||
MMMouseWheelNumLines gui_mac.txt /*MMMouseWheelNumLines*
|
||||
MMNativeFullScreen gui_mac.txt /*MMNativeFullScreen*
|
||||
MMNoFontSubstitution gui_mac.txt /*MMNoFontSubstitution*
|
||||
MMNoTitleBarWindow gui_mac.txt /*MMNoTitleBarWindow*
|
||||
@@ -5854,6 +5888,7 @@ TSQL ft_sql.txt /*TSQL*
|
||||
TTpro-telnet syntax.txt /*TTpro-telnet*
|
||||
Tab intro.txt /*Tab*
|
||||
TabClosed autocmd.txt /*TabClosed*
|
||||
TabClosedPre autocmd.txt /*TabClosedPre*
|
||||
TabEnter autocmd.txt /*TabEnter*
|
||||
TabLeave autocmd.txt /*TabLeave*
|
||||
TabNew autocmd.txt /*TabNew*
|
||||
@@ -5876,6 +5911,8 @@ TextChangedP autocmd.txt /*TextChangedP*
|
||||
TextChangedT autocmd.txt /*TextChangedT*
|
||||
TextYankPost autocmd.txt /*TextYankPost*
|
||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||
Tuple eval.txt /*Tuple*
|
||||
Tuples eval.txt /*Tuples*
|
||||
U undo.txt /*U*
|
||||
UTF-8 mbyte.txt /*UTF-8*
|
||||
UTF8-xterm mbyte.txt /*UTF8-xterm*
|
||||
@@ -6689,6 +6726,7 @@ compiler-ruff quickfix.txt /*compiler-ruff*
|
||||
compiler-select quickfix.txt /*compiler-select*
|
||||
compiler-spotbugs quickfix.txt /*compiler-spotbugs*
|
||||
compiler-tex quickfix.txt /*compiler-tex*
|
||||
compiler-tsc quickfix.txt /*compiler-tsc*
|
||||
compiler-typst quickfix.txt /*compiler-typst*
|
||||
compiler-vaxada ft_ada.txt /*compiler-vaxada*
|
||||
compl-current insert.txt /*compl-current*
|
||||
@@ -6819,6 +6857,7 @@ creating-menus gui.txt /*creating-menus*
|
||||
credits intro.txt /*credits*
|
||||
crontab options.txt /*crontab*
|
||||
cs-find if_cscop.txt /*cs-find*
|
||||
cs.vim syntax.txt /*cs.vim*
|
||||
cs7-problem term.txt /*cs7-problem*
|
||||
cscope if_cscop.txt /*cscope*
|
||||
cscope-commands if_cscop.txt /*cscope-commands*
|
||||
@@ -7417,6 +7456,7 @@ ft-context-intro ft_context.txt /*ft-context-intro*
|
||||
ft-context-mappings ft_context.txt /*ft-context-mappings*
|
||||
ft-context-settings ft_context.txt /*ft-context-settings*
|
||||
ft-cpp-syntax syntax.txt /*ft-cpp-syntax*
|
||||
ft-cs-syntax syntax.txt /*ft-cs-syntax*
|
||||
ft-csh-syntax syntax.txt /*ft-csh-syntax*
|
||||
ft-css-omni insert.txt /*ft-css-omni*
|
||||
ft-csv-syntax syntax.txt /*ft-csv-syntax*
|
||||
@@ -7446,6 +7486,7 @@ ft-freebasic-syntax syntax.txt /*ft-freebasic-syntax*
|
||||
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-go-plugin filetype.txt /*ft-go-plugin*
|
||||
ft-gprof-plugin filetype.txt /*ft-gprof-plugin*
|
||||
ft-groff-syntax syntax.txt /*ft-groff-syntax*
|
||||
@@ -7520,6 +7561,7 @@ ft-php-syntax syntax.txt /*ft-php-syntax*
|
||||
ft-php3-syntax syntax.txt /*ft-php3-syntax*
|
||||
ft-phtml-syntax syntax.txt /*ft-phtml-syntax*
|
||||
ft-plaintex-syntax syntax.txt /*ft-plaintex-syntax*
|
||||
ft-plsql-plugin filetype.txt /*ft-plsql-plugin*
|
||||
ft-posix-syntax syntax.txt /*ft-posix-syntax*
|
||||
ft-postscr-syntax syntax.txt /*ft-postscr-syntax*
|
||||
ft-ppwiz-syntax syntax.txt /*ft-ppwiz-syntax*
|
||||
@@ -7681,6 +7723,7 @@ g:filetype_csh syntax.txt /*g:filetype_csh*
|
||||
g:filetype_haredoc ft_hare.txt /*g:filetype_haredoc*
|
||||
g:filetype_md syntax.txt /*g:filetype_md*
|
||||
g:filetype_r syntax.txt /*g:filetype_r*
|
||||
g:ft_man_implementation filetype.txt /*g:ft_man_implementation*
|
||||
g:ftplugin_rust_source_path ft_rust.txt /*g:ftplugin_rust_source_path*
|
||||
g:gnat ft_ada.txt /*g:gnat*
|
||||
g:gnat.Error_Format ft_ada.txt /*g:gnat.Error_Format*
|
||||
@@ -7728,6 +7771,9 @@ g:html_use_input_for_pc syntax.txt /*g:html_use_input_for_pc*
|
||||
g:html_use_xhtml syntax.txt /*g:html_use_xhtml*
|
||||
g:html_whole_filler syntax.txt /*g:html_whole_filler*
|
||||
g:lf_shell_syntax syntax.txt /*g:lf_shell_syntax*
|
||||
g:lua_folding filetype.txt /*g:lua_folding*
|
||||
g:lua_subversion filetype.txt /*g:lua_subversion*
|
||||
g:lua_version filetype.txt /*g:lua_version*
|
||||
g:macvim_default_touchbar_characterpicker gui_mac.txt /*g:macvim_default_touchbar_characterpicker*
|
||||
g:macvim_default_touchbar_fullscreen gui_mac.txt /*g:macvim_default_touchbar_fullscreen*
|
||||
g:markdown_fenced_languages syntax.txt /*g:markdown_fenced_languages*
|
||||
@@ -7961,6 +8007,7 @@ get()-blob builtin.txt /*get()-blob*
|
||||
get()-dict builtin.txt /*get()-dict*
|
||||
get()-func builtin.txt /*get()-func*
|
||||
get()-list builtin.txt /*get()-list*
|
||||
get()-tuple builtin.txt /*get()-tuple*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
getbufinfo() builtin.txt /*getbufinfo()*
|
||||
getbufline() builtin.txt /*getbufline()*
|
||||
@@ -8270,6 +8317,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*
|
||||
@@ -8339,6 +8387,7 @@ hlexists() builtin.txt /*hlexists()*
|
||||
hlget() builtin.txt /*hlget()*
|
||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||
hlset() builtin.txt /*hlset()*
|
||||
hlyank-install usr_05.txt /*hlyank-install*
|
||||
holy-grail index.txt /*holy-grail*
|
||||
home intro.txt /*home*
|
||||
home-replace editing.txt /*home-replace*
|
||||
@@ -8743,6 +8792,7 @@ list-modification eval.txt /*list-modification*
|
||||
list-repeat windows.txt /*list-repeat*
|
||||
list2blob() builtin.txt /*list2blob()*
|
||||
list2str() builtin.txt /*list2str()*
|
||||
list2tuple() builtin.txt /*list2tuple()*
|
||||
listener_add() builtin.txt /*listener_add()*
|
||||
listener_flush() builtin.txt /*listener_flush()*
|
||||
listener_remove() builtin.txt /*listener_remove()*
|
||||
@@ -9169,6 +9219,7 @@ netrw-ctrl-h pi_netrw.txt /*netrw-ctrl-h*
|
||||
netrw-ctrl-l pi_netrw.txt /*netrw-ctrl-l*
|
||||
netrw-ctrl-r pi_netrw.txt /*netrw-ctrl-r*
|
||||
netrw-ctrl_l pi_netrw.txt /*netrw-ctrl_l*
|
||||
netrw-curdir pi_netrw.txt /*netrw-curdir*
|
||||
netrw-d pi_netrw.txt /*netrw-d*
|
||||
netrw-del pi_netrw.txt /*netrw-del*
|
||||
netrw-delete pi_netrw.txt /*netrw-delete*
|
||||
@@ -9563,6 +9614,7 @@ package-doc repeat.txt /*package-doc*
|
||||
package-documentation repeat.txt /*package-documentation*
|
||||
package-editorconfig usr_05.txt /*package-editorconfig*
|
||||
package-helptoc helphelp.txt /*package-helptoc*
|
||||
package-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*
|
||||
@@ -9644,6 +9696,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*
|
||||
@@ -9805,6 +9858,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*
|
||||
@@ -10476,6 +10530,7 @@ subscript eval.txt /*subscript*
|
||||
substitute() builtin.txt /*substitute()*
|
||||
substitute-CR version6.txt /*substitute-CR*
|
||||
substring eval.txt /*substring*
|
||||
subtuple eval.txt /*subtuple*
|
||||
suffixes cmdline.txt /*suffixes*
|
||||
suspend starting.txt /*suspend*
|
||||
swap-exists-choices usr_11.txt /*swap-exists-choices*
|
||||
@@ -10725,6 +10780,7 @@ t_ti term.txt /*t_ti*
|
||||
t_tp version4.txt /*t_tp*
|
||||
t_ts term.txt /*t_ts*
|
||||
t_ts_old version4.txt /*t_ts_old*
|
||||
t_tuple-variable eval.txt /*t_tuple-variable*
|
||||
t_typealias-variable eval.txt /*t_typealias-variable*
|
||||
t_u7 term.txt /*t_u7*
|
||||
t_ue term.txt /*t_ue*
|
||||
@@ -10961,6 +11017,7 @@ test_null_job() testing.txt /*test_null_job()*
|
||||
test_null_list() testing.txt /*test_null_list()*
|
||||
test_null_partial() testing.txt /*test_null_partial()*
|
||||
test_null_string() testing.txt /*test_null_string()*
|
||||
test_null_tuple() testing.txt /*test_null_tuple()*
|
||||
test_option_not_set() testing.txt /*test_option_not_set()*
|
||||
test_override() testing.txt /*test_override()*
|
||||
test_refcount() testing.txt /*test_refcount()*
|
||||
@@ -11046,6 +11103,13 @@ try-echoerr eval.txt /*try-echoerr*
|
||||
try-finally eval.txt /*try-finally*
|
||||
try-nested eval.txt /*try-nested*
|
||||
try-nesting eval.txt /*try-nesting*
|
||||
tuple eval.txt /*tuple*
|
||||
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-type vim9.txt /*tuple-type*
|
||||
tuple2list() builtin.txt /*tuple2list()*
|
||||
tutor usr_01.txt /*tutor*
|
||||
two-engines pattern.txt /*two-engines*
|
||||
type() builtin.txt /*type()*
|
||||
@@ -11243,6 +11307,7 @@ v:t_none eval.txt /*v:t_none*
|
||||
v:t_number eval.txt /*v:t_number*
|
||||
v:t_object eval.txt /*v:t_object*
|
||||
v:t_string eval.txt /*v:t_string*
|
||||
v:t_tuple eval.txt /*v:t_tuple*
|
||||
v:t_typealias eval.txt /*v:t_typealias*
|
||||
v:termblinkresp eval.txt /*v:termblinkresp*
|
||||
v:termrbgresp eval.txt /*v:termrbgresp*
|
||||
@@ -11382,6 +11447,7 @@ variable-categories vim9.txt /*variable-categories*
|
||||
variable-scope eval.txt /*variable-scope*
|
||||
variable-types vim9.txt /*variable-types*
|
||||
variables eval.txt /*variables*
|
||||
variadic-tuple vim9.txt /*variadic-tuple*
|
||||
various various.txt /*various*
|
||||
various-cmds various.txt /*various-cmds*
|
||||
various-functions usr_41.txt /*various-functions*
|
||||
|
||||
@@ -1166,7 +1166,7 @@ Mouse clicks can be mapped. The codes for mouse clicks are:
|
||||
|
||||
The X1 and X2 buttons refer to the extra buttons found on some mice. The
|
||||
'Microsoft Explorer' mouse has these buttons available to the right thumb.
|
||||
Currently X1 and X2 only work on Win32 and X11 environments.
|
||||
Currently X1 and X2 only work on MacVim, Win32, and X11 environments.
|
||||
|
||||
Examples: >
|
||||
:noremap <MiddleMouse> <LeftMouse><MiddleMouse>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Feb 13
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Feb 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1092,11 +1092,11 @@ Currently supported commands:
|
||||
Example in JSON: >
|
||||
["drop", "path/file.txt", {"ff": "dos"}]
|
||||
|
||||
A trick to have Vim send this escape sequence: >
|
||||
exe "set t_ts=\<Esc>]51; t_fs=\x07"
|
||||
let &titlestring = '["call","Tapi_TryThis",["hello",123]]'
|
||||
redraw
|
||||
set t_ts& t_fs&
|
||||
You can use |echoraw()| to make Vim send this escape sequence: >
|
||||
call echoraw("\<ESC>]51;[\"call\", \"Tapi_TryThis\", [\"hello\", 123]]\x07")
|
||||
call echoraw("\<Esc>]51;[\"drop\", \"README.md\"]\x07")
|
||||
Note: JSON requires double quotes around string values, hence those have to be
|
||||
escaped.
|
||||
|
||||
Rationale: Why not allow for any command or expression? Because that might
|
||||
create a security problem.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 9.1. Last change: 2024 Jul 18
|
||||
*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*
|
||||
@@ -364,6 +364,11 @@ test_null_string() *test_null_string()*
|
||||
|
||||
Return type: |String|
|
||||
|
||||
test_null_tuple() *test_null_tuple()*
|
||||
Return a |Tuple| that is null. Only useful for testing.
|
||||
|
||||
Return type: |Tuple|
|
||||
|
||||
test_option_not_set({name}) *test_option_not_set()*
|
||||
Reset the flag that indicates option {name} was set. Thus it
|
||||
looks like it still has the default value. Use like this: >
|
||||
|
||||
+16
-21
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Feb 02
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Mar 27
|
||||
|
||||
|
||||
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)
|
||||
@@ -4736,8 +4734,6 @@ Omni completion:
|
||||
Insert mode completion/expansion:
|
||||
- Is it possible to keep the complete menu open when calling complete()?
|
||||
(Prabir Shrestha, 2017 May 19, #1713)
|
||||
- When 'completeopt' has "noselect" does not insert a newline.
|
||||
(Lifepillar, 2017 Apr 23, #1653)
|
||||
- When complete() first argument is before where insert started and
|
||||
'backspace' is Vi compatible, the completion fails.
|
||||
(Hirohito Higashi, 2015 Feb 19)
|
||||
@@ -6278,5 +6274,4 @@ Far future and "big" extensions:
|
||||
are reflected in each Vim immediately. Could work with local files but
|
||||
also over the internet. See http://www.codingmonkeys.de/subethaedit/.
|
||||
|
||||
vim:tw=78:sw=4:sts=4:ts=8:noet:ft=help:norl:
|
||||
vim: set fo+=n :
|
||||
vim:tw=78:sw=4:sts=4:ts=8:noet:ft=help:norl:fo+=n:
|
||||
|
||||
+28
-3
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Mar 22
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -437,7 +437,7 @@ After restarting your Vim, the plugin is active and you can read about it at: >
|
||||
:h editorconfig.txt
|
||||
|
||||
|
||||
Adding comment package *comment-install* *package-comment*
|
||||
Adding the comment package *comment-install* *package-comment*
|
||||
|
||||
Load the plugin with this command: >
|
||||
packadd comment
|
||||
@@ -450,7 +450,7 @@ the package loaded. Once the package is loaded, read about it at: >
|
||||
:h comment.txt
|
||||
|
||||
|
||||
Adding nohlsearch package *nohlsearch-install* *package-nohlsearch*
|
||||
Adding the nohlsearch package *nohlsearch-install* *package-nohlsearch*
|
||||
|
||||
Load the plugin with this command: >
|
||||
packadd nohlsearch
|
||||
@@ -464,6 +464,31 @@ To disable the effect of the plugin after it has been loaded: >
|
||||
au! nohlsearch
|
||||
<
|
||||
|
||||
Adding the highlight-yank package *hlyank-install* *package-hlyank*
|
||||
|
||||
Load the plugin with this command: >
|
||||
packadd hlyank
|
||||
<
|
||||
This package briefly highlights the affected region of the last |yank|
|
||||
command. See |52.6| for a simplified implementation using the
|
||||
|getregionpos()| function.
|
||||
|
||||
The plugin understands the following configuration variables (the settings
|
||||
show the default values).
|
||||
|
||||
To specify a different highlighting group, use: >
|
||||
:let g:hlyank_hlgroup = 'IncSearch'
|
||||
<
|
||||
To use a different highlighting duration, use: >
|
||||
:let g:hlyank_duration = 300
|
||||
The unit is milliseconds, and the upper limit is 3000 ms. If you set a value
|
||||
higher than this, the highlighting duration will be 3000 ms.
|
||||
|
||||
To highlight in visual mode, use: >
|
||||
:let g:hlyank_invisual = v:true
|
||||
|
||||
To disable the effect of the plugin after it has been loaded: >
|
||||
au! hlyank
|
||||
|
||||
More information about packages can be found here: |packages|.
|
||||
|
||||
|
||||
+45
-3
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Feb 01
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -839,6 +839,30 @@ List manipulation: *list-functions*
|
||||
repeat() repeat a List multiple times
|
||||
flatten() flatten a List
|
||||
flattennew() flatten a copy of a List
|
||||
items() get List of List index-value pairs
|
||||
|
||||
Tuple manipulation: *tuple-functions*
|
||||
copy() make a shallow copy of a Tuple
|
||||
count() count number of times a value appears in a
|
||||
Tuple
|
||||
deepcopy() make a full copy of a Tuple
|
||||
empty() check if Tuple is empty
|
||||
foreach() apply function to Tuple items
|
||||
get() get an item without error for wrong index
|
||||
index() index of a value in a Tuple
|
||||
indexof() index in a Tuple where an expression is true
|
||||
items() get List of Tuple index-value pairs
|
||||
join() join Tuple items into a String
|
||||
len() number of items in a Tuple
|
||||
list2tuple() convert a list of items into a Tuple
|
||||
max() maximum value in a Tuple
|
||||
min() minimum value in a Tuple
|
||||
reduce() reduce a Tuple to a value
|
||||
repeat() repeat a Tuple multiple times
|
||||
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
|
||||
|
||||
Dictionary manipulation: *dict-functions*
|
||||
get() get an entry without an error for a wrong key
|
||||
@@ -1234,6 +1258,7 @@ Testing: *test-functions*
|
||||
test_null_list() return a null List
|
||||
test_null_partial() return a null Partial function
|
||||
test_null_string() return a null String
|
||||
test_null_tuple() return a null Tuple
|
||||
test_settime() set the time Vim uses internally
|
||||
test_setmouse() set the mouse position
|
||||
test_feedinput() add key sequence to input buffer
|
||||
@@ -1652,8 +1677,8 @@ More information about defining your own functions here: |user-functions|.
|
||||
==============================================================================
|
||||
*41.8* Lists and Dictionaries
|
||||
|
||||
So far we have used the basic types String and Number. Vim also supports two
|
||||
composite types: List and Dictionary.
|
||||
So far we have used the basic types String and Number. Vim also supports
|
||||
three composite types: List, Tuple and Dictionary.
|
||||
|
||||
A List is an ordered sequence of items. The items can be any kind of value,
|
||||
thus you can make a List of numbers, a List of Lists and even a List of mixed
|
||||
@@ -1754,6 +1779,23 @@ This looks into lines 1 to 50 (inclusive) and echoes any date found in there.
|
||||
|
||||
For further reading see |Lists|.
|
||||
|
||||
TUPLE
|
||||
|
||||
A Tuple is an immutable ordered sequence of items. An item can be of any
|
||||
type. Items can be accessed by their index number. To create a Tuple with
|
||||
three strings: >
|
||||
|
||||
var atuple = ('one', 'two', 'three')
|
||||
|
||||
The Tuple items are enclosed in parenthesis and separated by commas. To
|
||||
create an empty Tuple: >
|
||||
|
||||
var atuple = ()
|
||||
|
||||
The |:for| loop can be used to iterate over the items in a Tuple similar to a
|
||||
List.
|
||||
|
||||
For further reading see |Tuples|.
|
||||
|
||||
DICTIONARIES
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_52.txt* For Vim version 9.1. Last change: 2024 Oct 07
|
||||
*usr_52.txt* For Vim version 9.1. Last change: 2025 Mar 17
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -346,11 +346,8 @@ Have a look at the package located at $VIMRUNTIME/pack/dist/opt/comment/
|
||||
|
||||
HIGHLIGHT YANK PLUGIN
|
||||
|
||||
Here is an example for highlighting the yanked region. It makes use of the
|
||||
|getregionpos()| function, available since Vim 9.1.0446.
|
||||
|
||||
Copy the following example into a new file and place it into your plugin directory
|
||||
and it will be active next time you start Vim. |add-plugin|: >
|
||||
Vim comes with the highlight-yank plugin, written in Vim9 script
|
||||
|hlyank-install|, here is a simplified implementation: >vim
|
||||
|
||||
vim9script
|
||||
|
||||
@@ -362,11 +359,10 @@ and it will be active next time you start Vim. |add-plugin|: >
|
||||
endif
|
||||
var [beg, end] = [getpos("'["), getpos("']")]
|
||||
var type = v:event.regtype ?? 'v'
|
||||
var pos = getregionpos(beg, end, {type: type})
|
||||
var end_offset = (type == 'V' || v:event.inclusive) ? 1 : 0
|
||||
var pos = getregionpos(beg, end, {type: type, exclusive: false})
|
||||
var m = matchaddpos(hlgroup, pos->mapnew((_, v) => {
|
||||
var col_beg = v[0][2] + v[0][3]
|
||||
var col_end = v[1][2] + v[1][3] + end_offset
|
||||
var col_end = v[1][2] + v[1][3] + 1
|
||||
return [v[0][1], col_beg, col_end - col_beg]
|
||||
}))
|
||||
var winid = win_getid()
|
||||
@@ -376,6 +372,9 @@ and it will be active next time you start Vim. |add-plugin|: >
|
||||
|
||||
autocmd TextYankPost * HighlightedYank()
|
||||
<
|
||||
For the complete example, have a look into the package located at
|
||||
`$VIMRUNTIME/pack/dist/opt/hlyank/`
|
||||
|
||||
==============================================================================
|
||||
|
||||
Next chapter: |usr_90.txt| Installing Vim
|
||||
|
||||
+20
-32
@@ -1,4 +1,4 @@
|
||||
*usr_90.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*usr_90.txt* For Vim version 9.1. Last change: 2025 Mar 03
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -28,20 +28,18 @@ is installed in differs.
|
||||
used. But this may be different for your system. Try finding out where other
|
||||
packages are installed.
|
||||
When installing for a single user, you can use your home directory as the
|
||||
base. The files will be placed in subdirectories like "bin" and "shared/vim".
|
||||
base. The files will be placed in subdirectories like "bin" and "share/vim".
|
||||
|
||||
|
||||
FROM A PACKAGE
|
||||
|
||||
You can get precompiled binaries for many different UNIX systems. There is a
|
||||
long list with links on this page:
|
||||
Depending on the Unix/Linux system used, there may exist pre-compiled binary
|
||||
packages. You need to search for this. We used to keep a list for different
|
||||
UNIX systems, but that list was outdated so the list was removed.
|
||||
|
||||
http://www.vim.org/binaries.html
|
||||
|
||||
Volunteers maintain the binaries, so they are often out of date. It is a
|
||||
good idea to compile your own UNIX version from the source. Also, creating
|
||||
the editor from the source allows you to control which features are compiled.
|
||||
This does require a compiler though.
|
||||
It is a good idea to compile your own UNIX version from the source. Also,
|
||||
creating the editor from the source allows you to control which features are
|
||||
compiled. This does require a compiler though.
|
||||
|
||||
If you have a Linux distribution, the "vi" program is probably a minimal
|
||||
version of Vim. It doesn't do syntax highlighting, for example. Try finding
|
||||
@@ -52,23 +50,18 @@ FROM SOURCES
|
||||
|
||||
To compile and install Vim, you will need the following:
|
||||
|
||||
- A C compiler (GCC preferred)
|
||||
- The GZIP program (you can get it from www.gnu.org)
|
||||
- The Vim source and runtime archives
|
||||
- A C compiler (GCC or clang preferred)
|
||||
- git (optionally, only when cloning from github)
|
||||
- zip/unzip (to uncompress the archive)
|
||||
- The Vim source archives
|
||||
|
||||
To get the Vim archives, look in this file for a mirror near you, this should
|
||||
provide the fastest download:
|
||||
To download the Vim source, you can either clone it from the Github project
|
||||
page: >
|
||||
git clone https://github.com/vim/vim.git
|
||||
<
|
||||
or download the archive directly using:
|
||||
|
||||
ftp://ftp.vim.org/pub/vim/MIRRORS
|
||||
|
||||
Or use the home site ftp.vim.org, if you think it's fast enough. Go to the
|
||||
"unix" directory and you'll find a list of files there. The version number is
|
||||
embedded in the file name. You will want to get the most recent version.
|
||||
You can get the files for Unix in one big archive that contains everything:
|
||||
|
||||
vim-8.2.tar.bz2 ~
|
||||
|
||||
You need the bzip2 program to uncompress it.
|
||||
https://github.com/vim/vim/archive/refs/heads/master.zip
|
||||
|
||||
|
||||
COMPILING
|
||||
@@ -80,17 +73,12 @@ First create a top directory to work in, for example: >
|
||||
|
||||
Then unpack the archives there. You can unpack it like this: >
|
||||
|
||||
tar xf path/vim-8.2.tar.bz2
|
||||
unzip vim-master.zip
|
||||
|
||||
If your tar command doesn't support bz2 directly: >
|
||||
|
||||
bzip2 -d -c path/vim-8.2.tar.bz2 | tar xf -
|
||||
|
||||
Change "path" to where you have downloaded the file.
|
||||
If you are satisfied with getting the default features, and your environment
|
||||
is setup properly, you should be able to compile Vim with just this: >
|
||||
|
||||
cd vim82/src
|
||||
cd vim-master/src
|
||||
make
|
||||
|
||||
The make program will run configure and compile everything. Further on we
|
||||
|
||||
+78
-44
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Feb 11
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Mar 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -41553,10 +41553,21 @@ Enum support for Vim9 script |:enum|
|
||||
|
||||
Support for protected _new() method
|
||||
|
||||
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 ~
|
||||
------------------
|
||||
The new plugins |comment-install| and |nohlsearch-install| are included.
|
||||
The new packages |package-comment|, |package-nohlsearch| and |package-hlyank|
|
||||
are included.
|
||||
|
||||
Support for Wayland UI.
|
||||
|
||||
@@ -41569,12 +41580,13 @@ 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.
|
||||
|
||||
Adjusted default values ~
|
||||
-----------------------
|
||||
*changed-9.2*
|
||||
Changed~
|
||||
-------
|
||||
|
||||
Default values: ~
|
||||
- the default 'history' option value has been increased to 200 and removed
|
||||
from |defaults.vim|
|
||||
- the default 'backspace' option for Vim has been set to "indent,eol,start"
|
||||
@@ -41584,61 +41596,72 @@ Adjusted default values ~
|
||||
- the default value of the 'keyprotocol' option has been updated and support
|
||||
for the ghostty terminal emulator (using kitty protocol) has been added
|
||||
|
||||
*changed-9.2*
|
||||
Changed~
|
||||
-------
|
||||
- use 'smoothscroll' logic for CTRL-F and CTRL-B for pagewise scrolling
|
||||
- use 'smoothscroll' logic for CTRL-D and CTRL-U for half-pagewise scrolling
|
||||
- the default for 'commentstring' contains whitespace padding to have
|
||||
automatic comments look nicer |comment-install|
|
||||
- 'completeopt' is now a |global-local| option.
|
||||
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
|
||||
unsigned number based on whitespace in front of a minus sign.
|
||||
- allow to specify a priority when defining a new sign |:sign-define|
|
||||
- provide information about function arguments using the get(func, "arity")
|
||||
function |get()-func|
|
||||
- |:bwipe| also wipes jumplist and tagstack data
|
||||
- moving in the buffer list using |:bnext| and similar commands, behaves as
|
||||
documented and skips help buffers (if not run from a help buffer, else
|
||||
moves to the next/previous help buffer).
|
||||
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
|
||||
|getcompletion()|
|
||||
- allow to complete shell commands and files using the new shellcmdline
|
||||
completion type using |:command-complete| and |getcmdcomplpat()|
|
||||
- add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
|
||||
behaviour/inconsistency (see |d-special| and |cw|).
|
||||
- allow to specify additional attributes in the completion menu (allows to
|
||||
mark deprecated attributes from LSP server) |complete-items|
|
||||
- the regex engines match correctly case-insensitive multi-byte characters
|
||||
(and apply proper case folding)
|
||||
- the completed word and completion type are provided when handling the
|
||||
|CompleteDone| autocommand in the |v:event| dictionary
|
||||
- |complete_info()| returns the list of matches shown in the poppu menu via
|
||||
the "matches" key
|
||||
- New option value for 'completeopt':
|
||||
"nosort" - do not sort completion results
|
||||
"preinsert" - highlight to be inserted values
|
||||
- handle multi-line completion as expected
|
||||
- improved commandline completion for the |:hi| command
|
||||
- New option value for 'wildmode':
|
||||
"noselect" - do not auto select an entry in the wildmenu
|
||||
|
||||
Options: ~
|
||||
- the default for 'commentstring' contains whitespace padding to have
|
||||
automatic comments look nicer |comment-install|
|
||||
- 'completeopt' is now a |global-local| option.
|
||||
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
|
||||
unsigned number based on whitespace in front of a minus sign.
|
||||
- add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
|
||||
behaviour/inconsistency (see |d-special| and |cw|).
|
||||
- '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
|
||||
- 'pummaxwidth' maximum width for the completion popup menu
|
||||
|
||||
Ex commands: ~
|
||||
- allow to specify a priority when defining a new sign |:sign-define|
|
||||
- |:bwipe| also wipes jumplist and tagstack data
|
||||
- moving in the buffer list using |:bnext| and similar commands, behaves as
|
||||
documented and skips help buffers (if not run from a help buffer, else
|
||||
moves to the next/previous help buffer).
|
||||
- |:keeppatterns| preserves the last substitute pattern when used with |:s|
|
||||
|
||||
Functions: ~
|
||||
- provide information about function arguments using the get(func, "arity")
|
||||
function |get()-func|
|
||||
- |setqflist()| and |setloclist()| can optionally try to preserve the current
|
||||
selection in the quickfix list with the "u" action.
|
||||
- allow to pass local Vim script variables to python interpreter |py3eval()|
|
||||
- |getwininfo()| now also returns the "leftcol" property for a window
|
||||
- |v:stacktrace| The stack trace of the exception most recently caught and
|
||||
not finished
|
||||
- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
|
||||
behaviour, return type and whether or not to simplify the returned key
|
||||
|
||||
Others: ~
|
||||
- the regex engines match correctly case-insensitive multi-byte characters
|
||||
(and apply proper case folding)
|
||||
- the putty terminal is detected using an |TermResponse| autocommand in
|
||||
|defaults.vim| and Vim switches to a dark background
|
||||
- the |help-TOC| package is included to ease navigating the documentation.
|
||||
- an interactive tutor plugin has been included |vim-tutor-mode|, can be
|
||||
started via |:Tutor|
|
||||
- improve the |vimtutor| and add a second chapter for more advanced tips
|
||||
- allow to pass local Vim script variables to python interpreter |py3eval()|
|
||||
- |getwininfo()| now also returns the "leftcol" property for a window
|
||||
- 'rulerformat' now supports the |stl-%!| item
|
||||
- the completed word and completion type are provided when handling the
|
||||
|CompleteDone| autocommand in the |v:event| dictionary
|
||||
- |complete_info()| returns the list of matches shown in the poppu menu via
|
||||
the "matches" key
|
||||
- |v:stacktrace| The stack trace of the exception most recently caught and
|
||||
not finished
|
||||
- New option value for 'completeopt':
|
||||
"nosort" - do not sort completion results
|
||||
"preinsert" - highlight to be inserted values
|
||||
- add |dist#vim9#Launch()| and |dist#vim9#Open()| to the |vim-script-library|
|
||||
and decouple it from |netrw|
|
||||
- new digraph "APPROACHES THE LIMIT" using ".="
|
||||
- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
|
||||
behaviour, return type and whether or not to simplify the returned key
|
||||
- handle multi-line completion as expected
|
||||
- |CTRL-C| always closes the active |popup-window|.
|
||||
|
||||
*added-9.2*
|
||||
Added ~
|
||||
@@ -41662,11 +41685,14 @@ Functions: ~
|
||||
|getstacktrace()| get current stack trace of Vim scripts
|
||||
|id()| get unique identifier for a Dict, List, Object,
|
||||
Channel or Blob variable
|
||||
|list2tuple()| turn a List of items into a Tuple
|
||||
|matchbufline()| all the matches of a pattern in a buffer
|
||||
|matchstrlist()| all the matches of a pattern in a List of strings
|
||||
|ngettext()| lookup single/plural message translation
|
||||
|popup_setbuf()| switch to a different buffer in a popup
|
||||
|str2blob()| convert a List of strings into a blob
|
||||
|test_null_tuple()| return a null tuple
|
||||
|tuple2list()| turn a Tuple of items into a List
|
||||
|
||||
|
||||
Autocommands: ~
|
||||
@@ -41674,6 +41700,7 @@ Autocommands: ~
|
||||
|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|
|
||||
|TabClosedPre| before closing a |tabpage|.
|
||||
|TermResponseAll| after the terminal response to |t_RV| and others is
|
||||
received
|
||||
|WinNewPre| before creating a new window
|
||||
@@ -41681,7 +41708,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
|
||||
@@ -41690,11 +41718,17 @@ Highlighting: ~
|
||||
Commands: ~
|
||||
|
||||
|[r| and |]r| to move the cursor to previous/next rare word
|
||||
|
||||
Ex-Commands: ~
|
||||
|
||||
|:iput| like |:put| but adjust indent
|
||||
|:pbuffer| Edit buffer [N] from the buffer list in the preview
|
||||
window
|
||||
|
||||
Options: ~
|
||||
|
||||
'completefuzzycollect' Enable fuzzy collection of candiates for (some)
|
||||
|ins-completion| modes
|
||||
'completeitemalign' Order of |complete-items| in Insert mode completion
|
||||
popup
|
||||
'eventignorewin' autocommand events that are ignored in a window
|
||||
|
||||
+42
-6
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2025 Jan 21
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1001,6 +1001,7 @@ empty list and dict is falsy:
|
||||
string non-empty
|
||||
blob non-empty
|
||||
list non-empty (different from JavaScript)
|
||||
tuple non-empty (different from JavaScript)
|
||||
dictionary non-empty (different from JavaScript)
|
||||
func when there is a function name
|
||||
special true or v:true
|
||||
@@ -1048,6 +1049,7 @@ In Vim9 script one can use the following predefined values: >
|
||||
null_function
|
||||
null_job
|
||||
null_list
|
||||
null_tuple
|
||||
null_object
|
||||
null_partial
|
||||
null_string
|
||||
@@ -1467,15 +1469,16 @@ The following builtin types are supported:
|
||||
dict<{type}>
|
||||
job
|
||||
channel
|
||||
tuple<{type}>
|
||||
tuple<{type}, {type}, ...>
|
||||
tuple<...list<{type}>>
|
||||
tuple<{type}, ...list<{type}>>
|
||||
func
|
||||
func: {type}
|
||||
func({type}, ...)
|
||||
func({type}, ...): {type}
|
||||
void
|
||||
|
||||
Not supported yet:
|
||||
tuple<a: {type}, b: {type}, ...>
|
||||
|
||||
These types can be used in declarations, but no simple value will actually
|
||||
have the "void" type. Trying to use a void (e.g. a function without a
|
||||
return value) results in error *E1031* *E1186* .
|
||||
@@ -1483,6 +1486,32 @@ return value) results in error *E1031* *E1186* .
|
||||
There is no array type, use list<{type}> instead. For a list constant an
|
||||
efficient implementation is used that avoids allocating a lot of small pieces
|
||||
of memory.
|
||||
*tuple-type*
|
||||
A tuple type can be declared in more or less specific ways:
|
||||
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|.
|
||||
tuple<...list<number>> a variadic tuple with zero or more items of
|
||||
type |Number|.
|
||||
tuple<number, ...list<string>> a tuple with an item of type |Number| followed
|
||||
by zero or more items of type |String|.
|
||||
|
||||
Examples: >
|
||||
var myTuple: tuple<number> = (20,)
|
||||
var myTuple: tuple<number, string> = (30, 'vim')
|
||||
var myTuple: tuple<number, float, bool> = (40, 1.1, true)
|
||||
var myTuple: tuple<...list<string>> = ('a', 'b', 'c')
|
||||
var myTuple: tuple<number, ...list<string>> = (3, 'a', 'b', 'c')
|
||||
<
|
||||
*variadic-tuple* *E1539*
|
||||
A variadic tuple has zero or more items of the same type. The type of a
|
||||
variadic tuple must end with a list type. Examples: >
|
||||
var myTuple: tuple<...list<number>> = (1, 2, 3)
|
||||
var myTuple: tuple<...list<string>> = ('a', 'b', 'c')
|
||||
var myTuple: tuple<...list<bool>> = ()
|
||||
<
|
||||
*vim9-func-declaration* *E1005* *E1007*
|
||||
A partial and function can be declared in more or less specific ways:
|
||||
func any kind of function reference, no type
|
||||
@@ -1707,7 +1736,8 @@ argument type checking: >
|
||||
*E1211* *E1217* *E1218* *E1219* *E1220* *E1221*
|
||||
*E1222* *E1223* *E1224* *E1225* *E1226* *E1227*
|
||||
*E1228* *E1238* *E1250* *E1251* *E1252* *E1256*
|
||||
*E1297* *E1298* *E1301*
|
||||
*E1297* *E1298* *E1301* *E1528* *E1529* *E1530*
|
||||
*E1531* *E1534*
|
||||
Types are checked for most builtin functions to make it easier to spot
|
||||
mistakes.
|
||||
|
||||
@@ -1715,7 +1745,7 @@ Categories of variables, defaults and null handling ~
|
||||
*variable-categories* *null-variables*
|
||||
There are categories of variables:
|
||||
primitive number, float, boolean
|
||||
container string, blob, list, dict
|
||||
container string, blob, list, tuple, dict
|
||||
specialized function, job, channel, user-defined-object
|
||||
|
||||
When declaring a variable without an initializer, an explicit type must be
|
||||
@@ -1845,6 +1875,7 @@ An uninitialized variable is usually equal to null; it depends on its type:
|
||||
var s: string s == null
|
||||
var b: blob b != null ***
|
||||
var l: list<any> l != null ***
|
||||
var t: tuple<any> t != null ***
|
||||
var d: dict<any> d != null ***
|
||||
var f: func f == null
|
||||
var j: job j == null
|
||||
@@ -1855,6 +1886,7 @@ A variable initialized to empty equals null_<type>; but not null:
|
||||
var s2: string = "" == null_string != null
|
||||
var b2: blob = 0z == null_blob != null
|
||||
var l2: list<any> = [] == null_list != null
|
||||
var t2: tuple<any> = () == null_tuple != null
|
||||
var d2: dict<any> = {} == null_dict != null
|
||||
|
||||
NOTE: the specialized variables, like job, default to null value and have no
|
||||
@@ -1921,6 +1953,10 @@ There is one way to use both legacy and Vim9 syntax in one script file: >
|
||||
This allows for writing a script that takes advantage of the Vim9 script
|
||||
syntax if possible, but will also work on a Vim version without it.
|
||||
|
||||
Note that Vim9 syntax changed before Vim 9 so that scripts using the current
|
||||
syntax (such as "import from" instead of "import") might throw errors.
|
||||
To prevent these, a safer check could be for |v:version| >= 900 instead.
|
||||
|
||||
This can only work in two ways:
|
||||
1. The "if" statement evaluates to false, the commands up to `endif` are
|
||||
skipped and `vim9script` is then the first command actually executed.
|
||||
|
||||
+42
-18
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Feb 08
|
||||
" Last Change: 2025 Mar 18
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
@@ -51,8 +51,11 @@ func s:StarSetf(ft)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Vim help file
|
||||
au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
|
||||
" Vim help file, set ft explicitly, because 'modeline' might be off
|
||||
au BufNewFile,BufRead */doc/*.txt
|
||||
\ if getline('$') =~ '\(^\|\s\)vim:.*\<\(ft\|filetype\)=help\>'
|
||||
\| setf help
|
||||
\| endif
|
||||
|
||||
" Abaqus or Trasys
|
||||
au BufNewFile,BufRead *.inp call dist#ft#Check_inp()
|
||||
@@ -75,6 +78,9 @@ au BufNewFile,BufRead *.abc setf abc
|
||||
" ABEL
|
||||
au BufNewFile,BufRead *.abl setf abel
|
||||
|
||||
" ABNF
|
||||
au BufNewFile,BufRead *.abnf setf abnf
|
||||
|
||||
" AceDB
|
||||
au BufNewFile,BufRead *.wrm setf acedb
|
||||
|
||||
@@ -341,6 +347,11 @@ au BufNewFile,BufRead *.capnp setf capnp
|
||||
" Cgdb config file
|
||||
au BufNewFile,BufRead cgdbrc setf cgdbrc
|
||||
|
||||
" m17n database files. */m17n/* matches installed files, */.m17n.d/* matches
|
||||
" per-user config files, */m17n-db/* matches the git repo. (must be before
|
||||
" *.cs)
|
||||
au BufNewFile,BufRead */{m17n,.m17n.d,m17n-db}/*.{ali,cs,dir,flt,fst,lnm,mic,mim,tbl} setf m17ndb
|
||||
|
||||
" C#
|
||||
au BufNewFile,BufRead *.cs,*.csx,*.cake setf cs
|
||||
|
||||
@@ -384,6 +395,12 @@ au BufNewFile,BufRead *.cdl setf cdl
|
||||
" Conary Recipe
|
||||
au BufNewFile,BufRead *.recipe setf conaryrecipe
|
||||
|
||||
" Containers config files
|
||||
au BufNewFile,BufRead */containers/containers.conf{,.d/*.conf} setf toml
|
||||
au BufNewFile,BufRead */containers/containers.conf.modules/*.conf setf toml
|
||||
au BufNewFile,BufRead */containers/registries.conf{,.d/*.conf} setf toml
|
||||
au BufNewFile,BufRead */containers/storage.conf setf toml
|
||||
|
||||
" Corn config file
|
||||
au BufNewFile,BufRead *.corn setf corn
|
||||
|
||||
@@ -952,7 +969,7 @@ au BufNewFile,BufRead */etc/gitattributes setf gitattributes
|
||||
au BufNewFile,BufRead .gitignore,*.git/info/exclude setf gitignore
|
||||
au BufNewFile,BufRead */.config/git/ignore,*.prettierignore setf gitignore
|
||||
au BufNewFile,BufRead */.config/fd/ignore,.fdignore,.ignore setf gitignore
|
||||
au BufNewFile,BufRead .rgignore,.dockerignore setf gitignore
|
||||
au BufNewFile,BufRead .rgignore,.dockerignore,.containerignore setf gitignore
|
||||
au BufNewFile,BufRead .npmignore,.vscodeignore setf gitignore
|
||||
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
||||
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
|
||||
@@ -1797,7 +1814,7 @@ au BufNewFile,BufRead *.hook
|
||||
au BufNewFile,BufRead {.,}makepkg.conf setf sh
|
||||
|
||||
" Pacman log
|
||||
au BufNewFile,BufRead pacman.log setf pacmanlog
|
||||
au BufRead pacman.log* call s:StarSetf('pacmanlog')
|
||||
|
||||
" Pam conf
|
||||
au BufNewFile,BufRead */etc/pam.conf setf pamconf
|
||||
@@ -2347,8 +2364,8 @@ au BufNewFile,BufRead *.zsh,*.zsh-theme,*.zunit setf zsh
|
||||
" Salt state files
|
||||
au BufNewFile,BufRead *.sls setf salt
|
||||
|
||||
" Scheme, Supertux configuration, Lips.js history ("racket" patterns are now separate, see above)
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.sld,*.stsg,*/supertux2/config,.lips_repl_history setf scheme
|
||||
" Scheme, Supertux configuration, Lips.js history, Guile init file ("racket" patterns are now separate, see above)
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.sld,*.stsg,*/supertux2/config,.lips_repl_history,.guile setf scheme
|
||||
|
||||
" Screen RC
|
||||
au BufNewFile,BufRead .screenrc,screenrc setf screen
|
||||
@@ -2498,6 +2515,10 @@ au BufNewFile,BufRead *.class
|
||||
" SMCL
|
||||
au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl
|
||||
|
||||
" SPA JSON
|
||||
au BufNewFile,BufRead */pipewire/*.conf setf spajson
|
||||
au BufNewFile,BufRead */wireplumber/*.conf setf spajson
|
||||
|
||||
" Stored Procedures
|
||||
au BufNewFile,BufRead *.stp setf stp
|
||||
|
||||
@@ -2596,6 +2617,9 @@ au BufRead,BufNewFile *.ttl
|
||||
" Terminfo
|
||||
au BufNewFile,BufRead *.ti setf terminfo
|
||||
|
||||
" Tera
|
||||
au BufRead,BufNewFile *.tera setf tera
|
||||
|
||||
" Terraform variables
|
||||
au BufRead,BufNewFile *.tfvars setf terraform-vars
|
||||
|
||||
@@ -2640,7 +2664,7 @@ au BufNewFile,BufRead *.tla setf tla
|
||||
au BufNewFile,BufRead {.,}tmux*.conf setf tmux
|
||||
|
||||
" TOML
|
||||
au BufNewFile,BufRead *.toml setf toml
|
||||
au BufNewFile,BufRead *.toml,uv.lock setf toml
|
||||
|
||||
" TPP - Text Presentation Program
|
||||
au BufNewFile,BufRead *.tpp setf tpp
|
||||
@@ -3273,7 +3297,7 @@ au BufNewFile,BufRead XF86Config*
|
||||
\|call s:StarSetf('xf86conf')
|
||||
|
||||
" XKB
|
||||
au BufNewFile,BufRead */usr/share/X11/xkb/{compat,geometry,keycodes,symbols,types}/* call s:StarSetf('xkb')
|
||||
au BufNewFile,BufRead */{,.}xkb/{compat,geometry,keycodes,symbols,types}/* call s:StarSetf('xkb')
|
||||
|
||||
" X11 xmodmap
|
||||
au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
|
||||
@@ -3284,6 +3308,15 @@ au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd')
|
||||
" yum conf (close enough to dosini)
|
||||
au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini')
|
||||
|
||||
" Yarn lock
|
||||
au BufNewFile,BufRead yarn.lock setf yaml
|
||||
|
||||
" Zathurarc
|
||||
au BufNewFile,BufRead zathurarc setf zathurarc
|
||||
|
||||
" Rofi stylesheet
|
||||
au BufNewFile,BufRead *.rasi setf rasi
|
||||
|
||||
" Z-Shell script ending in a star
|
||||
au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
|
||||
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
|
||||
@@ -3329,15 +3362,6 @@ au filetypedetect BufNewFile,BufRead,StdinReadPost *
|
||||
\ setf FALLBACK conf |
|
||||
\ endif
|
||||
|
||||
" Yarn lock
|
||||
au BufNewFile,BufRead yarn.lock setf yaml
|
||||
|
||||
" Zathurarc
|
||||
au BufNewFile,BufRead zathurarc setf zathurarc
|
||||
|
||||
" Rofi stylesheet
|
||||
au BufNewFile,BufRead *.rasi setf rasi
|
||||
|
||||
" If the GUI is already running, may still need to install the Syntax menu.
|
||||
" Don't do it when the 'M' flag is included in 'guioptions'.
|
||||
if has("menu") && has("gui_running")
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
" Language: C#
|
||||
" Maintainer: Nick Jensen <nickspoon@gmail.com>
|
||||
" Former Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2022-11-16
|
||||
" 2024 Jan 14 by Vim Project (browsefilter)
|
||||
" Last Change: 2025-03-14
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/nickspoons/vim-cs
|
||||
|
||||
@@ -21,8 +20,11 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
" Set 'comments' to format dashed lists in comments.
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< fo<'
|
||||
setlocal cinoptions=J1
|
||||
|
||||
let b:undo_ftplugin = 'setl com< fo< cino<'
|
||||
|
||||
if exists('loaded_matchit') && !exists('b:match_words')
|
||||
" #if/#endif support included by default
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Dockerfile
|
||||
" Maintainer: Honza Pokorny <http://honza.ca>
|
||||
" Last Change: 2024 Dec 20
|
||||
" Last Change: 2025 Feb 21
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -11,6 +11,7 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
||||
let b:undo_ftplugin = "setl comments< commentstring<"
|
||||
|
||||
+26
-2
@@ -1,8 +1,10 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Go
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-go)
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-go is archived)
|
||||
" Last Change: 2014 Aug 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)
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
@@ -10,15 +12,37 @@ endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal formatprg=gofmt
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal keywordprg=:GoKeywordPrg
|
||||
|
||||
let b:undo_ftplugin = 'setl fo< com< cms<'
|
||||
command! -buffer -nargs=* GoKeywordPrg call s:GoKeywordPrg()
|
||||
|
||||
let b:undo_ftplugin = 'setl fo< com< cms< fp< kp<'
|
||||
\ . '| delcommand -buffer GoKeywordPrg'
|
||||
|
||||
if get(g:, 'go_recommended_style', 1)
|
||||
setlocal noexpandtab softtabstop=0 shiftwidth=0
|
||||
let b:undo_ftplugin ..= ' | setl et< sts< sw<'
|
||||
endif
|
||||
|
||||
if !exists('*' .. expand('<SID>') .. 'GoKeywordPrg')
|
||||
func! s:GoKeywordPrg()
|
||||
let temp_isk = &l:iskeyword
|
||||
setl iskeyword+=.
|
||||
try
|
||||
let cmd = 'go doc -C ' . shellescape(expand('%:h')) . ' ' . shellescape(expand('<cword>'))
|
||||
if has('gui_running') || has('nvim')
|
||||
exe 'hor term' cmd
|
||||
else
|
||||
exe '!' . cmd
|
||||
endif
|
||||
finally
|
||||
let &l:iskeyword = temp_isk
|
||||
endtry
|
||||
endfunc
|
||||
endif
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
+44
-22
@@ -5,13 +5,24 @@
|
||||
" Contributor: Dorai Sitaram <ds26@gte.com>
|
||||
" C.D. MacEachern <craig.daniel.maceachern@gmail.com>
|
||||
" Tyler Miller <tmillr@proton.me>
|
||||
" Last Change: 2024 Dec 03
|
||||
" Phạm Bình An <phambinhanctb2004@gmail.com>
|
||||
" Last Change: 2025 Feb 27
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" keep in sync with syntax/lua.vim
|
||||
if !exists("lua_version")
|
||||
" Default is lua 5.3
|
||||
let lua_version = 5
|
||||
let lua_subversion = 3
|
||||
elseif !exists("lua_subversion")
|
||||
" lua_version exists, but lua_subversion doesn't. In this case set it to 0
|
||||
let lua_subversion = 0
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
@@ -21,11 +32,11 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &l:define = '\<function\|\<local\%(\s\+function\)\='
|
||||
|
||||
" TODO: handle init.lua
|
||||
setlocal includeexpr=tr(v:fname,'.','/')
|
||||
let &l:include = '\<\%(\%(do\|load\)file\|require\)\s*('
|
||||
setlocal includeexpr=s:LuaInclude(v:fname)
|
||||
setlocal suffixesadd=.lua
|
||||
|
||||
let b:undo_ftplugin = "setlocal cms< com< def< fo< inex< sua<"
|
||||
let b:undo_ftplugin = "setl cms< com< def< fo< inc< inex< sua<"
|
||||
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_ignorecase = 0
|
||||
@@ -50,20 +61,31 @@ endif
|
||||
|
||||
if has("folding") && get(g:, "lua_folding", 0)
|
||||
setlocal foldmethod=expr
|
||||
setlocal foldexpr=LuaFold(v:lnum)
|
||||
setlocal foldexpr=s:LuaFold(v:lnum)
|
||||
let b:lua_lasttick = -1
|
||||
let b:undo_ftplugin ..= "|setl foldexpr< foldmethod< | unlet! b:lua_lasttick b:lua_foldlists"
|
||||
let b:undo_ftplugin ..= " | setl foldexpr< foldmethod< | unlet! b:lua_lasttick b:lua_foldlists"
|
||||
endif
|
||||
|
||||
|
||||
" The rest of the file needs to be :sourced only once per Vim session
|
||||
if exists('s:loaded_lua') || &cp
|
||||
if exists("s:loaded_lua") || &cp
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
finish
|
||||
endif
|
||||
let s:loaded_lua = 1
|
||||
|
||||
function s:LuaInclude(fname) abort
|
||||
let lua_ver = str2float(printf("%d.%02d", g:lua_version, g:lua_subversion))
|
||||
let fname = tr(a:fname, '.', '/')
|
||||
let paths = lua_ver >= 5.03 ? [fname .. ".lua", fname .. "/init.lua"] : [fname .. ".lua"]
|
||||
for path in paths
|
||||
if filereadable(path)
|
||||
return path
|
||||
endif
|
||||
endfor
|
||||
return fname
|
||||
endfunction
|
||||
|
||||
let s:patterns = [
|
||||
\ ['do', 'end'],
|
||||
\ ['if\s+.+\s+then', 'end'],
|
||||
@@ -75,35 +97,35 @@ let s:patterns = [
|
||||
\ ['local\s+function\s+.+', 'end'],
|
||||
\ ]
|
||||
|
||||
function! LuaFold(lnum) abort
|
||||
function s:LuaFold(lnum) abort
|
||||
if b:lua_lasttick == b:changedtick
|
||||
return b:lua_foldlists[a:lnum-1]
|
||||
return b:lua_foldlists[a:lnum - 1]
|
||||
endif
|
||||
let b:lua_lasttick = b:changedtick
|
||||
|
||||
let b:lua_foldlists = []
|
||||
let foldlist = []
|
||||
let buf = getline(1, '$')
|
||||
let buf = getline(1, "$")
|
||||
for line in buf
|
||||
for t in s:patterns
|
||||
let tagopen = '\v^\s*'..t[0]..'\s*$'
|
||||
let tagclose = '\v^\s*'..t[1]..'\s*$'
|
||||
let tagopen = '\v^\s*' .. t[0] ..'\s*$'
|
||||
let tagclose = '\v^\s*' .. t[1] ..'\s*$'
|
||||
if line =~# tagopen
|
||||
call add(foldlist, t)
|
||||
break
|
||||
call add(foldlist, t)
|
||||
break
|
||||
elseif line =~# tagclose
|
||||
if len(foldlist) > 0 && line =~# foldlist[-1][1]
|
||||
call remove(foldlist, -1)
|
||||
else
|
||||
let foldlist = []
|
||||
endif
|
||||
break
|
||||
if len(foldlist) > 0 && line =~# foldlist[-1][1]
|
||||
call remove(foldlist, -1)
|
||||
else
|
||||
let foldlist = []
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
call add(b:lua_foldlists, len(foldlist))
|
||||
endfor
|
||||
|
||||
return lua_foldlists[a:lnum-1]
|
||||
return lua_foldlists[a:lnum - 1]
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
" Vim filetype plugin
|
||||
" Language: m17n database
|
||||
" Maintainer: David Mandelberg <david@mandelberg.org>
|
||||
" Last Change: 2025 Feb 21
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:;;;,:;;,:;
|
||||
setlocal commentstring=;\ %s
|
||||
setlocal iskeyword=!-~,@,^34,^(,^),^92
|
||||
setlocal lisp
|
||||
setlocal lispwords=
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< commentstring< iskeyword< lisp< lispwords<"
|
||||
@@ -6,6 +6,7 @@
|
||||
" Last Change: 2024 Jun 06 (disabled the q mapping, #8210)
|
||||
" 2024 Jul 06 (use nnoremap, #15130)
|
||||
" 2024 Aug 23 (improve the <Plug>ManBS mapping, #15547, #15556)
|
||||
" 2025 Mar 09 (improve :Man completion for man-db, #16843)
|
||||
|
||||
" To make the ":Man" command available before editing a manual page, source
|
||||
" this script from your startup vimrc file.
|
||||
@@ -24,6 +25,14 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
if !exists('g:ft_man_implementation')
|
||||
if executable('mandb') > 0
|
||||
let g:ft_man_implementation = 'man-db'
|
||||
else
|
||||
let g:ft_man_implementation = ''
|
||||
endif
|
||||
endif
|
||||
|
||||
if &filetype == "man"
|
||||
" Allow hyphen, plus, colon, dot, and commercial at in manual page name.
|
||||
" Parentheses are not here but in dist#man#PreGetPage()
|
||||
@@ -60,11 +69,19 @@ if &filetype == "man"
|
||||
endif
|
||||
|
||||
if exists(":Man") != 2
|
||||
com -nargs=+ -complete=shellcmd Man call dist#man#GetPage(<q-mods>, <f-args>)
|
||||
if g:ft_man_implementation ==# 'man-db'
|
||||
com -nargs=+ -complete=customlist,dist#man#ManDbComplete Man call dist#man#GetPage(<q-mods>, <f-args>)
|
||||
else
|
||||
com -nargs=+ -complete=shellcmd Man call dist#man#GetPage(<q-mods>, <f-args>)
|
||||
endif
|
||||
nnoremap <Leader>K :call dist#man#PreGetPage(0)<CR>
|
||||
nnoremap <Plug>ManPreGetPage :call dist#man#PreGetPage(0)<CR>
|
||||
endif
|
||||
|
||||
if exists(":ManReload") != 2
|
||||
com ManReload call dist#man#Reload()
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
" Vim ftplugin file
|
||||
" Language: Oracle Procedural SQL (PL/SQL)
|
||||
" Maintainer: Lee Lindley (lee dot lindley at gmail dot com)
|
||||
" Previous Maintainer: Jeff Lanzarotta (jefflanzarotta at yahoo dot com)
|
||||
" Previous Maintainer: C. Laurence Gonsalves (clgonsal@kami.com)
|
||||
" URL: https://github.com/lee-lindley/vim_plsql_syntax
|
||||
" Last Change: Feb 19, 2025
|
||||
" History: Enno Konfekt move handling of optional syntax folding from syntax
|
||||
" file to ftplugin
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
if get(g:,"plsql_fold",0) == 1
|
||||
setlocal foldmethod=syntax
|
||||
let b:undo_ftplugin = "setl fdm< "
|
||||
endif
|
||||
@@ -6,6 +6,7 @@
|
||||
" Eisuke Kawashima
|
||||
" Last Change: 2024 Sep 19 by Vim Project (compiler shellcheck)
|
||||
" 2024 Dec 29 by Vim Project (improve setting shellcheck compiler)
|
||||
" 2025 Mar 09 by Vim Project (set b:match_skip)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -30,7 +31,8 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ s:sol .. '\%(for\|while\)\>:' .. s:sol .. 'done\>,' ..
|
||||
\ s:sol .. 'case\>:' .. s:sol .. 'esac\>'
|
||||
unlet s:sol
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
|
||||
let b:match_skip = "synIDattr(synID(line('.'),col('.'),0),'name') =~ 'shSnglCase'"
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:match_skip"
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Sieve filtering language input file
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2025 Feb 20
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
let b:undo_ftplugin = "setl com< cms< fo< ff<"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" https://datatracker.ietf.org/doc/html/rfc5228#section-2.2 says
|
||||
" "newlines (CRLF, never just CR or LF)"
|
||||
setlocal fileformat=dos
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin
|
||||
" Language: SPA JSON
|
||||
" Maintainer: David Mandelberg <david@mandelberg.org>
|
||||
" Last Change: 2025 Mar 22
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:###,:##,:#
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< commentstring<"
|
||||
@@ -0,0 +1,30 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Tera
|
||||
" Maintainer: Muntasir Mahmud <muntasir.joypurhat@gmail.com>
|
||||
" Last Change: 2025 Mar 08
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal autoindent
|
||||
|
||||
setlocal commentstring={#\ %s\ #}
|
||||
setlocal comments=s:{#,e:#}
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words = '{#:##\|#},{% *if:{% *else\>:{% *elif\>:{% *endif %},{% *for\>:{% *endfor %},{% *macro\>:{% *endmacro %},{% *block\>:{% *endblock %},{% *filter\>:{% *endfilter %},{% *set\>:{% *endset %},{% *raw\>:{% *endraw %},{% *with\>:{% *endwith %}'
|
||||
endif
|
||||
|
||||
setlocal includeexpr=substitute(v:fname,'\\([^.]*\\)$','\\1','g')
|
||||
setlocal suffixesadd=.tera
|
||||
|
||||
setlocal expandtab
|
||||
setlocal shiftwidth=2
|
||||
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"
|
||||
+80
-29
@@ -1,9 +1,11 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Vim
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2025 Jan 06
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Contributors: Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" Language: Vim
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2025 Mar 05
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Contributors: Riley Bruins <ribru17@gmail.com> ('commentstring'),
|
||||
" @Konfekt
|
||||
" @tpope (s:Help())
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -18,20 +20,21 @@ set cpo&vim
|
||||
|
||||
if !exists('*VimFtpluginUndo')
|
||||
func VimFtpluginUndo()
|
||||
setl fo< isk< com< tw< commentstring< include< define<
|
||||
setl fo< isk< com< tw< commentstring< include< define< keywordprg<
|
||||
sil! delc -buffer VimKeywordPrg
|
||||
if exists('b:did_add_maps')
|
||||
silent! nunmap <buffer> [[
|
||||
silent! vunmap <buffer> [[
|
||||
silent! xunmap <buffer> [[
|
||||
silent! nunmap <buffer> ]]
|
||||
silent! vunmap <buffer> ]]
|
||||
silent! xunmap <buffer> ]]
|
||||
silent! nunmap <buffer> []
|
||||
silent! vunmap <buffer> []
|
||||
silent! xunmap <buffer> []
|
||||
silent! nunmap <buffer> ][
|
||||
silent! vunmap <buffer> ][
|
||||
silent! xunmap <buffer> ][
|
||||
silent! nunmap <buffer> ]"
|
||||
silent! vunmap <buffer> ]"
|
||||
silent! xunmap <buffer> ]"
|
||||
silent! nunmap <buffer> ["
|
||||
silent! vunmap <buffer> ["
|
||||
silent! xunmap <buffer> ["
|
||||
endif
|
||||
unlet! b:match_ignorecase b:match_words b:match_skip b:did_add_maps
|
||||
endfunc
|
||||
@@ -48,7 +51,53 @@ setlocal fo-=t fo+=croql
|
||||
setlocal isk+=#
|
||||
|
||||
" Use :help to lookup the keyword under the cursor with K.
|
||||
setlocal keywordprg=:help
|
||||
" Distinguish between commands, options and functions.
|
||||
if !exists("*" .. expand("<SID>") .. "Help")
|
||||
function s:Help(topic) abort
|
||||
let topic = a:topic
|
||||
|
||||
if get(g:, 'syntax_on', 0)
|
||||
let syn = synIDattr(synID(line('.'), col('.'), 1), 'name')
|
||||
if syn ==# 'vimFuncName'
|
||||
return topic.'()'
|
||||
elseif syn ==# 'vimOption'
|
||||
return "'".topic."'"
|
||||
elseif syn ==# 'vimUserAttrbKey'
|
||||
return ':command-'.topic
|
||||
elseif syn =~# 'vimCommand'
|
||||
return ':'.topic
|
||||
endif
|
||||
endif
|
||||
|
||||
let col = col('.') - 1
|
||||
while col && getline('.')[col] =~# '\k'
|
||||
let col -= 1
|
||||
endwhile
|
||||
let pre = col == 0 ? '' : getline('.')[0 : col]
|
||||
|
||||
let col = col('.') - 1
|
||||
while col && getline('.')[col] =~# '\k'
|
||||
let col += 1
|
||||
endwhile
|
||||
let post = getline('.')[col : -1]
|
||||
|
||||
if pre =~# '^\s*:\=$'
|
||||
return ':'.topic
|
||||
elseif pre =~# '\<v:$'
|
||||
return 'v:'.topic
|
||||
elseif pre =~# '<$'
|
||||
return '<'.topic.'>'
|
||||
elseif pre =~# '\\$'
|
||||
return '/\'.topic
|
||||
elseif topic ==# 'v' && post =~# ':\w\+'
|
||||
return 'v'.matchstr(post, ':\w\+')
|
||||
else
|
||||
return topic
|
||||
endif
|
||||
endfunction
|
||||
endif
|
||||
command! -buffer -nargs=1 VimKeywordPrg :exe 'help' s:Help(<q-args>)
|
||||
setlocal keywordprg=:VimKeywordPrg
|
||||
|
||||
" Comments starts with # in Vim9 script. We have to guess which one to use.
|
||||
if "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>'
|
||||
@@ -77,19 +126,19 @@ if !exists("no_plugin_maps") && !exists("no_vim_maps")
|
||||
|
||||
" Move around functions.
|
||||
nnoremap <silent><buffer> [[ m':call search('^\s*\(fu\%[nction]\\|\(export\s\+\)\?def\)\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|\(export\s\+\)\?def\)\>', "bW")<CR>
|
||||
xnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|\(export\s\+\)\?def\)\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ]] m':call search('^\s*\(fu\%[nction]\\|\(export\s\+\)\?def\)\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|\(export\s\+\)\?def\)\>', "W")<CR>
|
||||
xnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|\(export\s\+\)\?def\)\>', "W")<CR>
|
||||
nnoremap <silent><buffer> [] m':call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "bW")<CR>
|
||||
xnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ][ m':call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "W")<CR>
|
||||
xnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "W")<CR>
|
||||
|
||||
" Move around comments
|
||||
nnoremap <silent><buffer> ]" :call search('\%(^\s*".*\n\)\@<!\%(^\s*"\)', "W")<CR>
|
||||
vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\@<!\%(^\s*"\)', "W")<CR>
|
||||
xnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\@<!\%(^\s*"\)', "W")<CR>
|
||||
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
xnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
endif
|
||||
|
||||
" Let the matchit plugin know what items can be matched.
|
||||
@@ -101,15 +150,15 @@ if exists("loaded_matchit")
|
||||
" func name
|
||||
" require a parenthesis following, then there can be an "endfunc".
|
||||
let b:match_words =
|
||||
\ '\<\%(fu\%[nction]\|def\)!\=\s\+\S\+\s*(:\%(\%(^\||\)\s*\)\@<=\<retu\%[rn]\>:\%(\%(^\||\)\s*\)\@<=\<\%(endf\%[unction]\|enddef\)\>,' ..
|
||||
\ '\<\%(wh\%[ile]\|for\)\>:\%(\%(^\||\)\s*\)\@<=\<brea\%[k]\>:\%(\%(^\||\)\s*\)\@<=\<con\%[tinue]\>:\%(\%(^\||\)\s*\)\@<=\<end\%(w\%[hile]\|fo\%[r]\)\>,' ..
|
||||
\ '\<if\>:\%(\%(^\||\)\s*\)\@<=\<el\%[seif]\>:\%(\%(^\||\)\s*\)\@<=\<en\%[dif]\>,' ..
|
||||
\ '{:},' ..
|
||||
\ '\<try\>:\%(\%(^\||\)\s*\)\@<=\<cat\%[ch]\>:\%(\%(^\||\)\s*\)\@<=\<fina\%[lly]\>:\%(\%(^\||\)\s*\)\@<=\<endt\%[ry]\>,' ..
|
||||
\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' ..
|
||||
\ '\<class\>:\<endclass\>,' ..
|
||||
\ '\<interface\>:\<endinterface\>,' ..
|
||||
\ '\<enum\>:\<endenum\>'
|
||||
\ '\<\%(fu\%[nction]\|def\)!\=\s\+\S\+\s*(:\%(\%(^\||\)\s*\)\@<=\<retu\%[rn]\>:\%(\%(^\||\)\s*\)\@<=\<\%(endf\%[unction]\|enddef\)\>,' ..
|
||||
\ '\<\%(wh\%[ile]\|for\)\>:\%(\%(^\||\)\s*\)\@<=\<brea\%[k]\>:\%(\%(^\||\)\s*\)\@<=\<con\%[tinue]\>:\%(\%(^\||\)\s*\)\@<=\<end\%(w\%[hile]\|fo\%[r]\)\>,' ..
|
||||
\ '\<if\>:\%(\%(^\||\)\s*\)\@<=\<el\%[seif]\>:\%(\%(^\||\)\s*\)\@<=\<en\%[dif]\>,' ..
|
||||
\ '{:},' ..
|
||||
\ '\<try\>:\%(\%(^\||\)\s*\)\@<=\<cat\%[ch]\>:\%(\%(^\||\)\s*\)\@<=\<fina\%[lly]\>:\%(\%(^\||\)\s*\)\@<=\<endt\%[ry]\>,' ..
|
||||
\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' ..
|
||||
\ '\<class\>:\<endclass\>,' ..
|
||||
\ '\<interface\>:\<endinterface\>,' ..
|
||||
\ '\<enum\>:\<endenum\>'
|
||||
|
||||
" Ignore syntax region commands and settings, any 'en*' would clobber
|
||||
" if-endif.
|
||||
@@ -117,7 +166,7 @@ if exists("loaded_matchit")
|
||||
" - au! FileType javascript syntax region foldBraces start=/{/ end=/}/ …
|
||||
" Also ignore here-doc and dictionary keys (vimVar).
|
||||
let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
|
||||
\ =~? "comment\\|string\\|vimSynReg\\|vimSet\\|vimLetHereDoc\\|vimVar"'
|
||||
\ =~? "comment\\|string\\|vimSynReg\\|vimSet\\|vimLetHereDoc\\|vimVar"'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
@@ -125,3 +174,5 @@ unlet s:cpo_save
|
||||
|
||||
" removed this, because 'cpoptions' is a global option.
|
||||
" setlocal cpo+=M " makes \%( match \)
|
||||
"
|
||||
" vim: sw=2 et
|
||||
|
||||
+10
-1
@@ -10,7 +10,16 @@ VIMRUNTIME = ..
|
||||
# If a test succeeds a testdir/*.out file will be written.
|
||||
# If a test fails a testdir/*.fail file will be written.
|
||||
test:
|
||||
VIMRUNTIME=$(VIMRUNTIME) $(VIMPROG) --clean --not-a-term -u testdir/runtest.vim
|
||||
VIMRUNTIME=$(VIMRUNTIME) $(VIMPROG) --clean --not-a-term -u testdir/runtest.vim || \
|
||||
{ \
|
||||
retval=$$?; \
|
||||
for fail in testdir/*.fail; do \
|
||||
[ -f "$$fail" ] || continue; \
|
||||
echo "$$fail:"; \
|
||||
cat "$$fail"; \
|
||||
done; \
|
||||
exit $$retval; \
|
||||
}
|
||||
@echo "INDENT TESTS: DONE"
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
" Vim indent file
|
||||
" Language: m17n database
|
||||
" Maintainer: David Mandelberg <david@mandelberg.org>
|
||||
" Last Change: 2025 Feb 21
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal autoindent
|
||||
setlocal nosmartindent
|
||||
|
||||
let b:undo_indent = "setlocal autoindent< smartindent<"
|
||||
+40
-17
@@ -7,6 +7,7 @@
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-sh-indent
|
||||
" Changelog:
|
||||
" 20250318 - Detect local arrays in functions
|
||||
" 20241411 - Detect dash character in function keyword for
|
||||
" bash mode (issue #16049)
|
||||
" 20190726 - Correctly skip if keywords in syntax comments
|
||||
@@ -73,6 +74,8 @@ function! s:indent_value(option)
|
||||
endfunction
|
||||
|
||||
function! GetShIndent()
|
||||
let mode = mode()
|
||||
|
||||
let curline = getline(v:lnum)
|
||||
let lnum = prevnonblank(v:lnum - 1)
|
||||
if lnum == 0
|
||||
@@ -86,8 +89,11 @@ function! GetShIndent()
|
||||
|
||||
" Check contents of previous lines
|
||||
" should not apply to e.g. commented lines
|
||||
if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>' ||
|
||||
\ (&ft is# 'zsh' && line =~ '^\s*\<\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>')
|
||||
|
||||
if s:start_block(line)
|
||||
let ind += s:indent_value('default')
|
||||
elseif line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>\($\|\s\)' ||
|
||||
\ (&ft is# 'zsh' && line =~ '^\s*\<\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>\($\|\s\)')
|
||||
if !s:is_end_expression(line)
|
||||
let ind += s:indent_value('default')
|
||||
endif
|
||||
@@ -111,7 +117,7 @@ function! GetShIndent()
|
||||
let ind += s:indent_value('continuation-line')
|
||||
endif
|
||||
elseif s:end_block(line) && !s:start_block(line)
|
||||
let ind = indent(lnum)
|
||||
let ind -= s:indent_value('default')
|
||||
elseif pnum != 0 &&
|
||||
\ s:is_continuation_line(pline) &&
|
||||
\ !s:end_block(curline) &&
|
||||
@@ -122,7 +128,7 @@ function! GetShIndent()
|
||||
while !s:is_empty(getline(i)) && i > pnum
|
||||
let i -= 1
|
||||
endw
|
||||
if i == pnum
|
||||
if i == pnum && (s:is_continuation_line(line) || pline =~ '{\s*\(#.*\)\=$')
|
||||
let ind += ind2
|
||||
else
|
||||
let ind = ind2
|
||||
@@ -136,7 +142,11 @@ function! GetShIndent()
|
||||
" TODO: should we do the same for other "end" lines?
|
||||
if curline =~ '^\s*\%(fi\);\?\s*\%(#.*\)\=$'
|
||||
let ind = indent(v:lnum)
|
||||
let previous_line = searchpair('\<if\>', '', '\<fi\>\zs', 'bnW', 'synIDattr(synID(line("."),col("."), 1),"name") =~? "comment\\|quote"')
|
||||
" in insert mode, try to place the cursor after the fi statement
|
||||
let endp = '\<fi\>' .. (mode ==? 'i' ? '\zs' : '')
|
||||
let startp = '^\s*\<if\>'
|
||||
let previous_line = searchpair(startp, '', endp , 'bnW',
|
||||
\ 'synIDattr(synID(line("."),col("."), 1),"name") =~? "comment\\|quote\\|option"')
|
||||
if previous_line > 0
|
||||
let ind = indent(previous_line)
|
||||
endif
|
||||
@@ -167,7 +177,13 @@ function! GetShIndent()
|
||||
elseif match(map(synstack(v:lnum, 1), 'synIDattr(v:val, "name")'), '\c\mheredoc') > -1
|
||||
return indent(v:lnum)
|
||||
elseif s:is_comment(line) && s:is_empty(getline(v:lnum-1))
|
||||
return indent(v:lnum)
|
||||
if s:is_in_block(v:lnum)
|
||||
" return indent of line in same block
|
||||
return indent(lnum)
|
||||
else
|
||||
" use indent of current line
|
||||
return indent(v:lnum)
|
||||
endif
|
||||
endif
|
||||
|
||||
return ind > 0 ? ind : 0
|
||||
@@ -203,7 +219,18 @@ function! s:is_function_definition(line)
|
||||
endfunction
|
||||
|
||||
function! s:is_array(line)
|
||||
return a:line =~ '^\s*\<\k\+\>=('
|
||||
return a:line =~ '^\s*\(\(declare\|typeset\|local\)\s\+\(-[Aalrtu]\+\s\+\)\?\)\?\<\k\+\>=('
|
||||
endfunction
|
||||
|
||||
function! s:is_in_block(line)
|
||||
" checks whether a:line is whithin a
|
||||
" block e.g. a shell function
|
||||
" foo() {
|
||||
" ..
|
||||
" }
|
||||
let prevline = searchpair('{', '', '}', 'bnW', 'synIDattr(synID(line("."),col("."), 1),"name") =~? "comment\\|quote"')
|
||||
let nextline = searchpair('{', '', '}', 'nW', 'synIDattr(synID(line("."),col("."), 1),"name") =~? "comment\\|quote"')
|
||||
return a:line > prevline && a:line < nextline
|
||||
endfunction
|
||||
|
||||
function! s:is_case_label(line, pnum)
|
||||
@@ -280,15 +307,7 @@ function! s:end_block(line)
|
||||
endfunction
|
||||
|
||||
function! s:start_block(line)
|
||||
return a:line =~ '{\s*\(#.*\)\?$'
|
||||
endfunction
|
||||
|
||||
function! s:find_start_block(lnum)
|
||||
let i = a:lnum
|
||||
while i > 1 && !s:start_block(getline(i))
|
||||
let i -= 1
|
||||
endwhile
|
||||
return i
|
||||
return a:line =~ '^[^#]*[{(]\s*\(#.*\)\?$'
|
||||
endfunction
|
||||
|
||||
function! s:is_comment(line)
|
||||
@@ -300,7 +319,11 @@ function! s:is_end_expression(line)
|
||||
endfunction
|
||||
|
||||
function! s:is_bash()
|
||||
return get(g:, 'is_bash', 0) || get(b:, 'is_bash', 0)
|
||||
if &ft is# 'bash' || getline(1) is# '#!/bin/bash'
|
||||
return v:true
|
||||
else
|
||||
return get(g:, 'is_bash', 0) || get(b:, 'is_bash', 0)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
" Vim indent file
|
||||
" Language: SPA JSON
|
||||
" Maintainer: David Mandelberg <david@mandelberg.org>
|
||||
" Last Change: 2025 Mar 22
|
||||
|
||||
runtime! indent/json.vim
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
" Maintainer: Artem Chuprina <ran@ran.pp.ru>
|
||||
" Last Changed: 2001 Jun 23
|
||||
" 2025 Mar 17 by The Vim Project (added /, #16912)
|
||||
|
||||
" All characters are given literally, conversion to another encoding (e.g.,
|
||||
" UTF-8) should work.
|
||||
@@ -85,3 +86,4 @@ $ ;
|
||||
& ?
|
||||
/ .
|
||||
? ,
|
||||
\| /
|
||||
|
||||
+136
-105
@@ -1,8 +1,6 @@
|
||||
" Menu Translations: Italian / Italiano
|
||||
" Maintainer: Antonio Colombo <azc100@gmail.com>
|
||||
" Vlad Sandrini <vlad.gently@gmail.com>
|
||||
" Luciano Montanaro <mikelima@cirulla.net>
|
||||
" Last Change: 2023 Aug 22
|
||||
" Last Change: 2025 Mar 13
|
||||
" Original translations
|
||||
|
||||
" Quit when menu translations have already been done.
|
||||
@@ -10,7 +8,7 @@ if exists("did_menu_trans")
|
||||
finish
|
||||
endif
|
||||
let did_menu_trans = 1
|
||||
let s:keepcpo= &cpo
|
||||
let s:cpo_save= &cpo
|
||||
set cpo&vim
|
||||
|
||||
scriptencoding iso-8859-1
|
||||
@@ -24,7 +22,7 @@ menut &How-To\ Links Co&Me\.\.\.
|
||||
menut &Find\.\.\. &Cerca\.\.\.
|
||||
menut &Credits Cr&Editi
|
||||
menut Co&pying C&Opie
|
||||
menut &Sponsor/Register &Sponsor/Registrazione
|
||||
menut &Sponsor/Register &Sponsor/Registrazione
|
||||
menut O&rphans O&Rfani
|
||||
menut &Version &Versione
|
||||
menut &About &Intro
|
||||
@@ -41,7 +39,7 @@ menut &New<Tab>:enew &Nuovo<Tab>:enew
|
||||
menut &Close<Tab>:close &Chiudi<Tab>:close
|
||||
menut &Save<Tab>:w &Salva<Tab>:w
|
||||
menut Save\ &As\.\.\.<Tab>:sav Salva\ &Con\ nome\.\.\.<Tab>:sav
|
||||
menut Split\ &Diff\ with\.\.\. &Differenza\ con\.\.\.
|
||||
menut Split\ &Diff\ With\.\.\. &Differenza\ con\.\.\.
|
||||
menut Split\ Patched\ &By\.\.\. Patc&H\ da\.\.\.
|
||||
menut &Print S&tampa
|
||||
menut Sa&ve-Exit<Tab>:wqa Sa&Lva\ ed\ esci<Tab>:wqa
|
||||
@@ -59,12 +57,12 @@ menut &Paste<Tab>"+gP &Incolla<Tab>"+gP
|
||||
menut Put\ &Before<Tab>[p &Metti\ davanti<Tab>[p
|
||||
menut Put\ &After<Tab>]p M&Etti\ dietro<Tab>]p
|
||||
menut &Delete<Tab>x Cance&Lla<Tab>x
|
||||
menut &Select\ all<Tab>ggVG Seleziona\ &Tutto<Tab>ggVG
|
||||
menut &Select\ All<Tab>ggVG Seleziona\ &Tutto<Tab>ggVG
|
||||
menut &Find\.\.\. &Cerca\.\.\.
|
||||
menut &Find\.\.\.<Tab>/ &Cerca\.\.\.<Tab>/
|
||||
menut &Find<Tab>/ &Cerca<Tab>/
|
||||
menut Find\ and\ Rep&lace\.\.\. &Sostituisci\.\.\.
|
||||
menut Find\ and\ Rep&lace\.\.\.<Tab>:%s &Sostituisci\.\.\.<Tab>:%s
|
||||
menut Find\ and\ Rep&lace\.\.\.<Tab>:s &Sostituisci\.\.\.<Tab>:s
|
||||
menut Find\ and\ Rep&lace<Tab>:%s &Sostituisci<Tab>:%s
|
||||
menut Find\ and\ Rep&lace<Tab>:s &Sostituisci<Tab>:s
|
||||
menut Settings\ &Window &Finestra\ Impostazioni
|
||||
menut Startup\ &Settings Impostazioni\ di\ &Avvio
|
||||
menut &Global\ Settings Impostazioni\ &Globali
|
||||
@@ -75,12 +73,20 @@ menut Toggle\ Pattern\ &Highlight<Tab>:set\ hls! &Evidenzia\ ricerche\ S
|
||||
menut Toggle\ &Ignoring\ Case<Tab>:set\ ic! &Ignora\ maiusc\.-minusc\.\ Sì/No<Tab>:set\ ic!
|
||||
menut Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Indica\ &Corrispondenze\ Sì/No<Tab>:set\ sm!
|
||||
|
||||
menut &Context\ lines &Linee\ di\ contesto
|
||||
menut &Context\ Lines &Linee\ di\ contesto
|
||||
"menut &Context\ Lines.\ 1\ &Linee\ di\ contesto.\ 1\
|
||||
"menut &Context\ Lines.\ 2\ &Linee\ di\ contesto.\ 2\
|
||||
"menut &Context\ Lines.\ 3\ &Linee\ di\ contesto.\ 3\
|
||||
"menut &Context\ Lines.\ 4\ &Linee\ di\ contesto.\ 4\
|
||||
"menut &Context\ Lines.\ 5\ &Linee\ di\ contesto.\ 5\
|
||||
"menut &Context\ Lines.\ 7\ &Linee\ di\ contesto.\ 7\
|
||||
"menut &Context\ Lines.\ 10\ &Linee\ di\ contesto.\ 10\
|
||||
"menut &Context\ Lines.\ 100\ &Linee\ di\ contesto.\ 100\
|
||||
|
||||
menut &Virtual\ Edit &Edit\ virtuale
|
||||
menut Never Mai
|
||||
menut Block\ Selection Seleziona\ Blocco
|
||||
menut Insert\ mode Modo\ Insert
|
||||
menut Insert\ Mode Modo\ Insert
|
||||
menut Block\ and\ Insert Selezione\ Blocco\ e\ Inserimento
|
||||
menut Always Sempre
|
||||
|
||||
@@ -109,22 +115,13 @@ if has("toolbar")
|
||||
tmenu ToolBar.Cut Taglia
|
||||
tmenu ToolBar.Copy Copia
|
||||
tmenu ToolBar.Paste Incolla
|
||||
tmenu ToolBar.Find Trova...
|
||||
tmenu ToolBar.FindNext Trova seguente
|
||||
tmenu ToolBar.FindPrev Trova precedente
|
||||
tmenu ToolBar.Replace Sostituisci
|
||||
if 0 " disabled; These are in the Windows menu
|
||||
tmenu ToolBar.New Nuovo
|
||||
tmenu ToolBar.WinSplit Dividi
|
||||
tmenu ToolBar.WinMax Massimizza
|
||||
tmenu ToolBar.WinMin Minimizza
|
||||
tmenu ToolBar.WinClose Chiudi
|
||||
endif
|
||||
tmenu ToolBar.LoadSesn Carica sessione
|
||||
tmenu ToolBar.SaveSesn Salva sessione
|
||||
tmenu ToolBar.RunScript Esegui script
|
||||
tmenu ToolBar.Make Esegui make
|
||||
tmenu ToolBar.Shell Esegui shell
|
||||
tmenu ToolBar.RunCtags Esegui ctags
|
||||
tmenu ToolBar.TagJump Salta alla tag
|
||||
tmenu ToolBar.Help Aiuto
|
||||
@@ -143,24 +140,23 @@ menut Toggle\ Line\ &Numbering<Tab>:set\ nu! &Numerazione\ S
|
||||
menut Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Numerazione\ relati&Va\ Sì/No<Tab>:set\ rnu!
|
||||
menut Toggle\ &List\ Mode<Tab>:set\ list! Modo\ &List\ Sì/No<Tab>:set\ list!
|
||||
menut Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Linee\ &Continuate\ Sì/No<Tab>:set\ wrap!
|
||||
menut Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! A\ capo\ alla\ &Parola\ Sì/No<Tab>:set\ lbr!
|
||||
menut Toggle\ Tab\ &expanding<Tab>:set\ et! &Espandi\ Tabulazione\ Sì/No<Tab>:set\ et!
|
||||
menut Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! A\ capo\ alla\ &Parola\ Sì/No<Tab>:set\ lbr!
|
||||
menut Toggle\ Tab\ &Expanding<Tab>:set\ et! &Espandi\ Tabulazione\ Sì/No<Tab>:set\ et!
|
||||
menut Toggle\ &Auto\ Indenting<Tab>:set\ ai! Indentazione\ &Automatica\ Sì/No<Tab>:set\ ai!
|
||||
menut Toggle\ &C-Style\ Indenting<Tab>:set\ cin! Indentazione\ stile\ &C\ Sì/No<Tab>:set\ cin!
|
||||
menut &Shiftwidth &Spazi\ rientranza
|
||||
"menut &Shiftwidth.2<Tab>:set\ sw=2\ sw?<CR> &Spazi\ rientranza.2<Tab>:set\ sw=2\ sw?<CR>
|
||||
"menut &Shiftwidth.3<Tab>:set\ sw=3\ sw?<CR> &Spazi\ rientranza.3<Tab>:set\ sw=3\ sw?<CR>
|
||||
"menut &Shiftwidth.4<Tab>:set\ sw=4\ sw?<CR> &Spazi\ rientranza.4<Tab>:set\ sw=4\ sw?<CR>
|
||||
"menut &Shiftwidth.5<Tab>:set\ sw=5\ sw?<CR> &Spazi\ rientranza.5<Tab>:set\ sw=5\ sw?<CR>
|
||||
"menut &Shiftwidth.6<Tab>:set\ sw=6\ sw?<CR> &Spazi\ rientranza.6<Tab>:set\ sw=6\ sw?<CR>
|
||||
"menut &Shiftwidth.8<Tab>:set\ sw=8\ sw?<CR> &Spazi\ rientranza.8<Tab>:set\ sw=8\ sw?<CR>
|
||||
"menut &Shiftwidth.3 &Spazi\ rientranza.3
|
||||
"menut &Shiftwidth.4 &Spazi\ rientranza.4
|
||||
"menut &Shiftwidth.5 &Spazi\ rientranza.5
|
||||
"menut &Shiftwidth.6 &Spazi\ rientranza.6
|
||||
"menut &Shiftwidth.8 &Spazi\ rientranza.8
|
||||
menut Soft\ &Tabstop &Tabulazione\ software
|
||||
"menut Soft\ &Tabstop.2<Tab>:set\ sts=2\ sts? &Tabulazione\ software.2<Tab>:set\ sts=2\ sts?
|
||||
"menut Soft\ &Tabstop.3<Tab>:set\ sts=3\ sts? &Tabulazione\ software.3<Tab>:set\ sts=3\ sts?
|
||||
"menut Soft\ &Tabstop.4<Tab>:set\ sts=4\ sts? &Tabulazione\ software.4<Tab>:set\ sts=4\ sts?
|
||||
"menut Soft\ &Tabstop.5<Tab>:set\ sts=5\ sts? &Tabulazione\ software.5<Tab>:set\ sts=5\ sts?
|
||||
"menut Soft\ &Tabstop.6<Tab>:set\ sts=6\ sts? &Tabulazione\ software.6<Tab>:set\ sts=6\ sts?
|
||||
"menut Soft\ &Tabstop.8<Tab>:set\ sts=8\ sts? &Tabulazione\ software.8<Tab>:set\ sts=8\ sts?
|
||||
"menut Soft\ &Tabstop.2 &Tabulazione\ software.2
|
||||
"menut Soft\ &Tabstop.3 &Tabulazione\ software.3
|
||||
"menut Soft\ &Tabstop.4 &Tabulazione\ software.4
|
||||
"menut Soft\ &Tabstop.5 &Tabulazione\ software.5
|
||||
"menut Soft\ &Tabstop.6 &Tabulazione\ software.6
|
||||
"menut Soft\ &Tabstop.8 &Tabulazione\ software.8
|
||||
menut Te&xt\ Width\.\.\. Lunghe&Zza\ riga\.\.\.
|
||||
menut &File\ Format\.\.\. Formato\ &File\.\.\.
|
||||
|
||||
@@ -173,37 +169,61 @@ menut C&olor\ Scheme Schema\ c&Olori
|
||||
|
||||
menut blue blù
|
||||
menut darkblue blù\ scuro
|
||||
menut default predefinito
|
||||
menut delek delek
|
||||
menut desert deserto
|
||||
menut elflord signore\ degli\ elfi
|
||||
menut evening sera
|
||||
menut habamax habamax
|
||||
menut industry industria
|
||||
menut koehler koehler
|
||||
menut lunaperche luna\ perché
|
||||
menut morning mattino
|
||||
menut murphy murphy
|
||||
menut pablo pablo
|
||||
menut peachpuff pesca
|
||||
menut quiet quieto
|
||||
menut retrobox retrobox
|
||||
menut ron ron
|
||||
menut shine brillante
|
||||
menut sorbet sorbetto
|
||||
menut slate ardesia
|
||||
menut torte torta
|
||||
menut unokai unokai
|
||||
menut wildcharm fascino\ selvaggio
|
||||
menut zaibatsu zaibatsu
|
||||
menut zellner zellner
|
||||
menut BLUE BLÙ
|
||||
menut DARKBLUE BLÙ\ SCURO
|
||||
menut DEFAULT DEFAULT
|
||||
menut DELEK DELEK
|
||||
menut DESERT DESERTO
|
||||
menut ELFLORD SIGNORE\ DEGLI\ ELFI
|
||||
menut EVENING SERA
|
||||
menut HABAMAX HABAMAX
|
||||
menut INDUSTRY INDUSTRIA
|
||||
menut KOEHLER KOEHLER
|
||||
menut LUNAPERCHE LUNA\ PERCHÉ
|
||||
menut MORNING MATTINO
|
||||
menut MURPHY MURPHY
|
||||
menut PABLO PABLO
|
||||
menut PEACHPUFF PESCA
|
||||
menut QUIET QUIETO
|
||||
menut RETROBOX RETROBOX
|
||||
menut RON RON
|
||||
menut SHINE BRILLANTE
|
||||
menut SORBET SORBETTO
|
||||
menut SLATE ARDESIA
|
||||
menut TORTE TORTA
|
||||
menut UNOKAI UNOKAI
|
||||
menut WILDCHARM FASCINO\ SELVAGGIO
|
||||
menut ZAIBATSU ZAIBATSU
|
||||
menut ZELLNER ZELLNER
|
||||
|
||||
menut Show\ &Keymaps\ in\ Menu Mostra\ Ma&ppe\ tastiera\ in\ Menù
|
||||
menut &Keymap Ma&ppa\ tastiera
|
||||
|
||||
menut None nessuna
|
||||
menut None Nessuna
|
||||
menut accents accenti
|
||||
menut arabic arabo
|
||||
menut armenian-eastern armeno-orientale
|
||||
@@ -217,10 +237,11 @@ menut czech ceco
|
||||
menut dvorak tastiera-dvorak
|
||||
menut esperanto esperanto
|
||||
menut french-azerty francese-azerty
|
||||
menut georgian-qwerty georgiano-qwerty
|
||||
menut german-qwertz tedesco-qwertz
|
||||
menut greek greco
|
||||
menut hebrew ebraico
|
||||
menut hebrewp ebraicop
|
||||
menut hebrewp ebraico-fonetico
|
||||
menut kana kana
|
||||
menut kazakh-jcuken kazako-jcuken
|
||||
menut korean coreano
|
||||
@@ -251,8 +272,9 @@ menut thaana thaana
|
||||
menut thaana-phonetic thaana-fonetico
|
||||
menut turkish-f turco-f
|
||||
menut turkish-q turco-q
|
||||
menut ukrainian-dvorak ukraino-dvorak
|
||||
menut ukrainian-jcuken ukraino-jcuken
|
||||
menut ukrainian-dvorak ucraino-dvorak
|
||||
menut ukrainian-jcuken ucraino-jcuken
|
||||
menut ukrainian-enhanced ucraino-migliorato
|
||||
menut vietnamese-telex vietnamita-telex
|
||||
menut vietnamese-viqr vietnamita-viqr
|
||||
menut vietnamese-vni vietnamita-vni
|
||||
@@ -269,10 +291,11 @@ menut CZECH CECO
|
||||
menut DVORAK TASTIERA-DVORAK
|
||||
menut ESPERANTO ESPERANTO
|
||||
menut FRENCH-AZERTY FRANCESE-AZERTY
|
||||
menut GEORGIAN-QWERTY GEORGIANO-QWERTY
|
||||
menut GERMAN-QWERTZ TEDESCO-QWERTZ
|
||||
menut GREEK GRECO
|
||||
menut HEBREW EBRAICO
|
||||
menut HEBREWP EBRAICOP
|
||||
menut HEBREWP EBRAICO-FONETICO
|
||||
menut KANA KANA
|
||||
menut KAZAKH-JCUKEN KAZAKO-JCUKEN
|
||||
menut KOREAN COREANO
|
||||
@@ -303,8 +326,9 @@ menut THAANA THAANA
|
||||
menut THAANA-PHONETIC THAANA-FONETICO
|
||||
menut TURKISH-F TURCO-F
|
||||
menut TURKISH-Q TURCO-Q
|
||||
menut UKRAINIAN-DVORAK UKRAINO-DVORAK
|
||||
menut UKRAINIAN-JCUKEN UKRAINO-JCUKEN
|
||||
menut UKRAINIAN-DVORAK UCRAINO-DVORAK
|
||||
menut UKRAINIAN-JCUKEN UCRAINO-JCUKEN
|
||||
menut UKRAINIAN-ENHANCED UCRAINO-MIGLIORATO
|
||||
menut VIETNAMESE-TELEX VIETNAMITA-TELEX
|
||||
menut VIETNAMESE-VIQR VIETNAMITA-VIQR
|
||||
menut VIETNAMESE-VNI VIETNAMITA-VNI
|
||||
@@ -314,37 +338,36 @@ menut Select\ Fo&nt\.\.\. Scegli\ &Font\.\.\.
|
||||
" Menù strumenti programmazione
|
||||
menut &Tools &Strumenti
|
||||
|
||||
menut &Jump\ to\ this\ tag<Tab>g^] &Vai\ a\ questa\ tag<Tab>g^]
|
||||
menut Jump\ &back<Tab>^T Torna\ &Indietro<Tab>^T
|
||||
menut &Jump\ to\ This\ Tag<Tab>g^] &Vai\ a\ questa\ tag<Tab>g^]
|
||||
menut Jump\ &Back<Tab>^T Torna\ &Indietro<Tab>^T
|
||||
menut Build\ &Tags\ File Costruisci\ file\ &Tag\
|
||||
" Menù ortografia / Spelling
|
||||
menut &Spelling &Ortografia
|
||||
|
||||
menut &Spell\ Check\ On Attiva\ &Controllo\ ortografico
|
||||
menut Spell\ Check\ &Off &Disattiva\ controllo\ ortografico
|
||||
menut To\ &Next\ error<Tab>]s Errore\ &Seguente<tab>]s
|
||||
menut To\ &Previous\ error<Tab>[s Errore\ &Precedente<tab>[s
|
||||
menut To\ &Next\ Error<Tab>]s Errore\ &Seguente<Tab>]s
|
||||
menut To\ &Previous\ Error<Tab>[s Errore\ &Precedente<Tab>[s
|
||||
menut Suggest\ &Corrections<Tab>z= &Suggerimenti<Tab>z=
|
||||
menut &Repeat\ correction<Tab>:spellrepall &Ripeti\ correzione<Tab>:spellrepall
|
||||
menut Set\ language\ to Imposta\ lingua\ a
|
||||
menut Set\ language\ to\ "en" Imposta\ lingua\ a\ "en"
|
||||
menut Set\ language\ to\ "en_au" Imposta\ lingua\ a\ "en_au"
|
||||
menut Set\ language\ to\ "en_ca" Imposta\ lingua\ a\ "en_ca"
|
||||
menut Set\ language\ to\ "en_gb" Imposta\ lingua\ a\ "en_gb"
|
||||
menut Set\ language\ to\ "en_nz" Imposta\ lingua\ a\ "en_nz"
|
||||
menut Set\ language\ to\ "en_us" Imposta\ lingua\ a\ "en_us"
|
||||
menut &Repeat\ Correction<Tab>:spellrepall &Ripeti\ correzione<Tab>:spellrepall
|
||||
menut Set\ Language\ to\ "en" Imposta\ lingua\ a\ "en"
|
||||
menut Set\ Language\ to\ "en_au" Imposta\ lingua\ a\ "en_au"
|
||||
menut Set\ Language\ to\ "en_ca" Imposta\ lingua\ a\ "en_ca"
|
||||
menut Set\ Language\ to\ "en_gb" Imposta\ lingua\ a\ "en_gb"
|
||||
menut Set\ Language\ to\ "en_nz" Imposta\ lingua\ a\ "en_nz"
|
||||
menut Set\ Language\ to\ "en_us" Imposta\ lingua\ a\ "en_us"
|
||||
menut &Find\ More\ Languages &Trova\ altre\ lingue
|
||||
|
||||
" Menù piegature / Fold
|
||||
menut &Folding &Piegature
|
||||
" apri e chiudi piegature
|
||||
menut &Enable/Disable\ folds<Tab>zi Pi&egature\ Sì/No<Tab>zi
|
||||
menut &Enable/Disable\ Folds<Tab>zi Pi&egature\ Sì/No<Tab>zi
|
||||
menut &View\ Cursor\ Line<Tab>zv &Vedi\ linea\ col\ Cursore<Tab>zv
|
||||
menut Vie&w\ Cursor\ Line\ only<Tab>zMzx Vedi\ &Solo\ linea\ col\ Cursore<Tab>zMzx
|
||||
menut C&lose\ More\ folds<Tab>zm C&Hiudi\ più\ piegature<Tab>zm
|
||||
menut &Close\ All\ folds<Tab>zM &Chiudi\ tutte\ le\ piegature<Tab>zM
|
||||
menut O&pen\ More\ folds<Tab>zr A&Pri\ più\ piegature<Tab>zr
|
||||
menut &Open\ All\ folds<Tab>zR &Apri\ tutte\ le\ piegature<Tab>zR
|
||||
menut Vie&w\ Cursor\ Line\ Only<Tab>zMzx Vedi\ &Solo\ linea\ col\ Cursore<Tab>zMzx
|
||||
menut C&lose\ More\ Folds<Tab>zm C&Hiudi\ più\ piegature<Tab>zm
|
||||
menut &Close\ All\ Folds<Tab>zM &Chiudi\ tutte\ le\ piegature<Tab>zM
|
||||
menut O&pen\ More\ Folds<Tab>zr A&Pri\ più\ piegature<Tab>zr
|
||||
menut &Open\ All\ Folds<Tab>zR &Apri\ tutte\ le\ piegature<Tab>zR
|
||||
" metodo piegatura
|
||||
menut Fold\ Met&hod Meto&Do\ piegatura
|
||||
menut M&anual &Manuale
|
||||
@@ -359,7 +382,15 @@ menut Create\ &Fold<Tab>zf Crea\ &Piegatura<Tab>zf
|
||||
menut &Delete\ Fold<Tab>zd &Togli\ piegatura<Tab>zd
|
||||
menut Delete\ &All\ Folds<Tab>zD Togli\ &Tutte\ le\ piegature<Tab>zD
|
||||
" movimenti all'interno delle piegature
|
||||
menut Fold\ col&umn\ width Larghezza\ piegat&Ure\ in\ colonne
|
||||
menut Fold\ Col&umn\ Width Larghezza\ piegat&Ure\ in\ colonne
|
||||
"menut Fold\ Col&umn\ Width.\ &0\ Larghezza\ piegat&Ure\ in\ colonne.\ &0\
|
||||
"menut Fold\ Col&umn\ Width.\ &2\ Larghezza\ piegat&Ure\ in\ colonne.\ &2\
|
||||
"menut Fold\ Col&umn\ Width.\ &3\ Larghezza\ piegat&Ure\ in\ colonne.\ &3\
|
||||
"menut Fold\ Col&umn\ Width.\ &4\ Larghezza\ piegat&Ure\ in\ colonne.\ &4\
|
||||
"menut Fold\ Col&umn\ Width.\ &5\ Larghezza\ piegat&Ure\ in\ colonne.\ &5\
|
||||
"menut Fold\ Col&umn\ Width.\ &6\ Larghezza\ piegat&Ure\ in\ colonne.\ &6\
|
||||
"menut Fold\ Col&umn\ Width.\ &7\ Larghezza\ piegat&Ure\ in\ colonne.\ &7\
|
||||
"menut Fold\ Col&umn\ Width.\ &8\ Larghezza\ piegat&Ure\ in\ colonne.\ &8\
|
||||
|
||||
menut &Diff &Differenza
|
||||
"
|
||||
@@ -383,9 +414,9 @@ menut &Open<Tab>:copen &Apri<Tab>:copen
|
||||
menut &Close<Tab>:cclose &Chiudi<Tab>:cclose
|
||||
|
||||
menut &Convert\ to\ HEX<Tab>:%!xxd &Converti\ a\ esadecimale<Tab>:%!xxd
|
||||
menut Conve&rt\ back<Tab>:%!xxd\ -r Conve&rti\ da\ esadecimale<Tab>:%!xxd\ -r
|
||||
menut Conve&rt\ Back<Tab>:%!xxd\ -r Conve&rti\ da\ esadecimale<Tab>:%!xxd\ -r
|
||||
|
||||
menut Se&T\ Compiler Impo&Sta\ Compilatore
|
||||
menut Se&t\ Compiler Impo&Sta\ Compilatore
|
||||
menut Show\ Compiler\ Se&ttings\ in\ Menu Mostra\ Impos&Tazioni\ Compilatore\ nel\ Menù
|
||||
|
||||
" Buffers / Buffer
|
||||
@@ -396,20 +427,20 @@ menut &Delete &Elimina
|
||||
menut &Alternate &Alternato
|
||||
menut &Next &Successivo
|
||||
menut &Previous &Precedente
|
||||
menut [No\ File] [Nessun\ File]
|
||||
"menut [No\ File] [Nessun\ File]
|
||||
|
||||
" Syntax / Sintassi
|
||||
menut &Syntax &Sintassi
|
||||
|
||||
menut &Show\ File\ Types\ in\ menu Mo&Stra\ tipi\ di\ file\ nel\ menù
|
||||
menut Set\ '&syntax'\ only &S\ Attiva\ solo\ \ 'syntax'
|
||||
menut Set\ '&filetype'\ too &F\ Attiva\ anche\ 'filetype'
|
||||
menut &Show\ File\ Types\ in\ Menu Mo&Stra\ tipi\ di\ file\ nel\ menù
|
||||
menut Set\ '&syntax'\ Only &S\ Attiva\ solo\ \ 'syntax'
|
||||
menut Set\ '&filetype'\ Too &F\ Attiva\ anche\ 'filetype'
|
||||
menut &Off &Disattiva
|
||||
menut &Manual &Manuale
|
||||
menut A&utomatic A&Utomatico
|
||||
menut on/off\ for\ &This\ file Attiva\ Sì/No\ su\ ques&To\ file
|
||||
menut Co&lor\ test Test\ &Colori
|
||||
menut &Highlight\ test Test\ &Evidenziamento
|
||||
menut On/Off\ for\ &This\ File Attiva\ Sì/No\ su\ ques&To\ file
|
||||
menut Co&lor\ Test Test\ &Colori
|
||||
menut &Highlight\ Test Test\ &Evidenziamento
|
||||
menut &Convert\ to\ HTML Converti\ ad\ &HTML
|
||||
|
||||
let g:menutrans_set_lang_to = "Cambia linguaggio a"
|
||||
@@ -432,15 +463,15 @@ menut Move\ &To &Muovi\ verso
|
||||
|
||||
menut &Top<Tab>^WK &Cima<Tab>^WK
|
||||
menut &Bottom<Tab>^WJ &Fondo<Tab>^WJ
|
||||
menut &Left\ side<Tab>^WH Lato\ &Sinistro<Tab>^WH
|
||||
menut &Right\ side<Tab>^WL Lato\ &Destro<Tab>^WL
|
||||
menut &Left\ Side<Tab>^WH Lato\ &Sinistro<Tab>^WH
|
||||
menut &Right\ Side<Tab>^WL Lato\ &Destro<Tab>^WL
|
||||
menut Rotate\ &Up<Tab>^WR Ruota\ verso\ l'&Alto<Tab>^WR
|
||||
menut Rotate\ &Down<Tab>^Wr Ruota\ verso\ il\ &Basso<Tab>^Wr
|
||||
menut &Equal\ Size<Tab>^W= &Uguale\ ampiezza<Tab>^W=
|
||||
menut &Max\ Height<Tab>^W_ A&Ltezza\ massima<Tab>^W_
|
||||
menut M&in\ Height<Tab>^W1_ Al&Tezza\ minima<Tab>^W1_
|
||||
menut Max\ &Width<Tab>^W\| Lar&Ghezza\ massima<Tab>^W\|
|
||||
menut Min\ Widt&h<Tab>^W1\| Larg&hhezza\ minima<Tab>^W1\|
|
||||
menut Min\ Widt&h<Tab>^W1\| Larg&Hezza\ minima<Tab>^W1\|
|
||||
|
||||
" The popup menu
|
||||
menut &Undo &Annulla
|
||||
@@ -457,43 +488,43 @@ menut Select\ &Sentence Seleziona\ &Frase
|
||||
menut Select\ Pa&ragraph Seleziona\ Para&Grafo
|
||||
|
||||
" The GUI Toolbar / Barra Strumenti
|
||||
menut Open Apri
|
||||
menut Save Salva
|
||||
menut SaveAll Salva\ Tutto
|
||||
menut Print Stampa
|
||||
menut Undo Annulla
|
||||
menut Redo Ripristina
|
||||
menut Cut Taglia
|
||||
menut Copy Copia
|
||||
menut Paste Incolla
|
||||
"menut Open Apri
|
||||
"menut Save Salva
|
||||
"menut SaveAll Salva\ Tutto
|
||||
"menut Print Stampa
|
||||
"menut Undo Annulla
|
||||
"menut Redo Ripristina
|
||||
"menut Cut Taglia
|
||||
"menut Copy Copia
|
||||
"menut Paste Incolla
|
||||
" -sep3-
|
||||
menut Find Cerca
|
||||
menut FindNext Cerca\ Successivo
|
||||
menut FindPrev Cerca\ Precedente
|
||||
menut Replace Sostituisci
|
||||
"menut Find Cerca
|
||||
"menut FindNext Cerca\ Successivo
|
||||
"menut FindPrev Cerca\ Precedente
|
||||
"menut Replace Sostituisci
|
||||
" -sep4-
|
||||
menut New Nuova\ finestra
|
||||
menut WinSplit Dividi\ finestra
|
||||
menut WinMax Massima\ ampiezza
|
||||
menut WinMin Minima\ ampiezza
|
||||
menut WinVSplit Dividi\ verticalmente
|
||||
menut WinMaxWidth Massima\ larghezza
|
||||
menut WinMinWidth Minima\ larghezza
|
||||
menut WinClose Chiudi\ finestra
|
||||
menut LoadSesn Carica\ Sessione
|
||||
menut SaveSesn Salva\ Sessione
|
||||
menut RunScript Esegui\ Script
|
||||
menut Make Make
|
||||
menut Shell Shell
|
||||
menut RunCtags Esegui\ Ctags
|
||||
menut TagJump Vai\ a\ Tag
|
||||
menut Help Aiuto
|
||||
menut FindHelp Cerca\ in\ Aiuto
|
||||
"menut New Nuova\ finestra
|
||||
"menut WinSplit Dividi\ finestra
|
||||
"menut WinMax Massima\ ampiezza
|
||||
"menut WinMin Minima\ ampiezza
|
||||
"menut WinVSplit Dividi\ verticalmente
|
||||
"menut WinMaxWidth Massima\ larghezza
|
||||
"menut WinMinWidth Minima\ larghezza
|
||||
"menut WinClose Chiudi\ finestra
|
||||
"menut LoadSesn Carica\ Sessione
|
||||
"menut SaveSesn Salva\ Sessione
|
||||
"menut RunScript Esegui\ Script
|
||||
"menut Make Make
|
||||
"menut Shell Shell
|
||||
"menut RunCtags Esegui\ Ctags
|
||||
"menut TagJump Vai\ a\ Tag
|
||||
"menut Help Aiuto
|
||||
"menut FindHelp Cerca\ in\ Aiuto
|
||||
|
||||
so $VIMRUNTIME/lang/macvim_menu/menu_it_it.latin1.apple.vim
|
||||
so $VIMRUNTIME/lang/macvim_menu/menu_it_it.latin1.custom.vim
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: set sw=2 :
|
||||
|
||||
@@ -2,7 +2,7 @@ vim9script
|
||||
|
||||
# Script to define the syntax menu in synmenu.vim
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Last Change: 2025 Mar 09
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# This is used by "make menu" in the src directory.
|
||||
@@ -605,6 +605,7 @@ SynMenu T.TealInfo:tli
|
||||
SynMenu T.Telix\ Salt:tsalt
|
||||
SynMenu T.Termcap/Printcap:ptcap
|
||||
SynMenu T.Terminfo:terminfo
|
||||
SynMenu T.Tera:tera
|
||||
SynMenu T.Tera\ Term:teraterm
|
||||
SynMenu T.TeX.TeX/LaTeX:tex
|
||||
SynMenu T.TeX.plain\ TeX:plaintex
|
||||
|
||||
+5
-1
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Feb 08
|
||||
" Last Change: 2025 Mar 27
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -867,6 +867,8 @@ endif
|
||||
if has("insert_expand")
|
||||
call <SID>AddOption("complete", gettext("specifies how Insert mode completion works for CTRL-N and CTRL-P"))
|
||||
call append("$", "\t" .. s:local_to_buffer)
|
||||
call <SID>OptionL("cfc")
|
||||
call <SID>AddOption("completefuzzycollect", gettext("use fuzzy collection for specific completion modes"))
|
||||
call <SID>OptionL("cpt")
|
||||
call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion"))
|
||||
call <SID>OptionL("cot")
|
||||
@@ -880,6 +882,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("pumaxmwidth", 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")
|
||||
|
||||
+86
-1
@@ -1,7 +1,7 @@
|
||||
vim9script
|
||||
|
||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
# Last Update: 2024 Oct 05
|
||||
# Last Update: 2025 Mar 21
|
||||
#
|
||||
# Toggle comments
|
||||
# Usage:
|
||||
@@ -76,3 +76,88 @@ export def Toggle(...args: list<string>): string
|
||||
noautocmd keepjumps setline(lnum1, lines)
|
||||
return ''
|
||||
enddef
|
||||
|
||||
|
||||
# Comment text object
|
||||
# Usage:
|
||||
# import autoload 'dist/comment.vim'
|
||||
# onoremap <silent>ic <scriptcmd>comment.ObjComment(v:true)<CR>
|
||||
# onoremap <silent>ac <scriptcmd>comment.ObjComment(v:false)<CR>
|
||||
# xnoremap <silent>ic <esc><scriptcmd>comment.ObjComment(v:true)<CR>
|
||||
# xnoremap <silent>ac <esc><scriptcmd>comment.ObjComment(v:false)<CR>
|
||||
export def ObjComment(inner: bool)
|
||||
def IsComment(): bool
|
||||
var stx = map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')->join()
|
||||
return stx =~? 'Comment'
|
||||
enddef
|
||||
|
||||
# requires syntax support
|
||||
if !exists("g:syntax_on")
|
||||
return
|
||||
endif
|
||||
|
||||
var pos_init = getcurpos()
|
||||
|
||||
# If not in comment, search next one,
|
||||
if !IsComment()
|
||||
if search('\v\k+', 'W', line(".") + 100, 100, () => !IsComment()) <= 0
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
# 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())
|
||||
else
|
||||
cursor(1, 1)
|
||||
search('\v\S+', 'cW', 0, 200)
|
||||
endif
|
||||
endif
|
||||
|
||||
var pos_start = getcurpos()
|
||||
|
||||
if !inner
|
||||
var col = pos_start[2]
|
||||
var prefix = getline(pos_start[1])[ : col - 2]
|
||||
while col > 0 && prefix[col - 2] =~ '\s'
|
||||
col -= 1
|
||||
endwhile
|
||||
pos_start[2] = col
|
||||
endif
|
||||
|
||||
# Search for the comment end.
|
||||
if pos_init[1] > pos_start[1]
|
||||
cursor(pos_init[1], pos_init[2])
|
||||
endif
|
||||
if search('\v%(\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())
|
||||
endif
|
||||
endif
|
||||
|
||||
var pos_end = getcurpos()
|
||||
|
||||
if !inner
|
||||
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*$')
|
||||
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
|
||||
cursor(pos_end[1], 1)
|
||||
normal! V
|
||||
cursor(pos_start[1], 1)
|
||||
else
|
||||
cursor(pos_end[1], pos_end[2])
|
||||
normal! v
|
||||
cursor(pos_start[1], pos_start[2])
|
||||
endif
|
||||
enddef
|
||||
|
||||
+13
-4
@@ -1,4 +1,4 @@
|
||||
*comment.txt* For Vim version 9.1. Last change: 2024 Oct 01
|
||||
*comment.txt* For Vim version 9.1. Last change: 2025 Mar 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL
|
||||
@@ -32,11 +32,20 @@ back to `gcc` otherwise, add the following mapping to your vimrc: >
|
||||
Note: using `gC` may not always result in valid comment markers depending on
|
||||
the language used.
|
||||
|
||||
Additionally, the plugin defines a comment text-object which requires syntax
|
||||
highlighting to be enabled.
|
||||
*v_ac* *ac*
|
||||
ac "a comment", select current or next comment.
|
||||
Leading and trailing white space is included.
|
||||
Trailing newlines are included too.
|
||||
*v_ic* *ic*
|
||||
ic "inner comment", select current or next comment.
|
||||
|
||||
This plugin uses the buffer-local 'commentstring' option value to add or remove
|
||||
comment markers to the selected lines. Whether it will comment or un-comment
|
||||
depends on the first line of the range of lines to act upon. When it matches
|
||||
a comment marker, the line will be un-commented, if it doesn't, the line will
|
||||
be commented out. Blank and empty lines are ignored.
|
||||
depends on the range of lines to act upon. When all of the lines in range
|
||||
have comment markers, all lines will be un-commented, if it doesn't, the lines
|
||||
will be commented out. Blank and empty lines are ignored.
|
||||
|
||||
The value of 'commentstring' is the same for the entire buffer and determined
|
||||
by its filetype (|filetypes|). To adapt it within the buffer for embedded
|
||||
|
||||
+4
@@ -1,6 +1,10 @@
|
||||
ac comment.txt /*ac*
|
||||
b:comment_first_col comment.txt /*b:comment_first_col*
|
||||
comment.txt comment.txt /*comment.txt*
|
||||
g:comment_first_col comment.txt /*g:comment_first_col*
|
||||
gcc comment.txt /*gcc*
|
||||
ic comment.txt /*ic*
|
||||
o_gc comment.txt /*o_gc*
|
||||
v_ac comment.txt /*v_ac*
|
||||
v_gc comment.txt /*v_gc*
|
||||
v_ic comment.txt /*v_ic*
|
||||
|
||||
+7
-1
@@ -1,9 +1,15 @@
|
||||
vim9script
|
||||
|
||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
# Last Update: 2024-04-26
|
||||
# Last Update: 2025 Mar 21
|
||||
|
||||
import autoload 'comment.vim'
|
||||
|
||||
nnoremap <silent> <expr> gc comment.Toggle()
|
||||
xnoremap <silent> <expr> gc comment.Toggle()
|
||||
nnoremap <silent> <expr> gcc comment.Toggle() .. '_'
|
||||
|
||||
onoremap <silent>ic <scriptcmd>comment.ObjComment(v:true)<CR>
|
||||
onoremap <silent>ac <scriptcmd>comment.ObjComment(v:false)<CR>
|
||||
xnoremap <silent>ic <esc><scriptcmd>comment.ObjComment(v:true)<CR>
|
||||
xnoremap <silent>ac <esc><scriptcmd>comment.ObjComment(v:false)<CR>
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
vim9script
|
||||
|
||||
# Highlight Yank plugin
|
||||
# Last Change: 2025 Mar 22
|
||||
|
||||
def HighlightedYank()
|
||||
|
||||
var hlgroup = get(g:, "hlyank_hlgroup", "IncSearch")
|
||||
var duration = min([get(g:, "hlyank_duration", 300), 3000])
|
||||
var in_visual = get(g:, "hlyank_invisual", true)
|
||||
|
||||
if v:event.operator ==? 'y'
|
||||
if !in_visual && visualmode() != null_string
|
||||
visualmode(1)
|
||||
return
|
||||
endif
|
||||
# if clipboard has autoselect (default on linux) exiting from Visual with
|
||||
# ESC generates bogus event and this highlights previous yank
|
||||
if &clipboard =~ 'autoselect' && v:event.regname == "*" && v:event.visual
|
||||
return
|
||||
endif
|
||||
var [beg, end] = [getpos("'["), getpos("']")]
|
||||
var type = v:event.regtype ?? 'v'
|
||||
var pos = getregionpos(beg, end, {type: type, exclusive: false})
|
||||
var m = matchaddpos(hlgroup, pos->mapnew((_, v) => {
|
||||
var col_beg = v[0][2] + v[0][3]
|
||||
var col_end = v[1][2] + v[1][3] + 1
|
||||
return [v[0][1], col_beg, col_end - col_beg]
|
||||
}))
|
||||
var winid = win_getid()
|
||||
timer_start(duration, (_) => m->matchdelete(winid))
|
||||
endif
|
||||
enddef
|
||||
|
||||
augroup hlyank
|
||||
autocmd!
|
||||
autocmd TextYankPost * HighlightedYank()
|
||||
augroup END
|
||||
# vim:sts=2:sw=2:et:
|
||||
+201
-322
File diff suppressed because it is too large
Load Diff
+167
@@ -0,0 +1,167 @@
|
||||
" FUNCTIONS IN THIS FILE ARE MEANT TO BE USED BY NETRW.VIM AND NETRW.VIM ONLY.
|
||||
" THESE FUNCTIONS DON'T COMMIT TO ANY BACKWARDS COMPATIBILITY. SO CHANGES AND
|
||||
" BREAKAGES IF USED OUTSIDE OF NETRW.VIM ARE EXPECTED.
|
||||
|
||||
let s:slash = !exists('+shellslash') || &shellslash ? '/' : '\'
|
||||
|
||||
" netrw#fs#PathJoin: Appends a new part to a path taking different systems into consideration {{{
|
||||
|
||||
function! netrw#fs#PathJoin(...)
|
||||
let path = ""
|
||||
|
||||
for arg in a:000
|
||||
if empty(path)
|
||||
let path = arg
|
||||
else
|
||||
let path .= s:slash . arg
|
||||
endif
|
||||
endfor
|
||||
|
||||
return path
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#fs#ComposePath: Appends a new part to a path taking different systems into consideration {{{
|
||||
|
||||
function! netrw#fs#ComposePath(base, subdir)
|
||||
if has('amiga')
|
||||
let ec = a:base[s:Strlen(a:base)-1]
|
||||
if ec != '/' && ec != ':'
|
||||
let ret = a:base . '/' . a:subdir
|
||||
else
|
||||
let ret = a:base.a:subdir
|
||||
endif
|
||||
|
||||
" COMBAK: test on windows with changing to root directory: :e C:/
|
||||
elseif a:subdir =~ '^\a:[/\\]\([^/\\]\|$\)' && has('win32')
|
||||
let ret = a:subdir
|
||||
|
||||
elseif a:base =~ '^\a:[/\\]\([^/\\]\|$\)' && has('win32')
|
||||
if a:base =~ '[/\\]$'
|
||||
let ret = a:base . a:subdir
|
||||
else
|
||||
let ret = a:base . '/' . a:subdir
|
||||
endif
|
||||
|
||||
elseif a:base =~ '^\a\{3,}://'
|
||||
let urlbase = substitute(a:base, '^\(\a\+://.\{-}/\)\(.*\)$', '\1', '')
|
||||
let curpath = substitute(a:base, '^\(\a\+://.\{-}/\)\(.*\)$', '\2', '')
|
||||
if a:subdir == '../'
|
||||
if curpath =~ '[^/]/[^/]\+/$'
|
||||
let curpath = substitute(curpath, '[^/]\+/$', '', '')
|
||||
else
|
||||
let curpath = ''
|
||||
endif
|
||||
let ret = urlbase.curpath
|
||||
else
|
||||
let ret = urlbase.curpath.a:subdir
|
||||
endif
|
||||
|
||||
else
|
||||
let ret = substitute(a:base . '/' .a:subdir, '//', '/', 'g')
|
||||
if a:base =~ '^//'
|
||||
" keeping initial '//' for the benefit of network share listing support
|
||||
let ret = '/' . ret
|
||||
endif
|
||||
let ret = simplify(ret)
|
||||
endif
|
||||
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#fs#AbsPath: returns the full path to a directory and/or file {{{
|
||||
|
||||
function! netrw#fs#AbsPath(filename)
|
||||
let filename = a:filename
|
||||
|
||||
if filename !~ '^/'
|
||||
let filename = resolve(getcwd() . '/' . filename)
|
||||
endif
|
||||
|
||||
if filename != "/" && filename =~ '/$'
|
||||
let filename = substitute(filename, '/$', '', '')
|
||||
endif
|
||||
|
||||
return filename
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#fs#Cwd: get the current directory. {{{
|
||||
" Change backslashes to forward slashes, if any.
|
||||
" If doesc is true, escape certain troublesome characters
|
||||
|
||||
function! netrw#fs#Cwd(doesc)
|
||||
let curdir = substitute(getcwd(), '\\', '/', 'ge')
|
||||
|
||||
if curdir !~ '[\/]$'
|
||||
let curdir .= '/'
|
||||
endif
|
||||
|
||||
if a:doesc
|
||||
let curdir = fnameescape(curdir)
|
||||
endif
|
||||
|
||||
return curdir
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#fs#Glob: does glob() if local, remote listing otherwise {{{
|
||||
" direntry: this is the name of the directory. Will be fnameescape'd to prevent wildcard handling by glob()
|
||||
" expr : this is the expression to follow the directory. Will use netrw#fs#ComposePath()
|
||||
" pare =1: remove the current directory from the resulting glob() filelist
|
||||
" =0: leave the current directory in the resulting glob() filelist
|
||||
|
||||
function! netrw#fs#Glob(direntry, expr, pare)
|
||||
if netrw#CheckIfRemote()
|
||||
keepalt 1sp
|
||||
keepalt enew
|
||||
let keep_liststyle = w:netrw_liststyle
|
||||
let w:netrw_liststyle = s:THINLIST
|
||||
if s:NetrwRemoteListing() == 0
|
||||
keepj keepalt %s@/@@
|
||||
let filelist = getline(1,$)
|
||||
q!
|
||||
else
|
||||
" remote listing error -- leave treedict unchanged
|
||||
let filelist = w:netrw_treedict[a:direntry]
|
||||
endif
|
||||
let w:netrw_liststyle = keep_liststyle
|
||||
else
|
||||
let path= netrw#fs#ComposePath(fnameescape(a:direntry), a:expr)
|
||||
if has("win32")
|
||||
" escape [ so it is not detected as wildcard character, see :h wildcard
|
||||
let path = substitute(path, '[', '[[]', 'g')
|
||||
endif
|
||||
let filelist = glob(path, 0, 1, 1)
|
||||
if a:pare
|
||||
let filelist = map(filelist,'substitute(v:val, "^.*/", "", "")')
|
||||
endif
|
||||
endif
|
||||
|
||||
return filelist
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#fs#WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{
|
||||
|
||||
function! netrw#fs#WinPath(path)
|
||||
if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && has("win32")
|
||||
" remove cygdrive prefix, if present
|
||||
let path = substitute(a:path, g:netrw_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
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
" vim:ts=8 sts=4 sw=4 et fdm=marker
|
||||
+2
-33
@@ -1,9 +1,7 @@
|
||||
" FUNCTIONS IN THIS FILES ARE MENT TO BE USE BY NETRW.VIM AND NETRW.VIM ONLY.
|
||||
" THIS FUNCTIONS DON'T COMMIT TO ANY BACKWARDS COMPATABILITY. SO CHANGES AND
|
||||
" FUNCTIONS IN THIS FILE ARE MEANT TO BE USED BY NETRW.VIM AND NETRW.VIM ONLY.
|
||||
" THESE FUNCTIONS DON'T COMMIT TO ANY BACKWARDS COMPATIBILITY. SO CHANGES AND
|
||||
" BREAKAGES IF USED OUTSIDE OF NETRW.VIM ARE EXPECTED.
|
||||
|
||||
" General: {{{
|
||||
|
||||
let s:deprecation_msgs = []
|
||||
function! netrw#own#Deprecate(name, version, alternatives)
|
||||
" If running on neovim use vim.deprecate
|
||||
@@ -29,33 +27,4 @@ function! netrw#own#Deprecate(name, version, alternatives)
|
||||
call add(s:deprecation_msgs, a:name)
|
||||
endfunction
|
||||
|
||||
function! netrw#own#Open(file) abort
|
||||
if has('nvim')
|
||||
call luaeval('vim.ui.open(_A[1]) and nil', [a:file])
|
||||
else
|
||||
call dist#vim9#Open(a:file)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" Path Utilities: {{{
|
||||
|
||||
let s:slash = &shellslash ? '/' : '\'
|
||||
|
||||
function! netrw#own#PathJoin(...)
|
||||
let path = ""
|
||||
|
||||
for arg in a:000
|
||||
if empty(path)
|
||||
let path = arg
|
||||
else
|
||||
let path .= s:slash . arg
|
||||
endif
|
||||
endfor
|
||||
|
||||
return path
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
" vim:ts=8 sts=4 sw=4 et fdm=marker
|
||||
@@ -0,0 +1,48 @@
|
||||
" FUNCTIONS IN THIS FILE ARE MEANT TO BE USED BY NETRW.VIM AND NETRW.VIM ONLY.
|
||||
" THESE FUNCTIONS DON'T COMMIT TO ANY BACKWARDS COMPATIBILITY. SO CHANGES AND
|
||||
" BREAKAGES IF USED OUTSIDE OF NETRW.VIM ARE EXPECTED.
|
||||
|
||||
" netrw#os#Execute: executes a string using "!" {{{
|
||||
|
||||
function! netrw#os#Execute(cmd)
|
||||
if has("win32") && exepath(&shell) !~? '\v[\/]?(cmd|pwsh|powershell)(\.exe)?$' && !g:netrw_cygwin
|
||||
let savedShell=[&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash]
|
||||
set shell& shellcmdflag& shellxquote& shellxescape&
|
||||
set shellquote& shellpipe& shellredir& shellslash&
|
||||
try
|
||||
execute a:cmd
|
||||
finally
|
||||
let [&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash] = savedShell
|
||||
endtry
|
||||
else
|
||||
execute a:cmd
|
||||
endif
|
||||
|
||||
if v:shell_error
|
||||
call netrw#ErrorMsg(netrw#LogLevel('ERROR'), "shell signalled an error", 106)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#os#Escape: shellescape(), or special windows handling {{{
|
||||
|
||||
function! netrw#os#Escape(string, ...)
|
||||
return has('win32') && empty($SHELL) && &shellslash
|
||||
\ ? printf('"%s"', substitute(a:string, '"', '""', 'g'))
|
||||
\ : shellescape(a:string, a:0 > 0 ? a:1 : 0)
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#os#Open: open file with os viewer (eg. xdg-open) {{{
|
||||
|
||||
function! netrw#os#Open(file) abort
|
||||
if has('nvim')
|
||||
call luaeval('vim.ui.open(_A[1]) and nil', [a:file])
|
||||
else
|
||||
call dist#vim9#Open(a:file)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
" vim:ts=8 sts=4 sw=4 et fdm=marker
|
||||
+1
-1
@@ -15,7 +15,7 @@ if &cp || exists("g:loaded_netrwSettings")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrwSettings = "v177"
|
||||
let g:loaded_netrwSettings = "v179"
|
||||
|
||||
" NetrwSettings: {{{
|
||||
|
||||
|
||||
+1
-1
@@ -1447,7 +1447,7 @@ With a "dirname", the specified directory name is used.
|
||||
The "gn" map will take the word below the cursor and use that for
|
||||
changing the top of the tree listing.
|
||||
|
||||
|
||||
*netrw-curdir*
|
||||
DELETING BOOKMARKS *netrw-mB* {{{2
|
||||
|
||||
To delete a bookmark, use >
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrwPlugin = "v177"
|
||||
let g:loaded_netrwPlugin = "v179"
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
+9
-5
@@ -1,5 +1,5 @@
|
||||
" nohlsearch.vim: Auto turn off hlsearch
|
||||
" Last Change: 2024-07-31
|
||||
" Last Change: 2025-03-08
|
||||
" Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
"
|
||||
" turn off hlsearch after:
|
||||
@@ -11,10 +11,14 @@ if exists('g:loaded_nohlsearch')
|
||||
endif
|
||||
let g:loaded_nohlsearch = 1
|
||||
|
||||
func! s:Nohlsearch()
|
||||
if v:hlsearch
|
||||
call feedkeys("\<cmd>nohlsearch\<cr>", 'm')
|
||||
endif
|
||||
endfunc
|
||||
|
||||
augroup nohlsearch
|
||||
au!
|
||||
noremap <Plug>(nohlsearch) <cmd>nohlsearch<cr>
|
||||
noremap! <Plug>(nohlsearch) <cmd>nohlsearch<cr>
|
||||
au CursorHold * call feedkeys("\<Plug>(nohlsearch)", 'm')
|
||||
au InsertEnter * call feedkeys("\<Plug>(nohlsearch)", 'm')
|
||||
au CursorHold * call s:Nohlsearch()
|
||||
au InsertEnter * call s:Nohlsearch()
|
||||
augroup END
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim plugin for editing compressed files.
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Feb 06
|
||||
" Last Change: 2025 Feb 28
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Exit quickly when:
|
||||
@@ -20,11 +20,12 @@ augroup gzip
|
||||
" The functions are defined in autoload/gzip.vim.
|
||||
"
|
||||
" Set binary mode before reading the file.
|
||||
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst,*.br,*.lzo,*.lz4 setlocal bin
|
||||
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.bz3,*.Z,*.lzma,*.xz,*.lz,*.zst,*.br,*.lzo,*.lz4 setlocal bin
|
||||
|
||||
" Use "gzip -d" and similar commands, gunzip isn't always available.
|
||||
autocmd BufReadPost,FileReadPost *.br call gzip#read("brotli -d --rm")
|
||||
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
|
||||
autocmd BufReadPost,FileReadPost *.bz3 call gzip#read("bzip3 -d")
|
||||
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
|
||||
autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d")
|
||||
autocmd BufReadPost,FileReadPost *.lz4 call gzip#read("lz4 -d -q --rm")
|
||||
@@ -36,6 +37,7 @@ augroup gzip
|
||||
|
||||
autocmd BufWritePost,FileWritePost *.br call gzip#write("brotli --rm")
|
||||
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
|
||||
autocmd BufWritePost,FileWritePost *.bz3 call gzip#write("bzip3")
|
||||
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
|
||||
autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip")
|
||||
autocmd BufWritePost,FileWritePost *.lz4 call gzip#write("lz4 -q --rm")
|
||||
@@ -47,6 +49,7 @@ augroup gzip
|
||||
|
||||
autocmd FileAppendPre *.br call gzip#appre("brotli -d --rm")
|
||||
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
|
||||
autocmd FileAppendPre *.bz3 call gzip#appre("bzip3 -d")
|
||||
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
|
||||
autocmd FileAppendPre *.lz call gzip#appre("lzip -d")
|
||||
autocmd FileAppendPre *.lz4 call gzip#appre("lz4 -d -q --rm")
|
||||
@@ -58,6 +61,7 @@ augroup gzip
|
||||
|
||||
autocmd FileAppendPost *.br call gzip#write("brotli --rm")
|
||||
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
|
||||
autocmd FileAppendPost *.bz3 call gzip#write("bzip3")
|
||||
autocmd FileAppendPost *.gz call gzip#write("gzip")
|
||||
autocmd FileAppendPost *.lz call gzip#write("lzip")
|
||||
autocmd FileAppendPost *.lz4 call gzip#write("lz4 --rm")
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
" Vim plugin for showing matching parens
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 May 18
|
||||
" Last Change: 2025 Mar 14
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Exit quickly when:
|
||||
" - this plugin was already loaded (or disabled)
|
||||
" - when 'compatible' is set
|
||||
if exists("g:loaded_matchparen") || &cp
|
||||
" - Vim has no support for :defer
|
||||
if exists("g:loaded_matchparen") || &cp || exists(":defer") != 2
|
||||
finish
|
||||
endif
|
||||
let g:loaded_matchparen = 1
|
||||
@@ -21,17 +22,13 @@ if !exists("g:matchparen_disable_cursor_hl")
|
||||
let g:matchparen_disable_cursor_hl = 0
|
||||
endif
|
||||
|
||||
let s:has_matchaddpos = exists('*matchaddpos')
|
||||
|
||||
augroup matchparen
|
||||
" Replace all matchparen autocommands
|
||||
autocmd! CursorMoved,CursorMovedI,WinEnter,WinScrolled * call s:Highlight_Matching_Pair()
|
||||
autocmd! BufWinEnter * autocmd SafeState * ++once call s:Highlight_Matching_Pair()
|
||||
autocmd! WinLeave,BufLeave * call s:Remove_Matches()
|
||||
if exists('##TextChanged')
|
||||
autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair()
|
||||
autocmd! TextChangedP * call s:Remove_Matches()
|
||||
endif
|
||||
autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair()
|
||||
autocmd! TextChangedP * call s:Remove_Matches()
|
||||
augroup END
|
||||
|
||||
" Skip the rest if it was already done.
|
||||
@@ -97,19 +94,25 @@ func s:Highlight_Matching_Pair()
|
||||
" Find the match. When it was just before the cursor move it there for a
|
||||
" moment.
|
||||
if before > 0
|
||||
let has_getcurpos = exists("*getcurpos")
|
||||
if has_getcurpos
|
||||
" getcurpos() is more efficient but doesn't exist before 7.4.313.
|
||||
let save_cursor = getcurpos()
|
||||
else
|
||||
let save_cursor = winsaveview()
|
||||
endif
|
||||
let save_cursor = getcurpos()
|
||||
call cursor(c_lnum, c_col - before)
|
||||
defer setpos('.', save_cursor)
|
||||
endif
|
||||
|
||||
if !has("syntax") || !exists("g:syntax_on")
|
||||
let s_skip = "0"
|
||||
else
|
||||
" do not attempt to match when the syntax item where the cursor is
|
||||
" indicates there does not exist a matching parenthesis, e.g. for shells
|
||||
" case statement: "case $var in foobar)"
|
||||
"
|
||||
" add the check behind a filetype check, so it only needs to be
|
||||
" evaluated for certain filetypes
|
||||
if ['sh']->index(&filetype) >= 0 &&
|
||||
\ synstack(".", col("."))->indexof({_, id -> synIDattr(id, "name")
|
||||
\ =~? "shSnglCase"}) >= 0
|
||||
return
|
||||
endif
|
||||
" Build an expression that detects whether the current cursor position is
|
||||
" in certain syntax types (string, comment, etc.), for use as
|
||||
" searchpairpos()'s skip argument.
|
||||
@@ -181,30 +184,12 @@ func s:Highlight_Matching_Pair()
|
||||
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
|
||||
endtry
|
||||
|
||||
if before > 0
|
||||
if has_getcurpos
|
||||
call setpos('.', save_cursor)
|
||||
else
|
||||
call winrestview(save_cursor)
|
||||
endif
|
||||
endif
|
||||
|
||||
" If a match is found setup match highlighting.
|
||||
if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
|
||||
if s:has_matchaddpos
|
||||
if !g:matchparen_disable_cursor_hl
|
||||
call add(w:matchparen_ids, matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10))
|
||||
else
|
||||
call add(w:matchparen_ids, matchaddpos('MatchParen', [[m_lnum, m_col]], 10))
|
||||
endif
|
||||
if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
|
||||
if !g:matchparen_disable_cursor_hl
|
||||
call add(w:matchparen_ids, matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10))
|
||||
else
|
||||
if !g:matchparen_disable_cursor_hl
|
||||
exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
|
||||
\ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
|
||||
else
|
||||
exe '3match MatchParen /\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
|
||||
endif
|
||||
call add(w:matchparen_ids, 3)
|
||||
call add(w:matchparen_ids, matchaddpos('MatchParen', [[m_lnum, m_col]], 10))
|
||||
endif
|
||||
let w:paren_hl_on = 1
|
||||
endif
|
||||
|
||||
@@ -38,6 +38,7 @@ augroup tar
|
||||
au BufReadCmd *.lrp call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.bz2 call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.bz3 call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.gz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.lz4 call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
|
||||
|
||||
@@ -29,17 +29,17 @@ com! -nargs=0 VimballList call vimball#Vimball(0)
|
||||
com! -nargs=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings()
|
||||
augroup Vimball
|
||||
au!
|
||||
au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip,*.vba.xz
|
||||
au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.bz3,*.vba.zip,*.vba.xz
|
||||
\ if getline(1) =~ '^" Vimball Archiver' |
|
||||
\ setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'|setlocal ma ff=unix noma|endif|if line('$') > 1|call vimball#ShowMesg(0, "Source this file to extract it! (:so %)")|endif |
|
||||
\ endif
|
||||
au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip,*.vba.xz let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif
|
||||
au SourceCmd *.vba.gz,*.vba.bz2,*.vba.bz3,*.vba.zip,*.vba.xz let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif
|
||||
au SourceCmd *.vba if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|call vimball#Vimball(1)|close|else|call vimball#Vimball(1)|endif
|
||||
au BufEnter *.vmb,*.vmb.gz,*.vmb.bz2,*.vmb.zip,*.vmb.xz
|
||||
au BufEnter *.vmb,*.vmb.gz,*.vmb.bz2,*.vmb.bz3,*.vmb.zip,*.vmb.xz
|
||||
\ if getline(1) =~ '^" Vimball Archiver' |
|
||||
\ setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'|setlocal ma ff=unix noma|endif|if line('$') > 1|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")|endif |
|
||||
\ endif
|
||||
au SourceCmd *.vmb.gz,*.vmb.bz2,*.vmb.zip,*.vmb.xz let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif
|
||||
au SourceCmd *.vmb.gz,*.vmb.bz2,*.vmb.bz3,*.vmb.zip,*.vmb.xz let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif
|
||||
au SourceCmd *.vmb if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|call vimball#Vimball(1)|close|else|call vimball#Vimball(1)|endif
|
||||
augroup END
|
||||
|
||||
|
||||
+22
-21
@@ -2,7 +2,7 @@
|
||||
" This file is normally sourced from menu.vim.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Jan 04
|
||||
" Last Change: 2025 Mar 09
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Define the SetSyn function, used for the Syntax menu entries.
|
||||
@@ -578,26 +578,27 @@ an 50.150.190 &Syntax.T.TealInfo :cal SetSyn("tli")<CR>
|
||||
an 50.150.200 &Syntax.T.Telix\ Salt :cal SetSyn("tsalt")<CR>
|
||||
an 50.150.210 &Syntax.T.Termcap/Printcap :cal SetSyn("ptcap")<CR>
|
||||
an 50.150.220 &Syntax.T.Terminfo :cal SetSyn("terminfo")<CR>
|
||||
an 50.150.230 &Syntax.T.Tera\ Term :cal SetSyn("teraterm")<CR>
|
||||
an 50.150.240 &Syntax.T.TeX.TeX/LaTeX :cal SetSyn("tex")<CR>
|
||||
an 50.150.250 &Syntax.T.TeX.plain\ TeX :cal SetSyn("plaintex")<CR>
|
||||
an 50.150.260 &Syntax.T.TeX.Initex :cal SetSyn("initex")<CR>
|
||||
an 50.150.270 &Syntax.T.TeX.ConTeXt :cal SetSyn("context")<CR>
|
||||
an 50.150.280 &Syntax.T.TeX.TeX\ configuration :cal SetSyn("texmf")<CR>
|
||||
an 50.150.290 &Syntax.T.TeX.Texinfo :cal SetSyn("texinfo")<CR>
|
||||
an 50.150.300 &Syntax.T.TF\ mud\ client :cal SetSyn("tf")<CR>
|
||||
an 50.150.310 &Syntax.T.Tidy\ configuration :cal SetSyn("tidy")<CR>
|
||||
an 50.150.320 &Syntax.T.Tilde :cal SetSyn("tilde")<CR>
|
||||
an 50.150.330 &Syntax.T.Tmux\ configuration :cal SetSyn("tmux")<CR>
|
||||
an 50.150.340 &Syntax.T.TPP :cal SetSyn("tpp")<CR>
|
||||
an 50.150.350 &Syntax.T.Trasys\ input :cal SetSyn("trasys")<CR>
|
||||
an 50.150.360 &Syntax.T.Treetop :cal SetSyn("treetop")<CR>
|
||||
an 50.150.370 &Syntax.T.Trustees :cal SetSyn("trustees")<CR>
|
||||
an 50.150.380 &Syntax.T.TSS.Command\ Line :cal SetSyn("tsscl")<CR>
|
||||
an 50.150.390 &Syntax.T.TSS.Geometry :cal SetSyn("tssgm")<CR>
|
||||
an 50.150.400 &Syntax.T.TSS.Optics :cal SetSyn("tssop")<CR>
|
||||
an 50.150.410 &Syntax.T.Typescript :cal SetSyn("typescript")<CR>
|
||||
an 50.150.420 &Syntax.T.TypescriptReact :cal SetSyn("typescriptreact")<CR>
|
||||
an 50.150.230 &Syntax.T.Tera :cal SetSyn("tera")<CR>
|
||||
an 50.150.240 &Syntax.T.Tera\ Term :cal SetSyn("teraterm")<CR>
|
||||
an 50.150.250 &Syntax.T.TeX.TeX/LaTeX :cal SetSyn("tex")<CR>
|
||||
an 50.150.260 &Syntax.T.TeX.plain\ TeX :cal SetSyn("plaintex")<CR>
|
||||
an 50.150.270 &Syntax.T.TeX.Initex :cal SetSyn("initex")<CR>
|
||||
an 50.150.280 &Syntax.T.TeX.ConTeXt :cal SetSyn("context")<CR>
|
||||
an 50.150.290 &Syntax.T.TeX.TeX\ configuration :cal SetSyn("texmf")<CR>
|
||||
an 50.150.300 &Syntax.T.TeX.Texinfo :cal SetSyn("texinfo")<CR>
|
||||
an 50.150.310 &Syntax.T.TF\ mud\ client :cal SetSyn("tf")<CR>
|
||||
an 50.150.320 &Syntax.T.Tidy\ configuration :cal SetSyn("tidy")<CR>
|
||||
an 50.150.330 &Syntax.T.Tilde :cal SetSyn("tilde")<CR>
|
||||
an 50.150.340 &Syntax.T.Tmux\ configuration :cal SetSyn("tmux")<CR>
|
||||
an 50.150.350 &Syntax.T.TPP :cal SetSyn("tpp")<CR>
|
||||
an 50.150.360 &Syntax.T.Trasys\ input :cal SetSyn("trasys")<CR>
|
||||
an 50.150.370 &Syntax.T.Treetop :cal SetSyn("treetop")<CR>
|
||||
an 50.150.380 &Syntax.T.Trustees :cal SetSyn("trustees")<CR>
|
||||
an 50.150.390 &Syntax.T.TSS.Command\ Line :cal SetSyn("tsscl")<CR>
|
||||
an 50.150.400 &Syntax.T.TSS.Geometry :cal SetSyn("tssgm")<CR>
|
||||
an 50.150.410 &Syntax.T.TSS.Optics :cal SetSyn("tssop")<CR>
|
||||
an 50.150.420 &Syntax.T.Typescript :cal SetSyn("typescript")<CR>
|
||||
an 50.150.430 &Syntax.T.TypescriptReact :cal SetSyn("typescriptreact")<CR>
|
||||
an 50.160.100 &Syntax.UV.Udev\ config :cal SetSyn("udevconf")<CR>
|
||||
an 50.160.110 &Syntax.UV.Udev\ permissions :cal SetSyn("udevperm")<CR>
|
||||
an 50.160.120 &Syntax.UV.Udev\ rules :cal SetSyn("udevrules")<CR>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user