mirror of
https://github.com/zoriya/vim.git
synced 2025-12-15 19:56:20 +00:00
Compare commits
445 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f8f827723 | ||
|
|
d28d7b94f5 | ||
|
|
e5eae82bb7 | ||
|
|
83c43ab319 | ||
|
|
b9603f6498 | ||
|
|
00b28d6c23 | ||
|
|
038e6d20e6 | ||
|
|
84dbf855fb | ||
|
|
1881abfc34 | ||
|
|
647b8dfa7f | ||
|
|
2e613453ee | ||
|
|
3fc84dc2c7 | ||
|
|
86b4816766 | ||
|
|
5e0c004f0c | ||
|
|
a8cdb4eef8 | ||
|
|
af34543b92 | ||
|
|
d6e74f5479 | ||
|
|
6572a90287 | ||
|
|
56a40fea9c | ||
|
|
7155fb6614 | ||
|
|
9dacdb1d56 | ||
|
|
1cb16c3a20 | ||
|
|
f0a9c00482 | ||
|
|
25201016d5 | ||
|
|
0a2f891adf | ||
|
|
fa2533c8bb | ||
|
|
99d19438ca | ||
|
|
23526d2539 | ||
|
|
72b5b0d51a | ||
|
|
6cf3151f0e | ||
|
|
c216a7a21a | ||
|
|
65214053f6 | ||
|
|
d0f8d39d20 | ||
|
|
a0a6f3a22a | ||
|
|
3d3e2aa826 | ||
|
|
9163efb5b8 | ||
|
|
c1c365c1ca | ||
|
|
b21b8e9ed0 | ||
|
|
c0370529c0 | ||
|
|
1b73edd9ee | ||
|
|
8ffb7e051d | ||
|
|
af19ec0bfa | ||
|
|
37f088eead | ||
|
|
267db7c3e3 | ||
|
|
89469d157a | ||
|
|
500c444283 | ||
|
|
c67c89c758 | ||
|
|
c96b7f5d2a | ||
|
|
9c8d12c811 | ||
|
|
b55ae8ce42 | ||
|
|
cf650b7c9b | ||
|
|
5390c05a3c | ||
|
|
1a173409ae | ||
|
|
023930d62e | ||
|
|
184a622ada | ||
|
|
45e4eead2a | ||
|
|
c3f1881aed | ||
|
|
733a69b29f | ||
|
|
4f501171f7 | ||
|
|
3b8c7083b2 | ||
|
|
4c5678ff0c | ||
|
|
a87749e3ea | ||
|
|
7c02ad9f89 | ||
|
|
dffa6ea85c | ||
|
|
064fd67e6a | ||
|
|
4e6072b8d3 | ||
|
|
6f2a227565 | ||
|
|
3719989431 | ||
|
|
28a896f54d | ||
|
|
c13e998d4a | ||
|
|
84497cd06f | ||
|
|
f86490ed4f | ||
|
|
e76062c078 | ||
|
|
74a694dbe2 | ||
|
|
269aa2b29a | ||
|
|
38854b565a | ||
|
|
3da8597fc0 | ||
|
|
502e91756e | ||
|
|
8b336a6614 | ||
|
|
19cf525c20 | ||
|
|
64fabf3802 | ||
|
|
9f14557d6a | ||
|
|
cc0907165d | ||
|
|
c255b78965 | ||
|
|
837ca8f43b | ||
|
|
f3f198b634 | ||
|
|
01105b37a1 | ||
|
|
c96311b5be | ||
|
|
ef2c325f5e | ||
|
|
c1cf4c9107 | ||
|
|
cc762a48d4 | ||
|
|
ad85af5b38 | ||
|
|
637862fc3c | ||
|
|
6ac16f0c0f | ||
|
|
d330e8422d | ||
|
|
f60bdc3417 | ||
|
|
1273dfb015 | ||
|
|
ebed1b0bea | ||
|
|
47f1fdc28c | ||
|
|
0b228cddc7 | ||
|
|
e2da59851a | ||
|
|
82946e1439 | ||
|
|
24482fbfd5 | ||
|
|
24fe33a83a | ||
|
|
b59ae59a58 | ||
|
|
43300f6034 | ||
|
|
ecfd511e8d | ||
|
|
36446bbb62 | ||
|
|
63a2e360cc | ||
|
|
0b6d6a186e | ||
|
|
1d822afaf6 | ||
|
|
96cbbe29de | ||
|
|
bc222152d8 | ||
|
|
df3c0eb41e | ||
|
|
c3e06e4bfa | ||
|
|
a787c24e00 | ||
|
|
364438d1e8 | ||
|
|
9af2ea80a8 | ||
|
|
b775e72439 | ||
|
|
9c5b7cb4cf | ||
|
|
0319306f20 | ||
|
|
35fc61cb5b | ||
|
|
ce30ccc06a | ||
|
|
2996773276 | ||
|
|
228e422855 | ||
|
|
0a60f79fd0 | ||
|
|
c896adbcde | ||
|
|
e6392b1021 | ||
|
|
c934bfa1b7 | ||
|
|
9fda81515b | ||
|
|
361895d2a1 | ||
|
|
d63a85592c | ||
|
|
ff95ce0930 | ||
|
|
02edfaa610 | ||
|
|
88456cd3c4 | ||
|
|
d13166e788 | ||
|
|
236dffab43 | ||
|
|
696d0a8625 | ||
|
|
0c34d56264 | ||
|
|
81ba26e9de | ||
|
|
4654d63dec | ||
|
|
75ac25b496 | ||
|
|
12babe45a3 | ||
|
|
1d8765daba | ||
|
|
780154bf7a | ||
|
|
ee28c707e4 | ||
|
|
01ee52bab6 | ||
|
|
f32fb93e43 | ||
|
|
fc1b2d0961 | ||
|
|
1573e73f1c | ||
|
|
8303035d67 | ||
|
|
f10952e8c0 | ||
|
|
a44c7811ff | ||
|
|
44c2209352 | ||
|
|
b53a190e9f | ||
|
|
cdeb65729d | ||
|
|
698a00f55d | ||
|
|
c3d27ada14 | ||
|
|
24dc19cdb2 | ||
|
|
161b6ac04f | ||
|
|
dcbdd82d05 | ||
|
|
b298fe6cba | ||
|
|
cf2594fbf3 | ||
|
|
68353e5270 | ||
|
|
398a26f7fc | ||
|
|
920d311480 | ||
|
|
bf533e4e88 | ||
|
|
623e94e138 | ||
|
|
3b014befa0 | ||
|
|
2f7bfe66a1 | ||
|
|
28c56d5013 | ||
|
|
1140b51e83 | ||
|
|
d6e91385f0 | ||
|
|
f7570f2107 | ||
|
|
b3052aa1b5 | ||
|
|
6600447c7b | ||
|
|
4c8d2f02b3 | ||
|
|
0aad88f073 | ||
|
|
9954dc39ea | ||
|
|
a20be06f97 | ||
|
|
fd3084b6e2 | ||
|
|
f00112d558 | ||
|
|
37f1030fd6 | ||
|
|
d55bfcaa9b | ||
|
|
09a93e3e66 | ||
|
|
7265851b2b | ||
|
|
98aebcc2c6 | ||
|
|
90e66ec1e1 | ||
|
|
1d139a012e | ||
|
|
38804d6457 | ||
|
|
157241e879 | ||
|
|
76db9e0763 | ||
|
|
0fd7be7f95 | ||
|
|
80613d64e6 | ||
|
|
f220643c26 | ||
|
|
4e7590ec00 | ||
|
|
7b224fdf4a | ||
|
|
1756f4b218 | ||
|
|
0e364c9fca | ||
|
|
7af3ee2b83 | ||
|
|
adbc08fd69 | ||
|
|
69a8bb8dc1 | ||
|
|
a25f718431 | ||
|
|
cd9c8d400c | ||
|
|
91c75d18d9 | ||
|
|
845bbb72ed | ||
|
|
f8ea10677d | ||
|
|
25b8420c2b | ||
|
|
5a5f17f9b3 | ||
|
|
6c3d3e6904 | ||
|
|
5375205761 | ||
|
|
3d19c81a11 | ||
|
|
c57b5bcd22 | ||
|
|
1410d1841b | ||
|
|
3af982196b | ||
|
|
8e0ccb6bc2 | ||
|
|
873f41a018 | ||
|
|
7a7db047dc | ||
|
|
8ab9ca93ee | ||
|
|
86e6717ace | ||
|
|
03d6e6f42b | ||
|
|
1577537f10 | ||
|
|
6ebe4f970b | ||
|
|
3f68a4136e | ||
|
|
72c8e3c070 | ||
|
|
f0b567e32a | ||
|
|
ad353244f2 | ||
|
|
fb0cf2357e | ||
|
|
9c50eeb401 | ||
|
|
436e5d395f | ||
|
|
4bc85f23ed | ||
|
|
7fa02bcb3b | ||
|
|
2435adf8eb | ||
|
|
5b2a3d77d3 | ||
|
|
63c84731c1 | ||
|
|
6c8bc37a10 | ||
|
|
d5337efece | ||
|
|
49660f5139 | ||
|
|
d0fab10ed2 | ||
|
|
cdef1cefa2 | ||
|
|
43625762a9 | ||
|
|
4c36678ffd | ||
|
|
7609c88eed | ||
|
|
d505c8220d | ||
|
|
d0fbb41eaa | ||
|
|
3c708c4390 | ||
|
|
df63f05c3a | ||
|
|
060b838488 | ||
|
|
11df3aeee5 | ||
|
|
9f62ea01a0 | ||
|
|
605d02a9b7 | ||
|
|
bf72e0c67f | ||
|
|
a353282c13 | ||
|
|
53c5c9f50c | ||
|
|
8f3c3c6cd0 | ||
|
|
61c4b04799 | ||
|
|
9298a996fc | ||
|
|
208567e9d7 | ||
|
|
9652249a2d | ||
|
|
b99e6e6c5f | ||
|
|
8107a2a8af | ||
|
|
4bf67ec52e | ||
|
|
e6a16e9950 | ||
|
|
a1a46da87d | ||
|
|
4ac8e7948c | ||
|
|
4913d420e8 | ||
|
|
3f0092c141 | ||
|
|
9d8620b519 | ||
|
|
2a46f81ec7 | ||
|
|
6a12d26f34 | ||
|
|
d094e580b0 | ||
|
|
501e77766c | ||
|
|
3c053a1a5a | ||
|
|
bd053f894b | ||
|
|
d8cd6f7427 | ||
|
|
db4c94788a | ||
|
|
5b148ef262 | ||
|
|
c4860bdd28 | ||
|
|
0e9bdad545 | ||
|
|
36343ae0fb | ||
|
|
c8b6735573 | ||
|
|
a2e4e0fc3b | ||
|
|
4b082c4bd0 | ||
|
|
49846fb1a3 | ||
|
|
297164cb79 | ||
|
|
fa7bb1d937 | ||
|
|
13cdde3952 | ||
|
|
eb4de62931 | ||
|
|
4ccaedfcd7 | ||
|
|
d988ef3a55 | ||
|
|
a79b35b578 | ||
|
|
b77bdce120 | ||
|
|
7e120ffccb | ||
|
|
c9121f798f | ||
|
|
0abd6cf62d | ||
|
|
975a665d48 | ||
|
|
b9c09c118e | ||
|
|
ba43e76fcd | ||
|
|
856c5d2bc7 | ||
|
|
4b6172e108 | ||
|
|
6c4d4a6444 | ||
|
|
66b8d2a89e | ||
|
|
3558afe9e9 | ||
|
|
d93009eb35 | ||
|
|
4997f2a605 | ||
|
|
17822c507c | ||
|
|
91ccbad5de | ||
|
|
d26c5805bc | ||
|
|
f8412c9d7c | ||
|
|
e42033e735 | ||
|
|
2fbabd238a | ||
|
|
84d14ccdb5 | ||
|
|
d987642626 | ||
|
|
af40f9af33 | ||
|
|
9ce7915d06 | ||
|
|
ae906c8b1b | ||
|
|
a4962cd7ba | ||
|
|
7c6cd44375 | ||
|
|
159b2d5bfc | ||
|
|
7e017461e2 | ||
|
|
a275f2cdcc | ||
|
|
a9a364872e | ||
|
|
877151b3d8 | ||
|
|
9466fb8001 | ||
|
|
0c502d2e70 | ||
|
|
56564964e6 | ||
|
|
ccf2837a05 | ||
|
|
d3283fba25 | ||
|
|
cd105417a5 | ||
|
|
801cd35e7e | ||
|
|
1206c163db | ||
|
|
c601d988b6 | ||
|
|
79f234499b | ||
|
|
084f2620ec | ||
|
|
4282633ba6 | ||
|
|
f167c7b424 | ||
|
|
15b314ffbb | ||
|
|
118c235112 | ||
|
|
28f7e701b7 | ||
|
|
13845c48d8 | ||
|
|
b7af5a0445 | ||
|
|
330d64d32c | ||
|
|
30c0c467d6 | ||
|
|
8cf3459878 | ||
|
|
25f3a146a0 | ||
|
|
bf499c0e6f | ||
|
|
251c1e2ed8 | ||
|
|
16dab41537 | ||
|
|
fbdce18500 | ||
|
|
0089ce293f | ||
|
|
4314e4f7da | ||
|
|
5a049846e4 | ||
|
|
b7f52f5659 | ||
|
|
2b7b4f7670 | ||
|
|
a0789478f6 | ||
|
|
fcb86b0a99 | ||
|
|
33b55b562b | ||
|
|
5ab300195b | ||
|
|
8d8b9758ce | ||
|
|
07eaa1ede4 | ||
|
|
2eae3d24d7 | ||
|
|
bdc09a18fc | ||
|
|
cf3d0eaf47 | ||
|
|
0937b9fb24 | ||
|
|
3725116f6e | ||
|
|
35b251d2c2 | ||
|
|
97f0eb169b | ||
|
|
06618f94f1 | ||
|
|
d459020c62 | ||
|
|
851907a7ab | ||
|
|
4d31b48a11 | ||
|
|
46b54747c5 | ||
|
|
9bab7a0243 | ||
|
|
1a58e1d97c | ||
|
|
c9f5f73206 | ||
|
|
db77cb3c08 | ||
|
|
3ff71cda98 | ||
|
|
346823d3e5 | ||
|
|
7beaf6a720 | ||
|
|
0816f473ab | ||
|
|
f3ef026c98 | ||
|
|
d195598714 | ||
|
|
7500866182 | ||
|
|
18b3500b8c | ||
|
|
2cd0f27b75 | ||
|
|
caf05f504e | ||
|
|
351523f893 | ||
|
|
7904fa420e | ||
|
|
4ba5f1dab6 | ||
|
|
2f7e1b8b40 | ||
|
|
ec32c781a2 | ||
|
|
01c34e7d10 | ||
|
|
b6aab8f44b | ||
|
|
f269eabc6c | ||
|
|
eb47d6d20a | ||
|
|
0466d398a5 | ||
|
|
406b5d89e1 | ||
|
|
0a016671b9 | ||
|
|
13ece2ae1d | ||
|
|
6b2d4ff714 | ||
|
|
8df9748edb | ||
|
|
b1fd26d208 | ||
|
|
b34c4b7863 | ||
|
|
693729ae58 | ||
|
|
bbbda8fd81 | ||
|
|
f6196f4244 | ||
|
|
ff85d4a107 | ||
|
|
393f8d61f5 | ||
|
|
eda29c971c | ||
|
|
b393275ae9 | ||
|
|
3292a22940 | ||
|
|
a4e0b9785e | ||
|
|
b850c39676 | ||
|
|
87b4e5c5db | ||
|
|
145d1fd910 | ||
|
|
cfb4d4f312 | ||
|
|
a5d1a67bee | ||
|
|
d0121c63cf | ||
|
|
6586a01514 | ||
|
|
b152b6a40f | ||
|
|
7dd5a78b88 | ||
|
|
ac38ec7c7f | ||
|
|
fa1039760e | ||
|
|
9f573a8df0 | ||
|
|
fc06cda837 | ||
|
|
50faf02f43 | ||
|
|
572a4433c8 | ||
|
|
82418263fa | ||
|
|
1936c76536 | ||
|
|
371951d0c3 | ||
|
|
52df40eb04 | ||
|
|
ef976323e7 | ||
|
|
caa1d19da1 | ||
|
|
47da934844 | ||
|
|
70e672580b | ||
|
|
859ea4bc76 | ||
|
|
66000ff9af | ||
|
|
9fbdbb814f | ||
|
|
26f09ea54b | ||
|
|
f802767df7 | ||
|
|
524c853e5e | ||
|
|
439a2ba174 | ||
|
|
49c311c9b1 | ||
|
|
7c1cbb6cd4 | ||
|
|
7fc6c0e4da |
@@ -7,7 +7,6 @@ environment:
|
||||
- FEATURE: HUGE
|
||||
# disabled
|
||||
# - FEATURE: TINY
|
||||
# - FEATURE: SMALL
|
||||
# - FEATURE: NORMAL
|
||||
# - FEATURE: BIG
|
||||
|
||||
|
||||
12
.cirrus.yml
12
.cirrus.yml
@@ -8,9 +8,9 @@ freebsd_task:
|
||||
- name: FreeBSD 13.1
|
||||
freebsd_instance:
|
||||
image_family: freebsd-13-1
|
||||
- name: FreeBSD 12.3
|
||||
- name: FreeBSD 12.4
|
||||
freebsd_instance:
|
||||
image_family: freebsd-12-3
|
||||
image_family: freebsd-12-4
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- pkg update -f
|
||||
@@ -30,15 +30,17 @@ macos_task:
|
||||
name: macOS m1
|
||||
macos_instance:
|
||||
image: ghcr.io/cirruslabs/macos-ventura-xcode:latest
|
||||
env:
|
||||
# only run with clang, gcc is not real, it is a link to clang
|
||||
CC: clang
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- uname -a
|
||||
- brew update
|
||||
- brew install gettext libtool
|
||||
build_script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC} CC=clang
|
||||
- make -j${NPROC}
|
||||
test_script:
|
||||
- src/vim --version
|
||||
- make CC=clang test
|
||||
- make test
|
||||
|
||||
24
.github/CODEOWNERS
vendored
24
.github/CODEOWNERS
vendored
@@ -57,6 +57,7 @@ runtime/compiler/gawk.vim @dkearns
|
||||
runtime/compiler/gjs.vim @dkearns
|
||||
runtime/compiler/go.vim @dbarnett
|
||||
runtime/compiler/haml.vim @tpope
|
||||
runtime/compiler/hare.vim @rsaihe
|
||||
runtime/compiler/icon.vim @dkearns
|
||||
runtime/compiler/javac.vim @dkearns
|
||||
runtime/compiler/jest.vim @dkearns
|
||||
@@ -103,10 +104,12 @@ runtime/doc/pi_vimball.txt @cecamp
|
||||
runtime/doc/pi_zip.txt @cecamp
|
||||
runtime/doc/ps1.txt @heaths
|
||||
runtime/ftplugin/abaqus.vim @costerwi
|
||||
runtime/ftplugin/apache.vim @dubgeiser
|
||||
runtime/ftplugin/awk.vim @dkearns
|
||||
runtime/ftplugin/basic.vim @dkearns
|
||||
runtime/ftplugin/bst.vim @tpope
|
||||
runtime/ftplugin/cfg.vim @chrisbra
|
||||
runtime/ftplugin/chatito.vim @ObserverOfTime
|
||||
runtime/ftplugin/clojure.vim @axvr
|
||||
runtime/ftplugin/cs.vim @nickspoons
|
||||
runtime/ftplugin/csh.vim @dkearns
|
||||
@@ -116,9 +119,9 @@ runtime/ftplugin/desktop.vim @e-kwsm
|
||||
runtime/ftplugin/dosbatch.vim @mrdubya
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
runtime/ftplugin/elixir.vim @mhanberg
|
||||
runtime/ftplugin/expect.vim @dkearns
|
||||
runtime/ftplugin/erlang.vim @hcs42
|
||||
runtime/ftplugin/eruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/expect.vim @dkearns
|
||||
runtime/ftplugin/fennel.vim @gpanders
|
||||
runtime/ftplugin/fetchmail.vim @dkearns
|
||||
runtime/ftplugin/fpcmake.vim @dkearns
|
||||
@@ -134,9 +137,11 @@ runtime/ftplugin/gitconfig.vim @tpope
|
||||
runtime/ftplugin/gitignore.vim @ObserverOfTime
|
||||
runtime/ftplugin/gitrebase.vim @tpope
|
||||
runtime/ftplugin/gitsendemail.vim @tpope
|
||||
runtime/ftplugin/gyp.vim @ObserverOfTime
|
||||
runtime/ftplugin/go.vim @dbarnett
|
||||
runtime/ftplugin/gprof.vim @dpelle
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hare.vim @rsaihe
|
||||
runtime/ftplugin/hgcommit.vim @k-takata
|
||||
runtime/ftplugin/html.vim @dkearns
|
||||
runtime/ftplugin/i3config.vim @hiqua
|
||||
@@ -162,11 +167,13 @@ runtime/ftplugin/nginx.vim @chr4
|
||||
runtime/ftplugin/nroff.vim @a-vrma
|
||||
runtime/ftplugin/nsis.vim @k-takata
|
||||
runtime/ftplugin/octave.vim @dkearns
|
||||
runtime/ftplugin/openvpn.vim @ObserverOfTime
|
||||
runtime/ftplugin/pascal.vim @dkearns
|
||||
runtime/ftplugin/pbtxt.vim @lakshayg
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/perl.vim @petdance @dkearns
|
||||
runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
runtime/ftplugin/ps1xml.vim @heaths
|
||||
@@ -188,6 +195,7 @@ runtime/ftplugin/sdoc.vim @gpanders
|
||||
runtime/ftplugin/sh.vim @dkearns
|
||||
runtime/ftplugin/solution.vim @dkearns
|
||||
runtime/ftplugin/spec.vim @ignatenkobrain
|
||||
runtime/ftplugin/ssa.vim @ObserverOfTime
|
||||
runtime/ftplugin/swayconfig.vim @jamespeapen
|
||||
runtime/ftplugin/systemverilog.vim @Kocha
|
||||
runtime/ftplugin/tap.vim @petdance
|
||||
@@ -208,6 +216,7 @@ runtime/ftplugin/zsh.vim @chrisbra
|
||||
runtime/indent/basic.vim @dkearns
|
||||
runtime/indent/bst.vim @tpope
|
||||
runtime/indent/cdl.vim @dkearns
|
||||
runtime/indent/chatito.vim @ObserverOfTime
|
||||
runtime/indent/clojure.vim @axvr
|
||||
runtime/indent/config.vim @dkearns
|
||||
runtime/indent/cs.vim @nickspoons
|
||||
@@ -229,7 +238,9 @@ runtime/indent/gdscript.vim @habamax
|
||||
runtime/indent/gitconfig.vim @tpope
|
||||
runtime/indent/gitolite.vim @sitaramc
|
||||
runtime/indent/go.vim @dbarnett
|
||||
runtime/indent/gyp.vim @ObserverOfTime
|
||||
runtime/indent/haml.vim @tpope
|
||||
runtime/indent/hare.vim @rsaihe
|
||||
runtime/indent/idlang.vim @dkearns
|
||||
runtime/indent/j.vim @glts
|
||||
runtime/indent/java.vim @xuhdev
|
||||
@@ -285,6 +296,7 @@ runtime/plugin/netrwPlugin.vim @cecamp
|
||||
runtime/plugin/tarPlugin.vim @cecamp
|
||||
runtime/plugin/vimballPlugin.vim @cecamp
|
||||
runtime/plugin/zipPlugin.vim @cecamp
|
||||
runtime/plugin/manpager.vim @Konfekt
|
||||
runtime/syntax/abaqus.vim @costerwi
|
||||
runtime/syntax/aidl.vim @dpelle
|
||||
runtime/syntax/amiga.vim @cecamp
|
||||
@@ -303,6 +315,7 @@ runtime/syntax/cabal.vim @coot
|
||||
runtime/syntax/cabalconfig.vim @coot
|
||||
runtime/syntax/cabalproject.vim @coot
|
||||
runtime/syntax/cf.vim @ernstvanderlinden
|
||||
runtime/syntax/chatito.vim @ObserverOfTime
|
||||
runtime/syntax/clojure.vim @axvr
|
||||
runtime/syntax/cs.vim @nickspoons
|
||||
runtime/syntax/csh.vim @cecamp
|
||||
@@ -345,9 +358,12 @@ runtime/syntax/go.vim @bhcleek
|
||||
runtime/syntax/godoc.vim @dbarnett
|
||||
runtime/syntax/gprof.vim @dpelle
|
||||
runtime/syntax/groff.vim @jmarshall
|
||||
runtime/syntax/gyp.vim @ObserverOfTime
|
||||
runtime/syntax/haml.vim @tpope
|
||||
runtime/syntax/hare.vim @rsaihe
|
||||
runtime/syntax/haskell.vim @coot
|
||||
runtime/syntax/hgcommit.vim @k-takata
|
||||
runtime/syntax/hollywood.vim @sodero
|
||||
runtime/syntax/html.vim @dkearns
|
||||
runtime/syntax/i3config.vim @hiqua
|
||||
runtime/syntax/icon.vim @dkearns
|
||||
@@ -380,6 +396,7 @@ runtime/syntax/nginx.vim @chr4
|
||||
runtime/syntax/ninja.vim @nico
|
||||
runtime/syntax/nroff.vim @jmarshall
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||
runtime/syntax/pascal.vim @dkearns
|
||||
runtime/syntax/pbtxt.vim @lakshayg
|
||||
runtime/syntax/pdf.vim @tpope
|
||||
@@ -387,6 +404,7 @@ runtime/syntax/perl.vim @petdance
|
||||
runtime/syntax/php.vim @TysonAndre
|
||||
runtime/syntax/plsql.vim @lee-lindley
|
||||
runtime/syntax/pod.vim @petdance
|
||||
runtime/syntax/poefilter.vim @ObserverOfTime
|
||||
runtime/syntax/postscr.vim @mrdubya
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
runtime/syntax/prolog.vim @XVilka
|
||||
@@ -414,12 +432,14 @@ runtime/syntax/sass.vim @tpope
|
||||
runtime/syntax/scala.vim @derekwyatt
|
||||
runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sdoc.vim @gpanders
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/sh.vim @cecamp
|
||||
runtime/syntax/sm.vim @cecamp
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
runtime/syntax/srt.vim @ObserverOfTime
|
||||
runtime/syntax/sqloracle.vim @chrisbra
|
||||
runtime/syntax/squirrel.vim @zenmatic
|
||||
runtime/syntax/srt.vim @ObserverOfTime
|
||||
runtime/syntax/ssa.vim @ObserverOfTime
|
||||
runtime/syntax/sshconfig.vim @Jakuje
|
||||
runtime/syntax/sshdconfig.vim @Jakuje
|
||||
runtime/syntax/sudoers.vim @e-kwsm
|
||||
|
||||
43
.github/workflows/ci.yml
vendored
43
.github/workflows/ci.yml
vendored
@@ -33,7 +33,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
features: [tiny, small, normal, huge]
|
||||
features: [tiny, normal, huge]
|
||||
compiler: [clang, gcc]
|
||||
extra: [none]
|
||||
include:
|
||||
@@ -125,7 +125,7 @@ jobs:
|
||||
echo "TMPDIR=${{ runner.temp }}"
|
||||
|
||||
case "${{ matrix.features }}" in
|
||||
tiny|small)
|
||||
tiny)
|
||||
echo "TEST=testtiny"
|
||||
if ${{ contains(matrix.extra, 'nogui') }}; then
|
||||
echo "CONFOPT=--disable-gui"
|
||||
@@ -174,22 +174,23 @@ jobs:
|
||||
sudo usermod -a -G audio "${USER}"
|
||||
sudo bash ci/setup-xvfb.sh
|
||||
|
||||
- name: Cache snd-dummy
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ env.SND_DUMMY_DIR }}
|
||||
key: linux-${{ env.LINUX_VERSION }}-snd-dummy
|
||||
# FIXME: Temporarily disabled because of build errors
|
||||
#- name: Cache snd-dummy
|
||||
# uses: actions/cache@v3
|
||||
# with:
|
||||
# path: ${{ env.SND_DUMMY_DIR }}
|
||||
# key: linux-${{ env.LINUX_VERSION }}-snd-dummy
|
||||
|
||||
- name: Set up snd-dummy
|
||||
run: |
|
||||
if [[ ! -e ${SND_DUMMY_DIR}/snd-dummy.ko ]]; then
|
||||
bash ci/build-snd-dummy.sh
|
||||
fi
|
||||
cd "${SND_DUMMY_DIR}"
|
||||
sudo insmod soundcore.ko
|
||||
sudo insmod snd.ko
|
||||
sudo insmod snd-pcm.ko
|
||||
sudo insmod snd-dummy.ko
|
||||
#- name: Set up snd-dummy
|
||||
# run: |
|
||||
# if [[ ! -e ${SND_DUMMY_DIR}/snd-dummy.ko ]]; then
|
||||
# bash ci/build-snd-dummy.sh
|
||||
# fi
|
||||
# cd "${SND_DUMMY_DIR}"
|
||||
# sudo insmod soundcore.ko
|
||||
# sudo insmod snd.ko
|
||||
# sudo insmod snd-pcm.ko
|
||||
# sudo insmod snd-dummy.ko
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(matrix.extra, 'unittests')
|
||||
@@ -304,6 +305,7 @@ jobs:
|
||||
run: |
|
||||
brew install lua
|
||||
echo "LUA_PREFIX=/usr/local" >> $GITHUB_ENV
|
||||
brew uninstall perl
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
@@ -400,6 +402,9 @@ jobs:
|
||||
id: init
|
||||
shell: bash
|
||||
run: |
|
||||
# Show Windows version
|
||||
cmd /c ver
|
||||
|
||||
git config --global core.autocrlf input
|
||||
|
||||
if [ "${{ matrix.arch }}" = "x64" ]; then
|
||||
@@ -421,9 +426,9 @@ jobs:
|
||||
echo "VCVARSALL=$(vswhere -products \* -latest -property installationPath)\\VC\\Auxiliary\\Build\\vcvarsall.bat" >> $GITHUB_ENV
|
||||
if [ "${{ matrix.features }}" != "TINY" ]; then
|
||||
if [ "${{ matrix.arch }}" = "x86" ]; then
|
||||
choco install python2 --forcex86
|
||||
choco install python2 --no-progress --forcex86
|
||||
else
|
||||
choco install python2
|
||||
choco install python2 --no-progress
|
||||
fi
|
||||
fi
|
||||
python3_dir=$(cat "/proc/$cygreg/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}$pyreg/InstallPath/@")
|
||||
|
||||
11
.github/workflows/coverity.yml
vendored
11
.github/workflows/coverity.yml
vendored
@@ -15,20 +15,22 @@ jobs:
|
||||
CC: gcc
|
||||
CFLAGS: -Wno-deprecated-declarations
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
if: env.TOKEN
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download Coverity
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=vim" -O coverity_tool.tgz
|
||||
mkdir cov-scan
|
||||
tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
|
||||
env:
|
||||
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||
|
||||
- name: Install packages
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y \
|
||||
autoconf \
|
||||
@@ -47,6 +49,7 @@ jobs:
|
||||
libsodium-dev
|
||||
|
||||
- name: Set up environment
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
|
||||
(
|
||||
@@ -55,6 +58,7 @@ jobs:
|
||||
) >> $GITHUB_ENV
|
||||
|
||||
- name: Configure
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing
|
||||
# Append various warning flags to CFLAGS.
|
||||
@@ -62,10 +66,12 @@ jobs:
|
||||
sed -i -f ci/config.mk.${CC}.sed src/auto/config.mk
|
||||
|
||||
- name: Build/scan vim
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
cov-build --dir cov-int make -j${NPROC}
|
||||
|
||||
- name: Submit results
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
tar zcf cov-scan.tgz cov-int
|
||||
curl --form token=$TOKEN \
|
||||
@@ -75,5 +81,4 @@ jobs:
|
||||
--form description="Automatic GHA scan" \
|
||||
'https://scan.coverity.com/builds?project=vim'
|
||||
env:
|
||||
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||
EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -44,6 +44,8 @@ gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
nsis/icons/*
|
||||
/vim90/
|
||||
.vscode/
|
||||
|
||||
# NetBeans
|
||||
nbproject/*
|
||||
@@ -83,6 +85,7 @@ src/testdir/messages
|
||||
src/testdir/viminfo
|
||||
src/testdir/opt_test.vim
|
||||
src/testdir/failed
|
||||
src/testdir/starttime
|
||||
runtime/indent/testdir/*.out
|
||||
runtime/indent/testdir/*.fail
|
||||
src/memfile_test
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# Format of this file: https://lgtm.com/help/lgtm/lgtm.yml-configuration-file
|
||||
path_classifiers:
|
||||
documentation:
|
||||
- runtime/tutor/tutor*
|
||||
35
Filelist
35
Filelist
@@ -12,9 +12,9 @@ SRC_ALL = \
|
||||
.github/workflows/ci.yml \
|
||||
.github/workflows/codeql-analysis.yml \
|
||||
.github/workflows/coverity.yml \
|
||||
.github/dependabot.yml \
|
||||
.gitignore \
|
||||
.hgignore \
|
||||
.lgtm.yml \
|
||||
.appveyor.yml \
|
||||
.codecov.yml \
|
||||
ci/appveyor.bat \
|
||||
@@ -87,10 +87,11 @@ SRC_ALL = \
|
||||
src/job.c \
|
||||
src/json.c \
|
||||
src/json_test.c \
|
||||
src/keymap.h \
|
||||
src/kword_test.c \
|
||||
src/list.c \
|
||||
src/locale.c \
|
||||
src/keymap.h \
|
||||
src/logfile.c \
|
||||
src/macros.h \
|
||||
src/main.c \
|
||||
src/map.c \
|
||||
@@ -161,6 +162,7 @@ SRC_ALL = \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/vim9.h \
|
||||
src/vim9class.c \
|
||||
src/vim9cmds.c \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
@@ -177,6 +179,8 @@ SRC_ALL = \
|
||||
src/testdir/Make_all.mak \
|
||||
src/testdir/*.in \
|
||||
src/testdir/*.py \
|
||||
src/testdir/keycode_check.vim \
|
||||
src/testdir/keycode_check.json \
|
||||
src/testdir/lsan-suppress.txt \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/testluaplugin/lua/testluaplugin/*.lua \
|
||||
@@ -271,6 +275,7 @@ SRC_ALL = \
|
||||
src/proto/json.pro \
|
||||
src/proto/list.pro \
|
||||
src/proto/locale.pro \
|
||||
src/proto/logfile.pro \
|
||||
src/proto/main.pro \
|
||||
src/proto/map.pro \
|
||||
src/proto/mark.pro \
|
||||
@@ -322,6 +327,7 @@ SRC_ALL = \
|
||||
src/proto/usercmd.pro \
|
||||
src/proto/userfunc.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/vim9class.pro \
|
||||
src/proto/vim9cmds.pro \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
@@ -394,6 +400,7 @@ SRC_ALL = \
|
||||
src/libvterm/t/66screen_extent.test \
|
||||
src/libvterm/t/67screen_dbl_wh.test \
|
||||
src/libvterm/t/68screen_termprops.test \
|
||||
src/libvterm/t/69screen_reflow.test \
|
||||
src/libvterm/t/90vttest_01-movement-1.test \
|
||||
src/libvterm/t/90vttest_01-movement-2.test \
|
||||
src/libvterm/t/90vttest_01-movement-3.test \
|
||||
@@ -590,30 +597,9 @@ SRC_DOS = \
|
||||
nsis/README.txt \
|
||||
nsis/lang/*.nsi \
|
||||
uninstall.txt \
|
||||
src/VisVim/Commands.cpp \
|
||||
src/VisVim/Commands.h \
|
||||
src/VisVim/DSAddIn.cpp \
|
||||
src/VisVim/DSAddIn.h \
|
||||
src/VisVim/OleAut.cpp \
|
||||
src/VisVim/OleAut.h \
|
||||
src/VisVim/README_VisVim.txt \
|
||||
src/VisVim/Reg.cpp \
|
||||
src/VisVim/Register.bat \
|
||||
src/VisVim/Resource.h \
|
||||
src/VisVim/StdAfx.cpp \
|
||||
src/VisVim/StdAfx.h \
|
||||
src/VisVim/UnRegist.bat \
|
||||
src/VisVim/VisVim.cpp \
|
||||
src/VisVim/VisVim.def \
|
||||
src/VisVim/VisVim.mak \
|
||||
src/VisVim/VisVim.h \
|
||||
src/VisVim/VisVim.odl \
|
||||
src/VisVim/VisVim.rc \
|
||||
src/VisVim/VsReadMe.txt \
|
||||
|
||||
# source files for DOS without CR/LF translation (also in the extra archive)
|
||||
SRC_DOS_BIN = \
|
||||
src/VisVim/Res/*.bmp \
|
||||
src/tearoff.bmp \
|
||||
src/tools.bmp \
|
||||
src/vim*.ico \
|
||||
@@ -662,6 +648,7 @@ SRC_MAC = \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.m \
|
||||
src/proto/os_mac_conv.pro \
|
||||
src/proto/os_macosx.pro \
|
||||
|
||||
# source files for VMS (in the extra archive)
|
||||
SRC_VMS = \
|
||||
@@ -796,6 +783,7 @@ RT_SCRIPTS = \
|
||||
runtime/autoload/README.txt \
|
||||
runtime/autoload/dist/*.vim \
|
||||
runtime/autoload/xml/*.vim \
|
||||
runtime/autoload/zig/*.vim \
|
||||
runtime/colors/*.vim \
|
||||
runtime/colors/README.txt \
|
||||
runtime/colors/lists/*.vim \
|
||||
@@ -945,7 +933,6 @@ EXTRA = \
|
||||
$(RT_EXTRA) \
|
||||
$(SRC_EXTRA) \
|
||||
README_extra.txt \
|
||||
src/VisVim/VisVim.dll \
|
||||
runtime/vimlogo.xpm \
|
||||
|
||||
# files in READMEdir that are included from the top dir
|
||||
|
||||
4
Makefile
4
Makefile
@@ -198,8 +198,6 @@ MINOR = 0
|
||||
# - copy these files (get them from a binary archive or build them):
|
||||
# gvimext.dll in src/GvimExt
|
||||
# gvimext64.dll in src/GvimExt
|
||||
# VisVim.dll in src/VisVim
|
||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||
# gvimext64.dll can be obtained from:
|
||||
# https://github.com/vim/vim-win32-installer/releases
|
||||
# It is part of gvim_9.0.*_x64.zip as vim/vim90/GvimExt/gvimext64.dll.
|
||||
@@ -554,8 +552,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
||||
cp README_ole.txt dist/vim/$(VIMRTDIR)
|
||||
cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll
|
||||
cp src/VisVim/README_VisVim.txt dist/vim/$(VIMRTDIR)
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
|
||||
cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
|
||||
|
||||
|
||||
@@ -29,9 +29,6 @@ src/Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
|
||||
|
||||
src/if_ole.* OLE automation interface, for MS Windows 95 and NT.
|
||||
|
||||
src/VisVim/* Integration of Win32 GUI with MS Visual Developer
|
||||
Studio.
|
||||
|
||||
src/GvimExt/* DLL for the "Edit with Vim" context menu entry
|
||||
|
||||
nsis/* NSIS script to build the self-installing MS-Windows exe
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
README_ole.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This archive contains gvim.exe with OLE interface and VisVim.
|
||||
This archive contains gvim.exe with OLE interface.
|
||||
This version of gvim.exe can also load a number of interface dynamically (you
|
||||
can optionally install the .dll files for each interface).
|
||||
It is only for MS-Windows 95/98/ME/NT/2000/XP.
|
||||
@@ -15,6 +15,3 @@ Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
|
||||
|
||||
For further information, type this inside Vim:
|
||||
:help if_ole
|
||||
|
||||
Furthermore, this archive contains VISVIM.DLL. It can be used to integrate
|
||||
the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt.
|
||||
|
||||
@@ -6,7 +6,6 @@ These files are in the runtime archive (vim90rt.zip).
|
||||
|
||||
|
||||
The DOS source archive contains the files needed to compile Vim on MS-Windows.
|
||||
It is packed for MS-Windows systems, with CR-LF. It also includes the VisVim
|
||||
sources.
|
||||
It is packed for MS-Windows systems, with CR-LF.
|
||||
|
||||
See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC.
|
||||
|
||||
@@ -27,23 +27,20 @@ To build the installable .exe:
|
||||
64-bit: src/GvimExt/gvimext64.dll
|
||||
32-bit: src/GvimExt/gvimext.dll
|
||||
|
||||
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
|
||||
archive).
|
||||
|
||||
5. Get a "diff.exe" program. If you skip this the built-in diff will always
|
||||
4. Get a "diff.exe" program. If you skip this the built-in diff will always
|
||||
be used (which is fine for most users). If you do have your own
|
||||
"diff.exe" put it in the "../.." directory (above the "vim82" directory,
|
||||
it's the same for all Vim versions).
|
||||
You can find one in previous Vim versions or in this archive:
|
||||
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
||||
|
||||
6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
|
||||
5 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
|
||||
directory). This is required for the terminal window.
|
||||
|
||||
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
||||
6. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
||||
to do this on Unix. Make sure the file is in DOS file format!
|
||||
|
||||
8. Get gettext and iconv DLLs from the following site:
|
||||
7. Get gettext and iconv DLLs from the following site:
|
||||
https://github.com/mlocati/gettext-iconv-windows/releases
|
||||
Both 64- and 32-bit versions are needed.
|
||||
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
|
||||
|
||||
@@ -36,9 +36,6 @@ Unicode true
|
||||
# Comment the next line if you do not want to add Native Language Support
|
||||
!define HAVE_NLS
|
||||
|
||||
# Uncomment the next line if you want to include VisVim extension:
|
||||
#!define HAVE_VIS_VIM
|
||||
|
||||
# Comment the following line to create an English-only installer:
|
||||
!define HAVE_MULTI_LANG
|
||||
|
||||
@@ -55,9 +52,6 @@ Unicode true
|
||||
# ----------- No configurable settings below this line -----------
|
||||
|
||||
!include "Library.nsh" # For DLL install
|
||||
!ifdef HAVE_VIS_VIM
|
||||
!include "UpgradeDLL.nsh" # for VisVim.dll
|
||||
!endif
|
||||
!include "LogicLib.nsh"
|
||||
!include "MUI2.nsh"
|
||||
!include "nsDialogs.nsh"
|
||||
@@ -536,17 +530,6 @@ SectionGroup $(str_group_plugin) id_group_plugin
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
##########################################################
|
||||
!ifdef HAVE_VIS_VIM
|
||||
Section "$(str_section_vis_vim)" id_section_visvim
|
||||
SectionIn 3
|
||||
|
||||
SetOutPath $0
|
||||
!insertmacro UpgradeDLL "${VIMSRC}\VisVim\VisVim.dll" "$0\VisVim.dll" "$0"
|
||||
File ${VIMSRC}\VisVim\README_VisVim.txt
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
##########################################################
|
||||
!ifdef HAVE_NLS
|
||||
Section "$(str_section_nls)" id_section_nls
|
||||
@@ -634,12 +617,6 @@ Section -post
|
||||
SectionGetSize ${id_section_editwith} $4
|
||||
IntOp $3 $3 + $4
|
||||
${EndIf}
|
||||
!ifdef HAVE_VIS_VIM
|
||||
${If} ${SectionIsSelected} ${id_section_visvim}
|
||||
SectionGetSize ${id_section_visvim} $4
|
||||
IntOp $3 $3 + $4
|
||||
${EndIf}
|
||||
!endif
|
||||
!ifdef HAVE_NLS
|
||||
${If} ${SectionIsSelected} ${id_section_nls}
|
||||
SectionGetSize ${id_section_nls} $4
|
||||
@@ -670,9 +647,6 @@ Section -post
|
||||
!insertmacro SaveSectionSelection ${id_section_vimrc} "select_vimrc"
|
||||
!insertmacro SaveSectionSelection ${id_section_pluginhome} "select_pluginhome"
|
||||
!insertmacro SaveSectionSelection ${id_section_pluginvim} "select_pluginvim"
|
||||
!ifdef HAVE_VIS_VIM
|
||||
!insertmacro SaveSectionSelection ${id_section_visvim} "select_visvim"
|
||||
!endif
|
||||
!ifdef HAVE_NLS
|
||||
!insertmacro SaveSectionSelection ${id_section_nls} "select_nls"
|
||||
!endif
|
||||
@@ -744,9 +718,6 @@ Function .onInit
|
||||
!insertmacro LoadSectionSelection ${id_section_vimrc} "select_vimrc"
|
||||
!insertmacro LoadSectionSelection ${id_section_pluginhome} "select_pluginhome"
|
||||
!insertmacro LoadSectionSelection ${id_section_pluginvim} "select_pluginvim"
|
||||
!ifdef HAVE_VIS_VIM
|
||||
!insertmacro LoadSectionSelection ${id_section_visvim} "select_visvim"
|
||||
!endif
|
||||
!ifdef HAVE_NLS
|
||||
!insertmacro LoadSectionSelection ${id_section_nls} "select_nls"
|
||||
!endif
|
||||
@@ -921,9 +892,6 @@ FunctionEnd
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${id_group_plugin} $(str_desc_plugin)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginhome} $(str_desc_plugin_home)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginvim} $(str_desc_plugin_vim)
|
||||
!ifdef HAVE_VIS_VIM
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${id_section_visvim} $(str_desc_vis_vim)
|
||||
!endif
|
||||
!ifdef HAVE_NLS
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${id_section_nls} $(str_desc_nls)
|
||||
!endif
|
||||
@@ -947,13 +915,6 @@ Section "un.$(str_unsection_register)" id_unsection_register
|
||||
# created. Thus the "vim61" directory is included in it.
|
||||
StrCpy $0 "$INSTDIR"
|
||||
|
||||
!ifdef HAVE_VIS_VIM
|
||||
# If VisVim was installed, unregister the DLL.
|
||||
${If} ${FileExists} "$0\VisVim.dll"
|
||||
ExecWait "regsvr32.exe /u /s $0\VisVim.dll"
|
||||
${EndIf}
|
||||
!endif
|
||||
|
||||
# delete the context menu entry and batch files
|
||||
DetailPrint "$(str_msg_unregistering)"
|
||||
nsExec::Exec "$0\uninstall.exe -nsis"
|
||||
@@ -1046,9 +1007,6 @@ Section "un.$(str_unsection_exe)" id_unsection_exe
|
||||
RMDir /r $0\syntax
|
||||
RMDir /r $0\tools
|
||||
RMDir /r $0\tutor
|
||||
!ifdef HAVE_VIS_VIM
|
||||
RMDir /r $0\VisVim
|
||||
!endif
|
||||
RMDir /r $0\lang
|
||||
RMDir /r $0\keymap
|
||||
Delete $0\*.exe
|
||||
|
||||
@@ -79,9 +79,6 @@ LangString str_desc_plugin_home ${LANG_DANISH} "Opret plugin-mapper i HO
|
||||
LangString str_section_plugin_vim ${LANG_DANISH} "Delte"
|
||||
LangString str_desc_plugin_vim ${LANG_DANISH} "Opret plugin-mapper i Vim-installationsmappe, det bruges af alle på systemet."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_DANISH} "VisVim-udvidelser"
|
||||
LangString str_desc_vis_vim ${LANG_DANISH} "VisVim-udvidelser til integrering i Microsoft Visual Studio."
|
||||
|
||||
LangString str_section_nls ${LANG_DANISH} "Understøttelse af modersmål"
|
||||
LangString str_desc_nls ${LANG_DANISH} "Installer filer til understøttelse af modersmål."
|
||||
|
||||
|
||||
@@ -123,11 +123,6 @@ LangString str_desc_plugin_vim ${LANG_DUTCH} \
|
||||
"Creëer plugin mappen in Vim installatie map, deze worden gebruikt \
|
||||
voor iedereen op het systeem."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_DUTCH} \
|
||||
"VisVim extensie"
|
||||
LangString str_desc_vis_vim ${LANG_DUTCH} \
|
||||
"VisVim extensie voor Microsoft Visual Studio integratie."
|
||||
|
||||
LangString str_section_nls ${LANG_DUTCH} \
|
||||
"Ondersteuning voor andere talen"
|
||||
LangString str_desc_nls ${LANG_DUTCH} \
|
||||
|
||||
@@ -121,11 +121,6 @@ LangString str_desc_plugin_vim ${LANG_ENGLISH} \
|
||||
"Create plugin directories in Vim install directory, it is used for \
|
||||
everybody on the system."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_ENGLISH} \
|
||||
"VisVim Extension"
|
||||
LangString str_desc_vis_vim ${LANG_ENGLISH} \
|
||||
"VisVim Extension for Microsoft Visual Studio integration."
|
||||
|
||||
LangString str_section_nls ${LANG_ENGLISH} \
|
||||
"Native Language Support"
|
||||
LangString str_desc_nls ${LANG_ENGLISH} \
|
||||
|
||||
@@ -122,11 +122,6 @@ LangString str_desc_plugin_vim ${LANG_GERMAN} \
|
||||
"Plugin-Verzeichnisse im Vim-Installationsverzeichnis erstellen. Diese werden \
|
||||
für alle Benutzer dieses Systems genutzt."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_GERMAN} \
|
||||
"VisVim-Erweiterung"
|
||||
LangString str_desc_vis_vim ${LANG_GERMAN} \
|
||||
"VisVim-Erweiterung zur Integration in Microsoft Visual Studio."
|
||||
|
||||
LangString str_section_nls ${LANG_GERMAN} \
|
||||
"Unterstützung für andere Sprachen"
|
||||
LangString str_desc_nls ${LANG_GERMAN} \
|
||||
|
||||
@@ -123,11 +123,6 @@ LangString str_desc_plugin_vim ${LANG_ITALIAN} \
|
||||
"Crea directory per plugin nella directory di installazione di Vim \
|
||||
per uso da parte di tutti gli utenti di questo sistema."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_ITALIAN} \
|
||||
"Estensione VisVim"
|
||||
LangString str_desc_vis_vim ${LANG_ITALIAN} \
|
||||
"Estensione VisVim per integrazione con Microsoft Visual Studio."
|
||||
|
||||
LangString str_section_nls ${LANG_ITALIAN} \
|
||||
"Supporto Multilingue (NLS)"
|
||||
LangString str_desc_nls ${LANG_ITALIAN} \
|
||||
|
||||
@@ -128,11 +128,6 @@ LangString str_section_plugin_vim ${LANG_JAPANESE} \
|
||||
LangString str_desc_plugin_vim ${LANG_JAPANESE} \
|
||||
"プラグインディレクトリを Vim のインストールディレクトリに作成します。システムの全員で共有されます。"
|
||||
|
||||
LangString str_section_vis_vim ${LANG_JAPANESE} \
|
||||
"VisVim 拡張"
|
||||
LangString str_desc_vis_vim ${LANG_JAPANESE} \
|
||||
"Microsoft Visual Studio 統合用の VisVim 拡張。"
|
||||
|
||||
LangString str_section_nls ${LANG_JAPANESE} \
|
||||
"多言語サポート"
|
||||
LangString str_desc_nls ${LANG_JAPANESE} \
|
||||
|
||||
@@ -125,11 +125,6 @@ LangString str_desc_plugin_vim ${LANG_RUSSIAN} \
|
||||
Модули в этом каталоге будут доступны для любого пользователя \
|
||||
зарегистрировавшегося в системе"
|
||||
|
||||
LangString str_section_vis_vim ${LANG_RUSSIAN} \
|
||||
"Подключаемый модуль VisVim"
|
||||
LangString str_desc_vis_vim ${LANG_RUSSIAN} \
|
||||
"Подключаемый модуль VisVim используется для интеграции с Microsoft Visual Studio"
|
||||
|
||||
LangString str_section_nls ${LANG_RUSSIAN} \
|
||||
"Поддержка региональных языков"
|
||||
LangString str_desc_nls ${LANG_RUSSIAN} \
|
||||
|
||||
@@ -121,11 +121,6 @@ LangString str_desc_plugin_vim ${LANG_SERBIAN} \
|
||||
"Креира директоријуме додатака у Vim инсталационом директоријуму, користе их сви \
|
||||
на систему."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_SERBIAN} \
|
||||
"VisVim проширење"
|
||||
LangString str_desc_vis_vim ${LANG_SERBIAN} \
|
||||
"VisVim проширење за Microsoft Visual Studio интеграцију."
|
||||
|
||||
LangString str_section_nls ${LANG_SERBIAN} \
|
||||
"Подршка за домаћи језик"
|
||||
LangString str_desc_nls ${LANG_SERBIAN} \
|
||||
|
||||
@@ -120,11 +120,6 @@ LangString str_desc_plugin_vim ${LANG_SIMPCHINESE} \
|
||||
"在 Vim 安装目录下创建(空的)插件目录结构,系统上所有用户都能使用安装在\
|
||||
该目录下的扩展插件。"
|
||||
|
||||
LangString str_section_vis_vim ${LANG_SIMPCHINESE} \
|
||||
"VisVim 插件"
|
||||
LangString str_desc_vis_vim ${LANG_SIMPCHINESE} \
|
||||
"安装与 Visual Studio 集成的 VisVim 插件。"
|
||||
|
||||
LangString str_section_nls ${LANG_SIMPCHINESE} \
|
||||
"安装多语言支持"
|
||||
LangString str_desc_nls ${LANG_SIMPCHINESE} \
|
||||
|
||||
@@ -121,11 +121,6 @@ LangString str_desc_plugin_vim ${LANG_TRADCHINESE} \
|
||||
"在 Vim 安裝資料夾下建立(空的)插件資料夾結構,電腦上所有用戶都能使用安裝\
|
||||
在該資料夾里的擴展插件。"
|
||||
|
||||
LangString str_section_vis_vim ${LANG_TRADCHINESE} \
|
||||
"安裝 VisVim 插件"
|
||||
LangString str_desc_vis_vim ${LANG_TRADCHINESE} \
|
||||
"VisVim 是用于與微軟 Microsoft Visual Studio 軟體進行整合的插件。"
|
||||
|
||||
LangString str_section_nls ${LANG_TRADCHINESE} \
|
||||
"安裝本地語言支持"
|
||||
LangString str_desc_nls ${LANG_TRADCHINESE} \
|
||||
|
||||
@@ -90,11 +90,6 @@ LangString str_desc_plugin_vim ${LANG_TURKISH} \
|
||||
"Eklenti dizinlerini Vim yükleme dizininde oluşturur. Bu eklentilerden \
|
||||
bilgisayarın tüm kullanıcıları yararlanabilir."
|
||||
|
||||
LangString str_section_vis_vim ${LANG_TURKISH} \
|
||||
"VisVim eklentisi"
|
||||
LangString str_desc_vis_vim ${LANG_TURKISH} \
|
||||
"Microsoft Visual Studio entegrasyonu için VisVim eklentisi"
|
||||
|
||||
LangString str_section_nls ${LANG_TURKISH} \
|
||||
"Ek dil desteği"
|
||||
LangString str_desc_nls ${LANG_TURKISH} \
|
||||
|
||||
@@ -3,13 +3,18 @@ vim9script
|
||||
# Language: ConTeXt typesetting engine
|
||||
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
|
||||
# Latest Revision: 2022 Aug 12
|
||||
# Latest Revision: 2022 Sep 19
|
||||
|
||||
# Typesetting {{{
|
||||
import autoload './typeset.vim'
|
||||
|
||||
export def ConTeXtCmd(path: string): list<string>
|
||||
return ['mtxrun', '--script', 'context', '--nonstopmode', '--autogenerate', path]
|
||||
var cmd = ['mtxrun', '--script', 'context', '--nonstopmode', '--autogenerate']
|
||||
if !empty(get(g:, 'context_extra_options', ''))
|
||||
cmd += g:context_extra_options
|
||||
endif
|
||||
cmd->add(path)
|
||||
return cmd
|
||||
enddef
|
||||
|
||||
export def Typeset(bufname: string, env = {}, Cmd = ConTeXtCmd): bool
|
||||
|
||||
20
runtime/autoload/dist/ft.vim
vendored
20
runtime/autoload/dist/ft.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2022 Apr 13
|
||||
# Last Change: 2022 Nov 24
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
# faster.
|
||||
@@ -145,7 +145,7 @@ export def FTcls()
|
||||
return
|
||||
endif
|
||||
|
||||
if getline(1) =~ '^%'
|
||||
if getline(1) =~ '^\v%(\%|\\)'
|
||||
setf tex
|
||||
elseif getline(1)[0] == '#' && getline(1) =~ 'rexx'
|
||||
setf rexx
|
||||
@@ -712,7 +712,8 @@ export def SetFileTypeSH(name: string)
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif name =~ '\<sh\>'
|
||||
elseif name =~ '\<sh\>' || name =~ '\<dash\>'
|
||||
# Ubuntu links "sh" to "dash", thus it is expected to work the same way
|
||||
b:is_sh = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
@@ -1087,5 +1088,18 @@ export def FTdat()
|
||||
endif
|
||||
enddef
|
||||
|
||||
export def FTlsl()
|
||||
if exists("g:filetype_lsl")
|
||||
exe "setf " .. g:filetype_lsl
|
||||
endif
|
||||
|
||||
var line = getline(nextnonblank(1))
|
||||
if line =~ '^\s*%' || line =~# ':\s*trait\s*$'
|
||||
setf larch
|
||||
else
|
||||
setf lsl
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
# defcompile
|
||||
|
||||
6
runtime/autoload/dist/script.vim
vendored
6
runtime/autoload/dist/script.vim
vendored
@@ -4,7 +4,7 @@ vim9script
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2022 Feb 13
|
||||
# Last Change: 2022 Nov 24
|
||||
|
||||
export def DetectFiletype()
|
||||
var line1 = getline(1)
|
||||
@@ -53,8 +53,8 @@ def DetectFromHashBang(firstline: string)
|
||||
name = 'wish'
|
||||
endif
|
||||
|
||||
# Bourne-like shell scripts: bash bash2 ksh ksh93 sh
|
||||
if name =~ '^\(bash\d*\|\|ksh\d*\|sh\)\>'
|
||||
# Bourne-like shell scripts: bash bash2 dash ksh ksh93 sh
|
||||
if name =~ '^\(bash\d*\|dash\|ksh\d*\|sh\)\>'
|
||||
call dist#ft#SetFileTypeSH(line1)
|
||||
|
||||
# csh scripts
|
||||
|
||||
1205
runtime/autoload/dist/vimindent.vim
vendored
Normal file
1205
runtime/autoload/dist/vimindent.vim
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1791,8 +1791,10 @@ fun! s:NetrwOptionsRestore(vt)
|
||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
if !exists("{a:vt}netrw_optionsave")
|
||||
" call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
|
||||
" call Decho("..doing filetype detect anyway")
|
||||
filetype detect
|
||||
if !isdirectory(expand('%'))
|
||||
" call Decho("..doing filetype detect anyway")
|
||||
filetype detect
|
||||
endif
|
||||
" call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
" call Decho("..ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
||||
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
|
||||
@@ -1904,9 +1906,11 @@ fun! s:NetrwOptionsRestore(vt)
|
||||
" were having their filetype detect-generated settings overwritten by
|
||||
" NetrwOptionRestore.
|
||||
if &ft != "netrw"
|
||||
" call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
filetype detect
|
||||
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
if !isdirectory(expand('%'))
|
||||
" call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
filetype detect
|
||||
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
endif
|
||||
endif
|
||||
" call Decho("(s:NetrwOptionsRestore) lines=".&lines)
|
||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
|
||||
@@ -712,6 +712,9 @@ func! tohtml#GetUserSettings() "{{{
|
||||
call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding)
|
||||
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_pre', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_doc', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_links', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_modeline', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_invalid', 0 )
|
||||
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
||||
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
||||
@@ -752,7 +755,7 @@ func! tohtml#GetUserSettings() "{{{
|
||||
|
||||
" pre_wrap doesn't do anything if not using pre or not using CSS
|
||||
if user_settings.no_pre || !user_settings.use_css
|
||||
let user_settings.pre_wrap=0
|
||||
let user_settings.pre_wrap = 0
|
||||
endif
|
||||
"}}}
|
||||
|
||||
|
||||
39
runtime/compiler/dotnet.vim
Normal file
39
runtime/compiler/dotnet.vim
Normal file
@@ -0,0 +1,39 @@
|
||||
" Vim compiler file
|
||||
" Compiler: dotnet build (.NET CLI)
|
||||
" Maintainer: Nick Jensen <nickspoon@gmail.com>
|
||||
" Last Change: 2022-12-06
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/nickspoons/vim-cs
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dotnet"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if get(g:, "dotnet_errors_only", v:false)
|
||||
CompilerSet makeprg=dotnet\ build\ -nologo
|
||||
\\ -consoleloggerparameters:NoSummary
|
||||
\\ -consoleloggerparameters:ErrorsOnly
|
||||
else
|
||||
CompilerSet makeprg=dotnet\ build\ -nologo\ -consoleloggerparameters:NoSummary
|
||||
endif
|
||||
|
||||
if get(g:, "dotnet_show_project_file", v:true)
|
||||
CompilerSet errorformat=%E%f(%l\\,%c):\ %trror\ %m,
|
||||
\%W%f(%l\\,%c):\ %tarning\ %m,
|
||||
\%-G%.%#
|
||||
else
|
||||
CompilerSet errorformat=%E%f(%l\\,%c):\ %trror\ %m\ [%.%#],
|
||||
\%W%f(%l\\,%c):\ %tarning\ %m\ [%.%#],
|
||||
\%-G%.%#
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
31
runtime/compiler/hare.vim
Normal file
31
runtime/compiler/hare.vim
Normal file
@@ -0,0 +1,31 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Hare Compiler
|
||||
" Maintainer: Amelia Clarke <me@rsaihe.dev>
|
||||
" Last Change: 2022-09-21
|
||||
|
||||
if exists("g:current_compiler")
|
||||
finish
|
||||
endif
|
||||
let g:current_compiler = "hare"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(':CompilerSet') != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if filereadable("Makefile") || filereadable("makefile")
|
||||
CompilerSet makeprg=make
|
||||
else
|
||||
CompilerSet makeprg=hare\ build
|
||||
endif
|
||||
|
||||
CompilerSet errorformat=
|
||||
\Error\ %f:%l:%c:\ %m,
|
||||
\Syntax\ error:\ %.%#\ at\ %f:%l:%c\\,\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: tabstop=2 shiftwidth=2 expandtab
|
||||
28
runtime/compiler/zig.vim
Normal file
28
runtime/compiler/zig.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "zig"
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
" a subcommand must be provided for the this compiler (test, build-exe, etc)
|
||||
if has('patch-7.4.191')
|
||||
CompilerSet makeprg=zig\ \$*\ \%:S
|
||||
else
|
||||
CompilerSet makeprg=zig\ \$*\ \"%\"
|
||||
endif
|
||||
|
||||
" TODO: improve errorformat as needed.
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
29
runtime/compiler/zig_build.vim
Normal file
29
runtime/compiler/zig_build.vim
Normal file
@@ -0,0 +1,29 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig build)
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
runtime compiler/zig.vim
|
||||
let current_compiler = 'zig_build'
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
if exists(':CompilerSet') != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if exists('g:zig_build_makeprg_params')
|
||||
execute 'CompilerSet makeprg=zig\ build\ '.escape(g:zig_build_makeprg_params, ' \|"').'\ $*'
|
||||
else
|
||||
CompilerSet makeprg=zig\ build\ $*
|
||||
endif
|
||||
|
||||
" TODO: anything to add to errorformat for zig build specifically?
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
27
runtime/compiler/zig_build_exe.vim
Normal file
27
runtime/compiler/zig_build_exe.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig build-exe)
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
runtime compiler/zig.vim
|
||||
let current_compiler = 'zig_build_exe'
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
if exists(':CompilerSet') != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if has('patch-7.4.191')
|
||||
CompilerSet makeprg=zig\ build-exe\ \%:S\ \$*
|
||||
else
|
||||
CompilerSet makeprg=zig\ build-exe\ \"%\"\ \$*
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
27
runtime/compiler/zig_test.vim
Normal file
27
runtime/compiler/zig_test.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Zig Compiler (zig test)
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
runtime compiler/zig.vim
|
||||
let current_compiler = 'zig_test'
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
if exists(':CompilerSet') != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if has('patch-7.4.191')
|
||||
CompilerSet makeprg=zig\ test\ \%:S\ \$*
|
||||
else
|
||||
CompilerSet makeprg=zig\ test\ \"%\"\ \$*
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
@@ -161,6 +161,7 @@ DOCS = \
|
||||
version9.txt \
|
||||
vi_diff.txt \
|
||||
vim9.txt \
|
||||
vim9class.txt \
|
||||
visual.txt \
|
||||
windows.txt \
|
||||
workshop.txt
|
||||
@@ -313,6 +314,7 @@ HTMLS = \
|
||||
vi_diff.html \
|
||||
vimindex.html \
|
||||
vim9.html \
|
||||
vim9class.html \
|
||||
visual.html \
|
||||
windows.html \
|
||||
workshop.html
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.0. Last change: 2022 May 24
|
||||
*autocmd.txt* For Vim version 9.0. Last change: 2022 Nov 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -409,6 +409,7 @@ Name triggered by ~
|
||||
when popup menu is not visible
|
||||
|TextChangedP| after a change was made to the text in Insert mode
|
||||
when popup menu visible
|
||||
|TextChangedT| after a change was made to the text in Terminal mode
|
||||
|TextYankPost| after text has been yanked or deleted
|
||||
|
||||
|SafeState| nothing pending, going to wait for the user to type a
|
||||
@@ -1057,8 +1058,8 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||
QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
|
||||
command is run, before jumping to the first
|
||||
location. For |:cfile| and |:lfile| commands
|
||||
it is run after error file is read and before
|
||||
moving to the first error.
|
||||
it is run after the error file is read and
|
||||
before moving to the first error.
|
||||
See |QuickFixCmdPost-example|.
|
||||
*QuitPre*
|
||||
QuitPre When using `:quit`, `:wq` or `:qall`, before
|
||||
@@ -1237,6 +1238,10 @@ TextChangedP After a change was made to the text in the
|
||||
current buffer in Insert mode, only when the
|
||||
popup menu is visible. Otherwise the same as
|
||||
TextChanged.
|
||||
*TextChangedT*
|
||||
TextChangedT After a change was made to the text in the
|
||||
current buffer in Terminal mode.
|
||||
Otherwise the same as TextChanged.
|
||||
*TextYankPost*
|
||||
TextYankPost After text has been yanked or deleted in the
|
||||
current buffer. The following values of
|
||||
@@ -1337,8 +1342,9 @@ VimSuspend When the Vim instance is suspended. Only when
|
||||
CTRL-Z was typed inside Vim, or when the SIGTSTP
|
||||
signal was sent to Vim, but not for SIGSTOP.
|
||||
*WinClosed*
|
||||
WinClosed After closing a window. The pattern is
|
||||
matched against the |window-ID|. Both
|
||||
WinClosed When closing a window, just before it is
|
||||
removed from the window layout. The pattern
|
||||
is matched against the |window-ID|. Both
|
||||
<amatch> and <afile> are set to the
|
||||
|window-ID|. Non-recursive (event cannot
|
||||
trigger itself).
|
||||
@@ -1366,17 +1372,42 @@ WinNew When a new window was created. Not done for
|
||||
Before a WinEnter event.
|
||||
|
||||
*WinScrolled*
|
||||
WinScrolled After scrolling the content of a window or
|
||||
resizing a window.
|
||||
The pattern is matched against the
|
||||
|window-ID|. Both <amatch> and <afile> are
|
||||
set to the |window-ID|.
|
||||
Non-recursive (the event cannot trigger
|
||||
itself). However, if the command causes the
|
||||
window to scroll or change size another
|
||||
WinScrolled After any window in the current tab page
|
||||
scrolled the text (horizontally or vertically)
|
||||
or changed width or height. See
|
||||
|win-scrolled-resized|.
|
||||
|
||||
The pattern is matched against the |window-ID|
|
||||
of the first window that scrolled or resized.
|
||||
Both <amatch> and <afile> are set to the
|
||||
|window-ID|.
|
||||
|
||||
|v:event| is set with information about size
|
||||
and scroll changes. |WinScrolled-event|
|
||||
|
||||
Only starts triggering after startup finished
|
||||
and the first screen redraw was done.
|
||||
Does not trigger when defining the first
|
||||
WinScrolled or WinResized event, but may
|
||||
trigger when adding more.
|
||||
|
||||
Non-recursive: the event will not trigger
|
||||
while executing commands for the WinScrolled
|
||||
event. However, if the command causes a
|
||||
window to scroll or change size, then another
|
||||
WinScrolled event will be triggered later.
|
||||
Does not trigger when the command is added,
|
||||
only after the first scroll or resize.
|
||||
|
||||
|
||||
*WinResized*
|
||||
WinResized After a window in the current tab page changed
|
||||
width or height.
|
||||
See |win-scrolled-resized|.
|
||||
|
||||
|v:event| is set with information about size
|
||||
changes. |WinResized-event|
|
||||
|
||||
Same behavior as |WinScrolled| for the
|
||||
pattern, triggering and recursiveness.
|
||||
|
||||
==============================================================================
|
||||
6. Patterns *autocmd-patterns* *{aupat}*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2022 Sep 17
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2022 Dec 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -6,9 +6,10 @@
|
||||
|
||||
Builtin functions *builtin-functions*
|
||||
|
||||
Note: Expression evaluation can be disabled at compile time. If this has been
|
||||
done, the builtin functions are not available. See |+eval| and
|
||||
|no-eval-feature|.
|
||||
Note: Expression evaluation can be disabled at compile time, the builtin
|
||||
functions are not available then. See |+eval| and |no-eval-feature|.
|
||||
|
||||
For functions grouped by what they are used for see |function-list|.
|
||||
|
||||
1. Overview |builtin-function-list|
|
||||
2. Details |builtin-function-details|
|
||||
@@ -115,13 +116,13 @@ ch_status({handle} [, {options}])
|
||||
changenr() Number current change number
|
||||
char2nr({expr} [, {utf8}]) Number ASCII/UTF-8 value of first char in {expr}
|
||||
charclass({string}) Number character class of {string}
|
||||
charcol({expr}) Number column number of cursor or mark
|
||||
charcol({expr} [, {winid}]) Number column number of cursor or mark
|
||||
charidx({string}, {idx} [, {countcc}])
|
||||
Number char index of byte {idx} in {string}
|
||||
chdir({dir}) String change current working directory
|
||||
cindent({lnum}) Number C indent for line {lnum}
|
||||
clearmatches([{win}]) none clear all matches
|
||||
col({expr}) Number column byte index of cursor or mark
|
||||
col({expr} [, {winid}]) Number column byte index of cursor or mark
|
||||
complete({startcol}, {matches}) none set Insert mode completion
|
||||
complete_add({expr}) Number add completion match
|
||||
complete_check() Number check for key typed during completion
|
||||
@@ -207,6 +208,7 @@ get({func}, {what}) any get property of funcref/partial {func}
|
||||
getbufinfo([{buf}]) List information about buffers
|
||||
getbufline({buf}, {lnum} [, {end}])
|
||||
List lines {lnum} to {end} of buffer {buf}
|
||||
getbufoneline({buf}, {lnum}) String line {lnum} of buffer {buf}
|
||||
getbufvar({buf}, {varname} [, {def}])
|
||||
any variable {varname} in buffer {buf}
|
||||
getchangelist([{buf}]) List list of change list items
|
||||
@@ -245,6 +247,7 @@ getloclist({nr}, {what}) Dict get specific location list properties
|
||||
getmarklist([{buf}]) List list of global/local marks
|
||||
getmatches([{win}]) List list of current matches
|
||||
getmousepos() Dict last known mouse position
|
||||
getmouseshape() String current mouse shape name
|
||||
getpid() Number process ID of Vim
|
||||
getpos({expr}) List position of cursor, mark, etc.
|
||||
getqflist() List list of quickfix items
|
||||
@@ -395,6 +398,7 @@ popup_create({what}, {options}) Number create a popup window
|
||||
popup_dialog({what}, {options}) Number create a popup window used as a dialog
|
||||
popup_filter_menu({id}, {key}) Number filter for a menu popup window
|
||||
popup_filter_yesno({id}, {key}) Number filter for a dialog popup window
|
||||
popup_findecho() Number get window ID of popup for `:echowin`
|
||||
popup_findinfo() Number get window ID of info popup window
|
||||
popup_findpreview() Number get window ID of preview popup window
|
||||
popup_getoptions({id}) Dict get options of popup window {id}
|
||||
@@ -443,7 +447,8 @@ pyxeval({expr}) any evaluate |python_x| expression
|
||||
rand([{expr}]) Number get pseudo-random number
|
||||
range({expr} [, {max} [, {stride}]])
|
||||
List items from {expr} to {max}
|
||||
readblob({fname}) Blob read a |Blob| from {fname}
|
||||
readblob({fname} [, {offset} [, {size}]])
|
||||
Blob read a |Blob| from {fname}
|
||||
readdir({dir} [, {expr} [, {dict}]])
|
||||
List file names in {dir} selected by {expr}
|
||||
readdirex({dir} [, {expr} [, {dict}]])
|
||||
@@ -603,6 +608,7 @@ submatch({nr} [, {list}]) String or List
|
||||
specific match in ":s" or substitute()
|
||||
substitute({expr}, {pat}, {sub}, {flags})
|
||||
String all {pat} in {expr} replaced with {sub}
|
||||
swapfilelist() List swap files found in 'directory'
|
||||
swapinfo({fname}) Dict information about swap file {fname}
|
||||
swapname({buf}) String swap file of buffer {buf}
|
||||
synID({lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
|
||||
@@ -803,8 +809,10 @@ append({lnum}, {text}) *append()*
|
||||
{lnum} can be zero to insert a line before the first one.
|
||||
{lnum} is used like with |getline()|.
|
||||
Returns 1 for failure ({lnum} out of range or out of memory),
|
||||
0 for success. In |Vim9| script an invalid argument or
|
||||
negative number results in an error. Example: >
|
||||
0 for success. When {text} is an empty list zero is returned,
|
||||
no matter the value of {lnum}.
|
||||
In |Vim9| script an invalid argument or negative number
|
||||
results in an error. Example: >
|
||||
:let failed = append(line('$'), "# THE END")
|
||||
:let failed = append(0, ["Chapter 1", "the beginning"])
|
||||
|
||||
@@ -832,7 +840,9 @@ appendbufline({buf}, {lnum}, {text}) *appendbufline()*
|
||||
If {buf} is not a valid buffer or {lnum} is not valid, an
|
||||
error message is given. Example: >
|
||||
:let failed = appendbufline(13, 0, "# THE START")
|
||||
<
|
||||
< However, when {text} is an empty list then no error is given
|
||||
for an invalid {lnum}, since {lnum} isn't actually used.
|
||||
|
||||
Can also be used as a |method| after a List, the base is
|
||||
passed as the second argument: >
|
||||
mylist->appendbufline(buf, lnum)
|
||||
@@ -978,7 +988,7 @@ autocmd_add({acmds}) *autocmd_add()*
|
||||
let acmd.bufnr = 5
|
||||
let acmd.cmd = 'call BufEnterFunc()'
|
||||
call autocmd_add([acmd])
|
||||
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetAutocmdList()->autocmd_add()
|
||||
<
|
||||
@@ -1314,7 +1324,8 @@ bufwinid({buf}) *bufwinid()*
|
||||
|
||||
echo "A window containing buffer 1 is " .. (bufwinid(1))
|
||||
<
|
||||
Only deals with the current tab page.
|
||||
Only deals with the current tab page. See |win_findbuf()| for
|
||||
finding more.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
FindBuffer()->bufwinid()
|
||||
@@ -1466,7 +1477,7 @@ charclass({string}) *charclass()*
|
||||
Returns 0 if {string} is not a |String|.
|
||||
|
||||
|
||||
charcol({expr}) *charcol()*
|
||||
charcol({expr} [, {winid}]) *charcol()*
|
||||
Same as |col()| but returns the character index of the column
|
||||
position given with {expr} instead of the byte position.
|
||||
|
||||
@@ -1549,8 +1560,8 @@ clearmatches([{win}]) *clearmatches()*
|
||||
Can also be used as a |method|: >
|
||||
GetWin()->clearmatches()
|
||||
<
|
||||
*col()*
|
||||
col({expr}) The result is a Number, which is the byte index of the column
|
||||
col({expr} [, {winid}) *col()*
|
||||
The result is a Number, which is the byte index of the column
|
||||
position given with {expr}. The accepted positions are:
|
||||
. the cursor position
|
||||
$ the end of the cursor line (the result is the
|
||||
@@ -1565,6 +1576,8 @@ col({expr}) The result is a Number, which is the byte index of the column
|
||||
and column number. Most useful when the column is "$", to get
|
||||
the last column of a specific line. When "lnum" or "col" is
|
||||
out of range then col() returns zero.
|
||||
With the optional {winid} argument the values are obtained for
|
||||
that window instead of the current window.
|
||||
To get the line number use |line()|. To get both use
|
||||
|getpos()|.
|
||||
For the screen column position use |virtcol()|. For the
|
||||
@@ -1575,16 +1588,15 @@ col({expr}) The result is a Number, which is the byte index of the column
|
||||
col("$") length of cursor line plus one
|
||||
col("'t") column of mark t
|
||||
col("'" .. markname) column of mark markname
|
||||
< The first column is 1. Returns 0 if {expr} is invalid.
|
||||
< The first column is 1. Returns 0 if {expr} is invalid or when
|
||||
the window with ID {winid} is not found.
|
||||
For an uppercase mark the column may actually be in another
|
||||
buffer.
|
||||
For the cursor position, when 'virtualedit' is active, the
|
||||
column is one higher if the cursor is after the end of the
|
||||
line. This can be used to obtain the column in Insert mode: >
|
||||
:imap <F2> <C-O>:let save_ve = &ve<CR>
|
||||
\<C-O>:set ve=all<CR>
|
||||
\<C-O>:echo col(".") .. "\n" <Bar>
|
||||
\let &ve = save_ve<CR>
|
||||
line. Also, when using a <Cmd> mapping the cursor isn't
|
||||
moved, this can be used to obtain the column in Insert mode: >
|
||||
:imap <F2> <Cmd>echowin col(".")<CR>
|
||||
|
||||
< Can also be used as a |method|: >
|
||||
GetPos()->col()
|
||||
@@ -1880,10 +1892,10 @@ cursor({list})
|
||||
|setcursorcharpos()|.
|
||||
|
||||
Does not change the jumplist.
|
||||
{lnum} is used like with |getline()|.
|
||||
{lnum} is used like with |getline()|, except that if {lnum} is
|
||||
zero, the cursor will stay in the current line.
|
||||
If {lnum} is greater than the number of lines in the buffer,
|
||||
the cursor will be positioned at the last line in the buffer.
|
||||
If {lnum} is zero, the cursor will stay in the current line.
|
||||
If {col} is greater than the number of bytes in the line,
|
||||
the cursor will be positioned at the last character in the
|
||||
line.
|
||||
@@ -2768,7 +2780,7 @@ flattennew({list} [, {maxdepth}]) *flattennew()*
|
||||
float2nr({expr}) *float2nr()*
|
||||
Convert {expr} to a Number by omitting the part after the
|
||||
decimal point.
|
||||
{expr} must evaluate to a |Float| or a Number.
|
||||
{expr} must evaluate to a |Float| or a |Number|.
|
||||
Returns 0 if {expr} is not a |Float| or a |Number|.
|
||||
When the value of {expr} is out of range for a |Number| the
|
||||
result is truncated to 0x7fffffff or -0x7fffffff (or when
|
||||
@@ -3194,7 +3206,8 @@ getbufinfo([{dict}])
|
||||
getbufline({buf}, {lnum} [, {end}])
|
||||
Return a |List| with the lines starting from {lnum} to {end}
|
||||
(inclusive) in the buffer {buf}. If {end} is omitted, a
|
||||
|List| with only the line {lnum} is returned.
|
||||
|List| with only the line {lnum} is returned. See
|
||||
`getbufoneline()` for only getting the line.
|
||||
|
||||
For the use of {buf}, see |bufname()| above.
|
||||
|
||||
@@ -3217,6 +3230,11 @@ getbufline({buf}, {lnum} [, {end}])
|
||||
|
||||
< Can also be used as a |method|: >
|
||||
GetBufnr()->getbufline(lnum)
|
||||
<
|
||||
*getbufoneline()*
|
||||
getbufoneline({buf}, {lnum})
|
||||
Just like `getbufline()` but only get one line and return it
|
||||
as a string.
|
||||
|
||||
getbufvar({buf}, {varname} [, {def}]) *getbufvar()*
|
||||
The result is the value of option or local buffer variable
|
||||
@@ -3761,7 +3779,8 @@ getline({lnum} [, {end}])
|
||||
< Can also be used as a |method|: >
|
||||
ComputeLnum()->getline()
|
||||
|
||||
< To get lines from another buffer see |getbufline()|
|
||||
< To get lines from another buffer see |getbufline()| and
|
||||
|getbufoneline()|
|
||||
|
||||
getloclist({nr} [, {what}]) *getloclist()*
|
||||
Returns a |List| with all the entries in the location list for
|
||||
@@ -3870,6 +3889,12 @@ getmousepos() *getmousepos()*
|
||||
When using |getchar()| the Vim variables |v:mouse_lnum|,
|
||||
|v:mouse_col| and |v:mouse_winid| also provide these values.
|
||||
|
||||
getmouseshape() *getmouseshape()*
|
||||
Returns the name of the currently showing mouse pointer.
|
||||
When the |+mouseshape| feature is not supported or the shape
|
||||
is unknown an empty string is returned.
|
||||
This function is mainly intended for testing.
|
||||
|
||||
*getpid()*
|
||||
getpid() Return a Number which is the process ID of the Vim process.
|
||||
On Unix and MS-Windows this is a unique number, until Vim
|
||||
@@ -5402,7 +5427,8 @@ listener_add({callback} [, {buf}]) *listener_add()*
|
||||
the change; one if unknown or the whole line
|
||||
was affected; this is a byte index, first
|
||||
character has a value of one.
|
||||
When lines are inserted the values are:
|
||||
When lines are inserted (not when a line is split, e.g. by
|
||||
typing CR in Insert mode) the values are:
|
||||
lnum line above which the new line is added
|
||||
end equal to "lnum"
|
||||
added number of lines inserted
|
||||
@@ -5547,6 +5573,10 @@ map({expr1}, {expr2}) *map()*
|
||||
If {expr2} is a |Funcref| it is called with two arguments:
|
||||
1. The key or the index of the current item.
|
||||
2. the value of the current item.
|
||||
With a legacy script lambda you don't get an error if it only
|
||||
accepts one argument, but with a Vim9 lambda you get "E1106:
|
||||
One argument too many", the number of arguments must match.
|
||||
|
||||
The function must return the new value of the item. Example
|
||||
that changes each value by "key-value": >
|
||||
func KeyValue(key, val)
|
||||
@@ -5864,7 +5894,7 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
|
||||
respectively. 3 is reserved for use by the |matchparen|
|
||||
plugin.
|
||||
If the {id} argument is not specified or -1, |matchadd()|
|
||||
automatically chooses a free ID.
|
||||
automatically chooses a free ID, which is at least 1000.
|
||||
|
||||
The optional {dict} argument allows for further custom
|
||||
values. Currently this is used to specify a match specific
|
||||
@@ -5918,8 +5948,6 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
||||
- A list with three numbers, e.g., [23, 11, 3]. As above, but
|
||||
the third number gives the length of the highlight in bytes.
|
||||
|
||||
The maximum number of positions in {pos} is 8.
|
||||
|
||||
Returns -1 on error.
|
||||
|
||||
Example: >
|
||||
@@ -6846,10 +6874,28 @@ range({expr} [, {max} [, {stride}]]) *range()*
|
||||
GetExpr()->range()
|
||||
<
|
||||
|
||||
readblob({fname}) *readblob()*
|
||||
readblob({fname} [, {offset} [, {size}]]) *readblob()*
|
||||
Read file {fname} in binary mode and return a |Blob|.
|
||||
When the file can't be opened an error message is given and
|
||||
If {offset} is specified, read the file from the specified
|
||||
offset. If it is a negative value, it is used as an offset
|
||||
from the end of the file. E.g., to read the last 12 bytes: >
|
||||
readblob('file.bin', -12)
|
||||
< If {size} is specified, only the specified size will be read.
|
||||
E.g. to read the first 100 bytes of a file: >
|
||||
readblob('file.bin', 0, 100)
|
||||
< If {size} is -1 or omitted, the whole data starting from
|
||||
{offset} will be read.
|
||||
This can be also used to read the data from a character device
|
||||
on Unix when {size} is explicitly set. Only if the device
|
||||
supports seeking {offset} can be used. Otherwise it should be
|
||||
zero. E.g. to read 10 bytes from a serial console: >
|
||||
readblob('/dev/ttyS0', 0, 10)
|
||||
< When the file can't be opened an error message is given and
|
||||
the result is an empty |Blob|.
|
||||
When the offset is beyond the end of the file the result is an
|
||||
empty blob.
|
||||
When trying to read more bytes than are available the result
|
||||
is truncated.
|
||||
Also see |readfile()| and |writefile()|.
|
||||
|
||||
|
||||
@@ -7037,13 +7083,19 @@ reg_recording() *reg_recording()*
|
||||
Returns the single letter name of the register being recorded.
|
||||
Returns an empty string when not recording. See |q|.
|
||||
|
||||
reltime([{start} [, {end}]]) *reltime()*
|
||||
reltime()
|
||||
reltime({start})
|
||||
reltime({start}, {end}) *reltime()*
|
||||
Return an item that represents a time value. The item is a
|
||||
list with items that depend on the system. In Vim 9 script
|
||||
list<any> can be used.
|
||||
The item can be passed to |reltimestr()| to convert it to a
|
||||
string or |reltimefloat()| to convert to a Float.
|
||||
|
||||
string or |reltimefloat()| to convert to a Float. For
|
||||
example, to see the time spent in function Work(): >
|
||||
var startTime = reltime()
|
||||
Work()
|
||||
echo startTime->reltime()->reltimestr()
|
||||
<
|
||||
Without an argument reltime() returns the current time (the
|
||||
representation is system-dependent, it can not be used as the
|
||||
wall-clock time, see |localtime()| for that).
|
||||
@@ -7164,8 +7216,8 @@ remote_peek({serverid} [, {retvar}]) *remote_peek()*
|
||||
This function is not available in the |sandbox|.
|
||||
{only available when compiled with the |+clientserver| feature}
|
||||
Examples: >
|
||||
:let repl = ""
|
||||
:echo "PEEK: " .. remote_peek(id, "repl") .. ": " .. repl
|
||||
:let repl = ""
|
||||
:echo "PEEK: " .. remote_peek(id, "repl") .. ": " .. repl
|
||||
|
||||
< Can also be used as a |method|: >
|
||||
ServerId()->remote_peek()
|
||||
@@ -7225,7 +7277,8 @@ remote_startserver({name})
|
||||
|
||||
< {only available when compiled with the |+clientserver| feature}
|
||||
|
||||
remove({list}, {idx} [, {end}]) *remove()*
|
||||
remove({list}, {idx})
|
||||
remove({list}, {idx}, {end}) *remove()*
|
||||
Without {end}: Remove the item at {idx} from |List| {list} and
|
||||
return the item.
|
||||
With {end}: Remove items from {idx} to {end} (inclusive) and
|
||||
@@ -7243,7 +7296,8 @@ remove({list}, {idx} [, {end}]) *remove()*
|
||||
Can also be used as a |method|: >
|
||||
mylist->remove(idx)
|
||||
|
||||
remove({blob}, {idx} [, {end}])
|
||||
remove({blob}, {idx})
|
||||
remove({blob}, {idx}, {end})
|
||||
Without {end}: Remove the byte at {idx} from |Blob| {blob} and
|
||||
return the byte.
|
||||
With {end}: Remove bytes from {idx} to {end} (inclusive) and
|
||||
@@ -7847,9 +7901,10 @@ setbufline({buf}, {lnum}, {text}) *setbufline()*
|
||||
To insert lines use |appendbufline()|.
|
||||
Any text properties in {lnum} are cleared.
|
||||
|
||||
{text} can be a string to set one line, or a list of strings
|
||||
to set multiple lines. If the list extends below the last
|
||||
line then those lines are added.
|
||||
{text} can be a string to set one line, or a List of strings
|
||||
to set multiple lines. If the List extends below the last
|
||||
line then those lines are added. If the List is empty then
|
||||
nothing is changed and zero is returned.
|
||||
|
||||
For the use of {buf}, see |bufname()| above.
|
||||
|
||||
@@ -7888,29 +7943,38 @@ setbufvar({buf}, {varname}, {val}) *setbufvar()*
|
||||
|
||||
setcellwidths({list}) *setcellwidths()*
|
||||
Specify overrides for cell widths of character ranges. This
|
||||
tells Vim how wide characters are, counted in screen cells.
|
||||
This overrides 'ambiwidth'. Example: >
|
||||
setcellwidths([[0xad, 0xad, 1],
|
||||
\ [0x2194, 0x2199, 2]])
|
||||
tells Vim how wide characters are when displayed in the
|
||||
terminal, counted in screen cells. The values override
|
||||
'ambiwidth'. Example: >
|
||||
call setcellwidths([
|
||||
\ [0x111, 0x111, 1],
|
||||
\ [0x2194, 0x2199, 2],
|
||||
\ ])
|
||||
|
||||
< *E1109* *E1110* *E1111* *E1112* *E1113* *E1114*
|
||||
The {list} argument is a list of lists with each three
|
||||
numbers. These three numbers are [low, high, width]. "low"
|
||||
and "high" can be the same, in which case this refers to one
|
||||
character. Otherwise it is the range of characters from "low"
|
||||
to "high" (inclusive). "width" is either 1 or 2, indicating
|
||||
the character width in screen cells.
|
||||
An error is given if the argument is invalid, also when a
|
||||
range overlaps with another.
|
||||
< The {list} argument is a List of Lists with each three
|
||||
numbers: [{low}, {high}, {width}]. *E1109* *E1110*
|
||||
{low} and {high} can be the same, in which case this refers to
|
||||
one character. Otherwise it is the range of characters from
|
||||
{low} to {high} (inclusive). *E1111* *E1114*
|
||||
Only characters with value 0x100 and higher can be used.
|
||||
|
||||
{width} must be either 1 or 2, indicating the character width
|
||||
in screen cells. *E1112*
|
||||
An error is given if the argument is invalid, also when a
|
||||
range overlaps with another. *E1113*
|
||||
|
||||
If the new value causes 'fillchars' or 'listchars' to become
|
||||
invalid it is rejected and an error is given.
|
||||
|
||||
To clear the overrides pass an empty list: >
|
||||
To clear the overrides pass an empty {list}: >
|
||||
setcellwidths([]);
|
||||
|
||||
< You can use the script $VIMRUNTIME/tools/emoji_list.vim to see
|
||||
the effect for known emoji characters.
|
||||
the effect for known emoji characters. Move the cursor
|
||||
through the text to check if the cell widths of your terminal
|
||||
match with what Vim knows about each emoji. If it doesn't
|
||||
look right you need to adjust the {list} argument.
|
||||
|
||||
|
||||
setcharpos({expr}, {list}) *setcharpos()*
|
||||
Same as |setpos()| but uses the specified column number as the
|
||||
@@ -8034,7 +8098,8 @@ setline({lnum}, {text}) *setline()*
|
||||
When {lnum} is just below the last line the {text} will be
|
||||
added below the last line.
|
||||
{text} can be any type or a List of any type, each item is
|
||||
converted to a String.
|
||||
converted to a String. When {text} is an empty List then
|
||||
nothing is changed and FALSE is returned.
|
||||
|
||||
If this succeeds, FALSE is returned. If this fails (most likely
|
||||
because {lnum} is invalid) TRUE is returned.
|
||||
@@ -8623,6 +8688,9 @@ sound_playevent({name} [, {callback}])
|
||||
< On MS-Windows, {name} can be SystemAsterisk, SystemDefault,
|
||||
SystemExclamation, SystemExit, SystemHand, SystemQuestion,
|
||||
SystemStart, SystemWelcome, etc.
|
||||
On macOS, {name} refers to files located in
|
||||
/System/Library/Sounds (e.g. "Tink"). It will also work for
|
||||
custom installed sounds in folders like ~/Library/Sounds.
|
||||
|
||||
When {callback} is specified it is invoked when the sound is
|
||||
finished. The first argument is the sound ID, the second
|
||||
@@ -9247,6 +9315,17 @@ substitute({string}, {pat}, {sub}, {flags}) *substitute()*
|
||||
Can also be used as a |method|: >
|
||||
GetString()->substitute(pat, sub, flags)
|
||||
|
||||
swapfilelist() *swapfilelist()*
|
||||
Returns a list of swap file names, like what "vim -r" shows.
|
||||
See the |-r| command argument. The 'directory' option is used
|
||||
for the directories to inspect. If you only want to get a
|
||||
list of swap files in the current directory then temporarily
|
||||
set 'directory' to a dot: >
|
||||
let save_dir = &directory
|
||||
let &directory = '.'
|
||||
let swapfiles = swapfilelist()
|
||||
let &directory = save_dir
|
||||
|
||||
swapinfo({fname}) *swapinfo()*
|
||||
The result is a dictionary, which holds information about the
|
||||
swapfile {fname}. The available fields are:
|
||||
@@ -9639,6 +9718,7 @@ terminalprops() *terminalprops()*
|
||||
cursor_blink_mode whether sending |t_RC| works **
|
||||
underline_rgb whether |t_8u| works **
|
||||
mouse mouse type supported
|
||||
kitty whether Kitty terminal was detected
|
||||
|
||||
** value 'u' for unknown, 'y' for yes, 'n' for no
|
||||
|
||||
@@ -10168,6 +10248,7 @@ win_move_separator({nr}, {offset}) *win_move_separator()*
|
||||
FALSE otherwise.
|
||||
This will fail for the rightmost window and a full-width
|
||||
window, since it has no separator on the right.
|
||||
Only works for the current tab page. *E1308*
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetWinnr()->win_move_separator(offset)
|
||||
@@ -10182,6 +10263,7 @@ win_move_statusline({nr}, {offset}) *win_move_statusline()*
|
||||
movement may be smaller than specified (e.g., as a consequence
|
||||
of maintaining 'winminheight'). Returns TRUE if the window can
|
||||
be found and FALSE otherwise.
|
||||
Only works for the current tab page.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetWinnr()->win_move_statusline(offset)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.0. Last change: 2022 Sep 13
|
||||
*change.txt* For Vim version 9.0. Last change: 2022 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 9.0. Last change: 2022 Jun 23
|
||||
*channel.txt* For Vim version 9.0. Last change: 2022 Dec 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -465,7 +465,7 @@ a close callback to the channel.
|
||||
|
||||
To read all normal output from a RAW channel that is available: >
|
||||
let output = ch_readraw(channel)
|
||||
To read all error output from a RAW channel that is available:: >
|
||||
To read all error output from a RAW channel that is available: >
|
||||
let output = ch_readraw(channel, {"part": "err"})
|
||||
Note that if the channel is in NL mode, ch_readraw() will only return one line
|
||||
for each call.
|
||||
@@ -618,6 +618,9 @@ ch_info({handle}) *ch_info()*
|
||||
ch_log({msg} [, {handle}]) *ch_log()*
|
||||
Write String {msg} in the channel log file, if it was opened
|
||||
with |ch_logfile()|.
|
||||
The text "ch_log():" is prepended to the message to make clear
|
||||
it came from this function call and make it easier to find in
|
||||
the log file.
|
||||
When {handle} is passed the channel number is used for the
|
||||
message.
|
||||
{handle} can be a Channel or a Job that has a Channel. The
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 9.0. Last change: 2022 Jun 16
|
||||
*cmdline.txt* For Vim version 9.0. Last change: 2022 Nov 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -736,7 +736,9 @@ Line numbers may be specified with: *:range* *{address}*
|
||||
'T position of mark T (uppercase); when the mark is in
|
||||
another file it cannot be used in a range
|
||||
/{pattern}[/] the next line where {pattern} matches *:/*
|
||||
also see |:range-pattern| below
|
||||
?{pattern}[?] the previous line where {pattern} matches *:?*
|
||||
also see |:range-pattern| below
|
||||
\/ the next line where the previously used search
|
||||
pattern matches
|
||||
\? the previous line where the previously used search
|
||||
@@ -744,11 +746,49 @@ Line numbers may be specified with: *:range* *{address}*
|
||||
\& the next line where the previously used substitute
|
||||
pattern matches
|
||||
|
||||
*:range-offset*
|
||||
Each may be followed (several times) by '+' or '-' and an optional number.
|
||||
This number is added or subtracted from the preceding line number. If the
|
||||
number is omitted, 1 is used. If there is nothing before the '+' or '-' then
|
||||
the current line is used.
|
||||
*:range-closed-fold*
|
||||
When a line number after the comma is in a closed fold it is adjusted to the
|
||||
last line of the fold, thus the whole fold is included.
|
||||
|
||||
When a number is added this is done after the adjustment to the last line of
|
||||
the fold. This means these lines are additionally included in the range. For
|
||||
example: >
|
||||
:3,4+2print
|
||||
On this text:
|
||||
1 one ~
|
||||
2 two ~
|
||||
3 three ~
|
||||
4 four FOLDED ~
|
||||
5 five FOLDED ~
|
||||
6 six ~
|
||||
7 seven ~
|
||||
8 eight ~
|
||||
Where lines four and five are a closed fold, ends up printing lines 3 to 7.
|
||||
The 7 comes from the "4" in the range, which is adjusted to the end of the
|
||||
closed fold, which is 5, and then the offset 2 is added.
|
||||
|
||||
An example for subtracting (which isn't very useful): >
|
||||
:2,4-1print
|
||||
On this text:
|
||||
1 one ~
|
||||
2 two ~
|
||||
3 three FOLDED~
|
||||
4 four FOLDED ~
|
||||
5 five FOLDED ~
|
||||
6 six FOLDED ~
|
||||
7 seven ~
|
||||
8 eight ~
|
||||
Where lines three to six are a closed fold, ends up printing lines 2 to 6.
|
||||
The 6 comes from the "4" in the range, which is adjusted to the end of the
|
||||
closed fold, which is 6, and then 1 is subtracted, then this is still in the
|
||||
closed fold and the last line of that fold is used, which is 6.
|
||||
|
||||
*:range-pattern*
|
||||
The "/" and "?" after {pattern} are required to separate the pattern from
|
||||
anything that follows.
|
||||
|
||||
@@ -804,9 +844,9 @@ always be swapped then.
|
||||
|
||||
Count and Range *N:*
|
||||
|
||||
When giving a count before entering ":", this is translated into:
|
||||
When giving a count before entering ":", this is translated into: >
|
||||
:.,.+(count - 1)
|
||||
In words: The 'count' lines at and after the cursor. Example: To delete
|
||||
In words: The "count" lines at and after the cursor. Example: To delete
|
||||
three lines: >
|
||||
3:d<CR> is translated into: .,.+2d<CR>
|
||||
<
|
||||
@@ -1124,7 +1164,6 @@ Also see |`=|.
|
||||
In the command-line window the command line can be edited just like editing
|
||||
text in any window. It is a special kind of window, because you cannot leave
|
||||
it in a normal way.
|
||||
{not available when compiled without the |+cmdwin| feature}
|
||||
|
||||
|
||||
OPEN *c_CTRL-F* *q:* *q/* *q?*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 9.0. Last change: 2020 Aug 15
|
||||
*develop.txt* For Vim version 9.0. Last change: 2022 Sep 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 9.0. Last change: 2022 Jan 22
|
||||
*diff.txt* For Vim version 9.0. Last change: 2022 Oct 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -376,6 +376,9 @@ Additionally, 'diffexpr' should take care of "icase" and "iwhite" in the
|
||||
'diffopt' option. 'diffexpr' cannot change the value of 'lines' and
|
||||
'columns'.
|
||||
|
||||
The advantage of using a function call without arguments is that it is faster,
|
||||
see |expr-option-function|.
|
||||
|
||||
Example (this does almost the same as 'diffexpr' being empty): >
|
||||
|
||||
set diffexpr=MyDiff()
|
||||
@@ -441,6 +444,9 @@ will have the same effect. These variables are set to the file names used:
|
||||
v:fname_diff patch file
|
||||
v:fname_out resulting patched file
|
||||
|
||||
The advantage of using a function call without arguments is that it is faster,
|
||||
see |expr-option-function|.
|
||||
|
||||
Example (this does the same as 'patchexpr' being empty): >
|
||||
|
||||
set patchexpr=MyPatch()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 9.0. Last change: 2021 Jul 19
|
||||
*digraph.txt* For Vim version 9.0. Last change: 2022 Nov 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -162,7 +162,7 @@ These are the RFC1345 digraphs for the one-byte characters. See the output of
|
||||
":digraphs" for the others.
|
||||
|
||||
EURO
|
||||
|
||||
*euro* *euro-digraph*
|
||||
Exception: RFC1345 doesn't specify the euro sign. In Vim the digraph =e was
|
||||
added for this. Note the difference between latin1, where the digraph Cu is
|
||||
used for the currency sign, and latin9 (iso-8859-15), where the digraph =e is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 9.0. Last change: 2022 Apr 16
|
||||
*editing.txt* For Vim version 9.0. Last change: 2022 Nov 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -578,6 +578,43 @@ single <NL> characters are unexpectedly replaced with <CR><NL>.
|
||||
You can encrypt files that are written by setting the 'key' option. This
|
||||
provides some security against others reading your files. |encryption|
|
||||
|
||||
END OF LINE AND END OF FILE *eol-and-eof*
|
||||
|
||||
Vim has several options to control the file format:
|
||||
'fileformat' the <EOL> style: Unix, DOS, Mac
|
||||
'endofline' whether the last line ends with a <EOL>
|
||||
'endoffile' whether the file ends with a CTRL-Z
|
||||
'fixendofline' whether to fix eol and eof
|
||||
|
||||
The first three values are normally detected automatically when reading the
|
||||
file and are used when writing the text to a file. While editing the buffer
|
||||
it looks like every line has a line ending and the CTRL-Z isn't there (an
|
||||
exception is when 'binary' is set, it works differently then).
|
||||
|
||||
The 'fixendofline' option can be used to choose what to write. You can also
|
||||
change the option values to write the file differently than how it was read.
|
||||
|
||||
Here are some examples how to use them.
|
||||
|
||||
If you want files in Unix format (every line NL terminated): >
|
||||
setl ff=unix fixeol
|
||||
You should probably do this on any Unix-like system. Also modern MS-Windows
|
||||
systems tend to work well with this. It is recommended to always use this
|
||||
format for Vim scripts.
|
||||
|
||||
If you want to use an old MS-DOS file in a modern environment, fixing line
|
||||
endings and dropping CTRL-Z, but keeping the <CR><NL> style <EOL>: >
|
||||
setl ff=dos fixeol
|
||||
This is useful for many MS-Windows programs, they regularly expect the
|
||||
<CR><NL> line endings.
|
||||
|
||||
If you want to drop the final <EOL> and add a final CTRL-Z (e.g. for an old
|
||||
system like CP/M): >
|
||||
setl ff=dos nofixeol noeol eof
|
||||
|
||||
If you want to preserve the fileformat exactly as-is, including any final
|
||||
<EOL> and final CTRL-Z: >
|
||||
setl nofixeol
|
||||
|
||||
==============================================================================
|
||||
3. The argument list *argument-list* *arglist*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.0. Last change: 2022 Sep 17
|
||||
*eval.txt* For Vim version 9.0. Last change: 2022 Dec 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -633,6 +633,10 @@ This removes all entries from "dict" with a value not matching 'x'.
|
||||
This can also be used to remove all entries: >
|
||||
call filter(dict, 0)
|
||||
|
||||
In some situations it is not allowed to remove or add entries to a Dictionary.
|
||||
Especially when iterating over all the entries. You will get *E1313* or
|
||||
another error in that case.
|
||||
|
||||
|
||||
Dictionary function ~
|
||||
*Dictionary-function* *self* *E725* *E862*
|
||||
@@ -646,7 +650,8 @@ special way with a dictionary. Example: >
|
||||
|
||||
This is like a method in object oriented programming. The entry in the
|
||||
Dictionary is a |Funcref|. The local variable "self" refers to the dictionary
|
||||
the function was invoked from.
|
||||
the function was invoked from. When using |Vim9| script you can use classes
|
||||
and objects, see `:class`.
|
||||
|
||||
It is also possible to add a function without the "dict" attribute as a
|
||||
Funcref to a Dictionary, but the "self" variable is not available then.
|
||||
@@ -1548,7 +1553,7 @@ to be doubled. These two commands are equivalent: >
|
||||
if a =~ '\s*'
|
||||
|
||||
|
||||
interpolated-string *$quote* *interp-string*
|
||||
interpolated-string *$quote* *interpolated-string*
|
||||
--------------------
|
||||
$"string" interpolated string constant *expr-$quote*
|
||||
$'string' interpolated literal string constant *expr-$'*
|
||||
@@ -1965,7 +1970,7 @@ v:collate The current locale setting for collation order of the runtime
|
||||
command.
|
||||
See |multi-lang|.
|
||||
|
||||
*v:colornames*
|
||||
*v:colornames*
|
||||
v:colornames A dictionary that maps color names to hex color strings. These
|
||||
color names can be used with the |highlight-guifg|,
|
||||
|highlight-guibg|, and |highlight-guisp| parameters. Updating
|
||||
@@ -2859,7 +2864,7 @@ text...
|
||||
does not need to be doubled.
|
||||
If "eval" is specified, then any Vim expression in the
|
||||
form {expr} is evaluated and the result replaces the
|
||||
expression, like with |interp-string|.
|
||||
expression, like with |interpolated-string|.
|
||||
Example where $HOME is expanded: >
|
||||
let lines =<< trim eval END
|
||||
some text
|
||||
@@ -3073,6 +3078,10 @@ text...
|
||||
Unlock the internal variable {name}. Does the
|
||||
opposite of |:lockvar|.
|
||||
|
||||
If {name} does not exist:
|
||||
- In |Vim9| script an error is given.
|
||||
- In legacy script this is silently ignored.
|
||||
|
||||
:if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580*
|
||||
:en[dif] Execute the commands until the next matching `:else`
|
||||
or `:endif` if {expr1} evaluates to non-zero.
|
||||
@@ -3392,7 +3401,7 @@ text...
|
||||
when the screen is redrawn.
|
||||
|
||||
*:echow* *:echowin* *:echowindow*
|
||||
:echow[indow] {expr1} ..
|
||||
:[N]echow[indow] {expr1} ..
|
||||
Like |:echomsg| but when the messages popup window is
|
||||
available the message is displayed there. This means
|
||||
it will show for three seconds and avoid a
|
||||
@@ -3400,6 +3409,9 @@ text...
|
||||
that, press Esc in Normal mode (when it would
|
||||
otherwise beep). If it disappears too soon you can
|
||||
use `:messages` to see the text.
|
||||
When [N] is given then the window will show up for
|
||||
this number of seconds. The last `:echowindow` with a
|
||||
count matters, it is used once only.
|
||||
The message window is available when Vim was compiled
|
||||
with the +timer and the +popupwin features.
|
||||
|
||||
@@ -3595,7 +3607,7 @@ this pending exception or command is discarded.
|
||||
For examples see |throw-catch| and |try-finally|.
|
||||
|
||||
|
||||
NESTING OF TRY CONDITIONALS *try-nesting*
|
||||
NESTING OF TRY CONDITIONALS *try-nesting*
|
||||
|
||||
Try conditionals can be nested arbitrarily. That is, a complete try
|
||||
conditional can be put into the try block, a catch clause, or the finally
|
||||
|
||||
@@ -150,6 +150,7 @@ variables can be used to overrule the filetype used for certain extensions:
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.inc g:filetype_inc
|
||||
*.lsl g:filetype_lsl
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*.mod g:filetype_mod
|
||||
*.p g:filetype_p |ft-pascal-syntax|
|
||||
@@ -570,7 +571,7 @@ used.
|
||||
For example, to set the dialect to a default of "fblite" but still allow for
|
||||
any #lang directive overrides, use the following command: >
|
||||
|
||||
let g:freebasic_lang = "fblite"
|
||||
let g:freebasic_lang = "fblite"
|
||||
|
||||
|
||||
GIT COMMIT *ft-gitcommit-plugin*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 9.0. Last change: 2022 Jan 22
|
||||
*fold.txt* For Vim version 9.0. Last change: 2022 Nov 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -74,8 +74,6 @@ method. The value of the 'foldexpr' option is evaluated to get the foldlevel
|
||||
of a line. Examples:
|
||||
This will create a fold for all consecutive lines that start with a tab: >
|
||||
:set foldexpr=getline(v:lnum)[0]==\"\\t\"
|
||||
This will call a function to compute the fold level: >
|
||||
:set foldexpr=MyFoldLevel(v:lnum)
|
||||
This will make a fold out of paragraphs separated by blank lines: >
|
||||
:set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
|
||||
This does the same: >
|
||||
@@ -84,6 +82,10 @@ This does the same: >
|
||||
Note that backslashes must be used to escape characters that ":set" handles
|
||||
differently (space, backslash, double quote, etc., see |option-backslash|).
|
||||
|
||||
The most efficient is to call a compiled function without arguments: >
|
||||
:set foldexpr=MyFoldLevel()
|
||||
The function must use v:lnum. See |expr-option-function|.
|
||||
|
||||
These are the conditions with which the expression is evaluated:
|
||||
- The current buffer and window are set for the line.
|
||||
- The variable "v:lnum" is set to the line number.
|
||||
@@ -501,7 +503,7 @@ is evaluated to obtain the text displayed for a closed fold. Example: >
|
||||
|
||||
This shows the first line of the fold, with "/*", "*/" and "{{{" removed.
|
||||
Note the use of backslashes to avoid some characters to be interpreted by the
|
||||
":set" command. It's simpler to define a function and call that: >
|
||||
":set" command. It is much simpler to define a function and call it: >
|
||||
|
||||
:set foldtext=MyFoldText()
|
||||
:function MyFoldText()
|
||||
@@ -510,6 +512,9 @@ Note the use of backslashes to avoid some characters to be interpreted by the
|
||||
: return v:folddashes .. sub
|
||||
:endfunction
|
||||
|
||||
The advantage of using a function call without arguments is that it is faster,
|
||||
see |expr-option-function|.
|
||||
|
||||
Evaluating 'foldtext' is done in the |sandbox|. The current window is set to
|
||||
the window that displays the line. The context is set to the script where the
|
||||
option was last set.
|
||||
@@ -593,6 +598,11 @@ line is folded, it cannot be displayed there.
|
||||
Many movement commands handle a sequence of folded lines like an empty line.
|
||||
For example, the "w" command stops once in the first column.
|
||||
|
||||
When starting a search in a closed fold it will not find a match in the
|
||||
current fold. It's like a forward search always starts from the end of the
|
||||
closed fold, while a backwards search starts from the start of the closed
|
||||
fold.
|
||||
|
||||
When in Insert mode, the cursor line is never folded. That allows you to see
|
||||
what you type!
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*ft_context.txt* For Vim version 9.0. Last change: 2022 Aug 12
|
||||
*ft_context.txt* For Vim version 9.0. Last change: 2022 Sep 27
|
||||
|
||||
This is the documentation for the ConTeXt filetype plugin.
|
||||
|
||||
@@ -23,13 +23,12 @@ ConTeXt, similarly to LaTeX, is a macro-based typesetting system built on TeX:
|
||||
<
|
||||
The ConTeXt plugin provides syntax highlighting, completion and support for
|
||||
typesetting ConTeXt documents. The recommended way to typeset a document is to
|
||||
use |:ConTeXt|. This will invoke the `mtxrun` script that is found in $PATH.
|
||||
use |:ConTeXt|. This will invoke the `mtxrun` script that is found in `$PATH`.
|
||||
|
||||
For more fine grained control over the command and its environment, you may
|
||||
invoke `context.Typeset()` directly (or `context#Typeset()` from legacy Vim
|
||||
script). For instance, if you have installed a version of ConTeXt in
|
||||
`~/context`, you may define a function to use it (you may put the following
|
||||
code in `~/.vim/after/ftplugin/context.vim`) similar to the following:
|
||||
For more fine grained control over the command and its environment,
|
||||
`context.Typeset()` can be used directly (or `context#Typeset()` from legacy
|
||||
Vim script). For instance, if a version of ConTeXt is installed in
|
||||
`~/context`, you may define a function to use it similar to the following:
|
||||
>
|
||||
import autoload 'context.vim'
|
||||
|
||||
@@ -38,14 +37,15 @@ code in `~/.vim/after/ftplugin/context.vim`) similar to the following:
|
||||
printf("%s/context/tex/texmf-<os>-<arch>/bin:%s", $HOME, $PATH)}
|
||||
context.Typeset("%", env)
|
||||
enddef
|
||||
<
|
||||
and perhaps use it with a mapping:
|
||||
|
||||
This code may go in `~/.vim/after/ftplugin/context.vim`. A mapping can then be
|
||||
defined to invoke the custom command:
|
||||
>
|
||||
nnoremap <silent><buffer><leader>t <scriptcmd>MyConTeXt()<cr>
|
||||
<
|
||||
`context.Typeset()` accepts a third optional argument to specify a custom
|
||||
typesetting command. Such argument must be a function that takes a path and
|
||||
returns the command as a List. For example:
|
||||
typesetting command. That must be a function that takes a path and returns the
|
||||
command as a List. For example:
|
||||
>
|
||||
def ConTeXtCustomCommand(path: string): list<string>
|
||||
return ['mtxrun', '--script', 'context', '--nonstopmode, path]
|
||||
@@ -79,7 +79,7 @@ The last command will create the following syntax files:
|
||||
- `context-data-context.vim`;
|
||||
- `context-data-interfaces.vim`;
|
||||
- `context-data-metafun.vim`;
|
||||
- `context-data-tex.vim`.
|
||||
- `context-data-tex.vim`.
|
||||
|
||||
The same command can be used to update those syntax files.
|
||||
|
||||
@@ -103,14 +103,20 @@ Stop all the ConTeXt jobs currently running in the background.
|
||||
Settings ~
|
||||
*'b:context_ignore_makefile'*
|
||||
*'g:context_ignore_makefile'*
|
||||
`make` can be used to (synchronously) typeset a document. If a Makefile exists
|
||||
`:make` can be used to (synchronously) typeset a document. If a Makefile exists
|
||||
and this option is not set, standard `make` is used. If this option is set,
|
||||
`mtxrun` is invoked instead, even if a Makefile exists.
|
||||
>
|
||||
g:context_ignore_makefile = 0
|
||||
<
|
||||
NOTE: before using `make`, set the working directory of the buffer to the
|
||||
NOTE: before using `:make`, set the working directory of the buffer to the
|
||||
directory of the file to be typeset.
|
||||
|
||||
*'g:context_extra_options'*
|
||||
A list of additional options to pass to `mtxrun`.
|
||||
>
|
||||
g:context_extra_options = []
|
||||
<
|
||||
*'b:context_include'*
|
||||
*'g:context_include'*
|
||||
Dictionary of filetype/GROUP pairs for which syntax highlighting should be
|
||||
|
||||
@@ -1,70 +1,70 @@
|
||||
*ft_rust.txt* For Vim version 9.0. Last change: 2017 Nov 02
|
||||
*ft_rust.txt* For Vim version 9.0. Last change: 2022 Oct 17
|
||||
|
||||
This is documentation for the Rust filetype plugin.
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *rust*
|
||||
CONTENTS *rust*
|
||||
|
||||
1. Introduction |rust-intro|
|
||||
2. Settings |rust-settings|
|
||||
3. Commands |rust-commands|
|
||||
4. Mappings |rust-mappings|
|
||||
1. Introduction |rust-intro|
|
||||
2. Settings |rust-settings|
|
||||
3. Commands |rust-commands|
|
||||
4. Mappings |rust-mappings|
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *rust-intro*
|
||||
INTRODUCTION *rust-intro*
|
||||
|
||||
This plugin provides syntax and supporting functionality for the Rust
|
||||
filetype.
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *rust-settings*
|
||||
SETTINGS *rust-settings*
|
||||
|
||||
This plugin has a few variables you can define in your vimrc that change the
|
||||
behavior of the plugin.
|
||||
|
||||
*g:rustc_path*
|
||||
*g:rustc_path*
|
||||
g:rustc_path~
|
||||
Set this option to the path to rustc for use in the |:RustRun| and
|
||||
|:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
|
||||
let g:rustc_path = $HOME .. "/bin/rustc"
|
||||
<
|
||||
|
||||
*g:rustc_makeprg_no_percent*
|
||||
*g:rustc_makeprg_no_percent*
|
||||
g:rustc_makeprg_no_percent~
|
||||
Set this option to 1 to have 'makeprg' default to "rustc" instead of
|
||||
"rustc %": >
|
||||
let g:rustc_makeprg_no_percent = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal*
|
||||
*g:rust_conceal*
|
||||
g:rust_conceal~
|
||||
Set this option to turn on the basic |conceal| support: >
|
||||
let g:rust_conceal = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal_mod_path*
|
||||
*g:rust_conceal_mod_path*
|
||||
g:rust_conceal_mod_path~
|
||||
Set this option to turn on |conceal| for the path connecting token
|
||||
"::": >
|
||||
let g:rust_conceal_mod_path = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal_pub*
|
||||
*g:rust_conceal_pub*
|
||||
g:rust_conceal_pub~
|
||||
Set this option to turn on |conceal| for the "pub" token: >
|
||||
let g:rust_conceal_pub = 1
|
||||
<
|
||||
|
||||
*g:rust_recommended_style*
|
||||
*g:rust_recommended_style*
|
||||
g:rust_recommended_style~
|
||||
Set this option to enable vim indentation and textwidth settings to
|
||||
conform to style conventions of the rust standard library (i.e. use 4
|
||||
spaces for indents and sets 'textwidth' to 99). This option is enabled
|
||||
Set this option to enable vim indentation and textwidth settings to
|
||||
conform to style conventions of the rust standard library (i.e. use 4
|
||||
spaces for indents and sets 'textwidth' to 99). This option is enabled
|
||||
by default. To disable it: >
|
||||
let g:rust_recommended_style = 0
|
||||
<
|
||||
|
||||
*g:rust_fold*
|
||||
*g:rust_fold*
|
||||
g:rust_fold~
|
||||
Set this option to turn on |folding|: >
|
||||
let g:rust_fold = 1
|
||||
@@ -76,39 +76,39 @@ g:rust_fold~
|
||||
2 Braced blocks are folded. 'foldlevel' is left at the
|
||||
global value (all folds are closed by default).
|
||||
|
||||
*g:rust_bang_comment_leader*
|
||||
*g:rust_bang_comment_leader*
|
||||
g:rust_bang_comment_leader~
|
||||
Set this option to 1 to preserve the leader on multi-line doc comments
|
||||
using the /*! syntax: >
|
||||
let g:rust_bang_comment_leader = 1
|
||||
<
|
||||
|
||||
*g:ftplugin_rust_source_path*
|
||||
*g:ftplugin_rust_source_path*
|
||||
g:ftplugin_rust_source_path~
|
||||
Set this option to a path that should be prepended to 'path' for Rust
|
||||
source files: >
|
||||
let g:ftplugin_rust_source_path = $HOME .. '/dev/rust'
|
||||
<
|
||||
|
||||
*g:rustfmt_command*
|
||||
*g:rustfmt_command*
|
||||
g:rustfmt_command~
|
||||
Set this option to the name of the 'rustfmt' executable in your $PATH. If
|
||||
not specified it defaults to 'rustfmt' : >
|
||||
let g:rustfmt_command = 'rustfmt'
|
||||
<
|
||||
*g:rustfmt_autosave*
|
||||
*g:rustfmt_autosave*
|
||||
g:rustfmt_autosave~
|
||||
Set this option to 1 to run |:RustFmt| automatically when saving a
|
||||
buffer. If not specified it defaults to 0 : >
|
||||
let g:rustfmt_autosave = 0
|
||||
<
|
||||
*g:rustfmt_fail_silently*
|
||||
*g:rustfmt_fail_silently*
|
||||
g:rustfmt_fail_silently~
|
||||
Set this option to 1 to prevent 'rustfmt' from populating the
|
||||
|location-list| with errors. If not specified it defaults to 0: >
|
||||
let g:rustfmt_fail_silently = 0
|
||||
<
|
||||
*g:rustfmt_options*
|
||||
*g:rustfmt_options*
|
||||
g:rustfmt_options~
|
||||
Set this option to a string of options to pass to 'rustfmt'. The
|
||||
write-mode is already set to 'overwrite'. If not specified it
|
||||
@@ -116,13 +116,13 @@ g:rustfmt_options~
|
||||
let g:rustfmt_options = ''
|
||||
<
|
||||
|
||||
*g:rust_playpen_url*
|
||||
*g:rust_playpen_url*
|
||||
g:rust_playpen_url~
|
||||
Set this option to override the URL for the playpen to use: >
|
||||
let g:rust_playpen_url = 'https://play.rust-lang.org/'
|
||||
<
|
||||
|
||||
*g:rust_shortener_url*
|
||||
*g:rust_shortener_url*
|
||||
g:rust_shortener_url~
|
||||
Set this option to override the URL for the URL shortener: >
|
||||
let g:rust_shortener_url = 'https://is.gd/'
|
||||
@@ -130,9 +130,9 @@ g:rust_shortener_url~
|
||||
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *rust-commands*
|
||||
COMMANDS *rust-commands*
|
||||
|
||||
:RustRun [args] *:RustRun*
|
||||
:RustRun [args] *:RustRun*
|
||||
:RustRun! [rustc-args] [--] [args]
|
||||
Compiles and runs the current file. If it has unsaved changes,
|
||||
it will be saved first using |:update|. If the current file is
|
||||
@@ -150,7 +150,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustExpand [args] *:RustExpand*
|
||||
:RustExpand [args] *:RustExpand*
|
||||
:RustExpand! [TYPE] [args]
|
||||
Expands the current file using --pretty and displays the
|
||||
results in a new split. If the current file has unsaved
|
||||
@@ -169,7 +169,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustEmitIr [args] *:RustEmitIr*
|
||||
:RustEmitIr [args] *:RustEmitIr*
|
||||
Compiles the current file to LLVM IR and displays the results
|
||||
in a new split. If the current file has unsaved changes, it
|
||||
will be saved first using |:update|. If the current file is an
|
||||
@@ -180,7 +180,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustEmitAsm [args] *:RustEmitAsm*
|
||||
:RustEmitAsm [args] *:RustEmitAsm*
|
||||
Compiles the current file to assembly and displays the results
|
||||
in a new split. If the current file has unsaved changes, it
|
||||
will be saved first using |:update|. If the current file is an
|
||||
@@ -191,7 +191,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustPlay *:RustPlay*
|
||||
:RustPlay *:RustPlay*
|
||||
This command will only work if you have web-api.vim installed
|
||||
(available at https://github.com/mattn/webapi-vim). It sends the
|
||||
current selection, or if nothing is selected, the entirety of the
|
||||
@@ -204,7 +204,7 @@ COMMANDS *rust-commands*
|
||||
|g:rust_shortener_url| is the base URL for the shortener, by
|
||||
default "https://is.gd/"
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
:RustFmt *:RustFmt*
|
||||
Runs |g:rustfmt_command| on the current buffer. If
|
||||
|g:rustfmt_options| is set then those will be passed to the
|
||||
executable.
|
||||
@@ -214,12 +214,12 @@ COMMANDS *rust-commands*
|
||||
|g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
|
||||
then it will not populate the |location-list|.
|
||||
|
||||
:RustFmtRange *:RustFmtRange*
|
||||
:RustFmtRange *:RustFmtRange*
|
||||
Runs |g:rustfmt_command| with selected range. See
|
||||
|:RustFmt| for any other information.
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *rust-mappings*
|
||||
MAPPINGS *rust-mappings*
|
||||
|
||||
This plugin defines mappings for |[[| and |]]| to support hanging indents.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 9.0. Last change: 2022 Apr 03
|
||||
*gui.txt* For Vim version 9.0. Last change: 2022 Nov 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -889,6 +889,11 @@ s The menu was defined with "<silent>" to avoid showing what it is
|
||||
Note that hitting <Tab> while entering a menu name after a menu command may
|
||||
be used to complete the name of the menu item.
|
||||
|
||||
It is not allowed to change menus while listing them. *E1310*
|
||||
This doesn't normally happen, only when, for example, you would have a timer
|
||||
callback define a menu and the user lists menus in a way it shows
|
||||
|more-prompt|.
|
||||
|
||||
|
||||
5.4 Executing Menus *execute-menus*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 9.0. Last change: 2022 May 13
|
||||
*help.txt* For Vim version 9.0. Last change: 2022 Dec 03
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -153,6 +153,7 @@ Special issues ~
|
||||
|terminal.txt| Terminal window support
|
||||
|popup.txt| popup window support
|
||||
|vim9.txt| using Vim9 script
|
||||
|vim9class.txt| using Vim9 script classes
|
||||
|
||||
Programming language support ~
|
||||
|indent.txt| automatic indenting for C and other languages
|
||||
@@ -161,6 +162,8 @@ Programming language support ~
|
||||
|filetype.txt| settings done specifically for a type of file
|
||||
|quickfix.txt| commands for a quick edit-compile-fix cycle
|
||||
|ft_ada.txt| Ada (the programming language) support
|
||||
|ft_context.txt| Filetype plugin for ConTeXt
|
||||
|ft_mp.txt| Filetype plugin for METAFONT and MetaPost
|
||||
|ft_ps1.txt| Filetype plugin for Windows PowerShell
|
||||
|ft_raku.txt| Filetype plugin for Raku
|
||||
|ft_rust.txt| Filetype plugin for Rust
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_ole.txt* For Vim version 9.0. Last change: 2019 Dec 07
|
||||
*if_ole.txt* For Vim version 9.0. Last change: 2022 Oct 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -156,18 +156,14 @@ To avoid the message box that pops up to report the result, prepend "-silent":
|
||||
gvim -silent -unregister
|
||||
|
||||
==============================================================================
|
||||
5. MS Visual Studio integration *MSVisualStudio* *VisVim*
|
||||
5. MS Visual Studio integration *MSVisualStudio*
|
||||
|
||||
The OLE version can be used to run Vim as the editor in Microsoft Visual
|
||||
Studio. This is called "VisVim". It is included in the archive that contains
|
||||
the OLE version. The documentation can be found in the runtime directory, the
|
||||
README_VisVim.txt file.
|
||||
The old "VisVim" integration was removed from Vim in patch 9.0.0698.
|
||||
|
||||
|
||||
Using Vim with Visual Studio .Net~
|
||||
|
||||
With .Net you no longer really need VisVim, since .Net studio has support for
|
||||
external editors. Follow these directions:
|
||||
.Net studio has support for external editors. Follow these directions:
|
||||
|
||||
In .Net Studio choose from the menu Tools->External Tools...
|
||||
Add
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 9.0. Last change: 2022 May 21
|
||||
*indent.txt* For Vim version 9.0. Last change: 2022 Oct 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -982,9 +982,12 @@ indentation: >
|
||||
|
||||
PYTHON *ft-python-indent*
|
||||
|
||||
The amount of indent can be set for the following situations. The examples
|
||||
given are the defaults. Note that the dictionary values are set to an
|
||||
expression, so that you can change the value of 'shiftwidth' later.
|
||||
The amount of indent can be set with the `g:python_indent` |Dictionary|, which
|
||||
needs to be created before adding the items: >
|
||||
let g:python_indent = {}
|
||||
The examples given are the defaults. Note that the dictionary values are set
|
||||
to an expression, so that you can change the value of 'shiftwidth' later
|
||||
without having to update these values.
|
||||
|
||||
Indent after an open paren: >
|
||||
let g:python_indent.open_paren = 'shiftwidth() * 2'
|
||||
@@ -1227,13 +1230,31 @@ comments will be indented according to the correctly indented code.
|
||||
|
||||
|
||||
VIM *ft-vim-indent*
|
||||
*g:vim_indent*
|
||||
Vim scripts indentation can be configured with the `g:vim_indent` dictionary
|
||||
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.
|
||||
`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`.
|
||||
`searchpair_timeout` expects a number which will be passed to `searchpair()` as
|
||||
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:
|
||||
|
||||
let g:vim_indent = #{
|
||||
\ line_continuation: shiftwidth() * 3,
|
||||
\ more_in_bracket_block: v:false,
|
||||
\ searchpair_timeout: 100,
|
||||
\ }
|
||||
|
||||
*g:vim_indent_cont*
|
||||
For indenting Vim scripts there is one variable that specifies the amount of
|
||||
indent for a continuation line, a line that starts with a backslash: >
|
||||
|
||||
:let g:vim_indent_cont = shiftwidth() * 3
|
||||
|
||||
Three times shiftwidth is the default value.
|
||||
This variable is equivalent to `g:vim_indent.line_continuation`.
|
||||
It's supported for backward compatibility.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 9.0. Last change: 2022 Jun 11
|
||||
*index.txt* For Vim version 9.0. Last change: 2022 Oct 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1150,7 +1150,7 @@ tag command action ~
|
||||
|:!!| :!! repeat last ":!" command
|
||||
|:#| :# same as ":number"
|
||||
|:&| :& repeat last ":substitute"
|
||||
|:star| :* execute contents of a register
|
||||
|:star| :* use the last Visual area, like :'<,'>
|
||||
|:<| :< shift lines one 'shiftwidth' left
|
||||
|:=| := print the last line number
|
||||
|:>| :> shift lines one 'shiftwidth' right
|
||||
@@ -1277,6 +1277,7 @@ tag command action ~
|
||||
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
||||
|:def| :def define a Vim9 user function
|
||||
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|
||||
|:defer| :defer call function when current function is done
|
||||
|:delcommand| :delc[ommand] delete user-defined command
|
||||
|:delfunction| :delf[unction] delete a user function
|
||||
|:delmarks| :delm[arks] delete marks
|
||||
@@ -1308,6 +1309,7 @@ tag command action ~
|
||||
|:echohl| :echoh[l] set highlighting for echo commands
|
||||
|:echomsg| :echom[sg] same as :echo, put message in history
|
||||
|:echon| :echon same as :echo, but without <EOL>
|
||||
|:echowindow| :echow[indow] same as :echomsg, but use a popup window
|
||||
|:else| :el[se] part of an :if command
|
||||
|:elseif| :elsei[f] part of an :if command
|
||||
|:emenu| :em[enu] execute a menu by name
|
||||
@@ -1356,6 +1358,7 @@ tag command action ~
|
||||
|:highlight| :hi[ghlight] specify highlighting methods
|
||||
|:hide| :hid[e] hide current buffer for a command
|
||||
|:history| :his[tory] print a history list
|
||||
|:horizontal| :hor[izontal] following window command work horizontally
|
||||
|:insert| :i[nsert] insert text
|
||||
|:iabbrev| :ia[bbrev] like ":abbrev" but for Insert mode
|
||||
|:iabclear| :iabc[lear] like ":abclear" but for Insert mode
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.0. Last change: 2022 Apr 06
|
||||
*insert.txt* For Vim version 9.0. Last change: 2022 Sep 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -667,7 +667,7 @@ When the popup menu is displayed there are a few more special keys, see
|
||||
|popupmenu-keys|.
|
||||
|
||||
Note: The keys that are valid in CTRL-X mode are not mapped. This allows for
|
||||
":map ^F ^X^F" to work (where ^F is CTRL-F and ^X is CTRL-X). The key that
|
||||
`:map <C-F> <C-X><C-F>` to work (assuming "<" is not in 'cpo'). The key that
|
||||
ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
|
||||
Also, when doing completion with 'complete' mappings apply as usual.
|
||||
|
||||
@@ -677,11 +677,12 @@ buffer text cannot be changed. Mappings that somehow invoke ":normal i.."
|
||||
will generate an E565 error.
|
||||
|
||||
The following mappings are suggested to make typing the completion commands
|
||||
a bit easier (although they will hide other commands): >
|
||||
:inoremap ^] ^X^]
|
||||
:inoremap ^F ^X^F
|
||||
:inoremap ^D ^X^D
|
||||
:inoremap ^L ^X^L
|
||||
a bit easier (although they will hide other commands; this requires "<" is not
|
||||
in 'cpo'): >
|
||||
:inoremap <C-]> <C-X><C-]>
|
||||
:inoremap <C-F> <C-X><C-F>
|
||||
:inoremap <C-D> <C-X><C-D>
|
||||
:inoremap <C-L> <C-X><C-L>
|
||||
|
||||
As a special case, typing CTRL-R to perform register insertion (see
|
||||
|i_CTRL-R|) will not exit CTRL-X mode. This is primarily to allow the use of
|
||||
@@ -891,7 +892,7 @@ Groß): >
|
||||
endfor
|
||||
return res
|
||||
endfunc
|
||||
|
||||
|
||||
if exists('+thesaurusfunc')
|
||||
set thesaurusfunc=Thesaur
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 9.0. Last change: 2022 Sep 12
|
||||
*intro.txt* For Vim version 9.0. Last change: 2022 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -122,10 +122,10 @@ http://www.vim.org/maillist.php
|
||||
Bug reports: *bugs* *bug-reports* *bugreport.vim*
|
||||
|
||||
There are three ways to report bugs:
|
||||
1. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||
The text will be forwarded to the vim-dev maillist.
|
||||
2. For issues with runtime files, look in the header for an email address or
|
||||
1. For issues with runtime files, look in the header for an email address or
|
||||
any other way to report it to the maintainer.
|
||||
2. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||
The text will be forwarded to the vim-dev maillist.
|
||||
3. Send bug reports to: Vim Developers <vim-dev@vim.org>
|
||||
This is a maillist, you need to become a member first and many people will
|
||||
see the message. If you don't want that, e.g. because it is a security
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 9.0. Last change: 2022 Sep 12
|
||||
*map.txt* For Vim version 9.0. Last change: 2022 Dec 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -10,18 +10,19 @@ This subject is introduced in sections |05.4|, |24.7| and |40.1| of the user
|
||||
manual.
|
||||
|
||||
1. Key mapping |key-mapping|
|
||||
1.1 MAP COMMANDS |:map-commands|
|
||||
1.2 Special arguments |:map-arguments|
|
||||
1.3 Mapping and modes |:map-modes|
|
||||
1.4 Listing mappings |map-listing|
|
||||
1.5 Mapping special keys |:map-special-keys|
|
||||
1.6 Special characters |:map-special-chars|
|
||||
1.7 What keys to map |map-which-keys|
|
||||
1.8 Examples |map-examples|
|
||||
1.9 Using mappings |map-typing|
|
||||
1.10 Mapping alt-keys |:map-alt-keys|
|
||||
1.11 Mapping in modifyOtherKeys mode |modifyOtherKeys|
|
||||
1.12 Mapping an operator |:map-operator|
|
||||
1.1 MAP COMMANDS |:map-commands|
|
||||
1.2 Special arguments |:map-arguments|
|
||||
1.3 Mapping and modes |:map-modes|
|
||||
1.4 Listing mappings |map-listing|
|
||||
1.5 Mapping special keys |:map-special-keys|
|
||||
1.6 Special characters |:map-special-chars|
|
||||
1.7 What keys to map |map-which-keys|
|
||||
1.8 Examples |map-examples|
|
||||
1.9 Using mappings |map-typing|
|
||||
1.10 Mapping alt-keys |:map-alt-keys|
|
||||
1.11 Mapping in modifyOtherKeys mode |modifyOtherKeys|
|
||||
1.12 Mapping with Kitty keyboard protocol |kitty-keyboard-protocol|
|
||||
1.13 Mapping an operator |:map-operator|
|
||||
2. Abbreviations |abbreviations|
|
||||
3. Local mappings and functions |script-local|
|
||||
4. User-defined commands |user-commands|
|
||||
@@ -234,6 +235,9 @@ The search string will not be echoed when using this mapping. Messages from
|
||||
the executed command are still given though. To shut them up too, add a
|
||||
":silent" in the executed command: >
|
||||
:map <silent> ,h :exe ":silent normal /Header\r"<CR>
|
||||
Note that the effect of a command might also be silenced, e.g., when the
|
||||
mapping selects another entry for command line completion it won't be
|
||||
displayed.
|
||||
Prompts will still be given, e.g., for inputdialog().
|
||||
Using "<silent>" for an abbreviation is possible, but will cause redrawing of
|
||||
the command line to fail.
|
||||
@@ -581,6 +585,9 @@ is the start of the last selected Visual area in the current buffer |'<|.
|
||||
The |:filter| command can be used to select what mappings to list. The
|
||||
pattern is matched against the {lhs} and {rhs} in the raw form.
|
||||
|
||||
While mappings are being listed, it is not possible to add or clear mappings,
|
||||
e.g. from a timer callback. *E1309*
|
||||
|
||||
*:map-verbose*
|
||||
When 'verbose' is non-zero, listing a key map will also display where it was
|
||||
last defined. Example: >
|
||||
@@ -964,13 +971,18 @@ using other applications but not when inside Vim.
|
||||
Xterm and a few other terminals can be put in a mode where keys with modifiers
|
||||
are sent with a special escape code. Vim recognizes these codes and can then
|
||||
make a difference between CTRL-H and Backspace, even when Backspace sends the
|
||||
character 8. And many more special keys.
|
||||
character 8. And many more special keys, such as Tab and CTRL-I, which cannot
|
||||
be mapped separately otherwise.
|
||||
|
||||
For xterm modifyOtherKeys is enabled in the builtin termcap entry. If this is
|
||||
not used you can enable modifyOtherKeys with these lines in your vimrc: >
|
||||
let &t_TI = "\<Esc>[>4;2m"
|
||||
let &t_TE = "\<Esc>[>4;m"
|
||||
|
||||
This sets modifyOtherKeys to level 2. Note that modifyOtherKeys level 1 does
|
||||
not work. Some terminals do not support level 2 and then send key codes that
|
||||
Vim will not be able to correctly recognize.
|
||||
|
||||
In case the modifyOtherKeys mode causes problems you can disable it: >
|
||||
let &t_TI = ""
|
||||
let &t_TE = ""
|
||||
@@ -989,16 +1001,61 @@ mapping, see |map-bar|.
|
||||
WARNING: if you map <C-[> you may very well break any key codes that start
|
||||
with Esc. Make sure it comes AFTER other mappings.
|
||||
|
||||
Starting with xterm version 377 Vim can detect the modifyOtherKeys state by
|
||||
requesting it. For this the 't_RK' termcap entry is used. When the response
|
||||
is found then Vim will know whether modifyOtherKeys level 2 is enabled, and
|
||||
handle mappings accordingly.
|
||||
|
||||
Before version 377 Vim automatically detects if the modifyOtherKeys mode was
|
||||
enabled when it spots an escape sequence that must have been created by it.
|
||||
To see if Vim detected such an escape sequence use `:verbose map`, the first
|
||||
line will then show "Seen modifyOtherKeys: true" (possibly translated).
|
||||
|
||||
This automatic detection depends on receiving an escape code starting with
|
||||
"<1b>[27;". This is the normal way xterm sends these key codes. However, if
|
||||
the *formatOtherKeys* resource is set another form is used that is not
|
||||
recognized, therefore you must not set formatOtherKeys.
|
||||
|
||||
A known side effect is that in Insert mode the raw escape sequence is inserted
|
||||
after the CTRL-V key. This can be used to check whether modifyOtherKeys is
|
||||
enabled: In Insert mode type CTRL-SHIFT-V CTRL-V, if you get one byte then
|
||||
modifyOtherKeys is off, if you get <1b>27;5;118~ then it is on.
|
||||
modifyOtherKeys is off, if you get <1b>[27;5;118~ then it is on.
|
||||
|
||||
Note that xterm up to version 376 has a bug that makes Shift-Esc send a
|
||||
regular Esc code, the Shift modifier is dropped.
|
||||
|
||||
When the 'esckeys' option is off, then modifyOtherKeys will be disabled in
|
||||
Insert mode to avoid every key with a modifier causing Insert mode to end.
|
||||
|
||||
|
||||
1.12 MAPPING AN OPERATOR *:map-operator*
|
||||
1.12 MAPPING WITH KITTY KEYBOARD PROTOCOL *kitty-keyboard-protocol*
|
||||
|
||||
If the value of 'term' contains "kitty" then Vim will send out an escape
|
||||
sequence to enable the Kitty keyboard protocol. This can be changed with the
|
||||
'keyprotocol' option.
|
||||
|
||||
Like modifyOtherKeys, this will make it possible to distinguish between more
|
||||
keys with modifiers. Also, this protocol sends an escape sequence for the Esc
|
||||
key, so that Vim does not need to use a timeout to know whether receiving an
|
||||
Esc character means the Esc key was pressed or it's the start of an escape
|
||||
sequence.
|
||||
|
||||
Vim automatically detects if the Kitty keyboard protocol was enabled when it
|
||||
spots the response to the status request (this should be part of the |t_TI|
|
||||
termcap entry). To see if Vim detected such an escape sequence use: >
|
||||
:verbose map
|
||||
The first line will then show "Kitty keyboard protocol: {value}" (possibly
|
||||
translated). The meaning of {value}:
|
||||
Unknown no status received yet
|
||||
Off protocol is not used
|
||||
On protocol is used
|
||||
Disabled protocol was used but expected to have been disabled
|
||||
by 't_TE'
|
||||
Cleared protocol expected to have beeen disabled by 't_TE',
|
||||
previous state is unknown
|
||||
|
||||
|
||||
1.13 MAPPING AN OPERATOR *:map-operator*
|
||||
|
||||
An operator is used before a {motion} command. To define your own operator
|
||||
you must create a mapping that first sets the 'operatorfunc' option and then
|
||||
@@ -1468,6 +1525,8 @@ See |:verbose-cmd| for more information.
|
||||
|
||||
:delc[ommand] {cmd} *:delc* *:delcommand* *E184*
|
||||
Delete the user-defined command {cmd}.
|
||||
This is not allowed while listing commands, e.g. from
|
||||
a timer. *E1311*
|
||||
|
||||
:delc[ommand] -buffer {cmd} *E1237*
|
||||
Delete the user-defined command {cmd} that was defined
|
||||
@@ -1478,7 +1537,7 @@ See |:verbose-cmd| for more information.
|
||||
|
||||
|
||||
Command attributes ~
|
||||
*command-attributes*
|
||||
*command-attributes*
|
||||
User-defined commands are treated by Vim just like any other Ex commands. They
|
||||
can have arguments, or have a range specified. Arguments are subject to
|
||||
completion as filenames, buffers, etc. Exactly how this works depends upon the
|
||||
@@ -1636,7 +1695,7 @@ Possible attributes are:
|
||||
number.
|
||||
-count=N A count (default N) which is specified either in the line
|
||||
number position, or as an initial argument (like |:Next|).
|
||||
-count acts like -count=0
|
||||
-count Acts like -count=0
|
||||
|
||||
Note that -range=N and -count=N are mutually exclusive - only one should be
|
||||
specified.
|
||||
@@ -1654,7 +1713,7 @@ Possible values are (second column is the short name used in listing):
|
||||
-addr=windows win Range for windows
|
||||
-addr=tabs tab Range for tab pages
|
||||
-addr=quickfix qf Range for quickfix entries
|
||||
-addr=other ? other kind of range; can use ".", "$" and "%"
|
||||
-addr=other ? Other kind of range; can use ".", "$" and "%"
|
||||
as with "lines" (this is the default for
|
||||
-count)
|
||||
|
||||
@@ -1761,7 +1820,8 @@ The valid escape sequences are
|
||||
If the first two characters of an escape sequence are "q-" (for example,
|
||||
<q-args>) then the value is quoted in such a way as to make it a valid value
|
||||
for use in an expression. This uses the argument as one single value.
|
||||
When there is no argument <q-args> is an empty string.
|
||||
When there is no argument <q-args> is an empty string. See the
|
||||
|q-args-example| below.
|
||||
*<f-args>*
|
||||
To allow commands to pass their arguments on to a user-defined function, there
|
||||
is a special form <f-args> ("function args"). This splits the command
|
||||
@@ -1771,7 +1831,7 @@ See the Mycmd example below. If no arguments are given <f-args> is removed.
|
||||
To embed whitespace into an argument of <f-args>, prepend a backslash.
|
||||
<f-args> replaces every pair of backslashes (\\) with one backslash. A
|
||||
backslash followed by a character other than white space or a backslash
|
||||
remains unmodified. Overview:
|
||||
remains unmodified. Also see |f-args-example| below. Overview:
|
||||
|
||||
command <f-args> ~
|
||||
XX ab 'ab'
|
||||
@@ -1785,7 +1845,8 @@ remains unmodified. Overview:
|
||||
XX a\\\\b 'a\\b'
|
||||
XX a\\\\ b 'a\\', 'b'
|
||||
|
||||
Examples >
|
||||
|
||||
Examples for user commands: >
|
||||
|
||||
" Delete everything after here to the end
|
||||
:com Ddel +,$d
|
||||
@@ -1801,7 +1862,8 @@ Examples >
|
||||
" Count the number of lines in the range
|
||||
:com! -range -nargs=0 Lines echo <line2> - <line1> + 1 "lines"
|
||||
|
||||
" Call a user function (example of <f-args>)
|
||||
< *f-args-example*
|
||||
Call a user function (example of <f-args>) >
|
||||
:com -nargs=* Mycmd call Myfunc(<f-args>)
|
||||
|
||||
When executed as: >
|
||||
@@ -1809,7 +1871,8 @@ When executed as: >
|
||||
This will invoke: >
|
||||
:call Myfunc("arg1","arg2")
|
||||
|
||||
:" A more substantial example
|
||||
< *q-args-example*
|
||||
A more substantial example: >
|
||||
:function Allargs(command)
|
||||
: let i = 0
|
||||
: while i < argc()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 9.0. Last change: 2022 Jan 26
|
||||
*message.txt* For Vim version 9.0. Last change: 2022 Oct 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -635,6 +635,7 @@ probably means that some other program changed the file. You will have to
|
||||
find out what happened, and decide which version of the file you want to keep.
|
||||
Set the 'autoread' option if you want to do this automatically.
|
||||
This message is not given when 'buftype' is not empty.
|
||||
Also see the |FileChangedShell| autocommand.
|
||||
|
||||
There is one situation where you get this message even though there is nothing
|
||||
wrong: If you save a file in Windows on the day the daylight saving time
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.0. Last change: 2022 Apr 18
|
||||
*motion.txt* For Vim version 9.0. Last change: 2022 Sep 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1145,7 +1145,7 @@ g; Go to [count] older position in change list.
|
||||
(not a motion command)
|
||||
|
||||
*g,* *E663*
|
||||
g, Go to [count] newer cursor position in change list.
|
||||
g, Go to [count] newer position in change list.
|
||||
Just like |g;| but in the opposite direction.
|
||||
(not a motion command)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.0. Last change: 2022 Sep 09
|
||||
*options.txt* For Vim version 9.0. Last change: 2022 Nov 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1626,6 +1626,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Note that v:charconvert_from and v:charconvert_to may be different
|
||||
from 'encoding'. Vim internally uses UTF-8 instead of UCS-2 or UCS-4.
|
||||
|
||||
The advantage of using a function call without arguments is that it is
|
||||
faster, see |expr-option-function|.
|
||||
|
||||
Encryption is not done by Vim when using 'charconvert'. If you want
|
||||
to encrypt the file after conversion, 'charconvert' should take care
|
||||
of this.
|
||||
@@ -1702,7 +1705,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
after that. Therefore do not append an item with += but use ^= to
|
||||
prepend, e.g.: >
|
||||
set clipboard^=unnamed
|
||||
< These names are recognized:
|
||||
< When using the GUI see |'go-A'|.
|
||||
These names are recognized:
|
||||
|
||||
*clipboard-unnamed*
|
||||
unnamed When included, Vim will use the clipboard register '*'
|
||||
@@ -2938,7 +2942,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'display' 'dy' string (default "", set to "truncate" in
|
||||
|defaults.vim|)
|
||||
global
|
||||
Change the way text is displayed. This is comma-separated list of
|
||||
Change the way text is displayed. This is a comma-separated list of
|
||||
flags:
|
||||
lastline When included, as much as possible of the last line
|
||||
in a window will be displayed. "@@@" is put in the
|
||||
@@ -2952,6 +2956,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When neither "lastline" nor "truncate" is included, a last line that
|
||||
doesn't fit is replaced with "@" lines.
|
||||
|
||||
The "@" character can be changed by setting the "lastline" item in
|
||||
'fillchars'. The character is highlighted with |hl-NonText|.
|
||||
|
||||
*'eadirection'* *'ead'*
|
||||
'eadirection' 'ead' string (default "both")
|
||||
global
|
||||
@@ -3041,6 +3048,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When 'encoding' is set to a Unicode encoding, and 'fileencodings' was
|
||||
not set yet, the default for 'fileencodings' is changed.
|
||||
|
||||
*'endoffile'* *'eof'* *'noendoffile'* *'noeof'*
|
||||
'endoffile' 'eof' boolean (default off)
|
||||
local to buffer
|
||||
Indicates that a CTRL-Z character was found at the end of the file
|
||||
when reading it. Normally only happens when 'fileformat' is "dos".
|
||||
When writing a file and this option is off and the 'binary' option
|
||||
is on, or 'fixeol' option is off, no CTRL-Z will be written at the
|
||||
end of the file.
|
||||
See |eol-and-eof| for example settings.
|
||||
|
||||
*'endofline'* *'eol'* *'noendofline'* *'noeol'*
|
||||
'endofline' 'eol' boolean (default on)
|
||||
local to buffer
|
||||
@@ -3055,6 +3072,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
to remember the presence of a <EOL> for the last line in the file, so
|
||||
that when you write the file the situation from the original file can
|
||||
be kept. But you can change it if you want to.
|
||||
See |eol-and-eof| for example settings.
|
||||
|
||||
*'equalalways'* *'ea'* *'noequalalways'* *'noea'*
|
||||
'equalalways' 'ea' boolean (default on)
|
||||
@@ -3416,6 +3434,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
foldsep '|' open fold middle character
|
||||
diff '-' deleted lines of the 'diff' option
|
||||
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 '='
|
||||
@@ -3438,16 +3457,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
fold Folded |hl-Folded|
|
||||
diff DiffDelete |hl-DiffDelete|
|
||||
eob EndOfBuffer |hl-EndOfBuffer|
|
||||
lastline NonText |hl-NonText|
|
||||
|
||||
*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
|
||||
'fixendofline' 'fixeol' boolean (default on)
|
||||
local to buffer
|
||||
When writing a file and this option is on, <EOL> at the end of file
|
||||
will be restored if missing. Turn this option off if you want to
|
||||
will be restored if missing. Turn this option off if you want to
|
||||
preserve the situation from the original file.
|
||||
When the 'binary' option is set the value of this option doesn't
|
||||
matter.
|
||||
See the 'endofline' option.
|
||||
See |eol-and-eof| for example settings.
|
||||
|
||||
*'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
|
||||
'fkmap' 'fk' boolean (default off)
|
||||
@@ -3663,6 +3684,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< This will invoke the mylang#Format() function in the
|
||||
autoload/mylang.vim file in 'runtimepath'. |autoload|
|
||||
|
||||
The advantage of using a function call without arguments is that it is
|
||||
faster, see |expr-option-function|.
|
||||
|
||||
The expression is also evaluated when 'textwidth' is set and adding
|
||||
text beyond that limit. This happens under the same conditions as
|
||||
when internal formatting is used. Make sure the cursor is kept in the
|
||||
@@ -3978,6 +4002,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"A" - yes
|
||||
"aA" yes yes
|
||||
|
||||
When using a terminal see the 'clipboard' option.
|
||||
|
||||
*'go-c'*
|
||||
'c' Use console dialogs instead of popup dialogs for simple
|
||||
choices.
|
||||
@@ -4522,20 +4548,27 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|+find_in_path| or |+eval| features}
|
||||
Expression to be used to transform the string found with the 'include'
|
||||
option to a file name. Mostly useful to change "." to "/" for Java: >
|
||||
:set includeexpr=substitute(v:fname,'\\.','/','g')
|
||||
:setlocal includeexpr=substitute(v:fname,'\\.','/','g')
|
||||
< The "v:fname" variable will be set to the file name that was detected.
|
||||
|
||||
Note the double backslash: the `:set` command first halves them, then
|
||||
one remains it the value, where "\." matches a dot literally. For
|
||||
simple character replacements `tr()` avoids the need for escaping: >
|
||||
:setlocal includeexpr=tr(v:fname,'.','/')
|
||||
<
|
||||
Also used for the |gf| command if an unmodified file name can't be
|
||||
found. Allows doing "gf" on the name after an 'include' statement.
|
||||
Also used for |<cfile>|.
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
set includeexpr=s:MyIncludeExpr(v:fname)
|
||||
set includeexpr=<SID>SomeIncludeExpr(v:fname)
|
||||
setlocal includeexpr=s:MyIncludeExpr()
|
||||
setlocal includeexpr=<SID>SomeIncludeExpr()
|
||||
< Otherwise, the expression is evaluated in the context of the script
|
||||
where the option was set, thus script-local items are available.
|
||||
|
||||
It is more efficient if the value is just a function call without
|
||||
arguments, see |expr-option-function|.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
@@ -4604,7 +4637,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
in Insert mode as specified with the 'indentkeys' option.
|
||||
When this option is not empty, it overrules the 'cindent' and
|
||||
'smartindent' indenting. When 'lisp' is set, this option is
|
||||
overridden by the Lisp indentation algorithm.
|
||||
is only used when 'lispoptions' contains "expr:1".
|
||||
When 'paste' is set this option is not used for indenting.
|
||||
The expression is evaluated with |v:lnum| set to the line number for
|
||||
which the indent is to be computed. The cursor is also in this line
|
||||
@@ -4617,6 +4650,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Otherwise, the expression is evaluated in the context of the script
|
||||
where the option was set, thus script-local items are available.
|
||||
|
||||
The advantage of using a function call without arguments is that it is
|
||||
faster, see |expr-option-function|.
|
||||
|
||||
The expression must return the number of spaces worth of indent. It
|
||||
can return "-1" to keep the current indent (this means 'autoindent' is
|
||||
used for the indent).
|
||||
@@ -4856,6 +4892,51 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<PageUp> and <PageDown>.
|
||||
The 'keymodel' option is set by the |:behave| command.
|
||||
|
||||
*'keyprotocol'* *'kpc'*
|
||||
'keyprotocol' 'kpc' string (default: see below)
|
||||
global
|
||||
Specifies what keyboard protocol to use depending on the value of
|
||||
'term'. The supported keyboard protocols names are:
|
||||
none whatever the terminal uses
|
||||
mok2 modifyOtherKeys level 2, as supported by xterm
|
||||
kitty Kitty keyboard protocol, as supported by Kitty
|
||||
|
||||
The option value is a list of comma separated items. Each item has
|
||||
a pattern that is matched against the 'term' option, a colon and the
|
||||
protocol name to be used. To illustrate this, the default value would
|
||||
be set with: >
|
||||
set keyprotocol=kitty:kitty,foot:kitty,wezterm:kitty,xterm:mok2
|
||||
|
||||
< This means that when 'term' contains "kitty, "foot" or "wezterm"
|
||||
somewhere then the "kitty" protocol is used. When 'term' contains
|
||||
"xterm" somewhere, then the "mok2" protocol is used.
|
||||
|
||||
The first match is used, thus if you want to have "kitty" use the
|
||||
kitty protocol, but "badkitty" not, then you should match "badkitty"
|
||||
first and use the "none" value: >
|
||||
set keyprotocol=badkitty:none,kitty:kitty
|
||||
<
|
||||
The option is used after 'term' has been changed. First the termcap
|
||||
entries are set, possibly using the builtin list, see |builtin-terms|.
|
||||
Then this option is inspected and if there is a match and a protocol
|
||||
is specified the following happens:
|
||||
none Nothing, the regular t_TE and t_TI values remain
|
||||
|
||||
mok2 The t_TE value is changed to:
|
||||
CSI >4;m disables modifyOtherKeys
|
||||
The t_TI value is changed to:
|
||||
CSI >4;2m enables modifyOtherKeys
|
||||
CSI ?4m request the modifyOtherKeys state
|
||||
|
||||
kitty The t_TE value is changed to:
|
||||
CSI >4;m disables modifyOtherKeys
|
||||
CSI =0;1u disables the kitty keyboard protocol
|
||||
The t_TI value is changed to:
|
||||
CSI =1;1u enables the kitty keyboard protocol
|
||||
CSI ?u request kitty keyboard protocol state
|
||||
CSI >c request the termresponse
|
||||
|
||||
|
||||
*'keywordprg'* *'kp'*
|
||||
'keywordprg' 'kp' string (default "man" or "man -s", DOS: ":help",
|
||||
VMS: "help")
|
||||
@@ -5043,6 +5124,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
calling an external program if 'equalprg' is empty.
|
||||
This option is not used when 'paste' is set.
|
||||
|
||||
*'lispoptions'* *'lop'*
|
||||
'lispoptions' 'lop' string (default "")
|
||||
local to buffer
|
||||
Comma-separated list of items that influence the Lisp indenting when
|
||||
enabled with the |'lisp'| option. Currently only one item is
|
||||
supported:
|
||||
expr:1 use 'indentexpr' for Lisp indenting when it is set
|
||||
expr:0 do not use 'indentexpr' for Lisp indenting (default)
|
||||
Note that when using 'indentexpr' the `=` operator indents all the
|
||||
lines, otherwise the first line is not indented (Vi-compatible).
|
||||
|
||||
*'lispwords'* *'lw'*
|
||||
'lispwords' 'lw' string (default is very long)
|
||||
global or local to buffer |global-local|
|
||||
@@ -6456,8 +6548,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'ruler'* *'ru'* *'noruler'* *'noru'*
|
||||
'ruler' 'ru' boolean (default off, set in |defaults.vim|)
|
||||
global
|
||||
{not available when compiled without the
|
||||
|+cmdline_info| feature}
|
||||
Show the line and column number of the cursor position, separated by a
|
||||
comma. When there is room, the relative position of the displayed
|
||||
text in the file is shown on the far right:
|
||||
@@ -7059,6 +7149,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
c don't give |ins-completion-menu| messages. For example,
|
||||
"-- XXX completion (YYY)", "match 1 of 2", "The only match",
|
||||
"Pattern not found", "Back at original", etc.
|
||||
C don't give messages while scanning for ins-completion items,
|
||||
for instance "scanning tags"
|
||||
q use "recording" instead of "recording @a"
|
||||
F don't give the file info when editing a file, like `:silent`
|
||||
was used for the command; note that this also affects messages
|
||||
@@ -7115,8 +7207,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'showcmd' 'sc' boolean (Vim default: on, off for Unix,
|
||||
Vi default: off, set in |defaults.vim|)
|
||||
global
|
||||
{not available when compiled without the
|
||||
|+cmdline_info| feature}
|
||||
Show (partial) command in the last line of the screen. Set this
|
||||
option off if your terminal is slow.
|
||||
In Visual mode the size of the selected area is shown:
|
||||
@@ -7287,6 +7377,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
reset.
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'*
|
||||
'smoothscroll' 'sms' boolean (default off)
|
||||
local to window
|
||||
Scrolling works with screen lines. When 'wrap' is set and the first
|
||||
line in the window wraps part of it may not be visible, as if it is
|
||||
above the window. "<<<" is displayed at the start of the first line,
|
||||
highlighted with |hl-NonText|.
|
||||
NOTE: only partly implemented, currently works with CTRL-E, CTRL-Y
|
||||
and scrolling with the mouse.
|
||||
|
||||
*'softtabstop'* *'sts'*
|
||||
'softtabstop' 'sts' number (default 0)
|
||||
local to buffer
|
||||
@@ -7467,9 +7567,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The file is used for all languages.
|
||||
|
||||
expr:{expr} Evaluate expression {expr}. Use a function to avoid
|
||||
trouble with spaces. |v:val| holds the badly spelled
|
||||
word. The expression must evaluate to a List of
|
||||
Lists, each with a suggestion and a score.
|
||||
trouble with spaces. Best is to call a function
|
||||
without arguments, see |expr-option-function|.
|
||||
|v:val| holds the badly spelled word. The expression
|
||||
must evaluate to a List of Lists, each with a
|
||||
suggestion and a score.
|
||||
Example:
|
||||
[['the', 33], ['that', 44]] ~
|
||||
Set 'verbose' and use |z=| to see the scores that the
|
||||
@@ -7493,24 +7595,28 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When on, splitting a window will put the new window below the current
|
||||
one. |:split|
|
||||
|
||||
*'splitkeep'* *'spk'*
|
||||
'splitkeep' 'spk' string (default "cursor")
|
||||
global
|
||||
The value of this option determines the scroll behavior when opening,
|
||||
closing or resizing horizontal splits.
|
||||
|
||||
Possible values are:
|
||||
cursor Keep the same relative cursor position.
|
||||
screen Keep the text on the same screen line.
|
||||
topline Keep the topline the same.
|
||||
|
||||
For the "screen" and "topline" values, the cursor position will be
|
||||
changed when necessary. In this case, the jumplist will be populated
|
||||
with the previous cursor position. For "screen", the text cannot always
|
||||
be kept on the same screen line when 'wrap' is enabled.
|
||||
|
||||
*'splitright'* *'spr'* *'nosplitright'* *'nospr'*
|
||||
'splitright' 'spr' boolean (default off)
|
||||
global
|
||||
When on, splitting a window will put the new window right of the
|
||||
current one. |:vsplit|
|
||||
|
||||
*'splitscroll'* *'spsc'* *'nosplitscroll'* *'nospsc'*
|
||||
'splitscroll' 'spsc' boolean (default on)
|
||||
global
|
||||
The value of this option determines the scroll behavior when opening,
|
||||
closing or resizing horizontal splits. When "on", splitting a window
|
||||
horizontally will keep the same relative cursor position in the old and
|
||||
new window, as well windows that are resized. When "off", scrolling
|
||||
will be avoided to stabilize the window content. Instead, the cursor
|
||||
position will be changed when necessary. In this case, the jumplist
|
||||
will be populated with the previous cursor position. Scrolling cannot
|
||||
be guaranteed to be avoided when 'wrap' is enabled.
|
||||
|
||||
*'startofline'* *'sol'* *'nostartofline'* *'nosol'*
|
||||
'startofline' 'sol' boolean (default on)
|
||||
global
|
||||
@@ -8464,10 +8570,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
xterm entries...).
|
||||
|
||||
*'ttyfast'* *'tf'* *'nottyfast'* *'notf'*
|
||||
'ttyfast' 'tf' boolean (default off, on when 'term' is xterm, hpterm,
|
||||
sun-cmd, screen, rxvt, dtterm or
|
||||
iris-ansi; also on when running Vim in
|
||||
a DOS console)
|
||||
'ttyfast' 'tf' boolean (default on)
|
||||
global
|
||||
Indicates a fast terminal connection. More characters will be sent to
|
||||
the screen for redrawing, instead of using insert/delete line
|
||||
@@ -8477,6 +8580,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
line for lines that wrap. This helps when using copy/paste with the
|
||||
mouse in an xterm and other terminals.
|
||||
|
||||
The default used to be set only for some terminal names, but these
|
||||
days nearly all terminals are fast, therefore the default is now "on".
|
||||
If you have a slow connection you may want to set this option off,
|
||||
e.g. depending on the host name: >
|
||||
if hostname() =~ 'faraway'
|
||||
set nottyfast
|
||||
endif
|
||||
<
|
||||
*'ttymouse'* *'ttym'*
|
||||
'ttymouse' 'ttym' string (default depends on 'term')
|
||||
global
|
||||
|
||||
@@ -47,7 +47,7 @@ features you can enable/disable.
|
||||
|
||||
Haiku uses "ncurses6" as its terminal library, therefore you need to have
|
||||
"ncurses6_devel" package installed from HaikuDepot in order to configure
|
||||
the Haiku build. Just append "--with-tlib=ncurses6" to ./configure command
|
||||
the Haiku build. Just append "--with-tlib=ncurses" to ./configure command.
|
||||
|
||||
Now you should use "make" to compile Vim, then "make install" to install it.
|
||||
For seamless integration into Haiku, the GUI-less vim binary should be
|
||||
@@ -56,12 +56,14 @@ additionally installed over the GUI version. Typical build commands are:
|
||||
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
|
||||
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
|
||||
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
|
||||
--with-tlib=ncurses
|
||||
make clean
|
||||
make install
|
||||
|
||||
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
|
||||
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
|
||||
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
|
||||
--with-tlib=ncurses \
|
||||
--disable-gui
|
||||
make clean
|
||||
make install
|
||||
@@ -93,7 +95,7 @@ The default value for $VIM is set at compile time and can be determined with:
|
||||
|
||||
:version
|
||||
|
||||
The normal value is /boot/system/data/vim for Haikuports version,
|
||||
The normal value is /boot/system/data/vim for Haikuports version,
|
||||
/boot/system/non-packaged/data/vim for manual builds. If you don't like it
|
||||
you can set the VIM environment variable to override this, or set 'helpfile'
|
||||
in your .vimrc: >
|
||||
@@ -221,11 +223,11 @@ Thank you, all!
|
||||
|
||||
|
||||
14. Bugs & to-do *haiku-bugs*
|
||||
|
||||
|
||||
The port is under development now and far away from the perfect state. For bug
|
||||
reports, patches and wishes, please use the Vim mailing list or Vim Github
|
||||
repository.
|
||||
|
||||
|
||||
Mailing list: https://www.vim.org/maillist.php
|
||||
Vim Github repository: https://github.com/vim/vim
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_unix.txt* For Vim version 9.0. Last change: 2005 Mar 29
|
||||
*os_unix.txt* For Vim version 9.0. Last change: 2022 Nov 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -28,10 +28,11 @@ system() is used, which is a bit slower. The output of ":version" includes
|
||||
can be changed at compile time.
|
||||
(For forking of the GUI version see |gui-fork|.)
|
||||
|
||||
Because terminal updating under Unix is often slow (e.g. serial line
|
||||
terminal, shell window in suntools), the 'showcmd' and 'ruler' options
|
||||
are off by default. If you have a fast terminal, try setting them on. You
|
||||
might also want to set 'ttyfast'.
|
||||
For historic reasons terminal updating under Unix is expected to be slow (e.g.
|
||||
serial line terminal, shell window in suntools), the 'showcmd' and 'ruler'
|
||||
options are off by default. If you have a fast terminal, try setting them
|
||||
on: >
|
||||
set showcmd ruler
|
||||
|
||||
When using Vim in an xterm the mouse clicks can be used by Vim by setting
|
||||
'mouse' to "a". If there is access to an X-server gui style copy/paste will
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_vms.txt* For Vim version 9.0. Last change: 2021 Jan 04
|
||||
*os_vms.txt* For Vim version 9.0. Last change: 2022 Nov 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL
|
||||
@@ -331,10 +331,10 @@ features, it is worth to choose non GUI executables.
|
||||
8.1 Backspace/delete
|
||||
|
||||
There are backspace/delete key inconsistencies with VMS.
|
||||
:fixdel doesn't do the trick, but the solution is: >
|
||||
:fixdel doesn't do the trick, but the solution is (without "<" in 'cpo'): >
|
||||
|
||||
:inoremap ^? ^H " for terminal mode
|
||||
:inoremap <Del> ^H " for gui mode
|
||||
:inoremap <C-?> <C-H> " for terminal mode
|
||||
:inoremap <Del> <C-H> " for gui mode
|
||||
|
||||
Read more in ch: 8.6 (Terminal problems).
|
||||
(Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)
|
||||
@@ -458,18 +458,11 @@ Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to
|
||||
|
||||
Vim will also recognize that they are fast terminals.
|
||||
|
||||
If you have some annoying line jumping on the screen between windows add to
|
||||
your .vimrc file: >
|
||||
|
||||
set ttyfast " set fast terminal
|
||||
|
||||
Note: if you're using Vim on remote host or through a very slow connection, it's
|
||||
recommended to avoid the fast terminal option with: >
|
||||
If you're using Vim on remote host or through a very slow connection, you
|
||||
might want to reset fast terminal option with: >
|
||||
|
||||
set nottyfast " set terminal to slow mode
|
||||
|
||||
(Zoltan Arpadffy, Vim 5.6)
|
||||
|
||||
|
||||
8.7 Hex-editing and other external tools
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.0. Last change: 2022 Mar 04
|
||||
*pattern.txt* For Vim version 9.0. Last change: 2022 Sep 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -134,6 +134,11 @@ gD Goto global Declaration. When the cursor is on a
|
||||
CTRL-C Interrupt current (search) command. Use CTRL-Break on
|
||||
MS-Windows |dos-CTRL-Break|.
|
||||
In Normal mode, any pending command is aborted.
|
||||
When Vim was started with output redirected and there
|
||||
are no changed buffers CTRL-C exits Vim. That is to
|
||||
help users who use "vim file | grep word" and don't
|
||||
know how to get out (blindly typing :qa<CR> would
|
||||
work).
|
||||
|
||||
*:noh* *:nohlsearch*
|
||||
:noh[lsearch] Stop the highlighting for the 'hlsearch' option. It
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_tar.txt* For Vim version 9.0. Last change: 2020 Jan 07
|
||||
*pi_tar.txt* For Vim version 9.0. Last change: 2022 Oct 17
|
||||
|
||||
+====================+
|
||||
| Tar File Interface |
|
||||
@@ -80,25 +80,25 @@ Copyright 2005-2017: *tar-copyright*
|
||||
|
||||
These options are variables that one may change, typically in one's
|
||||
<.vimrc> file.
|
||||
Default
|
||||
Variable Value Explanation
|
||||
*g:tar_browseoptions* "Ptf" used to get a list of contents
|
||||
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
|
||||
*g:tar_cmd* "tar" the name of the tar program
|
||||
*g:tar_nomax* 0 if true, file window will not be maximized
|
||||
*g:tar_secure* undef if exists:
|
||||
Default
|
||||
Variable Value Explanation
|
||||
*g:tar_browseoptions* "Ptf" used to get a list of contents
|
||||
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
|
||||
*g:tar_cmd* "tar" the name of the tar program
|
||||
*g:tar_nomax* 0 if true, file window will not be maximized
|
||||
*g:tar_secure* undef if exists:
|
||||
"--"s will be used to prevent unwanted
|
||||
option expansion in tar commands.
|
||||
Please be sure that your tar command
|
||||
accepts "--"; Posix compliant tar
|
||||
utilities do accept them.
|
||||
if not exists:
|
||||
The tar plugin will reject any tar
|
||||
The tar plugin will reject any tar
|
||||
files or member files that begin with
|
||||
"-"
|
||||
Not all tar's support the "--" which is why
|
||||
it isn't default.
|
||||
*g:tar_writeoptions* "uf" used to update/replace a file
|
||||
*g:tar_writeoptions* "uf" used to update/replace a file
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 9.0. Last change: 2021 Nov 08
|
||||
*pi_zip.txt* For Vim version 9.0. Last change: 2022 Oct 17
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -39,7 +39,7 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
|
||||
OPTIONS~
|
||||
|
||||
*g:zip_nomax*
|
||||
*g:zip_nomax*
|
||||
|
||||
If this variable exists and is true, the file window will not be
|
||||
automatically maximized when opened.
|
||||
@@ -54,21 +54,21 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
under Windows ("). If you'd rather have no quotes, simply set
|
||||
g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>.
|
||||
|
||||
*g:zip_unzipcmd*
|
||||
*g:zip_unzipcmd*
|
||||
Use this option to specify the program which does the duty of "unzip".
|
||||
It's used during browsing. By default: >
|
||||
let g:zip_unzipcmd= "unzip"
|
||||
let g:zip_unzipcmd= "unzip"
|
||||
<
|
||||
*g:zip_zipcmd*
|
||||
Use this option to specify the program which does the duty of "zip".
|
||||
It's used during the writing (updating) of a file already in a zip
|
||||
file; by default: >
|
||||
let g:zip_zipcmd= "zip"
|
||||
let g:zip_zipcmd= "zip"
|
||||
<
|
||||
*g:zip_extractcmd*
|
||||
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
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
<
|
||||
PREVENTING LOADING~
|
||||
|
||||
@@ -103,14 +103,14 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
==============================================================================
|
||||
4. History *zip-history* {{{1
|
||||
v32 Oct 22, 2021 * to avoid an issue with a vim 8.2 patch, zipfile: has
|
||||
been changed to zipfile:// . This often shows up
|
||||
been changed to zipfile:// . This often shows up
|
||||
as zipfile:/// with zipped files that are root-based.
|
||||
v29 Apr 02, 2017 * (Klartext) reported that an encrypted zip file could
|
||||
opened but the swapfile held unencrypted contents.
|
||||
opened but the swapfile held unencrypted contents.
|
||||
The solution is to edit the contents of a zip file
|
||||
using the |:noswapfile| modifier.
|
||||
v28 Oct 08, 2014 * changed the sanity checks for executables to reflect
|
||||
the command actually to be attempted in zip#Read()
|
||||
the command actually to be attempted in zip#Read()
|
||||
and zip#Write()
|
||||
* added the extraction of a file capability
|
||||
Nov 30, 2015 * added *.epub to the |g:zipPlugin_ext| list
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 9.0. Last change: 2022 Jun 16
|
||||
*popup.txt* For Vim version 9.0. Last change: 2022 Oct 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -347,6 +347,12 @@ popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
|
||||
See the example here: |popup_dialog-example|
|
||||
|
||||
|
||||
popup_findecho() *popup_findecho()*
|
||||
Get the |window-ID| for the popup that shows messages for the
|
||||
`:echowindow` command. Return zero if there is none.
|
||||
Mainly useful to hide the popup.
|
||||
|
||||
|
||||
popup_findinfo() *popup_findinfo()*
|
||||
Get the |window-ID| for the popup info window, as it used by
|
||||
the popup menu. See |complete-popup|. The info popup is
|
||||
@@ -360,7 +366,6 @@ popup_findpreview() *popup_findpreview()*
|
||||
Get the |window-ID| for the popup preview window.
|
||||
Return zero if there is none.
|
||||
|
||||
|
||||
popup_getoptions({id}) *popup_getoptions()*
|
||||
Return the {options} for popup {id} in a Dict.
|
||||
A zero value means the option was not set. For "zindex" the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*print.txt* For Vim version 9.0. Last change: 2022 Jan 23
|
||||
*print.txt* For Vim version 9.0. Last change: 2022 Oct 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -158,13 +158,16 @@ currently specified printdevice: >
|
||||
If you change this option, using a function is an easy way to avoid having to
|
||||
escape all the spaces. Example: >
|
||||
|
||||
:set printexpr=PrintFile(v:fname_in)
|
||||
:function PrintFile(fname)
|
||||
: call system("ghostview " .. a:fname)
|
||||
: call delete(a:fname)
|
||||
:set printexpr=PrintFile()
|
||||
:function PrintFile()
|
||||
: call system("ghostview " .. v:fname_in)
|
||||
: call delete(v:fname_in)
|
||||
: return v:shell_error
|
||||
:endfunc
|
||||
|
||||
It is more efficient if the option is set to just a function call,
|
||||
see |expr-option-function|.
|
||||
|
||||
Be aware that some print programs return control before they have read the
|
||||
file. If you delete the file too soon it will not be printed. These programs
|
||||
usually offer an option to have them remove the file when printing is done.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.0. Last change: 2022 Feb 22
|
||||
*quickfix.txt* For Vim version 9.0. Last change: 2022 Sep 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -478,7 +478,7 @@ You can parse a list of lines using 'errorformat' without creating or
|
||||
modifying a quickfix list using the |getqflist()| function. Examples: >
|
||||
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
|
||||
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
|
||||
This returns a dictionary where the 'items' key contains the list of quickfix
|
||||
This returns a dictionary where the "items" key contains the list of quickfix
|
||||
entries parsed from lines. The following shows how to use a custom
|
||||
'errorformat' to parse the lines without modifying the 'errorformat' option: >
|
||||
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
|
||||
@@ -597,7 +597,7 @@ can go back to the unfiltered list using the |:colder|/|:lolder| command.
|
||||
quickfix command or function, the |b:changedtick|
|
||||
variable is incremented. You can get the number of
|
||||
this buffer using the getqflist() and getloclist()
|
||||
functions by passing the 'qfbufnr' item. For a
|
||||
functions by passing the "qfbufnr" item. For a
|
||||
location list, this buffer is wiped out when the
|
||||
location list is removed.
|
||||
|
||||
@@ -2011,7 +2011,7 @@ The function should return a single line of text to display in the quickfix
|
||||
window for each entry from start_idx to end_idx. The function can obtain
|
||||
information about the entries using the |getqflist()| function and specifying
|
||||
the quickfix list identifier "id". For a location list, getloclist() function
|
||||
can be used with the 'winid' argument. If an empty list is returned, then the
|
||||
can be used with the "winid" argument. If an empty list is returned, then the
|
||||
default format is used to display all the entries. If an item in the returned
|
||||
list is an empty string, then the default format is used to display the
|
||||
corresponding entry.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.0. Last change: 2022 Sep 14
|
||||
*quickref.txt* For Vim version 9.0. Last change: 2022 Nov 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -689,6 +689,7 @@ Short explanation of each option: *option-list*
|
||||
'edcompatible' 'ed' toggle flags of ":substitute" command
|
||||
'emoji' 'emo' emoji characters are considered full width
|
||||
'encoding' 'enc' encoding used internally
|
||||
'endoffile' 'eof' write CTRL-Z at end of the file
|
||||
'endofline' 'eol' write <EOL> for last line in file
|
||||
'equalalways' 'ea' windows are automatically made the same size
|
||||
'equalprg' 'ep' external program to use for "=" command
|
||||
@@ -774,6 +775,7 @@ Short explanation of each option: *option-list*
|
||||
'key' encryption key
|
||||
'keymap' 'kmp' name of a keyboard mapping
|
||||
'keymodel' 'km' enable starting/stopping selection with keys
|
||||
'keyprotocol' 'kpc' what keyboard protocol to use for what terminal
|
||||
'keywordprg' 'kp' program to use for the "K" command
|
||||
'langmap' 'lmap' alphabetic characters for other language mode
|
||||
'langmenu' 'lm' language to be used for the menus
|
||||
@@ -785,6 +787,7 @@ Short explanation of each option: *option-list*
|
||||
'lines' number of lines in the display
|
||||
'linespace' 'lsp' number of pixel lines to use between characters
|
||||
'lisp' automatic indenting for Lisp
|
||||
'lispoptions' 'lop' changes how Lisp indenting is done
|
||||
'lispwords' 'lw' words that change how lisp indenting works
|
||||
'list' show <Tab> and <EOL>
|
||||
'listchars' 'lcs' characters for displaying in list mode
|
||||
@@ -910,6 +913,7 @@ Short explanation of each option: *option-list*
|
||||
'smartcase' 'scs' no ignore case when pattern has uppercase
|
||||
'smartindent' 'si' smart autoindenting for C programs
|
||||
'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>
|
||||
'smoothscroll' 'sms' scroll by screen lines when 'wrap' is set
|
||||
'softtabstop' 'sts' number of spaces that <Tab> uses while editing
|
||||
'spell' enable spell checking
|
||||
'spellcapcheck' 'spc' pattern to locate end of a sentence
|
||||
@@ -918,8 +922,8 @@ Short explanation of each option: *option-list*
|
||||
'spelloptions' 'spo' options for spell checking
|
||||
'spellsuggest' 'sps' method(s) used to suggest spelling corrections
|
||||
'splitbelow' 'sb' new window from split is below the current one
|
||||
'splitkeep' 'spk' determines scroll behavior for split windows
|
||||
'splitright' 'spr' new window is put right of the current one
|
||||
'splitscroll' 'spsc' determines scroll behavior for split windows
|
||||
'startofline' 'sol' commands move cursor to first non-blank in line
|
||||
'statusline' 'stl' custom format for the status line
|
||||
'suffixes' 'su' suffixes that are ignored with multiple match
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 9.0. Last change: 2022 Jun 18
|
||||
*repeat.txt* For Vim version 9.0. Last change: 2022 Sep 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -92,7 +92,8 @@ pattern and do not match another pattern: >
|
||||
This first finds all lines containing "found", but only executes {cmd} when
|
||||
there is no match for "notfound".
|
||||
|
||||
To execute a non-Ex command, you can use the `:normal` command: >
|
||||
Any Ex command can be used, see |ex-cmd-index|. To execute a Normal mode
|
||||
command, you can use the `:normal` command: >
|
||||
:g/pat/normal {commands}
|
||||
Make sure that {commands} ends with a whole command, otherwise Vim will wait
|
||||
for you to type the rest of the command for each match. The screen will not
|
||||
@@ -200,7 +201,8 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
*:source-range*
|
||||
:[range]so[urce] [++clear]
|
||||
Read Ex commands from the [range] of lines in the
|
||||
current buffer.
|
||||
current buffer. When [range] is omitted read all
|
||||
lines.
|
||||
|
||||
When sourcing commands from the current buffer, the
|
||||
same script-ID |<SID>| is used even if the buffer is
|
||||
@@ -626,6 +628,11 @@ When Vim starts up, after processing your .vimrc, it scans all directories in
|
||||
directories are added to 'runtimepath'. Then all the plugins are loaded.
|
||||
See |packload-two-steps| for how these two steps can be useful.
|
||||
|
||||
To allow for calling into package functionality while parsing your .vimrc,
|
||||
|:colorscheme| and |autoload| will both automatically search under 'packpath'
|
||||
as well in addition to 'runtimepath'. See the documentation for each for
|
||||
details.
|
||||
|
||||
In the example Vim will find "pack/foo/start/foobar/plugin/foo.vim" and adds
|
||||
"~/.vim/pack/foo/start/foobar" to 'runtimepath'.
|
||||
|
||||
@@ -904,6 +911,11 @@ executed like a normal Ex command, "step" will stop once in the compiled
|
||||
context, where local variables can be inspected, and once just before
|
||||
executing the command.
|
||||
|
||||
In a :def function variables that haven't been declared yet cannot be
|
||||
inspected. Variables that have been declared can be inspected, also when the
|
||||
block they were declared in has finished. In commands this would not be
|
||||
possible, thus is slightly misleading (but can be useful).
|
||||
|
||||
The backtrace shows the hierarchy of function calls, e.g.:
|
||||
>bt ~
|
||||
3 function One[3] ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*rileft.txt* For Vim version 9.0. Last change: 2022 Apr 03
|
||||
*rileft.txt* For Vim version 9.0. Last change: 2022 Oct 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Avner Lottem
|
||||
@@ -35,6 +35,11 @@ encoded for every character (or group of characters) are not supported either
|
||||
as this kind of support is out of the scope of a simple addition to an
|
||||
existing editor (and it's not sanctioned by Unicode either).
|
||||
|
||||
As many people working on the code do not use the right-to-left mode, this
|
||||
feature may not work in some situations. If you can describe what is wrong
|
||||
and how it would work when fixed, please create an issue on github, see
|
||||
|bug-reports|.
|
||||
|
||||
|
||||
Highlights
|
||||
----------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*scroll.txt* For Vim version 9.0. Last change: 2022 May 07
|
||||
*scroll.txt* For Vim version 9.0. Last change: 2022 Oct 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -280,6 +280,17 @@ You can also use Alt and Ctrl modifiers.
|
||||
|
||||
This only works when Vim gets the scroll wheel events, of course. You can
|
||||
check if this works with the "xev" program.
|
||||
*mouse-scrolling-off*
|
||||
If you do not want the mouse to cause scrolling (e.g. because resting your
|
||||
palm on the touchpad causes scroll events), you can disable that with: >
|
||||
:map <ScrollWheelDown> <Nop>
|
||||
:map! <ScrollWheelDown> <Nop>
|
||||
:map <ScrollWheelUp> <Nop>
|
||||
:map! <ScrollWheelUp> <Nop>
|
||||
:map <ScrollWheelLeft> <Nop>
|
||||
:map! <ScrollWheelLeft> <Nop>
|
||||
:map <ScrollWheelRight> <Nop>
|
||||
:map! <ScrollWheelRight> <Nop>
|
||||
|
||||
When using XFree86, the /etc/XF86Config file should have the correct entry for
|
||||
your mouse. For FreeBSD, this entry works for a Logitech scrollmouse: >
|
||||
|
||||
@@ -1008,8 +1008,8 @@ Note: even when using "num" or "long" the number of flags available to
|
||||
compounding and prefixes is limited to about 250.
|
||||
|
||||
|
||||
AFFIXES
|
||||
*spell-PFX* *spell-SFX*
|
||||
AFFIXES *spell-PFX* *spell-SFX*
|
||||
|
||||
The usual PFX (prefix) and SFX (suffix) lines are supported (see the Myspell
|
||||
documentation or the Aspell manual:
|
||||
http://aspell.net/man-html/Affix-Compression.html).
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.0. Last change: 2022 Jun 14
|
||||
*starting.txt* For Vim version 9.0. Last change: 2022 Nov 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -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 |+channel| feature}
|
||||
{only available with the |+eval| feature}
|
||||
|
||||
*-D*
|
||||
-D Debugging. Go to debugging mode when executing the first
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.0. Last change: 2022 Jun 10
|
||||
*syntax.txt* For Vim version 9.0. Last change: 2022 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -500,7 +500,7 @@ Force to omit the line numbers: >
|
||||
Go back to the default to use 'number' by deleting the variable: >
|
||||
:unlet g:html_number_lines
|
||||
<
|
||||
*g:html_line_ids*
|
||||
*g:html_line_ids*
|
||||
Default: 1 if |g:html_number_lines| is set, 0 otherwise.
|
||||
When 1, adds an HTML id attribute to each line number, or to an empty <span>
|
||||
inserted for that purpose if no line numbers are shown. This ID attribute
|
||||
@@ -692,6 +692,22 @@ the rendered page generated by 2html.vim.
|
||||
>
|
||||
:let g:html_no_pre = 1
|
||||
<
|
||||
*g:html_no_doc*
|
||||
Default: 0.
|
||||
When 1 it doesn't generate a full HTML document with a DOCTYPE, <head>,
|
||||
<body>, etc. If |g:html_use_css| is enabled (the default) you'll have to
|
||||
define the CSS manually. The |g:html_dynamic_folds| and |g:html_line_ids|
|
||||
settings (off by default) also insert some JavaScript.
|
||||
|
||||
|
||||
*g:html_no_links*
|
||||
Default: 0.
|
||||
Don't generate <a> tags for text that looks like an URL.
|
||||
|
||||
*g:html_no_modeline*
|
||||
Default: 0.
|
||||
Don't generate a modeline disabling folding.
|
||||
|
||||
*g:html_expand_tabs*
|
||||
Default: 0 if 'tabstop' is 8, 'expandtab' is 0, 'vartabstop' is not in use,
|
||||
and no fold column or line numbers occur in the generated HTML;
|
||||
@@ -1872,6 +1888,16 @@ following two lines to the syntax coloring file for that language
|
||||
Now you just need to make sure that you add all regions that contain
|
||||
the preprocessor language to the cluster htmlPreproc.
|
||||
|
||||
*html-folding*
|
||||
The HTML syntax file provides syntax |folding| (see |:syn-fold|) between start
|
||||
and end tags. This can be turned on by >
|
||||
|
||||
:let g:html_syntax_folding = 1
|
||||
:set foldmethod=syntax
|
||||
|
||||
Note: Syntax folding might slow down syntax highlighting significantly,
|
||||
especially for large files.
|
||||
|
||||
|
||||
HTML/OS (by Aestiva) *htmlos.vim* *ft-htmlos-syntax*
|
||||
|
||||
@@ -2400,7 +2426,7 @@ you set the variable: >
|
||||
|
||||
:let papp_include_html=1
|
||||
|
||||
in your startup file it will try to syntax-hilight html code inside phtml
|
||||
in your startup file it will try to syntax-highlight html code inside phtml
|
||||
sections, but this is relatively slow and much too colourful to be able to
|
||||
edit sensibly. ;)
|
||||
|
||||
@@ -2932,7 +2958,7 @@ Default folding is rather detailed, i.e., small syntax units like "if", "do",
|
||||
|
||||
You can set "ruby_foldable_groups" to restrict which groups are foldable: >
|
||||
|
||||
:let ruby_foldable_groups = 'if case %'
|
||||
:let ruby_foldable_groups = 'if case %'
|
||||
<
|
||||
The value is a space-separated list of keywords:
|
||||
|
||||
@@ -2940,22 +2966,22 @@ The value is a space-separated list of keywords:
|
||||
-------- ------------------------------------- ~
|
||||
ALL Most block syntax (default)
|
||||
NONE Nothing
|
||||
if "if" or "unless" block
|
||||
if "if" or "unless" block
|
||||
def "def" block
|
||||
class "class" block
|
||||
module "module" block
|
||||
do "do" block
|
||||
do "do" block
|
||||
begin "begin" block
|
||||
case "case" block
|
||||
for "for", "while", "until" loops
|
||||
{ Curly bracket block or hash literal
|
||||
[ Array literal
|
||||
% Literal with "%" notation, e.g.: %w(STRING), %!STRING!
|
||||
/ Regexp
|
||||
{ Curly bracket block or hash literal
|
||||
[ Array literal
|
||||
% Literal with "%" notation, e.g.: %w(STRING), %!STRING!
|
||||
/ Regexp
|
||||
string String and shell command output (surrounded by ', ", `)
|
||||
: Symbol
|
||||
# Multiline comment
|
||||
<< Here documents
|
||||
: Symbol
|
||||
# Multiline comment
|
||||
<< Here documents
|
||||
__END__ Source code after "__END__" directive
|
||||
|
||||
*ruby_no_expensive*
|
||||
@@ -3021,16 +3047,25 @@ satisfied with it for my own projects.
|
||||
SED *sed.vim* *ft-sed-syntax*
|
||||
|
||||
To make tabs stand out from regular blanks (accomplished by using Todo
|
||||
highlighting on the tabs), define "highlight_sedtabs" by putting >
|
||||
|
||||
:let highlight_sedtabs = 1
|
||||
highlighting on the tabs), define "g:sed_highlight_tabs" by putting >
|
||||
|
||||
:let g:sed_highlight_tabs = 1
|
||||
<
|
||||
in the vimrc file. (This special highlighting only applies for tabs
|
||||
inside search patterns, replacement texts, addresses or text included
|
||||
by an Append/Change/Insert command.) If you enable this option, it is
|
||||
also a good idea to set the tab width to one character; by doing that,
|
||||
you can easily count the number of tabs in a string.
|
||||
|
||||
GNU sed allows comments after text on the same line. BSD sed only allows
|
||||
comments where "#" is the first character of the line. To enforce BSD-style
|
||||
comments, i.e. mark end-of-line comments as errors, use: >
|
||||
|
||||
:let g:sed_dialect = "bsd"
|
||||
<
|
||||
Note that there are other differences between GNU sed and BSD sed which are
|
||||
not (yet) affected by this setting.
|
||||
|
||||
Bugs:
|
||||
|
||||
The transform command (y) is treated exactly like the substitute
|
||||
@@ -3153,7 +3188,7 @@ The default is to use the twice sh_minlines. Set it to a smaller number to
|
||||
speed up displaying. The disadvantage is that highlight errors may appear.
|
||||
|
||||
syntax/sh.vim tries to flag certain problems as errors; usually things like
|
||||
extra ']'s, 'done's, 'fi's, etc. If you find the error handling problematic
|
||||
unmatched "]", "done", "fi", etc. If you find the error handling problematic
|
||||
for your purposes, you may suppress such error highlighting by putting
|
||||
the following line in your .vimrc: >
|
||||
|
||||
@@ -3586,6 +3621,14 @@ highlighting is to put the following line in your |vimrc|: >
|
||||
<
|
||||
|
||||
|
||||
WDL *wdl.vim* *wdl-syntax*
|
||||
|
||||
The Workflow Description Language is a way to specify data processing workflows
|
||||
with a human-readable and writeable syntax. This is used a lot in
|
||||
bioinformatics. More info on the spec can be found here:
|
||||
https://github.com/openwdl/wdl
|
||||
|
||||
|
||||
XF86CONFIG *xf86conf.vim* *ft-xf86conf-syntax*
|
||||
|
||||
The syntax of XF86Config file differs in XFree86 v3.x and v4.x. Both
|
||||
@@ -3793,7 +3836,7 @@ SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
|
||||
|
||||
clear: Syntax specific iskeyword setting is disabled and the
|
||||
buffer-local 'iskeyword' setting is used.
|
||||
{option} Set the syntax 'iskeyword' option to a new value.
|
||||
{option} Set the syntax 'iskeyword' option to a new value.
|
||||
|
||||
Example: >
|
||||
:syntax iskeyword @,48-57,192-255,$,_
|
||||
@@ -4866,7 +4909,7 @@ is mostly used, because it looks better.
|
||||
In the next section you can find information about indivisual highlight groups
|
||||
and how to specify colors for them. Most likely you want to just select a set
|
||||
of colors by using the `:colorscheme` command, for example: >
|
||||
|
||||
|
||||
colorscheme pablo
|
||||
<
|
||||
*:colo* *:colorscheme* *E185*
|
||||
@@ -4918,7 +4961,7 @@ Change a couple more colors: >
|
||||
augroup my_colorschemes
|
||||
au!
|
||||
au Colorscheme pablo hi Normal ctermbg=NONE
|
||||
\ | higlight Special ctermfg=63
|
||||
\ | highlight Special ctermfg=63
|
||||
\ | highlight Identifier ctermfg=44
|
||||
augroup END
|
||||
|
||||
@@ -5271,7 +5314,7 @@ guisp={color-name} *highlight-guisp*
|
||||
"gg" is the Green value
|
||||
"bb" is the Blue value
|
||||
All values are hexadecimal, range from "00" to "ff". Examples: >
|
||||
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
|
||||
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
|
||||
<
|
||||
If you are authoring a color scheme and use the same hexadecimal value
|
||||
repeatedly, you can define a name for it in |v:colornames|. For
|
||||
@@ -5361,25 +5404,26 @@ LineNrBelow Line number for when the 'relativenumber'
|
||||
*hl-CursorLineNr*
|
||||
CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt'
|
||||
contains "number" or is "both", for the cursor line.
|
||||
*hl-CursorLineSign*
|
||||
CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
|
||||
*hl-CursorLineFold*
|
||||
CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
|
||||
*hl-CursorLineSign*
|
||||
CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
|
||||
*hl-MatchParen*
|
||||
MatchParen Character under the cursor or just before it, if it
|
||||
is a paired bracket, and its match. |pi_paren.txt|
|
||||
*hl-MessageWindow*
|
||||
MessageWindow Messages popup window used when 'cmdheight' is zero. If not
|
||||
defined |hl-WarningMsg| is used.
|
||||
MessageWindow Messages popup window used by `:echowindow`. If not defined
|
||||
|hl-WarningMsg| is used.
|
||||
*hl-ModeMsg*
|
||||
ModeMsg 'showmode' message (e.g., "-- INSERT --").
|
||||
*hl-MoreMsg*
|
||||
MoreMsg |more-prompt|
|
||||
*hl-NonText*
|
||||
NonText '@' at the end of the window, characters from 'showbreak'
|
||||
and other characters that do not really exist in the text
|
||||
(e.g., ">" displayed when a double-wide character doesn't
|
||||
fit at the end of the line).
|
||||
NonText '@' at the end of the window, "<<<" at the start of the window
|
||||
for 'smoothscroll', characters from 'showbreak' and other
|
||||
characters that do not really exist in the text, such as the
|
||||
">" displayed when a double-wide character doesn't fit at the
|
||||
end of the line.
|
||||
*hl-Normal*
|
||||
Normal Normal text.
|
||||
*hl-Pmenu*
|
||||
|
||||
@@ -231,7 +231,9 @@ $quote eval.txt /*$quote*
|
||||
'emoji' options.txt /*'emoji'*
|
||||
'enc' options.txt /*'enc'*
|
||||
'encoding' options.txt /*'encoding'*
|
||||
'endoffile' options.txt /*'endoffile'*
|
||||
'endofline' options.txt /*'endofline'*
|
||||
'eof' options.txt /*'eof'*
|
||||
'eol' options.txt /*'eol'*
|
||||
'ep' options.txt /*'ep'*
|
||||
'equalalways' options.txt /*'equalalways'*
|
||||
@@ -302,6 +304,7 @@ $quote eval.txt /*$quote*
|
||||
'fs' options.txt /*'fs'*
|
||||
'fsync' options.txt /*'fsync'*
|
||||
'ft' options.txt /*'ft'*
|
||||
'g:context_extra_options' ft_context.txt /*'g:context_extra_options'*
|
||||
'g:context_ignore_makefile' ft_context.txt /*'g:context_ignore_makefile'*
|
||||
'g:context_include' ft_context.txt /*'g:context_include'*
|
||||
'g:mf_other_macros' ft_mp.txt /*'g:mf_other_macros'*
|
||||
@@ -434,10 +437,12 @@ $quote eval.txt /*$quote*
|
||||
'key' options.txt /*'key'*
|
||||
'keymap' options.txt /*'keymap'*
|
||||
'keymodel' options.txt /*'keymodel'*
|
||||
'keyprotocol' options.txt /*'keyprotocol'*
|
||||
'keywordprg' options.txt /*'keywordprg'*
|
||||
'km' options.txt /*'km'*
|
||||
'kmp' options.txt /*'kmp'*
|
||||
'kp' options.txt /*'kp'*
|
||||
'kpc' options.txt /*'kpc'*
|
||||
'langmap' options.txt /*'langmap'*
|
||||
'langmenu' options.txt /*'langmenu'*
|
||||
'langnoremap' options.txt /*'langnoremap'*
|
||||
@@ -450,6 +455,7 @@ $quote eval.txt /*$quote*
|
||||
'lines' options.txt /*'lines'*
|
||||
'linespace' options.txt /*'linespace'*
|
||||
'lisp' options.txt /*'lisp'*
|
||||
'lispoptions' options.txt /*'lispoptions'*
|
||||
'lispwords' options.txt /*'lispwords'*
|
||||
'list' options.txt /*'list'*
|
||||
'listchars' options.txt /*'listchars'*
|
||||
@@ -457,6 +463,7 @@ $quote eval.txt /*$quote*
|
||||
'lmap' options.txt /*'lmap'*
|
||||
'lnr' options.txt /*'lnr'*
|
||||
'loadplugins' options.txt /*'loadplugins'*
|
||||
'lop' options.txt /*'lop'*
|
||||
'lpl' options.txt /*'lpl'*
|
||||
'lrm' options.txt /*'lrm'*
|
||||
'ls' options.txt /*'ls'*
|
||||
@@ -595,7 +602,9 @@ $quote eval.txt /*$quote*
|
||||
'noek' options.txt /*'noek'*
|
||||
'noemo' options.txt /*'noemo'*
|
||||
'noemoji' options.txt /*'noemoji'*
|
||||
'noendoffile' options.txt /*'noendoffile'*
|
||||
'noendofline' options.txt /*'noendofline'*
|
||||
'noeof' options.txt /*'noeof'*
|
||||
'noeol' options.txt /*'noeol'*
|
||||
'noequalalways' options.txt /*'noequalalways'*
|
||||
'noerrorbells' options.txt /*'noerrorbells'*
|
||||
@@ -713,14 +722,14 @@ $quote eval.txt /*$quote*
|
||||
'nosmartindent' options.txt /*'nosmartindent'*
|
||||
'nosmarttab' options.txt /*'nosmarttab'*
|
||||
'nosmd' options.txt /*'nosmd'*
|
||||
'nosmoothscroll' options.txt /*'nosmoothscroll'*
|
||||
'nosms' options.txt /*'nosms'*
|
||||
'nosn' options.txt /*'nosn'*
|
||||
'nosol' options.txt /*'nosol'*
|
||||
'nospell' options.txt /*'nospell'*
|
||||
'nosplitbelow' options.txt /*'nosplitbelow'*
|
||||
'nosplitright' options.txt /*'nosplitright'*
|
||||
'nosplitscroll' options.txt /*'nosplitscroll'*
|
||||
'nospr' options.txt /*'nospr'*
|
||||
'nospsc' options.txt /*'nospsc'*
|
||||
'nosr' options.txt /*'nosr'*
|
||||
'nossl' options.txt /*'nossl'*
|
||||
'nosta' options.txt /*'nosta'*
|
||||
@@ -937,6 +946,8 @@ $quote eval.txt /*$quote*
|
||||
'smarttab' options.txt /*'smarttab'*
|
||||
'smc' options.txt /*'smc'*
|
||||
'smd' options.txt /*'smd'*
|
||||
'smoothscroll' options.txt /*'smoothscroll'*
|
||||
'sms' options.txt /*'sms'*
|
||||
'sn' options.txt /*'sn'*
|
||||
'so' options.txt /*'so'*
|
||||
'softtabstop' options.txt /*'softtabstop'*
|
||||
@@ -951,14 +962,14 @@ $quote eval.txt /*$quote*
|
||||
'spelloptions' options.txt /*'spelloptions'*
|
||||
'spellsuggest' options.txt /*'spellsuggest'*
|
||||
'spf' options.txt /*'spf'*
|
||||
'spk' options.txt /*'spk'*
|
||||
'spl' options.txt /*'spl'*
|
||||
'splitbelow' options.txt /*'splitbelow'*
|
||||
'splitkeep' options.txt /*'splitkeep'*
|
||||
'splitright' options.txt /*'splitright'*
|
||||
'splitscroll' options.txt /*'splitscroll'*
|
||||
'spo' options.txt /*'spo'*
|
||||
'spr' options.txt /*'spr'*
|
||||
'sps' options.txt /*'sps'*
|
||||
'spsc' options.txt /*'spsc'*
|
||||
'sr' options.txt /*'sr'*
|
||||
'srr' options.txt /*'srr'*
|
||||
'ss' options.txt /*'ss'*
|
||||
@@ -1050,6 +1061,7 @@ $quote eval.txt /*$quote*
|
||||
't_RC' term.txt /*'t_RC'*
|
||||
't_RF' term.txt /*'t_RF'*
|
||||
't_RI' term.txt /*'t_RI'*
|
||||
't_RK' term.txt /*'t_RK'*
|
||||
't_RS' term.txt /*'t_RS'*
|
||||
't_RT' term.txt /*'t_RT'*
|
||||
't_RV' term.txt /*'t_RV'*
|
||||
@@ -2153,7 +2165,7 @@ $quote eval.txt /*$quote*
|
||||
:abclear map.txt /*:abclear*
|
||||
:abo windows.txt /*:abo*
|
||||
:aboveleft windows.txt /*:aboveleft*
|
||||
:abstract vim9.txt /*:abstract*
|
||||
:abstract vim9class.txt /*:abstract*
|
||||
:addd quickfix.txt /*:addd*
|
||||
:al windows.txt /*:al*
|
||||
:all windows.txt /*:all*
|
||||
@@ -2313,7 +2325,7 @@ $quote eval.txt /*$quote*
|
||||
:chistory quickfix.txt /*:chistory*
|
||||
:cl quickfix.txt /*:cl*
|
||||
:cla quickfix.txt /*:cla*
|
||||
:class vim9.txt /*:class*
|
||||
:class vim9class.txt /*:class*
|
||||
:clast quickfix.txt /*:clast*
|
||||
:cle motion.txt /*:cle*
|
||||
:clearjumps motion.txt /*:clearjumps*
|
||||
@@ -2490,15 +2502,15 @@ $quote eval.txt /*$quote*
|
||||
:emenu gui.txt /*:emenu*
|
||||
:en eval.txt /*:en*
|
||||
:end eval.txt /*:end*
|
||||
:endclass vim9.txt /*:endclass*
|
||||
:endclass vim9class.txt /*:endclass*
|
||||
:enddef vim9.txt /*:enddef*
|
||||
:endenum vim9.txt /*:endenum*
|
||||
:endenum vim9class.txt /*:endenum*
|
||||
:endf userfunc.txt /*:endf*
|
||||
:endfo eval.txt /*:endfo*
|
||||
:endfor eval.txt /*:endfor*
|
||||
:endfunction userfunc.txt /*:endfunction*
|
||||
:endif eval.txt /*:endif*
|
||||
:endinterface vim9.txt /*:endinterface*
|
||||
:endinterface vim9class.txt /*:endinterface*
|
||||
:endt eval.txt /*:endt*
|
||||
:endtry eval.txt /*:endtry*
|
||||
:endw eval.txt /*:endw*
|
||||
@@ -2507,7 +2519,7 @@ $quote eval.txt /*$quote*
|
||||
:ene! editing.txt /*:ene!*
|
||||
:enew editing.txt /*:enew*
|
||||
:enew! editing.txt /*:enew!*
|
||||
:enum vim9.txt /*:enum*
|
||||
:enum vim9class.txt /*:enum*
|
||||
:eval eval.txt /*:eval*
|
||||
:ex editing.txt /*:ex*
|
||||
:exe eval.txt /*:exe*
|
||||
@@ -2637,7 +2649,7 @@ $quote eval.txt /*$quote*
|
||||
:inoreme gui.txt /*:inoreme*
|
||||
:inoremenu gui.txt /*:inoremenu*
|
||||
:insert insert.txt /*:insert*
|
||||
:interface vim9.txt /*:interface*
|
||||
:interface vim9class.txt /*:interface*
|
||||
:intro starting.txt /*:intro*
|
||||
:is tagsrch.txt /*:is*
|
||||
:isearch tagsrch.txt /*:isearch*
|
||||
@@ -3033,6 +3045,9 @@ $quote eval.txt /*$quote*
|
||||
:r! insert.txt /*:r!*
|
||||
:range cmdline.txt /*:range*
|
||||
:range! change.txt /*:range!*
|
||||
:range-closed-fold cmdline.txt /*:range-closed-fold*
|
||||
:range-offset cmdline.txt /*:range-offset*
|
||||
:range-pattern cmdline.txt /*:range-pattern*
|
||||
:re insert.txt /*:re*
|
||||
:read insert.txt /*:read*
|
||||
:read! insert.txt /*:read!*
|
||||
@@ -3271,7 +3286,7 @@ $quote eval.txt /*$quote*
|
||||
:startgreplace insert.txt /*:startgreplace*
|
||||
:startinsert insert.txt /*:startinsert*
|
||||
:startreplace insert.txt /*:startreplace*
|
||||
:static vim9.txt /*:static*
|
||||
:static vim9class.txt /*:static*
|
||||
:stj tagsrch.txt /*:stj*
|
||||
:stjump tagsrch.txt /*:stjump*
|
||||
:stop starting.txt /*:stop*
|
||||
@@ -3449,7 +3464,7 @@ $quote eval.txt /*$quote*
|
||||
:tunma map.txt /*:tunma*
|
||||
:tunmap map.txt /*:tunmap*
|
||||
:tunmenu gui.txt /*:tunmenu*
|
||||
:type vim9.txt /*:type*
|
||||
:type vim9class.txt /*:type*
|
||||
:u undo.txt /*:u*
|
||||
:un undo.txt /*:un*
|
||||
:una map.txt /*:una*
|
||||
@@ -4343,7 +4358,16 @@ E1302 eval.txt /*E1302*
|
||||
E1303 map.txt /*E1303*
|
||||
E1304 vim9.txt /*E1304*
|
||||
E1305 textprop.txt /*E1305*
|
||||
E1306 vim9.txt /*E1306*
|
||||
E1307 vim9.txt /*E1307*
|
||||
E1308 builtin.txt /*E1308*
|
||||
E1309 map.txt /*E1309*
|
||||
E131 userfunc.txt /*E131*
|
||||
E1310 gui.txt /*E1310*
|
||||
E1311 map.txt /*E1311*
|
||||
E1312 windows.txt /*E1312*
|
||||
E1313 eval.txt /*E1313*
|
||||
E1314 vim9class.txt /*E1314*
|
||||
E132 userfunc.txt /*E132*
|
||||
E133 userfunc.txt /*E133*
|
||||
E134 change.txt /*E134*
|
||||
@@ -5543,6 +5567,7 @@ TerminalWinOpen autocmd.txt /*TerminalWinOpen*
|
||||
TextChanged autocmd.txt /*TextChanged*
|
||||
TextChangedI autocmd.txt /*TextChangedI*
|
||||
TextChangedP autocmd.txt /*TextChangedP*
|
||||
TextChangedT autocmd.txt /*TextChangedT*
|
||||
TextYankPost autocmd.txt /*TextYankPost*
|
||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||
U undo.txt /*U*
|
||||
@@ -5561,7 +5586,14 @@ VMS os_vms.txt /*VMS*
|
||||
Vi intro.txt /*Vi*
|
||||
View starting.txt /*View*
|
||||
Vim9 vim9.txt /*Vim9*
|
||||
Vim9-abstract-class vim9class.txt /*Vim9-abstract-class*
|
||||
Vim9-class vim9class.txt /*Vim9-class*
|
||||
Vim9-class-overview vim9class.txt /*Vim9-class-overview*
|
||||
Vim9-enum vim9class.txt /*Vim9-enum*
|
||||
Vim9-script vim9.txt /*Vim9-script*
|
||||
Vim9-simple-class vim9class.txt /*Vim9-simple-class*
|
||||
Vim9-type vim9class.txt /*Vim9-type*
|
||||
Vim9-using-interface vim9class.txt /*Vim9-using-interface*
|
||||
VimEnter autocmd.txt /*VimEnter*
|
||||
VimLeave autocmd.txt /*VimLeave*
|
||||
VimLeavePre autocmd.txt /*VimLeavePre*
|
||||
@@ -5570,7 +5602,6 @@ VimResume autocmd.txt /*VimResume*
|
||||
VimSuspend autocmd.txt /*VimSuspend*
|
||||
Vimball-copyright pi_vimball.txt /*Vimball-copyright*
|
||||
Virtual-Replace-mode insert.txt /*Virtual-Replace-mode*
|
||||
VisVim if_ole.txt /*VisVim*
|
||||
Visual visual.txt /*Visual*
|
||||
Visual-mode visual.txt /*Visual-mode*
|
||||
W motion.txt /*W*
|
||||
@@ -5596,7 +5627,10 @@ WinClosed autocmd.txt /*WinClosed*
|
||||
WinEnter autocmd.txt /*WinEnter*
|
||||
WinLeave autocmd.txt /*WinLeave*
|
||||
WinNew autocmd.txt /*WinNew*
|
||||
WinResized autocmd.txt /*WinResized*
|
||||
WinResized-event windows.txt /*WinResized-event*
|
||||
WinScrolled autocmd.txt /*WinScrolled*
|
||||
WinScrolled-event windows.txt /*WinScrolled-event*
|
||||
X change.txt /*X*
|
||||
X11 options.txt /*X11*
|
||||
X11-icon gui_x11.txt /*X11-icon*
|
||||
@@ -6230,6 +6264,8 @@ cino-w indent.txt /*cino-w*
|
||||
cino-{ indent.txt /*cino-{*
|
||||
cino-} indent.txt /*cino-}*
|
||||
cinoptions-values indent.txt /*cinoptions-values*
|
||||
class-member vim9class.txt /*class-member*
|
||||
class-method vim9class.txt /*class-method*
|
||||
clear-undo undo.txt /*clear-undo*
|
||||
clearmatches() builtin.txt /*clearmatches()*
|
||||
client-server remote.txt /*client-server*
|
||||
@@ -6644,6 +6680,7 @@ end intro.txt /*end*
|
||||
end-of-file pattern.txt /*end-of-file*
|
||||
enlightened-terminal syntax.txt /*enlightened-terminal*
|
||||
environ() builtin.txt /*environ()*
|
||||
eol-and-eof editing.txt /*eol-and-eof*
|
||||
erlang.vim syntax.txt /*erlang.vim*
|
||||
err_buf channel.txt /*err_buf*
|
||||
err_cb channel.txt /*err_cb*
|
||||
@@ -6673,6 +6710,8 @@ escape() builtin.txt /*escape()*
|
||||
escape-bar version4.txt /*escape-bar*
|
||||
euphoria3.vim syntax.txt /*euphoria3.vim*
|
||||
euphoria4.vim syntax.txt /*euphoria4.vim*
|
||||
euro digraph.txt /*euro*
|
||||
euro-digraph digraph.txt /*euro-digraph*
|
||||
eval eval.txt /*eval*
|
||||
eval() builtin.txt /*eval()*
|
||||
eval-examples eval.txt /*eval-examples*
|
||||
@@ -6775,6 +6814,7 @@ expr-lambda eval.txt /*expr-lambda*
|
||||
expr-nesting eval.txt /*expr-nesting*
|
||||
expr-number eval.txt /*expr-number*
|
||||
expr-option eval.txt /*expr-option*
|
||||
expr-option-function vim9.txt /*expr-option-function*
|
||||
expr-quote eval.txt /*expr-quote*
|
||||
expr-register eval.txt /*expr-register*
|
||||
expr-star eval.txt /*expr-star*
|
||||
@@ -6799,9 +6839,11 @@ expression-syntax eval.txt /*expression-syntax*
|
||||
exrc starting.txt /*exrc*
|
||||
extend() builtin.txt /*extend()*
|
||||
extendnew() builtin.txt /*extendnew()*
|
||||
extends vim9class.txt /*extends*
|
||||
extension-removal cmdline.txt /*extension-removal*
|
||||
extensions-improvements todo.txt /*extensions-improvements*
|
||||
f motion.txt /*f*
|
||||
f-args-example map.txt /*f-args-example*
|
||||
false vim9.txt /*false*
|
||||
false-variable eval.txt /*false-variable*
|
||||
falsy eval.txt /*falsy*
|
||||
@@ -6939,6 +6981,7 @@ form.vim syntax.txt /*form.vim*
|
||||
format-bullet-list tips.txt /*format-bullet-list*
|
||||
format-comments change.txt /*format-comments*
|
||||
format-formatexpr change.txt /*format-formatexpr*
|
||||
formatOtherKeys map.txt /*formatOtherKeys*
|
||||
formatting change.txt /*formatting*
|
||||
forth.vim syntax.txt /*forth.vim*
|
||||
fortran.vim syntax.txt /*fortran.vim*
|
||||
@@ -7241,8 +7284,11 @@ g:html_id_expr syntax.txt /*g:html_id_expr*
|
||||
g:html_ignore_conceal syntax.txt /*g:html_ignore_conceal*
|
||||
g:html_ignore_folding syntax.txt /*g:html_ignore_folding*
|
||||
g:html_line_ids syntax.txt /*g:html_line_ids*
|
||||
g:html_no_doc syntax.txt /*g:html_no_doc*
|
||||
g:html_no_foldcolumn syntax.txt /*g:html_no_foldcolumn*
|
||||
g:html_no_invalid syntax.txt /*g:html_no_invalid*
|
||||
g:html_no_links syntax.txt /*g:html_no_links*
|
||||
g:html_no_modeline syntax.txt /*g:html_no_modeline*
|
||||
g:html_no_pre syntax.txt /*g:html_no_pre*
|
||||
g:html_no_progress syntax.txt /*g:html_no_progress*
|
||||
g:html_number_lines syntax.txt /*g:html_number_lines*
|
||||
@@ -7399,6 +7445,7 @@ g:tex_subscripts syntax.txt /*g:tex_subscripts*
|
||||
g:tex_superscripts syntax.txt /*g:tex_superscripts*
|
||||
g:tex_verbspell syntax.txt /*g:tex_verbspell*
|
||||
g:var eval.txt /*g:var*
|
||||
g:vim_indent indent.txt /*g:vim_indent*
|
||||
g:vim_indent_cont indent.txt /*g:vim_indent_cont*
|
||||
g:vimball_home pi_vimball.txt /*g:vimball_home*
|
||||
g:vimball_mkdir pi_vimball.txt /*g:vimball_mkdir*
|
||||
@@ -7462,6 +7509,7 @@ get() builtin.txt /*get()*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
getbufinfo() builtin.txt /*getbufinfo()*
|
||||
getbufline() builtin.txt /*getbufline()*
|
||||
getbufoneline() builtin.txt /*getbufoneline()*
|
||||
getbufvar() builtin.txt /*getbufvar()*
|
||||
getchangelist() builtin.txt /*getchangelist()*
|
||||
getchar() builtin.txt /*getchar()*
|
||||
@@ -7493,6 +7541,7 @@ getloclist() builtin.txt /*getloclist()*
|
||||
getmarklist() builtin.txt /*getmarklist()*
|
||||
getmatches() builtin.txt /*getmatches()*
|
||||
getmousepos() builtin.txt /*getmousepos()*
|
||||
getmouseshape() builtin.txt /*getmouseshape()*
|
||||
getpid() builtin.txt /*getpid()*
|
||||
getpos() builtin.txt /*getpos()*
|
||||
getqflist() builtin.txt /*getqflist()*
|
||||
@@ -7813,6 +7862,7 @@ howto.txt howto.txt /*howto.txt*
|
||||
hpterm term.txt /*hpterm*
|
||||
hpterm-color syntax.txt /*hpterm-color*
|
||||
html-flavor insert.txt /*html-flavor*
|
||||
html-folding syntax.txt /*html-folding*
|
||||
html-indent indent.txt /*html-indent*
|
||||
html-indenting indent.txt /*html-indenting*
|
||||
html.vim syntax.txt /*html.vim*
|
||||
@@ -7964,6 +8014,7 @@ if_sniff.txt if_sniff.txt /*if_sniff.txt*
|
||||
if_tcl.txt if_tcl.txt /*if_tcl.txt*
|
||||
ignore-errors eval.txt /*ignore-errors*
|
||||
ignore-timestamp editing.txt /*ignore-timestamp*
|
||||
implements vim9class.txt /*implements*
|
||||
import-autoload vim9.txt /*import-autoload*
|
||||
import-legacy vim9.txt /*import-legacy*
|
||||
import-map vim9.txt /*import-map*
|
||||
@@ -8039,7 +8090,7 @@ interfaces-5.2 version5.txt /*interfaces-5.2*
|
||||
internal-variables eval.txt /*internal-variables*
|
||||
internal-wordlist spell.txt /*internal-wordlist*
|
||||
internet intro.txt /*internet*
|
||||
interp-string eval.txt /*interp-string*
|
||||
interpolated-string eval.txt /*interpolated-string*
|
||||
interrupt() builtin.txt /*interrupt()*
|
||||
intro intro.txt /*intro*
|
||||
intro.txt intro.txt /*intro.txt*
|
||||
@@ -8131,6 +8182,7 @@ keypad-plus intro.txt /*keypad-plus*
|
||||
keypad-point intro.txt /*keypad-point*
|
||||
keys() builtin.txt /*keys()*
|
||||
keytrans() builtin.txt /*keytrans()*
|
||||
kitty-keyboard-protocol map.txt /*kitty-keyboard-protocol*
|
||||
known-bugs todo.txt /*known-bugs*
|
||||
l motion.txt /*l*
|
||||
l: eval.txt /*l:*
|
||||
@@ -8408,6 +8460,7 @@ motion-count-multiplied motion.txt /*motion-count-multiplied*
|
||||
motion.txt motion.txt /*motion.txt*
|
||||
mouse-mode-table term.txt /*mouse-mode-table*
|
||||
mouse-overview term.txt /*mouse-overview*
|
||||
mouse-scrolling-off scroll.txt /*mouse-scrolling-off*
|
||||
mouse-swap-buttons term.txt /*mouse-swap-buttons*
|
||||
mouse-using term.txt /*mouse-using*
|
||||
mouse_col-variable eval.txt /*mouse_col-variable*
|
||||
@@ -9027,6 +9080,7 @@ popup_dialog() popup.txt /*popup_dialog()*
|
||||
popup_dialog-example popup.txt /*popup_dialog-example*
|
||||
popup_filter_menu() popup.txt /*popup_filter_menu()*
|
||||
popup_filter_yesno() popup.txt /*popup_filter_yesno()*
|
||||
popup_findecho() popup.txt /*popup_findecho()*
|
||||
popup_findinfo() popup.txt /*popup_findinfo()*
|
||||
popup_findpreview() popup.txt /*popup_findpreview()*
|
||||
popup_getoptions() popup.txt /*popup_getoptions()*
|
||||
@@ -9173,6 +9227,7 @@ pythonx if_pyth.txt /*pythonx*
|
||||
pythonx-directory if_pyth.txt /*pythonx-directory*
|
||||
pyxeval() builtin.txt /*pyxeval()*
|
||||
q repeat.txt /*q*
|
||||
q-args-example map.txt /*q-args-example*
|
||||
q/ cmdline.txt /*q\/*
|
||||
q: cmdline.txt /*q:*
|
||||
q? cmdline.txt /*q?*
|
||||
@@ -9546,6 +9601,7 @@ spec_chglog_format pi_spec.txt /*spec_chglog_format*
|
||||
spec_chglog_prepend pi_spec.txt /*spec_chglog_prepend*
|
||||
spec_chglog_release_info pi_spec.txt /*spec_chglog_release_info*
|
||||
special-buffers windows.txt /*special-buffers*
|
||||
specifies vim9class.txt /*specifies*
|
||||
speed-up tips.txt /*speed-up*
|
||||
spell spell.txt /*spell*
|
||||
spell-ACCENT spell.txt /*spell-ACCENT*
|
||||
@@ -9760,6 +9816,7 @@ swap-file recover.txt /*swap-file*
|
||||
swapchoice-variable eval.txt /*swapchoice-variable*
|
||||
swapcommand-variable eval.txt /*swapcommand-variable*
|
||||
swapfile-changed version4.txt /*swapfile-changed*
|
||||
swapfilelist() builtin.txt /*swapfilelist()*
|
||||
swapinfo() builtin.txt /*swapinfo()*
|
||||
swapname() builtin.txt /*swapname()*
|
||||
swapname-variable eval.txt /*swapname-variable*
|
||||
@@ -9870,6 +9927,7 @@ t_RB term.txt /*t_RB*
|
||||
t_RC term.txt /*t_RC*
|
||||
t_RF term.txt /*t_RF*
|
||||
t_RI term.txt /*t_RI*
|
||||
t_RK term.txt /*t_RK*
|
||||
t_RS term.txt /*t_RS*
|
||||
t_RT term.txt /*t_RT*
|
||||
t_RV term.txt /*t_RV*
|
||||
@@ -10157,6 +10215,7 @@ termdebug_popup terminal.txt /*termdebug_popup*
|
||||
termdebug_shortcuts terminal.txt /*termdebug_shortcuts*
|
||||
termdebug_use_prompt terminal.txt /*termdebug_use_prompt*
|
||||
termdebug_wide terminal.txt /*termdebug_wide*
|
||||
termdebug_winbar terminal.txt /*termdebug_winbar*
|
||||
terminal terminal.txt /*terminal*
|
||||
terminal-api terminal.txt /*terminal-api*
|
||||
terminal-autoshelldir terminal.txt /*terminal-autoshelldir*
|
||||
@@ -10733,6 +10792,7 @@ vim9-unpack-ignore vim9.txt /*vim9-unpack-ignore*
|
||||
vim9-user-command vim9.txt /*vim9-user-command*
|
||||
vim9-variable-arguments vim9.txt /*vim9-variable-arguments*
|
||||
vim9.txt vim9.txt /*vim9.txt*
|
||||
vim9class.txt vim9class.txt /*vim9class.txt*
|
||||
vim9script vim9.txt /*vim9script*
|
||||
vim: options.txt /*vim:*
|
||||
vim_announce intro.txt /*vim_announce*
|
||||
@@ -10824,11 +10884,14 @@ w:quickfix_title quickfix.txt /*w:quickfix_title*
|
||||
w:var eval.txt /*w:var*
|
||||
waittime channel.txt /*waittime*
|
||||
warningmsg-variable eval.txt /*warningmsg-variable*
|
||||
wdl-syntax syntax.txt /*wdl-syntax*
|
||||
wdl.vim syntax.txt /*wdl.vim*
|
||||
white-space pattern.txt /*white-space*
|
||||
whitespace pattern.txt /*whitespace*
|
||||
wildcard editing.txt /*wildcard*
|
||||
wildcards editing.txt /*wildcards*
|
||||
wildmenumode() builtin.txt /*wildmenumode()*
|
||||
win-scrolled-resized windows.txt /*win-scrolled-resized*
|
||||
win16 os_win32.txt /*win16*
|
||||
win32 os_win32.txt /*win32*
|
||||
win32-!start gui_w32.txt /*win32-!start*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 9.0. Last change: 2022 Apr 23
|
||||
*term.txt* For Vim version 9.0. Last change: 2022 Dec 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -90,6 +90,11 @@ Note: When 't_ti' is not empty, Vim assumes that it causes switching to the
|
||||
alternate screen. This may slightly change what happens when executing a
|
||||
shell command or exiting Vim. To avoid this use 't_TI' and 't_TE'.
|
||||
|
||||
Vim will try to detect what keyboard protocol the terminal is using with the
|
||||
't_RK' termcap entry. This is sent after 't_TI', but only when there is no
|
||||
work to do (no typeahead and no pending commands). That is to avoid the
|
||||
response to end up in a shell command or arrive after Vim exits.
|
||||
|
||||
*xterm-bracketed-paste*
|
||||
When the 't_BE' option is set then 't_BE' will be sent to the
|
||||
terminal when entering "raw" mode and 't_BD' when leaving "raw" mode. The
|
||||
@@ -388,6 +393,8 @@ Added by Vim (there are no standard codes for these):
|
||||
xterm and other terminal emulators) The
|
||||
response is stored in |v:termresponse| |xterm-8bit|
|
||||
|'ttymouse'| |xterm-codes|
|
||||
t_RK request terminal keyboard protocol state; *t_RK* *'t_RK'*
|
||||
sent after |t_TI|
|
||||
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
|
||||
see |'ambiwidth'|
|
||||
The response is stored in |v:termu7resp|
|
||||
@@ -569,7 +576,7 @@ anymore.
|
||||
Vim supports using true colors in the terminal (taken from |highlight-guifg|
|
||||
and |highlight-guibg|), given that the terminal supports this. To make this
|
||||
work the 'termguicolors' option needs to be set.
|
||||
See https://gist.github.com/XVilka/8346728 for a list of terminals that
|
||||
See https://github.com/termstandard/colors for a list of terminals that
|
||||
support true colors.
|
||||
|
||||
Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
|
||||
@@ -768,8 +775,9 @@ See the "Options" chapter |options|.
|
||||
|
||||
If your terminal does not support a scrolling region, but it does support
|
||||
insert/delete line commands, scrolling with multiple windows may make the
|
||||
lines jump up and down. If you don't want this set the 'ttyfast' option.
|
||||
This will redraw the window instead of scroll it.
|
||||
lines jump up and down. This would happen if the 'ttyfast' option has been
|
||||
reset. Check that with: >
|
||||
verbose set ttyfast?
|
||||
|
||||
If your terminal scrolls very slowly, but redrawing is not slow, set the
|
||||
'ttyscroll' option to a small number, e.g., 3. This will make Vim redraw the
|
||||
@@ -1005,6 +1013,8 @@ and then drag) will result in whole words to be selected. This continues
|
||||
until the button is released, at which point the selection is per character
|
||||
again.
|
||||
|
||||
For scrolling with the mouse see |scroll-mouse-wheel|.
|
||||
|
||||
*gpm-mouse*
|
||||
The GPM mouse is only supported when the |+mouse_gpm| feature was enabled at
|
||||
compile time. The GPM mouse driver (Linux console) does not support quadruple
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.0. Last change: 2022 Jun 09
|
||||
*terminal.txt* For Vim version 9.0. Last change: 2022 Nov 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -288,9 +288,8 @@ way to kill or interrupt the job. For example: >
|
||||
|
||||
So long as the job is running the window behaves like it contains a modified
|
||||
buffer. Trying to close the window with `CTRL-W :quit` fails. When using
|
||||
`CTRL-W :quit!` the job is ended. The text in the window is lost. The buffer
|
||||
still exists, but getting it in a window with `:buffer` will show an empty
|
||||
buffer.
|
||||
`CTRL-W :quit!` the job is ended. The text in the window is lost, the buffer
|
||||
is deleted. With `CTRL-W :bunload!` the buffer remains but will be empty.
|
||||
|
||||
Trying to close the window with `CTRL-W :close` also fails. Using
|
||||
`CTRL-W :close!` will close the window and make the buffer hidden.
|
||||
@@ -470,7 +469,6 @@ ConPTY problems have been fixed "winpty" will be preferred.
|
||||
Environment variables are used to pass information to the running job:
|
||||
VIM_SERVERNAME v:servername
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Terminal functions *terminal-function-details*
|
||||
|
||||
@@ -1130,7 +1128,6 @@ reference: >
|
||||
|
||||
Creating a screen dump ~
|
||||
*terminal-screendump*
|
||||
|
||||
To create the screen dump, run Vim (or any other program) in a terminal and
|
||||
make it show the desired state. Then use the |term_dumpwrite()| function to
|
||||
create a screen dump file. For example: >
|
||||
@@ -1154,7 +1151,6 @@ If there are differences then v:errors will contain the error message.
|
||||
|
||||
Comparing screen dumps ~
|
||||
*terminal-diffscreendump*
|
||||
|
||||
|assert_equalfile()| does not make it easy to see what is different.
|
||||
To spot the problem use |term_dumpdiff()|: >
|
||||
call term_dumpdiff("mysyntax.dump", "test.dump")
|
||||
@@ -1351,6 +1347,7 @@ If 'mouse' is set the plugin adds a window toolbar with these entries:
|
||||
Eval `:Evaluate`
|
||||
This way you can use the mouse to perform the most common commands. You need
|
||||
to have the 'mouse' option set to enable mouse clicks.
|
||||
See |termdebug_winbar| for configuring this toolbar.
|
||||
*:Winbar*
|
||||
You can add the window toolbar in other windows you open with: >
|
||||
:Winbar
|
||||
@@ -1416,6 +1413,20 @@ TermdebugStopPost After debugging has ended, gdb-related windows
|
||||
the state before the debugging was restored.
|
||||
|
||||
|
||||
Customizing ~
|
||||
*termdebug-customizing* *g:termdebug_config*
|
||||
In the past several global variables were used for configuration. These are
|
||||
deprecated and using the g:termdebug_config dictionary is preferred. When
|
||||
g:termdebug_config exists the other global variables will NOT be used.
|
||||
The recommended way is to start with an empty dictionary: >
|
||||
let g:termdebug_config = {}
|
||||
|
||||
Then you can add entries to the dictionary as mentioned below. The
|
||||
deprecated global variable names are mentioned for completeness. If you are
|
||||
switching over to using g:termdebug_config you can find the old variable name
|
||||
and take over the value, then delete the deprecated variable.
|
||||
|
||||
|
||||
Prompt mode ~
|
||||
*termdebug-prompt*
|
||||
When the |+terminal| feature is not supported and on MS-Windows, gdb will run
|
||||
@@ -1431,13 +1442,13 @@ in a buffer with 'buftype' set to "prompt". This works slightly differently:
|
||||
*termdebug_use_prompt*
|
||||
Prompt mode can be used even when the |+terminal| feature is present with: >
|
||||
let g:termdebug_config['use_prompt'] = 1
|
||||
Or if there is no g:termdebug_config: >
|
||||
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: >
|
||||
let g:termdebug_config['map_K'] = 0
|
||||
Or if there is no g:termdebug_config: >
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_map_K = 0
|
||||
<
|
||||
*termdebug_disasm_window*
|
||||
@@ -1445,7 +1456,7 @@ If you want the Asm window shown by default, set the flag to 1.
|
||||
the "disasm_window_height" entry can be used to set the window height: >
|
||||
let g:termdebug_config['disasm_window'] = 1
|
||||
let g:termdebug_config['disasm_window_height'] = 15
|
||||
or, if there is no g:termdebug_config: >
|
||||
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.
|
||||
|
||||
@@ -1463,25 +1474,18 @@ interrupt the running program. But after using the MI command
|
||||
communication channel.
|
||||
|
||||
|
||||
Customizing ~
|
||||
*termdebug-customizing* *g:termdebug_config*
|
||||
In the past several global variables were used for configuration. These are
|
||||
deprecated, using the g:termdebug_config dictionary is preferred. When
|
||||
g:termdebug_config exists the other global variables will not be used.
|
||||
|
||||
|
||||
GDB command ~
|
||||
*g:termdebugger*
|
||||
To change the name of the gdb command, set "debugger" entry in
|
||||
g:termdebug_config or the "g:termdebugger" variable before invoking
|
||||
`:Termdebug`: >
|
||||
let g:termdebug_config['command'] = "mygdb"
|
||||
Or if there is no g:termdebug_config: >
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebugger = "mygdb"
|
||||
|
||||
If the command needs an argument use a List: >
|
||||
let g:termdebug_config['command'] = ['rr', 'replay', '--']
|
||||
Or if there is no g:termdebug_config: >
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebugger = ['rr', 'replay', '--']
|
||||
|
||||
Several arguments will be added to make gdb work well for the debugger.
|
||||
@@ -1502,7 +1506,7 @@ Then your gdb is too old.
|
||||
|
||||
|
||||
Colors ~
|
||||
*hl-debugPC* *hl-debugBreakpoint*
|
||||
*hl-debugPC* *hl-debugBreakpoint*
|
||||
The color of the signs can be adjusted with these highlight groups:
|
||||
- debugPC the current position
|
||||
- debugBreakpoint a breakpoint
|
||||
@@ -1518,7 +1522,6 @@ When 'background' is "dark":
|
||||
|
||||
Shortcuts ~
|
||||
*termdebug_shortcuts*
|
||||
|
||||
You can define your own shortcuts (mappings) to control gdb, that can work in
|
||||
any window, using the TermDebugSendCommand() function. Example: >
|
||||
map ,w :call TermDebugSendCommand('where')<CR>
|
||||
@@ -1527,7 +1530,6 @@ The argument is the gdb command.
|
||||
|
||||
Popup menu ~
|
||||
*termdebug_popup*
|
||||
|
||||
By default the Termdebug plugin sets 'mousemodel' to "popup_setpos" and adds
|
||||
these entries to the popup menu:
|
||||
Set breakpoint `:Break`
|
||||
@@ -1535,17 +1537,23 @@ these entries to the popup menu:
|
||||
Evaluate `:Evaluate`
|
||||
If you don't want this then disable it with: >
|
||||
let g:termdebug_config['popup'] = 0
|
||||
or if there is no g:termdebug_config: >
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_popup = 0
|
||||
|
||||
|
||||
Window toolbar ~
|
||||
*termdebug_winbar*
|
||||
By default the Termdebug plugin creates a window toolbar if the mouse is
|
||||
enabled (see |:Winbar|). If you don't want this then disable it with: >
|
||||
let g:termdebug_config['winbar'] = 0
|
||||
|
||||
|
||||
Vim window width ~
|
||||
*termdebug_wide*
|
||||
|
||||
To change the width of the Vim window when debugging starts and use a vertical
|
||||
split: >
|
||||
let g:termdebug_config['wide'] = 163
|
||||
Or if there is no g:termdebug_config: >
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_wide = 163
|
||||
|
||||
This will set 'columns' to 163 when `:Termdebug` is used. The value is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 9.0. Last change: 2022 May 16
|
||||
*testing.txt* For Vim version 9.0. Last change: 2022 Nov 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -135,9 +135,9 @@ test_gui_event({event}, {args})
|
||||
Inject either a mouse button click, or a mouse move, event.
|
||||
The supported items in {args} are:
|
||||
button: mouse button. The supported values are:
|
||||
0 right mouse button
|
||||
0 left mouse button
|
||||
1 middle mouse button
|
||||
2 left mouse button
|
||||
2 right mouse button
|
||||
3 mouse button release
|
||||
4 scroll wheel down
|
||||
5 scroll wheel up
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*textprop.txt* For Vim version 9.0. Last change: 2022 Sep 17
|
||||
*textprop.txt* For Vim version 9.0. Last change: 2022 Nov 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -143,10 +143,12 @@ prop_add({lnum}, {col}, {props})
|
||||
automatically to a negative number; otherwise
|
||||
zero is used
|
||||
*E1305*
|
||||
text text to be displayed before {col}, or after the
|
||||
line if {col} is zero; prepend and/or append
|
||||
spaces for padding with highlighting; cannot
|
||||
be used with "length", "end_lnum" and "end_col"
|
||||
text text to be displayed before {col}, or
|
||||
above/below the line if {col} is zero; prepend
|
||||
and/or append spaces for padding with
|
||||
highlighting; cannot be used with "length",
|
||||
"end_lnum" and "end_col"
|
||||
See |virtual-text| for more information.
|
||||
*E1294*
|
||||
text_align when "text" is present and {col} is zero;
|
||||
specifies where to display the text:
|
||||
@@ -171,6 +173,9 @@ prop_add({lnum}, {col}, {props})
|
||||
wrap wrap the text to the next line
|
||||
truncate truncate the text to make it fit
|
||||
When omitted "truncate" is used.
|
||||
Note that this applies to the individual text
|
||||
property, the 'wrap' option sets the overall
|
||||
behavior
|
||||
All fields except "type" are optional.
|
||||
|
||||
It is an error when both "length" and "end_lnum" or "end_col"
|
||||
@@ -191,12 +196,23 @@ prop_add({lnum}, {col}, {props})
|
||||
If not found an error is given.
|
||||
*virtual-text*
|
||||
When "text" is used and the column is non-zero then this text
|
||||
will be displayed at the start location of the text property
|
||||
after the text. The text of the buffer line will be shifted
|
||||
to make room. This is called "virtual text".
|
||||
When the column is zero the virtual text will appear after the
|
||||
buffer text. The "text_align" and "text_wrap" arguments
|
||||
determine how it is displayed.
|
||||
will be displayed at the specified start location of the text
|
||||
property. The text of the buffer line will be shifted to make
|
||||
room. This is called "virtual text".
|
||||
When the column is zero the virtual text will appear above,
|
||||
after or below the buffer text. The "text_align" and
|
||||
"text_wrap" arguments determine how it is displayed.
|
||||
To separate the virtual text from the buffer text prepend
|
||||
and/or append spaces to the "text" field or use the
|
||||
"text_padding_left" value.
|
||||
|
||||
Make sure to use a highlight that makes clear to the user that
|
||||
this is virtual text, otherwise it will be very confusing that
|
||||
the text cannot be edited. When using "above" you need to
|
||||
make clear this text belongs to the text line below it, when
|
||||
using "below" you need to make sure it belongs to the text
|
||||
line above it.
|
||||
|
||||
The text will be displayed but it is not part of the actual
|
||||
buffer line, the cursor cannot be placed on it. A mouse click
|
||||
in the text will move the cursor to the first character after
|
||||
@@ -208,17 +224,12 @@ prop_add({lnum}, {col}, {props})
|
||||
property with "text" has been added for a buffer then using a
|
||||
negative "id" for any other property will give an error:
|
||||
*E1293*
|
||||
Make sure to use a highlight that makes clear to the user that
|
||||
this is virtual text, otherwise it will be very confusing that
|
||||
the text cannot be edited.
|
||||
To separate the virtual text from the buffer text prepend
|
||||
and/or append spaces to the "text" field.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetLnum()->prop_add(col, props)
|
||||
<
|
||||
*prop_add_list()*
|
||||
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
|
||||
prop_add_list({props}, [{item}, ...])
|
||||
Similar to prop_add(), but attaches a text property at
|
||||
multiple positions in a buffer.
|
||||
|
||||
@@ -230,12 +241,18 @@ prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
|
||||
type name of the text property type
|
||||
All fields except "type" are optional.
|
||||
|
||||
The second argument is a List of Lists where each list
|
||||
specifies the starting and ending position of the text. The
|
||||
first two items {lnum} and {col} specify the starting position
|
||||
of the text where the property will be attached and the last
|
||||
two items {end-lnum} and {end-col} specify the position just
|
||||
after the text.
|
||||
The second argument is a List of items, where each {item} is a
|
||||
list that specifies the starting and ending position of the
|
||||
text: [{lnum}, {col}, {end-lnum}, {end-col}]
|
||||
or: [{lnum}, {col}, {end-lnum}, {end-col}, {id}]
|
||||
|
||||
The first two items {lnum} and {col} specify the starting
|
||||
position of the text where the property will be attached.
|
||||
The next two items {end-lnum} and {end-col} specify the
|
||||
position just after the text.
|
||||
An optional fifth item {id} can be used to give a different ID
|
||||
to a property. When omitted the ID from {props} is used,
|
||||
falling back to zero if none are present.
|
||||
|
||||
It is not possible to add a text property with a "text" field
|
||||
here.
|
||||
|
||||
@@ -539,7 +539,7 @@ the current window, try this custom `:HelpCurwin` command:
|
||||
>
|
||||
command -bar -nargs=? -complete=help HelpCurwin execute s:HelpCurwin(<q-args>)
|
||||
let s:did_open_help = v:false
|
||||
|
||||
|
||||
function s:HelpCurwin(subject) abort
|
||||
let mods = 'silent noautocmd keepalt'
|
||||
if !s:did_open_help
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.0. Last change: 2022 Sep 18
|
||||
*todo.txt* For Vim version 9.0. Last change: 2022 Dec 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,83 +38,36 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Closure created in for loop can use loop variable? #11094
|
||||
Nested loops do not work correctly yet.
|
||||
Would need to save vars for each block separately.
|
||||
Upcoming larger works:
|
||||
- Make spell checking work with recent .dic/.aff files, e.g. French. #4916
|
||||
Make Vim understand the format somehow? Search for "spell" below.
|
||||
Make sure suggestions are speedy, also with composed words (German).
|
||||
- Discuss alternatives for using other grammars (treesitter, TextMate).
|
||||
- Possibly conversion to Vim syntax rules.
|
||||
- Other mechanism than group and cluster to nest syntax items, to be used
|
||||
for grammars.
|
||||
- Possibly keeping the parsed syntax tree and incremental updates.
|
||||
- tree-sitter doesn't handle incorrect syntax (while typing) properly.
|
||||
- Make clear how it relates to LSP.
|
||||
- example plugin: https://github.com/uga-rosa/dps-vsctm.vim
|
||||
|
||||
Virtual text:
|
||||
- Virtual text below: padding is highlighted when 'number' is set #11138
|
||||
- Virtual text above: do not highlight until end of line? #11138
|
||||
- 'number' should be below "above" virtual text? Might be difficult to
|
||||
implement.
|
||||
- Add highlight for the gap before/after virtual text above/below?
|
||||
- option to hide virtual text?
|
||||
|
||||
Fail with valgrind: test_edit
|
||||
Found errors in Test_edit_insertmode_ex_edit():
|
||||
Run 1, 01:19:51 - 01:20:01:
|
||||
command line..script /home/mool/vim/vim90/src/testdir/runtest.vim[469]..function RunTheTest[44]..Test_edit_insertmode_ex_edit[13]..WaitForAssert[2]..<SNR>6_WaitForCommon[11]..<lambda>4 line 1: Pattern '^-- INSERT --\\s*$' does not match ''
|
||||
|
||||
From test_global
|
||||
Found errors in Test_interrupt_global():
|
||||
Run 1, 02:16:22 - 02:16:27:
|
||||
command line..script /home/mool/vim/vim90/src/testdir/runtest.vim[469]..function RunTheTest[44]..Test_interrupt_global[13]..WaitForAssert[2]..<SNR>7_WaitForCommon[11]..<lambda>20 line 1: Pattern 'Interrupted' does not match 'Type :qa! and press...l changes and exit Vim 1,1 All'
|
||||
command line..script /home/mool/vim/vim90/src/testdir/runtest.vim[469]..function RunTheTest[44]..Test_interrupt_global[20]..WaitForAssert[2]..<SNR>7_WaitForCommon[11]..<lambda>21 line 1: Pattern 'Interrupted' does not match 'Entering Ex mode. Type "visual" to go to Normal mode.'
|
||||
|
||||
test_terminal3:
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
==2819005== at 0x2E9134: jump_to_mouse (mouse.c:2015)
|
||||
==2819005== by 0x2E69E6: do_mouse (mouse.c:702)
|
||||
==2819005== by 0x2E95C2: nv_mouse (mouse.c:2166)
|
||||
|
||||
option_set(): "get a bit too much"
|
||||
- refactor to separate function
|
||||
- check for empty result
|
||||
|
||||
Use :defer command:
|
||||
- Use "D" flag of writefile() and mkdir() in tests.
|
||||
(testdir/test_c*.vim done)
|
||||
|
||||
When using :echomessage do use msg_row and msg_col, but save and restore.
|
||||
How to test any failure? If nothing fails perhaps it's OK alrady.
|
||||
|
||||
New Vim indent script: #11079 Not done yet.
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
- Use Vim9 for more runtime files.
|
||||
- Check performance with callgrind and kcachegrind.
|
||||
getline()/substitute()/setline() in #5632
|
||||
- Better implementation for partial and tests for that.
|
||||
- when using "const" mark the variable type as const with TTFLAG_CONST, so
|
||||
that an error is given at compile time when trying to change it. E.g. for a
|
||||
const list and trying to call add().
|
||||
- Compile options that are an expression, e.g. "expr:" in 'spellsuggest',
|
||||
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
|
||||
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
|
||||
Give an error if compilation fails. (#7625)
|
||||
Alternatively: Detect a compiled function call and skip the expression
|
||||
evaluation.
|
||||
Use the location where the option was set for deciding whether it's to be
|
||||
evaluated in Vim9 script context.
|
||||
- implement :class and :interface: See |vim9-classes| #11544
|
||||
- implement :type
|
||||
- implement :enum
|
||||
- implement :class and :interface: See |vim9-classes|
|
||||
- For range: make table of first ASCII character with flag to quickly check if
|
||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||
- Use Vim9 for more runtime files.
|
||||
- Inline call to map() and filter(), better type checking.
|
||||
- Make accessing varargs faster: arg[expr]
|
||||
EVAL expr
|
||||
LOADVARARG (varargs idx)
|
||||
- When evaluating constants for script variables, some functions could work:
|
||||
has(featureName), len(someString)
|
||||
- Implement as part of an expression: ++expr, --expr, expr++, expr--.
|
||||
|
||||
Popup windows:
|
||||
- Preview popup not properly updated when it overlaps with completion menu.
|
||||
(Yegappan Lakshmanan, 2021 May 22)
|
||||
- Scrollbar thumb sometimes not visible #10492
|
||||
- Add a function to redraw a specific popup window. Esp. to be used when
|
||||
editing the command line, when screen updating doesn't happen. (Shougo)
|
||||
#10210 Example that shows the need on the issue.
|
||||
Probably need to update all popup windows (they may overlap)
|
||||
If the display is scrolled need to redraw everything later.
|
||||
- Add a flag to make a popup window focusable?
|
||||
CTRL-W P cycle over any preview window or focusable popup, end up back in
|
||||
current window.
|
||||
@@ -141,8 +94,6 @@ Popup windows:
|
||||
- put popup menu also in popup_mask?
|
||||
- Match does not have right BG color if line length equals popup width.
|
||||
(#5658)
|
||||
- Any other commands to disable in a popup window?
|
||||
Use ERROR_IF_POPUP_WINDOW for these.
|
||||
- Figure out the size and position better if wrapping inserts indent
|
||||
|
||||
'incsearch' with :s:
|
||||
@@ -218,8 +169,13 @@ Terminal emulator window:
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
Crash when a variable is removed while listing variables (Issue #11435)
|
||||
|
||||
Autoconf: must use autoconf 2.69, later version generates lots of warnings
|
||||
- try using autoconf 2.71 and fix all "obsolete" warnings
|
||||
- try using autoconf 2.71 and fix all "obsolete" warnings #11322
|
||||
|
||||
Problem with Visual highlight when 'linebreak' and 'showbreak' are set.
|
||||
#11272
|
||||
|
||||
Can deref_func_name() and deref_function_name() be merged?
|
||||
|
||||
@@ -228,34 +184,83 @@ reduced?
|
||||
|
||||
Add BufDeletePost. #11041
|
||||
|
||||
Add a string to the 'display' option ("smoothscroll" ?) to make CTRL-E and
|
||||
CTRL-Y scroll one screen line, also if this means the first line doesn't start
|
||||
with the first character (like what happens with a last line that doesn't
|
||||
fit). Display "<<<" at the start of the first visible line (like "@@@" is
|
||||
displayed in the last line). (Arseny Nasokin, #5154)
|
||||
Neovim PR: https://github.com/neovim/neovim/pull/11014
|
||||
Add winid arg to col() and charcol() #11466 (request #11461)
|
||||
|
||||
Can we make 'noendofline' and 'endoffile' visible? Should show by default,
|
||||
since it's an unusual situation.
|
||||
- Show 'noendofline' when it would be used for writing ('fileformat' "dos")
|
||||
with an upside down exclamation mark? NonText highlighting.
|
||||
- Show 'endoffile' when it would be used for writing ('fileformat' "dos") with
|
||||
"CTRL-Z", NonText highlighting.
|
||||
- Add 'fillchars' items to change this, default behavior like:
|
||||
noeol:¡
|
||||
eof:CTRL-Z
|
||||
|
||||
Test property disappears when using CR twice in a row. OK when some text was
|
||||
entered. (#11151)
|
||||
|
||||
Add 'keywordprg' to various ftplugin files:
|
||||
https://github.com/vim/vim/pull/5566
|
||||
|
||||
PR #11579 to add visualtext(), return Visually selected text.
|
||||
|
||||
Issue #10512: Dynamic loading broken with Perl 5.36
|
||||
Damien has a patch (2022 Dec 4)
|
||||
|
||||
Add some kind of ":whathappend" command and functions to make visible what the
|
||||
last few typed keys and executed commands are. To be used when the user
|
||||
wonders what went wrong.
|
||||
- typed keys - Normal mode command - like what is recorded in a register and
|
||||
displayed by 'showcmd'.
|
||||
- executed command lines
|
||||
- with more verbosity: what scripts/functions/autocommands were executed
|
||||
|
||||
NFA regexp does not handle composing characters well: #10286
|
||||
[ɔ̃] matches both ɔ and ɔ̃
|
||||
\(ɔ\|ɔ̃\) matches ɔ and not ɔ̃
|
||||
|
||||
Improvement in terminal configuration mess: Request the terminfo entry from
|
||||
the terminal itself. The $TERM value then is only relevant for whether this
|
||||
feature is supported or not. Replaces the xterm mechanism to request each
|
||||
entry separately. #6609
|
||||
Multiplexers (screen, tmux) can request it to the underlying terminal, and
|
||||
pass it on with modifications.
|
||||
Is there a way to make 'autowriteall' make a clean exit when the xterm is
|
||||
closed? (Dennis Nazic says files are preserved, okt 28). Perhaps handle TERM
|
||||
like HUP?
|
||||
|
||||
Better terminal emulator support:
|
||||
> Somehow request the terminfo entry from the terminal itself. The $TERM
|
||||
value then is only relevant for whether this feature is supported or not.
|
||||
Replaces the xterm mechanism to request each entry separately. #6609
|
||||
Multiplexers (screen, tmux) can request it to the underlying terminal, and
|
||||
pass it on with modifications.
|
||||
How to get all the text quickly (also over ssh)? Can we use a side channel?
|
||||
> When xterm supports sending an Escape sequence for the Esc key, should
|
||||
have a way to request this state. That could be an XTGETTCAP entry, e.g.
|
||||
"k!". Add "esc_sends_sequence" flag.
|
||||
If we know this state, then do not pretend going out of Insert mode in
|
||||
vgetorpeek(), where kitty_protocol_state is checked.
|
||||
> If a response ends up in a shell command, one way to avoid this is by
|
||||
sending t_RV last and delay starting a shell command until the response
|
||||
has been seen.
|
||||
> Can we use the req_more_codes_from_term() mechanism with more terminals?
|
||||
Should we repeat it after executing a shell command?
|
||||
Can also add this to the 'keyprotocol' option: "mok2+tcap"
|
||||
> In the table of terminal names pointing to the list of termcap entries,
|
||||
add an optional additional one. So that "xterm-kitty" can first load
|
||||
"xterm" and then add "kitty" entries.
|
||||
|
||||
Using "A" and "o" in manually created fold (in empty buffer) does not behave
|
||||
consistenly (James McCoy, #10698)
|
||||
|
||||
In a timer callback, when using ":echo" and then input() the message is
|
||||
overwritten. Could use ":echowin" and call redraw_cmd() in get_user_input().
|
||||
#11299
|
||||
|
||||
Syntax include problem: #11277. Related to Patch 8.2.2761
|
||||
|
||||
To avoid flicker: add an option that when a screen clear is requested, instead
|
||||
of clearing it draws everything and uses "clear to end of line" for every line.
|
||||
Resetting 't_ut' already causes this?
|
||||
|
||||
When scheme can't be found by configure there is no clear "not found" message:
|
||||
configure:5769: checking MzScheme install prefix
|
||||
configure:5781: result:
|
||||
configure:5781: result:
|
||||
|
||||
Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002
|
||||
|
||||
@@ -270,6 +275,15 @@ Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
|
||||
initialization to figure out the default value from 'shell'. Add a test for
|
||||
this.
|
||||
|
||||
Support translations for plugins: #11637
|
||||
- Need a tool like xgettext for Vim script, generates a .pot file.
|
||||
Need the equivalent of _() and N_(), perhaps TR() and TRN().
|
||||
- Instructions for how to create .po files and translate.
|
||||
- Script or Makefile to generate .mo files.
|
||||
- Instructions and perhaps a script to install the .mo files in the right
|
||||
place.
|
||||
- Add variant of gettext() that takes a package name.
|
||||
|
||||
With concealed text mouse click doesn't put the cursor in the right position.
|
||||
(Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly,
|
||||
need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called.
|
||||
@@ -282,11 +296,10 @@ MS-Windows: did path modifier :p:8 stop working? #8600
|
||||
Version of getchar() that does not move the cursor - #10603 Use a separate
|
||||
argument for the new flag.
|
||||
|
||||
Add "lastline" entry to 'fillchars' to specify a character instead of '@'.
|
||||
#10963
|
||||
|
||||
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
|
||||
|
||||
Can we add highlighting to ":echowindow"?
|
||||
|
||||
Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
|
||||
spread out. Make a section with copy/paste examples of script and pointers to
|
||||
more information.
|
||||
@@ -312,7 +325,9 @@ Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
|
||||
Also, z= in German on a long word can take a very long time, but CTRL-C to
|
||||
interrupt does not work. Where to add ui_breakcheck()?
|
||||
New English spell files also have very slow suggestions.
|
||||
French spell files don't work correctly. #4916
|
||||
|
||||
When 'spelloptions' is "camel" then zG doesn't work on some words.
|
||||
(Gary Johnson, 17 Oct 2022)
|
||||
|
||||
Make "g>" and "g<" in Visual mode move the text right or left.
|
||||
Also for a block selection. #8558
|
||||
@@ -346,6 +361,9 @@ when redirecting to a local variable (function or script) storing the value
|
||||
won't work. At least give an error. Is there a way to make it work?
|
||||
#10616
|
||||
|
||||
Completion for ":runtime" should show valid values, not what's in the current
|
||||
directory. (#11447)
|
||||
|
||||
Add an option to start_timer() to return from the input loop with K_IGNORE.
|
||||
This is useful e.g. when a popup was created that disables mappings, we need
|
||||
to return from vgetc() to make this happen. #7011
|
||||
@@ -387,6 +405,7 @@ Is this the right solution? Need to cleanup langmap behavior:
|
||||
So that replaying the register doesn't use keymap/langmap and still does the
|
||||
same thing.
|
||||
Also see #737: langmap not applied to replaying recording.
|
||||
Perhaps also related: #5147
|
||||
|
||||
Matchparen doesn't remove highlight after undo. (#7054)
|
||||
Is OK when syntax HL is active.
|
||||
@@ -427,6 +446,8 @@ and/or "sandbox" are set.
|
||||
|
||||
Problem with auto-formatting - inserting space and putting cursor before added
|
||||
character. (#6154)
|
||||
Auto-formatting comments joins a following non-comment line when the comment
|
||||
ends in a space. (Adam Levy, 18 Oct 2022)
|
||||
|
||||
When 'lazyredraw' is set sometimes the title is not updated.
|
||||
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
||||
@@ -497,8 +518,6 @@ find them. (Max Kukartsev, #6218)
|
||||
|
||||
Enable 'termbidi' if $VTE_VERSION >= 5703 ?
|
||||
|
||||
Sound: support on Mac? Or does libcanberra work there?
|
||||
|
||||
Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
|
||||
"--cleanFOO" does not result in an error. (#5537)
|
||||
@@ -648,6 +667,11 @@ negative. (see #4326)
|
||||
tab page. (Ingo Karkat, #4324)
|
||||
:call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well.
|
||||
|
||||
When opening a file, allow for specifying the initial column position:
|
||||
vim +12:5 file.txt line 12 column 5
|
||||
:edit +12:5 file.txt
|
||||
Should probably use the column as the character index.
|
||||
|
||||
This modeline throws unexpected errors: (#4165)
|
||||
vim: syn=nosyntax
|
||||
|
||||
@@ -704,9 +728,6 @@ when possible. (Dylan Lloyd, #3973)
|
||||
Make ":interactive !cmd" stop termcap mode, also when used in an autocommand.
|
||||
(#3692)
|
||||
|
||||
matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
|
||||
19.
|
||||
|
||||
Add something like 'fillchars' local to window, but allow for specifying a
|
||||
highlight name. Esp. for the statusline.
|
||||
And "extends" and "precedes" are also useful without 'list' set. Also in
|
||||
@@ -2632,13 +2653,6 @@ Awaiting updated patches:
|
||||
- Add possibility to highlight specific columns (for Fortran). Or put a
|
||||
line in between columns (e.g., for 'textwidth').
|
||||
Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
|
||||
8 Add functions:
|
||||
gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
|
||||
Update 2004 Sep 10
|
||||
Another patch from Edward L. Fox (2005 Nov 24)
|
||||
Search in 'runtimepath'?
|
||||
More docs needed about how to use this.
|
||||
How to get the messages into the .po files?
|
||||
confirm() add "flags" argument, with 'v' for vertical
|
||||
layout and 'c' for console dialog. (Haegg)
|
||||
Flemming Madsen has a patch for the 'c' flag
|
||||
@@ -3124,9 +3138,6 @@ Macintosh:
|
||||
line is too short. Add a word in 'scrollopt' to allow moving the cursor
|
||||
to longer line that is visible. A similar thing is done for the GUI when
|
||||
using the horizontal scrollbar.
|
||||
7 VisVim can only open one file. Hard to solve: each opened file is passed
|
||||
with a separate invocation, would need to use timestamps to know the
|
||||
invocations belong together.
|
||||
8 When giving a ":bwipeout" command a file-changed dialog may popup for this
|
||||
buffer, which is pointless. (Mike Williams)
|
||||
8 On MS-Windows ":make" doesn't show output while it is working. Use the
|
||||
@@ -4525,8 +4536,11 @@ Autocommands:
|
||||
BufChangePre, BufChangePost and RevertBuf. (Shah)
|
||||
ViewChanged - triggered when the text scrolls and when the window size
|
||||
changes.
|
||||
WinResized - After a window has been resized
|
||||
WinClose - Just before closing a window
|
||||
QuickfixList - when any entry in the current list changes or another
|
||||
list is selected
|
||||
QuickfixPosition - when selecting another entry in the current quickfix
|
||||
list
|
||||
|
||||
- Write the file now and then ('autosave'):
|
||||
*'autosave'* *'as'* *'noautosave'* *'noas'*
|
||||
'autosave' 'as' number (default 0)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*userfunc.txt* For Vim version 9.0. Last change: 2022 Sep 09
|
||||
*userfunc.txt* For Vim version 9.0. Last change: 2022 Nov 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -8,8 +8,8 @@ Defining and using functions.
|
||||
|
||||
This is introduced in section |41.7| of the user manual.
|
||||
|
||||
1. Defining a fuction |define-function|
|
||||
2. Calling a fuction |:call|
|
||||
1. Defining a function |define-function|
|
||||
2. Calling a function |:call|
|
||||
3. Cleaning up in a function |:defer|
|
||||
4. Automatically loading functions |autoload-functions|
|
||||
|
||||
@@ -405,7 +405,7 @@ function to abort. `:defer` can be used to avoid that: >
|
||||
call Handle('Outfile')
|
||||
endfunc
|
||||
|
||||
Note that deleting "Outfile" is scheduled before calling system(), since it
|
||||
Note that deleting "Outfile" is scheduled before calling `system()`, since it
|
||||
can be created even when `system()` fails.
|
||||
|
||||
The deferred functions are called in reverse order, the last one added is
|
||||
@@ -482,6 +482,10 @@ then define the function like this: >
|
||||
echo "Done!"
|
||||
endfunction
|
||||
|
||||
If the file doesn't exist, Vim will also search in 'packpath' (under "start")
|
||||
to allow calling packages' functions from your .vimrc when the packages have
|
||||
not been added to 'runtimepath' yet (see |packages|).
|
||||
|
||||
The file name and the name used before the # in the function must match
|
||||
exactly, and the defined function must have the name exactly as it will be
|
||||
called. In Vim9 script the "g:" prefix must be used: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_03.txt* For Vim version 9.0. Last change: 2020 Sep 03
|
||||
*usr_03.txt* For Vim version 9.0. Last change: 2022 Oct 30
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -223,7 +223,7 @@ you can see? This figure shows the three commands you can use:
|
||||
+---------------------------+
|
||||
|
||||
Hints: "H" stands for Home, "M" for Middle and "L" for Last. Alternatively,
|
||||
"H" for high, "M" for Middle and "L" for low.
|
||||
"H" for High, "M" for Middle and "L" for Low.
|
||||
|
||||
==============================================================================
|
||||
*03.6* Telling where you are
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_12.txt* For Vim version 9.0. Last change: 2021 Apr 19
|
||||
*usr_12.txt* For Vim version 9.0. Last change: 2022 Nov 19
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.0. Last change: 2022 Jun 23
|
||||
*usr_41.txt* For Vim version 9.0. Last change: 2022 Dec 05
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -139,7 +139,7 @@ FOUR KINDS OF NUMBERS
|
||||
Numbers can be decimal, hexadecimal, octal and binary.
|
||||
|
||||
A hexadecimal number starts with "0x" or "0X". For example "0x1f" is decimal
|
||||
31 and 0x1234 is decimal 4660.
|
||||
31 and "0x1234" is decimal 4660.
|
||||
|
||||
An octal number starts with "0o", "0O". "0o17" is decimal 15.
|
||||
|
||||
@@ -442,7 +442,7 @@ If you don't like the concatenation you can use the $"string" form, which
|
||||
accepts an expression in curly braces: >
|
||||
echo $"Name: {name}"
|
||||
|
||||
See |interp-string| for more information.
|
||||
See |interpolated-string| for more information.
|
||||
|
||||
Borrowed from the C language is the conditional expression: >
|
||||
|
||||
@@ -687,7 +687,7 @@ search() function uses its first argument as a search pattern and the second
|
||||
one as flags. The "W" flag means the search doesn't wrap around the end of
|
||||
the file.
|
||||
|
||||
Using the `call` command is optional in |Vim9| script. It is required in
|
||||
Using the `call` command is optional in |Vim9| script. It is required in
|
||||
legacy script and on the command line: >
|
||||
|
||||
call search("Date: ", "W")
|
||||
@@ -803,7 +803,7 @@ List manipulation: *list-functions*
|
||||
call() call a function with List as arguments
|
||||
index() index of a value in a List or Blob
|
||||
indexof() index in a List or Blob where an expression
|
||||
evaluates to true
|
||||
evaluates to true
|
||||
max() maximum value in a List
|
||||
min() minimum value in a List
|
||||
count() count number of times a value appears in a List
|
||||
@@ -935,6 +935,7 @@ Working with text in the current buffer: *text-functions*
|
||||
|
||||
Working with text in another buffer:
|
||||
getbufline() get a list of lines from the specified buffer
|
||||
getbufoneline() get a one line from the specified buffer
|
||||
setbufline() replace a line in the specified buffer
|
||||
appendbufline() append a list of lines in the specified buffer
|
||||
deletebufline() delete lines from a specified buffer
|
||||
@@ -1030,6 +1031,7 @@ Buffers, windows and the argument list:
|
||||
getwininfo() get a list with window information
|
||||
getchangelist() get a list of change list entries
|
||||
getjumplist() get a list of jump list entries
|
||||
swapfilelist() list of existing swap files in 'directory'
|
||||
swapinfo() information about a swap file
|
||||
swapname() get the swap file path of a buffer
|
||||
|
||||
@@ -1110,6 +1112,7 @@ Interactive: *interactive-functions*
|
||||
getcharstr() get a character from the user as a string
|
||||
getcharmod() get modifiers for the last typed character
|
||||
getmousepos() get last known mouse position
|
||||
getmouseshape() get name of the current mouse shape
|
||||
echoraw() output characters as-is
|
||||
feedkeys() put characters in the typeahead queue
|
||||
input() get a line from the user
|
||||
@@ -1289,6 +1292,7 @@ Popup window: *popup-window-functions*
|
||||
popup_filter_yesno() block until 'y' or 'n' is pressed
|
||||
popup_getoptions() get current options for a popup
|
||||
popup_getpos() get actual position and size of a popup
|
||||
popup_findecho() get window ID for popup used for `:echowindow`
|
||||
popup_findinfo() get window ID for popup info window
|
||||
popup_findpreview() get window ID for popup preview window
|
||||
popup_list() get list of all popup window IDs
|
||||
|
||||
@@ -159,6 +159,7 @@ relative path: >
|
||||
|
||||
This will search for the script "monthlib.vim" in the autoload directories of
|
||||
'runtimepath'. With Unix one of the directories often is "~/.vim/autoload".
|
||||
It will also search under 'packpath', under "start".
|
||||
|
||||
The main advantage of this is that this script can be easily shared with other
|
||||
scripts. You do need to make sure that the script name is unique, since Vim
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.0. Last change: 2022 Sep 17
|
||||
*various.txt* For Vim version 9.0. Last change: 2022 Nov 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -29,6 +29,8 @@ CTRL-L Clear and redraw the screen. The redraw may happen
|
||||
Useful to update the status line(s) when 'statusline'
|
||||
includes an item that doesn't cause automatic
|
||||
updating.
|
||||
If the command line is being edited the redraw is
|
||||
postponed until later.
|
||||
|
||||
*:redrawt* *:redrawtabline*
|
||||
:redrawt[abline] Redraw the tabline. Useful to update the tabline when
|
||||
@@ -296,7 +298,8 @@ g8 Print the hex values of the bytes used in the
|
||||
:silent !{cmd}
|
||||
< The screen is not redrawn then, thus you have to use
|
||||
CTRL-L or ":redraw!" if the command did display
|
||||
something.
|
||||
something. However, this depends on what the |t_ti|
|
||||
and |t_te| termcap entries are set to.
|
||||
Also see |shell-window|.
|
||||
|
||||
*:!!*
|
||||
@@ -330,8 +333,8 @@ g8 Print the hex values of the bytes used in the
|
||||
*+feature-list*
|
||||
*+acl* |ACL| support included
|
||||
*+ARP* Amiga only: ARP support included
|
||||
B *+arabic* |Arabic| language support
|
||||
B *+autochdir* support 'autochdir' option
|
||||
H *+arabic* |Arabic| language support
|
||||
N *+autochdir* support 'autochdir' option
|
||||
T *+autocmd* |:autocmd|, automatic commands. Always enabled since
|
||||
8.0.1564
|
||||
H *+autoservername* Automatically enable |clientserver|
|
||||
@@ -347,18 +350,19 @@ T *++builtin_terms* maximal terminals builtin |builtin-terms| Always
|
||||
N *+byte_offset* support for 'o' flag in 'statusline' option, "go"
|
||||
and ":goto" commands.
|
||||
m *+channel* inter process communication |channel|
|
||||
6 *+cindent* |'cindent'|, C indenting
|
||||
T *+cindent* |'cindent'|, C indenting; Always enabled
|
||||
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
|
||||
*+clipboard* |clipboard| support compiled-in
|
||||
*+clipboard_working* |clipboard| support compiled-in and working
|
||||
T *+cmdline_compl* command line completion |cmdline-completion|
|
||||
T *+cmdline_hist* command line history |cmdline-history|
|
||||
N *+cmdline_info* |'showcmd'| and |'ruler'|
|
||||
S *+cmdwin* |cmdline-window| support
|
||||
T *+cmdline_info* |'showcmd'| and |'ruler'|; Always enabled since
|
||||
9.0.0747
|
||||
T *+cmdwin* |cmdline-window| support; Always enabled since 9.0.0657
|
||||
T *+comments* |'comments'| support
|
||||
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
|
||||
N *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
|
||||
N *+cryptv* encryption support |encryption|
|
||||
B *+cscope* |cscope| support
|
||||
H *+cscope* |cscope| support
|
||||
T *+cursorbind* |'cursorbind'| support
|
||||
m *+cursorshape* |termcap-cursor-shape| support
|
||||
m *+debug* Compiled for debugging.
|
||||
@@ -369,7 +373,7 @@ N *+diff* |vimdiff| and 'diff'
|
||||
N *+digraphs* |digraphs| *E196*
|
||||
*+directx* Win32 GUI only: DirectX and |'renderoptions'|
|
||||
*+dnd* Support for DnD into the "~ register |quote_~|.
|
||||
B *+emacs_tags* |emacs-tags| files
|
||||
H *+emacs_tags* |emacs-tags| files
|
||||
N *+eval* expression evaluation |eval.txt|
|
||||
T *+ex_extra* always on now, used to be for Vim's extra Ex commands
|
||||
N *+extra_search* |'hlsearch'| and |'incsearch'| options.
|
||||
@@ -395,12 +399,12 @@ T *+insert_expand* |insert_expand| Insert mode completion
|
||||
m *+ipv6* Support for IPv6 networking |channel|
|
||||
m *+job* starting and stopping jobs |job|
|
||||
T *+jumplist* |jumplist|; Always enabled since 8.2.3795
|
||||
B *+keymap* |'keymap'|
|
||||
H *+keymap* |'keymap'|
|
||||
N *+lambda* |lambda| and |closure|
|
||||
B *+langmap* |'langmap'|
|
||||
H *+langmap* |'langmap'|
|
||||
N *+libcall* |libcall()|
|
||||
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
|
||||
t *+lispindent* |'lisp'|
|
||||
T *+lispindent* |'lisp'|
|
||||
T *+listcmds* Vim commands for the list of buffers |buffer-hidden|
|
||||
and argument list |:argdelete|
|
||||
T *+localmap* Support for mappings local to a buffer |:map-local|
|
||||
@@ -411,16 +415,16 @@ N *+mksession* |:mksession|
|
||||
T *+modify_fname* |filename-modifiers|
|
||||
T *+mouse* Mouse handling |mouse-using|
|
||||
N *+mouseshape* |'mouseshape'|
|
||||
B *+mouse_dec* Unix only: Dec terminal mouse handling |dec-mouse|
|
||||
N *+mouse_dec* Unix only: Dec terminal mouse handling |dec-mouse|
|
||||
N *+mouse_gpm* Unix only: Linux console mouse handling |gpm-mouse|
|
||||
m *+mouse_gpm/dyn* Same as |+mouse_gpm| with optional library dependency
|
||||
|/dyn|
|
||||
N *+mouse_jsbterm* JSB mouse handling |jsbterm-mouse|
|
||||
B *+mouse_netterm* Unix only: netterm mouse handling |netterm-mouse|
|
||||
N *+mouse_netterm* Unix only: netterm mouse handling |netterm-mouse|
|
||||
N *+mouse_pterm* QNX only: pterm mouse handling |qnx-terminal|
|
||||
N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse|
|
||||
B *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse|
|
||||
B *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse|
|
||||
N *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse|
|
||||
N *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse|
|
||||
N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse|
|
||||
T *+multi_byte* Unicode support, 16 and 32 bit characters |multibyte|
|
||||
*+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime|
|
||||
@@ -449,14 +453,14 @@ m *+python3/dyn* Python 3 interface |python-dynamic| |/dyn|
|
||||
N *+quickfix* |:make| and |quickfix| commands
|
||||
N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout,
|
||||
'redrawtime' option
|
||||
B *+rightleft* Right to left typing |'rightleft'|
|
||||
H *+rightleft* Right to left typing |'rightleft'|
|
||||
m *+ruby* Ruby interface |ruby|
|
||||
m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
|
||||
T *+scrollbind* |'scrollbind'|
|
||||
B *+signs* |:sign|
|
||||
t *+smartindent* |'smartindent'|
|
||||
B *+sodium* compiled with libsodium for better encryption support
|
||||
B *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
|
||||
N *+signs* |:sign|
|
||||
T *+smartindent* |'smartindent'|
|
||||
H *+sodium* compiled with libsodium for better encryption support
|
||||
H *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
|
||||
N *+spell* spell checking support, see |spell|
|
||||
N *+startuptime* |--startuptime| argument
|
||||
N *+statusline* Options 'statusline', 'rulerformat' and special
|
||||
@@ -472,7 +476,7 @@ m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
|
||||
m *+terminal* Support for terminal window |terminal|
|
||||
*+terminfo* uses |terminfo| instead of termcap
|
||||
N *+termresponse* support for |t_RV| and |v:termresponse|
|
||||
B *+termguicolors* 24-bit color in xterm-compatible terminals support
|
||||
N *+termguicolors* 24-bit color in xterm-compatible terminals support
|
||||
T *+textobjects* |text-objects| selection. Always enabled since 9.0.0222.
|
||||
N *+textprop* |text-properties|
|
||||
*+tgetent* non-Unix only: able to use external termcap
|
||||
@@ -481,7 +485,7 @@ T *+title* Setting the window 'title' and 'icon'; Always enabled
|
||||
N *+toolbar* |gui-toolbar|
|
||||
T *+user_commands* User-defined commands. |user-commands|
|
||||
Always enabled since 8.1.1210.
|
||||
B *+vartabs* Variable-width tabstops. |'vartabstop'|
|
||||
H *+vartabs* Variable-width tabstops. |'vartabstop'|
|
||||
T *+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||
since 8.0.1118.
|
||||
T *+vim9script* |Vim9| script
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version5.txt* For Vim version 9.0. Last change: 2022 Apr 06
|
||||
*version5.txt* For Vim version 9.0. Last change: 2022 Nov 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -118,7 +118,7 @@ Added |added-5.8|
|
||||
Fixed |fixed-5.8|
|
||||
|
||||
==============================================================================
|
||||
INCOMPATIBLE *incompatible-5*
|
||||
INCOMPATIBLE *incompatible-5*
|
||||
|
||||
Default value for 'compatible' changed *cp-default*
|
||||
--------------------------------------
|
||||
@@ -360,7 +360,7 @@ CTRL-_ key for this |i_CTRL-_|. >
|
||||
:imap <C-B> <C-O>:set revins!<CR>
|
||||
|
||||
==============================================================================
|
||||
NEW FEATURES *new-5*
|
||||
NEW FEATURES *new-5*
|
||||
|
||||
Syntax highlighting *new-highlighting*
|
||||
-------------------
|
||||
@@ -635,7 +635,7 @@ Included support for the Farsi language (Shiran). Only when enabled at
|
||||
compile time. See |farsi|.
|
||||
|
||||
==============================================================================
|
||||
IMPROVEMENTS *improvements-5*
|
||||
IMPROVEMENTS *improvements-5*
|
||||
|
||||
Performance:
|
||||
- When 'showcmd' was set, mappings would execute much more slowly because the
|
||||
@@ -929,7 +929,7 @@ Some versions of Motif require "-lXpm". Added check for this in configure.
|
||||
Don't add "-L/usr/lib" to the link line, causes problems on a few systems.
|
||||
|
||||
==============================================================================
|
||||
COMPILE TIME CHANGES *compile-changes-5*
|
||||
COMPILE TIME CHANGES *compile-changes-5*
|
||||
|
||||
When compiling, allow a choice for minimal, normal or maximal features in an
|
||||
easy way, by changing a single line in src/feature.h.
|
||||
@@ -975,7 +975,7 @@ Don't use HPUX digraphs by default, but only when HPUX_DIGRAPHS is defined.
|
||||
|digraphs-default|
|
||||
|
||||
==============================================================================
|
||||
BUG FIXES *bug-fixes-5*
|
||||
BUG FIXES *bug-fixes-5*
|
||||
|
||||
Note: Some of these fixes may only apply to test versions which were
|
||||
created after version 4.6, but before 5.0.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.0. Last change: 2022 Jun 28
|
||||
*version9.txt* For Vim version 9.0. Last change: 2022 Nov 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -254,12 +254,12 @@ summary.
|
||||
Many memory leaks, invalid memory accesses and crashes have been fixed.
|
||||
See the list of patches below: |bug-fixes-9|.
|
||||
|
||||
Support for Vim expression evaluation in a string. |interp-string|
|
||||
Support for Vim expression evaluation in a string. |interpolated-string|
|
||||
Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
|
||||
|
||||
Support for fuzzy matching:
|
||||
- a string in a List of strings. |fuzzy-matching|
|
||||
- completion support for command line completion using 'wildoptions'
|
||||
- completion support for command line completion using 'wildoptions'.
|
||||
- for |:vimgrep|.
|
||||
|
||||
Added support for the |Haiku| OS.
|
||||
@@ -398,22 +398,22 @@ Update xdiff to version 2.33. Update libvterm to revision 789.
|
||||
|
||||
Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.
|
||||
|
||||
Add the |t_AU| and |t_8u| termap codes for underline and undercurl. Add the
|
||||
Add the |t_AU| and |t_8u| termcap codes for underline and undercurl. Add the
|
||||
t_fd and t_fe termcap codes for detecting focus events.
|
||||
|
||||
Support for indenting C pragmas like normal code. (|cino-P|)
|
||||
|
||||
Add support for defining the syntax fold level (|:syn-foldlevel|)
|
||||
Add support for defining the syntax fold level. (|:syn-foldlevel|)
|
||||
|
||||
Add support for using \<*xxx> in a string to prepend a modifier to a
|
||||
character. (|expr-quote|).
|
||||
character. (|expr-quote|)
|
||||
|
||||
Add support trimming characters at the beginning or end of a string using
|
||||
|trim()|.
|
||||
|
||||
Make ":verbose pwd" show the scope of the directory. |:pwd-verbose|
|
||||
|
||||
Add the "0o" notation for specifying octal numbers |scriptversion-4|
|
||||
Add the "0o" notation for specifying octal numbers. |scriptversion-4|
|
||||
|
||||
Support for changing to the previous tab-local and window-local directories
|
||||
using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)
|
||||
@@ -428,7 +428,7 @@ Add support for executing (|:@|) a register containing line continuation.
|
||||
Lua support:
|
||||
- Call Vim functions from Lua (vim.call() and vim.fn()).
|
||||
- Convert a Lua function and a closure to a Vim funcref so that it can be
|
||||
accessed in a Vimscript (|lua-funcref|).
|
||||
accessed in a Vim script (|lua-funcref|).
|
||||
- Not backwards compatible: Make Lua arrays one based.
|
||||
- Add support for using table.insert() and table.remove() functions with Vim
|
||||
lists.
|
||||
@@ -27366,7 +27366,7 @@ Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
|
||||
Patch 8.2.4460
|
||||
Problem: Vim9: wrong error for defining dict function.
|
||||
Solution: Explicitly check for trying to define a dict function.
|
||||
(closes 9827)
|
||||
(closes #9827)
|
||||
Files: src/errors.h, src/userfunc.c, src/vim9compile.c,
|
||||
src/testdir/test_vim9_func.vim
|
||||
|
||||
@@ -28478,7 +28478,7 @@ Files: src/change.c, src/drawscreen.c, src/structs.h
|
||||
|
||||
Patch 8.2.4645
|
||||
Problem: 'shortmess' changed when session does not store options.
|
||||
Solution: Save and restore 'shortmess' if needed. (James Charti,
|
||||
Solution: Save and restore 'shortmess' if needed. (James Cherti,
|
||||
closes #10037)
|
||||
Files: src/session.c, src/testdir/test_mksession.vim
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.0. Last change: 2022 Sep 15
|
||||
*vim9.txt* For Vim version 9.0. Last change: 2022 Dec 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -16,7 +16,7 @@ features in Vim9 script.
|
||||
3. New style functions |fast-functions|
|
||||
4. Types |vim9-types|
|
||||
5. Namespace, Import and Export |vim9script|
|
||||
6. Future work: classes |vim9-classes|
|
||||
6. Classes and interfaces |vim9-classes|
|
||||
|
||||
9. Rationale |vim9-rationale|
|
||||
|
||||
@@ -502,7 +502,7 @@ How constants work varies between languages. Some consider a variable that
|
||||
can't be assigned another value a constant. JavaScript is an example. Others
|
||||
also make the value immutable, thus when a constant uses a list, the list
|
||||
cannot be changed. In Vim9 we can use both.
|
||||
*E1021*
|
||||
*E1021* *E1307*
|
||||
`:const` is used for making both the variable and the value a constant. Use
|
||||
this for composite structures that you want to make sure will not be modified.
|
||||
Example: >
|
||||
@@ -962,6 +962,10 @@ In compiled Vim9 script you get:
|
||||
3
|
||||
Generally, you should not change the list that is iterated over. Make a copy
|
||||
first if needed.
|
||||
When looping over a list of lists, the nested lists can be changed. The loop
|
||||
variable is "final", it cannot be changed but what its value can be changed.
|
||||
*E1306*
|
||||
The depth of loops, :for and :while loops added together, cannot exceed 10.
|
||||
|
||||
|
||||
Conditions and expressions ~
|
||||
@@ -1035,7 +1039,7 @@ In Vim9 script one can use the following predefined values: >
|
||||
`true` is the same as `v:true`, `false` the same as `v:false`, `null` the same
|
||||
as `v:null`.
|
||||
|
||||
While `null` has the type "special", the other "null_" types have the type
|
||||
While `null` has the type "special", the other "null_" values have the type
|
||||
indicated by their name. Quite often a null value is handled the same as an
|
||||
empty value, but not always. The values can be useful to clear a script-local
|
||||
variable, since they cannot be deleted with `:unlet`. E.g.: >
|
||||
@@ -1408,6 +1412,21 @@ to a Vim9 function:
|
||||
'three'
|
||||
]
|
||||
|
||||
|
||||
Calling a function in an expr option ~
|
||||
*expr-option-function*
|
||||
The value of a few options, such as 'foldexpr', is an expression that is
|
||||
evaluated to get a value. The evaluation can have quite a bit of overhead.
|
||||
One way to minimize the overhead, and also to keep the option value very
|
||||
simple, is to define a compiled function and set the option to call it
|
||||
without arguments. Example: >
|
||||
vim9script
|
||||
def MyFoldFunc(): any
|
||||
... compute fold level for line v:lnum
|
||||
return level
|
||||
enddef
|
||||
set foldexpr=s:MyFoldFunc()
|
||||
|
||||
==============================================================================
|
||||
|
||||
4. Types *vim9-types*
|
||||
@@ -1921,64 +1940,17 @@ Or: >
|
||||
|
||||
==============================================================================
|
||||
|
||||
6. Future work: classes *vim9-classes*
|
||||
6. Classes and interfaces *vim9-classes*
|
||||
|
||||
Above "class" was mentioned a few times, but it has not been implemented yet.
|
||||
Most of Vim9 script can be created without this functionality, and since
|
||||
implementing classes is going to be a lot of work, it is left for the future.
|
||||
For now we'll just make sure classes can be added later.
|
||||
In legacy script a Dictionary could be used as a kind-of object, by adding
|
||||
members that are functions. However, this is quite inefficient and requires
|
||||
the writer to do the work of making sure all the objects have the right
|
||||
members. See |Dictionary-function|.
|
||||
|
||||
Thoughts:
|
||||
- `class` / `endclass`, the whole class must be in one file
|
||||
- Class names are always CamelCase (to avoid a name clash with builtin types)
|
||||
- A single constructor called "constructor"
|
||||
- Single inheritance with `class ThisClass extends BaseClass`
|
||||
- `abstract class` (class with incomplete implementation)
|
||||
- `interface` / `endinterface` (abstract class without any implementation)
|
||||
- `class SomeClass implements SomeInterface`
|
||||
- Generics for class: `class <Tkey, Tentry>`
|
||||
- Generics for function: `def <Tkey> GetLast(key: Tkey)`
|
||||
In |Vim9| script you can have classes, objects and interfaces like in most
|
||||
popular object-oriented programming languages. Since this is a lot of
|
||||
functionality it is located in a separate help file: |vim9class.txt|.
|
||||
|
||||
Again, much of this is from TypeScript with a slightly different syntax.
|
||||
|
||||
Some things that look like good additions:
|
||||
- Use a class as an interface (like Dart)
|
||||
- Extend a class with methods, using an import (like Dart)
|
||||
- Mixins
|
||||
- For testing: Mock mechanism
|
||||
|
||||
An important class that will be provided is "Promise". Since Vim is single
|
||||
threaded, connecting asynchronous operations is a natural way of allowing
|
||||
plugins to do their work without blocking the user. It's a uniform way to
|
||||
invoke callbacks and handle timeouts and errors.
|
||||
|
||||
Some commands have already been reserved:
|
||||
*:class*
|
||||
*:endclass*
|
||||
*:abstract*
|
||||
*:enum*
|
||||
*:endenum*
|
||||
*:interface*
|
||||
*:endinterface*
|
||||
*:static*
|
||||
*:type*
|
||||
|
||||
Some examples: >
|
||||
|
||||
abstract class Person
|
||||
static const prefix = 'xxx'
|
||||
var name: string
|
||||
|
||||
def constructor(name: string)
|
||||
this.name = name
|
||||
enddef
|
||||
|
||||
def display(): void
|
||||
echo name
|
||||
enddef
|
||||
|
||||
abstract def find(string): Person
|
||||
endclass
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -2265,18 +2237,5 @@ tool need to be supported. Since most languages support classes the lack of
|
||||
support for classes in Vim is then a problem.
|
||||
|
||||
|
||||
Classes ~
|
||||
|
||||
Vim supports a kind-of object oriented programming by adding methods to a
|
||||
dictionary. With some care this can be made to work, but it does not look
|
||||
like real classes. On top of that, it's quite slow, because of the use of
|
||||
dictionaries.
|
||||
|
||||
It would be good to support real classes, and this is planned for a later
|
||||
version. The support is a "minimal common functionality" of class support in
|
||||
most languages. It will work much like Java, which is the most popular
|
||||
programming language.
|
||||
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
700
runtime/doc/vim9class.txt
Normal file
700
runtime/doc/vim9class.txt
Normal file
@@ -0,0 +1,700 @@
|
||||
*vim9class.txt* For Vim version 9.0. Last change: 2022 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
NOTE - This is under development, anything can still change! - NOTE
|
||||
|
||||
|
||||
Vim9 classes, objects, interfaces, types and enums.
|
||||
|
||||
1. Overview |Vim9-class-overview|
|
||||
2. A simple class |Vim9-simple-class|
|
||||
3. Using an abstract class |Vim9-abstract-class|
|
||||
4. Using an interface |Vim9-using-interface|
|
||||
5. More class details |Vim9-class|
|
||||
6. Type definition |Vim9-type|
|
||||
7. Enum |Vim9-enum|
|
||||
|
||||
9. Rationale
|
||||
10. To be done later
|
||||
|
||||
==============================================================================
|
||||
|
||||
1. Overview *Vim9-class-overview*
|
||||
|
||||
The fancy term is "object-oriented programming". You can find lots of study
|
||||
material about 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.
|
||||
|
||||
The basic item is an object:
|
||||
- An object stores state. It contains one or more variables that can each
|
||||
have a value.
|
||||
- An object usually provides functions that manipulate its state. These
|
||||
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.
|
||||
- Objects are created by a class and all objects have the same interface.
|
||||
This never changes, it is not dynamic.
|
||||
|
||||
An object can only be created by a class. A class provides:
|
||||
- A new() method, the constructor, which returns an object for the class.
|
||||
This method is invoked on the class name: MyClass.new().
|
||||
- State shared by all objects of the class: class variables and constants.
|
||||
- A hierarchy of classes, with super-classes and sub-classes, inheritance.
|
||||
|
||||
An interface is used to specify properties of an object:
|
||||
- An object can declare several interfaces that it implements.
|
||||
- Different objects implementing the same interface can be used the same way.
|
||||
|
||||
The class hierarchy allows for single inheritance. Otherwise interfaces are
|
||||
to be used where needed.
|
||||
|
||||
|
||||
Class modeling ~
|
||||
|
||||
You can model classes any way you like. Keep in mind what you are building,
|
||||
don't try to model the real world. This can be confusing, especially because
|
||||
teachers use real-world objects to explain class relations and you might think
|
||||
your model should therefore reflect the real world. It doesn't! The model
|
||||
should match your purpose.
|
||||
|
||||
You will soon find that composition is often better than inheritance. Don't
|
||||
waste time trying to find the optimal class model. Or waste time discussing
|
||||
whether a square is a rectangle or that a rectangle is a square. It doesn't
|
||||
matter.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
2. A simple class *Vim9-simple-class*
|
||||
|
||||
Let's start with a simple example: a class that stores a text position: >
|
||||
|
||||
class TextPosition
|
||||
this.lnum: number
|
||||
this.col: number
|
||||
|
||||
def new(lnum: number, col: number)
|
||||
this.lnum = lnum
|
||||
this.col = col
|
||||
enddef
|
||||
|
||||
def SetLnum(lnum: number)
|
||||
this.lnum = lnum
|
||||
enddef
|
||||
|
||||
def SetCol(col: number)
|
||||
this.col = col
|
||||
enddef
|
||||
|
||||
def SetPosition(lnum: number, col: number)
|
||||
this.lnum = lnum
|
||||
this.col = col
|
||||
enddef
|
||||
endclass
|
||||
|
||||
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: >
|
||||
|
||||
echo $'The text position is ({pos.lnum}, {pos.col})'
|
||||
|
||||
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. This
|
||||
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.
|
||||
|
||||
|
||||
Member write access ~
|
||||
|
||||
Now try to change an object member directly: >
|
||||
|
||||
pos.lnum = 9
|
||||
|
||||
This will give you an error! That is because by default object members can be
|
||||
read but not set. That's why the class provides a method for it: >
|
||||
|
||||
pos.SetLnum(9)
|
||||
|
||||
Allowing to read but not set an object member 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.
|
||||
|
||||
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 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.
|
||||
|
||||
|
||||
Private members ~
|
||||
|
||||
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: >
|
||||
|
||||
this._lnum: number
|
||||
this._col number
|
||||
|
||||
Now you need to provide methods to get the value of the private members.
|
||||
These are commonly call getters. We recommend using a name that starts with
|
||||
"Get": >
|
||||
|
||||
def GetLnum(): number
|
||||
return this._lnum
|
||||
enddef
|
||||
|
||||
def GetCol() number
|
||||
return this._col
|
||||
enddef
|
||||
|
||||
This example isn't very useful, the members 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: >
|
||||
|
||||
def GetLnum(): number
|
||||
if this._lnum > this._lineCount
|
||||
return this._lineCount
|
||||
endif
|
||||
return this._lnum
|
||||
enddef
|
||||
|
||||
|
||||
Simplifying the new() method ~
|
||||
|
||||
Many constructors take values for the object members. Thus you very often see
|
||||
this pattern: >
|
||||
|
||||
this.lnum: number
|
||||
this.col: number
|
||||
|
||||
def new(lnum: number, col: number)
|
||||
this.lnum = lnum
|
||||
this.col = col
|
||||
enddef
|
||||
|
||||
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: >
|
||||
|
||||
def new(this.lnum, this.col)
|
||||
enddef
|
||||
|
||||
The semantics are easy to understand: Providing the object member name,
|
||||
including "this.", as the argument to new() means the value provided in the
|
||||
new() call is assigned to that object member. This mechanism is coming from
|
||||
the Dart language.
|
||||
|
||||
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.
|
||||
3. Arguments in the new() method in the "this.name" form are assigned.
|
||||
4. The body of the new() method is executed.
|
||||
|
||||
TODO: for a sub-class the constructor of the parent class will be invoked
|
||||
somewhere.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. Using an abstract class *Vim9-abstract-class*
|
||||
|
||||
An abstract class forms the base for at least one sub-class. In the class
|
||||
model one often finds that a few classes have the same properties that can be
|
||||
shared, but a class with those properties does not have enough state to create
|
||||
an object from. A sub-class must extend the abstract class and add the
|
||||
missing state and/or methods before it can be used to create objects for.
|
||||
|
||||
An abstract class does not have a new() method.
|
||||
|
||||
For example, a Shape class could store a color and thickness. You cannot
|
||||
create a Shape object, it is missing the information about what kind of shape
|
||||
it is. The Shape class functions as the base for a Square and a Triangle
|
||||
class, for which objects can be created. Example: >
|
||||
|
||||
abstract class Shape
|
||||
this.color = Color.Black
|
||||
this.thickness = 10
|
||||
endclass
|
||||
|
||||
class Square extends Shape
|
||||
this.size: number
|
||||
|
||||
def new(this.size)
|
||||
enddef
|
||||
endclass
|
||||
|
||||
class Triangle extends Shape
|
||||
this.base: number
|
||||
this.height: number
|
||||
|
||||
def new(this.base, this.height)
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
*class-member* *:static*
|
||||
Class members are declared with "static". They are used by the name without a
|
||||
prefix: >
|
||||
|
||||
class OtherThing
|
||||
this.size: number
|
||||
static totalSize: number
|
||||
|
||||
def new(this.size)
|
||||
totalSize += this.size
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
*class-method*
|
||||
Class methods are also declared with "static". They have no access to object
|
||||
members, they cannot use the "this" keyword. >
|
||||
|
||||
class OtherThing
|
||||
this.size: number
|
||||
static totalSize: number
|
||||
|
||||
" Clear the total size and return the value it had before.
|
||||
static def ClearTotalSize(): number
|
||||
var prev = totalSize
|
||||
totalSize = 0
|
||||
return prev
|
||||
enddef
|
||||
endclass
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
4. Using an interface *Vim9-using-interface*
|
||||
|
||||
The example above with Shape, Square and Triangle can be made more useful if
|
||||
we add a method to compute the surface of the object. For that we create the
|
||||
interface called HasSurface, which specifies one method Surface() that returns
|
||||
a number. This example extends the one above: >
|
||||
|
||||
abstract class Shape
|
||||
this.color = Color.Black
|
||||
this.thickness = 10
|
||||
endclass
|
||||
|
||||
interface HasSurface
|
||||
def Surface(): number
|
||||
endinterface
|
||||
|
||||
class Square extends Shape implements HasSurface
|
||||
this.size: number
|
||||
|
||||
def new(this.size)
|
||||
enddef
|
||||
|
||||
def Surface(): number
|
||||
return this.size * this.size
|
||||
enddef
|
||||
endclass
|
||||
|
||||
class Triangle extends Shape implements HasSurface
|
||||
this.base: number
|
||||
this.height: number
|
||||
|
||||
def new(this.base, this.height)
|
||||
enddef
|
||||
|
||||
def Surface(): number
|
||||
return this.base * this.height / 2
|
||||
enddef
|
||||
endclass
|
||||
|
||||
The interface name can be used as a type: >
|
||||
|
||||
var shapes: list<HasSurface> = [
|
||||
Square.new(12),
|
||||
Triangle.new(8, 15),
|
||||
]
|
||||
for shape in shapes
|
||||
echo $'the surface is {shape.Surface()}'
|
||||
endfor
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
5. More class details *Vim9-class*
|
||||
|
||||
Defining a class ~
|
||||
*:class* *:endclass* *:abstract*
|
||||
A class is defined between `:class` and `:endclass`. The whole class is
|
||||
defined in one script file. It is not possible to add to a class later.
|
||||
|
||||
A class can only be defined in a |Vim9| script file. *E1315*
|
||||
A class cannot be defined inside a function.
|
||||
|
||||
It is possible to define more than one class in a script file. Although it
|
||||
usually is better to export only one main class. It can be useful to define
|
||||
types, enums and helper classes though.
|
||||
|
||||
The `:abstract` keyword may be prefixed and `:export` may be used. That gives
|
||||
these variants: >
|
||||
|
||||
class ClassName
|
||||
endclass
|
||||
|
||||
export class ClassName
|
||||
endclass
|
||||
|
||||
abstract class ClassName
|
||||
endclass
|
||||
|
||||
export abstract class ClassName
|
||||
endclass
|
||||
<
|
||||
*E1314*
|
||||
The class name should be CamelCased. It must start with an uppercase letter.
|
||||
That avoids clashing with builtin types.
|
||||
|
||||
After the class name these optional items can be used. Each can appear only
|
||||
once. They can appear in any order, although this order is recommended: >
|
||||
extends ClassName
|
||||
implements InterfaceName, OtherInterface
|
||||
specifies SomeInterface
|
||||
< *extends*
|
||||
A class can extend one other class.
|
||||
*implements*
|
||||
A class can implement one or more interfaces.
|
||||
*specifies*
|
||||
A class can declare its interface, the object members and methods, with a
|
||||
named interface. This avoids the need for separately specifying the
|
||||
interface, which is often done in many languages, especially Java.
|
||||
|
||||
|
||||
Defining an interface ~
|
||||
*:interface* *:endinterface*
|
||||
An interface is defined between `:interface` and `:endinterface`. It may be
|
||||
prefixed with `:export`: >
|
||||
|
||||
interface InterfaceName
|
||||
endinterface
|
||||
|
||||
export interface InterfaceName
|
||||
endinterface
|
||||
|
||||
An interface can declare object members, just like in a class but without any
|
||||
initializer.
|
||||
|
||||
An interface can declare methods with `:def`, including the arguments and
|
||||
return type, but without the body and without `:enddef`. Example: >
|
||||
|
||||
interface HasSurface
|
||||
this.size: number
|
||||
def Surface(): number
|
||||
endinterface
|
||||
|
||||
The "Has" prefix can be used to make it easier to guess this is an interface
|
||||
name, with a hint about what it provides.
|
||||
|
||||
|
||||
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: >
|
||||
|
||||
class AutoNew
|
||||
this.name: string
|
||||
this.age: number
|
||||
this.gender: Gender
|
||||
endclass
|
||||
|
||||
Then The default constructor will be: >
|
||||
|
||||
def new(this.name, this.age, this.gender)
|
||||
enddef
|
||||
|
||||
All object members will be used, also private access ones.
|
||||
|
||||
|
||||
Multiple constructors ~
|
||||
|
||||
Normally a class has just one new() constructor. In case you find that the
|
||||
constructor is often called with the same arguments you may want to simplify
|
||||
your code by putting those arguments into a second constructor method. For
|
||||
example, if you tend to use the color black a lot: >
|
||||
|
||||
def new(this.garment, this.color, this.size)
|
||||
enddef
|
||||
...
|
||||
var pants = new(Garment.pants, Color.black, "XL")
|
||||
var shirt = new(Garment.shirt, Color.black, "XL")
|
||||
var shoes = new(Garment.shoes, Color.black, "45")
|
||||
|
||||
Instead of repeating the color every time you can add a constructor that
|
||||
includes it: >
|
||||
|
||||
def newBlack(this.garment, this.size)
|
||||
this.color = Color.black
|
||||
enddef
|
||||
...
|
||||
var pants = newBlack(Garment.pants, "XL")
|
||||
var shirt = newBlack(Garment.shirt, "XL")
|
||||
var shoes = newBlack(Garment.shoes, "9.5")
|
||||
|
||||
Note that the method name must start with "new". If there is no method called
|
||||
"new()" then the default constructor is added, even though there are other
|
||||
constructor methods.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
6. Type definition *Vim9-type* *:type*
|
||||
|
||||
A type definition is giving a name to a type specification. For Example: >
|
||||
|
||||
:type ListOfStrings list<string>
|
||||
|
||||
TODO: more explanation
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
7. Enum *Vim9-enum* *:enum* *:endenum*
|
||||
|
||||
An enum is a type that can have one of a list of values. Example: >
|
||||
|
||||
:enum Color
|
||||
White
|
||||
Red
|
||||
Green
|
||||
Blue
|
||||
Black
|
||||
:endenum
|
||||
|
||||
TODO: more explanation
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
9. Rationale
|
||||
|
||||
Most of the choices for |Vim9| classes come from popular and recently
|
||||
developed languages, such as Java, TypeScript and Dart. The syntax has been
|
||||
made to fit with the way Vim script works, such as using `endclass` instead of
|
||||
using curly braces around the whole class.
|
||||
|
||||
Some common constructs of object-oriented languages were chosen very long ago
|
||||
when this kind of programming was still new, and later found to be
|
||||
sub-optimal. By this time those constructs were widely used and changing them
|
||||
was not an option. In Vim we do have the freedom to make different choices,
|
||||
since classes are completely new. We can make the syntax simpler and more
|
||||
consistent than what "old" languages use. Without diverting too much, it
|
||||
should still mostly look like what you know from existing languages.
|
||||
|
||||
Some recently developed languages add all kinds of fancy features that we
|
||||
don't need for Vim. But some have nice ideas that we do want to use.
|
||||
Thus we end up with a base of what is common in popular languages, dropping
|
||||
what looks like a bad idea, and adding some nice features that are easy to
|
||||
understand.
|
||||
|
||||
The main rules we use to make decisions:
|
||||
- Keep it simple.
|
||||
- No surprises, mostly do what other languages are doing.
|
||||
- Avoid mistakes from the past.
|
||||
- Avoid the need for the script writer to consult the help to understand how
|
||||
things work, most things should be obvious.
|
||||
- Keep it consistent.
|
||||
- Aim at an average size plugin, not at a huge project.
|
||||
|
||||
|
||||
Using new() for the constructor ~
|
||||
|
||||
Many languages use the class name for the constructor method. A disadvantage
|
||||
is that quite often this is a long name. And when changing the class name all
|
||||
constructor methods need to be renamed. Not a big deal, but still a
|
||||
disadvantage.
|
||||
|
||||
Other languages, such as TypeScript, use a specific name, such as
|
||||
"constructor()". That seems better. However, using "new" or "new()" to
|
||||
create a new object has no obvious relation with "constructor()".
|
||||
|
||||
For |Vim9| script using the same method name for all constructors seemed like
|
||||
the right choice, and by calling it new() the relation between the caller and
|
||||
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
|
||||
different types of arguments. Therefore there also is only one new()
|
||||
constructor.
|
||||
|
||||
With |Vim9| script it would be possible to support overloading, since
|
||||
arguments are typed. However, this gets complicated very quickly. Looking at
|
||||
a new() call one has to inspect the types of the arguments to know which of
|
||||
several new() methods is actually being called. And that can require
|
||||
inspecting quite a bit of code. For example, if one of the arguments is the
|
||||
return value of a method, you need to find that method to see what type it is
|
||||
returning.
|
||||
|
||||
Instead, every constructor has to have a different name, starting with "new".
|
||||
That way multiple constructors with different arguments are possible, while it
|
||||
is very easy to see which constructor is being used. And the type of
|
||||
arguments can be properly checked.
|
||||
|
||||
|
||||
No overloading of methods ~
|
||||
|
||||
Same reasoning as for the constructor: It is often not obvious what type
|
||||
arguments have, which would make it difficult to figure out what method is
|
||||
actually being called. Better just give the methods a different name, then
|
||||
type checking will make sure it works as you intended. This rules out
|
||||
polymorphism, which we don't really need anyway.
|
||||
|
||||
|
||||
Using "this.member" everywhere ~
|
||||
|
||||
The object members 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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Single inheritance and interfaces ~
|
||||
|
||||
Some languages support multiple inheritance. Although that can be useful in
|
||||
some cases, it makes the rules of how a class works quite complicated.
|
||||
Instead, using interfaces to declare what is supported is much simpler. The
|
||||
very popular Java language does it this way, and it should be good enough for
|
||||
Vim. The "keep it simple" rule applies here.
|
||||
|
||||
Explicitly declaring that a class supports an interface makes it easy to see
|
||||
what a class is intended for. It also makes it possible to do proper type
|
||||
checking. When an interface is changed any class that declares to implement
|
||||
it will be checked if that change was also changed. The mechanism to assume a
|
||||
class implements an interface just because the methods happen to match is
|
||||
brittle and leads to obscure problems, let's not do that.
|
||||
|
||||
|
||||
Using class members ~
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Using "ClassName.new()" to construct an object ~
|
||||
|
||||
Many languages use the "new" operator to create an object, which is actually
|
||||
kind of strange, since the constructor is defined as a method with arguments,
|
||||
not a command. TypeScript also has the "new" keyword, but the method is
|
||||
called "constructor()", it is hard to see the relation between the two.
|
||||
|
||||
In |Vim9| script the constructor method is called new(), and it is invoked as
|
||||
new(), simple and straightforward. Other languages use "new ClassName()",
|
||||
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 ~
|
||||
|
||||
Some users will remark that the access rules for object members 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.
|
||||
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 ~
|
||||
|
||||
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.
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
No protected object members ~
|
||||
|
||||
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".
|
||||
|
||||
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.
|
||||
Especially when refactoring or other changes to the class model.
|
||||
|
||||
The Vim scripts are expected to be used in a plugin, with just one person or a
|
||||
small team working on it. Complex rules then only make it more complicated,
|
||||
the extra safety provide by the rules isn't really needed. Let's just keep it
|
||||
simple and not specify access details.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
10. To be done later
|
||||
|
||||
Can a newSomething() constructor invoke another constructor? If yes, what are
|
||||
the restrictions?
|
||||
|
||||
Thoughts:
|
||||
- Generics for a class: `class <Tkey, Tentry>`
|
||||
- Generics for a function: `def <Tkey> GetLast(key: Tkey)`
|
||||
- Mixins: not sure if that is useful, leave out for simplicity.
|
||||
|
||||
Some things that look like good additions:
|
||||
- For testing: Mock mechanism
|
||||
|
||||
An important class to be provided is "Promise". Since Vim is single
|
||||
threaded, connecting asynchronous operations is a natural way of allowing
|
||||
plugins to do their work without blocking the user. It's a uniform way to
|
||||
invoke callbacks and handle timeouts and errors.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 9.0. Last change: 2022 Jun 18
|
||||
*visual.txt* For Vim version 9.0. Last change: 2022 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -116,7 +116,7 @@ gn Search forward for the last used search pattern, like
|
||||
E.g., "dgn" deletes the text of the next match.
|
||||
If Visual mode is active, extends the selection
|
||||
until the end of the next match.
|
||||
'wrapscan' applies
|
||||
'wrapscan' applies.
|
||||
Note: Unlike `n` the search direction does not depend
|
||||
on the previous search command.
|
||||
|
||||
@@ -152,6 +152,11 @@ gN Like |gn| but searches backward, like with `N`.
|
||||
environment variable or the -display argument). Only
|
||||
when 'mouse' option contains 'n' or 'a'.
|
||||
|
||||
<LeftMouseNM> Internal mouse code, used for clicking on the status
|
||||
<LeftReleaseNM> line to focus a window. NM stands for non-mappable.
|
||||
You cannot use these, but they might show up in some
|
||||
places.
|
||||
|
||||
If Visual mode is not active and the "v", "V" or CTRL-V is preceded with a
|
||||
count, the size of the previously highlighted area is used for a start. You
|
||||
can then move the end of the highlighted area and give an operator. The type
|
||||
@@ -510,11 +515,11 @@ mode Vim automatically switches to Visual mode, so that the same behavior as
|
||||
in Visual mode is effective. If you don't want this use |:xmap| or |:smap|.
|
||||
|
||||
One particular edge case: >
|
||||
:vnoremap <C-K> <Esc>
|
||||
:vnoremap <C-K> <Esc>
|
||||
This ends Visual mode when in Visual mode, but in Select mode it does not
|
||||
work, because Select mode is restored after executing the mapped keys. You
|
||||
need to use: >
|
||||
:snoremap <C-K> <Esc>
|
||||
:snoremap <C-K> <Esc>
|
||||
<
|
||||
Users will expect printable characters to replace the selected area.
|
||||
Therefore avoid mapping printable characters in Select mode. Or use
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 9.0. Last change: 2022 May 11
|
||||
*windows.txt* For Vim version 9.0. Last change: 2022 Nov 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -561,9 +561,9 @@ CTRL-W = Make all windows (almost) equally high and wide, but use
|
||||
Windows with 'winfixheight' set keep their height and windows
|
||||
with 'winfixwidth' set keep their width.
|
||||
To equalize only vertically (make window equally high) use
|
||||
`vertical wincmd =`
|
||||
`vertical wincmd =`.
|
||||
To equalize only horizontally (make window equally wide) use
|
||||
`horizontal wincmd =`
|
||||
`horizontal wincmd =`.
|
||||
|
||||
:res[ize] -N *:res* *:resize* *CTRL-W_-*
|
||||
CTRL-W - Decrease current window height by N (default 1).
|
||||
@@ -631,6 +631,56 @@ it).
|
||||
The minimal height and width of a window is set with 'winminheight' and
|
||||
'winminwidth'. These are hard values, a window will never become smaller.
|
||||
|
||||
|
||||
WinScrolled and WinResized autocommands ~
|
||||
*win-scrolled-resized*
|
||||
If you want to get notified of changes in window sizes, the |WinResized|
|
||||
autocommand event can be used.
|
||||
If you want to get notified of text in windows scrolling vertically or
|
||||
horizontally, the |WinScrolled| autocommand event can be used. This will also
|
||||
trigger in window size changes.
|
||||
Exception: the events will not be triggered when the text scrolls for
|
||||
'incsearch'.
|
||||
*WinResized-event*
|
||||
The |WinResized| event is triggered after updating the display, several
|
||||
windows may have changed size then. A list of the IDs of windows that changed
|
||||
since last time is provided in the v:event.windows variable, for example:
|
||||
[1003, 1006]
|
||||
*WinScrolled-event*
|
||||
The |WinScrolled| event is triggered after |WinResized|, and also if a window
|
||||
was scrolled. That can be vertically (the text at the top of the window
|
||||
changed) or horizontally (when 'wrap' is off or when the first displayed part
|
||||
of the first line changes). Note that |WinScrolled| will trigger many more
|
||||
times than |WinResized|, it may slow down editing a bit.
|
||||
|
||||
The information provided by |WinScrolled| is a dictionary for each window that
|
||||
has changes, using the window ID as the key, and a total count of the changes
|
||||
with the key "all". Example value for |v:event| (|Vim9| syntax):
|
||||
{
|
||||
all: {width: 0, height: 2, leftcol: 0, skipcol: 0, topline: 1, topfill: 0},
|
||||
1003: {width: 0, height: -1, leftcol: 0, skipcol: 0, topline: 0, topfill: 0},
|
||||
1006: {width: 0, height: 1, leftcol: 0, skipcol: 0, topline: 1, topfill: 0},
|
||||
}
|
||||
|
||||
Note that the "all" entry has the absolute values of the individual windows
|
||||
accumulated.
|
||||
|
||||
If you need more information about what changed, or you want to "debounce" the
|
||||
events (not handle every event to avoid doing too much work), you may want to
|
||||
use the `winlayout()` and `getwininfo()` functions.
|
||||
|
||||
|WinScrolled| and |WinResized| do not trigger when the first autocommand is
|
||||
added, only after the first scroll or resize. They may trigger when switching
|
||||
to another tab page.
|
||||
|
||||
The commands executed are expected to not cause window size or scroll changes.
|
||||
If this happens anyway, the event will trigger again very soon. In other
|
||||
words: Just before triggering the event, the current sizes and scroll
|
||||
positions are stored and used to decide whether there was a change.
|
||||
*E1312*
|
||||
It is not allowed to change the window layout here (split, close or move
|
||||
windows).
|
||||
|
||||
==============================================================================
|
||||
7. Argument and buffer list commands *buffer-list*
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2022 Sep 11
|
||||
" Last Change: 2022 Dec 05
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -369,6 +369,12 @@ au BufNewFile,BufRead *.ch call dist#ft#FTchange()
|
||||
" ChordPro
|
||||
au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro
|
||||
|
||||
" Clang-format
|
||||
au BufNewFile,BufRead .clang-format setf yaml
|
||||
|
||||
" Clang-tidy
|
||||
au BufNewFile,BufRead .clang-tidy setf yaml
|
||||
|
||||
" Clean
|
||||
au BufNewFile,BufRead *.dcl,*.icl setf clean
|
||||
|
||||
@@ -413,6 +419,12 @@ au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||
" Cooklang
|
||||
au BufNewFile,BufRead *.cook setf cook
|
||||
|
||||
" Clinical Quality Language (CQL)
|
||||
" .cql is also mentioned as the 'XDCC Catcher queue list' file extension.
|
||||
" If support for XDCC Catcher is needed in the future, the contents of the file
|
||||
" needs to be inspected.
|
||||
au BufNewFile,BufRead *.cql setf cqlang
|
||||
|
||||
" CSV Files
|
||||
au BufNewFile,BufRead *.csv setf csv
|
||||
|
||||
@@ -770,8 +782,8 @@ au BufNewFile,BufRead gitolite.conf setf gitolite
|
||||
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
|
||||
|
||||
" Glimmer-flavored TypeScript and JavaScript
|
||||
au BufNewFile,BufRead *.gts setf typescript.glimmer
|
||||
au BufNewFile,BufRead *.gjs setf javascript.glimmer
|
||||
au BufNewFile,BufRead *.gts setf typescript.glimmer
|
||||
au BufNewFile,BufRead *.gjs setf javascript.glimmer
|
||||
|
||||
" Gnuplot scripts
|
||||
au BufNewFile,BufRead *.gpi,.gnuplot setf gnuplot
|
||||
@@ -969,6 +981,8 @@ au BufNewFile,BufRead *.jsp setf jsp
|
||||
|
||||
" Java Properties resource file (note: doesn't catch font.properties.pl)
|
||||
au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties
|
||||
" Eclipse preference files use Java Properties syntax
|
||||
au BufNewFile,BufRead org.eclipse.*.prefs setf jproperties
|
||||
|
||||
" Jess
|
||||
au BufNewFile,BufRead *.clp setf jess
|
||||
@@ -998,7 +1012,7 @@ au BufNewFile,BufRead .babelrc,.eslintrc,.prettierrc,.firebaserc setf json
|
||||
au BufNewFile,BufRead *.jsonc setf jsonc
|
||||
|
||||
" Jsonnet
|
||||
au BufNewFile,BufRead *.jsonnet,*.libjsonnet setf jsonnet
|
||||
au BufNewFile,BufRead *.jsonnet,*.libsonnet setf jsonnet
|
||||
|
||||
" Julia
|
||||
au BufNewFile,BufRead *.jl setf julia
|
||||
@@ -1029,6 +1043,9 @@ au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig
|
||||
" Lace (ISE)
|
||||
au BufNewFile,BufRead *.ace,*.ACE setf lace
|
||||
|
||||
" Larch Shared Language
|
||||
au BufNewFile,BufRead .lsl call dist#ft#FTlsl()
|
||||
|
||||
" Latexmkrc
|
||||
au BufNewFile,BufRead .latexmkrc,latexmkrc setf perl
|
||||
|
||||
@@ -1112,11 +1129,14 @@ au BufNewFile,BufRead *.lou,*.lout setf lout
|
||||
" Lua
|
||||
au BufNewFile,BufRead *.lua setf lua
|
||||
|
||||
" Luacheck
|
||||
au BufNewFile,BufRead .luacheckrc setf lua
|
||||
|
||||
" Luarocks
|
||||
au BufNewFile,BufRead *.rockspec setf lua
|
||||
|
||||
" Linden Scripting Language (Second Life)
|
||||
au BufNewFile,BufRead *.lsl setf lsl
|
||||
au BufNewFile,BufRead *.lsl call dist#ft#FTlsl()
|
||||
|
||||
" Lynx style file (or LotusScript!)
|
||||
au BufNewFile,BufRead *.lss setf lss
|
||||
@@ -1179,6 +1199,9 @@ au BufNewFile,BufRead hg-editor-*.txt setf hgcommit
|
||||
" Mercurial config (looks like generic config file)
|
||||
au BufNewFile,BufRead *.hgrc,*hgrc setf cfg
|
||||
|
||||
" Mermaid
|
||||
au BufNewFile,BufRead *.mmd,*.mmdc,*.mermaid setf mermaid
|
||||
|
||||
" Meson Build system config
|
||||
au BufNewFile,BufRead meson.build,meson_options.txt setf meson
|
||||
au BufNewFile,BufRead *.wrap setf dosini
|
||||
@@ -1214,6 +1237,9 @@ au BufNewFile,BufRead *.m2,*.DEF,*.mi setf modula2
|
||||
" Modula-3 (.m3, .i3, .mg, .ig)
|
||||
au BufNewFile,BufRead *.[mi][3g] setf modula3
|
||||
|
||||
" Larch/Modula-3
|
||||
au BufNewFile,BufRead *.lm3 setf modula3
|
||||
|
||||
" Monk
|
||||
au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk
|
||||
|
||||
@@ -1319,6 +1345,9 @@ au BufNewFile,BufRead *.nse setf lua
|
||||
" NSIS
|
||||
au BufNewFile,BufRead *.nsi,*.nsh setf nsis
|
||||
|
||||
" Oblivion Language and Oblivion Script Extender
|
||||
au BufNewFile,BufRead *.obl,*.obse,*.oblivion,*.obscript setf obse
|
||||
|
||||
" OCaml
|
||||
au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml
|
||||
|
||||
@@ -1357,6 +1386,7 @@ au BufNewFile,BufRead pf.conf setf pf
|
||||
|
||||
" ini style config files, using # comments
|
||||
au BufNewFile,BufRead */etc/pacman.conf,mpv.conf setf confini
|
||||
au BufNewFile,BufRead */.aws/config,*/.aws/credentials setf confini
|
||||
|
||||
" Pacman hooks
|
||||
au BufNewFile,BufRead *.hook
|
||||
@@ -1388,6 +1418,9 @@ au BufNewFile,BufRead *.dpr,*.lpr setf pascal
|
||||
" Free Pascal makefile definition file
|
||||
au BufNewFile,BufRead *.fpc setf fpcmake
|
||||
|
||||
" Path of Exile item filter
|
||||
au BufNewFile,BufRead *.filter setf poefilter
|
||||
|
||||
" PDF
|
||||
au BufNewFile,BufRead *.pdf setf pdf
|
||||
|
||||
@@ -1619,6 +1652,9 @@ else
|
||||
au BufNewFile,BufRead *.rmd,*.smd setf rmd
|
||||
endif
|
||||
|
||||
" R profile file
|
||||
au BufNewFile,BufRead .Rprofile,Rprofile,Rprofile.site setf r
|
||||
|
||||
" RSS looks like XML
|
||||
au BufNewFile,BufRead *.rss setf xml
|
||||
|
||||
@@ -1744,6 +1780,9 @@ au BufNewFile,BufRead *.sed setf sed
|
||||
" SubRip
|
||||
au BufNewFile,BufRead *.srt setf srt
|
||||
|
||||
" SubStation Alpha
|
||||
au BufNewFile,BufRead *.ass,*.ssa setf ssa
|
||||
|
||||
" svelte
|
||||
au BufNewFile,BufRead *.svelte setf svelte
|
||||
|
||||
@@ -1816,8 +1855,9 @@ au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFile
|
||||
" (patterns ending in a start further below)
|
||||
au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
|
||||
|
||||
" Zig
|
||||
" Zig and Zir (Zig Intermediate Representation)
|
||||
au BufNewFile,BufRead *.zig setf zig
|
||||
au BufNewFile,BufRead *.zir setf zir
|
||||
|
||||
" Z-Shell script (patterns ending in a star further below)
|
||||
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
|
||||
@@ -1939,6 +1979,10 @@ au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig
|
||||
au BufNewFile,BufRead sshd_config setf sshdconfig
|
||||
au BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig
|
||||
|
||||
" OpenVPN configuration
|
||||
au BufNewFile,BufRead *.ovpn setf openvpn
|
||||
au BufNewFile,BufRead */openvpn/*/*.conf setf openvpn
|
||||
|
||||
" Stata
|
||||
au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata
|
||||
" Also *.class, but not when it's a Java bytecode file
|
||||
@@ -2086,7 +2130,7 @@ au BufNewFile,BufRead *.tsv setf tsv
|
||||
" TWIG files
|
||||
au BufNewFile,BufReadPost *.twig setf twig
|
||||
|
||||
" Typescript or Qt translation file (which is XML)
|
||||
" TypeScript or Qt translation file (which is XML)
|
||||
au BufNewFile,BufReadPost *.ts
|
||||
\ if getline(1) =~ '<?xml' |
|
||||
\ setf xml |
|
||||
@@ -2094,6 +2138,9 @@ au BufNewFile,BufReadPost *.ts
|
||||
\ setf typescript |
|
||||
\ endif
|
||||
|
||||
" TypeScript module and common
|
||||
au BufNewFile,BufRead *.mts,*.cts setf typescript
|
||||
|
||||
" TypeScript with React
|
||||
au BufNewFile,BufRead *.tsx setf typescriptreact
|
||||
|
||||
@@ -2149,6 +2196,11 @@ au BufNewFile,BufRead *.va,*.vams setf verilogams
|
||||
" SystemVerilog
|
||||
au BufNewFile,BufRead *.sv,*.svh setf systemverilog
|
||||
|
||||
" VHS tape
|
||||
" .tape is also used by TapeCalc, which we do not support ATM. If TapeCalc
|
||||
" support is needed the contents of the file needs to be inspected.
|
||||
au BufNewFile,BufRead *.tape setf vhs
|
||||
|
||||
" VHDL
|
||||
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho setf vhdl
|
||||
|
||||
@@ -2285,7 +2337,7 @@ au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
|
||||
au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
|
||||
|
||||
" Qt Linguist translation source and Qt User Interface Files are XML
|
||||
" However, for .ts Typescript is more common.
|
||||
" However, for .ts TypeScript is more common.
|
||||
au BufNewFile,BufRead *.ui setf xml
|
||||
|
||||
" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull)
|
||||
@@ -2300,6 +2352,9 @@ au BufNewFile,BufRead fglrxrc setf xml
|
||||
" Web Services Description Language (WSDL)
|
||||
au BufNewFile,BufRead *.wsdl setf xml
|
||||
|
||||
" Workflow Description Language (WDL)
|
||||
au BufNewFile,BufRead *.wdl setf wdl
|
||||
|
||||
" XLIFF (XML Localisation Interchange File Format) is also XML
|
||||
au BufNewFile,BufRead *.xlf setf xml
|
||||
au BufNewFile,BufRead *.xliff setf xml
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Abaqus finite element input file (www.abaqus.com)
|
||||
" Maintainer: Carl Osterwisch <costerwi@gmail.com>
|
||||
" Last Change: 2022 Aug 03
|
||||
" Last Change: 2022 Oct 08
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
@@ -66,25 +66,44 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
endif
|
||||
|
||||
if !exists("no_plugin_maps") && !exists("no_abaqus_maps")
|
||||
" Define keys used to move [count] keywords backward or forward.
|
||||
noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
|
||||
noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
|
||||
" Map [[ and ]] keys to move [count] keywords backward or forward
|
||||
nnoremap <silent><buffer> ]] :call <SID>Abaqus_NextKeyword(1)<CR>
|
||||
nnoremap <silent><buffer> [[ :call <SID>Abaqus_NextKeyword(-1)<CR>
|
||||
function! <SID>Abaqus_NextKeyword(direction)
|
||||
.mark '
|
||||
if a:direction < 0
|
||||
let flags = 'b'
|
||||
else
|
||||
let flags = ''
|
||||
endif
|
||||
let l:count = abs(a:direction) * v:count1
|
||||
while l:count > 0 && search("^\\*\\a", flags)
|
||||
let l:count -= 1
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
" Define key to toggle commenting of the current line or range
|
||||
" Map \\ to toggle commenting of the current line or range
|
||||
noremap <silent><buffer> <LocalLeader><LocalLeader>
|
||||
\ :call <SID>Abaqus_ToggleComment()<CR>j
|
||||
function! <SID>Abaqus_ToggleComment() range
|
||||
if strpart(getline(a:firstline), 0, 2) == "**"
|
||||
" Un-comment all lines in range
|
||||
silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
|
||||
else
|
||||
" Comment all lines in range
|
||||
silent execute a:firstline . ',' . a:lastline . 's/^/**/'
|
||||
endif
|
||||
if strpart(getline(a:firstline), 0, 2) == "**"
|
||||
" Un-comment all lines in range
|
||||
silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
|
||||
else
|
||||
" Comment all lines in range
|
||||
silent execute a:firstline . ',' . a:lastline . 's/^/**/'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Map \s to swap first two comma separated fields
|
||||
noremap <silent><buffer> <LocalLeader>s :call <SID>Abaqus_Swap()<CR>
|
||||
function! <SID>Abaqus_Swap() range
|
||||
silent execute a:firstline . ',' . a:lastline . 's/\([^*,]*\),\([^,]*\)/\2,\1/'
|
||||
endfunction
|
||||
|
||||
let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
|
||||
\ . "|unmap <buffer> <LocalLeader><LocalLeader>"
|
||||
\ . "|unmap <buffer> <LocalLeader>s"
|
||||
endif
|
||||
|
||||
" Undo must be done in nocompatible mode for <LocalLeader>.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user