Compare commits
342 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f3480c943 | ||
|
|
926c3f45a2 | ||
|
|
fda700cb04 | ||
|
|
72314bb85f | ||
|
|
7bed263c34 | ||
|
|
110dd905dd | ||
|
|
8ceb99001b | ||
|
|
fcaeb3d42b | ||
|
|
ffd6d31cb2 | ||
|
|
a9058440b7 | ||
|
|
c4ffeddfe5 | ||
|
|
d1c3ef1f47 | ||
|
|
5c23343770 | ||
|
|
b9efc72c24 | ||
|
|
c6754de5dd | ||
|
|
cf40409e7d | ||
|
|
64c6bfd8ee | ||
|
|
2bad26fe2c | ||
|
|
4e7727dd88 | ||
|
|
075ad70474 | ||
|
|
a555069b7d | ||
|
|
8c14e79737 | ||
|
|
813a538bb3 | ||
|
|
2e31065a65 | ||
|
|
e214692718 | ||
|
|
00624a2fa0 | ||
|
|
40ed6711bd | ||
|
|
2b0882fa65 | ||
|
|
df63da98d8 | ||
|
|
3770574e4a | ||
|
|
26c11c5688 | ||
|
|
8750e3cf81 | ||
|
|
4e5c3cf07b | ||
|
|
6b36645f07 | ||
|
|
a5218a7330 | ||
|
|
567cae2630 | ||
|
|
cb0c113ddc | ||
|
|
69866449dd | ||
|
|
d2c977bb7c | ||
|
|
596a9f29c8 | ||
|
|
aabca259fa | ||
|
|
e670d17342 | ||
|
|
6701abfb52 | ||
|
|
22cbc8a4e1 | ||
|
|
22a97fc241 | ||
|
|
ab4f27e2a8 | ||
|
|
6ffe084e6e | ||
|
|
cc6be3e755 | ||
|
|
6bf131888a | ||
|
|
73b2d3790c | ||
|
|
060623e4a3 | ||
|
|
58f9befca1 | ||
|
|
ac63787734 | ||
|
|
cb0b99f067 | ||
|
|
25aabc2b8e | ||
|
|
67abf1592c | ||
|
|
bb800a7907 | ||
|
|
bc8f79d36a | ||
|
|
30c762d99a | ||
|
|
2076463e38 | ||
|
|
9588666360 | ||
|
|
2dd613f57b | ||
|
|
4ae16d721a | ||
|
|
fdbadea4b6 | ||
|
|
424da590e4 | ||
|
|
2c133f6c1a | ||
|
|
9358b8d993 | ||
|
|
305127f9f2 | ||
|
|
1b08d2cd07 | ||
|
|
5994329667 | ||
|
|
6cd2d1df92 | ||
|
|
2c5240ec8b | ||
|
|
521fb7e143 | ||
|
|
f1952d9fa8 | ||
|
|
4f9074b96c | ||
|
|
bee966d3fe | ||
|
|
cb5e7a2026 | ||
|
|
8f0fe20ff1 | ||
|
|
03042a2753 | ||
|
|
4b0018feca | ||
|
|
20a94f44b3 | ||
|
|
ca48202b6f | ||
|
|
7fbbd7fdc6 | ||
|
|
6a650bf696 | ||
|
|
1fc47c2c9b | ||
|
|
d56f15caf6 | ||
|
|
4d62a2f443 | ||
|
|
2a94e98792 | ||
|
|
caee7956a2 | ||
|
|
3570631dc6 | ||
|
|
3d37231437 | ||
|
|
da4e433dc3 | ||
|
|
b2a4c110a5 | ||
|
|
6709816f78 | ||
|
|
4f174f0de9 | ||
|
|
cd8a3eaf53 | ||
|
|
08b1c61e8b | ||
|
|
57f9ce1a09 | ||
|
|
b23c1fc596 | ||
|
|
15d270019e | ||
|
|
5a53925a6e | ||
|
|
ce3b0136c6 | ||
|
|
2f54c13292 | ||
|
|
33c1da7ff4 | ||
|
|
deba02ddd4 | ||
|
|
2b358adde0 | ||
|
|
ef9e3f8924 | ||
|
|
1858e2b22a | ||
|
|
1b1c9f272d | ||
|
|
2b89afd5eb | ||
|
|
43cb8e1c3b | ||
|
|
1bf1bf569b | ||
|
|
a390e984db | ||
|
|
171c50e0b0 | ||
|
|
8ebdbc9e6d | ||
|
|
c1c177a47b | ||
|
|
feaccd2395 | ||
|
|
87ca5e86fa | ||
|
|
ec3cebbd2b | ||
|
|
4bca4897a1 | ||
|
|
daef8c7437 | ||
|
|
650dcfc8d1 | ||
|
|
b0221819f3 | ||
|
|
7b7cda67a1 | ||
|
|
c229a6ac07 | ||
|
|
10407df7a9 | ||
|
|
6b89dd6a72 | ||
|
|
67ec655383 | ||
|
|
9198c1f2b1 | ||
|
|
5f5131d775 | ||
|
|
a56f02d824 | ||
|
|
c4a4038603 | ||
|
|
1c14030aff | ||
|
|
3932072ab4 | ||
|
|
b731800522 | ||
|
|
5985879e3c | ||
|
|
50f3ec2898 | ||
|
|
7d254dbc2d | ||
|
|
c038427d2a | ||
|
|
ae9021a840 | ||
|
|
84394f2be4 | ||
|
|
a5a1534753 | ||
|
|
fea96c00e5 | ||
|
|
0ab500dede | ||
|
|
a36acb7ac4 | ||
|
|
3ec6c1fe3b | ||
|
|
d3e277f279 | ||
|
|
47416d1a74 | ||
|
|
d4802ec485 | ||
|
|
ac709e2fc0 | ||
|
|
d5dc58aeed | ||
|
|
a8c664a042 | ||
|
|
c6944913f0 | ||
|
|
00b55370b3 | ||
|
|
e08bfef88b | ||
|
|
198734897e | ||
|
|
ba75507c62 | ||
|
|
c59c1e0d88 | ||
|
|
d7b616d0ad | ||
|
|
982ef16059 | ||
|
|
2b126a6892 | ||
|
|
436f39390f | ||
|
|
a0e1f06f04 | ||
|
|
0672595fd5 | ||
|
|
5036e69852 | ||
|
|
96952b2e98 | ||
|
|
c290009e99 | ||
|
|
8079917447 | ||
|
|
5a33ce2a66 | ||
|
|
6e6386716f | ||
|
|
2e3cd52fa0 | ||
|
|
f3eac695bf | ||
|
|
209ec90b9b | ||
|
|
396058acd0 | ||
|
|
8f4fb007e4 | ||
|
|
5a679b2263 | ||
|
|
215c3261a2 | ||
|
|
dbf749bd5a | ||
|
|
f5a94d5165 | ||
|
|
3c81f47a05 | ||
|
|
d7ae263af8 | ||
|
|
47510f3d65 | ||
|
|
1ace49fb98 | ||
|
|
5d03525cde | ||
|
|
de3295dd0c | ||
|
|
ae3cfa47d3 | ||
|
|
989426be6e | ||
|
|
bd734c3bea | ||
|
|
ba9aed4497 | ||
|
|
b583eda703 | ||
|
|
cd6ee69358 | ||
|
|
5ae6f9985e | ||
|
|
7687238e1b | ||
|
|
0f058d1320 | ||
|
|
2bbd0d30ee | ||
|
|
29bb67f1be | ||
|
|
69fb5afb3b | ||
|
|
dd75fcfbdf | ||
|
|
1ea428883f | ||
|
|
4c8da025ef | ||
|
|
c97b3febc8 | ||
|
|
a634b92b96 | ||
|
|
f8da324619 | ||
|
|
4a82bdfaa8 | ||
|
|
41e6f7d6ba | ||
|
|
54844857fd | ||
|
|
b07b9dc4da | ||
|
|
e467189022 | ||
|
|
f4ee1cb74b | ||
|
|
b56cef0be0 | ||
|
|
d4afbdd071 | ||
|
|
7879bc5c13 | ||
|
|
1e33cd72b6 | ||
|
|
b852305dbf | ||
|
|
75b277d35c | ||
|
|
9771b2a67f | ||
|
|
1087b8c29a | ||
|
|
2a281ccca0 | ||
|
|
e6c9aa5e6a | ||
|
|
85f4521808 | ||
|
|
580c1fcb4a | ||
|
|
27e12c7669 | ||
|
|
fa145f2009 | ||
|
|
26e8f7b0ab | ||
|
|
a991ce9c08 | ||
|
|
ac9c6d5c78 | ||
|
|
9960ebcace | ||
|
|
20d161ace3 | ||
|
|
290b887e8c | ||
|
|
ea746f9e86 | ||
|
|
0e95841004 | ||
|
|
f449825ae2 | ||
|
|
9b259f520e | ||
|
|
d615a3122a | ||
|
|
d2f4800099 | ||
|
|
da5da654de | ||
|
|
c661e11e9c | ||
|
|
b5a0719cb7 | ||
|
|
b6d01f131c | ||
|
|
9a00e7c7cf | ||
|
|
85ff0c1912 | ||
|
|
8e5f26ec6a | ||
|
|
4dbb2669e9 | ||
|
|
64885645e7 | ||
|
|
0583491277 | ||
|
|
119fdd9293 | ||
|
|
317468aace | ||
|
|
3d90f71b76 | ||
|
|
fe7b20a1a3 | ||
|
|
b9a974df9e | ||
|
|
b74ebfc6bf | ||
|
|
b043ff34c1 | ||
|
|
2dfc22908e | ||
|
|
3f168ec8ae | ||
|
|
993b17569b | ||
|
|
12a0d999b1 | ||
|
|
cd39b69b02 | ||
|
|
20f48d5b2d | ||
|
|
ba77bbb5c7 | ||
|
|
b32064fedb | ||
|
|
6d11347260 | ||
|
|
4a1ad55564 | ||
|
|
f59cbefd0a | ||
|
|
7086b3e76a | ||
|
|
3bd7fa12e1 | ||
|
|
6ee7b521fa | ||
|
|
7ece036d72 | ||
|
|
e379e21ddc | ||
|
|
8c358e024f | ||
|
|
a4dfbfed89 | ||
|
|
6de4e58cf2 | ||
|
|
e085dfda5d | ||
|
|
1f025b01e2 | ||
|
|
f7f746b167 | ||
|
|
f3b68d4759 | ||
|
|
900894b09a | ||
|
|
3695d0e41b | ||
|
|
28a23602e8 | ||
|
|
ee865f37ac | ||
|
|
112431f217 | ||
|
|
789b8854d2 | ||
|
|
5a05d374d3 | ||
|
|
02902b547b | ||
|
|
b90e3bc491 | ||
|
|
413f83990f | ||
|
|
f057aca1cc | ||
|
|
db38552dcd | ||
|
|
03ca4002c1 | ||
|
|
e845b38dab | ||
|
|
9eb1ce5315 | ||
|
|
2dede3dbfa | ||
|
|
5277cfaf8a | ||
|
|
54f70cf078 | ||
|
|
02774f99ce | ||
|
|
3474594239 | ||
|
|
a76fbe6e00 | ||
|
|
91adcbdcc1 | ||
|
|
f109bf93c9 | ||
|
|
c1946267f2 | ||
|
|
54e1f56cf2 | ||
|
|
3aa114463f | ||
|
|
e1b95f5252 | ||
|
|
ec8deb092c | ||
|
|
b80ae6cec3 | ||
|
|
ceffca683b | ||
|
|
c3b315f496 | ||
|
|
abc808112e | ||
|
|
46a0582ffa | ||
|
|
e6fca0e822 | ||
|
|
7fe8f43f49 | ||
|
|
46bdae036a | ||
|
|
edcba96c00 | ||
|
|
7398f367d5 | ||
|
|
960822a11f | ||
|
|
7c948644fb | ||
|
|
790f9a890c | ||
|
|
ca0ffc0d63 | ||
|
|
8ffcb47a43 | ||
|
|
4927bc7d27 | ||
|
|
99c3849a92 | ||
|
|
b895b0fabc | ||
|
|
ceee7a808c | ||
|
|
696270bcae | ||
|
|
02c51b1dd8 | ||
|
|
1926ae4184 | ||
|
|
db54e989b5 | ||
|
|
a7aba6ca50 | ||
|
|
78c5a5abc6 | ||
|
|
87018255e3 | ||
|
|
98e68c07ce | ||
|
|
03cd697d63 | ||
|
|
5790a54166 | ||
|
|
d606fccf6f | ||
|
|
aa64ba1587 | ||
|
|
476733f3d0 | ||
|
|
1db1514365 | ||
|
|
2ce070c27a | ||
|
|
6f00d17e8d | ||
|
|
3da696db6a | ||
|
|
346ac1429c | ||
|
|
063c562a37 | ||
|
|
00cd18222e |
@@ -29,7 +29,6 @@ environment:
|
||||
# disabled
|
||||
# - FEATURE: TINY
|
||||
# - FEATURE: NORMAL
|
||||
# - FEATURE: BIG
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
@@ -5,6 +5,8 @@ coverage:
|
||||
default:
|
||||
threshold: 0.05%
|
||||
|
||||
comment: false
|
||||
|
||||
# Files not run by tests
|
||||
ignore:
|
||||
- "src/dosinst.c"
|
||||
|
||||
16
.github/CODEOWNERS
vendored
16
.github/CODEOWNERS
vendored
@@ -124,6 +124,9 @@ runtime/ftplugin/cs.vim @nickspoons
|
||||
runtime/ftplugin/csh.vim @dkearns
|
||||
runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/debchangelog.vim @jamessan
|
||||
runtime/ftplugin/debcontrol.vim @jamessan
|
||||
runtime/ftplugin/debsources.vim @jamessan
|
||||
runtime/ftplugin/desktop.vim @e-kwsm
|
||||
runtime/ftplugin/dosbatch.vim @mrdubya
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
@@ -163,6 +166,8 @@ runtime/ftplugin/ishd.vim @dkearns
|
||||
runtime/ftplugin/j.vim @glts
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/json.vim @dbarnett
|
||||
runtime/ftplugin/json5.vim @dkearns
|
||||
runtime/ftplugin/jsonc.vim @izhakjakov
|
||||
runtime/ftplugin/julia.vim @carlobaldassi
|
||||
runtime/ftplugin/kconfig.vim @chrisbra
|
||||
@@ -219,6 +224,7 @@ runtime/ftplugin/spec.vim @ignatenkobrain
|
||||
runtime/ftplugin/ssa.vim @ObserverOfTime
|
||||
runtime/ftplugin/swayconfig.vim @jamespeapen
|
||||
runtime/ftplugin/systemverilog.vim @Kocha
|
||||
runtime/ftplugin/swig.vim @jmarrec
|
||||
runtime/ftplugin/tap.vim @petdance
|
||||
runtime/ftplugin/tcsh.vim @dkearns
|
||||
runtime/ftplugin/tidy.vim @dkearns
|
||||
@@ -232,6 +238,7 @@ runtime/ftplugin/vdf.vim @ObserverOfTime
|
||||
runtime/ftplugin/wast.vim @rhysd
|
||||
runtime/ftplugin/wget.vim @dkearns
|
||||
runtime/ftplugin/wget2.vim @dkearns
|
||||
runtime/ftplugin/xcompose.vim @ObserverOfTime
|
||||
runtime/ftplugin/xml.vim @chrisbra
|
||||
runtime/ftplugin/xs.vim @petdance
|
||||
runtime/ftplugin/zsh.vim @chrisbra
|
||||
@@ -355,6 +362,12 @@ runtime/syntax/d.vim @JesseKPhillips
|
||||
runtime/syntax/dart.vim @pr3d4t0r
|
||||
runtime/syntax/datascript.vim @dpelle
|
||||
runtime/syntax/dcl.vim @cecamp
|
||||
runtime/syntax/deb822sources.vim @jamessan
|
||||
runtime/syntax/debchangelog.vim @jamessan
|
||||
runtime/syntax/debcontrol.vim @jamessan
|
||||
runtime/syntax/debcopyright.vim @jamessan
|
||||
runtime/syntax/debsources.vim @jamessan
|
||||
runtime/syntax/dep3patch.vim @jamessan
|
||||
runtime/syntax/desktop.vim @e-kwsm
|
||||
runtime/syntax/dosbatch.vim @mrdubya
|
||||
runtime/syntax/dosini.vim @xuhdev
|
||||
@@ -477,6 +490,7 @@ runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sdoc.vim @gpanders
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/sh.vim @cecamp
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/sm.vim @cecamp
|
||||
runtime/syntax/solidity.vim @cothi
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
@@ -489,6 +503,7 @@ runtime/syntax/sshdconfig.vim @Jakuje
|
||||
runtime/syntax/sudoers.vim @e-kwsm
|
||||
runtime/syntax/svn.vim @hdima
|
||||
runtime/syntax/swayconfig.vim @jamespeapen
|
||||
runtime/syntax/swig.vim @jmarrec
|
||||
runtime/syntax/systemverilog.vim @Kocha
|
||||
runtime/syntax/tags.vim @cecamp
|
||||
runtime/syntax/tap.vim @petdance
|
||||
@@ -513,6 +528,7 @@ runtime/syntax/wdl.vim @zenmatic
|
||||
runtime/syntax/wget.vim @dkearns
|
||||
runtime/syntax/wget2.vim @dkearns
|
||||
runtime/syntax/xbl.vim @dkearns
|
||||
runtime/syntax/xcompose.vim @ObserverOfTime
|
||||
runtime/syntax/xmath.vim @cecamp
|
||||
runtime/syntax/xml.vim @chrisbra
|
||||
runtime/syntax/xs.vim @petdance
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
8
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -9,10 +9,10 @@ body:
|
||||
value: |
|
||||
Thanks for reporting issues of Vim!
|
||||
|
||||
If you want to report a security issue, instead of reporting it here
|
||||
you can alternatively disclose it on
|
||||
[huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=vim%2Fvim&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim).
|
||||
They have rewards in the form of money, swag and CVEs.
|
||||
If you want to report a security issue, instead of reporting it here publicly,
|
||||
please disclose it privately via mail to vim-security@googlegroups.com.
|
||||
(It's a private list read only by the maintainers,
|
||||
but anybody can post, after moderation.)
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
- type: textarea
|
||||
|
||||
48
.github/labeler.yml
vendored
48
.github/labeler.yml
vendored
@@ -8,6 +8,9 @@ CI:
|
||||
- any: ['.appveyor.yml']
|
||||
- any: ['.codecov.yml']
|
||||
|
||||
documentation:
|
||||
- all: ['*/doc/*']
|
||||
|
||||
translation:
|
||||
- any: ['src/po/*.po']
|
||||
|
||||
@@ -47,6 +50,46 @@ if_tcl:
|
||||
- any: ['src/proto/if_tcl.pro']
|
||||
- any: ['runtime/doc/if_tcl.txt']
|
||||
|
||||
installer:
|
||||
- any: ['nsis/**']
|
||||
- any: ['src/dosinst.*']
|
||||
- any: ['src/uninstall.c']
|
||||
|
||||
platform-mac:
|
||||
- any: ['src/INSTALLmac.txt']
|
||||
- any: ['src/os_mac*']
|
||||
- any: ['src/proto/os_mac*']
|
||||
|
||||
platform-windows:
|
||||
- any: ['nsis/**']
|
||||
- any: ['src/*.bat']
|
||||
- any: ['src/*.bmp']
|
||||
- any: ['src/*.ico']
|
||||
- any: ['src/GvimExt/*']
|
||||
- any: ['src/INSTALLpc.txt']
|
||||
- any: ['src/Make_cyg*.mak']
|
||||
- any: ['src/Make_ming.mak']
|
||||
- any: ['src/Make_mvc.mak']
|
||||
- any: ['src/dosinst.*']
|
||||
- any: ['src/gui_dwrite.*']
|
||||
- any: ['src/gui_w32*']
|
||||
- any: ['src/if_ole.*']
|
||||
- any: ['src/iid_ole.c']
|
||||
- any: ['src/os_mswin*']
|
||||
- any: ['src/os_w32*']
|
||||
- any: ['src/os_win32.*']
|
||||
- any: ['src/proto/gui_w32.pro']
|
||||
- any: ['src/proto/os_mswin.pro']
|
||||
- any: ['src/proto/os_win32.pro']
|
||||
- any: ['src/proto/winclip.pro']
|
||||
- any: ['src/uninstall.c']
|
||||
- any: ['src/vim.manifest']
|
||||
- any: ['src/vim.rc']
|
||||
- any: ['src/vimrun.c']
|
||||
- any: ['src/winclip.c']
|
||||
- any: ['src/xpm/**']
|
||||
- any: ['src/xpm_w32.*']
|
||||
|
||||
runtime:
|
||||
- any: ['runtime/ftplugin']
|
||||
- any: ['runtime/syntax']
|
||||
@@ -55,6 +98,9 @@ runtime:
|
||||
|
||||
termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
|
||||
|
||||
netrw:
|
||||
plugin-netrw:
|
||||
- any: ['runtime/plugin/netrwPlugin.vim']
|
||||
- any: ['runtime/autoload/netrw*']
|
||||
|
||||
xxd:
|
||||
- any: ['src/xxd/*']
|
||||
|
||||
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
GCC_VER: 13
|
||||
CLANG_VER: 16
|
||||
CLANG_VER: 17
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
@@ -110,6 +110,8 @@ jobs:
|
||||
tcl-dev \
|
||||
cscope \
|
||||
libsodium-dev \
|
||||
attr \
|
||||
libattr1-dev
|
||||
)
|
||||
fi
|
||||
sudo apt-get update && sudo apt-get install -y "${PKGS[@]}"
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
# Contributing to Vim
|
||||
|
||||
Patches are welcome in whatever form.
|
||||
Discussions about patches happen on the vim-dev maillist.
|
||||
Discussions about patches happen on the [vim-dev][0] mailing list.
|
||||
If you create a pull request on GitHub it will be
|
||||
forwarded to the vim-dev maillist. You can also send your patch there
|
||||
directly. In that case an attachment with a unified diff format is preferred.
|
||||
Information about the maillist can be found [on the Vim website].
|
||||
|
||||
[on the Vim website]: http://www.vim.org/maillist.php#vim-dev
|
||||
forwarded to the vim-dev mailing list. You can also send your patch there
|
||||
directly (but please note, the initial posting is subject to moderation).
|
||||
In that case an attachment with a unified diff format is preferred.
|
||||
Information about the mailing list can be found [on the Vim website][0]
|
||||
|
||||
A pull request has the advantage that it will trigger the Continuous
|
||||
Integration tests, you will be warned of problems (you can ignore the coverage
|
||||
@@ -22,31 +21,27 @@ 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.
|
||||
|
||||
|
||||
# Reporting issues
|
||||
|
||||
We use GitHub issues, but that is not a requirement. Writing to the Vim
|
||||
maillist is also fine.
|
||||
mailing list is also fine.
|
||||
|
||||
Please use the GitHub issues only for actual issues. If you are not 100% sure
|
||||
that your problem is a Vim issue, please first discuss this on the Vim user
|
||||
maillist. Try reproducing the problem without any of your plugins or settings:
|
||||
mailing list. Try reproducing the problem without any of your plugins or settings:
|
||||
|
||||
vim --clean
|
||||
|
||||
If you report an issue, please describe exactly how to reproduce it.
|
||||
For example, don't say "insert some text" but say what you did exactly:
|
||||
"ahere is some text<Esc>".
|
||||
`ahere is some text<Esc>`.
|
||||
Ideally, the steps you list can be used to write a test to verify the problem
|
||||
is fixed.
|
||||
|
||||
Feel free to report even the smallest problem, also typos in the documentation.
|
||||
|
||||
You can find known issues in the todo file: ":help todo".
|
||||
Or open [the todo file] on GitHub to see the latest version.
|
||||
|
||||
[the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
|
||||
|
||||
You can find known issues in the todo file: `:help todo`.
|
||||
Or open [the todo file][todo list] on GitHub to see the latest version.
|
||||
|
||||
# Syntax, indent and other runtime files
|
||||
|
||||
@@ -57,11 +52,10 @@ If you find a problem with one of these files or have a suggestion for
|
||||
improvement, please first try to contact the maintainer directly.
|
||||
Look in the header of the file for the name and email address.
|
||||
|
||||
The maintainer will take care of issues and send updates to Bram for
|
||||
The maintainer will take care of issues and send updates to the Vim project for
|
||||
distribution with Vim.
|
||||
|
||||
If the maintainer does not respond, contact the vim-dev maillist.
|
||||
|
||||
If the maintainer does not respond, contact the [vim-dev][0] mailing list.
|
||||
|
||||
# Translations
|
||||
|
||||
@@ -77,8 +71,28 @@ can be translated:
|
||||
The help files can be translated and made available separately.
|
||||
See https://www.vim.org/translations.php for examples.
|
||||
|
||||
# How do I contribute to the project?
|
||||
|
||||
Please have a look at the following [discussion][6], which should give you some
|
||||
ideas. Please also check the [develop.txt][7] helpfile for the recommended
|
||||
style. Often it's also beneficial to check the surrounding code for the style
|
||||
being used.
|
||||
|
||||
# I have a question
|
||||
|
||||
If you have some question on the style guide, please contact the [vim-dev][0]
|
||||
mailing list. For other questions please use the [Vi Stack Exchange][8] website, the
|
||||
[vim-use][9] mailing list or make use of the [discussion][10] feature here at github.
|
||||
|
||||
[todo list]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
|
||||
[0]: http://www.vim.org/maillist.php#vim-dev
|
||||
[1]: https://github.com/vim/vim/blob/master/src/po/README.txt
|
||||
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
|
||||
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
|
||||
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
|
||||
[5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi
|
||||
[6]: https://github.com/vim/vim/discussions/13087
|
||||
[7]: https://github.com/vim/vim/blob/master/runtime/doc/develop.txt
|
||||
[8]: https://vi.stackexchange.com
|
||||
[9]: http://www.vim.org/maillist.php#vim-use
|
||||
[10]: https://github.com/vim/vim/discussions
|
||||
|
||||
21
Filelist
21
Filelist
@@ -698,6 +698,7 @@ RT_ALL = \
|
||||
runtime/doc/*.pl \
|
||||
runtime/doc/*.txt \
|
||||
runtime/doc/Makefile \
|
||||
runtime/doc/Make_all.mak \
|
||||
runtime/doc/doctags.c \
|
||||
runtime/doc/doctags.vim \
|
||||
runtime/doc/test_urls.vim \
|
||||
@@ -756,6 +757,17 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/dvorak/dvorak/enable.vim \
|
||||
runtime/pack/dist/opt/dvorak/dvorak/disable.vim \
|
||||
runtime/pack/dist/opt/editexisting/plugin/editexisting.vim \
|
||||
runtime/pack/dist/opt/editorconfig/.editorconfig \
|
||||
runtime/pack/dist/opt/editorconfig/CONTRIBUTORS \
|
||||
runtime/pack/dist/opt/editorconfig/LICENSE* \
|
||||
runtime/pack/dist/opt/editorconfig/mkzip.sh \
|
||||
runtime/pack/dist/opt/editorconfig/README.md \
|
||||
runtime/pack/dist/opt/editorconfig/autoload/*.vim \
|
||||
runtime/pack/dist/opt/editorconfig/autoload/editorconfig_core/*.vim \
|
||||
runtime/pack/dist/opt/editorconfig/doc/tags \
|
||||
runtime/pack/dist/opt/editorconfig/doc/editorconfig.txt \
|
||||
runtime/pack/dist/opt/editorconfig/ftdetect/editorconfig.vim \
|
||||
runtime/pack/dist/opt/editorconfig/plugin/editorconfig.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 \
|
||||
@@ -781,7 +793,9 @@ RT_SCRIPTS = \
|
||||
runtime/makemenu.vim \
|
||||
runtime/autoload/*.vim \
|
||||
runtime/autoload/README.txt \
|
||||
runtime/autoload/cargo/*.vim \
|
||||
runtime/autoload/dist/*.vim \
|
||||
runtime/autoload/rust/*.vim \
|
||||
runtime/autoload/xml/*.vim \
|
||||
runtime/autoload/zig/*.vim \
|
||||
runtime/colors/*.vim \
|
||||
@@ -846,6 +860,8 @@ RT_AMI_DOS = \
|
||||
# DOS runtime (also in the extra archive)
|
||||
RT_DOS = \
|
||||
README_dos.txt \
|
||||
runtime/doc/Make_mvc.mak \
|
||||
runtime/tutor/Make_mvc.mak \
|
||||
vimtutor.bat \
|
||||
|
||||
# DOS runtime without CR-LF translation (also in the extra archive)
|
||||
@@ -952,6 +968,7 @@ IN_README_DIR = \
|
||||
README_bindos.txt \
|
||||
README_dos.txt \
|
||||
README_extra.txt \
|
||||
README_haiku.txt \
|
||||
README_mac.txt \
|
||||
README_ole.txt \
|
||||
README_os2.txt \
|
||||
@@ -988,11 +1005,13 @@ LANG_GEN = \
|
||||
runtime/doc/*-tr.UTF-8.1 \
|
||||
runtime/lang/README.txt \
|
||||
runtime/lang/Makefile \
|
||||
runtime/lang/Make_all.mak \
|
||||
runtime/lang/menu_*.vim \
|
||||
runtime/keymap/README.txt \
|
||||
runtime/keymap/*.vim \
|
||||
runtime/tutor/README.*.txt \
|
||||
runtime/tutor/Makefile \
|
||||
runtime/tutor/Make_all.mak \
|
||||
runtime/tutor/tutor.utf-8 \
|
||||
runtime/tutor/tutor.?? \
|
||||
runtime/tutor/tutor.??.utf-8 \
|
||||
@@ -1047,10 +1066,12 @@ LANG_SRC = \
|
||||
src/po/vim.desktop.in \
|
||||
src/po/gvim.desktop.in \
|
||||
src/po/sjiscorr.c \
|
||||
src/po/big5corr.c \
|
||||
src/po/*.po \
|
||||
|
||||
# the language files for the Win32 lang archive
|
||||
LANG_DOS = \
|
||||
src/po/*.mo \
|
||||
runtime/lang/Make_mvc.mak \
|
||||
|
||||
# vim: set ft=make:
|
||||
|
||||
2
Makefile
2
Makefile
@@ -40,7 +40,7 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
@echo "If there are problems, cd to the src directory and run make there"
|
||||
cd src && $(MAKE) $@
|
||||
@# When the target is "test" also run the indent and syntax tests.
|
||||
@if test "$@" = "test"; then \
|
||||
@if test "$@" = "test" -o "$@" = "testtiny"; then \
|
||||
$(MAKE) indenttest; \
|
||||
$(MAKE) syntaxtest; \
|
||||
fi
|
||||
|
||||
@@ -46,7 +46,7 @@ Change to the vim directory and do:
|
||||
|
||||
$ export CC=cc
|
||||
$ export _CC_CCMODE=1
|
||||
$./configure --with-features=big --without-x --enable-gui=no
|
||||
$./configure --with-features=normal --without-x --enable-gui=no
|
||||
$ cd src
|
||||
$ make
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
If you want to report a security issue, please use [huntr.dev](https://huntr.dev/bounties/disclose?target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim) to privately disclose the issue to us.
|
||||
They also have rewards in the form of money, swag and CVEs.
|
||||
If you want to report a security issue, please privately disclose the issue to the vim-security mailing list
|
||||
vim-security@googlegroups.com
|
||||
|
||||
This is a private list, read only by the maintainers, but anybody can post, after moderation.
|
||||
|
||||
**Please don't publicly disclose the issue until it has been addressed by us.**
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Clang 12 (or Apple clang 13) and later makes a warning '-Wcompound-token-split-by-macro' enable by default.
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro -Wno-compound-token-split-by-macro/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror -Wno-deprecated-declarations/
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Werror -Wno-deprecated-declarations/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-shadow/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter -Wno-strict-prototypes/
|
||||
|
||||
18
runtime/autoload/dist/ft.vim
vendored
18
runtime/autoload/dist/ft.vim
vendored
@@ -590,23 +590,27 @@ export def FTprogress_cweb()
|
||||
endif
|
||||
enddef
|
||||
|
||||
export def FTprogress_asm()
|
||||
# These include the leading '%' sign
|
||||
var ft_swig_keywords = '^\s*%\%(addmethods\|apply\|beginfile\|clear\|constant\|define\|echo\|enddef\|endoffile\|extend\|feature\|fragment\|ignore\|import\|importfile\|include\|includefile\|inline\|insert\|keyword\|module\|name\|namewarn\|native\|newobject\|parms\|pragma\|rename\|template\|typedef\|typemap\|types\|varargs\|warn\)'
|
||||
# This is the start/end of a block that is copied literally to the processor file (C/C++)
|
||||
var ft_swig_verbatim_block_start = '^\s*%{'
|
||||
|
||||
export def FTi()
|
||||
if exists("g:filetype_i")
|
||||
exe "setf " .. g:filetype_i
|
||||
return
|
||||
endif
|
||||
# This function checks for an assembly comment the first ten lines.
|
||||
# This function checks for an assembly comment or a SWIG keyword or verbatim block in the first 50 lines.
|
||||
# If not found, assume Progress.
|
||||
var lnum = 1
|
||||
while lnum <= 10 && lnum < line('$')
|
||||
while lnum <= 50 && lnum < line('$')
|
||||
var line = getline(lnum)
|
||||
if line =~ '^\s*;' || line =~ '^\*'
|
||||
FTasm()
|
||||
return
|
||||
elseif line !~ '^\s*$' || line =~ '^/\*'
|
||||
# Not an empty line: Doesn't look like valid assembly code.
|
||||
# Or it looks like a Progress /* comment
|
||||
break
|
||||
elseif line =~ ft_swig_keywords || line =~ ft_swig_verbatim_block_start
|
||||
setf swig
|
||||
return
|
||||
endif
|
||||
lnum += 1
|
||||
endwhile
|
||||
|
||||
10
runtime/autoload/dist/script.vim
vendored
10
runtime/autoload/dist/script.vim
vendored
@@ -217,6 +217,14 @@ export def Exe2filetype(name: string, line1: string): string
|
||||
elseif name =~ '^\%(rexx\|regina\)\>'
|
||||
return 'rexx'
|
||||
|
||||
# Janet
|
||||
elseif name =~ '^janet\>'
|
||||
return 'janet'
|
||||
|
||||
# Dart
|
||||
elseif name =~ '^dart\>'
|
||||
return 'dart'
|
||||
|
||||
endif
|
||||
|
||||
return ''
|
||||
@@ -361,7 +369,7 @@ def DetectFromText(line1: string)
|
||||
|
||||
# Strace
|
||||
# inaccurate fast match first, then use accurate slow match
|
||||
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:.]* *execve(')
|
||||
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:. ]*execve(')
|
||||
|| line1 =~ '^__libc_start_main'
|
||||
setl ft=strace
|
||||
|
||||
|
||||
32
runtime/autoload/dist/vim.vim
vendored
Normal file
32
runtime/autoload/dist/vim.vim
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
" Vim runtime support library,
|
||||
" runs the vim9 script version or legacy script version
|
||||
" on demand (mostly for Neovim compatability)
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Nov 04
|
||||
|
||||
|
||||
" enable the zip and gzip plugin by default, if not set
|
||||
if !exists('g:zip_exec')
|
||||
let g:zip_exec = 1
|
||||
endif
|
||||
|
||||
if !exists('g:gzip_exec')
|
||||
let g:gzip_exec = 1
|
||||
endif
|
||||
|
||||
if !has('vim9script')
|
||||
function dist#vim#IsSafeExecutable(filetype, executable)
|
||||
let cwd = getcwd()
|
||||
return get(g:, a:filetype .. '_exec', get(g:, 'plugin_exec', 0)) &&
|
||||
\ (fnamemodify(exepath(a:executable), ':p:h') !=# cwd
|
||||
\ || (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1 &&
|
||||
\ cwd != '.'))
|
||||
endfunction
|
||||
|
||||
finish
|
||||
endif
|
||||
|
||||
def dist#vim#IsSafeExecutable(filetype: string, executable: string): bool
|
||||
return dist#vim9#IsSafeExecutable(filetype, executable)
|
||||
enddef
|
||||
17
runtime/autoload/dist/vim9.vim
vendored
Normal file
17
runtime/autoload/dist/vim9.vim
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
vim9script
|
||||
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Oct 25
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
var cwd = getcwd()
|
||||
return get(g:, filetype .. '_exec', get(g:, 'plugin_exec', 0))
|
||||
&& (fnamemodify(exepath(executable), ':p:h') !=# cwd
|
||||
|| (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1
|
||||
&& cwd != '.'))
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
# defcompile
|
||||
@@ -11,10 +11,7 @@ fun s:check(cmd)
|
||||
let name = substitute(a:cmd, '\(\S*\).*', '\1', '')
|
||||
if !exists("s:have_" . name)
|
||||
" safety check, don't execute anything from the current directory
|
||||
let s:tmp_cwd = getcwd()
|
||||
let f = (fnamemodify(exepath(name), ":p:h") !=# s:tmp_cwd
|
||||
\ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
|
||||
unlet s:tmp_cwd
|
||||
let f = dist#vim#IsSafeExecutable('gzip', name)
|
||||
if !f
|
||||
echoerr "Warning: NOT executing " .. name .. " from current directory!"
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
" netrw.vim: Handles file transfer and remote directory listing across
|
||||
" AUTOLOAD SECTION
|
||||
" Date: May 03, 2023
|
||||
" Version: 173
|
||||
" Version: 173a
|
||||
" Last Change:
|
||||
" 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a)
|
||||
" 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a)
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
@@ -400,7 +403,7 @@ if !exists("g:netrw_localcopycmd")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_localcopycmd= "cp"
|
||||
else
|
||||
let g:netrw_localcopycmd = expand("$COMSPEC")
|
||||
let g:netrw_localcopycmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localcopycmdopt= " /c copy"
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
@@ -415,7 +418,7 @@ if !exists("g:netrw_localcopydircmd")
|
||||
let g:netrw_localcopydircmd = "cp"
|
||||
let g:netrw_localcopydircmdopt= " -R"
|
||||
else
|
||||
let g:netrw_localcopydircmd = expand("$COMSPEC")
|
||||
let g:netrw_localcopydircmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localcopydircmdopt= " /c xcopy /e /c /h /i /k"
|
||||
endif
|
||||
elseif has("unix")
|
||||
@@ -436,7 +439,7 @@ if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if g:netrw_cygwin
|
||||
call s:NetrwInit("g:netrw_localmkdir","mkdir")
|
||||
else
|
||||
let g:netrw_localmkdir = expand("$COMSPEC")
|
||||
let g:netrw_localmkdir = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localmkdiropt= " /c mkdir"
|
||||
endif
|
||||
else
|
||||
@@ -452,7 +455,7 @@ if !exists("g:netrw_localmovecmd")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_localmovecmd= "mv"
|
||||
else
|
||||
let g:netrw_localmovecmd = expand("$COMSPEC")
|
||||
let g:netrw_localmovecmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localmovecmdopt= " /c move"
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
@@ -1166,7 +1169,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
2match none
|
||||
if exists("s:explore_match") | unlet s:explore_match | endif
|
||||
if exists("s:explore_prvdir") | unlet s:explore_prvdir | endif
|
||||
echo " "
|
||||
" call Decho("cleared explore match list",'~'.expand("<slnum>"))
|
||||
endif
|
||||
|
||||
@@ -1961,7 +1963,7 @@ endfun
|
||||
" Doing this means that netrw will not come up as having changed a
|
||||
" setting last when it really didn't actually change it.
|
||||
"
|
||||
" Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
|
||||
" Used by s:NetrwOptionsRestore() to restore each netrw-sensitive setting
|
||||
" keepvars are set up by s:NetrwOptionsSave
|
||||
fun! s:NetrwRestoreSetting(keepvar,setting)
|
||||
""" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
|
||||
@@ -3516,6 +3518,11 @@ fun! s:NetrwBookHistHandler(chg,curdir)
|
||||
echo "bookmarked the current directory"
|
||||
endif
|
||||
|
||||
try
|
||||
call s:NetrwBookHistSave()
|
||||
catch
|
||||
endtry
|
||||
|
||||
elseif a:chg == 1
|
||||
" change to the bookmarked directory
|
||||
" call Decho("(user: <".v:count."gb>) change to the bookmarked directory",'~'.expand("<slnum>"))
|
||||
@@ -3660,6 +3667,11 @@ fun! s:NetrwBookHistHandler(chg,curdir)
|
||||
" call Decho("g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
|
||||
endif
|
||||
" call Decho("resulting g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
|
||||
|
||||
try
|
||||
call s:NetrwBookHistSave()
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
call s:NetrwBookmarkMenu()
|
||||
call s:NetrwTgtMenu()
|
||||
@@ -5552,7 +5564,7 @@ fun! netrw#BrowseX(fname,remote)
|
||||
" cleanup: remove temporary file,
|
||||
" delete current buffer if success with handler,
|
||||
" return to prior buffer (directory listing)
|
||||
" Feb 12, 2008: had to de-activiate removal of
|
||||
" Feb 12, 2008: had to de-activate removal of
|
||||
" temporary file because it wasn't getting seen.
|
||||
" if remote == 1 && fname != a:fname
|
||||
"" call Decho("deleting temporary file<".fname.">",'~'.expand("<slnum>"))
|
||||
@@ -5720,8 +5732,6 @@ fun! s:NetrwClearExplore()
|
||||
if exists("w:netrw_explore_list") |unlet w:netrw_explore_list |endif
|
||||
if exists("w:netrw_explore_bufnr") |unlet w:netrw_explore_bufnr |endif
|
||||
" redraw!
|
||||
echo " "
|
||||
echo " "
|
||||
" call Dret("s:NetrwClearExplore")
|
||||
endfun
|
||||
|
||||
@@ -7382,8 +7392,7 @@ fun! s:NetrwMarkFileDiff(islocal)
|
||||
exe "NetrwKeepj e ".fnameescape(fname)
|
||||
diffthis
|
||||
elseif cnt == 2 || cnt == 3
|
||||
vsplit
|
||||
wincmd l
|
||||
below vsplit
|
||||
" call Decho("diffthis: ".fname,'~'.expand("<slnum>"))
|
||||
exe "NetrwKeepj e ".fnameescape(fname)
|
||||
diffthis
|
||||
@@ -11179,16 +11188,16 @@ fun! s:LocalListing()
|
||||
" call Decho("pfile <".pfile.">",'~'.expand("<slnum>"))
|
||||
|
||||
if w:netrw_liststyle == s:LONGLIST
|
||||
let longfile= printf("%-".g:netrw_maxfilenamelen."S",pfile)
|
||||
let sz = getfsize(filename)
|
||||
let szlen = 15 - (strdisplaywidth(longfile) - g:netrw_maxfilenamelen)
|
||||
let szlen = (szlen > 0) ? szlen : 0
|
||||
let fsz = printf("%".szlen."S",sz)
|
||||
|
||||
if g:netrw_sizestyle =~# "[hH]"
|
||||
let sz= s:NetrwHumanReadable(sz)
|
||||
endif
|
||||
let longfile= printf("%-".g:netrw_maxfilenamelen."S",pfile)
|
||||
let pfile = longfile." ".sz." ".strftime(g:netrw_timefmt,getftime(filename))
|
||||
let fsz = printf("%".szlen."S",sz)
|
||||
let pfile = longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
|
||||
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
|
||||
endif
|
||||
|
||||
@@ -11198,7 +11207,7 @@ fun! s:LocalListing()
|
||||
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (time)")
|
||||
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
|
||||
let t = getftime(filename)
|
||||
let ft = strpart("000000000000000000",1,18-strlen(t)).t
|
||||
let ft = printf("%018d",t)
|
||||
" call Decho("exe NetrwKeepj put ='".ft.'/'.pfile."'",'~'.expand("<slnum>"))
|
||||
let ftpfile= ft.'/'.pfile
|
||||
sil! NetrwKeepj put=ftpfile
|
||||
@@ -11208,10 +11217,7 @@ fun! s:LocalListing()
|
||||
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (size)")
|
||||
" call Decho("getfsize(".filename.")=".getfsize(filename),'~'.expand("<slnum>"))
|
||||
let sz = getfsize(filename)
|
||||
if g:netrw_sizestyle =~# "[hH]"
|
||||
let sz= s:NetrwHumanReadable(sz)
|
||||
endif
|
||||
let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz
|
||||
let fsz = printf("%018d",sz)
|
||||
" call Decho("exe NetrwKeepj put ='".fsz.'/'.filename."'",'~'.expand("<slnum>"))
|
||||
let fszpfile= fsz.'/'.pfile
|
||||
sil! NetrwKeepj put =fszpfile
|
||||
@@ -12044,9 +12050,9 @@ fun! s:NetrwBufRemover(bufid)
|
||||
" call Decho("buf#".a:bufid." has name <".bufname(a:bufid).">","~".expand("<slnum>"))
|
||||
" call Decho("buf#".a:bufid." has winid#".bufwinid(a:bufid),"~".expand("<slnum>"))
|
||||
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufloaded(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
" call Decho("(s:NetrwBufRemover) removing buffer#".a:bufid,"~".expand("<slnum>"))
|
||||
exe "bd! ".a:bufid
|
||||
exe "sil! bd! ".a:bufid
|
||||
endif
|
||||
|
||||
" call Dret("s:NetrwBufRemover")
|
||||
|
||||
@@ -2907,7 +2907,7 @@ endfor
|
||||
" builtin class information
|
||||
let g:php_builtin_object_functions = {}
|
||||
|
||||
" When completing for 'everyting imaginable' (no class context, not a
|
||||
" When completing for 'everything imaginable' (no class context, not a
|
||||
" variable) we need a list of built-in classes in a format of {'classname':''}
|
||||
" for performance reasons we precompile this too
|
||||
let g:php_builtin_classnames = {}
|
||||
|
||||
@@ -25,7 +25,7 @@ function! rustfmt#DetectVersion()
|
||||
silent let s:rustfmt_help = system(g:rustfmt_command . " --help")
|
||||
let s:rustfmt_unstable_features = s:rustfmt_help =~# "--unstable-features"
|
||||
|
||||
" Build a comparable rustfmt version varible out of its `--version` output:
|
||||
" Build a comparable rustfmt version variable out of its `--version` output:
|
||||
silent let l:rustfmt_version_full = system(g:rustfmt_command . " --version")
|
||||
let l:rustfmt_version_list = matchlist(l:rustfmt_version_full,
|
||||
\ '\vrustfmt ([0-9]+[.][0-9]+[.][0-9]+)')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 32
|
||||
" Date: Nov 14, 2023
|
||||
" Version: 32b (with modifications from the Vim Project)
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
"
|
||||
@@ -22,7 +22,7 @@
|
||||
if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v32"
|
||||
let g:loaded_tar= "v32a"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
@@ -208,18 +208,24 @@ fun! tar#Browse(tarfile)
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~# '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
keepj sil! %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "r ".fnameescape(a:tarfile)
|
||||
let &ei= eikeep
|
||||
keepj sil! 1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
"
|
||||
" The following should not be neccessary, since in case of errors the
|
||||
" previous if statement should have caught the problem (because tar exited
|
||||
" with a non-zero exit code).
|
||||
" if line("$") == curlast || ( line("$") == (curlast + 1) &&
|
||||
" \ getline("$") =~# '\c\<\%(warning\|error\|inappropriate\|unrecognized\)\>' &&
|
||||
" \ getline("$") =~ '\s' )
|
||||
" redraw!
|
||||
" echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
" keepj sil! %d
|
||||
" let eikeep= &ei
|
||||
" set ei=BufReadCmd,FileReadCmd
|
||||
" exe "r ".fnameescape(a:tarfile)
|
||||
" let &ei= eikeep
|
||||
" keepj sil! 1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
" return
|
||||
" endif
|
||||
|
||||
" set up maps supported for tar
|
||||
setlocal noma nomod ro
|
||||
|
||||
@@ -97,7 +97,7 @@ enddef
|
||||
|
||||
# Public interface {{{
|
||||
# When a TeX document is split into several source files, each source file
|
||||
# may contain a "magic line" specifiying the "root" file, e.g.:
|
||||
# may contain a "magic line" specifying the "root" file, e.g.:
|
||||
#
|
||||
# % !TEX root = main.tex
|
||||
#
|
||||
|
||||
@@ -57,14 +57,10 @@ if !exists("g:zip_extractcmd")
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
endif
|
||||
|
||||
let s:tmp_cwd = getcwd()
|
||||
if (fnamemodify(exepath(g:zip_unzipcmd), ":p:h") ==# getcwd()
|
||||
\ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.'))
|
||||
unlet s:tmp_cwd
|
||||
if !dist#vim#IsSafeExecutable('zip', g:zip_unzipcmd)
|
||||
echoerr "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!"
|
||||
finish
|
||||
endif
|
||||
unlet s:tmp_cwd
|
||||
|
||||
" ----------------
|
||||
" Functions: {{{1
|
||||
|
||||
@@ -111,11 +111,11 @@ please check the following items:
|
||||
- Do not use hard coded escape sequences, these will not work in other
|
||||
terminals. Always use #RRGGBB for the GUI.
|
||||
|
||||
- When targetting 8-16 colors terminals, don't count on "darkblue" to be blue
|
||||
- When targeting 8-16 colors terminals, don't count on "darkblue" to be blue
|
||||
and dark, or on "2" to be even vaguely reddish. Names are more portable
|
||||
than numbers, though.
|
||||
|
||||
- When targetting 256 colors terminals, prefer colors 16-255 to colors 0-15
|
||||
- When targeting 256 colors terminals, prefer colors 16-255 to colors 0-15
|
||||
for the same reason.
|
||||
|
||||
- Typographic attributes (bold, italic, underline, reverse, etc.) are not
|
||||
|
||||
338
runtime/doc/Make_all.mak
Normal file
338
runtime/doc/Make_all.mak
Normal file
@@ -0,0 +1,338 @@
|
||||
# Makefile with common components
|
||||
|
||||
DOCS = \
|
||||
arabic.txt \
|
||||
autocmd.txt \
|
||||
builtin.txt \
|
||||
change.txt \
|
||||
channel.txt \
|
||||
cmdline.txt \
|
||||
debug.txt \
|
||||
debugger.txt \
|
||||
develop.txt \
|
||||
diff.txt \
|
||||
digraph.txt \
|
||||
editing.txt \
|
||||
eval.txt \
|
||||
farsi.txt \
|
||||
filetype.txt \
|
||||
fold.txt \
|
||||
ft_ada.txt \
|
||||
ft_context.txt \
|
||||
ft_mp.txt \
|
||||
ft_ps1.txt \
|
||||
ft_raku.txt \
|
||||
ft_rust.txt \
|
||||
ft_sql.txt \
|
||||
gui.txt \
|
||||
gui_w32.txt \
|
||||
gui_x11.txt \
|
||||
hangulin.txt \
|
||||
hebrew.txt \
|
||||
help.txt \
|
||||
helphelp.txt \
|
||||
howto.txt \
|
||||
if_cscop.txt \
|
||||
if_lua.txt \
|
||||
if_mzsch.txt \
|
||||
if_ole.txt \
|
||||
if_perl.txt \
|
||||
if_pyth.txt \
|
||||
if_ruby.txt \
|
||||
if_sniff.txt \
|
||||
if_tcl.txt \
|
||||
indent.txt \
|
||||
index.txt \
|
||||
insert.txt \
|
||||
intro.txt \
|
||||
map.txt \
|
||||
mbyte.txt \
|
||||
message.txt \
|
||||
mlang.txt \
|
||||
motion.txt \
|
||||
netbeans.txt \
|
||||
options.txt \
|
||||
os_390.txt \
|
||||
os_amiga.txt \
|
||||
os_beos.txt \
|
||||
os_dos.txt \
|
||||
os_haiku.txt \
|
||||
os_mac.txt \
|
||||
os_mint.txt \
|
||||
os_msdos.txt \
|
||||
os_os2.txt \
|
||||
os_qnx.txt \
|
||||
os_risc.txt \
|
||||
os_unix.txt \
|
||||
os_vms.txt \
|
||||
os_win32.txt \
|
||||
pattern.txt \
|
||||
pi_getscript.txt \
|
||||
pi_gzip.txt \
|
||||
pi_logipat.txt \
|
||||
pi_netrw.txt \
|
||||
pi_paren.txt \
|
||||
pi_spec.txt \
|
||||
pi_tar.txt \
|
||||
pi_vimball.txt \
|
||||
pi_zip.txt \
|
||||
popup.txt \
|
||||
print.txt \
|
||||
quickfix.txt \
|
||||
quickref.txt \
|
||||
quotes.txt \
|
||||
recover.txt \
|
||||
remote.txt \
|
||||
repeat.txt \
|
||||
rileft.txt \
|
||||
russian.txt \
|
||||
scroll.txt \
|
||||
sign.txt \
|
||||
spell.txt \
|
||||
sponsor.txt \
|
||||
starting.txt \
|
||||
syntax.txt \
|
||||
tabpage.txt \
|
||||
tagsrch.txt \
|
||||
term.txt \
|
||||
terminal.txt \
|
||||
testing.txt \
|
||||
textprop.txt \
|
||||
tips.txt \
|
||||
todo.txt \
|
||||
uganda.txt \
|
||||
undo.txt \
|
||||
userfunc.txt \
|
||||
usr_01.txt \
|
||||
usr_02.txt \
|
||||
usr_03.txt \
|
||||
usr_04.txt \
|
||||
usr_05.txt \
|
||||
usr_06.txt \
|
||||
usr_07.txt \
|
||||
usr_08.txt \
|
||||
usr_09.txt \
|
||||
usr_10.txt \
|
||||
usr_11.txt \
|
||||
usr_12.txt \
|
||||
usr_20.txt \
|
||||
usr_21.txt \
|
||||
usr_22.txt \
|
||||
usr_23.txt \
|
||||
usr_24.txt \
|
||||
usr_25.txt \
|
||||
usr_26.txt \
|
||||
usr_27.txt \
|
||||
usr_28.txt \
|
||||
usr_29.txt \
|
||||
usr_30.txt \
|
||||
usr_31.txt \
|
||||
usr_32.txt \
|
||||
usr_40.txt \
|
||||
usr_41.txt \
|
||||
usr_42.txt \
|
||||
usr_43.txt \
|
||||
usr_44.txt \
|
||||
usr_45.txt \
|
||||
usr_50.txt \
|
||||
usr_51.txt \
|
||||
usr_52.txt \
|
||||
usr_90.txt \
|
||||
usr_toc.txt \
|
||||
various.txt \
|
||||
version4.txt \
|
||||
version5.txt \
|
||||
version6.txt \
|
||||
version7.txt \
|
||||
version8.txt \
|
||||
version9.txt \
|
||||
vi_diff.txt \
|
||||
vim9.txt \
|
||||
vim9class.txt \
|
||||
visual.txt \
|
||||
windows.txt \
|
||||
workshop.txt
|
||||
|
||||
HTMLS = \
|
||||
arabic.html \
|
||||
autocmd.html \
|
||||
builtin.html \
|
||||
change.html \
|
||||
channel.html \
|
||||
cmdline.html \
|
||||
debug.html \
|
||||
debugger.html \
|
||||
develop.html \
|
||||
diff.html \
|
||||
digraph.html \
|
||||
editing.html \
|
||||
eval.html \
|
||||
farsi.html \
|
||||
filetype.html \
|
||||
fold.html \
|
||||
ft_ada.html \
|
||||
ft_context.html \
|
||||
ft_mp.html \
|
||||
ft_ps1.html \
|
||||
ft_raku.html \
|
||||
ft_rust.html \
|
||||
ft_sql.html \
|
||||
gui.html \
|
||||
gui_w32.html \
|
||||
gui_x11.html \
|
||||
hangulin.html \
|
||||
hebrew.html \
|
||||
helphelp.html \
|
||||
howto.html \
|
||||
if_cscop.html \
|
||||
if_lua.html \
|
||||
if_mzsch.html \
|
||||
if_ole.html \
|
||||
if_perl.html \
|
||||
if_pyth.html \
|
||||
if_ruby.html \
|
||||
if_sniff.html \
|
||||
if_tcl.html \
|
||||
indent.html \
|
||||
index.html \
|
||||
insert.html \
|
||||
intro.html \
|
||||
map.html \
|
||||
mbyte.html \
|
||||
message.html \
|
||||
mlang.html \
|
||||
motion.html \
|
||||
netbeans.html \
|
||||
options.html \
|
||||
os_390.html \
|
||||
os_amiga.html \
|
||||
os_beos.html \
|
||||
os_dos.html \
|
||||
os_haiku.html \
|
||||
os_mac.html \
|
||||
os_mint.html \
|
||||
os_msdos.html \
|
||||
os_os2.html \
|
||||
os_qnx.html \
|
||||
os_risc.html \
|
||||
os_unix.html \
|
||||
os_vms.html \
|
||||
os_win32.html \
|
||||
pattern.html \
|
||||
pi_getscript.html \
|
||||
pi_gzip.html \
|
||||
pi_logipat.html \
|
||||
pi_netrw.html \
|
||||
pi_paren.html \
|
||||
pi_spec.html \
|
||||
pi_tar.html \
|
||||
pi_vimball.html \
|
||||
pi_zip.html \
|
||||
popup.html \
|
||||
print.html \
|
||||
quickfix.html \
|
||||
quickref.html \
|
||||
quotes.html \
|
||||
recover.html \
|
||||
remote.html \
|
||||
repeat.html \
|
||||
rileft.html \
|
||||
russian.html \
|
||||
scroll.html \
|
||||
sign.html \
|
||||
spell.html \
|
||||
sponsor.html \
|
||||
starting.html \
|
||||
syntax.html \
|
||||
tabpage.html \
|
||||
tagsrch.html \
|
||||
term.html \
|
||||
terminal.html \
|
||||
testing.html \
|
||||
textprop.html \
|
||||
tips.html \
|
||||
todo.html \
|
||||
uganda.html \
|
||||
undo.html \
|
||||
userfunc.html \
|
||||
usr_01.html \
|
||||
usr_02.html \
|
||||
usr_03.html \
|
||||
usr_04.html \
|
||||
usr_05.html \
|
||||
usr_06.html \
|
||||
usr_07.html \
|
||||
usr_08.html \
|
||||
usr_09.html \
|
||||
usr_10.html \
|
||||
usr_11.html \
|
||||
usr_12.html \
|
||||
usr_20.html \
|
||||
usr_21.html \
|
||||
usr_22.html \
|
||||
usr_23.html \
|
||||
usr_24.html \
|
||||
usr_25.html \
|
||||
usr_26.html \
|
||||
usr_27.html \
|
||||
usr_28.html \
|
||||
usr_29.html \
|
||||
usr_30.html \
|
||||
usr_31.html \
|
||||
usr_32.html \
|
||||
usr_40.html \
|
||||
usr_41.html \
|
||||
usr_42.html \
|
||||
usr_43.html \
|
||||
usr_44.html \
|
||||
usr_45.html \
|
||||
usr_50.html \
|
||||
usr_51.html \
|
||||
usr_52.html \
|
||||
usr_90.html \
|
||||
usr_toc.html \
|
||||
various.html \
|
||||
version4.html \
|
||||
version5.html \
|
||||
version6.html \
|
||||
version7.html \
|
||||
version8.html \
|
||||
version9.html \
|
||||
vi_diff.html \
|
||||
vimindex.html \
|
||||
vim9.html \
|
||||
vim9class.html \
|
||||
visual.html \
|
||||
windows.html \
|
||||
workshop.html
|
||||
|
||||
CONVERTED = \
|
||||
vim-da.UTF-8.1 \
|
||||
vimdiff-da.UTF-8.1 \
|
||||
vimtutor-da.UTF-8.1 \
|
||||
vim-de.UTF-8.1 \
|
||||
vim-fr.UTF-8.1 \
|
||||
evim-fr.UTF-8.1 \
|
||||
vimdiff-fr.UTF-8.1 \
|
||||
vimtutor-fr.UTF-8.1 \
|
||||
xxd-fr.UTF-8.1 \
|
||||
vim-it.UTF-8.1 \
|
||||
evim-it.UTF-8.1 \
|
||||
vimdiff-it.UTF-8.1 \
|
||||
vimtutor-it.UTF-8.1 \
|
||||
xxd-it.UTF-8.1 \
|
||||
vim-pl.UTF-8.1 \
|
||||
evim-pl.UTF-8.1 \
|
||||
vimdiff-pl.UTF-8.1 \
|
||||
vimtutor-pl.UTF-8.1 \
|
||||
xxd-pl.UTF-8.1 \
|
||||
vim-ru.UTF-8.1 \
|
||||
evim-ru.UTF-8.1 \
|
||||
vimdiff-ru.UTF-8.1 \
|
||||
vimtutor-ru.UTF-8.1 \
|
||||
xxd-ru.UTF-8.1 \
|
||||
vim-tr.UTF-8.1 \
|
||||
evim-tr.UTF-8.1 \
|
||||
vimdiff-tr.UTF-8.1 \
|
||||
vimtutor-tr.UTF-8.1
|
||||
|
||||
490
runtime/doc/Make_mvc.mak
Normal file
490
runtime/doc/Make_mvc.mak
Normal file
@@ -0,0 +1,490 @@
|
||||
#
|
||||
# Makefile for the Vim documentation on Windows
|
||||
#
|
||||
# 17.11.23, Restorer, <restorer@mail2k.ru>
|
||||
|
||||
# Common components
|
||||
!INCLUDE Make_all.mak
|
||||
|
||||
|
||||
# TODO: to think about what to use instead of awk. PowerShell?
|
||||
#AWK =
|
||||
|
||||
# Correct the following line for the where executeable file vim is installed.
|
||||
# Please do not put the path in quotes.
|
||||
VIMEXE = D:\Programs\Vim\vim90\vim.exe
|
||||
|
||||
# Correct the following line for the directory where iconv installed.
|
||||
# Please do not put the path in quotes.
|
||||
ICONV_PATH = D:\Programs\GetText\bin
|
||||
|
||||
# In case some package like GnuWin32, UnixUtils
|
||||
# or something similar is installed on the system.
|
||||
# If the "touch" program is installed on the system, but it is not registered
|
||||
# in the %PATH% environment variable, then specify the full path to this file.
|
||||
!IF EXIST ("touch.exe")
|
||||
TOUCH = "touch.exe" %1
|
||||
!ELSE
|
||||
TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 )
|
||||
!ENDIF
|
||||
|
||||
# In case some package like GnuWin32, UnixUtils, gettext
|
||||
# or something similar is installed on the system.
|
||||
# If the "iconv" program is installed on the system, but it is not registered
|
||||
# in the %PATH% environment variable, then specify the full path to this file.
|
||||
!IF EXIST ("iconv.exe")
|
||||
ICONV = "iconv.exe"
|
||||
!ELSEIF EXIST ("$(ICONV_PATH)\iconv.exe")
|
||||
ICONV = "$(ICONV_PATH)\iconv.exe"
|
||||
!ENDIF
|
||||
|
||||
RM = del /q
|
||||
|
||||
.SUFFIXES :
|
||||
.SUFFIXES : .c .o .txt .html
|
||||
|
||||
|
||||
all : tags perlhtml $(CONVERTED)
|
||||
|
||||
# Use "doctags" to generate the tags file. Only works for English!
|
||||
tags : doctags $(DOCS)
|
||||
doctags.exe $(DOCS) | sort /L C /O tags
|
||||
powershell -nologo -noprofile -Command \
|
||||
"(Get-Content -Raw tags | Get-Unique | % {$$_ -replace \"`r\", \"\"}) \
|
||||
| New-Item -Force -Path . -ItemType file -Name tags"
|
||||
|
||||
doctags : doctags.c
|
||||
$(CC) doctags.c
|
||||
|
||||
|
||||
# Use Vim to generate the tags file. Can only be used when Vim has been
|
||||
# compiled and installed. Supports multiple languages.
|
||||
vimtags : $(DOCS)
|
||||
@"$(VIMEXE)" --clean -esX -V1 -u doctags.vim
|
||||
|
||||
|
||||
uganda.nsis.txt : uganda.???
|
||||
!@powershell -nologo -noprofile -Command \
|
||||
$$ext=(Get-Item $?).Extension; (Get-Content $? ^| \
|
||||
% {$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''}) \
|
||||
^| Set-Content $*$$ext
|
||||
!@powershell -nologo -noprofile -Command \
|
||||
$$ext=(Get-Item $?).Extension; \
|
||||
(Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1' \
|
||||
^| Set-Content $(@B)$$ext
|
||||
|
||||
|
||||
# TODO:
|
||||
#html: noerrors tags $(HTMLS)
|
||||
# if exist errors.log (more errors.log)
|
||||
|
||||
# TODO:
|
||||
#noerrors:
|
||||
# $(RM) errors.log
|
||||
|
||||
# TODO:
|
||||
#.txt.html:
|
||||
|
||||
|
||||
# TODO:
|
||||
#index.html: help.txt
|
||||
|
||||
|
||||
# TODO:
|
||||
#vimindex.html: index.txt
|
||||
|
||||
|
||||
# TODO:
|
||||
#tags.ref tags.html: tags
|
||||
|
||||
# Perl version of .txt to .html conversion.
|
||||
# There can't be two rules to produce a .html from a .txt file.
|
||||
# Just run over all .txt files each time one changes. It's fast anyway.
|
||||
perlhtml : tags $(DOCS)
|
||||
vim2html.pl tags $(DOCS)
|
||||
|
||||
# Check URLs in the help with "curl" or "powershell".
|
||||
test_urls :
|
||||
"$(VIMEXE)" -S test_urls.vim
|
||||
|
||||
clean :
|
||||
$(RM) doctags.exe doctags.obj
|
||||
$(RM) *.html vim-stylesheet.css
|
||||
|
||||
|
||||
arabic.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
farsi.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
hebrew.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
russian.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
gui_w32.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
if_ole.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_390.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_amiga.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_beos.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_dos.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_haiku.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_mac.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_mint.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_msdos.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_os2.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_qnx.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_risc.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
os_win32.txt :
|
||||
<<touch.bat $@
|
||||
@$(TOUCH)
|
||||
<<
|
||||
|
||||
convert-all : $(CONVERTED)
|
||||
!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
|
||||
!ERROR The program "PowerShell" version 3.0 or higher is required to work
|
||||
!ENDIF
|
||||
|
||||
vim-da.UTF-8.1 : vim-da.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimdiff-da.UTF-8.1 : vimdiff-da.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimtutor-da.UTF-8.1 : vimtutor-da.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vim-de.UTF-8.1 : vim-de.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
evim-fr.UTF-8.1 : evim-fr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vim-fr.UTF-8.1 : vim-fr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimdiff-fr.UTF-8.1 : vimdiff-fr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimtutor-fr.UTF-8.1 : vimtutor-fr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t utf-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
xxd-fr.UTF-8.1 : xxd-fr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
evim-it.UTF-8.1 : evim-it.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vim-it.UTF-8.1 : vim-it.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimdiff-it.UTF-8.1 : vimdiff-it.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimtutor-it.UTF-8.1 : vimtutor-it.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
xxd-it.UTF-8.1 : xxd-it.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
evim-pl.UTF-8.1 : evim-pl.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vim-pl.UTF-8.1 : vim-pl.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimdiff-pl.UTF-8.1 : vimdiff-pl.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimtutor-pl.UTF-8.1 : vimtutor-pl.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
xxd-pl.UTF-8.1 : xxd-pl.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
evim-ru.UTF-8.1 : evim-ru.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vim-ru.UTF-8.1 : vim-ru.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimdiff-ru.UTF-8.1 : vimdiff-ru.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimtutor-ru.UTF-8.1 : vimtutor-ru.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
xxd-ru.UTF-8.1 : xxd-ru.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
evim-tr.UTF-8.1 : evim-tr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vim-tr.UTF-8.1 : vim-tr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimdiff-tr.UTF-8.1 : vimdiff-tr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
vimtutor-tr.UTF-8.1 : vimtutor-tr.1
|
||||
!IF DEFINED (ICONV)
|
||||
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
|
||||
!ELSE
|
||||
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
|
||||
powershell -nologo -noprofile -Command \
|
||||
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
|
||||
1>nul New-Item -Force -Path . -ItemType file -Name $@
|
||||
!ENDIF
|
||||
|
||||
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
|
||||
@@ -13,337 +13,8 @@ VIMEXE = vim
|
||||
# AWK, used for "make html". Comment this out if the include gives problems.
|
||||
include ../../src/auto/config.mk
|
||||
|
||||
DOCS = \
|
||||
arabic.txt \
|
||||
autocmd.txt \
|
||||
builtin.txt \
|
||||
change.txt \
|
||||
channel.txt \
|
||||
cmdline.txt \
|
||||
debug.txt \
|
||||
debugger.txt \
|
||||
develop.txt \
|
||||
diff.txt \
|
||||
digraph.txt \
|
||||
editing.txt \
|
||||
eval.txt \
|
||||
farsi.txt \
|
||||
filetype.txt \
|
||||
fold.txt \
|
||||
ft_ada.txt \
|
||||
ft_context.txt \
|
||||
ft_mp.txt \
|
||||
ft_ps1.txt \
|
||||
ft_raku.txt \
|
||||
ft_rust.txt \
|
||||
ft_sql.txt \
|
||||
gui.txt \
|
||||
gui_w32.txt \
|
||||
gui_x11.txt \
|
||||
hangulin.txt \
|
||||
hebrew.txt \
|
||||
help.txt \
|
||||
helphelp.txt \
|
||||
howto.txt \
|
||||
if_cscop.txt \
|
||||
if_lua.txt \
|
||||
if_mzsch.txt \
|
||||
if_ole.txt \
|
||||
if_perl.txt \
|
||||
if_pyth.txt \
|
||||
if_ruby.txt \
|
||||
if_sniff.txt \
|
||||
if_tcl.txt \
|
||||
indent.txt \
|
||||
index.txt \
|
||||
insert.txt \
|
||||
intro.txt \
|
||||
map.txt \
|
||||
mbyte.txt \
|
||||
message.txt \
|
||||
mlang.txt \
|
||||
motion.txt \
|
||||
netbeans.txt \
|
||||
options.txt \
|
||||
os_390.txt \
|
||||
os_amiga.txt \
|
||||
os_beos.txt \
|
||||
os_dos.txt \
|
||||
os_haiku.txt \
|
||||
os_mac.txt \
|
||||
os_mint.txt \
|
||||
os_msdos.txt \
|
||||
os_os2.txt \
|
||||
os_qnx.txt \
|
||||
os_risc.txt \
|
||||
os_unix.txt \
|
||||
os_vms.txt \
|
||||
os_win32.txt \
|
||||
pattern.txt \
|
||||
pi_getscript.txt \
|
||||
pi_gzip.txt \
|
||||
pi_logipat.txt \
|
||||
pi_netrw.txt \
|
||||
pi_paren.txt \
|
||||
pi_spec.txt \
|
||||
pi_tar.txt \
|
||||
pi_vimball.txt \
|
||||
pi_zip.txt \
|
||||
popup.txt \
|
||||
print.txt \
|
||||
quickfix.txt \
|
||||
quickref.txt \
|
||||
quotes.txt \
|
||||
recover.txt \
|
||||
remote.txt \
|
||||
repeat.txt \
|
||||
rileft.txt \
|
||||
russian.txt \
|
||||
scroll.txt \
|
||||
sign.txt \
|
||||
spell.txt \
|
||||
sponsor.txt \
|
||||
starting.txt \
|
||||
syntax.txt \
|
||||
tabpage.txt \
|
||||
tagsrch.txt \
|
||||
term.txt \
|
||||
terminal.txt \
|
||||
testing.txt \
|
||||
textprop.txt \
|
||||
tips.txt \
|
||||
todo.txt \
|
||||
uganda.txt \
|
||||
undo.txt \
|
||||
userfunc.txt \
|
||||
usr_01.txt \
|
||||
usr_02.txt \
|
||||
usr_03.txt \
|
||||
usr_04.txt \
|
||||
usr_05.txt \
|
||||
usr_06.txt \
|
||||
usr_07.txt \
|
||||
usr_08.txt \
|
||||
usr_09.txt \
|
||||
usr_10.txt \
|
||||
usr_11.txt \
|
||||
usr_12.txt \
|
||||
usr_20.txt \
|
||||
usr_21.txt \
|
||||
usr_22.txt \
|
||||
usr_23.txt \
|
||||
usr_24.txt \
|
||||
usr_25.txt \
|
||||
usr_26.txt \
|
||||
usr_27.txt \
|
||||
usr_28.txt \
|
||||
usr_29.txt \
|
||||
usr_30.txt \
|
||||
usr_31.txt \
|
||||
usr_32.txt \
|
||||
usr_40.txt \
|
||||
usr_41.txt \
|
||||
usr_42.txt \
|
||||
usr_43.txt \
|
||||
usr_44.txt \
|
||||
usr_45.txt \
|
||||
usr_50.txt \
|
||||
usr_51.txt \
|
||||
usr_52.txt \
|
||||
usr_90.txt \
|
||||
usr_toc.txt \
|
||||
various.txt \
|
||||
version4.txt \
|
||||
version5.txt \
|
||||
version6.txt \
|
||||
version7.txt \
|
||||
version8.txt \
|
||||
version9.txt \
|
||||
vi_diff.txt \
|
||||
vim9.txt \
|
||||
vim9class.txt \
|
||||
visual.txt \
|
||||
windows.txt \
|
||||
workshop.txt
|
||||
|
||||
HTMLS = \
|
||||
arabic.html \
|
||||
autocmd.html \
|
||||
builtin.html \
|
||||
change.html \
|
||||
channel.html \
|
||||
cmdline.html \
|
||||
debug.html \
|
||||
debugger.html \
|
||||
develop.html \
|
||||
diff.html \
|
||||
digraph.html \
|
||||
editing.html \
|
||||
eval.html \
|
||||
farsi.html \
|
||||
filetype.html \
|
||||
fold.html \
|
||||
ft_ada.html \
|
||||
ft_context.html \
|
||||
ft_mp.html \
|
||||
ft_ps1.html \
|
||||
ft_raku.html \
|
||||
ft_rust.html \
|
||||
ft_sql.html \
|
||||
gui.html \
|
||||
gui_w32.html \
|
||||
gui_x11.html \
|
||||
hangulin.html \
|
||||
hebrew.html \
|
||||
helphelp.html \
|
||||
howto.html \
|
||||
if_cscop.html \
|
||||
if_lua.html \
|
||||
if_mzsch.html \
|
||||
if_ole.html \
|
||||
if_perl.html \
|
||||
if_pyth.html \
|
||||
if_ruby.html \
|
||||
if_sniff.html \
|
||||
if_tcl.html \
|
||||
indent.html \
|
||||
index.html \
|
||||
insert.html \
|
||||
intro.html \
|
||||
map.html \
|
||||
mbyte.html \
|
||||
message.html \
|
||||
mlang.html \
|
||||
motion.html \
|
||||
netbeans.html \
|
||||
options.html \
|
||||
os_390.html \
|
||||
os_amiga.html \
|
||||
os_beos.html \
|
||||
os_dos.html \
|
||||
os_haiku.html \
|
||||
os_mac.html \
|
||||
os_mint.html \
|
||||
os_msdos.html \
|
||||
os_os2.html \
|
||||
os_qnx.html \
|
||||
os_risc.html \
|
||||
os_unix.html \
|
||||
os_vms.html \
|
||||
os_win32.html \
|
||||
pattern.html \
|
||||
pi_getscript.html \
|
||||
pi_gzip.html \
|
||||
pi_logipat.html \
|
||||
pi_netrw.html \
|
||||
pi_paren.html \
|
||||
pi_spec.html \
|
||||
pi_tar.html \
|
||||
pi_vimball.html \
|
||||
pi_zip.html \
|
||||
popup.html \
|
||||
print.html \
|
||||
quickfix.html \
|
||||
quickref.html \
|
||||
quotes.html \
|
||||
recover.html \
|
||||
remote.html \
|
||||
repeat.html \
|
||||
rileft.html \
|
||||
russian.html \
|
||||
scroll.html \
|
||||
sign.html \
|
||||
spell.html \
|
||||
sponsor.html \
|
||||
starting.html \
|
||||
syntax.html \
|
||||
tabpage.html \
|
||||
tagsrch.html \
|
||||
term.html \
|
||||
terminal.html \
|
||||
testing.html \
|
||||
textprop.html \
|
||||
tips.html \
|
||||
todo.html \
|
||||
uganda.html \
|
||||
undo.html \
|
||||
userfunc.html \
|
||||
usr_01.html \
|
||||
usr_02.html \
|
||||
usr_03.html \
|
||||
usr_04.html \
|
||||
usr_05.html \
|
||||
usr_06.html \
|
||||
usr_07.html \
|
||||
usr_08.html \
|
||||
usr_09.html \
|
||||
usr_10.html \
|
||||
usr_11.html \
|
||||
usr_12.html \
|
||||
usr_20.html \
|
||||
usr_21.html \
|
||||
usr_22.html \
|
||||
usr_23.html \
|
||||
usr_24.html \
|
||||
usr_25.html \
|
||||
usr_26.html \
|
||||
usr_27.html \
|
||||
usr_28.html \
|
||||
usr_29.html \
|
||||
usr_30.html \
|
||||
usr_31.html \
|
||||
usr_32.html \
|
||||
usr_40.html \
|
||||
usr_41.html \
|
||||
usr_42.html \
|
||||
usr_43.html \
|
||||
usr_44.html \
|
||||
usr_45.html \
|
||||
usr_50.html \
|
||||
usr_51.html \
|
||||
usr_52.html \
|
||||
usr_90.html \
|
||||
usr_toc.html \
|
||||
various.html \
|
||||
version4.html \
|
||||
version5.html \
|
||||
version6.html \
|
||||
version7.html \
|
||||
version8.html \
|
||||
version9.html \
|
||||
vi_diff.html \
|
||||
vimindex.html \
|
||||
vim9.html \
|
||||
vim9class.html \
|
||||
visual.html \
|
||||
windows.html \
|
||||
workshop.html
|
||||
|
||||
CONVERTED = \
|
||||
vim-fr.UTF-8.1 \
|
||||
evim-fr.UTF-8.1 \
|
||||
vimdiff-fr.UTF-8.1 \
|
||||
vimtutor-fr.UTF-8.1 \
|
||||
xxd-fr.UTF-8.1 \
|
||||
vim-it.UTF-8.1 \
|
||||
evim-it.UTF-8.1 \
|
||||
vimdiff-it.UTF-8.1 \
|
||||
vimtutor-it.UTF-8.1 \
|
||||
xxd-it.UTF-8.1 \
|
||||
vim-pl.UTF-8.1 \
|
||||
evim-pl.UTF-8.1 \
|
||||
vimdiff-pl.UTF-8.1 \
|
||||
vimtutor-pl.UTF-8.1 \
|
||||
xxd-pl.UTF-8.1 \
|
||||
vim-ru.UTF-8.1 \
|
||||
evim-ru.UTF-8.1 \
|
||||
vimdiff-ru.UTF-8.1 \
|
||||
vimtutor-ru.UTF-8.1 \
|
||||
xxd-ru.UTF-8.1 \
|
||||
vim-tr.UTF-8.1 \
|
||||
evim-tr.UTF-8.1 \
|
||||
vimdiff-tr.UTF-8.1 \
|
||||
vimtutor-tr.UTF-8.1
|
||||
# Common components
|
||||
include Make_all.mak
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .txt .html
|
||||
@@ -476,6 +147,18 @@ os_win32.txt:
|
||||
|
||||
# Note that $< works with GNU make while $> works for BSD make.
|
||||
# Is there a solution that works for both??
|
||||
vim-da.UTF-8.1: vim-da.1
|
||||
iconv -f latin1 -t utf-8 $< >$@
|
||||
|
||||
vimdiff-da.UTF-8.1: vimdiff-da.1
|
||||
iconv -f latin1 -t utf-8 $< >$@
|
||||
|
||||
vimtutor-da.UTF-8.1: vimtutor-da.1
|
||||
iconv -f latin1 -t utf-8 $< >$@
|
||||
|
||||
vim-de.UTF-8.1: vim-de.1
|
||||
iconv -f latin1 -t utf-8 $< >$@
|
||||
|
||||
vim-fr.UTF-8.1: vim-fr.1
|
||||
iconv -f latin1 -t utf-8 $< >$@
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2023 Aug 09
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2023 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1855,7 +1855,7 @@ cosh({expr}) *cosh()*
|
||||
Compute()->cosh()
|
||||
|
||||
|
||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()* *E706*
|
||||
Return the number of times an item with value {expr} appears
|
||||
in |String|, |List| or |Dictionary| {comp}.
|
||||
|
||||
@@ -3928,6 +3928,8 @@ getmousepos() *getmousepos()*
|
||||
wincol column inside "winid"
|
||||
line text line inside "winid"
|
||||
column text column inside "winid"
|
||||
coladd offset (in screen columns) from the
|
||||
start of the clicked char
|
||||
All numbers are 1-based.
|
||||
|
||||
If not over a window, e.g. when in the command line, then only
|
||||
@@ -4006,8 +4008,8 @@ getqflist([{what}]) *getqflist()*
|
||||
text description of the error
|
||||
type type of the error, 'E', '1', etc.
|
||||
valid |TRUE|: recognized error message
|
||||
user_data
|
||||
custom data associated with the item, can be
|
||||
user_data
|
||||
custom data associated with the item, can be
|
||||
any type.
|
||||
|
||||
When there is no error list or it's empty, an empty list is
|
||||
@@ -4199,7 +4201,7 @@ getscriptinfo([{opts}]) *getscriptinfo()*
|
||||
Note that this is a copy, the value of
|
||||
script-local variables cannot be changed using
|
||||
this dictionary.
|
||||
version Vimscript version (|scriptversion|)
|
||||
version Vim script version (|scriptversion|)
|
||||
|
||||
Examples: >
|
||||
:echo getscriptinfo({'name': 'myscript'})
|
||||
@@ -5052,12 +5054,14 @@ insert({object}, {item} [, {idx}]) *insert()*
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->insert(item)
|
||||
|
||||
instanceof({object}, {class}) *instanceof()*
|
||||
The result is a Number, which is |TRUE| when the {object} argument is a
|
||||
direct or indirect instance of a |Class| specified by {class}.
|
||||
When {class} is a |List| the function returns |TRUE| when {object} is an
|
||||
instance of any of the specified classes.
|
||||
<
|
||||
*instanceof()* *E614* *E616* *E693*
|
||||
instanceof({object}, {class})
|
||||
The result is a Number, which is |TRUE| when the {object}
|
||||
argument is a direct or indirect instance of a |Class|
|
||||
specified by {class}.
|
||||
When {class} is a |List| the function returns |TRUE| when
|
||||
{object} is an instance of any of the specified classes.
|
||||
Example: >
|
||||
instanceof(animal, [Dog, Cat])
|
||||
|
||||
@@ -6409,7 +6413,9 @@ mode([expr]) Return a string that indicates the current mode.
|
||||
Rvx Virtual Replace mode |i_CTRL-X| completion
|
||||
c Command-line editing
|
||||
ct Command-line editing via Terminal-Job mode
|
||||
cr Command-line editing overstrike mode |c_<Insert>|
|
||||
cv Vim Ex mode |gQ|
|
||||
cvr Vim Ex mode while in overstrike mode |c_<Insert>|
|
||||
ce Normal Ex mode |Q|
|
||||
r Hit-enter prompt
|
||||
rm The -- more -- prompt
|
||||
@@ -6688,7 +6694,6 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
precision, the argument(s) to be used must also be specified
|
||||
using a {n$} positional argument specifier. See |printf-$|.
|
||||
|
||||
|
||||
The conversion specifiers and their meanings are:
|
||||
|
||||
*printf-d* *printf-b* *printf-B* *printf-o*
|
||||
@@ -6790,96 +6795,104 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
having a different word order, positional arguments may be
|
||||
used to indicate this. For instance: >
|
||||
|
||||
#, c-format
|
||||
msgid "%s returning %s"
|
||||
msgstr "waarde %2$s komt terug van %1$s"
|
||||
#, c-format
|
||||
msgid "%s returning %s"
|
||||
msgstr "waarde %2$s komt terug van %1$s"
|
||||
<
|
||||
In this example, the sentence has its 2 string arguments reversed
|
||||
in the output. >
|
||||
In this example, the sentence has its 2 string arguments
|
||||
reversed in the output. >
|
||||
|
||||
echo printf(
|
||||
"In The Netherlands, vim's creator's name is: %1$s %2$s",
|
||||
"Bram", "Moolenaar")
|
||||
< In The Netherlands, vim's creator's name is: Bram Moolenaar >
|
||||
echo printf(
|
||||
"In The Netherlands, vim's creator's name is: %1$s %2$s",
|
||||
"Bram", "Moolenaar")
|
||||
< In The Netherlands, vim's creator's name is: Bram Moolenaar >
|
||||
|
||||
echo printf(
|
||||
"In Belgium, vim's creator's name is: %2$s %1$s",
|
||||
"Bram", "Moolenaar")
|
||||
< In Belgium, vim's creator's name is: Moolenaar Bram
|
||||
echo printf(
|
||||
"In Belgium, vim's creator's name is: %2$s %1$s",
|
||||
"Bram", "Moolenaar")
|
||||
< In Belgium, vim's creator's name is: Moolenaar Bram
|
||||
|
||||
Width (and precision) can be specified using the '*' specifier.
|
||||
In this case, you must specify the field width position in the
|
||||
argument list. >
|
||||
|
||||
echo printf("%1$*2$.*3$d", 1, 2, 3)
|
||||
< 001 >
|
||||
echo printf("%2$*3$.*1$d", 1, 2, 3)
|
||||
< 2 >
|
||||
echo printf("%3$*1$.*2$d", 1, 2, 3)
|
||||
< 03 >
|
||||
echo printf("%1$*2$.*3$g", 1.4142, 2, 3)
|
||||
< 1.414
|
||||
echo printf("%1$*2$.*3$d", 1, 2, 3)
|
||||
< 001 >
|
||||
echo printf("%2$*3$.*1$d", 1, 2, 3)
|
||||
< 2 >
|
||||
echo printf("%3$*1$.*2$d", 1, 2, 3)
|
||||
< 03 >
|
||||
echo printf("%1$*2$.*3$g", 1.4142, 2, 3)
|
||||
< 1.414
|
||||
|
||||
You can mix specifying the width and/or precision directly
|
||||
and via positional arguments: >
|
||||
|
||||
echo printf("%1$4.*2$f", 1.4142135, 6)
|
||||
< 1.414214 >
|
||||
echo printf("%1$*2$.4f", 1.4142135, 6)
|
||||
< 1.4142 >
|
||||
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
|
||||
< 1.41
|
||||
echo printf("%1$4.*2$f", 1.4142135, 6)
|
||||
< 1.414214 >
|
||||
echo printf("%1$*2$.4f", 1.4142135, 6)
|
||||
< 1.4142 >
|
||||
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
|
||||
< 1.41
|
||||
|
||||
*E1400*
|
||||
*E1500*
|
||||
You cannot mix positional and non-positional arguments: >
|
||||
echo printf("%s%1$s", "One", "Two")
|
||||
< E1400: Cannot mix positional and non-positional
|
||||
arguments: %s%1$s
|
||||
echo printf("%s%1$s", "One", "Two")
|
||||
< E1500: Cannot mix positional and non-positional arguments:
|
||||
%s%1$s
|
||||
|
||||
*E1401*
|
||||
*E1501*
|
||||
You cannot skip a positional argument in a format string: >
|
||||
echo printf("%3$s%1$s", "One", "Two", "Three")
|
||||
< E1401: format argument 2 unused in $-style
|
||||
format: %3$s%1$s
|
||||
echo printf("%3$s%1$s", "One", "Two", "Three")
|
||||
< E1501: format argument 2 unused in $-style format:
|
||||
%3$s%1$s
|
||||
|
||||
*E1402*
|
||||
*E1502*
|
||||
You can re-use a [field-width] (or [precision]) argument: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
|
||||
< 1 at width 2 is: 01
|
||||
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
|
||||
< 1 at width 2 is: 01
|
||||
|
||||
However, you can't use it as a different type: >
|
||||
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
|
||||
< E1402: Positional argument 2 used as field
|
||||
width reused as different type: long int/int
|
||||
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
|
||||
< E1502: Positional argument 2 used as field width reused as
|
||||
different type: long int/int
|
||||
|
||||
*E1403*
|
||||
*E1503*
|
||||
When a positional argument is used, but not the correct number
|
||||
or arguments is given, an error is raised: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
%1$d at width %2$d is: %01$*2$.*3$d
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
|
||||
< E1503: Positional argument 3 out of bounds: %1$d at width
|
||||
%2$d is: %01$*2$.*3$d
|
||||
|
||||
Only the first error is reported: >
|
||||
echo printf("%01$*2$.*3$d %4$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
%01$*2$.*3$d %4$d
|
||||
echo printf("%01$*2$.*3$d %4$d", 1, 2)
|
||||
< E1503: Positional argument 3 out of bounds: %01$*2$.*3$d
|
||||
%4$d
|
||||
|
||||
*E1404*
|
||||
*E1504*
|
||||
A positional argument can be used more than once: >
|
||||
echo printf("%1$s %2$s %1$s", "One", "Two")
|
||||
< One Two One
|
||||
echo printf("%1$s %2$s %1$s", "One", "Two")
|
||||
< One Two One
|
||||
|
||||
However, you can't use a different type the second time: >
|
||||
echo printf("%1$s %2$s %1$d", "One", "Two")
|
||||
< E1404: Positional argument 1 type used
|
||||
inconsistently: int/string
|
||||
echo printf("%1$s %2$s %1$d", "One", "Two")
|
||||
< E1504: Positional argument 1 type used inconsistently:
|
||||
int/string
|
||||
|
||||
*E1405*
|
||||
*E1505*
|
||||
Various other errors that lead to a format string being
|
||||
wrongly formatted lead to: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
|
||||
< E1405: Invalid format specifier:
|
||||
%1$d at width %2$d is: %01$*2$.3$d
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
|
||||
< E1505: Invalid format specifier: %1$d at width %2$d is:
|
||||
%01$*2$.3$d
|
||||
|
||||
*E1507*
|
||||
This internal error indicates that the logic to parse a
|
||||
positional format argument ran into a problem that couldn't be
|
||||
otherwise reported. Please file a bug against Vim if you run
|
||||
into this, copying the exact format string and parameters that
|
||||
were used.
|
||||
|
||||
|
||||
prompt_getprompt({buf}) *prompt_getprompt()*
|
||||
Returns the effective prompt text for buffer {buf}. {buf} can
|
||||
@@ -9443,7 +9456,7 @@ strutf16len({string} [, {countcc}]) *strutf16len()*
|
||||
echo strutf16len('😊') returns 2
|
||||
echo strutf16len('ą́') returns 1
|
||||
echo strutf16len('ą́', v:true) returns 3
|
||||
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetText()->strutf16len()
|
||||
<
|
||||
@@ -10108,9 +10121,9 @@ trim({text} [, {mask} [, {dir}]]) *trim()*
|
||||
Return {text} as a String where any character in {mask} is
|
||||
removed from the beginning and/or end of {text}.
|
||||
|
||||
If {mask} is not given, {mask} is all characters up to 0x20,
|
||||
which includes Tab, space, NL and CR, plus the non-breaking
|
||||
space character 0xa0.
|
||||
If {mask} is not given, or is an empty string, {mask} is all
|
||||
characters up to 0x20, which includes Tab, space, NL and CR,
|
||||
plus the non-breaking space character 0xa0.
|
||||
|
||||
The optional {dir} argument specifies where to remove the
|
||||
characters:
|
||||
@@ -10166,8 +10179,8 @@ type({expr}) The result is a Number representing the type of {expr}.
|
||||
Job: 8 |v:t_job|
|
||||
Channel: 9 |v:t_channel|
|
||||
Blob: 10 |v:t_blob|
|
||||
Class 12 |v:t_class|
|
||||
Object 13 |v:t_object|
|
||||
Class: 12 |v:t_class|
|
||||
Object: 13 |v:t_object|
|
||||
For backward compatibility, this method can be used: >
|
||||
:if type(myvar) == type(0)
|
||||
:if type(myvar) == type("")
|
||||
@@ -10367,6 +10380,8 @@ virtcol2col({winid}, {lnum}, {col}) *virtcol2col()*
|
||||
character in window {winid} at buffer line {lnum} and virtual
|
||||
column {col}.
|
||||
|
||||
If buffer line {lnum} is an empty line, 0 is returned.
|
||||
|
||||
If {col} is greater than the last virtual column in line
|
||||
{lnum}, then the byte index of the character at the last
|
||||
virtual column is returned.
|
||||
@@ -11082,6 +11097,8 @@ winaltkeys Compiled with 'winaltkeys' option.
|
||||
windows Compiled with support for more than one window.
|
||||
(always true)
|
||||
writebackup Compiled with 'writebackup' default on.
|
||||
xattr Compiled with extended attributes support |xattr|
|
||||
(currently only supported on Linux).
|
||||
xfontset Compiled with X fontset support |xfontset|.
|
||||
xim Compiled with X input method support |xim|.
|
||||
xpm Compiled with pixmap support.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.0. Last change: 2023 Mar 07
|
||||
*change.txt* For Vim version 9.0. Last change: 2023 Nov 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -210,6 +210,7 @@ gR Enter Virtual Replace mode: Each character you type
|
||||
|
||||
*v_r*
|
||||
{Visual}r{char} Replace all selected characters by {char}.
|
||||
CTRL-C will be inserted literally.
|
||||
|
||||
*v_C*
|
||||
{Visual}["x]C Delete the highlighted lines [into register x] and
|
||||
@@ -643,9 +644,9 @@ For other systems the tmpnam() library function is used.
|
||||
current line only. When [count] is given, replace in
|
||||
[count] lines, starting with the last line in [range].
|
||||
When [range] is omitted start in the current line.
|
||||
*E939*
|
||||
[count] must be a positive number. Also see
|
||||
|cmdline-ranges|.
|
||||
*E939* *E1510*
|
||||
[count] must be a positive number (max 2147483647)
|
||||
Also see |cmdline-ranges|.
|
||||
|
||||
See |:s_flags| for [flags].
|
||||
The delimiter doesn't need to be /, see
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 9.0. Last change: 2023 May 20
|
||||
*cmdline.txt* For Vim version 9.0. Last change: 2023 Nov 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -90,9 +90,11 @@ CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||
In the GUI the |key-notation| is inserted without simplifying.
|
||||
|
||||
*c_<Left>* *c_Left*
|
||||
<Left> cursor left
|
||||
<Left> cursor left. See 'wildmenu' for behavior during wildmenu
|
||||
completion mode.
|
||||
*c_<Right>* *c_Right*
|
||||
<Right> cursor right
|
||||
<Right> cursor right. See 'wildmenu' for behavior during wildmenu
|
||||
completion mode.
|
||||
*c_<S-Left>*
|
||||
<S-Left> or <C-Left> *c_<C-Left>*
|
||||
cursor one WORD left
|
||||
@@ -102,7 +104,8 @@ CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||
CTRL-B or <Home> *c_CTRL-B* *c_<Home>* *c_Home*
|
||||
cursor to beginning of command-line
|
||||
CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
|
||||
cursor to end of command-line
|
||||
cursor to end of command-line. See 'wildmenu' for behavior
|
||||
during wildmenu completion mode.
|
||||
|
||||
*c_<LeftMouse>*
|
||||
<LeftMouse> Move the cursor to the position of the mouse click.
|
||||
@@ -237,6 +240,7 @@ CTRL-\ e {expr} *c_CTRL-\_e*
|
||||
CTRL-Y When there is a modeless selection, copy the selection into
|
||||
the clipboard. |modeless-selection|
|
||||
If there is no selection CTRL-Y is inserted as a character.
|
||||
See 'wildmenu' for behavior during wildmenu completion mode.
|
||||
|
||||
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||
<CR> or <NL> start entered command
|
||||
@@ -252,12 +256,14 @@ CTRL-C quit command-line without executing
|
||||
|
||||
*c_<Up>* *c_Up*
|
||||
<Up> recall older command-line from history, whose beginning
|
||||
matches the current command-line (see below).
|
||||
matches the current command-line (see below). See 'wildmenu'
|
||||
for behavior during wildmenu completion mode.
|
||||
{not available when compiled without the |+cmdline_hist|
|
||||
feature}
|
||||
*c_<Down>* *c_Down*
|
||||
<Down> recall more recent command-line from history, whose beginning
|
||||
matches the current command-line (see below).
|
||||
matches the current command-line (see below). See 'wildmenu'
|
||||
for behavior during wildmenu completion mode.
|
||||
{not available when compiled without the |+cmdline_hist|
|
||||
feature}
|
||||
|
||||
@@ -356,6 +362,7 @@ terminals)
|
||||
A positive number represents the absolute index of an entry
|
||||
as it is given in the first column of a :history listing.
|
||||
This number remains fixed even if other entries are deleted.
|
||||
(see |E1510|)
|
||||
|
||||
A negative number means the relative position of an entry,
|
||||
counted from the newest entry (which has index -1) backwards.
|
||||
@@ -381,6 +388,7 @@ When editing the command-line, a few commands can be used to complete the
|
||||
word before the cursor. This is available for:
|
||||
|
||||
- Command names: At the start of the command-line.
|
||||
- |++opt| values.
|
||||
- Tags: Only after the ":tag" command.
|
||||
- File names: Only after a command that accepts a file name or a setting for
|
||||
an option that can be set to a file name. This is called file name
|
||||
@@ -463,11 +471,16 @@ When repeating 'wildchar' or CTRL-N you cycle through the matches, eventually
|
||||
ending up back to what was typed. If the first match is not what you wanted,
|
||||
you can use <S-Tab> or CTRL-P to go straight back to what you typed.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||
|
||||
The 'wildmenu' option can be set to show the matches just above the command
|
||||
line.
|
||||
|
||||
The 'wildoptions' option provides additional configuration to use a popup menu
|
||||
for 'wildmenu', and to use fuzzy matching.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames. For
|
||||
completing other texts (e.g. command names), the 'ignorecase' option is used
|
||||
instead (fuzzy matching always ignores case, however).
|
||||
|
||||
If you like tcsh's autolist completion, you can use this mapping:
|
||||
:cnoremap X <C-L><C-D>
|
||||
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
|
||||
@@ -517,16 +530,26 @@ example, to match only files that end in ".c": >
|
||||
:e *.c$
|
||||
This will not match a file ending in ".cpp". Without the "$" it does match.
|
||||
|
||||
The old value of an option can be obtained by hitting 'wildchar' just after
|
||||
the '='. For example, typing 'wildchar' after ":set dir=" will insert the
|
||||
current value of 'dir'. This overrules file name completion for the options
|
||||
that take a file name.
|
||||
|
||||
If you would like using <S-Tab> for CTRL-P in an xterm, put this command in
|
||||
your .cshrc: >
|
||||
xmodmap -e "keysym Tab = Tab Find"
|
||||
And this in your .vimrc: >
|
||||
:cmap <Esc>[1~ <C-P>
|
||||
< *complete-set-option*
|
||||
When setting an option using |:set=|, the old value of an option can be
|
||||
obtained by hitting 'wildchar' just after the '='. For example, typing
|
||||
'wildchar' after ":set dir=" will insert the current value of 'dir'. This
|
||||
overrules file name completion for the options that take a file name.
|
||||
|
||||
When using |:set=|, |:set+=|, or |:set^=|, string options that have
|
||||
pre-defined names or syntax (e.g. 'diffopt', 'listchars') or are a list of
|
||||
single-character flags (e.g. 'shortmess') will also present a list of possible
|
||||
values for completion when using 'wildchar'.
|
||||
|
||||
When using |:set-=|, comma-separated options like 'diffopt' or 'backupdir'
|
||||
will show each item separately. Flag list options like 'shortmess' will show
|
||||
both the entire old value and the individual flags. Otherwise completion will
|
||||
just fill in with the entire old value.
|
||||
|
||||
==============================================================================
|
||||
3. Ex command-lines *cmdline-lines*
|
||||
@@ -778,7 +801,7 @@ An example for subtracting (which isn't very useful): >
|
||||
On this text:
|
||||
1 one ~
|
||||
2 two ~
|
||||
3 three FOLDED~
|
||||
3 three FOLDED ~
|
||||
4 four FOLDED ~
|
||||
5 five FOLDED ~
|
||||
6 six FOLDED ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 9.0. Last change: 2023 Mar 21
|
||||
*digraph.txt* For Vim version 9.0. Last change: 2023 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -174,6 +174,13 @@ ROUBLE
|
||||
The rouble sign was added in 2014 as 0x20bd. Vim supports the digraphs =R and
|
||||
=P for this. Note that R= and P= are other characters.
|
||||
|
||||
QUADRUPLE PRIME
|
||||
|
||||
The quadruple prime using the digraph 4' was added in 2023. Although it is
|
||||
not part of RFC 1345, it supplements the existing digraph implementation as
|
||||
there already exist digraphs for PRIME, DOUBLE PRIME and TRIPLE PRIME using
|
||||
the 1', 2' and 3' digraphs.
|
||||
|
||||
*digraph-table*
|
||||
char digraph hex dec official name ~
|
||||
^@ NU 0x00 0 NULL (NUL)
|
||||
@@ -931,6 +938,7 @@ char digraph hex dec official name ~
|
||||
′ 1' 2032 8242 PRIME
|
||||
″ 2' 2033 8243 DOUBLE PRIME
|
||||
‴ 3' 2034 8244 TRIPLE PRIME
|
||||
⁗ 4' 2057 8279 QUADRUPLE PRIME
|
||||
‵ 1" 2035 8245 REVERSED PRIME
|
||||
‶ 2" 2036 8246 REVERSED DOUBLE PRIME
|
||||
‷ 3" 2037 8247 REVERSED TRIPLE PRIME
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 9.0. Last change: 2023 Apr 23
|
||||
*editing.txt* For Vim version 9.0. Last change: 2023 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -385,7 +385,9 @@ as a wildcard when "[" is in the 'isfname' option. A simple way to avoid this
|
||||
is to use "path\[[]abc]", this matches the file "path\[abc]".
|
||||
|
||||
*starstar-wildcard*
|
||||
Expanding "**" is possible on Unix, Win32, macOS and a few other systems.
|
||||
Expanding "**" is possible on Unix, Win32, macOS and a few other systems (but
|
||||
it may depend on your 'shell' setting on Unix and macOS. It's known to work
|
||||
correctly for zsh; for bash this requires at least bash version >= 4.X).
|
||||
This allows searching a directory tree. This goes up to 100 directories deep.
|
||||
Note there are some commands where this works slightly differently, see
|
||||
|file-searching|.
|
||||
@@ -1095,6 +1097,13 @@ will get the ACL info of the original file.
|
||||
The ACL info is also used to check if a file is read-only (when opening the
|
||||
file).
|
||||
|
||||
*xattr* *E1506* *E1508* *E1509*
|
||||
xattr stands for Extended Attributes. It is an advanced way to save metadata
|
||||
alongside the file in the filesystem. It depends on the actual filesystem
|
||||
being used and Vim supports it only on a Linux system.
|
||||
Vim attempts to preserve the extended attribute info when writing a file.
|
||||
The backup file will get the extended attribute of the original file.
|
||||
|
||||
*read-only-share*
|
||||
When MS-Windows shares a drive on the network it can be marked as read-only.
|
||||
This means that even if the file read-only attribute is absent, and the ACL
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.0. Last change: 2023 Jun 01
|
||||
*eval.txt* For Vim version 9.0. Last change: 2023 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -36,6 +36,7 @@ a remark is given.
|
||||
11. No +eval feature |no-eval-feature|
|
||||
12. The sandbox |eval-sandbox|
|
||||
13. Textlock |textlock|
|
||||
14. Vim script library |vim-script-library|
|
||||
|
||||
Testing support is documented in |testing.txt|.
|
||||
Profiling is documented at |profiling|.
|
||||
@@ -2424,7 +2425,7 @@ v:progpath Contains the command with which Vim was invoked, in a form
|
||||
".exe" is not added to v:progpath.
|
||||
Read-only.
|
||||
|
||||
*v:python3_version* *python3-version-variable*
|
||||
*v:python3_version* *python3-version-variable*
|
||||
v:python3_version
|
||||
Version of Python 3 that Vim was built against. When
|
||||
Python is loaded dynamically (|python-dynamic|), this version
|
||||
@@ -3128,6 +3129,10 @@ text...
|
||||
< You may want to make a copy of a list to avoid this.
|
||||
See |deepcopy()|.
|
||||
|
||||
*E1391* *E1392*
|
||||
Locking and unlocking object and class variables is
|
||||
currently NOT supported.
|
||||
|
||||
|
||||
:unlo[ckvar][!] [depth] {name} ... *:unlockvar* *:unlo* *E1246*
|
||||
Unlock the internal variable {name}. Does the
|
||||
@@ -4797,5 +4802,37 @@ This is not allowed when the textlock is active:
|
||||
- closing a window or quitting Vim
|
||||
- etc.
|
||||
|
||||
==============================================================================
|
||||
14. Vim script library *vim-script-library*
|
||||
|
||||
Vim comes bundled with a Vim script library, that can be used by runtime,
|
||||
script authors. Currently, it only includes very few functions, but it may
|
||||
grow over time.
|
||||
|
||||
The functions are available as |Vim9-script| as well as using legacy Vim
|
||||
script (to be used for non Vim 9.0 versions and Neovim).
|
||||
|
||||
*dist#vim* *dist#vim9*
|
||||
The functions make use of the autoloaded prefix "dist#vim" (for legacy Vim
|
||||
script and Neovim) and "dist#vim9" for Vim9 script.
|
||||
|
||||
The following functions are available:
|
||||
|
||||
dist#vim#IsSafeExecutable(filetype, executable) ~
|
||||
dist#vim9#IsSafeExecutable(filetype:string, executable:string): bool ~
|
||||
|
||||
This function takes a filetype and an executable and checks whether it is safe
|
||||
to execute the given executable. For security reasons users may not want to
|
||||
have Vim execute random executables or may have forbidden to do so for
|
||||
specific filetypes by setting the "<filetype>_exec" variable (|plugin_exec|).
|
||||
|
||||
It returns |true| or |false| to indicate whether the plugin should run the given
|
||||
exectuable. It takes the following arguments:
|
||||
|
||||
argument type ~
|
||||
|
||||
filetype string
|
||||
executable string
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -433,7 +433,7 @@ So to enable this only for ruby, set the following variable: >
|
||||
:let g:ruby_exec = 1
|
||||
|
||||
If both, the global `plugin_exec` and the `<filetype>_exec` specific variable
|
||||
are set, the filetpe specific variable should have precedent.
|
||||
are set, the filetype specific variable should have precedent.
|
||||
|
||||
AWK *ft-awk-plugin*
|
||||
|
||||
|
||||
@@ -474,8 +474,8 @@ rust.vim Debugging
|
||||
register.
|
||||
|
||||
:RustInfoToFile [filename] *:RustInfoToFile*
|
||||
Saves debugging info of the Vim Rust plugin to the the given
|
||||
file, overwritting it.
|
||||
Saves debugging info of the Vim Rust plugin to the given file,
|
||||
overwriting it.
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *rust-mappings*
|
||||
|
||||
@@ -394,17 +394,25 @@ highlighting. So do these:
|
||||
|
||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
|
||||
*inclusion*
|
||||
Vim is for everybody, no matter race, gender or anything. Some people make a
|
||||
big deal about using "he" or "his" when referring to the user, thinking it
|
||||
means we assume the user is male. That is not the case, it's just a habit of
|
||||
writing help text, which quite often is many years old. Also, a lot of the
|
||||
text is written by contributors for whom English is not their first language.
|
||||
We do not make any assumptions about the gender of the user, no matter how the
|
||||
text is phrased. Some people have suggested using "they", but that is not
|
||||
regular English. We do not want to spend much time on this discussion. The
|
||||
goal is that the reader understands how Vim works, the exact wording is
|
||||
|
||||
GENDER NEUTRAL LANGUAGE
|
||||
|
||||
*gender-neutral* *inclusion*
|
||||
Vim is for everybody, no matter race, gender or anything. For new or updated
|
||||
help text, gender neutral language is recommended. Some of the help text is
|
||||
many years old and there is no need to change it. We do not make any
|
||||
assumptions about the gender of the user, no matter how the text is phrased.
|
||||
The goal is that the reader understands how Vim works, the exact wording is
|
||||
secondary.
|
||||
|
||||
Many online technical style guides include sections about gender neutral
|
||||
language. Here are a few: >
|
||||
|
||||
https://developers.google.com/style/pronouns
|
||||
https://techwhirl.com/gender-neutral-technical-writing/
|
||||
https://www.skillsyouneed.com/write/gender-neutral-language.html
|
||||
https://ualr.edu/writingcenter/avoid-sexist-language/
|
||||
<
|
||||
Note: gender neutral language does not require using singular "they".
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_ole.txt* For Vim version 9.0. Last change: 2022 Oct 08
|
||||
*if_ole.txt* For Vim version 9.0. Last change: 2023 Nov 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -59,7 +59,7 @@ Vim exposes four methods for use by clients.
|
||||
SendKeys(keys) Execute a series of keys.
|
||||
|
||||
This method takes a single parameter, which is a string of keystrokes. These
|
||||
keystrokes are executed exactly as if they had been types in at the keyboard.
|
||||
keystrokes are executed exactly as if they had been typed in at the keyboard.
|
||||
Special keys can be given using their <..> names, as for the right hand side
|
||||
of a mapping. Note: Execution of the Ex "normal" command is not supported -
|
||||
see below |ole-normal|.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 9.0. Last change: 2022 Feb 22
|
||||
*if_pyth.txt* For Vim version 9.0. Last change: 2023 Oct 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -524,7 +524,7 @@ The range object methods are:
|
||||
|
||||
Range object type is available using "Range" attribute of vim module.
|
||||
|
||||
Example (assume r is the current range):
|
||||
Example (assume r is the current range): >
|
||||
# Send all lines in a range to the default printer
|
||||
vim.command("%d,%dhardcopy!" % (r.start+1,r.end+1))
|
||||
|
||||
@@ -754,8 +754,10 @@ you can use Vim without this file.
|
||||
MS-Windows ~
|
||||
|
||||
To use the Python interface the Python DLL must be in your search path. In a
|
||||
console window type "path" to see what directories are used. The 'pythondll'
|
||||
or 'pythonthreedll' option can be also used to specify the Python DLL.
|
||||
console window type "path" to see what directories are used. If the DLL is
|
||||
not found in your search path, Vim will check the registry to find the path
|
||||
where Python is installed. The 'pythondll' or 'pythonthreedll' option can be
|
||||
also used to specify the Python DLL.
|
||||
|
||||
The name of the DLL should match the Python version Vim was compiled with.
|
||||
Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
|
||||
@@ -782,6 +784,8 @@ and failures. With Stable ABI, this restriction is relaxed, and any Python 3
|
||||
library with version of at least |v:python3_version| will work. See
|
||||
|has-python| for how to check if Stable ABI is supported, or see if version
|
||||
output includes |+python3/dyn-stable|.
|
||||
On MS-Windows, 'pythonthreedll' will be set to "python3.dll". When searching
|
||||
the DLL from the registry, Vim will search the latest version of Python.
|
||||
|
||||
==============================================================================
|
||||
10. Python 3 *python3*
|
||||
|
||||
@@ -1236,7 +1236,7 @@ variable. It supports 3 keys, `line_continuation`, `more_in_bracket_block`,
|
||||
and `searchpair_timeout`.
|
||||
`line_continuation` expects a number which will be added to the indent level of
|
||||
a continuation line starting with a backslash, and defaults to
|
||||
`shiftwidth() * 3`. It also accepts a string, which is evaluated at runtime.
|
||||
`shiftwidth() * 3` . It also accepts a string, which is evaluated at runtime.
|
||||
`more_in_bracket_block` expects a boolean value; when on, an extra
|
||||
`shiftwidth()` is added inside blocks surrounded with brackets. It defaults to
|
||||
`v:false`.
|
||||
@@ -1244,14 +1244,14 @@ a continuation line starting with a backslash, and defaults to
|
||||
a timeout. Increasing the value might give more accurate results, but also
|
||||
causes the indentation to take more time. It defaults to 100 (milliseconds).
|
||||
|
||||
Example of configuration:
|
||||
Example of configuration: >
|
||||
|
||||
let g:vim_indent = #{
|
||||
\ line_continuation: shiftwidth() * 3,
|
||||
\ more_in_bracket_block: v:false,
|
||||
\ searchpair_timeout: 100,
|
||||
\ }
|
||||
|
||||
<
|
||||
*g:vim_indent_cont*
|
||||
This variable is equivalent to `g:vim_indent.line_continuation`.
|
||||
It's supported for backward compatibility.
|
||||
|
||||
@@ -1112,6 +1112,22 @@ tag command action in Command-line editing mode ~
|
||||
|c_<Insert>| <Insert> toggle insert/overstrike mode
|
||||
|c_<LeftMouse>| <LeftMouse> cursor at mouse click
|
||||
|
||||
commands in wildmenu mode (see 'wildmenu')
|
||||
|
||||
<Up> move up to parent / select the previous match
|
||||
<Down> move down to submenu / select the next match
|
||||
<Left> select the previous match / move up to parent
|
||||
<Right> select the next match / move down to submenu
|
||||
<CR> move into submenu when doing menu completion
|
||||
CTRL-E stop completion and go back to original text
|
||||
CTRL-Y accept selected match and stop completion
|
||||
other stop completion and insert the typed character
|
||||
|
||||
commands in wildmenu mode with 'wildoptions' set to "pum"
|
||||
|
||||
<PageUp> select a match several entries back
|
||||
<PageDown> select a match several entries forward
|
||||
|
||||
==============================================================================
|
||||
5. Terminal-Job mode *terminal-job-index*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 9.0. Last change: 2023 Aug 15
|
||||
*intro.txt* For Vim version 9.0. Last change: 2023 Nov 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -43,7 +43,8 @@ document, there is a separate document for each supported system, see
|
||||
|
||||
*pronounce*
|
||||
Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
|
||||
capital, since it's a name, again like Jim.
|
||||
capital, since it's a name, again like Jim. The GUI version of Vim is written
|
||||
"gVim" (or "GVim" when at the beginning of a sentence).
|
||||
|
||||
This manual is a reference for all the Vim commands and options. This is not
|
||||
an introduction to the use of Vi or Vim, it gets a bit complicated here and
|
||||
@@ -97,12 +98,14 @@ There are several mailing lists for Vim:
|
||||
<vim-mac@vim.org> *vim-mac* *vim_mac*
|
||||
For discussions about using and improving the Macintosh version of
|
||||
Vim.
|
||||
<vim-security@googlegroups.com> *vim-security*
|
||||
This list is for (privately) discussing security relevant issues of Vim.
|
||||
|
||||
See http://www.vim.org/maillist.php for the latest information.
|
||||
|
||||
NOTE:
|
||||
- Anyone can see the archive, e.g. on Google groups. Search this if you have
|
||||
questions.
|
||||
questions, except for the vim-security list.
|
||||
- You can only send messages to these lists if you have subscribed!
|
||||
- The first message is moderated, thus it may take a few hours to show up.
|
||||
- You need to send the messages from the same location as where you subscribed
|
||||
@@ -184,7 +187,7 @@ introduce Y2K problems, but those are not really part of Vim itself.
|
||||
==============================================================================
|
||||
3. Credits *credits* *author*
|
||||
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|.
|
||||
|
||||
Parts of the documentation come from several Vi manuals, written by:
|
||||
W.N. Joy
|
||||
@@ -217,7 +220,8 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Bill Foster Athena GUI port (later removed)
|
||||
Google Let Bram work on Vim one day a week
|
||||
Loic Grenie xvim (ideas for multi windows version)
|
||||
Sven Guckes Vim promoter and previous WWW page maintainer |Sven-Guckes|
|
||||
Sven Guckes Vim promoter and previous WWW page maintainer
|
||||
|Sven-Guckes|
|
||||
Darren Hiebert Exuberant ctags
|
||||
Jason Hildebrand GTK+ 2 port
|
||||
Bruce Hunsaker improvements for VMS port
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 9.0. Last change: 2023 May 24
|
||||
*message.txt* For Vim version 9.0. Last change: 2023 Nov 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -135,6 +135,8 @@ This happens when an Ex command executes an Ex command that executes an Ex
|
||||
command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
|
||||
larger. When it's more there probably is an endless loop. Probably a
|
||||
|:execute| or |:source| command is involved.
|
||||
Can also happen with a recursive callback function (|job-callback|).
|
||||
A limit of 20 is used here.
|
||||
|
||||
*E254*
|
||||
Cannot allocate color {name} ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.0. Last change: 2022 Sep 26
|
||||
*motion.txt* For Vim version 9.0. Last change: 2023 Sep 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -592,14 +592,16 @@ a] *v_a]* *v_a[* *a]* *a[*
|
||||
a[ "a [] block", select [count] '[' ']' blocks. This
|
||||
goes backwards to the [count] unclosed '[', and finds
|
||||
the matching ']'. The enclosed text is selected,
|
||||
including the '[' and ']'.
|
||||
including the '[' and ']'. The |cpo-M| option flag
|
||||
is used to handle escaped brackets.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i] *v_i]* *v_i[* *i]* *i[*
|
||||
i[ "inner [] block", select [count] '[' ']' blocks. This
|
||||
goes backwards to the [count] unclosed '[', and finds
|
||||
the matching ']'. The enclosed text is selected,
|
||||
excluding the '[' and ']'.
|
||||
excluding the '[' and ']'. The |cpo-M| option flag
|
||||
is used to handle escaped brackets.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a) *v_a)* *a)* *a(*
|
||||
@@ -607,7 +609,8 @@ a( *vab* *v_ab* *v_a(* *ab*
|
||||
ab "a block", select [count] blocks, from "[count] [(" to
|
||||
the matching ')', including the '(' and ')' (see
|
||||
|[(|). Does not include white space outside of the
|
||||
parenthesis.
|
||||
parenthesis. The |cpo-M| option flag is used to
|
||||
handle escaped parenthesis.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i) *v_i)* *i)* *i(*
|
||||
@@ -615,19 +618,22 @@ i( *vib* *v_ib* *v_i(* *ib*
|
||||
ib "inner block", select [count] blocks, from "[count] [("
|
||||
to the matching ')', excluding the '(' and ')' (see
|
||||
|[(|). If the cursor is not inside a () block, then
|
||||
find the next "(".
|
||||
find the next "(". The |cpo-M| option flag
|
||||
is used to handle escaped parenthesis.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a> *v_a>* *v_a<* *a>* *a<*
|
||||
a< "a <> block", select [count] <> blocks, from the
|
||||
[count]'th unmatched '<' backwards to the matching
|
||||
'>', including the '<' and '>'.
|
||||
'>', including the '<' and '>'. The |cpo-M| option flag
|
||||
is used to handle escaped '<' and '>'.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i> *v_i>* *v_i<* *i>* *i<*
|
||||
i< "inner <> block", select [count] <> blocks, from
|
||||
the [count]'th unmatched '<' backwards to the matching
|
||||
'>', excluding the '<' and '>'.
|
||||
'>', excluding the '<' and '>'. The |cpo-M| option flag
|
||||
is used to handle escaped '<' and '>'.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
*v_at* *at*
|
||||
@@ -649,14 +655,16 @@ a} *v_a}* *a}* *a{*
|
||||
a{ *v_aB* *v_a{* *aB*
|
||||
aB "a Block", select [count] Blocks, from "[count] [{" to
|
||||
the matching '}', including the '{' and '}' (see
|
||||
|[{|).
|
||||
|[{|). The |cpo-M| option flag is used to handle
|
||||
escaped braces.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i} *v_i}* *i}* *i{*
|
||||
i{ *v_iB* *v_i{* *iB*
|
||||
iB "inner Block", select [count] Blocks, from "[count] [{"
|
||||
to the matching '}', excluding the '{' and '}' (see
|
||||
|[{|).
|
||||
|[{|). The |cpo-M| option flag is used to handle
|
||||
escaped braces.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a" *v_aquote* *aquote*
|
||||
@@ -683,6 +691,7 @@ i` *v_i`* *i`*
|
||||
Special case: With a count of 2 the quotes are
|
||||
included, but no extra white space as with a"/a'/a`.
|
||||
|
||||
*o_object-select*
|
||||
When used after an operator:
|
||||
For non-block objects:
|
||||
For the "a" commands: The operator applies to the object and the white
|
||||
@@ -698,6 +707,7 @@ For a block object:
|
||||
the surrounding braces are excluded. For the "a" commands, the braces
|
||||
are included.
|
||||
|
||||
*v_object-select*
|
||||
When used in Visual mode:
|
||||
When start and end of the Visual area are the same (just after typing "v"):
|
||||
One object is selected, the same as for using an operator.
|
||||
@@ -1069,14 +1079,14 @@ can go to cursor positions before older jumps, and back again. Thus you can
|
||||
move up and down the list. There is a separate jump list for each window.
|
||||
The maximum number of entries is fixed at 100.
|
||||
|
||||
For example, after three jump commands you have this jump list:
|
||||
|
||||
jump line col file/text ~
|
||||
3 1 0 some text ~
|
||||
2 70 0 another line ~
|
||||
1 1154 23 end. ~
|
||||
> ~
|
||||
For example, after three jump commands you have this jump list: >
|
||||
|
||||
jump line col file/text
|
||||
3 1 0 some text
|
||||
2 70 0 another line
|
||||
1 1154 23 end.
|
||||
>
|
||||
<
|
||||
The "file/text" column shows the file name, or the text at the jump if it is
|
||||
in the current file (an indent is removed and a long line is truncated to fit
|
||||
in the window).
|
||||
@@ -1085,14 +1095,14 @@ The marker ">" indicates the current position in the jumplist. It may not be
|
||||
shown when filtering the |:jumps| command using |:filter|
|
||||
|
||||
You are currently in line 1167. If you then use the CTRL-O command, the
|
||||
cursor is put in line 1154. This results in:
|
||||
|
||||
jump line col file/text ~
|
||||
2 1 0 some text ~
|
||||
1 70 0 another line ~
|
||||
> 0 1154 23 end. ~
|
||||
1 1167 0 foo bar ~
|
||||
cursor is put in line 1154. This results in: >
|
||||
|
||||
jump line col file/text
|
||||
2 1 0 some text
|
||||
1 70 0 another line
|
||||
> 0 1154 23 end.
|
||||
1 1167 0 foo bar
|
||||
<
|
||||
The pointer will be set at the last used jump position. The next CTRL-O
|
||||
command will use the entry above it, the next CTRL-I command will use the
|
||||
entry below it. If the pointer is below the last entry, this indicates that
|
||||
@@ -1116,15 +1126,15 @@ command. You can explicitly add a jump by setting the ' mark with "m'". Note
|
||||
that calling setpos() does not do this.
|
||||
|
||||
After the CTRL-O command that got you into line 1154 you could give another
|
||||
jump command (e.g., "G"). The jump list would then become:
|
||||
|
||||
jump line col file/text ~
|
||||
4 1 0 some text ~
|
||||
3 70 0 another line ~
|
||||
2 1167 0 foo bar ~
|
||||
1 1154 23 end. ~
|
||||
> ~
|
||||
jump command (e.g., "G"). The jump list would then become: >
|
||||
|
||||
jump line col file/text
|
||||
4 1 0 some text
|
||||
3 70 0 another line
|
||||
2 1167 0 foo bar
|
||||
1 1154 23 end.
|
||||
>
|
||||
<
|
||||
The line numbers will be adjusted for deleted and inserted lines. This fails
|
||||
if you stop editing a file without writing, like with ":n!".
|
||||
|
||||
@@ -1133,7 +1143,45 @@ When you split a window, the jumplist will be copied to the new window.
|
||||
If you have included the ' item in the 'viminfo' option the jumplist will be
|
||||
stored in the viminfo file and restored when starting Vim.
|
||||
|
||||
*jumplist-stack*
|
||||
When 'jumpoptions' option includes "stack", the jumplist behaves like the tag
|
||||
stack. When jumping to a new location from the middle of the jumplist, the
|
||||
locations after the current position will be discarded. With this option set
|
||||
you can move through a tree of jump locations. When going back up a branch and
|
||||
then down another branch, CTRL-O still takes you further up the tree.
|
||||
|
||||
Given a jumplist like the following in which CTRL-O has been used to move back
|
||||
three times to location X: >
|
||||
|
||||
jump line col file/text
|
||||
2 1260 8 mark.c <-- location X-2
|
||||
1 685 0 eval.c <-- location X-1
|
||||
> 0 462 36 eval.c <-- location X
|
||||
1 479 39 eval.c
|
||||
2 213 2 mark.c
|
||||
3 181 0 mark.c
|
||||
<
|
||||
jumping to (new) location Y results in the locations after the current
|
||||
locations being removed: >
|
||||
|
||||
jump line col file/text
|
||||
3 1260 8 mark.c <-- location X-2
|
||||
2 685 0 eval.c <-- location X-1
|
||||
1 462 36 eval.c <-- location X
|
||||
>
|
||||
<
|
||||
Then, when yet another location Z is jumped to, the new location Y appears
|
||||
directly after location X in the jumplist and location X remains in the same
|
||||
position relative to the locations (X-1, X-2, etc., ...) that had been before
|
||||
it prior to the original jump from X to Y: >
|
||||
|
||||
jump line col file/text
|
||||
4 1260 8 mark.c <-- location X-2
|
||||
3 685 0 eval.c <-- location X-1
|
||||
2 462 36 eval.c <-- location X
|
||||
1 100 0 buffer.c <-- location Y
|
||||
>
|
||||
<
|
||||
CHANGE LIST JUMPS *changelist* *change-list-jumps* *E664*
|
||||
|
||||
When making a change the cursor position is remembered. One position is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 9.0. Last change: 2022 Apr 03
|
||||
*netbeans.txt* For Vim version 9.0. Last change: 2023 Nov 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
@@ -846,7 +846,7 @@ REJECT Not used.
|
||||
These errors occur when a message violates the protocol:
|
||||
*E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636*
|
||||
*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
|
||||
*E647* *E648* *E649* *E650* *E651* *E652*
|
||||
*E647* *E648* *E650* *E651* *E652*
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.0. Last change: 2023 Aug 15
|
||||
*options.txt* For Vim version 9.0. Last change: 2023 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -71,7 +71,7 @@ achieve special effects. These options come in three forms:
|
||||
'ttytype'
|
||||
Warning: This may have a lot of side effects.
|
||||
|
||||
*:set-args* *E487* *E521*
|
||||
*:set-args* *:set=* *E487* *E521*
|
||||
:se[t] {option}={value} or
|
||||
:se[t] {option}:{value}
|
||||
Set string or number option to {value}.
|
||||
@@ -79,7 +79,9 @@ achieve special effects. These options come in three forms:
|
||||
hex (preceded with 0x) or octal (preceded with '0').
|
||||
The old value can be inserted by typing 'wildchar' (by
|
||||
default this is a <Tab> or CTRL-E if 'compatible' is
|
||||
set). See |cmdline-completion|.
|
||||
set). Many string options with fixed syntax and names
|
||||
also support completing known values. See
|
||||
|cmdline-completion| and |complete-set-option|.
|
||||
White space between {option} and '=' is allowed and
|
||||
will be ignored. White space between '=' and {value}
|
||||
is not allowed.
|
||||
@@ -113,6 +115,9 @@ achieve special effects. These options come in three forms:
|
||||
When the option is a list of flags, {value} must be
|
||||
exactly as they appear in the option. Remove flags
|
||||
one by one to avoid problems.
|
||||
The individual values from a comma separated list or
|
||||
list of flags can be inserted by typing 'wildchar'.
|
||||
See |complete-set-option|.
|
||||
Also see |:set-args| above.
|
||||
|
||||
The {option} arguments to ":set" may be repeated. For example: >
|
||||
@@ -187,10 +192,27 @@ To include white space in a string option value it has to be preceded with a
|
||||
backslash. To include a backslash you have to use two. Effectively this
|
||||
means that the number of backslashes in an option value is halved (rounded
|
||||
down).
|
||||
In options 'path', 'cdpath', and 'tags', spaces have to be preceded with three
|
||||
backslashes instead for compatibility with version 3.0 where the options can
|
||||
be separated by either commas or spaces.
|
||||
Comma-separated options like 'backupdir' and 'tags' will also require commas
|
||||
to be escaped with two backslashes, whereas this is not needed for
|
||||
non-comma-separated ones like 'makeprg'.
|
||||
When setting options using |:let| and |literal-string|, you need to use one
|
||||
fewer layer of backslash.
|
||||
A few examples: >
|
||||
:set tags=tags\ /usr/tags results in "tags /usr/tags"
|
||||
:set tags=tags\\,file results in "tags\,file"
|
||||
:set tags=tags\\\ file results in "tags\ file"
|
||||
:set makeprg=make\ file results in "make file"
|
||||
:let &makeprg='make file' (same as above)
|
||||
:set makeprg=make\\\ file results in "make\ file"
|
||||
:set tags=tags\ /usr/tags results in "tags" and "/usr/tags"
|
||||
:set tags=tags\\\ file results in "tags file"
|
||||
:let &tags='tags\ file' (same as above)
|
||||
|
||||
:set makeprg=make,file results in "make,file"
|
||||
:set makeprg=make\\,file results in "make\,file"
|
||||
:set tags=tags,file results in "tags" and "file"
|
||||
:set tags=tags\\,file results in "tags,file"
|
||||
:let &tags='tags\,file' (same as above)
|
||||
|
||||
The "|" character separates a ":set" command from a following command. To
|
||||
include the "|" in the option value, use "\|" instead. This example sets the
|
||||
@@ -430,7 +452,7 @@ Set using a variable with lambda expression: >
|
||||
let &tagfunc = L
|
||||
|
||||
In Vim9 script, in a compiled function, you can use a lambda, but a
|
||||
closured does not work, because the function will be called without the
|
||||
closure does not work, because the function will be called without the
|
||||
context of where it was defined.
|
||||
|
||||
|
||||
@@ -1402,7 +1424,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Some applications use the BOM to recognize the encoding of the file.
|
||||
Often used for UCS-2 files on MS-Windows. For other applications it
|
||||
causes trouble, for example: "cat file1 file2" makes the BOM of file2
|
||||
appear halfway the resulting file. Gcc doesn't accept a BOM.
|
||||
appear halfway through the resulting file. Gcc doesn't accept a BOM.
|
||||
When Vim reads a file and 'fileencodings' starts with "ucs-bom", a
|
||||
check for the presence of the BOM is done and 'bomb' set accordingly.
|
||||
Unless 'binary' is set, it is removed from the first line, so that you
|
||||
@@ -1582,6 +1604,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
current working directory to the |$HOME| directory like in Unix.
|
||||
When off, those commands just print the current directory name.
|
||||
On Unix this option has no effect.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'cdpath'* *'cd'* *E344* *E346*
|
||||
@@ -1949,6 +1973,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'delcombine' + off unicode: delete whole char combination
|
||||
'digraph' + off no digraphs
|
||||
'esckeys' & off no <Esc>-keys in Insert mode
|
||||
this also disables |modifyOtherKeys|
|
||||
and |xterm-bracketed-paste|
|
||||
'expandtab' + off tabs not expanded to spaces
|
||||
'fileformats' & "" no automatic file format detection,
|
||||
"dos,unix" except for MS-Windows
|
||||
@@ -2834,7 +2860,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When omitted a context of six lines is used.
|
||||
When using zero the context is actually one,
|
||||
since folds require a line in between, also
|
||||
for a deleted line.
|
||||
for a deleted line. Set it to a very large
|
||||
value (999999) to disable folding completely.
|
||||
See |fold-diff|.
|
||||
|
||||
iblank Ignore changes where lines are all blank. Adds
|
||||
@@ -3192,9 +3219,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
won't work by default.
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
NOTE: when this option is off then the |modifyOtherKeys| functionality
|
||||
is disabled while in Insert mode to avoid ending Insert mode with any
|
||||
key that has a modifier.
|
||||
NOTE: when this option is off then the |modifyOtherKeys| and
|
||||
|xterm-bracketed-paste| functionality is disabled while in Insert mode
|
||||
to avoid ending Insert mode with any key that has a modifier.
|
||||
|
||||
*'eventignore'* *'ei'*
|
||||
'eventignore' 'ei' string (default "")
|
||||
@@ -3467,8 +3494,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
and the value of that item:
|
||||
|
||||
item name default Used for ~
|
||||
stl ' ' or '^' statusline of the current window
|
||||
stlnc ' ' or '=' statusline of the non-current windows
|
||||
stl ' ' statusline of the current window
|
||||
stlnc ' ' statusline of the non-current windows
|
||||
vert '|' vertical separators |:vsplit|
|
||||
fold '-' filling 'foldtext'
|
||||
foldopen '-' mark the beginning of a fold
|
||||
@@ -3478,15 +3505,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
eob '~' empty lines below the end of a buffer
|
||||
lastline '@' 'display' contains lastline/truncate
|
||||
|
||||
Any one that is omitted will fall back to the default. For "stl" and
|
||||
"stlnc" the space will be used when there is highlighting, '^' or '='
|
||||
otherwise.
|
||||
Any one that is omitted will fall back to the default.
|
||||
|
||||
Example: >
|
||||
:set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:-
|
||||
< This is similar to the default, except that these characters will also
|
||||
be used when there is highlighting.
|
||||
|
||||
:set fillchars=stl:\ ,stlnc:\ ,vert:\|,fold:-,diff:-
|
||||
<
|
||||
For the "stl", "stlnc", "foldopen", "foldclose" and "foldsep" items
|
||||
single-byte and multibyte characters are supported. But double-width
|
||||
characters are not supported.
|
||||
@@ -3768,9 +3791,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'formatoptions' 'fo' string (Vim default: "tcq", Vi default: "vt")
|
||||
local to buffer
|
||||
This is a sequence of letters which describes how automatic
|
||||
formatting is to be done. See |fo-table|. When the 'paste' option is
|
||||
on, no formatting is done (like 'formatoptions' is empty). Commas can
|
||||
be inserted for readability.
|
||||
formatting is to be done.
|
||||
See |fo-table| for possible values and |gq| for how to format text.
|
||||
When the 'paste' option is on, no formatting is done (like
|
||||
'formatoptions' is empty). Commas can be inserted for readability.
|
||||
To avoid problems with flags that are added in the future, use the
|
||||
"+=" and "-=" feature of ":set" |add-option-flags|.
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
@@ -4298,8 +4322,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-PmenuSel| = popup menu selected line
|
||||
|hl-PmenuKind| [ popup menu "kind" normal line
|
||||
|hl-PmenuKindSel| ] popup menu "kind" selected line
|
||||
|hl-PmenuExtra| { popup menu "kind" normal line
|
||||
|hl-PmenuExtraSel| } popup menu "kind" selected line
|
||||
|hl-PmenuExtra| { popup menu "extra" normal line
|
||||
|hl-PmenuExtraSel| } popup menu "extra" selected line
|
||||
|hl-PmenuSbar| x popup menu scrollbar
|
||||
|hl-PmenuThumb| X popup menu scrollbar thumb
|
||||
|
||||
@@ -4417,8 +4441,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'ignorecase'* *'ic'* *'noignorecase'* *'noic'*
|
||||
'ignorecase' 'ic' boolean (default off)
|
||||
global
|
||||
Ignore case in search patterns. Also used when searching in the tags
|
||||
file.
|
||||
Ignore case in search patterns, |cmdline-completion|, when
|
||||
searching in the tags file, and non-|Vim9| |expr-==|.
|
||||
Also see 'smartcase' and 'tagcase'.
|
||||
Can be overruled by using "\c" or "\C" in the pattern, see
|
||||
|/ignorecase|.
|
||||
@@ -4899,6 +4923,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Otherwise only one space is inserted.
|
||||
NOTE: This option is set when 'compatible' is set.
|
||||
|
||||
*'jumpoptions'* *'jop'*
|
||||
'jumpoptions' 'jop' string (default "")
|
||||
global
|
||||
List of words that change the behavior of the |jumplist|.
|
||||
stack Make the jumplist behave like the tagstack.
|
||||
Relative location of entries in the jumplist is
|
||||
preserved at the cost of discarding subsequent entries
|
||||
when navigating backwards in the jumplist and then
|
||||
jumping to a location. |jumplist-stack|
|
||||
|
||||
*'key'*
|
||||
'key' string (default "")
|
||||
local to buffer
|
||||
@@ -4913,6 +4947,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"echo &key". This is to avoid showing it to someone who shouldn't
|
||||
know. It also means you cannot see it yourself once you have set it,
|
||||
be careful not to make a typing error!
|
||||
You also cannot use |:set-=|, |:set+=|, |:set^=| on this option to
|
||||
prevent an attacker from guessing substrings in your key.
|
||||
You can use "&key" in an expression to detect whether encryption is
|
||||
enabled. When 'key' is set it returns "*****" (five stars).
|
||||
|
||||
@@ -5552,7 +5588,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< If you have less than 512 Mbyte |:mkspell| may fail for some
|
||||
languages, no matter what you set 'mkspellmem' to.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'modeline'* *'ml'* *'nomodeline'* *'noml'*
|
||||
'modeline' 'ml' boolean (Vim default: on (off for root),
|
||||
@@ -5711,7 +5748,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The 'mousemodel' option is set by the |:behave| command.
|
||||
|
||||
*'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*
|
||||
*'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*
|
||||
'mousemoveevent' 'mousemev' boolean (default off)
|
||||
global
|
||||
{only works in the GUI}
|
||||
@@ -5954,6 +5991,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'packpath'* *'pp'*
|
||||
'packpath' 'pp' string (default: see 'runtimepath')
|
||||
Directories used to find packages. See |packages|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
|
||||
*'paragraphs'* *'para'*
|
||||
@@ -6038,6 +6077,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
feature}
|
||||
Expression which is evaluated to apply a patch to a file and generate
|
||||
the resulting new version of the file. See |diff-patchexpr|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'patchmode'* *'pm'* *E205* *E206*
|
||||
'patchmode' 'pm' string (default "")
|
||||
@@ -6747,9 +6788,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'*
|
||||
'scrollbind' 'scb' boolean (default off)
|
||||
local to window
|
||||
See also |scroll-binding|. When this option is set, the current
|
||||
window scrolls as other scrollbind windows (windows that also have
|
||||
this option set) scroll. This option is useful for viewing the
|
||||
See also |scroll-binding|. When this option is set, scrolling the
|
||||
current window also scrolls other scrollbind windows (windows that
|
||||
also have this option set). This option is useful for viewing the
|
||||
differences between two versions of a file, see 'diff'.
|
||||
See |'scrollopt'| for options that determine how this option should be
|
||||
interpreted.
|
||||
@@ -7120,6 +7161,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When 'shellxquote' is set to "(" then the characters listed in this
|
||||
option will be escaped with a '^' character. This makes it possible
|
||||
to execute most external commands with cmd.exe.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'shellxquote'* *'sxq'*
|
||||
'shellxquote' 'sxq' string (default: "";
|
||||
@@ -7960,7 +8003,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option controls the behavior when switching between buffers.
|
||||
This option is checked, when
|
||||
- jumping to errors with the |quickfix| commands (|:cc|, |:cn|, |:cp|,
|
||||
etc.)
|
||||
etc.).
|
||||
- jumping to a tag using the |:stag| command.
|
||||
- opening a file using the |CTRL-W_f| or |CTRL-W_F| command.
|
||||
- jumping to a buffer using a buffer split command (e.g. |:sbuffer|,
|
||||
@@ -8176,6 +8219,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
function and an example. The value can be the name of a function, a
|
||||
|lambda| or a |Funcref|. See |option-value-function| for more
|
||||
information.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'taglength'* *'tl'*
|
||||
'taglength' 'tl' number (default 0)
|
||||
@@ -8195,8 +8240,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|+emacs_tags|: "./tags,./TAGS,tags,TAGS")
|
||||
global or local to buffer |global-local|
|
||||
Filenames for the tag command, separated by spaces or commas. To
|
||||
include a space or comma in a file name, precede it with a backslash
|
||||
(see |option-backslash| about including spaces and backslashes).
|
||||
include a space or comma in a file name, precede it with backslashes
|
||||
(see |option-backslash| about including spaces/commas and backslashes).
|
||||
When a file name starts with "./", the '.' is replaced with the path
|
||||
of the current file. But only when the 'd' flag is not included in
|
||||
'cpoptions'. Environment variables are expanded |:set_env|. Also see
|
||||
@@ -8935,12 +8980,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Setting 'verbosefile' to a new value is like making it empty first.
|
||||
The difference with |:redir| is that verbose messages are not
|
||||
displayed when 'verbosefile' is set.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'viewdir'* *'vdir'*
|
||||
'viewdir' 'vdir' string (default for Amiga "home:vimfiles/view",
|
||||
'viewdir' 'vdir' string (default for Amiga: "home:vimfiles/view",
|
||||
for Win32: "$HOME/vimfiles/view",
|
||||
for Unix: "$HOME/.vim/view",
|
||||
for macOS: "$VIM/vimfiles/view"
|
||||
for macOS: "$VIM/vimfiles/view",
|
||||
for VMS: "sys$login:vimfiles/view")
|
||||
global
|
||||
{not available when compiled without the |+mksession|
|
||||
@@ -9217,6 +9264,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The character is not recognized when used inside a macro. See
|
||||
'wildcharm' for that.
|
||||
Some keys will not work, such as CTRL-C, <CR> and Enter.
|
||||
<Esc> can be used, but hitting it twice in a row will still exit
|
||||
command-line as a failsafe measure.
|
||||
Although 'wc' is a number option, you can set it to a special key: >
|
||||
:set wc=<Tab>
|
||||
< NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
@@ -9250,7 +9299,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
uses another default.
|
||||
|
||||
|
||||
*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
|
||||
*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
|
||||
'wildignorecase' 'wic' boolean (default off)
|
||||
global
|
||||
When set case is ignored when completing file names and directories.
|
||||
@@ -9279,31 +9328,34 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
as needed.
|
||||
The "wildmenu" mode is abandoned when a key is hit that is not used
|
||||
for selecting a completion.
|
||||
While the "wildmenu" is active, not using the popup menu, the
|
||||
following keys have special meanings:
|
||||
|
||||
<Left> <Right> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<Down> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
While the "wildmenu" is active, the following keys have special
|
||||
meanings:
|
||||
CTRL-P - go to the previous entry
|
||||
CTRL-N - go to the next entry
|
||||
<CR> - in menu completion, when the cursor is just after a
|
||||
dot: move into a submenu.
|
||||
CTRL-E - end completion, go back to what was there before
|
||||
selecting a match.
|
||||
CTRL-Y - accept the currently selected match and stop
|
||||
completion.
|
||||
|
||||
When not using the popup menu for command line completion, the
|
||||
following keys have special meanings:
|
||||
<Left> <Right> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<Up> - in filename/menu name completion: move up into
|
||||
parent directory or parent menu.
|
||||
<Down> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
|
||||
When using the popup menu for command line completion, the following
|
||||
keys have special meanings:
|
||||
<Down> - select next match (like CTRL-N)
|
||||
<Up> <Down> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<PageUp> - select a match several entries back
|
||||
<PageDown> - select a match several entries further
|
||||
<Left> - in filename/menu name completion: move up into
|
||||
parent directory or parent menu.
|
||||
<Right> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
<Up> - select previous match (like CTRL-P)
|
||||
CTRL-E - end completion, go back to what was there before
|
||||
selecting a match.
|
||||
CTRL-N - go to the next entry
|
||||
CTRL-P - go to the previous entry
|
||||
CTRL-Y - accept the currently selected match and stop
|
||||
completion.
|
||||
|
||||
This makes the menus accessible from the console |console-menus|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.0. Last change: 2023 Feb 04
|
||||
*pattern.txt* For Vim version 9.0. Last change: 2023 Oct 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1080,7 +1080,7 @@ match ASCII characters, as indicated by the range.
|
||||
|
||||
\(\) A pattern enclosed by escaped parentheses. */\(* */\(\)* */\)*
|
||||
E.g., "\(^a\)" matches 'a' at the start of a line.
|
||||
There can only be ten of these. You can use "\%(" to add more, but
|
||||
There can only be nine of these. You can use "\%(" to add more, but
|
||||
not counting it as a sub-expression.
|
||||
*E51* *E54* *E55* *E872* *E873*
|
||||
|
||||
@@ -1461,10 +1461,11 @@ Finally, these constructs are unique to Perl:
|
||||
Just like |:match| above, but set a separate match. Thus
|
||||
there can be three matches active at the same time. The match
|
||||
with the lowest number has priority if several match at the
|
||||
same position.
|
||||
The ":3match" command is used by the |matchparen| plugin. You
|
||||
are suggested to use ":match" for manual matching and
|
||||
":2match" for another plugin.
|
||||
same position. It uses the match id 3.
|
||||
The ":3match" command is used by (Vim < 9.0.2054) |matchparen|
|
||||
plugin. You are suggested to use ":match" for manual matching
|
||||
and ":2match" for another plugin or even better make use of
|
||||
the more flexible |matchadd()| (and similar) functions instead.
|
||||
|
||||
==============================================================================
|
||||
11. Fuzzy matching *fuzzy-matching*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_gzip.txt* For Vim version 9.0. Last change: 2019 May 05
|
||||
*pi_gzip.txt* For Vim version 9.0. Last change: 2023 Nov 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -12,6 +12,14 @@ The functionality mentioned here is a |standard-plugin|.
|
||||
This plugin is only available if 'compatible' is not set.
|
||||
You can avoid loading this plugin by setting the "loaded_gzip" variable: >
|
||||
:let loaded_gzip = 1
|
||||
<
|
||||
*g:gzip_exec*
|
||||
|
||||
For security reasons, one may prevent that Vim runs executables automatically
|
||||
when opening a buffer. This option (default: "1") can be used to prevent
|
||||
executing the executables command when set to "0": >
|
||||
:let g:gzip_exec = 0
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
1. Autocommands *gzip-autocmd*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 9.0. Last change: 2023 Mar 12
|
||||
*pi_zip.txt* For Vim version 9.0. Last change: 2023 Nov 05
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -69,6 +69,13 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
This option specifies the program (and any options needed) used to
|
||||
extract a file from a zip archive. By default, >
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
<
|
||||
*g:zip_exec*
|
||||
For security reasons, one may prevent that Vim runs executables
|
||||
automatically when opening a buffer. This option (default: "1")
|
||||
can be used to prevent executing the "unzip" command when set to
|
||||
"0": >
|
||||
let g:zip_exec=0
|
||||
<
|
||||
PREVENTING LOADING~
|
||||
|
||||
|
||||
@@ -1422,6 +1422,7 @@ rest is ignored. Items can only be 1023 bytes long.
|
||||
Basic items
|
||||
|
||||
%f file name (finds a string)
|
||||
%b buffer number (finds a number)
|
||||
%o module name (finds a string)
|
||||
%l line number (finds a number)
|
||||
%e end line number (finds a number)
|
||||
@@ -1461,6 +1462,11 @@ On MS-Windows a leading "C:" will be included in "%f", even when using "%f:".
|
||||
This means that a file name which is a single alphabetical letter will not be
|
||||
detected.
|
||||
|
||||
The "%b" conversion is used to parse a buffer number. This is useful for
|
||||
referring to lines in a scratch buffer or a buffer with no name. If a buffer
|
||||
with the matching number doesn't exist, then that line is used as a non-error
|
||||
line.
|
||||
|
||||
The "%p" conversion is normally followed by a "^". It's used for compilers
|
||||
that output a line like: >
|
||||
^
|
||||
|
||||
@@ -772,6 +772,7 @@ Short explanation of each option: *option-list*
|
||||
'iskeyword' 'isk' characters included in keywords
|
||||
'isprint' 'isp' printable characters
|
||||
'joinspaces' 'js' two spaces after a period with a join command
|
||||
'jumpoptions' 'jop' specifies how jumping is done
|
||||
'key' encryption key
|
||||
'keymap' 'kmp' name of a keyboard mapping
|
||||
'keymodel' 'km' enable starting/stopping selection with keys
|
||||
|
||||
@@ -1149,8 +1149,8 @@ Profiling should give a good indication of where time is spent, but keep in
|
||||
mind there are various things that may clobber the results:
|
||||
|
||||
- The accuracy of the time measured depends on the gettimeofday(), or
|
||||
clock_gettime if available, system function. The accuracy ranges from 1/100
|
||||
second to nanoseconds. With clock_gettime the times are displayed in
|
||||
clock_gettime() if available, system function. The accuracy ranges from
|
||||
1/100 second to nanoseconds. With clock_gettime() the times are displayed in
|
||||
nanoseconds, otherwise microseconds. You can use `has("prof_nsec")`.
|
||||
|
||||
- Real elapsed time is measured, if other processes are busy they may cause
|
||||
|
||||
@@ -191,16 +191,16 @@ windows can be given this behavior by setting the (window-specific)
|
||||
other 'scrollbind' windows are scrolled the same amount, if possible. The
|
||||
behavior of 'scrollbind' can be modified by the 'scrollopt' option.
|
||||
|
||||
When using the scrollbars, the binding only happens when scrolling the window
|
||||
with focus (where the cursor is). You can use this to avoid scroll-binding
|
||||
for a moment without resetting options.
|
||||
When using the scrollbars or the mouse wheel, the binding only happens when
|
||||
scrolling the window with focus (where the cursor is). You can use this to
|
||||
avoid scroll-binding for a moment without resetting options.
|
||||
|
||||
When a window also has the 'diff' option set, the scroll-binding uses the
|
||||
differences between the two buffers to synchronize the position precisely.
|
||||
Otherwise the following method is used.
|
||||
|
||||
*scrollbind-relative*
|
||||
Each 'scrollbind' window keeps track of its "relative offset," which can be
|
||||
Each 'scrollbind' window keeps track of its "relative offset", which can be
|
||||
thought of as the difference between the current window's vertical scroll
|
||||
position and the other window's vertical scroll position. When one of the
|
||||
'scrollbind' windows is asked to vertically scroll past the beginning or end
|
||||
@@ -224,9 +224,10 @@ option.
|
||||
|
||||
*scrollbind-quickadj*
|
||||
The 'scrollbind' flag is meaningful when using keyboard commands to vertically
|
||||
scroll a window, and also meaningful when using the vertical scrollbar of the
|
||||
window which has the cursor focus. However, when using the vertical scrollbar
|
||||
of a window which doesn't have the cursor focus, 'scrollbind' is ignored.
|
||||
scroll a window, and is also meaningful when using the vertical scrollbar or
|
||||
the mouse wheel in the window which has the cursor focus. However, when using
|
||||
the vertical scrollbar or the mouse wheel in a window which doesn't have the
|
||||
cursor focus, 'scrollbind' is ignored.
|
||||
This allows quick adjustment of the relative offset of 'scrollbind' windows.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.0. Last change: 2023 May 30
|
||||
*starting.txt* For Vim version 9.0. Last change: 2023 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -249,10 +249,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
*-Z* *restricted-mode* *E145* *E981*
|
||||
-Z Restricted mode. All commands that make use of an external
|
||||
shell are disabled. This includes suspending with CTRL-Z,
|
||||
":sh", filtering, the system() function, backtick expansion
|
||||
":sh", filtering, the |system()| function, backtick expansion
|
||||
and libcall().
|
||||
Also disallowed are delete(), rename(), mkdir(), job_start(),
|
||||
etc.
|
||||
Also disallowed are |delete()|, |rename()|, |mkdir()|,
|
||||
|job_start()|, |setenv()| etc.
|
||||
Interfaces, such as Python, Ruby and Lua, are also disabled,
|
||||
since they could be used to execute shell commands. Perl uses
|
||||
the Safe module.
|
||||
@@ -348,7 +348,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
Start logging and write entries to {filename}.
|
||||
This works like calling `ch_logfile({filename}, 'ao')` very
|
||||
early during startup.
|
||||
{only available with the |+eval| feature}
|
||||
{only available with the |+eval| and |+channel| feature}
|
||||
|
||||
*-D*
|
||||
-D Debugging. Go to debugging mode when executing the first
|
||||
@@ -1704,6 +1704,6 @@ most of the information will be restored).
|
||||
If you get the |press-enter| prompt you can press "q"
|
||||
and still get the prompt to enter a file number.
|
||||
Use ! to abandon a modified buffer. |abandon|
|
||||
{not when compiled with tiny or small features}
|
||||
{not when compiled with tiny features}
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -2797,7 +2797,7 @@ The first option implies the second one.
|
||||
For highlighted trailing whitespace and mix of spaces and tabs: >
|
||||
:let python_space_error_highlight = 1
|
||||
|
||||
If you want all possible Python highlighting:
|
||||
If you want all possible Python highlighting: >
|
||||
:let python_highlight_all = 1
|
||||
This has the same effect as setting python_space_error_highlight and
|
||||
unsetting all the other ones.
|
||||
|
||||
@@ -433,7 +433,9 @@ $quote eval.txt /*$quote*
|
||||
'isp' options.txt /*'isp'*
|
||||
'isprint' options.txt /*'isprint'*
|
||||
'joinspaces' options.txt /*'joinspaces'*
|
||||
'jop' options.txt /*'jop'*
|
||||
'js' options.txt /*'js'*
|
||||
'jumpoptions' options.txt /*'jumpoptions'*
|
||||
'key' options.txt /*'key'*
|
||||
'keymap' options.txt /*'keymap'*
|
||||
'keymodel' options.txt /*'keymodel'*
|
||||
@@ -1481,6 +1483,7 @@ $quote eval.txt /*$quote*
|
||||
+wildmenu various.txt /*+wildmenu*
|
||||
+windows various.txt /*+windows*
|
||||
+writebackup various.txt /*+writebackup*
|
||||
+xattr various.txt /*+xattr*
|
||||
+xfontset various.txt /*+xfontset*
|
||||
+xim various.txt /*+xim*
|
||||
+xpm various.txt /*+xpm*
|
||||
@@ -3206,6 +3209,7 @@ $quote eval.txt /*$quote*
|
||||
:set-inv options.txt /*:set-inv*
|
||||
:set-termcap options.txt /*:set-termcap*
|
||||
:set-verbose options.txt /*:set-verbose*
|
||||
:set= options.txt /*:set=*
|
||||
:set^= options.txt /*:set^=*
|
||||
:set_env options.txt /*:set_env*
|
||||
:setf options.txt /*:setf*
|
||||
@@ -4418,13 +4422,11 @@ E1325 vim9class.txt /*E1325*
|
||||
E1326 vim9class.txt /*E1326*
|
||||
E1327 vim9class.txt /*E1327*
|
||||
E1328 vim9class.txt /*E1328*
|
||||
E1329 vim9class.txt /*E1329*
|
||||
E133 userfunc.txt /*E133*
|
||||
E1330 vim9class.txt /*E1330*
|
||||
E1331 vim9class.txt /*E1331*
|
||||
E1332 vim9class.txt /*E1332*
|
||||
E1333 vim9class.txt /*E1333*
|
||||
E1334 vim9class.txt /*E1334*
|
||||
E1335 vim9class.txt /*E1335*
|
||||
E1336 options.txt /*E1336*
|
||||
E1337 vim9class.txt /*E1337*
|
||||
@@ -4456,19 +4458,40 @@ E136 starting.txt /*E136*
|
||||
E1360 vim9class.txt /*E1360*
|
||||
E1361 syntax.txt /*E1361*
|
||||
E1362 vim9class.txt /*E1362*
|
||||
E1363 vim9class.txt /*E1363*
|
||||
E1363 vim9.txt /*E1363*
|
||||
E1364 recover.txt /*E1364*
|
||||
E1365 vim9class.txt /*E1365*
|
||||
E1366 vim9class.txt /*E1366*
|
||||
E1367 vim9class.txt /*E1367*
|
||||
E1368 vim9class.txt /*E1368*
|
||||
E1369 vim9class.txt /*E1369*
|
||||
E137 starting.txt /*E137*
|
||||
E1370 vim9class.txt /*E1370*
|
||||
E1371 vim9class.txt /*E1371*
|
||||
E1372 vim9class.txt /*E1372*
|
||||
E1373 vim9class.txt /*E1373*
|
||||
E1374 vim9class.txt /*E1374*
|
||||
E1375 vim9class.txt /*E1375*
|
||||
E1376 vim9class.txt /*E1376*
|
||||
E1377 vim9class.txt /*E1377*
|
||||
E1378 vim9class.txt /*E1378*
|
||||
E1379 vim9class.txt /*E1379*
|
||||
E138 starting.txt /*E138*
|
||||
E1380 vim9class.txt /*E1380*
|
||||
E1381 vim9class.txt /*E1381*
|
||||
E1382 vim9class.txt /*E1382*
|
||||
E1383 vim9class.txt /*E1383*
|
||||
E1384 vim9class.txt /*E1384*
|
||||
E1385 vim9class.txt /*E1385*
|
||||
E1386 vim9class.txt /*E1386*
|
||||
E1387 vim9class.txt /*E1387*
|
||||
E1388 vim9class.txt /*E1388*
|
||||
E1389 vim9class.txt /*E1389*
|
||||
E139 message.txt /*E139*
|
||||
E1390 vim9class.txt /*E1390*
|
||||
E1391 eval.txt /*E1391*
|
||||
E1392 eval.txt /*E1392*
|
||||
E140 message.txt /*E140*
|
||||
E1400 builtin.txt /*E1400*
|
||||
E1401 builtin.txt /*E1401*
|
||||
E1402 builtin.txt /*E1402*
|
||||
E1403 builtin.txt /*E1403*
|
||||
E1404 builtin.txt /*E1404*
|
||||
E1405 builtin.txt /*E1405*
|
||||
E141 message.txt /*E141*
|
||||
E142 message.txt /*E142*
|
||||
E143 autocmd.txt /*E143*
|
||||
@@ -4480,7 +4503,18 @@ E148 repeat.txt /*E148*
|
||||
E149 helphelp.txt /*E149*
|
||||
E15 eval.txt /*E15*
|
||||
E150 helphelp.txt /*E150*
|
||||
E1500 builtin.txt /*E1500*
|
||||
E1501 builtin.txt /*E1501*
|
||||
E1502 builtin.txt /*E1502*
|
||||
E1503 builtin.txt /*E1503*
|
||||
E1504 builtin.txt /*E1504*
|
||||
E1505 builtin.txt /*E1505*
|
||||
E1506 editing.txt /*E1506*
|
||||
E1507 builtin.txt /*E1507*
|
||||
E1508 editing.txt /*E1508*
|
||||
E1509 editing.txt /*E1509*
|
||||
E151 helphelp.txt /*E151*
|
||||
E1510 change.txt /*E1510*
|
||||
E152 helphelp.txt /*E152*
|
||||
E153 helphelp.txt /*E153*
|
||||
E154 helphelp.txt /*E154*
|
||||
@@ -4976,6 +5010,8 @@ E610 editing.txt /*E610*
|
||||
E611 eval.txt /*E611*
|
||||
E612 sign.txt /*E612*
|
||||
E613 print.txt /*E613*
|
||||
E614 builtin.txt /*E614*
|
||||
E616 builtin.txt /*E616*
|
||||
E617 options.txt /*E617*
|
||||
E618 print.txt /*E618*
|
||||
E619 print.txt /*E619*
|
||||
@@ -5011,7 +5047,6 @@ E645 netbeans.txt /*E645*
|
||||
E646 netbeans.txt /*E646*
|
||||
E647 netbeans.txt /*E647*
|
||||
E648 netbeans.txt /*E648*
|
||||
E649 netbeans.txt /*E649*
|
||||
E65 pattern.txt /*E65*
|
||||
E650 netbeans.txt /*E650*
|
||||
E651 netbeans.txt /*E651*
|
||||
@@ -5059,6 +5094,7 @@ E69 pattern.txt /*E69*
|
||||
E690 eval.txt /*E690*
|
||||
E691 eval.txt /*E691*
|
||||
E692 eval.txt /*E692*
|
||||
E693 builtin.txt /*E693*
|
||||
E694 eval.txt /*E694*
|
||||
E695 eval.txt /*E695*
|
||||
E696 eval.txt /*E696*
|
||||
@@ -5072,6 +5108,7 @@ E702 builtin.txt /*E702*
|
||||
E703 eval.txt /*E703*
|
||||
E704 eval.txt /*E704*
|
||||
E705 eval.txt /*E705*
|
||||
E706 builtin.txt /*E706*
|
||||
E707 eval.txt /*E707*
|
||||
E708 eval.txt /*E708*
|
||||
E709 eval.txt /*E709*
|
||||
@@ -5905,6 +5942,7 @@ added-7.3 version7.txt /*added-7.3*
|
||||
added-7.4 version7.txt /*added-7.4*
|
||||
added-8.1 version8.txt /*added-8.1*
|
||||
added-8.2 version8.txt /*added-8.2*
|
||||
added-9.1 version9.txt /*added-9.1*
|
||||
added-BeOS version5.txt /*added-BeOS*
|
||||
added-Mac version5.txt /*added-Mac*
|
||||
added-VMS version5.txt /*added-VMS*
|
||||
@@ -6285,6 +6323,7 @@ changed-7.3 version7.txt /*changed-7.3*
|
||||
changed-7.4 version7.txt /*changed-7.4*
|
||||
changed-8.1 version8.txt /*changed-8.1*
|
||||
changed-8.2 version8.txt /*changed-8.2*
|
||||
changed-9.1 version9.txt /*changed-9.1*
|
||||
changelist motion.txt /*changelist*
|
||||
changelog.vim syntax.txt /*changelog.vim*
|
||||
changenr() builtin.txt /*changenr()*
|
||||
@@ -6367,7 +6406,7 @@ cino-{ indent.txt /*cino-{*
|
||||
cino-} indent.txt /*cino-}*
|
||||
cinoptions-values indent.txt /*cinoptions-values*
|
||||
class vim9class.txt /*class*
|
||||
class-function vim9class.txt /*class-function*
|
||||
class-method vim9class.txt /*class-method*
|
||||
clear-undo undo.txt /*clear-undo*
|
||||
clearmatches() builtin.txt /*clearmatches()*
|
||||
client-server remote.txt /*client-server*
|
||||
@@ -6457,6 +6496,7 @@ complete-items insert.txt /*complete-items*
|
||||
complete-popup insert.txt /*complete-popup*
|
||||
complete-popuphidden insert.txt /*complete-popuphidden*
|
||||
complete-script-local-functions cmdline.txt /*complete-script-local-functions*
|
||||
complete-set-option cmdline.txt /*complete-set-option*
|
||||
complete_CTRL-E insert.txt /*complete_CTRL-E*
|
||||
complete_CTRL-Y insert.txt /*complete_CTRL-Y*
|
||||
complete_add() builtin.txt /*complete_add()*
|
||||
@@ -6472,6 +6512,7 @@ conceal syntax.txt /*conceal*
|
||||
confirm() builtin.txt /*confirm()*
|
||||
connection-refused message.txt /*connection-refused*
|
||||
console-menus gui.txt /*console-menus*
|
||||
constructor vim9class.txt /*constructor*
|
||||
context.vim ft_context.txt /*context.vim*
|
||||
control intro.txt /*control*
|
||||
conversion-server mbyte.txt /*conversion-server*
|
||||
@@ -6645,6 +6686,7 @@ debugger.txt debugger.txt /*debugger.txt*
|
||||
dec-mouse options.txt /*dec-mouse*
|
||||
decada_members ft_ada.txt /*decada_members*
|
||||
deepcopy() builtin.txt /*deepcopy()*
|
||||
default-constructor vim9class.txt /*default-constructor*
|
||||
defaults.vim starting.txt /*defaults.vim*
|
||||
defaults.vim-explained usr_05.txt /*defaults.vim-explained*
|
||||
define-function userfunc.txt /*define-function*
|
||||
@@ -6716,6 +6758,8 @@ dircolors.vim syntax.txt /*dircolors.vim*
|
||||
dis motion.txt /*dis*
|
||||
disable-menus gui.txt /*disable-menus*
|
||||
discard editing.txt /*discard*
|
||||
dist#vim eval.txt /*dist#vim*
|
||||
dist#vim9 eval.txt /*dist#vim9*
|
||||
distribute-script usr_51.txt /*distribute-script*
|
||||
distributed-plugins usr_05.txt /*distributed-plugins*
|
||||
distribution intro.txt /*distribution*
|
||||
@@ -7380,6 +7424,7 @@ g:gnat.Project_File ft_ada.txt /*g:gnat.Project_File*
|
||||
g:gnat.Set_Project_File() ft_ada.txt /*g:gnat.Set_Project_File()*
|
||||
g:gnat.Tags() ft_ada.txt /*g:gnat.Tags()*
|
||||
g:gnat.Tags_Command ft_ada.txt /*g:gnat.Tags_Command*
|
||||
g:gzip_exec pi_gzip.txt /*g:gzip_exec*
|
||||
g:html_charset_override syntax.txt /*g:html_charset_override*
|
||||
g:html_diff_one_file syntax.txt /*g:html_diff_one_file*
|
||||
g:html_dynamic_folds syntax.txt /*g:html_dynamic_folds*
|
||||
@@ -7574,6 +7619,7 @@ g:vimsyn_minlines syntax.txt /*g:vimsyn_minlines*
|
||||
g:vimsyn_noerror syntax.txt /*g:vimsyn_noerror*
|
||||
g:yaml_schema syntax.txt /*g:yaml_schema*
|
||||
g:zipPlugin_ext pi_zip.txt /*g:zipPlugin_ext*
|
||||
g:zip_exec pi_zip.txt /*g:zip_exec*
|
||||
g:zip_extractcmd pi_zip.txt /*g:zip_extractcmd*
|
||||
g:zip_nomax pi_zip.txt /*g:zip_nomax*
|
||||
g:zip_shq pi_zip.txt /*g:zip_shq*
|
||||
@@ -7624,6 +7670,7 @@ gd pattern.txt /*gd*
|
||||
gdb debug.txt /*gdb*
|
||||
gdb-version terminal.txt /*gdb-version*
|
||||
ge motion.txt /*ge*
|
||||
gender-neutral helphelp.txt /*gender-neutral*
|
||||
get() builtin.txt /*get()*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
getbufinfo() builtin.txt /*getbufinfo()*
|
||||
@@ -8284,6 +8331,7 @@ json_encode() builtin.txt /*json_encode()*
|
||||
jtags tagsrch.txt /*jtags*
|
||||
jump-motions motion.txt /*jump-motions*
|
||||
jumplist motion.txt /*jumplist*
|
||||
jumplist-stack motion.txt /*jumplist-stack*
|
||||
jumpto-diffs diff.txt /*jumpto-diffs*
|
||||
k motion.txt /*k*
|
||||
kcc uganda.txt /*kcc*
|
||||
@@ -8895,6 +8943,7 @@ netrw.vim pi_netrw.txt /*netrw.vim*
|
||||
netrw_filehandler pi_netrw.txt /*netrw_filehandler*
|
||||
netterm-mouse options.txt /*netterm-mouse*
|
||||
network pi_netrw.txt /*network*
|
||||
new() vim9class.txt /*new()*
|
||||
new-5 version5.txt /*new-5*
|
||||
new-6 version6.txt /*new-6*
|
||||
new-7 version7.txt /*new-7*
|
||||
@@ -8955,6 +9004,7 @@ new-operator-mod version6.txt /*new-operator-mod*
|
||||
new-options-5.2 version5.txt /*new-options-5.2*
|
||||
new-options-5.4 version5.txt /*new-options-5.4*
|
||||
new-other-8.2 version8.txt /*new-other-8.2*
|
||||
new-other-9.1 version9.txt /*new-other-9.1*
|
||||
new-perl-python version5.txt /*new-perl-python*
|
||||
new-persistent-undo version7.txt /*new-persistent-undo*
|
||||
new-plugins version6.txt /*new-plugins*
|
||||
@@ -9013,10 +9063,12 @@ null vim9.txt /*null*
|
||||
null-variable eval.txt /*null-variable*
|
||||
null_blob vim9.txt /*null_blob*
|
||||
null_channel vim9.txt /*null_channel*
|
||||
null_class vim9.txt /*null_class*
|
||||
null_dict vim9.txt /*null_dict*
|
||||
null_function vim9.txt /*null_function*
|
||||
null_job vim9.txt /*null_job*
|
||||
null_list vim9.txt /*null_list*
|
||||
null_object vim9.txt /*null_object*
|
||||
null_partial vim9.txt /*null_partial*
|
||||
null_string vim9.txt /*null_string*
|
||||
number_relativenumber options.txt /*number_relativenumber*
|
||||
@@ -9027,6 +9079,7 @@ numbersize-variable eval.txt /*numbersize-variable*
|
||||
o insert.txt /*o*
|
||||
o_CTRL-V motion.txt /*o_CTRL-V*
|
||||
o_V motion.txt /*o_V*
|
||||
o_object-select motion.txt /*o_object-select*
|
||||
o_v motion.txt /*o_v*
|
||||
object vim9class.txt /*object*
|
||||
object-motions motion.txt /*object-motions*
|
||||
@@ -9114,6 +9167,7 @@ patches-8 version8.txt /*patches-8*
|
||||
patches-8.1 version8.txt /*patches-8.1*
|
||||
patches-8.2 version8.txt /*patches-8.2*
|
||||
patches-9 version9.txt /*patches-9*
|
||||
patches-9.1 version9.txt /*patches-9.1*
|
||||
patches-after-8.2 version9.txt /*patches-after-8.2*
|
||||
pathshorten() builtin.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
@@ -9307,6 +9361,8 @@ prop_type_change() textprop.txt /*prop_type_change()*
|
||||
prop_type_delete() textprop.txt /*prop_type_delete()*
|
||||
prop_type_get() textprop.txt /*prop_type_get()*
|
||||
prop_type_list() textprop.txt /*prop_type_list()*
|
||||
protected-method vim9class.txt /*protected-method*
|
||||
protected-variable vim9class.txt /*protected-variable*
|
||||
ps1-about ft_ps1.txt /*ps1-about*
|
||||
ps1-compiler ft_ps1.txt /*ps1-compiler*
|
||||
ps1-folding ft_ps1.txt /*ps1-folding*
|
||||
@@ -9315,6 +9371,7 @@ ps1-syntax ft_ps1.txt /*ps1-syntax*
|
||||
psql ft_sql.txt /*psql*
|
||||
ptcap.vim syntax.txt /*ptcap.vim*
|
||||
pterm-mouse options.txt /*pterm-mouse*
|
||||
public-variable vim9class.txt /*public-variable*
|
||||
pum_getpos() builtin.txt /*pum_getpos()*
|
||||
pumvisible() builtin.txt /*pumvisible()*
|
||||
put change.txt /*put*
|
||||
@@ -9454,6 +9511,7 @@ rcp pi_netrw.txt /*rcp*
|
||||
read-in-close-cb channel.txt /*read-in-close-cb*
|
||||
read-messages insert.txt /*read-messages*
|
||||
read-only-share editing.txt /*read-only-share*
|
||||
read-only-variable vim9class.txt /*read-only-variable*
|
||||
read-stdin version5.txt /*read-stdin*
|
||||
readblob() builtin.txt /*readblob()*
|
||||
readdir() builtin.txt /*readdir()*
|
||||
@@ -10381,6 +10439,7 @@ termdebug-customizing terminal.txt /*termdebug-customizing*
|
||||
termdebug-events terminal.txt /*termdebug-events*
|
||||
termdebug-example terminal.txt /*termdebug-example*
|
||||
termdebug-frames terminal.txt /*termdebug-frames*
|
||||
termdebug-mappings terminal.txt /*termdebug-mappings*
|
||||
termdebug-prompt terminal.txt /*termdebug-prompt*
|
||||
termdebug-starting terminal.txt /*termdebug-starting*
|
||||
termdebug-stepping terminal.txt /*termdebug-stepping*
|
||||
@@ -10844,6 +10903,7 @@ v_iw motion.txt /*v_iw*
|
||||
v_i{ motion.txt /*v_i{*
|
||||
v_i} motion.txt /*v_i}*
|
||||
v_o visual.txt /*v_o*
|
||||
v_object-select motion.txt /*v_object-select*
|
||||
v_p change.txt /*v_p*
|
||||
v_r change.txt /*v_r*
|
||||
v_s change.txt /*v_s*
|
||||
@@ -10890,6 +10950,7 @@ version-8.0 version8.txt /*version-8.0*
|
||||
version-8.1 version8.txt /*version-8.1*
|
||||
version-8.2 version8.txt /*version-8.2*
|
||||
version-9.0 version9.txt /*version-9.0*
|
||||
version-9.1 version9.txt /*version-9.1*
|
||||
version-variable eval.txt /*version-variable*
|
||||
version4.txt version4.txt /*version4.txt*
|
||||
version5.txt version5.txt /*version5.txt*
|
||||
@@ -10905,6 +10966,7 @@ version8.1 version8.txt /*version8.1*
|
||||
version8.2 version8.txt /*version8.2*
|
||||
version8.txt version8.txt /*version8.txt*
|
||||
version9.0 version9.txt /*version9.0*
|
||||
version9.1 version9.txt /*version9.1*
|
||||
version9.txt version9.txt /*version9.txt*
|
||||
versionlong-variable eval.txt /*versionlong-variable*
|
||||
vi intro.txt /*vi*
|
||||
@@ -10923,6 +10985,7 @@ vim-8.1 version8.txt /*vim-8.1*
|
||||
vim-8.2 version8.txt /*vim-8.2*
|
||||
vim-9 version9.txt /*vim-9*
|
||||
vim-9.0 version9.txt /*vim-9.0*
|
||||
vim-9.1 version9.txt /*vim-9.1*
|
||||
vim-additions vi_diff.txt /*vim-additions*
|
||||
vim-announce intro.txt /*vim-announce*
|
||||
vim-arguments starting.txt /*vim-arguments*
|
||||
@@ -10934,6 +10997,8 @@ vim-modes intro.txt /*vim-modes*
|
||||
vim-modes-intro intro.txt /*vim-modes-intro*
|
||||
vim-raku ft_raku.txt /*vim-raku*
|
||||
vim-script-intro usr_41.txt /*vim-script-intro*
|
||||
vim-script-library eval.txt /*vim-script-library*
|
||||
vim-security intro.txt /*vim-security*
|
||||
vim-use intro.txt /*vim-use*
|
||||
vim-variable eval.txt /*vim-variable*
|
||||
vim.b if_lua.txt /*vim.b*
|
||||
@@ -10945,6 +11010,7 @@ vim.w if_lua.txt /*vim.w*
|
||||
vim7 version7.txt /*vim7*
|
||||
vim8 version8.txt /*vim8*
|
||||
vim9 vim9.txt /*vim9*
|
||||
vim9-access-modes vim9class.txt /*vim9-access-modes*
|
||||
vim9-autoload vim9.txt /*vim9-autoload*
|
||||
vim9-boolean vim9.txt /*vim9-boolean*
|
||||
vim9-classes vim9.txt /*vim9-classes*
|
||||
@@ -10957,6 +11023,7 @@ vim9-differences vim9.txt /*vim9-differences*
|
||||
vim9-export vim9.txt /*vim9-export*
|
||||
vim9-false-true vim9.txt /*vim9-false-true*
|
||||
vim9-final vim9.txt /*vim9-final*
|
||||
vim9-func-declaration vim9.txt /*vim9-func-declaration*
|
||||
vim9-function-defined-later vim9.txt /*vim9-function-defined-later*
|
||||
vim9-gotchas vim9.txt /*vim9-gotchas*
|
||||
vim9-ignored-argument vim9.txt /*vim9-ignored-argument*
|
||||
@@ -11182,6 +11249,7 @@ x-resources version5.txt /*x-resources*
|
||||
x11-clientserver remote.txt /*x11-clientserver*
|
||||
x11-cut-buffer gui_x11.txt /*x11-cut-buffer*
|
||||
x11-selection gui_x11.txt /*x11-selection*
|
||||
xattr editing.txt /*xattr*
|
||||
xf86conf.vim syntax.txt /*xf86conf.vim*
|
||||
xfontset mbyte.txt /*xfontset*
|
||||
xfree-xterm syntax.txt /*xfree-xterm*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 9.0. Last change: 2023 Jan 15
|
||||
*term.txt* For Vim version 9.0. Last change: 2023 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -104,6 +104,11 @@ pasted text. This way Vim can separate text that is pasted from characters
|
||||
that are typed. The pasted text is handled like when the middle mouse button
|
||||
is used, it is inserted literally and not interpreted as commands.
|
||||
|
||||
Please note: while bracketed paste is trying to prevent nasty side-effects
|
||||
from pasting (like the CTRL-C or <ESC> key), it's not a guaranteed security
|
||||
measure because different terminals may implement this mode slightly
|
||||
differently. You should still be careful with what you paste into Vim.
|
||||
|
||||
When the cursor is in the first column, the pasted text will be inserted
|
||||
before it. Otherwise the pasted text is appended after the cursor position.
|
||||
This means one cannot paste after the first column. Unfortunately Vim does
|
||||
@@ -122,6 +127,9 @@ If |t_PS| or |t_PE| is not set, then |t_BE| will not be used. This is to make
|
||||
sure that bracketed paste is not enabled when the escape codes surrounding
|
||||
pasted text cannot be recognized.
|
||||
|
||||
Note: bracketed paste mode will be disabled, when the 'esckeys' option is not
|
||||
set (also when the 'compatible' option is set).
|
||||
|
||||
If your terminal supports bracketed paste, but the options are not set
|
||||
automatically, you can try using something like this: >
|
||||
|
||||
@@ -324,11 +332,16 @@ using the "xterm" workaround. These are the relevant entries (so far):
|
||||
|
||||
XM "\033[?1006;1004;1000%?%p1%{1}%=%th%el%;"
|
||||
mouse enable / disable |t_XM|
|
||||
FE "\033[?1004h" enable focus event tracking |t_fe|
|
||||
FD "\033[?1004l" disable focus event tracking |t_fd|
|
||||
|
||||
The "XM" entry includes "1006" to enable SGR style mouse reporting. This
|
||||
supports columns above 223. It also includes "1004" which enables focus
|
||||
reporting. The t_fe and t_fd entries can be left empty (they don't have
|
||||
entries in terminfo/termcap anyway).
|
||||
reporting.
|
||||
Note: As of 2023, the "1004" is currently not used by Vim itself, instead
|
||||
it is recommended to set focus reporting independently of mouse tracking by
|
||||
the |t_fe| and |t_fd| entries, as ncurses also starts to use with the latest
|
||||
versions (and will then also end up in terminfo/termcap).
|
||||
|
||||
*xterm-kitty* *kitty-terminal*
|
||||
The Kitty terminal is a special case. Mainly because it works differently
|
||||
@@ -744,8 +757,9 @@ For Windows Terminal you can use something like this: >
|
||||
let &t_SI = "\e[5 q" " blink bar
|
||||
let &t_SR = "\e[3 q" " blink underline
|
||||
let &t_EI = "\e[1 q" " blink block
|
||||
let &t_ti ..= "\e[1 q" " blink block
|
||||
let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink block)
|
||||
let &t_ti ..= "\e[1 q" " blink block
|
||||
let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink
|
||||
" block)
|
||||
endif
|
||||
|
||||
{not available when compiled without the |+cursorshape| feature}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.0. Last change: 2023 Aug 23
|
||||
*terminal.txt* For Vim version 9.0. Last change: 2023 Nov 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -42,6 +42,7 @@ If the result is "1" you have it.
|
||||
Other commands |termdebug-commands|
|
||||
Events |termdebug-events|
|
||||
Prompt mode |termdebug-prompt|
|
||||
Mappings |termdebug-mappings|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
|
||||
@@ -1461,18 +1462,22 @@ Prompt mode can be used even when the |+terminal| feature is present with: >
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_use_prompt = 1
|
||||
<
|
||||
*termdebug_map_K*
|
||||
The K key is normally mapped to |:Evaluate|. If you do not want this use: >
|
||||
Mappings ~
|
||||
*termdebug_map_K* *termdebug-mappings*
|
||||
The K key is normally mapped to |:Evaluate| unless a buffer local (|:map-local|)
|
||||
mapping to K already exists. If you do not want this use: >
|
||||
let g:termdebug_config['map_K'] = 0
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_map_K = 0
|
||||
<
|
||||
*termdebug_map_minus*
|
||||
The - key is normally mapped to |:Down|. If you do not want this use: >
|
||||
The - key is normally mapped to |:Down| unless a buffer local mapping to the -
|
||||
key already exists. If you do not want this use: >
|
||||
let g:termdebug_config['map_minus'] = 0
|
||||
<
|
||||
*termdebug_map_plus*
|
||||
The + key is normally mapped to |:Up|. If you do not want this use: >
|
||||
The + key is normally mapped to |:Up| unless a buffer local mapping to the +
|
||||
key already exists. If you do not want this use: >
|
||||
let g:termdebug_config['map_plus'] = 0
|
||||
<
|
||||
*termdebug_disasm_window*
|
||||
@@ -1483,15 +1488,22 @@ If you want the Asm window shown by default, set the "disasm_window" flag to
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_disasm_window = 15
|
||||
Any value greater than 1 will set the Asm window height to that value.
|
||||
If the current window has enough horizontal space, it will be vertically split
|
||||
and the Asm window will be shown side by side with the source code window (and
|
||||
the height option won't be used).
|
||||
|
||||
*termdebug_variables_window*
|
||||
If you want the Var window shown by default, set the flag to 1.
|
||||
the "variables_window_height" entry can be used to set the window height: >
|
||||
If you want the Var window shown by default, set the "variables_window" flag
|
||||
to 1. The "variables_window_height" entry can be used to set the window
|
||||
height: >
|
||||
let g:termdebug_config['variables_window'] = 1
|
||||
let g:termdebug_config['variables_window_height'] = 15
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_variables_window = 15
|
||||
Any value greater than 1 will set the Var window height to that value.
|
||||
If the current window has enough horizontal space, it will be vertically split
|
||||
and the Var window will be shown side by side with the source code window (and
|
||||
the height options won't be used).
|
||||
|
||||
Communication ~
|
||||
*termdebug-communication*
|
||||
@@ -1532,7 +1544,7 @@ The function will be called with the list of arguments so far, and a second
|
||||
argument that is the name of the pty.
|
||||
*gdb-version*
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface. The "new-ui" command requires gdb version 7.12 or later. if you
|
||||
interface. The "new-ui" command requires gdb version 7.12 or later. If you
|
||||
get this error:
|
||||
Undefined command: "new-ui". Try "help".~
|
||||
Then your gdb is too old.
|
||||
@@ -1576,9 +1588,9 @@ If there is no g:termdebug_config you can use: >
|
||||
|
||||
Change default signs ~
|
||||
*termdebug_signs*
|
||||
Termdebug uses the last two characters of the breakpoint ID in the
|
||||
signcolumn to represent breakpoints. For example, breakpoint ID 133
|
||||
will be displayed as `33`.
|
||||
Termdebug uses the hex number of the breakpoint ID in the signcolumn to
|
||||
represent breakpoints. if it is greater than "0xFF", then it will be displayed
|
||||
as "F+", due to we really only have two screen cells for the sign.
|
||||
|
||||
If you want to customize the breakpoint signs: >
|
||||
let g:termdebug_config['sign'] = '>>'
|
||||
|
||||
@@ -6,21 +6,41 @@
|
||||
" Written by Christian Brabandt.
|
||||
|
||||
func Test_check_URLs()
|
||||
"20.10.23, added by Restorer
|
||||
if has("win32")
|
||||
echoerr "Doesn't work on MS-Windows"
|
||||
return
|
||||
let s:outdev = 'nul'
|
||||
else
|
||||
let s:outdev = '/dev/null'
|
||||
endif
|
||||
" Restorer: For Windows users. If "curl" or "weget" is installed on the system
|
||||
" but not in %PATH%, add the full routes for them to this environment variable.
|
||||
if executable('curl')
|
||||
" Note: does not follow redirects!
|
||||
let s:command = 'curl --silent --fail --output /dev/null --head '
|
||||
let s:command1 = 'curl --silent --fail --output ' ..s:outdev.. ' --head '
|
||||
let s:command2 = ""
|
||||
elseif executable('wget')
|
||||
" Note: only allow a couple of redirects
|
||||
let s:command = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O /dev/null '
|
||||
let s:command1 = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O ' ..s:outdev.. ' '
|
||||
let s:command2 = ""
|
||||
elseif has("win32") "20.10.23, added by Restorer
|
||||
if executable('powershell')
|
||||
if 2 == system('powershell -nologo -noprofile "$psversiontable.psversion.major"')
|
||||
echoerr 'To work in OS Windows requires the program "PowerShell" version 3.0 or higher'
|
||||
return
|
||||
endif
|
||||
let s:command1 =
|
||||
\ "powershell -nologo -noprofile \"{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'};try{(Invoke-WebRequest -MaximumRedirection 2 -TimeoutSec 5 -Uri "
|
||||
let s:command2 = ').StatusCode}catch{exit [int]$Error[0].Exception.Status}"'
|
||||
endif
|
||||
else
|
||||
echoerr 'Only works when "curl" or "wget" is available'
|
||||
echoerr 'Only works when "curl" or "wget", or "powershell" is available'
|
||||
return
|
||||
endif
|
||||
|
||||
" Do the testing.
|
||||
set report =999
|
||||
set nomore shm +=s
|
||||
|
||||
let pat='\(https\?\|ftp\)://[^\t* ]\+'
|
||||
exe 'helpgrep' pat
|
||||
helpclose
|
||||
@@ -36,22 +56,21 @@ func Test_check_URLs()
|
||||
put =urls
|
||||
" remove some more invalid items
|
||||
" empty lines
|
||||
v/./d
|
||||
"20.10.23, Restorer: '_' is a little faster, see `:h global`
|
||||
v/./d _
|
||||
" remove # anchors
|
||||
%s/#.*$//e
|
||||
" remove trailing stuff (parenthesis, dot, comma, quotes), but only for HTTP
|
||||
" links
|
||||
g/^h/s#[.,)'"/>][:.]\?$##
|
||||
g#^[hf]t\?tp:/\(/\?\.*\)$#d
|
||||
silent! g/ftp://,$/d
|
||||
silent! g/=$/d
|
||||
g/^h/s#[.),'"`/>][:.,]\?$##
|
||||
g#^[hf]t\?tp:/\(/\?\.*\)$#d _
|
||||
silent! g/ftp://,$/d _
|
||||
silent! g/=$/d _
|
||||
let a = getline(1,'$')
|
||||
let a = uniq(sort(a))
|
||||
%d
|
||||
%d _
|
||||
call setline(1, a)
|
||||
|
||||
" Do the testing.
|
||||
set nomore
|
||||
%s/.*/\=TestURL(submatch(0))/
|
||||
|
||||
" highlight the failures
|
||||
@@ -61,8 +80,10 @@ endfunc
|
||||
func TestURL(url)
|
||||
" Relies on the return code to determine whether a page is valid
|
||||
echom printf("Testing URL: %d/%d %s", line('.'), line('$'), a:url)
|
||||
call system(s:command . shellescape(a:url))
|
||||
call system(s:command1 .. shellescape(a:url) .. s:command2)
|
||||
return printf("%s %d", a:url, v:shell_error)
|
||||
endfunc
|
||||
|
||||
call Test_check_URLs()
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
@@ -21,7 +21,7 @@ Vim can be tested after building it, usually with "make test".
|
||||
The tests are located in the directory "src/testdir".
|
||||
|
||||
There are two types of tests added over time:
|
||||
test20.in oldest, only for tiny and small builds
|
||||
test20.in oldest, only for tiny builds
|
||||
test_something.vim new style tests
|
||||
|
||||
*new-style-testing*
|
||||
|
||||
@@ -120,16 +120,9 @@ Upcoming larger works:
|
||||
- example plugin: https://github.com/uga-rosa/dps-vsctm.vim
|
||||
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
Further Vim9 improvements:
|
||||
- Classes and Interfaces. See |vim9-classes|
|
||||
- Change access: public by default, private by prefixing "_".
|
||||
Check for error: can't have same name twice (ignoring "_" prefix).
|
||||
- Private methods?
|
||||
either: private def Func()
|
||||
or: def _Func()
|
||||
Perhaps use "private" keyword instead of "_" prefix?
|
||||
- "final" object members - can only be set in the constructor.
|
||||
- Support export/import of classes and interfaces.
|
||||
- Cannot use class type of itself in the method (Issue #12369)
|
||||
- Cannot use an object method in a lambda #12417
|
||||
Define all methods before compiling them?
|
||||
@@ -137,13 +130,6 @@ Further Vim9 improvements, possibly after launch:
|
||||
Also #12081 first case.
|
||||
- Using list of functions does not work #12081 (repro in later message).
|
||||
- First argument of call() cannot be "obj.Func". (#11865)
|
||||
- null_object - constant type 17 not supported (Issue #12043)
|
||||
- problem compiling object method call as function call argument (Issue
|
||||
#12081)
|
||||
- Make ":defcompile ClassName" compile all functions and methods in the
|
||||
class.
|
||||
- Forward declaration of a class? E.g. for Clone() function.
|
||||
email lifepillar 2023 Mar 26
|
||||
- Getting member of variable with "any" type should be handled at runtime.
|
||||
Remove temporary solution from #12096 / patch 9.0.1375.
|
||||
- "obj.Method()" does not always work in a compiled function, assumes "obj"
|
||||
@@ -151,18 +137,21 @@ Further Vim9 improvements, possibly after launch:
|
||||
Issue #11822: any.Func() can be a dict or an object call, need to handle
|
||||
this at runtime. Also see #12198 for an example.
|
||||
Possibly issue #11981 can be fixed at the same time (has two examples).
|
||||
- accept line breaks in member initialization. #11957
|
||||
- Support export/import of classes and interfaces.
|
||||
- Make ":defcompile ClassName" compile all functions and methods in the
|
||||
class.
|
||||
- Forward declaration of a class? E.g. for Clone() function.
|
||||
Email lifepillar 2023 Mar 26
|
||||
- object empty(), len() - can class define a method to be used for them?
|
||||
- add to help: when using a default new() method then reordering object
|
||||
members may cause trouble. Can define new() without arguments to avoid.
|
||||
- TODO items: check types for "implements" - members and methods
|
||||
- When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should
|
||||
either work or given an error. possibly give an error now and implement it
|
||||
either work or given an error. Possibly give an error now and implement it
|
||||
later (using a typedef). #12006
|
||||
- how about lock/unlock?
|
||||
- When checking "implements" also check types of members and function args.
|
||||
- For chaining, allow using the class name as type for function return
|
||||
value.
|
||||
- Implement "specifies" interface
|
||||
- Implement generics
|
||||
- Add "assignable" (class or child)?
|
||||
- More efficient way for interface member index than iterating over list?
|
||||
@@ -5956,8 +5945,6 @@ Various improvements:
|
||||
7 Instead of filtering errors with a shell script it should be possible to
|
||||
do this with Vim script. A function that filters the raw text that comes
|
||||
from the 'makeprg'?
|
||||
- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
|
||||
Govindachar)
|
||||
7 Allow a window not to have a statusline. Makes it possible to use a
|
||||
window as a buffer-tab selection.
|
||||
8 Allow non-active windows to have a different statusline. (Yakov Lerner)
|
||||
|
||||
@@ -443,7 +443,8 @@ Any return value of the deferred function is discarded. The function cannot
|
||||
be followed by anything, such as "->func" or ".member". Currently `:defer
|
||||
GetArg()->TheFunc()` does not work, it may work in a later version.
|
||||
|
||||
Errors are reported but do not cause aborting execution of deferred functions.
|
||||
Errors are reported but do not cause aborting execution of deferred functions
|
||||
or altering execution outside of deferred functions.
|
||||
|
||||
No range is accepted. The function can be a partial with extra arguments, but
|
||||
not with a dictionary. *E1300*
|
||||
|
||||
@@ -877,7 +877,8 @@ Other computation: *bitwise-function*
|
||||
srand() initialize seed used by rand()
|
||||
|
||||
Variables: *var-functions*
|
||||
instanceof() check if a variable is an instance of a given class
|
||||
instanceof() check if a variable is an instance of a given
|
||||
class
|
||||
type() type of a variable as a number
|
||||
typename() type of a variable as text
|
||||
islocked() check if a variable is locked
|
||||
|
||||
@@ -103,8 +103,8 @@ NOT LOADING
|
||||
|
||||
It is possible that a user doesn't always want to load this plugin. Or the
|
||||
system administrator has dropped it in the system-wide plugin directory, but a
|
||||
user has his own plugin he wants to use. Then the user must have a chance to
|
||||
disable loading this specific plugin. These lines will make it possible: >
|
||||
user has their own plugin they want to use. Then the user must have a chance
|
||||
to disable loading this specific plugin. These lines will make it possible: >
|
||||
|
||||
7 if exists("g:loaded_typecorrect")
|
||||
8 finish
|
||||
@@ -136,7 +136,7 @@ item can be used: >
|
||||
|
||||
The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
|
||||
|
||||
The user can set the "g:mapleader" variable to the key sequence that he wants
|
||||
The user can set the "g:mapleader" variable to the key sequence that they want
|
||||
plugin mappings to start with. Thus if the user has done: >
|
||||
|
||||
g:mapleader = "_"
|
||||
@@ -147,8 +147,8 @@ will be used, which is a backslash. Then a map for "\a" will be defined.
|
||||
Note that <unique> is used, this will cause an error message if the mapping
|
||||
already happened to exist. |:map-<unique>|
|
||||
|
||||
But what if the user wants to define his own key sequence? We can allow that
|
||||
with this mechanism: >
|
||||
But what if the user wants to define their own key sequence? We can allow
|
||||
that with this mechanism: >
|
||||
|
||||
19 if !hasmapto('<Plug>TypecorrAdd;')
|
||||
20 map <unique> <Leader>a <Plug>TypecorrAdd;
|
||||
@@ -156,7 +156,7 @@ with this mechanism: >
|
||||
|
||||
This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
|
||||
defines the mapping from "<Leader>a" if it doesn't. The user then has a
|
||||
chance of putting this in his vimrc file: >
|
||||
chance of putting this in their vimrc file: >
|
||||
|
||||
map ,c <Plug>TypecorrAdd;
|
||||
|
||||
@@ -262,7 +262,7 @@ Now let's add a user command to add a correction: >
|
||||
The user command is defined only if no command with the same name already
|
||||
exists. Otherwise we would get an error here. Overriding the existing user
|
||||
command with ":command!" is not a good idea, this would probably make the user
|
||||
wonder why the command he defined himself doesn't work. |:command|
|
||||
wonder why the command they defined themselves doesn't work. |:command|
|
||||
If it did happen you can find out who to blame with: >
|
||||
|
||||
verbose command Correct
|
||||
@@ -494,7 +494,7 @@ An example of how to define functionality in a filetype plugin: >
|
||||
|hasmapto()| is used to check if the user has already defined a map to
|
||||
<Plug>JavaImport;. If not, then the filetype plugin defines the default
|
||||
mapping. This starts with |<LocalLeader>|, which allows the user to select
|
||||
the key(s) he wants filetype plugin mappings to start with. The default is a
|
||||
the key(s) they want filetype plugin mappings to start with. The default is a
|
||||
backslash.
|
||||
"<unique>" is used to give an error message if the mapping already exists or
|
||||
overlaps with an existing mapping.
|
||||
|
||||
@@ -173,9 +173,8 @@ enabled from the Makefile.
|
||||
|
||||
--prefix={directory} Top directory where to install Vim.
|
||||
|
||||
--with-features=tiny Compile with many features disabled.
|
||||
--with-features=small Compile with some features disabled.
|
||||
--with-features=big Compile with more features enabled.
|
||||
--with-features=tiny Compile with some features disabled.
|
||||
--with-features=normal Compile with more features enabled.
|
||||
--with-features=huge Compile with most features enabled.
|
||||
See |+feature-list| for which feature
|
||||
is enabled in which case.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.0. Last change: 2022 Dec 13
|
||||
*various.txt* For Vim version 9.0. Last change: 2023 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -320,15 +320,13 @@ g8 Print the hex values of the bytes used in the
|
||||
The first column shows the smallest version in which
|
||||
they are included:
|
||||
T tiny (always)
|
||||
S small
|
||||
N normal
|
||||
B big
|
||||
H huge
|
||||
m manually enabled or depends on other features
|
||||
- never, feature was removed
|
||||
(none) system dependent
|
||||
Thus if a feature is marked with "N", it is included
|
||||
in the normal, big and huge versions of Vim.
|
||||
in the normal and huge versions of Vim.
|
||||
|
||||
*+feature-list*
|
||||
*+acl* |ACL| support included
|
||||
@@ -451,7 +449,8 @@ m *+python/dyn* Python 2 interface |python-dynamic| |/dyn|
|
||||
m *+python3* Python 3 interface |python|
|
||||
m *+python3/dyn* Python 3 interface |python-dynamic| |/dyn|
|
||||
m *+python3/dyn-stable*
|
||||
Python 3 interface |python-dynamic| |python-stable| |/dyn|
|
||||
Python 3 interface |python-dynamic| |python-stable|
|
||||
|/dyn|
|
||||
N *+quickfix* |:make| and |quickfix| commands
|
||||
N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout,
|
||||
'redrawtime' option
|
||||
@@ -503,6 +502,7 @@ T *+windows* more than one window; Always enabled since 8.0.1118.
|
||||
m *+writebackup* |'writebackup'| is default on
|
||||
m *+xim* X input method |xim|
|
||||
*+xfontset* X fontset support |xfontset|
|
||||
N *+xattr* compiled with extended attribute support (Linux only)
|
||||
*+xpm* pixmap support
|
||||
m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support|
|
||||
*+xsmp* XSMP (X session management) support
|
||||
|
||||
@@ -1198,7 +1198,7 @@ Solution: Use "curtab" if "tp" is NULL. (closes #5475)
|
||||
Files: src/evalwindow.c, src/testdir/test_getvar.vim
|
||||
|
||||
Patch 8.2.0118
|
||||
Problem: Crash when cycling to buffers involving popup window .
|
||||
Problem: Crash when cycling to buffers involving popup window.
|
||||
Solution: Do not decrement buffer reference count.
|
||||
Files: src/popupwin.c, src/testdir/test_popupwin.vim,
|
||||
src/testdir/dumps/Test_popupwin_infopopup_7.dump
|
||||
@@ -31679,4 +31679,85 @@ Solution: make menu generation script use Vim9 script, fix errors.
|
||||
Files: runtime/makemenu.vim
|
||||
|
||||
|
||||
==============================================================================
|
||||
VERSION 9.1 *version-9.1* *version9.1* *vim-9.1*
|
||||
|
||||
This section is about improvements made between version 9.0 and 9.1.
|
||||
|
||||
This release has hundreds of bug fixes, there are a few new features and there
|
||||
are many minor improvements.
|
||||
|
||||
Vim9 classes
|
||||
------------
|
||||
|
||||
Virtual text
|
||||
------------
|
||||
|
||||
Smooth Scroll
|
||||
-------------
|
||||
|
||||
Other improvements *new-other-9.1*
|
||||
------------------
|
||||
|
||||
Changed *changed-9.1*
|
||||
-------
|
||||
|
||||
Added *added-9.1*
|
||||
-----
|
||||
|
||||
Various syntax, indent and other plugins were added.
|
||||
|
||||
Functions: ~
|
||||
|
||||
|err_teapot()| produce error 418 or 503
|
||||
|getbufoneline()| get a one line from the specified buffer
|
||||
|getcellwidths()| get character cell width overrides
|
||||
|getmouseshape()| get name of the current mouse shape
|
||||
|getscriptinfo()| get list of sourced vim scripts
|
||||
|indexof()| index in a List or Blob of a true expression
|
||||
|instanceof()| check if a variable is an instance of a given class
|
||||
|keytrans()| translate internal key codes to be usable with |:map|
|
||||
|popup_findecho()| get window ID for popup used for |:echowindow|
|
||||
|setcmdline()| set the current command line
|
||||
|strutf16len()| number of UTF-16 code units in a string
|
||||
|swapfilelist()| list of existing swap files in 'directory'
|
||||
|test_mswin_event()| generate an MS-Windows event for testing
|
||||
|utf16idx()| UTF-16 index of a byte in a string
|
||||
|
||||
|
||||
Autocommands: ~
|
||||
|
||||
|TextChangedT| after a change was made to the text in Terminal mode
|
||||
|WinResized| after a window in the current tab page is resized
|
||||
|
||||
|
||||
Commands: ~
|
||||
|
||||
|:abstract| define an Vim9 abstract class
|
||||
|:class| start of a class specification
|
||||
|:defer| call function when current function is done
|
||||
|:echowindow| same as :echomsg, but use a popup window
|
||||
|:endinterface| end of an interface specification
|
||||
|:endclass| end of a class specification
|
||||
|:horizontal| following window command work horizontally
|
||||
|:interface| start of an interface specification
|
||||
|:public| prefix for a class or object member
|
||||
|:static| prefix for a class member or function
|
||||
|:this| prefix for an object member
|
||||
|
||||
|
||||
Options: ~
|
||||
|
||||
'jumpoptions' specifies how jumping is done
|
||||
'keyprotocol' what keyboard protocol to use for what terminal
|
||||
'lispoptions' changes how Lisp indenting is done
|
||||
'showcmdloc' where to show (partial) command
|
||||
'smoothscroll' scroll by screen lines when 'wrap' is set
|
||||
'splitkeep' determines scroll behavior for split windows
|
||||
|
||||
|
||||
Patches *patches-9.1*
|
||||
-------
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -6,11 +6,21 @@
|
||||
# Sun Feb 24 14:49:17 CET 2002
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use vars qw/%url $date/;
|
||||
|
||||
%url = ();
|
||||
$date = `date`;
|
||||
chop $date;
|
||||
# 30.11.23, Restorer:
|
||||
# This command does not work in OS Windows.
|
||||
# The "date" command in Windows is different from its counterpart in UNIX-like systems.
|
||||
# The closest analog is the "date /t" command, but how it would work in UNIX,
|
||||
# I don't know. I've corrected it as best I can. I don't know Perl.
|
||||
#$date = `date`;
|
||||
#chop $date;
|
||||
my ($year) = 1900 + (localtime())[5];
|
||||
my ($month) = 1 + (localtime())[4];
|
||||
my ($day) = (localtime())[3];
|
||||
#$date = localtime(); # outputs like this Fri Nov 3 00:56:59 2023
|
||||
|
||||
sub maplink
|
||||
{
|
||||
@@ -164,7 +174,7 @@ EOF
|
||||
}
|
||||
print OUT<<EOF;
|
||||
</pre>
|
||||
<p><i>Generated by vim2html on $date</i></p>
|
||||
<p><i>Generated by vim2html on $day.$month.$year</i></p>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.0. Last change: 2023 Jun 10
|
||||
*vim9.txt* For Vim version 9.0. Last change: 2023 Oct 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1025,8 +1025,9 @@ always converted to string: >
|
||||
Simple types are Number, Float, Special and Bool. For other types |string()|
|
||||
should be used.
|
||||
*false* *true* *null* *null_blob* *null_channel*
|
||||
*null_dict* *null_function* *null_job* *null_list*
|
||||
*null_partial* *null_string* *E1034*
|
||||
*null_class* *null_dict* *null_function* *null_job*
|
||||
*null_list* *null_object* *null_partial* *null_string*
|
||||
*E1034*
|
||||
In Vim9 script one can use the following predefined values: >
|
||||
true
|
||||
false
|
||||
@@ -1468,7 +1469,7 @@ 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.
|
||||
*E1005* *E1007*
|
||||
*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
|
||||
checking for arguments or return value
|
||||
@@ -1487,13 +1488,14 @@ func({type}) function with argument type, does not return
|
||||
func({type}): {type} function with argument type and return type
|
||||
func(?{type}) function with type of optional argument, does
|
||||
not return a value
|
||||
func(...{type}) function with type of variable number of
|
||||
arguments, does not return a value
|
||||
func({type}, ?{type}, ...{type}): {type}
|
||||
func(...list<{type}>) function with type of list for variable number
|
||||
of arguments, does not return a value
|
||||
func({type}, ?{type}, ...list<{type}>): {type}
|
||||
function with:
|
||||
- type of mandatory argument
|
||||
- type of optional argument
|
||||
- type of variable number of arguments
|
||||
- type of list for variable number of
|
||||
arguments
|
||||
- return type
|
||||
|
||||
If the return type is "void" the function does not return a value.
|
||||
@@ -1557,7 +1559,7 @@ string to a number.
|
||||
|
||||
If a type is given where it is not expected you can get *E1272* .
|
||||
|
||||
If a type is incomplete you get *E1363*, e.g. when you have an object for
|
||||
If a type is incomplete you get *E1363* , e.g. when you have an object for
|
||||
which the class is not known (usually that is a null object).
|
||||
|
||||
Type inference ~
|
||||
@@ -1669,6 +1671,26 @@ Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
|
||||
|flattennew()| instead. Since |flatten()| is intended to always change the
|
||||
type, it can not be used in Vim9 script.
|
||||
|
||||
Assigning to a funcref with specified arguments (see |vim9-func-declaration|)
|
||||
does strict type checking of the arguments. For variable number of arguments
|
||||
the type must match: >
|
||||
var FuncRef: func(string, number, bool): number
|
||||
FuncRef = (v1: string, v2: number, v3: bool) => 777 # OK
|
||||
FuncRef = (v1: string, v2: number, v3: number) => 777 # Error!
|
||||
# variable number of arguments must have same type
|
||||
var FuncVA: func(...list<string>): number
|
||||
FuncVA = (...v: list<number>): number => v # Error!
|
||||
FuncVA = (...v: list<any>): number => v # OK, `any` runtime check
|
||||
FuncVA = (v1: string, v: string2): number => 333 # Error!
|
||||
FuncVA = (v: list<string>): number => 3 # Error!
|
||||
|
||||
If the destinataion funcref has no specified arguments, then there is no
|
||||
argument type checking: >
|
||||
var FuncUnknownArgs: func: number
|
||||
FuncUnknownArgs = (v): number => v # OK
|
||||
FuncUnknownArgs = (v1: string, v2: string): number => 3 # OK
|
||||
FuncUnknownArgs = (...v1: list<string>): number => 333 # OK
|
||||
<
|
||||
*E1211* *E1217* *E1218* *E1219* *E1220* *E1221*
|
||||
*E1222* *E1223* *E1224* *E1225* *E1226* *E1227*
|
||||
*E1228* *E1238* *E1250* *E1251* *E1252* *E1256*
|
||||
@@ -1756,7 +1778,7 @@ Exporting an item can be written as: >
|
||||
export interface MyClass ...
|
||||
< *E1043* *E1044*
|
||||
As this suggests, only constants, variables, `:def` functions and classes can
|
||||
be exported. {not implemented yet: class, interface}
|
||||
be exported.
|
||||
|
||||
*E1042*
|
||||
`:export` can only be used in Vim9 script, at the script level.
|
||||
@@ -1789,7 +1811,7 @@ filename. For example: >
|
||||
Then you can use "that.item", etc. You are free to choose the name "that".
|
||||
Use something that will be recognized as referring to the imported script.
|
||||
Avoid command names, command modifiers and builtin function names, because the
|
||||
name will shadow them. Better not start the name starts with a capital
|
||||
name will shadow them. It's better not to start the name with a capital
|
||||
letter, since it can then also shadow global user commands and functions.
|
||||
Also, you cannot use the name for something else in the script, such as a
|
||||
function or variable name.
|
||||
@@ -1862,9 +1884,9 @@ However, the namespace cannot be resolved on its own: >
|
||||
<
|
||||
This also affects the use of |<SID>| in the legacy mapping context. Since
|
||||
|<SID>| is only a valid prefix for a function and NOT for a namespace, you
|
||||
cannot use it
|
||||
to scope a function in a script local namespace. Instead of prefixing the
|
||||
function with |<SID>| you should use|<ScriptCmd>|. For example: >
|
||||
cannot use it to scope a function in a script local namespace. Instead of
|
||||
prefixing the function with |<SID>| you should use|<ScriptCmd>|. For example:
|
||||
>
|
||||
noremap ,a <ScriptCmd>:call s:that.OtherFunc()<CR>
|
||||
<
|
||||
*:import-cycle*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.0. Last change: 2023 Mar 22
|
||||
*vim9class.txt* For Vim version 9.0. Last change: 2023 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -11,7 +11,7 @@ Vim9 classes, objects, interfaces, types and enums.
|
||||
|
||||
1. Overview |Vim9-class-overview|
|
||||
2. A simple class |Vim9-simple-class|
|
||||
3. Class members and functions |Vim9-class-member|
|
||||
3. Class variables and methods |Vim9-class-member|
|
||||
4. Using an abstract class |Vim9-abstract-class|
|
||||
5. Using an interface |Vim9-using-interface|
|
||||
6. More class details |Vim9-class|
|
||||
@@ -28,7 +28,8 @@ Vim9 classes, objects, interfaces, types and enums.
|
||||
The fancy term is "object-oriented programming". You can find lots of study
|
||||
material on this subject. Here we document what |Vim9| script provides,
|
||||
assuming you know the basics already. Added are helpful hints about how to
|
||||
use this functionality effectively.
|
||||
use this functionality effectively. Vim9 classes and objects cannot be used
|
||||
in legacy Vim scripts and legacy functions.
|
||||
|
||||
The basic item is an object:
|
||||
- An object stores state. It contains one or more variables that can each
|
||||
@@ -37,7 +38,7 @@ The basic item is an object:
|
||||
functions are invoked "on the object", which is what sets it apart from the
|
||||
traditional separation of data and code that manipulates the data.
|
||||
- An object has a well defined interface, with typed member variables and
|
||||
member functions.
|
||||
methods.
|
||||
- Objects are created from a class and all objects have the same interface.
|
||||
This does not change at runtime, it is not dynamic.
|
||||
|
||||
@@ -103,7 +104,7 @@ You can create an object from this class with the new() method: >
|
||||
|
||||
var pos = TextPosition.new(1, 1)
|
||||
|
||||
The object members "lnum" and "col" can be accessed directly: >
|
||||
The object variables "lnum" and "col" can be accessed directly: >
|
||||
|
||||
echo $'The text position is ({pos.lnum}, {pos.col})'
|
||||
< *E1317* *E1327*
|
||||
@@ -111,50 +112,54 @@ If you have been using other object-oriented languages you will notice that
|
||||
in Vim the object members are consistently referred to with the "this."
|
||||
prefix. This is different from languages like Java and TypeScript. The
|
||||
naming convention makes the object members easy to spot. Also, when a
|
||||
variable does not have the "this." prefix you know it is not an object member.
|
||||
variable does not have the "this." prefix you know it is not an object
|
||||
variable.
|
||||
|
||||
|
||||
Member write access ~
|
||||
|
||||
Now try to change an object member directly: >
|
||||
Object variable write access ~
|
||||
*read-only-variable*
|
||||
Now try to change an object variable directly: >
|
||||
|
||||
pos.lnum = 9
|
||||
< *E1335*
|
||||
This will give you an error! That is because by default object members can be
|
||||
read but not set. That's why the TextPosition class provides a method for it: >
|
||||
This will give you an error! That is because by default object variables can
|
||||
be read but not set. That's why the TextPosition class provides a method for
|
||||
it: >
|
||||
|
||||
pos.SetLnum(9)
|
||||
|
||||
Allowing to read but not set an object member is the most common and safest
|
||||
Allowing to read but not set an object variable is the most common and safest
|
||||
way. Most often there is no problem using a value, while setting a value may
|
||||
have side effects that need to be taken care of. In this case, the SetLnum()
|
||||
method could check if the line number is valid and either give an error or use
|
||||
the closest valid value.
|
||||
*:public* *E1331*
|
||||
If you don't care about side effects and want to allow the object member to be
|
||||
changed at any time, you can make it public: >
|
||||
*:public* *public-variable* *E1331*
|
||||
If you don't care about side effects and want to allow the object variable to
|
||||
be changed at any time, you can make it public: >
|
||||
|
||||
public this.lnum: number
|
||||
public this.col: number
|
||||
|
||||
Now you don't need the SetLnum(), SetCol() and SetPosition() methods, setting
|
||||
"pos.lnum" directly above will no longer give an error.
|
||||
*E1334*
|
||||
If you try to set an object member that doesn't exist you get an error: >
|
||||
*E1326*
|
||||
If you try to set an object variable that doesn't exist you get an error: >
|
||||
pos.other = 9
|
||||
< E1334: Object member not found: other ~
|
||||
< E1326: Member not found on object "TextPosition": other ~
|
||||
|
||||
*E1376*
|
||||
A object variable cannot be accessed using the class name.
|
||||
|
||||
Private members ~
|
||||
*E1332* *E1333*
|
||||
On the other hand, if you do not want the object members to be read directly,
|
||||
you can make them private. This is done by prefixing an underscore to the
|
||||
name: >
|
||||
Protected variables ~
|
||||
*protected-variable* *E1332* *E1333*
|
||||
On the other hand, if you do not want the object variables to be read directly
|
||||
from outside the class or its sub-classes, you can make them protected. This
|
||||
is done by prefixing an underscore to the name: >
|
||||
|
||||
this._lnum: number
|
||||
this._col number
|
||||
|
||||
Now you need to provide methods to get the value of the private members.
|
||||
Now you need to provide methods to get the value of the protected variables.
|
||||
These are commonly called getters. We recommend using a name that starts with
|
||||
"Get": >
|
||||
|
||||
@@ -166,7 +171,7 @@ These are commonly called getters. We recommend using a name that starts with
|
||||
return this._col
|
||||
enddef
|
||||
|
||||
This example isn't very useful, the members might as well have been public.
|
||||
This example isn't very useful, the variables might as well have been public.
|
||||
It does become useful if you check the value. For example, restrict the line
|
||||
number to the total number of lines: >
|
||||
|
||||
@@ -176,12 +181,12 @@ number to the total number of lines: >
|
||||
endif
|
||||
return this._lnum
|
||||
enddef
|
||||
|
||||
|
||||
Private methods ~
|
||||
<
|
||||
Protected methods ~
|
||||
*protected-method* *E1366*
|
||||
If you want object methods to be accessible only from other methods of the
|
||||
same class and not used from outside the class, then you can make them
|
||||
private. This is done by prefixing the method name with an underscore: >
|
||||
protected. This is done by prefixing the method name with an underscore: >
|
||||
|
||||
class SomeClass
|
||||
def _Foo(): number
|
||||
@@ -192,16 +197,16 @@ private. This is done by prefixing the method name with an underscore: >
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
Accessing a private method outside the class will result in an error (using
|
||||
Accessing a protected method outside the class will result in an error (using
|
||||
the above class): >
|
||||
|
||||
var a = SomeClass.new()
|
||||
a._Foo()
|
||||
<
|
||||
Simplifying the new() method ~
|
||||
|
||||
Many constructors take values for the object members. Thus you very often see
|
||||
this pattern: >
|
||||
*new()* *constructor*
|
||||
Many constructors take values for the object variables. Thus you very often
|
||||
see this pattern: >
|
||||
|
||||
class SomeClass
|
||||
this.lnum: number
|
||||
@@ -212,20 +217,22 @@ this pattern: >
|
||||
this.col = col
|
||||
enddef
|
||||
endclass
|
||||
|
||||
Not only is this text you need to write, it also has the type of each member
|
||||
twice. Since this is so common a shorter way to write new() is provided: >
|
||||
<
|
||||
*E1390*
|
||||
Not only is this text you need to write, it also has the type of each
|
||||
variables twice. Since this is so common a shorter way to write new() is
|
||||
provided: >
|
||||
|
||||
def new(this.lnum, this.col)
|
||||
enddef
|
||||
|
||||
The semantics are easy to understand: Providing the object member name,
|
||||
The semantics are easy to understand: Providing the object variable name,
|
||||
including "this.", as the argument to new() means the value provided in the
|
||||
new() call is assigned to that object member. This mechanism comes from the
|
||||
new() call is assigned to that object variable. This mechanism comes from the
|
||||
Dart language.
|
||||
|
||||
Putting together this way of using new() and making the members public results
|
||||
in a much shorter class definition than what we started with: >
|
||||
Putting together this way of using new() and making the variables public
|
||||
results in a much shorter class definition than what we started with: >
|
||||
|
||||
class TextPosition
|
||||
public this.lnum: number
|
||||
@@ -242,26 +249,32 @@ in a much shorter class definition than what we started with: >
|
||||
|
||||
The sequence of constructing a new object is:
|
||||
1. Memory is allocated and cleared. All values are zero/false/empty.
|
||||
2. For each declared member that has an initializer, the expression is
|
||||
evaluated and assigned to the member. This happens in the sequence the
|
||||
members are declared in the class.
|
||||
2. For each declared object variable that has an initializer, the expression
|
||||
is evaluated and assigned to the variable. This happens in the sequence
|
||||
the variables are declared in the class.
|
||||
3. Arguments in the new() method in the "this.name" form are assigned.
|
||||
4. The body of the new() method is executed.
|
||||
|
||||
If the class extends a parent class, the same thing happens. In the second
|
||||
step the members of the parent class are done first. There is no need to call
|
||||
"super()" or "new()" on the parent.
|
||||
step the object variables of the parent class are initialized first. There is
|
||||
no need to call "super()" or "new()" on the parent.
|
||||
|
||||
*E1365*
|
||||
When defining the new() method the return type should not be specified. It
|
||||
always returns an object of the class.
|
||||
|
||||
*E1386*
|
||||
When invoking an object method, the method name should be preceded by the
|
||||
object variable name. A object method cannot be invoked using the class
|
||||
name.
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. class members and functions *Vim9-class-member*
|
||||
3. Class Variables and Methods *Vim9-class-member*
|
||||
|
||||
*:static* *E1337* *E1338*
|
||||
*:static* *E1337* *E1338* *E1368*
|
||||
Class members are declared with "static". They are used by the name without a
|
||||
prefix: >
|
||||
prefix in the class where they are defined: >
|
||||
|
||||
class OtherThing
|
||||
this.size: number
|
||||
@@ -272,12 +285,16 @@ prefix: >
|
||||
enddef
|
||||
endclass
|
||||
< *E1340* *E1341*
|
||||
Since the name is used as-is, shadowing the name by a function argument name
|
||||
Since the name is used as-is, shadowing the name by a method argument name
|
||||
or local variable name is not allowed.
|
||||
|
||||
Just like object members the access can be made private by using an underscore
|
||||
as the first character in the name, and it can be made public by prefixing
|
||||
"public": >
|
||||
*E1374* *E1375* *E1384* *E1385*
|
||||
To access a class member outside of the class where it is defined, the class
|
||||
name prefix must be used. A class member cannot be accessed using an object.
|
||||
|
||||
Just like object members the access can be made protected by using an
|
||||
underscore as the first character in the name, and it can be made public by
|
||||
prefixing "public": >
|
||||
|
||||
class OtherThing
|
||||
static total: number # anybody can read, only class can write
|
||||
@@ -285,10 +302,11 @@ as the first character in the name, and it can be made public by prefixing
|
||||
public static result: number # anybody can read and write
|
||||
endclass
|
||||
<
|
||||
*class-function*
|
||||
Class functions are also declared with "static". They have no access to
|
||||
object members, they cannot use the "this" keyword. >
|
||||
|
||||
*class-method*
|
||||
Class methods are also declared with "static". They can use the class
|
||||
variables but they have no access to the object variables, they cannot use the
|
||||
"this" keyword:
|
||||
>
|
||||
class OtherThing
|
||||
this.size: number
|
||||
static totalSize: number
|
||||
@@ -301,18 +319,19 @@ object members, they cannot use the "this" keyword. >
|
||||
enddef
|
||||
endclass
|
||||
|
||||
Inside the class the function can be called by name directly, outside the
|
||||
class the class name must be prefixed: `OtherThing.ClearTotalSize()`.
|
||||
Inside the class the class method can be called by name directly, outside the
|
||||
class the class name must be prefixed: `OtherThing.ClearTotalSize()`. To use
|
||||
a super class method in a child class, the class name must be prefixed.
|
||||
|
||||
Just like object methods the access can be made private by using an underscore
|
||||
as the first character in the method name: >
|
||||
Just like object methods the access can be made protected by using an
|
||||
underscore as the first character in the method name: >
|
||||
|
||||
class OtherThing
|
||||
static def _Foo()
|
||||
echo "Foo"
|
||||
enddef
|
||||
def Bar()
|
||||
OtherThing._Foo()
|
||||
_Foo()
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
@@ -320,6 +339,31 @@ as the first character in the method name: >
|
||||
Note that constructors cannot be declared as "static", because they always
|
||||
are.
|
||||
|
||||
To access the class methods and class variables of a super class in an
|
||||
extended class, the class name prefix should be used just as from anywhere
|
||||
outside of the defining class: >
|
||||
|
||||
vim9script
|
||||
class Vehicle
|
||||
static nextID: number = 1000
|
||||
static def GetID(): number
|
||||
nextID += 1
|
||||
return nextID
|
||||
enddef
|
||||
endclass
|
||||
class Car extends Vehicle
|
||||
this.myID: number
|
||||
def new()
|
||||
this.myID = Vehicle.GetID()
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
Class variables and methods are not inherited by a child class. A child class
|
||||
can declare a static variable or a method with the same name as the one in the
|
||||
super class. Depending on the class where the member is used the
|
||||
corresponding class member will be used. The type of the class member in a
|
||||
child class can be different from that in the super class.
|
||||
|
||||
==============================================================================
|
||||
|
||||
4. Using an abstract class *Vim9-abstract-class*
|
||||
@@ -358,16 +402,23 @@ class, for which objects can be created. Example: >
|
||||
An abstract class is defined the same way as a normal class, except that it
|
||||
does not have any new() method. *E1359*
|
||||
|
||||
*abstract-method*
|
||||
*abstract-method* *E1371* *E1372*
|
||||
An abstract method can be defined in an abstract class by using the "abstract"
|
||||
prefix when defining the function: >
|
||||
prefix when defining the method: >
|
||||
|
||||
abstract class Shape
|
||||
abstract def Draw()
|
||||
abstract static def SetColor()
|
||||
endclass
|
||||
<
|
||||
A static method in an abstract class cannot be an abstract method.
|
||||
|
||||
*E1373*
|
||||
A class extending the abstract class must implement all the abstract methods.
|
||||
Class methods in an abstract class can also be abstract methods.
|
||||
The signature (arguments, argument types and return type) must be exactly the
|
||||
same. If the return type of a method is a class, then that class or one of
|
||||
its subclasses can be used in the extended method. Class methods in an
|
||||
abstract class can also be abstract methods.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -409,9 +460,10 @@ a number. This example extends the one above: >
|
||||
return this.base * this.height / 2
|
||||
enddef
|
||||
endclass
|
||||
|
||||
<
|
||||
*E1348* *E1349* *E1367* *E1382* *E1383*
|
||||
If a class declares to implement an interface, all the items specified in the
|
||||
interface must appear in the class, with the same types. *E1348* *E1349*
|
||||
interface must appear in the class, with the same types.
|
||||
|
||||
The interface name can be used as a type: >
|
||||
|
||||
@@ -422,7 +474,14 @@ The interface name can be used as a type: >
|
||||
for shape in shapes
|
||||
echo $'the surface is {shape.Surface()}'
|
||||
endfor
|
||||
<
|
||||
*E1378* *E1379* *E1380* *E1387*
|
||||
An interface can contain only object methods and read-only object variables.
|
||||
An interface cannot contain read-write or protected object variables,
|
||||
protected object methods, class variables and class methods.
|
||||
|
||||
An interface can extend another interface using "extends". The sub-interface
|
||||
inherits all the instance variables and methods from the super interface.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -464,16 +523,23 @@ once. They can appear in any order, although this order is recommended: >
|
||||
extends ClassName
|
||||
implements InterfaceName, OtherInterface
|
||||
specifies SomeInterface
|
||||
< *E1355*
|
||||
Each member and function name can be used only once. It is not possible to
|
||||
define a function with the same name and different type of arguments.
|
||||
< *E1355* *E1369*
|
||||
Each variable and method name can be used only once. It is not possible to
|
||||
define a method with the same name and different type of arguments. It is not
|
||||
possible to use a public and protected member variable with the same name. A
|
||||
object variable name used in a super class cannot be reused in a child class.
|
||||
|
||||
|
||||
Member Initialization ~
|
||||
If the type of a member is not explicitly specified in a class, then it is set
|
||||
to "any" during class definition. When an object is instantiated from the
|
||||
class, then the type of the member is set.
|
||||
Object Variable Initialization ~
|
||||
|
||||
If the type of a variable is not explicitly specified in a class, then it is
|
||||
set to "any" during class definition. When an object is instantiated from the
|
||||
class, then the type of the variable is set.
|
||||
|
||||
The following reserved keyword names cannot be used as an object or class
|
||||
variable name: "super", "this", "true", "false", "null", "null_blob",
|
||||
"null_dict", "null_function", "null_list", "null_partial", "null_string",
|
||||
"null_channel" and "null_job".
|
||||
|
||||
Extending a class ~
|
||||
*extends*
|
||||
@@ -483,33 +549,39 @@ The basic idea is to build on top of an existing class, add properties to it.
|
||||
The extended class is called the "base class" or "super class". The new class
|
||||
is called the "child class".
|
||||
|
||||
Object members from the base class are all taken over by the child class. It
|
||||
Object variables from the base class are all taken over by the child class. It
|
||||
is not possible to override them (unlike some other languages).
|
||||
|
||||
*E1356* *E1357* *E1358*
|
||||
Object methods of the base class can be overruled. The signature (arguments,
|
||||
argument types and return type) must be exactly the same. The method of the
|
||||
base class can be called by prefixing "super.".
|
||||
argument types and return type) must be exactly the same. If the return type
|
||||
of a method is a class, then that class or one of its subclasses can be used
|
||||
in the extended method. The method of the base class can be called by
|
||||
prefixing "super.".
|
||||
|
||||
*E1377*
|
||||
The access level of a method (public or protected) in a child class should be
|
||||
the same as the super class.
|
||||
|
||||
Other object methods of the base class are taken over by the child class.
|
||||
|
||||
Class functions, including functions starting with "new", can be overruled,
|
||||
like with object methods. The function on the base class can be called by
|
||||
prefixing the name of the class (for class functions) or "super.".
|
||||
Class methods, including methods starting with "new", can be overruled, like
|
||||
with object methods. The method on the base class can be called by prefixing
|
||||
the name of the class (for class methods) or "super.".
|
||||
|
||||
Unlike other languages, the constructor of the base class does not need to be
|
||||
invoked. In fact, it cannot be invoked. If some initialization from the base
|
||||
class also needs to be done in a child class, put it in an object method and
|
||||
call that method from every constructor().
|
||||
|
||||
If the base class did not specify a new() function then one was automatically
|
||||
created. This function will not be taken over by the child class. The child
|
||||
class can define its own new() function, or, if there isn't one, a new()
|
||||
function will be added automatically.
|
||||
If the base class did not specify a new() method then one was automatically
|
||||
created. This method will not be taken over by the child class. The child
|
||||
class can define its own new() method, or, if there isn't one, a new() method
|
||||
will be added automatically.
|
||||
|
||||
|
||||
A class implementing an interface ~
|
||||
*implements* *E1346* *E1347*
|
||||
*implements* *E1346* *E1347* *E1389*
|
||||
A class can implement one or more interfaces. The "implements" keyword can
|
||||
only appear once *E1350* . Multiple interfaces can be specified, separated by
|
||||
commas. Each interface name can appear only once. *E1351*
|
||||
@@ -517,28 +589,37 @@ commas. Each interface name can appear only once. *E1351*
|
||||
|
||||
A class defining an interface ~
|
||||
*specifies*
|
||||
A class can declare its interface, the object members and methods, with a
|
||||
A class can declare its interface, the object variables and methods, with a
|
||||
named interface. This avoids the need for separately specifying the
|
||||
interface, which is often done in many languages, especially Java.
|
||||
|
||||
|
||||
Items in a class ~
|
||||
*E1318* *E1325* *E1326*
|
||||
*E1318* *E1325* *E1388*
|
||||
Inside a class, in between `:class` and `:endclass`, these items can appear:
|
||||
- An object member declaration: >
|
||||
this._memberName: memberType
|
||||
this.memberName: memberType
|
||||
public this.memberName: memberType
|
||||
- An object variable declaration: >
|
||||
this._protectedVariableName: memberType
|
||||
this.readonlyVariableName: memberType
|
||||
public this.readwriteVariableName: memberType
|
||||
- A class variable declaration: >
|
||||
static _protectedClassVariableName: memberType
|
||||
static readonlyClassVariableName: memberType
|
||||
static public readwriteClassVariableName: memberType
|
||||
- A constructor method: >
|
||||
def new(arguments)
|
||||
def newName(arguments)
|
||||
- A class method: >
|
||||
static def SomeMethod(arguments)
|
||||
static def _ProtectedMethod(arguments)
|
||||
- An object method: >
|
||||
def SomeMethod(arguments)
|
||||
< *E1329*
|
||||
For the object member the type must be specified. The best way is to do this
|
||||
explicitly with ": {type}". For simple types you can also use an initializer,
|
||||
such as "= 123", and Vim will see that the type is a number. Avoid doing this
|
||||
for more complex types and when the type will be incomplete. For example: >
|
||||
def _ProtectedMethod(arguments)
|
||||
|
||||
For the object variable the type must be specified. The best way is to do
|
||||
this explicitly with ": {type}". For simple types you can also use an
|
||||
initializer, such as "= 123", and Vim will see that the type is a number.
|
||||
Avoid doing this for more complex types and when the type will be incomplete.
|
||||
For example: >
|
||||
this.nameList = []
|
||||
This specifies a list, but the item type is unknown. Better use: >
|
||||
this.nameList: list<string>
|
||||
@@ -558,8 +639,8 @@ prefixed with `:export`: >
|
||||
export interface InterfaceName
|
||||
endinterface
|
||||
< *E1344*
|
||||
An interface can declare object members, just like in a class but without any
|
||||
initializer.
|
||||
An interface can declare object variables, just like in a class but without
|
||||
any initializer.
|
||||
*E1345*
|
||||
An interface can declare methods with `:def`, including the arguments and
|
||||
return type, but without the body and without `:enddef`. Example: >
|
||||
@@ -573,6 +654,8 @@ An interface name must start with an uppercase letter. *E1343*
|
||||
The "Has" prefix can be used to make it easier to guess this is an interface
|
||||
name, with a hint about what it provides.
|
||||
An interface can only be defined in a |Vim9| script file. *E1342*
|
||||
An interface cannot "implement" another interface but it can "extend" another
|
||||
interface. *E1381*
|
||||
|
||||
|
||||
null object ~
|
||||
@@ -580,15 +663,15 @@ null object ~
|
||||
When a variable is declared to have the type of an object, but it is not
|
||||
initialized, the value is null. When trying to use this null object Vim often
|
||||
does not know what class was supposed to be used. Vim then cannot check if
|
||||
a member name is correct and you will get an "Using a null object" error,
|
||||
even when the member name is invalid. *E1360* *E1362* *E1363*
|
||||
a variable name is correct and you will get an "Using a null object" error,
|
||||
even when the variable name is invalid. *E1360* *E1362*
|
||||
|
||||
|
||||
Default constructor ~
|
||||
|
||||
*default-constructor*
|
||||
In case you define a class without a new() method, one will be automatically
|
||||
defined. This default constructor will have arguments for all the object
|
||||
members, in the order they were specified. Thus if your class looks like: >
|
||||
variables, in the order they were specified. Thus if your class looks like: >
|
||||
|
||||
class AutoNew
|
||||
this.name: string
|
||||
@@ -596,14 +679,14 @@ members, in the order they were specified. Thus if your class looks like: >
|
||||
this.gender: Gender
|
||||
endclass
|
||||
|
||||
Then The default constructor will be: >
|
||||
Then the default constructor will be: >
|
||||
|
||||
def new(this.name = v:none, this.age = v:none, this.gender = v:none)
|
||||
enddef
|
||||
|
||||
The "= v:none" default values make the arguments optional. Thus you can also
|
||||
call `new()` without any arguments. No assignment will happen and the default
|
||||
value for the object members will be used. This is a more useful example,
|
||||
value for the object variables will be used. This is a more useful example,
|
||||
with default values: >
|
||||
|
||||
class TextPosition
|
||||
@@ -619,13 +702,13 @@ the name, you can define the constructor like this: >
|
||||
enddef
|
||||
< *E1328*
|
||||
Note that you cannot use another default value than "v:none" here. If you
|
||||
want to initialize the object members, do it where they are declared. This
|
||||
want to initialize the object variables, do it where they are declared. This
|
||||
way you only need to look in one place for the default values.
|
||||
|
||||
All object members will be used in the default constructor, also private
|
||||
access ones.
|
||||
All object variables will be used in the default constructor, including
|
||||
protected access ones.
|
||||
|
||||
If the class extends another one, the object members of that class will come
|
||||
If the class extends another one, the object variables of that class will come
|
||||
first.
|
||||
|
||||
|
||||
@@ -663,17 +746,22 @@ constructor methods.
|
||||
|
||||
7. Type definition *Vim9-type* *:type*
|
||||
|
||||
A type definition is giving a name to a type specification. For Example: >
|
||||
A type definition is giving a name to a type specification. This also known
|
||||
type alias. For Example: >
|
||||
|
||||
:type ListOfStrings list<string>
|
||||
|
||||
TODO: more explanation
|
||||
:type ListOfStrings = list<string>
|
||||
|
||||
The type alias can be used wherever a built-in type can be used. The type
|
||||
alias name must start with an upper case character. A type alias can be
|
||||
created only at the script level and not inside a function. A type alias can
|
||||
be exported and used across scripts.
|
||||
|
||||
==============================================================================
|
||||
|
||||
8. Enum *Vim9-enum* *:enum* *:endenum*
|
||||
|
||||
{not implemented yet}
|
||||
|
||||
An enum is a type that can have one of a list of values. Example: >
|
||||
|
||||
:enum Color
|
||||
@@ -684,8 +772,6 @@ An enum is a type that can have one of a list of values. Example: >
|
||||
Black
|
||||
:endenum
|
||||
|
||||
TODO: more explanation
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -739,7 +825,7 @@ the method being called is obvious.
|
||||
No overloading of the constructor ~
|
||||
|
||||
In Vim script, both legacy and |Vim9| script, there is no overloading of
|
||||
functions. That means it is not possible to use the same function name with
|
||||
methods. That means it is not possible to use the same method name with
|
||||
different types of arguments. Therefore there also is only one new()
|
||||
constructor.
|
||||
|
||||
@@ -782,39 +868,40 @@ class implements an interface just because the methods happen to match is
|
||||
brittle and leads to obscure problems, let's not do that.
|
||||
|
||||
|
||||
Using "this.member" everywhere ~
|
||||
Using "this.variable" everywhere ~
|
||||
|
||||
The object members in various programming languages can often be accessed in
|
||||
The object variables in various programming languages can often be accessed in
|
||||
different ways, depending on the location. Sometimes "this." has to be
|
||||
prepended to avoid ambiguity. They are usually declared without "this.".
|
||||
That is quite inconsistent and sometimes confusing.
|
||||
|
||||
A very common issue is that in the constructor the arguments use the same name
|
||||
as the object member. Then for these members "this." needs to be prefixed in
|
||||
the body, while for other members this is not needed and often omitted. This
|
||||
leads to a mix of members with and without "this.", which is inconsistent.
|
||||
as the object variable. Then for these variables "this." needs to be prefixed
|
||||
in the body, while for other variables this is not needed and often omitted.
|
||||
This leads to a mix of variables with and without "this.", which is
|
||||
inconsistent.
|
||||
|
||||
For |Vim9| classes the "this." prefix is always used. Also for declaring the
|
||||
members. Simple and consistent. When looking at the code inside a class it's
|
||||
also directly clear which variable references are object members and which
|
||||
aren't.
|
||||
variables. Simple and consistent. When looking at the code inside a class
|
||||
it's also directly clear which variable references are object variables and
|
||||
which aren't.
|
||||
|
||||
|
||||
Using class members ~
|
||||
Using class variables ~
|
||||
|
||||
Using "static member" to declare a class member is very common, nothing new
|
||||
here. In |Vim9| script these can be accessed directly by their name. Very
|
||||
much like how a script-local variable can be used in a function. Since object
|
||||
members are always accessed with "this." prepended, it's also quickly clear
|
||||
what kind of member it is.
|
||||
Using "static variable" to declare a class variable is very common, nothing
|
||||
new here. In |Vim9| script these can be accessed directly by their name.
|
||||
Very much like how a script-local variable can be used in a method. Since
|
||||
object variables are always accessed with "this." prepended, it's also quickly
|
||||
clear what kind of variable it is.
|
||||
|
||||
TypeScript prepends the class name before the class member, also inside the
|
||||
class. This has two problems: The class name can be rather long, taking up
|
||||
quite a bit of space, and when the class is renamed all these places need to
|
||||
be changed too.
|
||||
TypeScript prepends the class name before the class variable name, also inside
|
||||
the class. This has two problems: The class name can be rather long, taking
|
||||
up quite a bit of space, and when the class is renamed all these places need
|
||||
to be changed too.
|
||||
|
||||
|
||||
Declaring object and class members ~
|
||||
Declaring object and class variables ~
|
||||
|
||||
The main choice is whether to use "var" as with variable declarations.
|
||||
TypeScript does not use it: >
|
||||
@@ -823,7 +910,7 @@ TypeScript does not use it: >
|
||||
y = 0;
|
||||
}
|
||||
|
||||
Following that Vim object members could be declared like this: >
|
||||
Following that Vim object variables could be declared like this: >
|
||||
class Point
|
||||
this.x: number
|
||||
this.y = 0
|
||||
@@ -836,7 +923,7 @@ declaration. Adding "var" changes that: >
|
||||
var this.y = 0
|
||||
endclass
|
||||
|
||||
We also need to be able to declare class members using the "static" keyword.
|
||||
We also need to be able to declare class variables using the "static" keyword.
|
||||
There we can also choose to leave out "var": >
|
||||
class Point
|
||||
var this.x: number
|
||||
@@ -876,50 +963,62 @@ while there is no ClassName() method, it's a method by another name in the
|
||||
class called ClassName. Quite confusing.
|
||||
|
||||
|
||||
Default read access to object members ~
|
||||
Vim9class access modes ~
|
||||
*vim9-access-modes*
|
||||
The variable access modes, and their meaning, supported by Vim9class are
|
||||
|public-variable| read and write from anywhere
|
||||
|read-only-variable| read from anywhere, write from inside the
|
||||
class and sub-classes
|
||||
|protected-variable| read and write from inside the class and
|
||||
sub-classes
|
||||
|
||||
Some users will remark that the access rules for object members are
|
||||
The method access modes are similar, but without the read-only mode.
|
||||
|
||||
|
||||
Default read access to object variables ~
|
||||
|
||||
Some users will remark that the access rules for object variables are
|
||||
asymmetric. Well, that is intentional. Changing a value is a very different
|
||||
action than reading a value. The read operation has no side effects, it can
|
||||
be done any number of times without affecting the object. Changing the value
|
||||
can have many side effects, and even have a ripple effect, affecting other
|
||||
objects.
|
||||
|
||||
When adding object members one usually doesn't think much about this, just get
|
||||
the type right. And normally the values are set in the new() method.
|
||||
When adding object variables one usually doesn't think much about this, just
|
||||
get the type right. And normally the values are set in the new() method.
|
||||
Therefore defaulting to read access only "just works" in most cases. And when
|
||||
directly writing you get an error, which makes you wonder if you actually want
|
||||
to allow that. This helps writing code with fewer mistakes.
|
||||
|
||||
|
||||
Making object members private with an underscore ~
|
||||
Making object variables protected with an underscore ~
|
||||
|
||||
When an object member is private, it can only be read and changed inside the
|
||||
class (and in sub-classes), then it cannot be used outside of the class.
|
||||
When an object variable is protected, it can only be read and changed inside
|
||||
the class (and in sub-classes), then it cannot be used outside of the class.
|
||||
Prepending an underscore is a simple way to make that visible. Various
|
||||
programming languages have this as a recommendation.
|
||||
|
||||
In case you change your mind and want to make the object member accessible
|
||||
In case you change your mind and want to make the object variable accessible
|
||||
outside of the class, you will have to remove the underscore everywhere.
|
||||
Since the name only appears in the class (and sub-classes) they will be easy
|
||||
to find and change.
|
||||
|
||||
The other way around is much harder: you can easily prepend an underscore to
|
||||
the object member inside the class to make it private, but any usage elsewhere
|
||||
you will have to track down and change. You may have to make it a "set"
|
||||
method call. This reflects the real world problem that taking away access
|
||||
requires work to be done for all places where that access exists.
|
||||
the object variable inside the class to make it protected, but any usage
|
||||
elsewhere you will have to track down and change. You may have to make it a
|
||||
"set" method call. This reflects the real world problem that taking away
|
||||
access requires work to be done for all places where that access exists.
|
||||
|
||||
An alternative would have been using the "private" keyword, just like "public"
|
||||
changes the access in the other direction. Well, that's just to reduce the
|
||||
number of keywords.
|
||||
An alternative would have been using the "protected" keyword, just like
|
||||
"public" changes the access in the other direction. Well, that's just to
|
||||
reduce the number of keywords.
|
||||
|
||||
|
||||
No protected object members ~
|
||||
No private object variables ~
|
||||
|
||||
Some languages provide several ways to control access to object members. The
|
||||
most known is "protected", and the meaning varies from language to language.
|
||||
Others are "shared", "private" and even "friend".
|
||||
Some languages provide several ways to control access to object variables.
|
||||
The most known is "protected", and the meaning varies from language to
|
||||
language. Others are "shared", "private", "package" and even "friend".
|
||||
|
||||
These rules make life more difficult. That can be justified in projects where
|
||||
many people work on the same, complex code where it is easy to make mistakes.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 9.0. Last change: 2022 Dec 04
|
||||
*visual.txt* For Vim version 9.0. Last change: 2023 Sep 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -183,6 +183,8 @@ If you want to highlight exactly the same area as the last time, you can use
|
||||
CTRL-C In Visual mode: Stop Visual mode. When insert mode is
|
||||
pending (the mode message shows
|
||||
"-- (insert) VISUAL --"), it is also stopped.
|
||||
On MS-Windows, you may need to press CTRL-Break
|
||||
|dos-CTRL-Break|.
|
||||
|
||||
==============================================================================
|
||||
3. Changing the Visual area *visual-change*
|
||||
|
||||
@@ -70,7 +70,7 @@ Convertit en binaires plut
|
||||
Cette option écrit les octets comme une séquence de "1" et de "0" au lieu
|
||||
d'une conversion en hexadécimal traditionnel. Chaque ligne est précédée par un
|
||||
numéro de ligne en hexadécimal et suivie de la représentation ASCII (ou
|
||||
EBCDIC) correspondante. Les options \-r, \-p, \-i ne fonctionnent pas dans ce
|
||||
EBCDIC) correspondante. Les options \-p, \-i ne fonctionnent pas dans ce
|
||||
mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -70,7 +70,7 @@ Convertit en binaires plutôt qu'en hexadécimal.
|
||||
Cette option écrit les octets comme une séquence de "1" et de "0" au lieu
|
||||
d'une conversion en hexadécimal traditionnel. Chaque ligne est précédée par un
|
||||
numéro de ligne en hexadécimal et suivie de la représentation ASCII (ou
|
||||
EBCDIC) correspondante. Les options \-r, \-p, \-i ne fonctionnent pas dans ce
|
||||
EBCDIC) correspondante. Les options \-p, \-i ne fonctionnent pas dans ce
|
||||
mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -53,18 +53,18 @@ Pertanto
|
||||
.B \-c 010
|
||||
e
|
||||
.B \-cols 8
|
||||
sono notazioni equivalenti fra loro.
|
||||
sono tutte notazioni equivalenti fra loro.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Richiesta di omissione: Un singolo '*' rimpiazza righe a zeri binari. Default: off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Richiesta di una immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Richiesta di un'immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Quest'opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni riga è preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni specificabili dalla
|
||||
riga comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni \-p, \-i,
|
||||
specificabili dalla riga comando, non funzionano in questo modo.
|
||||
.TP
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
In ogni riga sono formattate
|
||||
@@ -123,22 +123,30 @@ Aggiunge
|
||||
alla posizione visualizzata dei byte del file.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript. Noto anche come stile esadecimale semplice.
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript.
|
||||
Noto anche come stile esadecimale semplice.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
Ricostruisce: converte (o mette una patch) da immagine esadecimale, a file binario.
|
||||
Se non scrive sullo `standard output', xxd scrive nel file di output in maniera
|
||||
continua, senza interruzioni. Usare la combinazione
|
||||
.I \-r \-p
|
||||
per leggere dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote possono
|
||||
essere presenti [e vengono ignorati].
|
||||
per leggere un dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote
|
||||
possono essere presenti dappertutto [e vengono ignorati]. Usare la combinazione
|
||||
.I \-r \-b
|
||||
per leggere un dump binario, invece che un dump esadecimale.
|
||||
.TP
|
||||
.IR \-R " "[quando]
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a distinguere i caratteri stampabili da quello non stampabili.
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi
|
||||
lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a
|
||||
distinguere i caratteri stampabili da quelli non stampabili.
|
||||
.I quando
|
||||
può assumere i valori
|
||||
.BR never ", " always ", o " auto .
|
||||
Quando la variabile d'ambiente
|
||||
.BR $NO_COLOR
|
||||
è impostata, la colorazione viene disabilitata.
|
||||
.TP
|
||||
.I \-seek distanza
|
||||
Usato con l'opzione
|
||||
@@ -218,8 +226,7 @@ L'autore preferisce monitorare il comportamento di xxd con strace(1) o truss(1),
|
||||
.PP
|
||||
.br
|
||||
Stampa tutto tranne le prime tre righe (0x30 byte in esadecimale) di
|
||||
.BR file
|
||||
\.
|
||||
.BR file .
|
||||
.br
|
||||
\fI% xxd \-s 0x30 file\fR
|
||||
.PP
|
||||
|
||||
@@ -53,18 +53,18 @@ Pertanto
|
||||
.B \-c 010
|
||||
e
|
||||
.B \-cols 8
|
||||
sono notazioni equivalenti fra loro.
|
||||
sono tutte notazioni equivalenti fra loro.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Richiesta di omissione: Un singolo '*' rimpiazza righe a zeri binari. Default: off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Richiesta di una immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Richiesta di un'immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Quest'opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni riga è preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni specificabili dalla
|
||||
riga comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni \-p, \-i,
|
||||
specificabili dalla riga comando, non funzionano in questo modo.
|
||||
.TP
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
In ogni riga sono formattate
|
||||
@@ -123,22 +123,30 @@ Aggiunge
|
||||
alla posizione visualizzata dei byte del file.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript. Noto anche come stile esadecimale semplice.
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript.
|
||||
Noto anche come stile esadecimale semplice.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
Ricostruisce: converte (o mette una patch) da immagine esadecimale, a file binario.
|
||||
Se non scrive sullo `standard output', xxd scrive nel file di output in maniera
|
||||
continua, senza interruzioni. Usare la combinazione
|
||||
.I \-r \-p
|
||||
per leggere dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote possono
|
||||
essere presenti [e vengono ignorati].
|
||||
per leggere un dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote
|
||||
possono essere presenti dappertutto [e vengono ignorati]. Usare la combinazione
|
||||
.I \-r \-b
|
||||
per leggere un dump binario, invece che un dump esadecimale.
|
||||
.TP
|
||||
.IR \-R " "[quando]
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a distinguere i caratteri stampabili da quello non stampabili.
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi
|
||||
lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a
|
||||
distinguere i caratteri stampabili da quelli non stampabili.
|
||||
.I quando
|
||||
può assumere i valori
|
||||
.BR never ", " always ", o " auto .
|
||||
Quando la variabile d'ambiente
|
||||
.BR $NO_COLOR
|
||||
è impostata, la colorazione viene disabilitata.
|
||||
.TP
|
||||
.I \-seek distanza
|
||||
Usato con l'opzione
|
||||
@@ -218,8 +226,7 @@ L'autore preferisce monitorare il comportamento di xxd con strace(1) o truss(1),
|
||||
.PP
|
||||
.br
|
||||
Stampa tutto tranne le prime tre righe (0x30 byte in esadecimale) di
|
||||
.BR file
|
||||
\.
|
||||
.BR file .
|
||||
.br
|
||||
\fI% xxd \-s 0x30 file\fR
|
||||
.PP
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
1 オクテットが "1" と "0" の 8 文字で出力されます。
|
||||
各行の行頭には 16 進数の行番号が表示されます。
|
||||
行末には ascii (または ebcdic) で表した場合の文字が表示されます。
|
||||
このモードでは \-r、\-p、\-i は機能しません。
|
||||
このモードでは \-p、\-i は機能しません。
|
||||
.TP
|
||||
.IR \-e
|
||||
リトルエンディアンの 16 進ダンプに切り替える。
|
||||
|
||||
@@ -66,7 +66,7 @@ Prze
|
||||
Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
|
||||
zrzutu heksowego. Każda linia jest poprzedzona przez
|
||||
heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub
|
||||
ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
|
||||
ebcdic). Opcje linii poleceń \-p, \-i nie działają w tym
|
||||
trybie.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -66,7 +66,7 @@ Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
|
||||
Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
|
||||
zrzutu heksowego. Każda linia jest poprzedzona przez
|
||||
heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub
|
||||
ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
|
||||
ebcdic). Opcje linii poleceń \-p, \-i nie działają w tym
|
||||
trybie.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -70,7 +70,7 @@ xxd
|
||||
При использовании этого ключа вместо обычного шестнадцатеричного представления
|
||||
октетов используются наборы из восьми символов "1" и "0". Каждая строка
|
||||
предваряется номером строки в шестнадцатеричном виде, а завершается символьным
|
||||
представлением (в виде ascii или ebcdic). Ключи \-r, \-p, \-i в этом режиме
|
||||
представлением (в виде ascii или ebcdic). Ключи \-p, \-i в этом режиме
|
||||
не работают.
|
||||
.TP
|
||||
.IR "\-c кол " | " \-cols кол"
|
||||
|
||||
@@ -70,7 +70,7 @@ xxd позволяет выполнять декодирование в пото
|
||||
При использовании этого ключа вместо обычного шестнадцатеричного представления
|
||||
октетов используются наборы из восьми символов "1" и "0". Каждая строка
|
||||
предваряется номером строки в шестнадцатеричном виде, а завершается символьным
|
||||
представлением (в виде ascii или ebcdic). Ключи \-r, \-p, \-i в этом режиме
|
||||
представлением (в виде ascii или ebcdic). Ключи \-p, \-i в этом режиме
|
||||
не работают.
|
||||
.TP
|
||||
.IR "\-c кол " | " \-cols кол"
|
||||
|
||||
@@ -64,7 +64,7 @@ Switch to bits (binary digits) dump, rather than hex dump.
|
||||
This option writes octets as eight digits "1"s and "0"s instead of a normal
|
||||
hexadecimal dump. Each line is preceded by a line number in hexadecimal and
|
||||
followed by an ASCII (or EBCDIC) representation. The command line switches
|
||||
\-r, \-p, \-i do not work with this mode.
|
||||
\-p, \-i do not work with this mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
Format
|
||||
@@ -133,13 +133,20 @@ it. Use the combination
|
||||
.I \-r \-p
|
||||
to read plain hexadecimal dumps without line number information and without a
|
||||
particular column layout. Additional whitespace and line breaks are allowed
|
||||
anywhere.
|
||||
anywhere. Use the combination
|
||||
.I \-r \-b
|
||||
to read a bits dump instead of a hex dump.
|
||||
.TP
|
||||
.IR \-R " " when
|
||||
In output the hex-value and the value are both colored with the same color depending on the hex-value. Mostly helping to differentiate printable and non-printable characters.
|
||||
In output the hex-value and the value are both colored with the same color
|
||||
depending on the hex-value. Mostly helping to differentiate printable and
|
||||
non-printable characters.
|
||||
.I \fIwhen\fP
|
||||
is
|
||||
.BR never ", " always ", or " auto .
|
||||
When the
|
||||
.BR $NO_COLOR
|
||||
environment variable is set, colorization will be disabled.
|
||||
.TP
|
||||
.I \-seek offset
|
||||
When used after
|
||||
|
||||
@@ -3,7 +3,7 @@ XXD(1) General Commands Manual XXD(1)
|
||||
|
||||
|
||||
NAME
|
||||
xxd - make a hexdump or do the reverse.
|
||||
xxd - make a hex dump or do the reverse.
|
||||
|
||||
SYNOPSIS
|
||||
xxd -h[elp]
|
||||
@@ -30,19 +30,19 @@ OPTIONS
|
||||
notation. Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent.
|
||||
|
||||
-a | -autoskip
|
||||
Toggle autoskip: A single '*' replaces nul-lines. Default off.
|
||||
Toggle autoskip: A single '*' replaces NUL-lines. Default off.
|
||||
|
||||
-b | -bits
|
||||
Switch to bits (binary digits) dump, rather than hexdump. This
|
||||
Switch to bits (binary digits) dump, rather than hex dump. This
|
||||
option writes octets as eight digits "1"s and "0"s instead of a
|
||||
normal hexadecimal dump. Each line is preceded by a line number
|
||||
in hexadecimal and followed by an ascii (or ebcdic) representa‐
|
||||
tion. The command line switches -r, -p, -i do not work with this
|
||||
in hexadecimal and followed by an ASCII (or EBCDIC) representa‐
|
||||
tion. The command line switches -p, -i do not work with this
|
||||
mode.
|
||||
|
||||
-c cols | -cols cols
|
||||
Format <cols> octets per line. Default 16 (-i: 12, -ps: 30, -b:
|
||||
6). Max 256. No maxmimum for -ps. With -ps, 0 results in one
|
||||
6). Max 256. No maximum for -ps. With -ps, 0 results in one
|
||||
long line of output.
|
||||
|
||||
-C | -capitalize
|
||||
@@ -54,84 +54,92 @@ OPTIONS
|
||||
to EBCDIC. This does not change the hexadecimal representation.
|
||||
The option is meaningless in combinations with -r, -p or -i.
|
||||
|
||||
-e Switch to little-endian hexdump. This option treats byte groups
|
||||
as words in little-endian byte order. The default grouping of 4
|
||||
bytes may be changed using -g. This option only applies to hex‐
|
||||
dump, leaving the ASCII (or EBCDIC) representation unchanged.
|
||||
The command line switches -r, -p, -i do not work with this mode.
|
||||
-e Switch to little-endian hex dump. This option treats byte
|
||||
groups as words in little-endian byte order. The default group‐
|
||||
ing of 4 bytes may be changed using -g. This option only ap‐
|
||||
plies to the hex dump, leaving the ASCII (or EBCDIC) representa‐
|
||||
tion unchanged. The command line switches -r, -p, -i do not
|
||||
work with this mode.
|
||||
|
||||
-g bytes | -groupsize bytes
|
||||
Separate the output of every <bytes> bytes (two hex characters
|
||||
or eight bit-digits each) by a whitespace. Specify -g 0 to sup‐
|
||||
Separate the output of every <bytes> bytes (two hex characters
|
||||
or eight bit digits each) by a whitespace. Specify -g 0 to sup‐
|
||||
press grouping. <Bytes> defaults to 2 in normal mode, 4 in lit‐
|
||||
tle-endian mode and 1 in bits mode. Grouping does not apply to
|
||||
postscript or include style.
|
||||
tle-endian mode and 1 in bits mode. Grouping does not apply to
|
||||
PostScript or include style.
|
||||
|
||||
-h | -help
|
||||
Print a summary of available commands and exit. No hex dumping
|
||||
Print a summary of available commands and exit. No hex dumping
|
||||
is performed.
|
||||
|
||||
-i | -include
|
||||
Output in C include file style. A complete static array defini‐
|
||||
tion is written (named after the input file), unless xxd reads
|
||||
Output in C include file style. A complete static array defini‐
|
||||
tion is written (named after the input file), unless xxd reads
|
||||
from stdin.
|
||||
|
||||
-l len | -len len
|
||||
Stop after writing <len> octets.
|
||||
|
||||
-n name | -name name
|
||||
Override the variable name output when -i is used. The array is
|
||||
Override the variable name output when -i is used. The array is
|
||||
named name and the length is named name_len.
|
||||
|
||||
-o offset
|
||||
Add <offset> to the displayed file position.
|
||||
|
||||
-p | -ps | -postscript | -plain
|
||||
Output in postscript continuous hexdump style. Also known as
|
||||
plain hexdump style.
|
||||
Output in PostScript continuous hex dump style. Also known as
|
||||
plain hex dump style.
|
||||
|
||||
-r | -revert
|
||||
Reverse operation: convert (or patch) hexdump into binary. If
|
||||
not writing to stdout, xxd writes into its output file without
|
||||
Reverse operation: convert (or patch) hex dump into binary. If
|
||||
not writing to stdout, xxd writes into its output file without
|
||||
truncating it. Use the combination -r -p to read plain hexadeci‐
|
||||
mal dumps without line number information and without a particu‐
|
||||
lar column layout. Additional Whitespace and line-breaks are al‐
|
||||
lowed anywhere.
|
||||
lar column layout. Additional whitespace and line breaks are al‐
|
||||
lowed anywhere. Use the combination -r -b to read a bits dump
|
||||
instead of a hex dump.
|
||||
|
||||
-R when
|
||||
In output the hex-value and the value are both colored with the
|
||||
same color depending on the hex-value. Mostly helping to differ‐
|
||||
entiate printable and non-printable characters. when is never,
|
||||
always, or auto. When the $NO_COLOR environment variable is
|
||||
set, colorization will be disabled.
|
||||
|
||||
-seek offset
|
||||
When used after -r: revert with <offset> added to file positions
|
||||
found in hexdump.
|
||||
found in hex dump.
|
||||
|
||||
-s [+][-]seek
|
||||
Start at <seek> bytes abs. (or rel.) infile offset. + indicates
|
||||
that the seek is relative to the current stdin file position
|
||||
that the seek is relative to the current stdin file position
|
||||
(meaningless when not reading from stdin). - indicates that the
|
||||
seek should be that many characters from the end of the input
|
||||
seek should be that many characters from the end of the input
|
||||
(or if combined with +: before the current stdin file position).
|
||||
Without -s option, xxd starts at the current file position.
|
||||
|
||||
-u Use upper case hex letters. Default is lower case.
|
||||
-u Use upper-case hex letters. Default is lower-case.
|
||||
|
||||
-v | -version
|
||||
Show version string.
|
||||
|
||||
CAVEATS
|
||||
xxd -r has some builtin magic while evaluating line number information.
|
||||
If the output file is seekable, then the linenumbers at the start of
|
||||
each hexdump line may be out of order, lines may be missing, or over‐
|
||||
lapping. In these cases xxd will lseek(2) to the next position. If the
|
||||
output file is not seekable, only gaps are allowed, which will be
|
||||
filled by null-bytes.
|
||||
xxd -r has some built-in magic while evaluating line number informa‐
|
||||
tion. If the output file is seekable, then the line numbers at the
|
||||
start of each hex dump line may be out of order, lines may be missing,
|
||||
or overlapping. In these cases xxd will lseek(2) to the next position.
|
||||
If the output file is not seekable, only gaps are allowed, which will
|
||||
be filled by null-bytes.
|
||||
|
||||
xxd -r never generates parse errors. Garbage is silently skipped.
|
||||
|
||||
When editing hexdumps, please note that xxd -r skips everything on the
|
||||
When editing hex dumps, please note that xxd -r skips everything on the
|
||||
input line after reading enough columns of hexadecimal data (see option
|
||||
-c). This also means, that changes to the printable ascii (or ebcdic)
|
||||
columns are always ignored. Reverting a plain (or postscript) style
|
||||
hexdump with xxd -r -p does not depend on the correct number of col‐
|
||||
umns. Here anything that looks like a pair of hex-digits is inter‐
|
||||
preted.
|
||||
-c). This also means that changes to the printable ASCII (or EBCDIC)
|
||||
columns are always ignored. Reverting a plain (or PostScript) style hex
|
||||
dump with xxd -r -p does not depend on the correct number of columns.
|
||||
Here, anything that looks like a pair of hex digits is interpreted.
|
||||
|
||||
Note the difference between
|
||||
% xxd -i file
|
||||
@@ -142,19 +150,19 @@ CAVEATS
|
||||
"rewind" input. A '+' makes a difference if the input source is stdin,
|
||||
and if stdin's file position is not at the start of the file by the
|
||||
time xxd is started and given its input. The following examples may
|
||||
help to clarify (or further confuse!)...
|
||||
help to clarify (or further confuse!):
|
||||
|
||||
Rewind stdin before reading; needed because the `cat' has already read
|
||||
to the end of stdin.
|
||||
% sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file
|
||||
|
||||
Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign
|
||||
Hex dump from file position 0x480 (=1024+128) onwards. The `+' sign
|
||||
means "relative to the current position", thus the `128' adds to the 1k
|
||||
where dd left off.
|
||||
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet"
|
||||
< file
|
||||
|
||||
Hexdump from file position 0x100 ( = 1024-768) on.
|
||||
Hex dump from file position 0x100 (=1024-768) onwards.
|
||||
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet"
|
||||
< file
|
||||
|
||||
@@ -169,7 +177,7 @@ EXAMPLES
|
||||
Print 3 lines (hex 0x30 bytes) from the end of file.
|
||||
% xxd -s -0x30 file
|
||||
|
||||
Print 120 bytes as continuous hexdump with 20 octets per line.
|
||||
Print 120 bytes as a continuous hex dump with 20 octets per line.
|
||||
% xxd -l 120 -ps -c 20 xxd.1
|
||||
2e54482058584420312022417567757374203139
|
||||
39362220224d616e75616c207061676520666f72
|
||||
@@ -178,7 +186,7 @@ EXAMPLES
|
||||
20617574686f723a0a2e5c2220202020546f6e79
|
||||
204e7567656e74203c746f6e79407363746e7567
|
||||
|
||||
Hexdump the first 120 bytes of this man page with 12 octets per line.
|
||||
Hex dump the first 120 bytes of this man page with 12 octets per line.
|
||||
% xxd -l 120 -c 12 xxd.1
|
||||
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
|
||||
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
|
||||
@@ -207,27 +215,27 @@ EXAMPLES
|
||||
which is 'A' (hex 0x41).
|
||||
% echo "010000: 41" | xxd -r > file
|
||||
|
||||
Hexdump this file with autoskip.
|
||||
Hex dump this file with autoskip.
|
||||
% xxd -a -c 12 file
|
||||
0000000: 0000 0000 0000 0000 0000 0000 ............
|
||||
*
|
||||
000fffc: 0000 0000 40 ....A
|
||||
|
||||
Create a 1 byte file containing a single 'A' character. The number af‐
|
||||
ter '-r -s' adds to the linenumbers found in the file; in effect, the
|
||||
ter '-r -s' adds to the line numbers found in the file; in effect, the
|
||||
leading bytes are suppressed.
|
||||
% echo "010000: 41" | xxd -r -s -0x10000 > file
|
||||
|
||||
Use xxd as a filter within an editor such as vim(1) to hexdump a region
|
||||
marked between `a' and `z'.
|
||||
Use xxd as a filter within an editor such as vim(1) to hex dump a re‐
|
||||
gion marked between `a' and `z'.
|
||||
:'a,'z!xxd
|
||||
|
||||
Use xxd as a filter within an editor such as vim(1) to recover a binary
|
||||
hexdump marked between `a' and `z'.
|
||||
hex dump marked between `a' and `z'.
|
||||
:'a,'z!xxd -r
|
||||
|
||||
Use xxd as a filter within an editor such as vim(1) to recover one line
|
||||
of a hexdump. Move the cursor over the line and type:
|
||||
of a hex dump. Move the cursor over the line and type:
|
||||
!!xxd -r
|
||||
|
||||
Read single characters from a serial line
|
||||
@@ -240,7 +248,7 @@ RETURN VALUES
|
||||
|
||||
0 no errors encountered.
|
||||
|
||||
-1 operation not supported ( xxd -r -i still impossible).
|
||||
-1 operation not supported (xxd -r -i still impossible).
|
||||
|
||||
1 error while parsing options.
|
||||
|
||||
@@ -254,7 +262,7 @@ SEE ALSO
|
||||
uuencode(1), uudecode(1), patch(1)
|
||||
|
||||
WARNINGS
|
||||
The tools weirdness matches its creators brain. Use entirely at your
|
||||
The tool's weirdness matches its creator's brain. Use entirely at your
|
||||
own risk. Copy files. Trace it. Become a wizard.
|
||||
|
||||
VERSION
|
||||
|
||||
@@ -184,6 +184,9 @@ au BufNewFile,BufRead *.atl,*.as setf atlas
|
||||
" Atom is based on XML
|
||||
au BufNewFile,BufRead *.atom setf xml
|
||||
|
||||
" Authzed
|
||||
au BufNewFile,BufRead *.zed setf authzed
|
||||
|
||||
" Autoit v3
|
||||
au BufNewFile,BufRead *.au3 setf autoit
|
||||
|
||||
@@ -339,6 +342,9 @@ au BufNewFile,BufRead *.cc
|
||||
au BufNewFile,BufRead *.cpp
|
||||
\ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif
|
||||
|
||||
" Cypher query language
|
||||
au BufNewFile,BufRead *.cypher setf cypher
|
||||
|
||||
" C++
|
||||
au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp
|
||||
if has("fname_case")
|
||||
@@ -541,6 +547,7 @@ au BufNewFile,BufRead copyright
|
||||
" Debian Sources.list
|
||||
au BufNewFile,BufRead */etc/apt/sources.list setf debsources
|
||||
au BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources
|
||||
au BufNewFile,BufRead */etc/apt/sources.list.d/*.sources setf deb822sources
|
||||
|
||||
" Deny hosts
|
||||
au BufNewFile,BufRead denyhosts.conf setf denyhosts
|
||||
@@ -814,6 +821,9 @@ au BufNewFile,BufRead *.gleam setf gleam
|
||||
" GLSL
|
||||
au BufNewFile,BufRead *.glsl setf glsl
|
||||
|
||||
" GN (generate ninja) files
|
||||
au BufNewFile,BufRead *.gn,*.gni setf gn
|
||||
|
||||
" GP scripts (2.0 and onward)
|
||||
au BufNewFile,BufRead *.gp,.gprc setf gp
|
||||
|
||||
@@ -1010,7 +1020,7 @@ au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter
|
||||
au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl
|
||||
|
||||
" .INI file for MSDOS
|
||||
au BufNewFile,BufRead *.ini setf dosini
|
||||
au BufNewFile,BufRead *.ini,*.INI setf dosini
|
||||
|
||||
" SysV Inittab
|
||||
au BufNewFile,BufRead inittab setf inittab
|
||||
@@ -1027,6 +1037,9 @@ au BufNewFile,BufRead *.jal,*.JAL setf jal
|
||||
" Jam
|
||||
au BufNewFile,BufRead *.jpl,*.jpr setf jam
|
||||
|
||||
" Janet
|
||||
au BufNewFile,BufRead *.janet setf janet
|
||||
|
||||
" Java
|
||||
au BufNewFile,BufRead *.java,*.jav setf java
|
||||
|
||||
@@ -1090,6 +1103,9 @@ au BufNewFile,BufRead *.jsonnet,*.libsonnet setf jsonnet
|
||||
" Julia
|
||||
au BufNewFile,BufRead *.jl setf julia
|
||||
|
||||
" Just
|
||||
au BufNewFile,BufRead [jJ]ustfile,.justfile,*.just setf just
|
||||
|
||||
" KDL
|
||||
au BufNewFile,BufRead *.kdl setf kdl
|
||||
|
||||
@@ -1381,6 +1397,9 @@ au BufRead,BufNewFile *.mu setf mupad
|
||||
" Mush
|
||||
au BufNewFile,BufRead *.mush setf mush
|
||||
|
||||
" Mustache
|
||||
au BufNewFile,BufRead *.mustache setf mustache
|
||||
|
||||
" Mutt setup file (also for Muttng)
|
||||
au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
|
||||
|
||||
@@ -1444,11 +1463,14 @@ au BufNewFile,BufRead *.nse setf lua
|
||||
au BufNewFile,BufRead *.nsi,*.nsh setf nsis
|
||||
|
||||
" Nu
|
||||
au BufNewFile,BufRead {env,config}.nu setf nu
|
||||
au BufNewFile,BufRead *.nu setf nu
|
||||
|
||||
" Oblivion Language and Oblivion Script Extender
|
||||
au BufNewFile,BufRead *.obl,*.obse,*.oblivion,*.obscript setf obse
|
||||
|
||||
" Objdump
|
||||
au BufNewFile,BufRead *.objdump,*.cppobjdump setf objdump
|
||||
|
||||
" OCaml
|
||||
au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml
|
||||
|
||||
@@ -1496,7 +1518,7 @@ au BufNewFile,BufRead *.nmconnection setf confini
|
||||
" Pacman hooks
|
||||
au BufNewFile,BufRead *.hook
|
||||
\ if getline(1) == '[Trigger]' |
|
||||
\ setf conf |
|
||||
\ setf confini |
|
||||
\ endif
|
||||
|
||||
" Pam conf
|
||||
@@ -1669,8 +1691,8 @@ au BufNewFile,BufRead .procmail,.procmailrc setf procmail
|
||||
" Progress or CWEB
|
||||
au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb()
|
||||
|
||||
" Progress or assembly
|
||||
au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm()
|
||||
" Progress or assembly or Swig
|
||||
au BufNewFile,BufRead *.i call dist#ft#FTi()
|
||||
|
||||
" Progress or Pascal
|
||||
au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal()
|
||||
@@ -1991,9 +2013,8 @@ au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFile
|
||||
" (patterns ending in a start further below)
|
||||
au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
|
||||
|
||||
" Zig and Zir (Zig Intermediate Representation)
|
||||
au BufNewFile,BufRead *.zig setf zig
|
||||
au BufNewFile,BufRead *.zir setf zir
|
||||
" Zig and Zig Object Notation (ZON)
|
||||
au BufNewFile,BufRead *.zig,*.zon setf zig
|
||||
|
||||
" Zserio
|
||||
au BufNewFile,BufRead *.zs setf zserio
|
||||
@@ -2165,6 +2186,9 @@ au BufNewFile,BufRead *.swift.gyb setf swiftgyb
|
||||
" Swift Intermediate Language or SILE
|
||||
au BufNewFile,BufRead *.sil call dist#ft#FTsil()
|
||||
|
||||
" Swig
|
||||
au BufNewFile,BufRead *.swg,*.swig setf swig
|
||||
|
||||
" Sysctl
|
||||
au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
|
||||
|
||||
@@ -2436,8 +2460,7 @@ au BufNewFile,BufRead *.vroom setf vroom
|
||||
au BufNewFile,BufRead *.vue setf vue
|
||||
|
||||
" WebAssembly
|
||||
au BufNewFile,BufRead *.wat setf wat
|
||||
au BufNewFile,BufRead *.wast setf wast
|
||||
au BufNewFile,BufRead *.wat,*.wast setf wat
|
||||
|
||||
" WebAssembly Interface Type (WIT)
|
||||
au BufNewFile,BufRead *.wit setf wit
|
||||
@@ -2519,6 +2542,9 @@ au BufNewFile,BufRead */etc/xinetd.conf setf xinetd
|
||||
" XS Perl extension interface language
|
||||
au BufNewFile,BufRead *.xs setf xs
|
||||
|
||||
" X compose file
|
||||
au BufNewFile,BufRead .XCompose,Compose setf xcompose
|
||||
|
||||
" X resources file
|
||||
au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults
|
||||
|
||||
@@ -2853,6 +2879,9 @@ au BufNewFile,BufRead XF86Config*
|
||||
\|endif
|
||||
\|call s:StarSetf('xf86conf')
|
||||
|
||||
" XKB
|
||||
au BufNewFile,BufRead */usr/share/X11/xkb/{compat,geometry,keycodes,symbols,types}/* call s:StarSetf('xkb')
|
||||
|
||||
" X11 xmodmap
|
||||
au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
|
||||
|
||||
|
||||
@@ -37,8 +37,8 @@ if exists("g:awk_is_gawk")
|
||||
let b:undo_ftplugin .= " | setl fp<"
|
||||
endif
|
||||
|
||||
" Disabled by default for security reasons.
|
||||
if get(g:, 'awk_exec', get(g:, 'plugin_exec', 0))
|
||||
" Disabled by default for security reasons.
|
||||
if dist#vim#IsSafeExecutable('awk', 'gawk')
|
||||
let path = system("gawk 'BEGIN { printf ENVIRON[\"AWKPATH\"] }'")
|
||||
let path = substitute(path, '^\.\=:\|:\.\=$\|:\.\=:', ',,', 'g') " POSIX cwd
|
||||
let path = substitute(path, ':', ',', 'g')
|
||||
|
||||
@@ -57,8 +57,8 @@ if &filetype == 'changelog'
|
||||
endif
|
||||
let s:default_login = 'unknown'
|
||||
|
||||
" Disabled by default for security reasons.
|
||||
if get(g:, 'changelog_exec', get(g:, 'plugin_exec', 0))
|
||||
" Disabled by default for security reasons.
|
||||
if dist#vim#IsSafeExecutable('changelog', 'whoami')
|
||||
let login = s:login()
|
||||
else
|
||||
let login = s:default_login
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Dan Sharp
|
||||
" Contributor: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2021 Oct 15
|
||||
" Last Change: 2023 Oct 09
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
@@ -18,7 +20,7 @@ setlocal formatoptions+=crql
|
||||
|
||||
let b:undo_ftplugin = "setlocal com< cms< fo<"
|
||||
|
||||
" Csh: thanks to Johannes Zellner
|
||||
" Csh: thanks to Johannes Zellner
|
||||
" - Both foreach and end must appear alone on separate lines.
|
||||
" - The words else and endif must appear at the beginning of input lines;
|
||||
" the if must appear alone on its input line or after an else.
|
||||
@@ -38,13 +40,14 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ s:line_start .. 'case\s\+:' .. s:line_start .. 'default\>:\<breaksw\>:' ..
|
||||
\ s:line_start .. 'endsw\>'
|
||||
unlet s:line_start
|
||||
let b:undo_ftplugin ..= " | unlet b:match_words"
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_words"
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet b:browsefilter"
|
||||
let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:csh_set_browsefilter = 1
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:csh_set_browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
|
||||
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
|
||||
" Stefano Zacchiroli <zack@debian.org>
|
||||
" Last Change: 2023 Jan 16
|
||||
" Last Change: 2023 Aug 18
|
||||
" License: Vim License
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/debchangelog.vim
|
||||
|
||||
|
||||
16
runtime/ftplugin/debsources.vim
Normal file
16
runtime/ftplugin/debsources.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
|
||||
" Last Change: 2023 Aug 30
|
||||
" License: Vim License
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/debsources.vim
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin=1
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#%s
|
||||
setlocal formatoptions-=t
|
||||
|
||||
let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<'
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: gpg(1) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,17 +17,17 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 GpgKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+--' . <q-args> . '\b'' --hilite-search" man ' . 'gpg' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 GpgKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+--' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'gpg'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':GpgKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:GpgKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer GpgKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
28
runtime/ftplugin/json5.vim
Normal file
28
runtime/ftplugin/json5.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: JSON5
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2023 Oct 19
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< cms<"
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "JSON5 Files (*.json5)\t*.json5\n" ..
|
||||
\ "JSON Files (*.json)\t*.json\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Lynx Web Browser Configuration
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2022 Sep 09
|
||||
" Last Change: 2023 Nov 09
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -18,7 +18,7 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
let b:undo_ftplugin = "setl cms< com< fo<"
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Lynx Configuration Files (lynx.cfg .lynxrc)\tlynx.cfg;.lynxrc\n" ..
|
||||
let b:browsefilter = "Lynx Configuration Files (lynx.cfg, .lynxrc)\tlynx.cfg;.lynxrc\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: modules.conf(5) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -18,17 +18,17 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ModconfKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s{,8}' . <q-args> . '\b'' --hilite-search" man ' . 'modprobe.d' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ModconfKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'modprobe.d'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':ModconfKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:ModconfKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer ModconfKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: mutt RC File
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2006-04-19
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -20,17 +20,17 @@ let &l:include = '^\s*source\>'
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 MuttrcKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+' . <q-args> . '\b'' --hilite-search" man ' . 'muttrc' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 MuttrcKeywordPrg
|
||||
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'muttrc'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':MuttrcKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:MuttrcKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer MuttrcKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
14
runtime/ftplugin/objdump.vim
Normal file
14
runtime/ftplugin/objdump.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Objdump
|
||||
" Maintainer: Colin Kennedy <colinvfx@gmail.com>
|
||||
" Last Change: 2023 October 25
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setlocal cms<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
@@ -56,12 +56,8 @@ endif
|
||||
|
||||
" Set this once, globally.
|
||||
if !exists("perlpath")
|
||||
let s:tmp_cwd = getcwd()
|
||||
" safety check: don't execute perl binary by default
|
||||
if executable("perl") && get(g:, 'perl_exec', get(g:, 'plugin_exec', 0))
|
||||
\ && (fnamemodify(exepath("perl"), ":p:h") != s:tmp_cwd
|
||||
\ || (index(split($PATH, has("win32") ? ';' : ':'), s:tmp_cwd) != -1
|
||||
\ && s:tmp_cwd != '.'))
|
||||
if dist#vim#IsSafeExecutable('perl', 'perl')
|
||||
try
|
||||
if &shellxquote != '"'
|
||||
let perlpath = system('perl -e "print join(q/,/,@INC)"')
|
||||
@@ -77,7 +73,6 @@ if !exists("perlpath")
|
||||
" current directory and the directory of the current file.
|
||||
let perlpath = ".,,"
|
||||
endif
|
||||
unlet! s:tmp_cwd
|
||||
endif
|
||||
|
||||
" Append perlpath to the existing path value, if it is set. Since we don't
|
||||
|
||||
@@ -32,17 +32,17 @@ endif
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ReadlineKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+' . <q-args> . '\b'' --hilite-search" man ' . '3 readline' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ReadlineKeywordPrg
|
||||
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . '3 readline'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':ReadlineKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:ReadlineKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer ReadlineKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: R Markdown file
|
||||
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
||||
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
|
||||
" Last Change: Mon Feb 27, 2023 07:15PM
|
||||
" Last Change: Mon May 29, 2023 06:31AM
|
||||
" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
|
||||
|
||||
" Only do this when not yet done for this buffer
|
||||
@@ -32,12 +32,18 @@ function FormatRmd()
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
let s:last_line = 0
|
||||
function SetRmdCommentStr()
|
||||
if (search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")) || ((search('^---$', 'Wn') || search('^\.\.\.$', 'Wn')) && search('^---$', 'bnW'))
|
||||
set commentstring=#\ %s
|
||||
else
|
||||
set commentstring=<!--\ %s\ -->
|
||||
endif
|
||||
if line('.') == s:last_line
|
||||
return
|
||||
endif
|
||||
let s:last_line = line('.')
|
||||
|
||||
if (search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")) || ((search('^---$', 'Wn') || search('^\.\.\.$', 'Wn')) && search('^---$', 'bnW'))
|
||||
set commentstring=#\ %s
|
||||
else
|
||||
set commentstring=<!--\ %s\ -->
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" If you do not want both 'comments' and 'commentstring' dynamically defined,
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Dan Sharp
|
||||
" Contributor: Enno Nagel <ennonagel+vim@gmail.com>
|
||||
" Last Change: 2023 Aug 29
|
||||
" Eisuke Kawashima
|
||||
" Last Change: 2023 Sep 28
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -39,17 +40,16 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
if (exists("b:is_bash") && (b:is_bash == 1)) ||
|
||||
\ (exists("b:is_sh") && (b:is_sh == 1))
|
||||
if get(b:, "is_bash", 0)
|
||||
if !has("gui_running") && executable("less")
|
||||
command! -buffer -nargs=1 Help silent exe '!bash -c "{ help "<args>" 2>/dev/null || man "<args>"; } | LESS= less"' | redraw!
|
||||
elseif has('terminal')
|
||||
command! -buffer -nargs=1 Help silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
|
||||
command! -buffer -nargs=1 ShKeywordPrg silent exe '!bash -c "{ help "<args>" 2>/dev/null || man "<args>"; } | LESS= less"' | redraw!
|
||||
elseif has("terminal")
|
||||
command! -buffer -nargs=1 ShKeywordPrg silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
|
||||
else
|
||||
command! -buffer -nargs=1 Help echo system('bash -c "help <args>" 2>/dev/null || man "<args>"')
|
||||
command! -buffer -nargs=1 ShKeywordPrg echo system('bash -c "help <args>" 2>/dev/null || man "<args>"')
|
||||
endif
|
||||
setlocal keywordprg=:Help
|
||||
let b:undo_ftplugin ..= " | setl kp< | sil! delc -buffer Help"
|
||||
setlocal keywordprg=:ShKeywordPrg
|
||||
let b:undo_ftplugin ..= " | setl kp< | sil! delc -buffer ShKeywordPrg"
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: OpenSSH client configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -16,17 +16,17 @@ let b:undo_ftplugin = 'setlocal com< cms< fo<'
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SshconfigKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+' . <q-args> . '$'' --hilite-search" man ' . 'ssh_config' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SshconfigKeywordPrg
|
||||
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '$', '\') . ''' --hilite-search" man ' . 'ssh_config'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':SshconfigKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:SshconfigKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SshconfigKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: sudoers(5) configuration files
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,17 +17,17 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SudoersKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''\b' . <q-args> . '\b'' --hilite-search" man ' . 'sudoers' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SudoersKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('\b' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'sudoers'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':SudoersKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:SudoersKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SudoersKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user