mirror of
https://github.com/zoriya/vim.git
synced 2025-12-09 00:36:15 +00:00
Compare commits
547 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6199d43f4b | ||
|
|
2c33d7bb69 | ||
|
|
6047e2c722 | ||
|
|
1d68d9b2bd | ||
|
|
8065cf2bfb | ||
|
|
4a6fcf8047 | ||
|
|
9202162c5c | ||
|
|
9b69f22e66 | ||
|
|
18cfa940e2 | ||
|
|
0ab35b279f | ||
|
|
4635e11c6b | ||
|
|
75f69e5a18 | ||
|
|
631820536e | ||
|
|
73f4439ca6 | ||
|
|
54e5dbf58e | ||
|
|
d78f03f860 | ||
|
|
c902609f69 | ||
|
|
a0a6f2776e | ||
|
|
19a3d68b2c | ||
|
|
2a6a6c3014 | ||
|
|
712549e04e | ||
|
|
f33606112a | ||
|
|
5ece3e359c | ||
|
|
0aa398f55a | ||
|
|
3a497e1a41 | ||
|
|
c958b31638 | ||
|
|
f52c383156 | ||
|
|
65ed136844 | ||
|
|
c79977a437 | ||
|
|
660b85e39a | ||
|
|
a5e6621aad | ||
|
|
816968defc | ||
|
|
d371bbe0ab | ||
|
|
db51007108 | ||
|
|
24a98a0eb7 | ||
|
|
9cf39cc57f | ||
|
|
1ec96c9269 | ||
|
|
d1bc96ce24 | ||
|
|
1b38344e00 | ||
|
|
97fbc404fc | ||
|
|
2a02745709 | ||
|
|
09ca932f8e | ||
|
|
6edeaf387c | ||
|
|
a8fc0d3817 | ||
|
|
22ab547dc2 | ||
|
|
7c456a4511 | ||
|
|
452030e530 | ||
|
|
0c6a32963d | ||
|
|
0b05e491b4 | ||
|
|
e0de17d84e | ||
|
|
378daf87d3 | ||
|
|
96e7a6ee45 | ||
|
|
bb3e6416f1 | ||
|
|
a21a6a9ade | ||
|
|
eb163d73b1 | ||
|
|
e745d75c3e | ||
|
|
0263146b5d | ||
|
|
53f8174eae | ||
|
|
76301956f0 | ||
|
|
f3d769a585 | ||
|
|
8b21de33bb | ||
|
|
fc7649f8b8 | ||
|
|
b00fdf6eed | ||
|
|
9cb03716c9 | ||
|
|
2e6ab18729 | ||
|
|
a5a2be26fe | ||
|
|
37c64c78fd | ||
|
|
e22bbf6508 | ||
|
|
a8e93d63e3 | ||
|
|
71b2964066 | ||
|
|
d326ad6e93 | ||
|
|
f16c71b669 | ||
|
|
1b9645de3c | ||
|
|
dde403c2d8 | ||
|
|
49150a41f8 | ||
|
|
63c4e8a198 | ||
|
|
8adb0d03ca | ||
|
|
4033c55eca | ||
|
|
e738a1a033 | ||
|
|
1514e8f427 | ||
|
|
495b7dd213 | ||
|
|
4cf56bbc85 | ||
|
|
eef9adddab | ||
|
|
fc2b270cfd | ||
|
|
b5e79ef5a9 | ||
|
|
e8ff56b28e | ||
|
|
f5291f301e | ||
|
|
69fbc9e1da | ||
|
|
38baa3e634 | ||
|
|
69e8aa7511 | ||
|
|
1190cf68e2 | ||
|
|
ef6b8de42f | ||
|
|
478e3a78c3 | ||
|
|
c71053c611 | ||
|
|
71eeb74a60 | ||
|
|
072412ed45 | ||
|
|
518d699699 | ||
|
|
b984b80cd8 | ||
|
|
49a613f84a | ||
|
|
238d43b328 | ||
|
|
a038cb5eab | ||
|
|
c212798333 | ||
|
|
b4d5fbabc9 | ||
|
|
45d5f26d11 | ||
|
|
95c83c64be | ||
|
|
65f084749b | ||
|
|
c168bd4bd3 | ||
|
|
414168d97f | ||
|
|
e9f6fd27d0 | ||
|
|
8696bbaf52 | ||
|
|
e09ba7bae5 | ||
|
|
7be9b50fd7 | ||
|
|
5b5adf5b9c | ||
|
|
9d18961323 | ||
|
|
aba680a851 | ||
|
|
74121231be | ||
|
|
09d6c3818d | ||
|
|
b4ea1914b8 | ||
|
|
fe386641b0 | ||
|
|
3c518400d1 | ||
|
|
1a735d6c9b | ||
|
|
2dc9d26c14 | ||
|
|
ba2929b6af | ||
|
|
99433291b1 | ||
|
|
c6da01a5b8 | ||
|
|
75a60f74ce | ||
|
|
37b53270e1 | ||
|
|
618d6d277e | ||
|
|
e723c42836 | ||
|
|
2e49b6b20c | ||
|
|
c35e4cb4fe | ||
|
|
1b9f9d315f | ||
|
|
28550b74bb | ||
|
|
c3f81394ef | ||
|
|
6756c7037f | ||
|
|
3971905bac | ||
|
|
3d8d2c7ca5 | ||
|
|
8b53b79ea5 | ||
|
|
1bfdc07a49 | ||
|
|
6e32f615eb | ||
|
|
11aa62f8f9 | ||
|
|
178333783f | ||
|
|
9d954207e2 | ||
|
|
e88fc7a574 | ||
|
|
9d654a8d8c | ||
|
|
595a40226e | ||
|
|
d8d85bfb7d | ||
|
|
5e80de3f3e | ||
|
|
00ccf54630 | ||
|
|
ae96b8d058 | ||
|
|
6a8691d483 | ||
|
|
2254a8ad0c | ||
|
|
4ec86ddd77 | ||
|
|
9f45ccd1bf | ||
|
|
e2e69e4813 | ||
|
|
3653822546 | ||
|
|
b31cf2bb0b | ||
|
|
cf4b00c856 | ||
|
|
da22b8cc8b | ||
|
|
dada6d2a8e | ||
|
|
ef68e4fa52 | ||
|
|
3346cc4ffb | ||
|
|
995e4afcfe | ||
|
|
9ac9dfa9e2 | ||
|
|
2c809b7c7d | ||
|
|
9e8dcf9d6f | ||
|
|
da73253a0b | ||
|
|
3d593c2dc9 | ||
|
|
2db0ec4b2e | ||
|
|
5c6dbcb03f | ||
|
|
4e83961985 | ||
|
|
4bebc9a056 | ||
|
|
a539f4f1ae | ||
|
|
1a333bc44a | ||
|
|
dc5471d482 | ||
|
|
0f0f230012 | ||
|
|
d41babef89 | ||
|
|
4ad3b2b588 | ||
|
|
dde6034111 | ||
|
|
f3af54eeb1 | ||
|
|
97a80e440a | ||
|
|
b47a2597e6 | ||
|
|
e561a7e2fa | ||
|
|
48340b62e8 | ||
|
|
97f65fafdb | ||
|
|
3c37a8e660 | ||
|
|
4db2554954 | ||
|
|
1dccf6351d | ||
|
|
cbe6944956 | ||
|
|
c572da5f67 | ||
|
|
7adf06f4e2 | ||
|
|
4ab7968aa9 | ||
|
|
8d9f0ef5c6 | ||
|
|
e85928a324 | ||
|
|
02e177d3e8 | ||
|
|
0903d56f5c | ||
|
|
13ebb03e75 | ||
|
|
dde81312b0 | ||
|
|
a4f99f5a8b | ||
|
|
e922460394 | ||
|
|
833e0e3c8c | ||
|
|
753289f9bf | ||
|
|
be0b72977f | ||
|
|
f6d9f96b2d | ||
|
|
33d66bd9fa | ||
|
|
6c4d12c527 | ||
|
|
285f243e50 | ||
|
|
77f7474d08 | ||
|
|
829aa64cf5 | ||
|
|
d2c45a1964 | ||
|
|
ec0e07a324 | ||
|
|
6d0826dfbb | ||
|
|
5830232c02 | ||
|
|
3f9a1ff141 | ||
|
|
740c433c59 | ||
|
|
0cbba82359 | ||
|
|
b109bb4e12 | ||
|
|
eef0531621 | ||
|
|
37819ed540 | ||
|
|
5983d50247 | ||
|
|
b241208a13 | ||
|
|
edbc0d46cf | ||
|
|
8efa026a25 | ||
|
|
ce1c32780a | ||
|
|
37b9b81997 | ||
|
|
0aed9a2e2e | ||
|
|
d6a7b3e6bb | ||
|
|
dc926dd0dd | ||
|
|
77ac9b5c62 | ||
|
|
93c92eff26 | ||
|
|
fc8bec0be4 | ||
|
|
3eee06e7d4 | ||
|
|
683b796725 | ||
|
|
d21f8b54b2 | ||
|
|
9aa1569128 | ||
|
|
98ebd2bbec | ||
|
|
8e539c51c3 | ||
|
|
f66a2cda2c | ||
|
|
ea5d6fadbb | ||
|
|
97bd5e6527 | ||
|
|
cfce71710b | ||
|
|
82de3c2c03 | ||
|
|
bc906e445c | ||
|
|
f5be7cd016 | ||
|
|
a83e3962ac | ||
|
|
84ed4ad084 | ||
|
|
ade59630c7 | ||
|
|
9e13aa7729 | ||
|
|
989a70c590 | ||
|
|
6fe15bbc87 | ||
|
|
a9f8ee05f4 | ||
|
|
60104f183c | ||
|
|
d21b16f3c0 | ||
|
|
3678393baa | ||
|
|
4fa1019f80 | ||
|
|
05fbfdcda4 | ||
|
|
c08706135d | ||
|
|
51c23687a9 | ||
|
|
6bb18a878c | ||
|
|
bce4f62d30 | ||
|
|
2bb7b6b0e4 | ||
|
|
304b64c9e6 | ||
|
|
6b93b0e838 | ||
|
|
9f0139a2a8 | ||
|
|
4f44b88684 | ||
|
|
69905d108b | ||
|
|
e62780543f | ||
|
|
2438ae3d67 | ||
|
|
dcaa61384c | ||
|
|
274a52fd58 | ||
|
|
e0f314aa8d | ||
|
|
62426e168e | ||
|
|
5cc1f2c477 | ||
|
|
679653e59c | ||
|
|
55b6926450 | ||
|
|
3d9bdfebf1 | ||
|
|
893029ab20 | ||
|
|
c977092053 | ||
|
|
3cd43ccccb | ||
|
|
589b1109c5 | ||
|
|
37c4583594 | ||
|
|
7eedd4398a | ||
|
|
0cd2a94a40 | ||
|
|
9698ad7201 | ||
|
|
8cad930a25 | ||
|
|
b81bc77ae7 | ||
|
|
da43b61ddd | ||
|
|
8ed5400739 | ||
|
|
08d384ff3a | ||
|
|
89e06c807a | ||
|
|
d9bc8a801a | ||
|
|
444fda2084 | ||
|
|
ae33833850 | ||
|
|
cf8d840ce9 | ||
|
|
1ccd8fff8a | ||
|
|
05aafed54b | ||
|
|
76ca1b4041 | ||
|
|
ab6c8587ba | ||
|
|
2d33e90f81 | ||
|
|
e41e3b41f9 | ||
|
|
f1237f1814 | ||
|
|
dd693ce28b | ||
|
|
8ab3c1dc6b | ||
|
|
0a0217abfa | ||
|
|
82b9ca05f4 | ||
|
|
292d569935 | ||
|
|
7fadbf8325 | ||
|
|
75373f3808 | ||
|
|
e20b3eba73 | ||
|
|
116a0f800c | ||
|
|
6d87e9e1c6 | ||
|
|
f8d57a5049 | ||
|
|
33a43bee9c | ||
|
|
f3402b1b7f | ||
|
|
1c864093f9 | ||
|
|
4535654246 | ||
|
|
e16b00a158 | ||
|
|
02113ed4df | ||
|
|
bae5a17a73 | ||
|
|
cae92dc3d5 | ||
|
|
6d8197485d | ||
|
|
39d21e3c30 | ||
|
|
0af2d32c21 | ||
|
|
22aa23fd8c | ||
|
|
aaa8a35fbd | ||
|
|
98fd66d311 | ||
|
|
086d535f77 | ||
|
|
b9279e73ae | ||
|
|
a9f028103f | ||
|
|
cfcc022c54 | ||
|
|
35422f45ba | ||
|
|
d53109886b | ||
|
|
8456ea8050 | ||
|
|
78712a7733 | ||
|
|
69198197fd | ||
|
|
07c043af5f | ||
|
|
4a137b4586 | ||
|
|
6b7355a30d | ||
|
|
8e5eece8c5 | ||
|
|
eb44a68b42 | ||
|
|
620d064b0b | ||
|
|
102dc7f891 | ||
|
|
5be8dd087f | ||
|
|
e9c21aed62 | ||
|
|
b4a6721a28 | ||
|
|
1b66c00aec | ||
|
|
69a76feda9 | ||
|
|
01efafad12 | ||
|
|
3c3a80dc59 | ||
|
|
2f3a90a3bd | ||
|
|
398ee7326b | ||
|
|
7c9aec4ac8 | ||
|
|
d8dc179937 | ||
|
|
e0ab979fa7 | ||
|
|
66cd19fef1 | ||
|
|
223896d3e9 | ||
|
|
5c838a3e71 | ||
|
|
b6843a007d | ||
|
|
fae4283542 | ||
|
|
94053a5125 | ||
|
|
0792048842 | ||
|
|
f55e4c867f | ||
|
|
20e6cd07ba | ||
|
|
65cedb2074 | ||
|
|
2a4f06f370 | ||
|
|
9c8448472f | ||
|
|
c2ce52c011 | ||
|
|
12d853fae1 | ||
|
|
aaef1bae3c | ||
|
|
7da346035b | ||
|
|
983b3a5bc4 | ||
|
|
979e8c5346 | ||
|
|
662d938666 | ||
|
|
3633cf5201 | ||
|
|
392d1bfa5e | ||
|
|
c9456cec0c | ||
|
|
d09be32142 | ||
|
|
b000e328ef | ||
|
|
12d93ee26d | ||
|
|
0e23e9c5e7 | ||
|
|
97870002d3 | ||
|
|
22aad2f880 | ||
|
|
f144a3fb73 | ||
|
|
43c007ff22 | ||
|
|
0e7885e67d | ||
|
|
423802d1a2 | ||
|
|
68c4bdd53c | ||
|
|
5449f7c6fc | ||
|
|
d0b6c6c54e | ||
|
|
30fe88677d | ||
|
|
d507a685ad | ||
|
|
6e1ef28057 | ||
|
|
f98246d484 | ||
|
|
d1ee0043c0 | ||
|
|
91d348abfc | ||
|
|
c6df10e5d3 | ||
|
|
70229f951f | ||
|
|
1e8340bbbf | ||
|
|
696d00f488 | ||
|
|
dcbfa33fa1 | ||
|
|
63ecddab6d | ||
|
|
d85f271bf8 | ||
|
|
d973bcb483 | ||
|
|
607985a95f | ||
|
|
9966b21a57 | ||
|
|
93723a4ef1 | ||
|
|
1a0f200500 | ||
|
|
b41bf8e6b4 | ||
|
|
fa228f716a | ||
|
|
96ad8c9ac1 | ||
|
|
f86eea9f01 | ||
|
|
1f28b4c6a3 | ||
|
|
8bcc99b821 | ||
|
|
38ed1f5bea | ||
|
|
d243a2a5ef | ||
|
|
bb543088a5 | ||
|
|
59ee05b2f5 | ||
|
|
67883b4909 | ||
|
|
a2c45a17c1 | ||
|
|
0e83f02d80 | ||
|
|
d28cc3f55d | ||
|
|
ab6eec3887 | ||
|
|
cb25d18220 | ||
|
|
293424c199 | ||
|
|
4cc93dc85a | ||
|
|
a1b5b09281 | ||
|
|
f0a521f4f7 | ||
|
|
fc716d7256 | ||
|
|
8f14bb58cb | ||
|
|
f80451e6fe | ||
|
|
b2a76ec06b | ||
|
|
1c84493bbe | ||
|
|
86067eb05e | ||
|
|
8a77306fa1 | ||
|
|
2155441460 | ||
|
|
d60547bf80 | ||
|
|
c4f43bce7c | ||
|
|
81bdd6a025 | ||
|
|
dbe948d6c3 | ||
|
|
b6e0ec6b71 | ||
|
|
9cc5f75932 | ||
|
|
c31f9ae4f1 | ||
|
|
1f2903c431 | ||
|
|
065f41c814 | ||
|
|
43da3e36b2 | ||
|
|
cdeae99b4e | ||
|
|
9c5589c7ce | ||
|
|
2aeaf3fc01 | ||
|
|
26af85d97b | ||
|
|
eeac677886 | ||
|
|
b13501f7da | ||
|
|
d7d3cbedb3 | ||
|
|
613fe7ad2b | ||
|
|
6ed8069c79 | ||
|
|
816e7660e1 | ||
|
|
b7a8dfeb49 | ||
|
|
e173fd0972 | ||
|
|
61a6605ea1 | ||
|
|
9f1f49b839 | ||
|
|
5a1feb8091 | ||
|
|
825680f5f4 | ||
|
|
8f84c3a866 | ||
|
|
5f7e7bdcf8 | ||
|
|
e906ae85b2 | ||
|
|
58556cd0e5 | ||
|
|
e825d8b0a4 | ||
|
|
cdb7e1b7f9 | ||
|
|
04f62f881c | ||
|
|
a8788f4d0b | ||
|
|
bf92e3a371 | ||
|
|
7f93703149 | ||
|
|
a7df8c70c8 | ||
|
|
80dd3f9d41 | ||
|
|
4fc63505d3 | ||
|
|
8c0095c59a | ||
|
|
8008b6318d | ||
|
|
96ca27a0ee | ||
|
|
60d0e97497 | ||
|
|
4d2ba822fd | ||
|
|
938783d0ab | ||
|
|
e45deb7997 | ||
|
|
9b50bba643 | ||
|
|
c9041079a1 | ||
|
|
90305c66a8 | ||
|
|
6a77d2667e | ||
|
|
c0aa482a5a | ||
|
|
cb8bbe9bf3 | ||
|
|
26e8558e74 | ||
|
|
c4da113ef9 | ||
|
|
a92522fbf3 | ||
|
|
0daf843b4c | ||
|
|
1b0675caec | ||
|
|
74675a666b | ||
|
|
85dad2c815 | ||
|
|
8603356bf4 | ||
|
|
8327d1df17 | ||
|
|
292eff0c5a | ||
|
|
f1d13478e3 | ||
|
|
5a15b6aa0a | ||
|
|
cae24be4a8 | ||
|
|
163095f088 | ||
|
|
faf29d7f91 | ||
|
|
c577d813b7 | ||
|
|
11e79bb04e | ||
|
|
0ea5070d79 | ||
|
|
710b4a1646 | ||
|
|
c4f833808a | ||
|
|
8858498516 | ||
|
|
cce1cf12eb | ||
|
|
e5ae108ab8 | ||
|
|
a34293ae0a | ||
|
|
e4f25e4a8d | ||
|
|
da5116da45 | ||
|
|
a83fe75ca7 | ||
|
|
c2226845eb | ||
|
|
a693d0584b | ||
|
|
9c4fefffb6 | ||
|
|
86f100dc09 | ||
|
|
9f5f7bf4d5 | ||
|
|
e6bf655bc4 | ||
|
|
28b238225a | ||
|
|
2e147caa14 | ||
|
|
0b2eef24bc | ||
|
|
18d90b95c4 | ||
|
|
07ecfa64a1 | ||
|
|
41cc038ff8 | ||
|
|
8eeeba8c02 | ||
|
|
1814183b86 | ||
|
|
182a17b1e8 | ||
|
|
774e5a9673 | ||
|
|
5d7be4f0fa | ||
|
|
ea20de8146 | ||
|
|
cc0750dc6e | ||
|
|
4eb6531b03 | ||
|
|
1e8e14552e | ||
|
|
24a9e348aa | ||
|
|
a1bd86e0f2 | ||
|
|
53564f7c1a | ||
|
|
5fe691240b | ||
|
|
090209bfbd | ||
|
|
6d006f9e95 | ||
|
|
f8be461d02 | ||
|
|
4670490673 | ||
|
|
a529ce068b | ||
|
|
a1fed064d1 | ||
|
|
4d785895d1 | ||
|
|
d2c061d24c |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -38,6 +38,7 @@ src/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
|
||||
# Borland C++
|
||||
|
||||
26
.travis.yml
26
.travis.yml
@@ -1,4 +1,5 @@
|
||||
language: c
|
||||
dist: trusty
|
||||
|
||||
os:
|
||||
- osx
|
||||
@@ -20,7 +21,7 @@ env:
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
# ASAN build
|
||||
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
|
||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
|
||||
sudo: false
|
||||
@@ -41,12 +42,12 @@ matrix:
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
|
||||
- os: osx
|
||||
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
|
||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
compiler: clang
|
||||
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
|
||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
- os: linux
|
||||
compiler: clang
|
||||
@@ -70,17 +71,25 @@ addons:
|
||||
- libperl-dev
|
||||
- python-dev
|
||||
- python3-dev
|
||||
- liblua5.1-0-dev
|
||||
- lua5.1
|
||||
- liblua5.2-dev
|
||||
- lua5.2
|
||||
- ruby-dev
|
||||
- cscope
|
||||
- libgtk2.0-dev
|
||||
|
||||
before_install:
|
||||
- rvm reset
|
||||
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
|
||||
# ("pyenv global system" doesn't seem to work.)
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ] && which python3 | grep '/opt/python/' > /dev/null; then export PATH=$(echo $PATH | sed -e "s#$(echo $(which python3) | sed -e 's#/python3$##'):##"); fi
|
||||
- if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
|
||||
# needed for https support for coveralls
|
||||
# building cffi only works with gcc, not with clang
|
||||
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
|
||||
# Lua is not installed on Travis OSX
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then export HOMEBREW_NO_AUTO_UPDATE=1; brew update; brew install lua; export LUA_PREFIX=/usr/local; fi
|
||||
# Use llvm-cov instead of gcov when compiler is clang.
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CC" = "clang" ]; then ln -sf $(which llvm-cov) /home/travis/bin/gcov; fi
|
||||
|
||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
||||
before_script:
|
||||
@@ -91,7 +100,8 @@ script:
|
||||
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
|
||||
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
|
||||
- (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
|
||||
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
|
||||
# Show Vim version and also if_xx versions.
|
||||
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-1.vim -c quit > /dev/null; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-2.vim -c quit > /dev/null; cat if_ver.txt; fi
|
||||
- if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
|
||||
- make $SHADOWOPT $TEST
|
||||
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
|
||||
|
||||
77
Filelist
77
Filelist
@@ -85,6 +85,7 @@ SRC_ALL = \
|
||||
src/syntax.c \
|
||||
src/tag.c \
|
||||
src/term.c \
|
||||
src/terminal.c \
|
||||
src/term.h \
|
||||
src/termlib.c \
|
||||
src/ui.c \
|
||||
@@ -104,6 +105,7 @@ SRC_ALL = \
|
||||
src/testdir/Make_all.mak \
|
||||
src/testdir/*.in \
|
||||
src/testdir/*.py \
|
||||
src/testdir/lsan-suppress.txt \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/shared.vim \
|
||||
@@ -133,6 +135,8 @@ SRC_ALL = \
|
||||
src/testdir/bench*.in \
|
||||
src/testdir/bench*.vim \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/if_ver*.vim \
|
||||
src/testdir/xterm_ramp.vim \
|
||||
src/proto.h \
|
||||
src/proto/arabic.pro \
|
||||
src/proto/blowfish.pro \
|
||||
@@ -187,6 +191,7 @@ SRC_ALL = \
|
||||
src/proto/syntax.pro \
|
||||
src/proto/tag.pro \
|
||||
src/proto/term.pro \
|
||||
src/proto/terminal.pro \
|
||||
src/proto/termlib.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
@@ -194,6 +199,76 @@ SRC_ALL = \
|
||||
src/proto/version.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
src/libvterm/.bzrignore \
|
||||
src/libvterm/.gitignore \
|
||||
src/libvterm/LICENSE \
|
||||
src/libvterm/Makefile \
|
||||
src/libvterm/README \
|
||||
src/libvterm/tbl2inc_c.pl \
|
||||
src/libvterm/vterm.pc.in \
|
||||
src/libvterm/bin/unterm.c \
|
||||
src/libvterm/bin/vterm-ctrl.c \
|
||||
src/libvterm/bin/vterm-dump.c \
|
||||
src/libvterm/doc/URLs \
|
||||
src/libvterm/doc/seqs.txt \
|
||||
src/libvterm/include/vterm.h \
|
||||
src/libvterm/include/vterm_keycodes.h \
|
||||
src/libvterm/src/encoding.c \
|
||||
src/libvterm/src/encoding/DECdrawing.inc \
|
||||
src/libvterm/src/encoding/DECdrawing.tbl \
|
||||
src/libvterm/src/encoding/uk.inc \
|
||||
src/libvterm/src/encoding/uk.tbl \
|
||||
src/libvterm/src/keyboard.c \
|
||||
src/libvterm/src/mouse.c \
|
||||
src/libvterm/src/parser.c \
|
||||
src/libvterm/src/pen.c \
|
||||
src/libvterm/src/rect.h \
|
||||
src/libvterm/src/screen.c \
|
||||
src/libvterm/src/state.c \
|
||||
src/libvterm/src/unicode.c \
|
||||
src/libvterm/src/utf8.h \
|
||||
src/libvterm/src/vterm.c \
|
||||
src/libvterm/src/vterm_internal.h \
|
||||
src/libvterm/t/02parser.test \
|
||||
src/libvterm/t/03encoding_utf8.test \
|
||||
src/libvterm/t/10state_putglyph.test \
|
||||
src/libvterm/t/11state_movecursor.test \
|
||||
src/libvterm/t/12state_scroll.test \
|
||||
src/libvterm/t/13state_edit.test \
|
||||
src/libvterm/t/14state_encoding.test \
|
||||
src/libvterm/t/15state_mode.test \
|
||||
src/libvterm/t/16state_resize.test \
|
||||
src/libvterm/t/17state_mouse.test \
|
||||
src/libvterm/t/18state_termprops.test \
|
||||
src/libvterm/t/20state_wrapping.test \
|
||||
src/libvterm/t/21state_tabstops.test \
|
||||
src/libvterm/t/22state_save.test \
|
||||
src/libvterm/t/25state_input.test \
|
||||
src/libvterm/t/26state_query.test \
|
||||
src/libvterm/t/27state_reset.test \
|
||||
src/libvterm/t/28state_dbl_wh.test \
|
||||
src/libvterm/t/29state_fallback.test \
|
||||
src/libvterm/t/30pen.test \
|
||||
src/libvterm/t/40screen_ascii.test \
|
||||
src/libvterm/t/41screen_unicode.test \
|
||||
src/libvterm/t/42screen_damage.test \
|
||||
src/libvterm/t/43screen_resize.test \
|
||||
src/libvterm/t/44screen_pen.test \
|
||||
src/libvterm/t/45screen_protect.test \
|
||||
src/libvterm/t/46screen_extent.test \
|
||||
src/libvterm/t/47screen_dbl_wh.test \
|
||||
src/libvterm/t/48screen_termprops.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 \
|
||||
src/libvterm/t/90vttest_01-movement-4.test \
|
||||
src/libvterm/t/90vttest_02-screen-1.test \
|
||||
src/libvterm/t/90vttest_02-screen-2.test \
|
||||
src/libvterm/t/90vttest_02-screen-3.test \
|
||||
src/libvterm/t/90vttest_02-screen-4.test \
|
||||
src/libvterm/t/92lp1640917.test \
|
||||
src/libvterm/t/harness.c \
|
||||
src/libvterm/t/run-test.pl \
|
||||
|
||||
|
||||
# source files for Unix only
|
||||
@@ -331,6 +406,7 @@ SRC_DOS = \
|
||||
src/msvcsetup.bat \
|
||||
src/msvc2008.bat \
|
||||
src/msvc2010.bat \
|
||||
src/msvc2015.bat \
|
||||
src/dimm.idl \
|
||||
src/dlldata.c \
|
||||
src/dosinst.c \
|
||||
@@ -564,6 +640,7 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/matchit/doc/tags \
|
||||
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
|
||||
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
|
||||
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \
|
||||
|
||||
# runtime files for all distributions without CR-NL translation
|
||||
RT_ALL_BIN = \
|
||||
|
||||
47
Makefile
47
Makefile
@@ -120,28 +120,27 @@ MINOR = 0
|
||||
#
|
||||
# MS-Windows:
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - Get libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||
# - Get 32 bit libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Use the "shared-32.zip file and extract the archive to get the files.
|
||||
# Put them in the top directory, "make dosrt" uses them.
|
||||
# Put them in the gettext32 directory, "make dosrt" uses them.
|
||||
# - Get 64 bit libintl-8.dll and libiconv-2.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Use the "shared-64.zip file and extract the archive to get the files.
|
||||
# Put them in the gettext64 directory, "make dosrt" uses them.
|
||||
# - > make dossrc
|
||||
# > make dosrt
|
||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||
# Win32 console version build:
|
||||
# - Set environment for Visual C++ 2008, e.g.:
|
||||
# > src/msvc2008.bat
|
||||
# Or:
|
||||
# > C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
|
||||
# Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
|
||||
# paths when necessary).
|
||||
# For Windows 98/ME the 2003 version is required, but then the executable
|
||||
# won't work on Windows 7 and 64 bit systems.
|
||||
# - > cd src
|
||||
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
||||
# - Set environment for Visual C++ 2015:
|
||||
# > cd src
|
||||
# > msvc2015.bat
|
||||
# - Build the console binary:
|
||||
# > nmake -f Make_mvc.mak
|
||||
# - Run the tests:
|
||||
# - Run the tests and check the ouput:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak test
|
||||
# - check the output.
|
||||
# - Rename (using ../tools/rename.bat):
|
||||
# vim.exe to vimw32.exe
|
||||
# tee/tee.exe to teew32.exe
|
||||
@@ -152,19 +151,18 @@ MINOR = 0
|
||||
# Win32 GUI version build:
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak GUI=yes
|
||||
# - Run the tests:
|
||||
# - Run the tests and check the output:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||
# - Move gvim.pdb to here.
|
||||
# - Copy "GvimExt/gvimext.dll" to here.
|
||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
||||
# - Install the interfaces you want, see src/INSTALLpc.txt
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# - Build:
|
||||
# > cd src
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# > bigvim.bat
|
||||
# - Run the tests:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
@@ -191,7 +189,7 @@ MINOR = 0
|
||||
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
|
||||
# It is part of vim72.zip as vim72/gvimext.dll.
|
||||
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
||||
# version).
|
||||
# version). Also put winpty32.dll and winpty-agent.exe there.
|
||||
# - go to ../nsis and do:
|
||||
# > makensis gvim.nsi (takes a few minutes).
|
||||
# ignore warning for libwinpthread-1.dll
|
||||
@@ -467,9 +465,13 @@ dosrt_files: dist prepare no_title.vim
|
||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||
fi \
|
||||
done
|
||||
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/
|
||||
mkdir dist/vim/$(VIMRTDIR)/gettext32
|
||||
cp gettext32/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
cp gettext32/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
cp gettext32/libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
mkdir dist/vim/$(VIMRTDIR)/gettext64
|
||||
cp gettext64/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||
cp gettext64/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||
|
||||
|
||||
# Used before uploading. Don't delete the AAPDIR/sign files!
|
||||
@@ -496,7 +498,10 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
|
||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
|
||||
cp gvimext64.dll dist/vim/$(VIMRTDIR)/GvimExt64/gvimext.dll
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
|
||||
cp gvim.pdb dist/gvim$(VERSION).pdb
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
This builds a one-click install for Vim for Win32 using the Nullsoft
|
||||
Installation System (NSIS), available at http://www.nullsoft.com/free/nsis/
|
||||
Installation System (NSIS), available at http://nsis.sourceforge.net/
|
||||
|
||||
To build the installable .exe:
|
||||
|
||||
@@ -17,8 +17,14 @@ To build the installable .exe:
|
||||
uninstal.exe,
|
||||
xxd/xxd.exe,
|
||||
|
||||
Then execute tools/rename.bat to rename the executables. (mv command is
|
||||
required.)
|
||||
|
||||
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
|
||||
archive).
|
||||
archive). Both 64- and 32-bit versions are needed and should be placed
|
||||
as follows:
|
||||
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).
|
||||
@@ -27,13 +33,35 @@ To build the installable .exe:
|
||||
get them from a binary archive).
|
||||
|
||||
6. Get a "diff.exe" program and put it in the "../.." directory (above the
|
||||
"vim61" directory, it's the same for all Vim versions).
|
||||
"vim80" 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
|
||||
Also put winpty32.dll and winpty-agent.exe there.
|
||||
|
||||
7. 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:
|
||||
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
|
||||
DLLs and place them as follows:
|
||||
|
||||
<GETTEXT directory>
|
||||
|
|
||||
+ gettext32/
|
||||
| libintl-8.dll
|
||||
| libiconv-2.dll
|
||||
| libgcc_s_sjlj-1.dll
|
||||
|
|
||||
` gettext64/
|
||||
libintl-8.dll
|
||||
libiconv-2.dll
|
||||
|
||||
The default <GETTEXT directory> is "..", however, you can change it by
|
||||
passing /DGETTEXT=... option to the makensis command.
|
||||
|
||||
|
||||
Install NSIS if you didn't do that already.
|
||||
Also install UPX, if you want a compressed file.
|
||||
|
||||
|
||||
101
nsis/gvim.nsi
101
nsis/gvim.nsi
@@ -20,8 +20,15 @@
|
||||
!define VIMTOOLS ..\..
|
||||
!endif
|
||||
|
||||
# Location of gettext.
|
||||
# It must contain two directories: gettext32 and gettext64.
|
||||
# See README.txt for detail.
|
||||
!ifndef GETTEXT
|
||||
!define GETTEXT ${VIMRT}
|
||||
!endif
|
||||
|
||||
# Comment the next line if you don't have UPX.
|
||||
# Get it at http://upx.sourceforge.net
|
||||
# Get it at https://upx.github.io/
|
||||
!define HAVE_UPX
|
||||
|
||||
# comment the next line if you do not want to add Native Language Support
|
||||
@@ -87,6 +94,7 @@ UninstPage instfiles
|
||||
Function .onInit
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
"This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \
|
||||
/SD IDYES \
|
||||
IDYES NoAbort
|
||||
Abort ; causes installer to quit.
|
||||
NoAbort:
|
||||
@@ -178,7 +186,7 @@ FunctionEnd
|
||||
|
||||
##########################################################
|
||||
Section "Vim executables and runtime files"
|
||||
SectionIn 1 2 3
|
||||
SectionIn 1 2 3 RO
|
||||
|
||||
# we need also this here if the user changes the instdir
|
||||
StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
|
||||
@@ -190,13 +198,16 @@ Section "Vim executables and runtime files"
|
||||
File ${VIMSRC}\vimrun.exe
|
||||
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
||||
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
||||
File ${VIMTOOLS}\diff.exe
|
||||
File ${VIMRT}\vimtutor.bat
|
||||
File ${VIMRT}\README.txt
|
||||
File ..\uninstal.txt
|
||||
File ${VIMRT}\*.vim
|
||||
File ${VIMRT}\rgb.txt
|
||||
|
||||
File ${VIMTOOLS}\diff.exe
|
||||
File ${VIMTOOLS}\winpty32.dll
|
||||
File ${VIMTOOLS}\winpty-agent.exe
|
||||
|
||||
SetOutPath $0\colors
|
||||
File ${VIMRT}\colors\*.*
|
||||
|
||||
@@ -215,6 +226,14 @@ Section "Vim executables and runtime files"
|
||||
|
||||
SetOutPath $0\macros
|
||||
File ${VIMRT}\macros\*.*
|
||||
SetOutPath $0\macros\hanoi
|
||||
File ${VIMRT}\macros\hanoi\*.*
|
||||
SetOutPath $0\macros\life
|
||||
File ${VIMRT}\macros\life\*.*
|
||||
SetOutPath $0\macros\maze
|
||||
File ${VIMRT}\macros\maze\*.*
|
||||
SetOutPath $0\macros\urm
|
||||
File ${VIMRT}\macros\urm\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\dvorak\dvorak
|
||||
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
|
||||
@@ -316,24 +335,67 @@ Section "Add an Edit-with-Vim context menu entry"
|
||||
SetOutPath $0
|
||||
ClearErrors
|
||||
SetOverwrite try
|
||||
|
||||
${If} ${RunningX64}
|
||||
# Install 64-bit gvimext.dll into the GvimExt64 directory.
|
||||
SetOutPath $0\GvimExt64
|
||||
ClearErrors
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
File ${GETTEXT}\gettext64\libintl-8.dll
|
||||
File ${GETTEXT}\gettext64\libiconv-2.dll
|
||||
!endif
|
||||
|
||||
IfErrors 0 GvimExt64Done
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it
|
||||
# on next reboot.
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${VIMSRC}\GvimExt64\gvimext.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${GETTEXT}\gettext64\libintl-8.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\libintl-8.dll
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${GETTEXT}\gettext64\libiconv-2.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\libiconv-2.dll
|
||||
!endif
|
||||
${EndIf}
|
||||
IfErrors 0 GvimExtDone
|
||||
|
||||
GvimExt64Done:
|
||||
|
||||
# Install 32-bit gvimext.dll into the GvimExt32 directory.
|
||||
SetOutPath $0\GvimExt32
|
||||
ClearErrors
|
||||
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
File ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
!endif
|
||||
|
||||
IfErrors 0 GvimExt32Done
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||
# next reboot.
|
||||
GetTempFileName $3 $0
|
||||
${If} ${RunningX64}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libintl-8.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libintl-8.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libiconv-2.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libgcc_s_sjlj-1.dll
|
||||
!endif
|
||||
|
||||
GvimExtDone:
|
||||
GvimExt32Done:
|
||||
SetOverwrite lastused
|
||||
|
||||
# We don't have a separate entry for the "Open With..." menu, assume
|
||||
@@ -382,10 +444,10 @@ SectionEnd
|
||||
File ${VIMRT}\keymap\README.txt
|
||||
File ${VIMRT}\keymap\*.vim
|
||||
SetOutPath $0
|
||||
File ${VIMRT}\libintl-8.dll
|
||||
File ${VIMRT}\libiconv-2.dll
|
||||
File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
File /nonfatal ${VIMRT}\libgcc_s_sjlj-1.dll
|
||||
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
#File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
File /nonfatal ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
@@ -425,6 +487,11 @@ Section Uninstall
|
||||
$\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
|
||||
|
||||
Delete /REBOOTOK $0\*.dll
|
||||
Delete /REBOOTOK $0\GvimExt32\*.dll
|
||||
${If} ${RunningX64}
|
||||
Delete /REBOOTOK $0\GvimExt64\*.dll
|
||||
${EndIf}
|
||||
|
||||
ClearErrors
|
||||
# Remove everything but *.dll files. Avoids that
|
||||
# a lot remains when gvimext.dll cannot be deleted.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim support file to help with paste mappings and menus
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2006 Jun 23
|
||||
" Last Change: 2017 Aug 30
|
||||
|
||||
" Define the string to use for items that are present both in Edit, Popup and
|
||||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||||
@@ -12,7 +12,7 @@
|
||||
if has("virtualedit")
|
||||
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
|
||||
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
|
||||
let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi'
|
||||
let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
|
||||
|
||||
func! paste#Paste()
|
||||
let ove = &ve
|
||||
|
||||
@@ -101,6 +101,7 @@ DOCS = \
|
||||
tabpage.txt \
|
||||
tagsrch.txt \
|
||||
term.txt \
|
||||
terminal.txt \
|
||||
tips.txt \
|
||||
todo.txt \
|
||||
uganda.txt \
|
||||
@@ -236,6 +237,7 @@ HTMLS = \
|
||||
tabpage.html \
|
||||
tagsrch.html \
|
||||
term.html \
|
||||
terminal.html \
|
||||
tips.html \
|
||||
todo.html \
|
||||
uganda.html \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Apr 07
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jul 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -651,7 +651,8 @@ FileType When the 'filetype' option has been set. The
|
||||
pattern is matched against the filetype.
|
||||
<afile> can be used for the name of the file
|
||||
where this option was set, and <amatch> for
|
||||
the new value of 'filetype'.
|
||||
the new value of 'filetype'. Navigating to
|
||||
another window or buffer is not allowed.
|
||||
See |filetypes|.
|
||||
*FileWriteCmd*
|
||||
FileWriteCmd Before writing to a file, when not writing the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 8.0. Last change: 2017 Jun 11
|
||||
*channel.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -427,8 +427,8 @@ When no message was available then the result is v:none for a JSON or JS mode
|
||||
channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
|
||||
to check if there is something to read.
|
||||
|
||||
Note that when there is no callback message are dropped. To avoid that add a
|
||||
close callback to the channel.
|
||||
Note that when there is no callback, messages are dropped. To avoid that add
|
||||
a close callback to the channel.
|
||||
|
||||
To read all output from a RAW channel that is available: >
|
||||
let output = ch_readraw(channel)
|
||||
@@ -518,7 +518,7 @@ By default this reads the whole buffer. This can be changed with the "in_top"
|
||||
and "in_bot" options.
|
||||
|
||||
A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
|
||||
time a line is added to the buffer, the last-but-one line will be send to the
|
||||
time a line is added to the buffer, the last-but-one line will be sent to the
|
||||
job stdin. This allows for editing the last line and sending it when pressing
|
||||
Enter.
|
||||
*channel-close-in*
|
||||
@@ -611,7 +611,7 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
"close_cb": handler Callback for when the channel is closed. Same as
|
||||
"close_cb" on |ch_open()|, see |close_cb|.
|
||||
*job-drop*
|
||||
"drop" Specifies when to drop messages. Same as "drop" on
|
||||
"drop": when Specifies when to drop messages. Same as "drop" on
|
||||
|ch_open()|, see |channel-drop|. For "auto" the
|
||||
exit_cb is not considered.
|
||||
*job-exit_cb*
|
||||
@@ -624,12 +624,12 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
Note that data can be buffered, callbacks may still be
|
||||
called after the process ends.
|
||||
*job-timeout*
|
||||
"timeout" The time to wait for a request when blocking, E.g.
|
||||
"timeout": time The time to wait for a request when blocking, E.g.
|
||||
when using ch_evalexpr(). In milliseconds. The
|
||||
default is 2000 (2 seconds).
|
||||
*out_timeout* *err_timeout*
|
||||
"out_timeout" Timeout for stdout. Only when using pipes.
|
||||
"err_timeout" Timeout for stderr. Only when using pipes.
|
||||
"out_timeout": time Timeout for stdout. Only when using pipes.
|
||||
"err_timeout": time Timeout for stderr. Only when using pipes.
|
||||
Note: when setting "timeout" the part specific mode is
|
||||
overwritten. Therefore set "timeout" first and the
|
||||
part specific mode later.
|
||||
@@ -641,8 +641,9 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
The default is "term".
|
||||
|
||||
*job-term*
|
||||
"term": "open" Start a terminal and connect the job
|
||||
stdin/stdout/stderr to it.
|
||||
"term": "open" Start a terminal in a new window and connect the job
|
||||
stdin/stdout/stderr to it. Similar to using
|
||||
`:terminal`.
|
||||
NOTE: Not implemented yet!
|
||||
|
||||
"channel": {channel} Use an existing channel instead of creating a new one.
|
||||
@@ -652,6 +653,11 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
cause I/O errors.
|
||||
Existing callbacks and other settings remain.
|
||||
|
||||
"pty": 1 Use a pty (pseudo-tty) instead of a pipe when
|
||||
possible. This is most useful in combination with a
|
||||
terminal window, see |terminal|.
|
||||
{only on Unix and Unix-like systems}
|
||||
|
||||
*job-in_io* *in_top* *in_bot* *in_name* *in_buf*
|
||||
"in_io": "null" disconnect stdin (read from /dev/null)
|
||||
"in_io": "pipe" stdin is connected to the channel (default)
|
||||
@@ -690,6 +696,10 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
"block_write": number only for testing: pretend every other write to stdin
|
||||
will block
|
||||
|
||||
"env": dict environment variables for the new process
|
||||
"cwd": "/path/to/dir" current working directory for the new process;
|
||||
if the directory does not exist an error is given
|
||||
|
||||
|
||||
Writing to a buffer ~
|
||||
*out_io-buffer*
|
||||
@@ -725,10 +735,6 @@ The "out_msg" option can be used to specify whether a new buffer will have the
|
||||
first line set to "Reading from channel output...". The default is to add the
|
||||
message. "err_msg" does the same for channel error.
|
||||
|
||||
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
|
||||
means that lines will be appended to the buffer, but the user can't easily
|
||||
change the buffer.
|
||||
|
||||
When an existing buffer is to be written where 'modifiable' is off and the
|
||||
"out_modifiable" or "err_modifiable" options is not zero, an error is given
|
||||
and the buffer will not be written to.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -455,6 +455,9 @@ matches exactly one character.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||
|
||||
The 'wildmenu' option can be set to show the matches just above the command
|
||||
line.
|
||||
|
||||
If you like tcsh's autolist completion, you can use this mapping:
|
||||
:cnoremap X <C-L><C-D>
|
||||
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
|
||||
@@ -823,10 +826,16 @@ Also see |`=|.
|
||||
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
||||
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
||||
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
||||
*:<cexpr>* *<cexpr>*
|
||||
*<slnum>* *E495* *E496* *E497* *E499* *E500*
|
||||
Note: these are typed literally, they are not special keys!
|
||||
<cword> is replaced with the word under the cursor (like |star|)
|
||||
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
||||
<cexpr> is replaced with the word under the cursor, including more
|
||||
to form a C expression. E.g., when the cursor is on "arg"
|
||||
of "ptr->arg" then the result is "ptr->arg"; when the
|
||||
cursor is on "]" of "list[idx]" then the result is
|
||||
"list[idx]". This is used for |v:beval_text|.
|
||||
<cfile> is replaced with the path name under the cursor (like what
|
||||
|gf| uses)
|
||||
<afile> When executing autocommands, is replaced with the file name
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*debug.txt* For Vim version 8.0. Last change: 2012 Feb 11
|
||||
*debug.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -53,7 +53,7 @@ Use this command to start Vim:
|
||||
valgrind --log-file=valgrind.log --leak-check=full ./vim
|
||||
|
||||
Note: Vim will run much slower. If your .vimrc is big or you have several
|
||||
plugins you need to be patient for startup, or run with the "-u NONE"
|
||||
plugins you need to be patient for startup, or run with the "--clean"
|
||||
argument.
|
||||
|
||||
There are often a few leaks from libraries, such as getpwuid() and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 8.0. Last change: 2017 Jan 05
|
||||
*develop.txt* For Vim version 8.0. Last change: 2017 Jul 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -143,9 +143,10 @@ and its environment.
|
||||
|
||||
VIM IS... NOT *design-not*
|
||||
|
||||
- Vim is not a shell or an Operating System. You will not be able to run a
|
||||
shell inside Vim or use it to control a debugger. This should work the
|
||||
other way around: Use Vim as a component from a shell or in an IDE.
|
||||
- Vim is not a shell or an Operating System. It does provide a terminal
|
||||
window, in which you can run a shell or debugger. E.g. to be able to do
|
||||
this over an ssh connection. But if you don't need a text editor with that
|
||||
it is out of scope (use something like screen or tmux instead).
|
||||
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
|
||||
everything but the kitchen sink, but some people say that you can clean one
|
||||
with it. ;-)"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 8.0. Last change: 2017 Feb 03
|
||||
*diff.txt* For Vim version 8.0. Last change: 2017 Sep 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -10,7 +10,7 @@ eight versions of the same file.
|
||||
|
||||
The basics are explained in section |08.7| of the user manual.
|
||||
|
||||
1. Starting diff mode |vimdiff|
|
||||
1. Starting diff mode |start-vimdiff|
|
||||
2. Viewing diffs |view-diffs|
|
||||
3. Jumping to diffs |jumpto-diffs|
|
||||
4. Copying diffs |copy-diffs|
|
||||
@@ -19,7 +19,7 @@ The basics are explained in section |08.7| of the user manual.
|
||||
{not in Vi}
|
||||
|
||||
==============================================================================
|
||||
1. Starting diff mode
|
||||
1. Starting diff mode *start-vimdiff*
|
||||
|
||||
The easiest way to start editing in diff mode is with the "vimdiff" command.
|
||||
This starts Vim as usual, and additionally sets up for viewing the differences
|
||||
@@ -226,8 +226,8 @@ The diffs are highlighted with these groups:
|
||||
(searching from the end of the line). The
|
||||
text in between is highlighted. This means
|
||||
that parts in the middle that are still the
|
||||
same are highlighted anyway. Only "iwhite" of
|
||||
'diffopt' is used here.
|
||||
same are highlighted anyway. The 'diffopt'
|
||||
flags "iwhite" and "icase" are used here.
|
||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||
because they don't really exist in this
|
||||
buffer.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.0. Last change: 2017 Apr 10
|
||||
*editing.txt* For Vim version 8.0. Last change: 2017 Aug 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -617,16 +617,16 @@ list of the current window.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} *:arge* *:argedit*
|
||||
Add {name} to the argument list and edit it.
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit*
|
||||
Add {name}s to the argument list and edit it.
|
||||
When {name} already exists in the argument list, this
|
||||
entry is edited.
|
||||
This is like using |:argadd| and then |:edit|.
|
||||
Note that only one file name is allowed, and spaces
|
||||
inside the file name are allowed, like with |:edit|.
|
||||
Spaces in filenames have to be escaped with "\".
|
||||
[count] is used like with |:argadd|.
|
||||
[!] is required if the current file cannot be
|
||||
|abandon|ed.
|
||||
If the current file cannot be |abandon|ed {name}s will
|
||||
still be added to the argument list, but won't be
|
||||
edited. No check for duplicates is done.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{not in Vi}
|
||||
|
||||
@@ -1109,6 +1109,7 @@ The names can be in upper- or lowercase.
|
||||
window in the current tab page the current tab page is
|
||||
closed |tab-page|.
|
||||
Triggers the |QuitPre| autocommand event.
|
||||
See |CTRL-W_q| for quitting another window.
|
||||
|
||||
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
|
||||
the last file in the argument list has not been
|
||||
@@ -1328,9 +1329,11 @@ present in 'cpoptions' and "!" is not used in the command.
|
||||
:chd[ir][!] [path] Same as |:cd|.
|
||||
|
||||
*:lc* *:lcd*
|
||||
:lc[d][!] {path} Like |:cd|, but only set the current directory for the
|
||||
current window. The current directory for other
|
||||
windows is not changed. {not in Vi}
|
||||
:lc[d][!] {path} Like |:cd|, but only set the current directory when
|
||||
the cursor is in the current window. The current
|
||||
directory for other windows is not changed, switching
|
||||
to another window will stop using {path}.
|
||||
{not in Vi}
|
||||
|
||||
*:lch* *:lchdir*
|
||||
:lch[dir][!] Same as |:lcd|. {not in Vi}
|
||||
@@ -1735,7 +1738,7 @@ There are three different types of searching:
|
||||
This searches the same directories, but in a different order.
|
||||
|
||||
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
|
||||
currently work with 'path' items that contain a url or use the double star
|
||||
currently work with 'path' items that contain a URL or use the double star
|
||||
with depth limiter (/usr/**2) or upward search (;) notations.
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.0. Last change: 2017 Jun 22
|
||||
*eval.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1449,7 +1449,7 @@ v:beval_text The text under or after the mouse pointer. Usually a word as
|
||||
but a dot and "->" before the position is included. When on a
|
||||
']' the text before it is used, including the matching '[' and
|
||||
word before it. When on a Visual area within one line the
|
||||
highlighted text is used.
|
||||
highlighted text is used. Also see |<cexpr>|.
|
||||
Only valid while evaluating the 'balloonexpr' option.
|
||||
|
||||
*v:beval_winnr* *beval_winnr-variable*
|
||||
@@ -1815,7 +1815,7 @@ v:scrollstart String describing the script or function that caused the
|
||||
hit-enter prompt.
|
||||
|
||||
*v:servername* *servername-variable*
|
||||
v:servername The resulting registered |x11-clientserver| name if any.
|
||||
v:servername The resulting registered |client-server-name| if any.
|
||||
Read-only.
|
||||
|
||||
|
||||
@@ -1902,6 +1902,26 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
|
||||
always 95 or bigger). Pc is always zero.
|
||||
{only when compiled with |+termresponse| feature}
|
||||
|
||||
*v:termblinkresp*
|
||||
v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
|
||||
termcap entry. This is used to find out whether the terminal
|
||||
cursor is blinking. This is used by |term_getcursor()|.
|
||||
|
||||
*v:termstyleresp*
|
||||
v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
|
||||
termcap entry. This is used to find out what the shape of the
|
||||
cursor is. This is used by |term_getcursor()|.
|
||||
|
||||
*v:termrgbresp*
|
||||
v:termrgbresp The escape sequence returned by the terminal for the |t_RB|
|
||||
termcap entry. This is used to find out what the terminal
|
||||
background color is, see 'background'.
|
||||
|
||||
*v:termu7resp*
|
||||
v:termu7resp The escape sequence returned by the terminal for the |t_u7|
|
||||
termcap entry. This is used to find out what the terminal
|
||||
does with ambiguous width characters, see 'ambiwidth'.
|
||||
|
||||
*v:testing* *testing-variable*
|
||||
v:testing Must be set before using `test_garbagecollect_now()`.
|
||||
Also, when set certain error messages won't be shown for 2
|
||||
@@ -2179,7 +2199,7 @@ index({list}, {expr} [, {start} [, {ic}]])
|
||||
Number index in {list} where {expr} appears
|
||||
input({prompt} [, {text} [, {completion}]])
|
||||
String get input from the user
|
||||
inputdialog({prompt} [, {text} [, {completion}]]])
|
||||
inputdialog({prompt} [, {text} [, {completion}]])
|
||||
String like input() but in a GUI dialog
|
||||
inputlist({textlist}) Number let the user pick from a choice list
|
||||
inputrestore() Number restore typeahead
|
||||
@@ -2296,6 +2316,9 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
|
||||
server2client({clientid}, {string})
|
||||
Number send reply string
|
||||
serverlist() String get a list of available servers
|
||||
setbufline( {expr}, {lnum}, {line})
|
||||
Number set line {lnum} to {line} in buffer
|
||||
{expr}
|
||||
setbufvar({expr}, {varname}, {val})
|
||||
none set {varname} in buffer {expr} to {val}
|
||||
setcharsearch({dict}) Dict set character search from {dict}
|
||||
@@ -2369,9 +2392,25 @@ tagfiles() List tags files used
|
||||
tan({expr}) Float tangent of {expr}
|
||||
tanh({expr}) Float hyperbolic tangent of {expr}
|
||||
tempname() String name for a temporary file
|
||||
term_getaltscreen({buf}) Number get the alternate screen flag
|
||||
term_getattr({attr}, {what}) Number get the value of attribute {what}
|
||||
term_getcursor({buf}) List get the cursor position of a terminal
|
||||
term_getjob({buf}) Job get the job associated with a terminal
|
||||
term_getline({buf}, {row}) String get a line of text from a terminal
|
||||
term_getscrolled({buf}) Number get the scroll count of a terminal
|
||||
term_getsize({buf}) List get the size of a terminal
|
||||
term_getstatus({buf}) String get the status of a terminal
|
||||
term_gettitle({buf}) String get the title of a terminal
|
||||
term_getttty({buf}, [{input}]) String get the tty name of a terminal
|
||||
term_list() List get the list of terminal buffers
|
||||
term_scrape({buf}, {row}) List get row of a terminal screen
|
||||
term_sendkeys({buf}, {keys}) none send keystrokes to a terminal
|
||||
term_start({cmd}, {options}) Job open a terminal window and run a job
|
||||
term_wait({buf} [, {time}]) Number wait for screen to be updated
|
||||
test_alloc_fail({id}, {countdown}, {repeat})
|
||||
none make memory allocation fail
|
||||
test_autochdir() none enable 'autochdir' during startup
|
||||
test_feedinput() none add key sequence to input buffer
|
||||
test_garbagecollect_now() none free memory right now for testing
|
||||
test_ignore_error({expr}) none ignore a specific error
|
||||
test_null_channel() Channel null value for testing
|
||||
@@ -2971,6 +3010,11 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
|
||||
The file is flushed after every message, on Unix you can use
|
||||
"tail -f" to see what is going on in real time.
|
||||
|
||||
This function is not available in the |sandbox|.
|
||||
NOTE: the channel communication is stored in the file, be
|
||||
aware that this may contain confidential and privacy sensitive
|
||||
information, e.g. a password you type in a terminal window.
|
||||
|
||||
|
||||
ch_open({address} [, {options}]) *ch_open()*
|
||||
Open a channel to {address}. See |channel|.
|
||||
@@ -3249,11 +3293,16 @@ cosh({expr}) *cosh()*
|
||||
|
||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
||||
Return the number of times an item with value {expr} appears
|
||||
in |List| or |Dictionary| {comp}.
|
||||
in |String|, |List| or |Dictionary| {comp}.
|
||||
|
||||
If {start} is given then start with the item with this index.
|
||||
{start} can only be used with a |List|.
|
||||
|
||||
When {ic} is given and it's |TRUE| then case is ignored.
|
||||
|
||||
When {comp} is a string then the number of not overlapping
|
||||
occurrences of {expr} is returned.
|
||||
|
||||
|
||||
*cscope_connection()*
|
||||
cscope_connection([{num} , {dbpath} [, {prepend}]])
|
||||
@@ -3418,7 +3467,7 @@ escape({string}, {chars}) *escape()*
|
||||
:echo escape('c:\program files\vim', ' \')
|
||||
< results in: >
|
||||
c:\\program\ files\\vim
|
||||
< Also see |shellescape()|.
|
||||
< Also see |shellescape()| and |fnameescape()|.
|
||||
|
||||
*eval()*
|
||||
eval({string}) Evaluate {string} and return the result. Especially useful to
|
||||
@@ -3838,7 +3887,7 @@ float2nr({expr}) *float2nr()*
|
||||
When the value of {expr} is out of range for a |Number| the
|
||||
result is truncated to 0x7fffffff or -0x7fffffff (or when
|
||||
64-bit Number support is enabled, 0x7fffffffffffffff or
|
||||
-0x7fffffffffffffff. NaN results in -0x80000000 (or when
|
||||
-0x7fffffffffffffff). NaN results in -0x80000000 (or when
|
||||
64-bit Number support is enabled, -0x8000000000000000).
|
||||
Examples: >
|
||||
echo float2nr(3.95)
|
||||
@@ -4189,14 +4238,14 @@ getchar([expr]) *getchar()*
|
||||
not consumed. Return zero if no character available.
|
||||
|
||||
Without [expr] and when [expr] is 0 a whole character or
|
||||
special key is returned. If it is an 8-bit character, the
|
||||
special key is returned. If it is a single character, the
|
||||
result is a number. Use nr2char() to convert it to a String.
|
||||
Otherwise a String is returned with the encoded character.
|
||||
For a special key it's a sequence of bytes starting with 0x80
|
||||
(decimal: 128). This is the same value as the string
|
||||
"\<Key>", e.g., "\<Left>". The returned value is also a
|
||||
String when a modifier (shift, control, alt) was used that is
|
||||
not included in the character.
|
||||
For a special key it's a String with a sequence of bytes
|
||||
starting with 0x80 (decimal: 128). This is the same value as
|
||||
the String "\<Key>", e.g., "\<Left>". The returned value is
|
||||
also a String when a modifier (shift, control, alt) was used
|
||||
that is not included in the character.
|
||||
|
||||
When [expr] is 0 and Esc is typed, there will be a short delay
|
||||
while Vim waits to see if this is the start of an escape
|
||||
@@ -4350,6 +4399,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
highlight highlight groups
|
||||
history :history suboptions
|
||||
locale locale names (as output of locale -a)
|
||||
mapclear buffer argument
|
||||
mapping mapping name
|
||||
menu menus
|
||||
messages |:messages| suboptions
|
||||
@@ -4586,31 +4636,52 @@ getqflist([{what}]) *getqflist()*
|
||||
returns only the items listed in {what} as a dictionary. The
|
||||
following string items are supported in {what}:
|
||||
context get the context stored with |setqflist()|
|
||||
efm errorformat to use when parsing "lines". If
|
||||
not present, then the 'erroformat' option
|
||||
value is used.
|
||||
id get information for the quickfix list with
|
||||
|quickfix-ID|; zero means the id for the
|
||||
current list or the list specifed by "nr"
|
||||
idx index of the current entry in the list
|
||||
items quickfix list entries
|
||||
lines use 'errorformat' to extract items from a list
|
||||
of lines and return the resulting entries.
|
||||
Only a |List| type is accepted. The current
|
||||
quickfix list is not modified.
|
||||
nr get information for this quickfix list; zero
|
||||
means the current quickfix list and '$' means
|
||||
means the current quickfix list and "$" means
|
||||
the last quickfix list
|
||||
size number of entries in the quickfix list
|
||||
title get the list title
|
||||
winid get the |window-ID| (if opened)
|
||||
all all of the above quickfix properties
|
||||
Non-string items in {what} are ignored.
|
||||
If "nr" is not present then the current quickfix list is used.
|
||||
To get the number of lists in the quickfix stack, set 'nr' to
|
||||
'$' in {what}. The 'nr' value in the returned dictionary
|
||||
If both "nr" and a non-zero "id" are specified, then the list
|
||||
specified by "id" is used.
|
||||
To get the number of lists in the quickfix stack, set "nr" to
|
||||
"$" in {what}. The "nr" value in the returned dictionary
|
||||
contains the quickfix stack size.
|
||||
When "lines" is specified, all the other items except "efm"
|
||||
are ignored. The returned dictionary contains the entry
|
||||
"items" with the list of entries.
|
||||
In case of error processing {what}, an empty dictionary is
|
||||
returned.
|
||||
|
||||
The returned dictionary contains the following entries:
|
||||
context context information stored with |setqflist()|
|
||||
id quickfix list ID |quickfix-ID|
|
||||
idx index of the current entry in the list
|
||||
items quickfix list entries
|
||||
nr quickfix list number
|
||||
size number of entries in the quickfix list
|
||||
title quickfix list title text
|
||||
winid quickfix |window-ID| (if opened)
|
||||
|
||||
Examples: >
|
||||
:echo getqflist({'all': 1})
|
||||
:echo getqflist({'nr': 2, 'title': 1})
|
||||
:echo getqflist({'lines' : ["F1:10:L10"]})
|
||||
<
|
||||
|
||||
getreg([{regname} [, 1 [, {list}]]]) *getreg()*
|
||||
@@ -4716,11 +4787,15 @@ getwininfo([{winid}]) *getwininfo()*
|
||||
|
||||
Each List item is a Dictionary with the following entries:
|
||||
bufnr number of buffer in the window
|
||||
height window height
|
||||
height window height (excluding winbar)
|
||||
winbar 1 if the window has a toolbar, 0
|
||||
otherwise
|
||||
loclist 1 if showing a location list
|
||||
{only with the +quickfix feature}
|
||||
quickfix 1 if quickfix or location list window
|
||||
{only with the +quickfix feature}
|
||||
terminal 1 if a terminal window
|
||||
{only with the +terminal feature}
|
||||
tabnr tab page number
|
||||
variables a reference to the dictionary with
|
||||
window-local variables
|
||||
@@ -5175,6 +5250,9 @@ job_info({job}) *job_info()*
|
||||
Returns a Dictionary with information about {job}:
|
||||
"status" what |job_status()| returns
|
||||
"channel" what |job_getchannel()| returns
|
||||
"process" process ID
|
||||
"tty_in" terminal input name, empty when none
|
||||
"tty_out" terminal output name, empty when none
|
||||
"exitval" only valid when "status" is "dead"
|
||||
"exit_cb" function to be called on exit
|
||||
"stoponexit" |job-stoponexit|
|
||||
@@ -5187,6 +5265,7 @@ job_setoptions({job}, {options}) *job_setoptions()*
|
||||
job_start({command} [, {options}]) *job_start()*
|
||||
Start a job and return a Job object. Unlike |system()| and
|
||||
|:!cmd| this does not wait for the job to finish.
|
||||
To start a job in a terminal window see |term_start()|.
|
||||
|
||||
{command} can be a String. This works best on MS-Windows. On
|
||||
Unix it is split up in white-separated parts to be passed to
|
||||
@@ -5599,6 +5678,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
||||
"s" Select
|
||||
"x" Visual
|
||||
"l" langmap |language-mapping|
|
||||
"t" Terminal-Job
|
||||
"" Normal, Visual and Operator-pending
|
||||
When {mode} is omitted, the modes for "" are used.
|
||||
|
||||
@@ -5925,7 +6005,7 @@ mode([expr]) Return a string that indicates the current mode.
|
||||
a non-empty String (|non-zero-arg|), then the full mode is
|
||||
returned, otherwise only the first letter is returned.
|
||||
|
||||
n Normal
|
||||
n Normal, Terminal-Normal
|
||||
no Operator-pending
|
||||
v Visual by character
|
||||
V Visual by line
|
||||
@@ -5947,6 +6027,7 @@ mode([expr]) Return a string that indicates the current mode.
|
||||
rm The -- more -- prompt
|
||||
r? A |:confirm| query of some sort
|
||||
! Shell or external command is executing
|
||||
t Terminal-Job mode: keys go to the job
|
||||
This is useful in the 'statusline' option or when used
|
||||
with |remote_expr()| In most other places it always returns
|
||||
"c" or "n".
|
||||
@@ -6792,6 +6873,19 @@ serverlist() *serverlist()*
|
||||
Example: >
|
||||
:echo serverlist()
|
||||
<
|
||||
setbufline({expr}, {lnum}, {text}) *setbufline()*
|
||||
Set line {lnum} to {text} in buffer {expr}. To insert
|
||||
lines use |append()|.
|
||||
|
||||
For the use of {expr}, see |bufname()| above.
|
||||
|
||||
{lnum} is used like with |setline()|.
|
||||
This works like |setline()| for the specified buffer.
|
||||
On success 0 is returned, on failure 1 is returned.
|
||||
|
||||
If {expr} is not a valid buffer or {lnum} is not valid, an
|
||||
error message is given.
|
||||
|
||||
setbufvar({expr}, {varname}, {val}) *setbufvar()*
|
||||
Set option or local variable {varname} in buffer {expr} to
|
||||
{val}.
|
||||
@@ -6860,13 +6954,19 @@ setfperm({fname}, {mode}) *setfperm()* *chmod*
|
||||
|
||||
setline({lnum}, {text}) *setline()*
|
||||
Set line {lnum} of the current buffer to {text}. To insert
|
||||
lines use |append()|.
|
||||
lines use |append()|. To set lines in another buffer use
|
||||
|setbufline()|.
|
||||
|
||||
{lnum} is used like with |getline()|.
|
||||
When {lnum} is just below the last line the {text} will be
|
||||
added as a new line.
|
||||
|
||||
If this succeeds, 0 is returned. If this fails (most likely
|
||||
because {lnum} is invalid) 1 is returned. Example: >
|
||||
because {lnum} is invalid) 1 is returned.
|
||||
|
||||
Example: >
|
||||
:call setline(5, strftime("%c"))
|
||||
|
||||
< When {text} is a |List| then line {lnum} and following lines
|
||||
will be set to the items in the list. Example: >
|
||||
:call setline(5, ['aaa', 'bbb', 'ccc'])
|
||||
@@ -6874,6 +6974,7 @@ setline({lnum}, {text}) *setline()*
|
||||
:for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
|
||||
: call setline(n, l)
|
||||
:endfor
|
||||
|
||||
< Note: The '[ and '] marks are not set.
|
||||
|
||||
setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()*
|
||||
@@ -6945,10 +7046,12 @@ setpos({expr}, {list})
|
||||
|winrestview()|.
|
||||
|
||||
setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
||||
Create or replace or add to the quickfix list using the items
|
||||
in {list}. Each item in {list} is a dictionary.
|
||||
Non-dictionary items in {list} are ignored. Each dictionary
|
||||
item can contain the following entries:
|
||||
Create or replace or add to the quickfix list.
|
||||
|
||||
When {what} is not present, use the items in {list}. Each
|
||||
item must be a dictionary. Non-dictionary items in {list} are
|
||||
ignored. Each dictionary item can contain the following
|
||||
entries:
|
||||
|
||||
bufnr buffer number; must be the number of a valid
|
||||
buffer
|
||||
@@ -6993,26 +7096,41 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
||||
freed.
|
||||
|
||||
If {action} is not present or is set to ' ', then a new list
|
||||
is created.
|
||||
is created. The new quickfix list is added after the current
|
||||
quickfix list in the stack and all the following lists are
|
||||
freed. To add a new quickfix list at the end of the stack,
|
||||
set "nr" in {what} to "$".
|
||||
|
||||
If the optional {what} dictionary argument is supplied, then
|
||||
only the items listed in {what} are set. The first {list}
|
||||
argument is ignored. The following items can be specified in
|
||||
{what}:
|
||||
context any Vim type can be stored as a context
|
||||
efm errorformat to use when parsing text from
|
||||
"lines". If this is not present, then the
|
||||
'errorformat' option value is used.
|
||||
id quickfix list identifier |quickfix-ID|
|
||||
items list of quickfix entries. Same as the {list}
|
||||
argument.
|
||||
lines use 'errorformat' to parse a list of lines and
|
||||
add the resulting entries to the quickfix list
|
||||
{nr} or {id}. Only a |List| value is supported.
|
||||
nr list number in the quickfix stack; zero
|
||||
means the current quickfix list and '$' means
|
||||
means the current quickfix list and "$" means
|
||||
the last quickfix list
|
||||
title quickfix list title text
|
||||
Unsupported keys in {what} are ignored.
|
||||
If the "nr" item is not present, then the current quickfix list
|
||||
is modified.
|
||||
is modified. When creating a new quickfix list, "nr" can be
|
||||
set to a value one greater than the quickfix stack size.
|
||||
When modifying a quickfix list, to guarantee that the correct
|
||||
list is modified, "id" should be used instead of "nr" to
|
||||
specify the list.
|
||||
|
||||
Examples: >
|
||||
:call setqflist([], 'r', {'title': 'My search'})
|
||||
:call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
|
||||
:call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]})
|
||||
<
|
||||
Returns zero for success, -1 for failure.
|
||||
|
||||
@@ -7054,16 +7172,17 @@ setreg({regname}, {value} [, {options}])
|
||||
:call setreg('a', "1\n2\n3", 'b5')
|
||||
|
||||
< This example shows using the functions to save and restore a
|
||||
register (note: you may not reliably restore register value
|
||||
without using the third argument to |getreg()| as without it
|
||||
newlines are represented as newlines AND Nul bytes are
|
||||
represented as newlines as well, see |NL-used-for-Nul|). >
|
||||
register: >
|
||||
:let var_a = getreg('a', 1, 1)
|
||||
:let var_amode = getregtype('a')
|
||||
....
|
||||
:call setreg('a', var_a, var_amode)
|
||||
< Note: you may not reliably restore register value
|
||||
without using the third argument to |getreg()| as without it
|
||||
newlines are represented as newlines AND Nul bytes are
|
||||
represented as newlines as well, see |NL-used-for-Nul|.
|
||||
|
||||
< You can also change the type of a register by appending
|
||||
You can also change the type of a register by appending
|
||||
nothing: >
|
||||
:call setreg('a', '', 'al')
|
||||
|
||||
@@ -7643,6 +7762,7 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
|
||||
"standout" "1" if standout
|
||||
"underline" "1" if underlined
|
||||
"undercurl" "1" if undercurled
|
||||
"strike" "1" if strikethrough
|
||||
|
||||
Example (echoes the color of the syntax item under the
|
||||
cursor): >
|
||||
@@ -7655,17 +7775,29 @@ synIDtrans({synID}) *synIDtrans()*
|
||||
":highlight link" are followed.
|
||||
|
||||
synconcealed({lnum}, {col}) *synconcealed()*
|
||||
The result is a List. The first item in the list is 0 if the
|
||||
character at the position {lnum} and {col} is not part of a
|
||||
concealable region, 1 if it is. The second item in the list is
|
||||
a string. If the first item is 1, the second item contains the
|
||||
text which will be displayed in place of the concealed text,
|
||||
depending on the current setting of 'conceallevel'. The third
|
||||
and final item in the list is a unique number representing the
|
||||
specific syntax region matched. This allows detection of the
|
||||
beginning of a new concealable region if there are two
|
||||
consecutive regions with the same replacement character.
|
||||
For an example use see $VIMRUNTIME/syntax/2html.vim .
|
||||
The result is a List with currently three items:
|
||||
1. The first item in the list is 0 if the character at the
|
||||
position {lnum} and {col} is not part of a concealable
|
||||
region, 1 if it is.
|
||||
2. The second item in the list is a string. If the first item
|
||||
is 1, the second item contains the text which will be
|
||||
displayed in place of the concealed text, depending on the
|
||||
current setting of 'conceallevel' and 'listchars'.
|
||||
3. The third and final item in the list is a number
|
||||
representing the specific syntax region matched in the
|
||||
line. When the character is not concealed the value is
|
||||
zero. This allows detection of the beginning of a new
|
||||
concealable region if there are two consecutive regions
|
||||
with the same replacement character. For an example, if
|
||||
the text is "123456" and both "23" and "45" are concealed
|
||||
and replace by the character "X", then:
|
||||
call returns ~
|
||||
synconcealed(lnum, 1) [0, '', 0]
|
||||
synconcealed(lnum, 2) [1, 'X', 1]
|
||||
synconcealed(lnum, 3) [1, 'X', 1]
|
||||
synconcealed(lnum, 4) [1, 'X', 2]
|
||||
synconcealed(lnum, 5) [1, 'X', 2]
|
||||
synconcealed(lnum, 6) [0, '', 0]
|
||||
|
||||
|
||||
synstack({lnum}, {col}) *synstack()*
|
||||
@@ -7874,6 +8006,203 @@ tempname() *tempname()* *temp-file-name*
|
||||
For MS-Windows forward slashes are used when the 'shellslash'
|
||||
option is set or when 'shellcmdflag' starts with '-'.
|
||||
|
||||
term_getaltscreen({buf}) *term_getaltscreen()*
|
||||
Returns 1 if the terminal of {buf} is using the alternate
|
||||
screen.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getattr({attr}, {what}) *term_getattr()*
|
||||
Given {attr}, a value returned by term_scrape() in the "attr"
|
||||
item, return whether {what} is on. {what} can be one of:
|
||||
bold
|
||||
italic
|
||||
underline
|
||||
strike
|
||||
reverse
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getcursor({buf}) *term_getcursor()*
|
||||
Get the cursor position of terminal {buf}. Returns a list with
|
||||
two numbers and a dictionary: [row, col, dict].
|
||||
|
||||
"row" and "col" are one based, the first screen cell is row
|
||||
1, column 1. This is the cursor position of the terminal
|
||||
itself, not of the Vim window.
|
||||
|
||||
"dict" can have these members:
|
||||
"visible" one when the cursor is visible, zero when it
|
||||
is hidden.
|
||||
"blink" one when the cursor is visible, zero when it
|
||||
is hidden.
|
||||
"shape" 1 for a block cursor, 2 for underline and 3
|
||||
for a vertical bar.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
list is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getjob({buf}) *term_getjob()*
|
||||
Get the Job associated with terminal window {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
Returns |v:null| when there is no job.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getline({buf}, {row}) *term_getline()*
|
||||
Get a line of text from the terminal window of {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
|
||||
The first line has {row} one. When {row} is "." the cursor
|
||||
line is used. When {row} is invalid an empty string is
|
||||
returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getscrolled({buf}) *term_getscrolled()*
|
||||
Return the number of lines that scrolled to above the top of
|
||||
terminal {buf}. This is the offset between the row number
|
||||
used for |term_getline()| and |getline()|, so that: >
|
||||
term_getline(buf, N)
|
||||
< is equal to: >
|
||||
`getline(N + term_getscrolled(buf))
|
||||
< (if that line exists).
|
||||
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getsize({buf}) *term_getsize()*
|
||||
Get the size of terminal {buf}. Returns a list with two
|
||||
numbers: [rows, cols]. This is the size of the terminal, not
|
||||
the window containing the terminal.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. Use an
|
||||
empty string for the current buffer. If the buffer does not
|
||||
exist or is not a terminal window, an empty list is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getstatus({buf}) *term_getstatus()*
|
||||
Get the status of terminal {buf}. This returns a comma
|
||||
separated list of these items:
|
||||
running job is running
|
||||
finished job has finished
|
||||
normal in Terminal-Normal mode
|
||||
One of "running" or "finished" is always present.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
string is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_gettitle({buf}) *term_gettitle()*
|
||||
Get the title of terminal {buf}. This is the title that the
|
||||
job in the terminal has set.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
string is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_gettty({buf} [, {input}]) *term_gettty()*
|
||||
Get the name of the controlling terminal associated with
|
||||
terminal window {buf}. {buf} is used as with |term_getsize()|.
|
||||
|
||||
When {input} is omitted or 0, return the name for writing
|
||||
(stdout). When {input} is 1 return the name for reading
|
||||
(stdin). On UNIX, both return same name.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_list() *term_list()*
|
||||
Return a list with the buffer numbers of all buffers for
|
||||
terminal windows.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_scrape({buf}, {row}) *term_scrape()*
|
||||
Get the contents of {row} of terminal screen of {buf}.
|
||||
For {buf} see |term_getsize()|.
|
||||
|
||||
The first line has {row} one. When {row} is "." the cursor
|
||||
line is used. When {row} is invalid an empty string is
|
||||
returned.
|
||||
|
||||
Return a List containing a Dict for each screen cell:
|
||||
"chars" character(s) at the cell
|
||||
"fg" foreground color as #rrggbb
|
||||
"bg" background color as #rrggbb
|
||||
"attr" attributes of the cell, use |term_getattr()|
|
||||
to get the individual flags
|
||||
"width" cell width: 1 or 2
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_sendkeys({buf}, {keys}) *term_sendkeys()*
|
||||
Send keystrokes {keys} to terminal {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
|
||||
{keys} are translated as key sequences. For example, "\<c-x>"
|
||||
means the character CTRL-X.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_setsize({buf}, {expr}) *term_setsize()*
|
||||
Not implemented yet.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_start({cmd}, {options}) *term_start()*
|
||||
Open a terminal window and run {cmd} in it.
|
||||
|
||||
Returns the buffer number of the terminal window. If {cmd}
|
||||
cannot be executed the window does open and shows an error
|
||||
message.
|
||||
If opening the window fails zero is returned.
|
||||
|
||||
{options} are similar to what is used for |job_start()|, see
|
||||
|job-options|. However, not all options can be used. These
|
||||
are supported:
|
||||
all timeout options
|
||||
"stoponexit"
|
||||
"callback", "out_cb", "err_cb"
|
||||
"exit_cb", "close_cb"
|
||||
"in_io", "in_top", "in_bot", "in_name", "in_buf"
|
||||
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
|
||||
"err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
|
||||
However, at least one of stdin, stdout or stderr must be
|
||||
connected to the terminal. When I/O is connected to the
|
||||
terminal then the callback function for that part is not used.
|
||||
|
||||
There are extra options:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the command name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termsize'
|
||||
"vertical" split the window vertically
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
cannot be |abandon|ed
|
||||
"hidden" do not open a window
|
||||
"term_finish" What to do when the job is finished:
|
||||
"close": close any windows
|
||||
"open": open window if needed
|
||||
Note that "open" can be interruptive.
|
||||
See |term++close| and |term++open|.
|
||||
"term_opencmd" command to use for opening the window when
|
||||
"open" is used for "term_finish"; must
|
||||
have "%d" where the buffer number goes,
|
||||
e.g. "10split|buffer %d"; when not
|
||||
specified "botright sbuf %d" is used
|
||||
"eof_chars" Text to send after all buffer lines were
|
||||
written to the terminal. When not set
|
||||
CTRL-D is used on MS-Windows. For Python
|
||||
use CTRL-Z or "exit()". For a shell use
|
||||
"exit". A CR is always added.
|
||||
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_wait({buf} [, {time}]) *term_wait()*
|
||||
Wait for pending updates of {buf} to be handled.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{time} is how long to wait for updates to arrive in msec. If
|
||||
not set then 10 msec will be used.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
|
||||
This is for testing: If the memory allocation with {id} is
|
||||
@@ -7885,6 +8214,11 @@ test_autochdir() *test_autochdir()*
|
||||
Set a flag to enable the effect of 'autochdir' before Vim
|
||||
startup has finished.
|
||||
|
||||
test_feedinput({string}) *test_feedinput()*
|
||||
Characters in {string} are queued for processing as if they
|
||||
were typed by the user. This uses a low level input buffer.
|
||||
This function works only when with |+unix| or GUI is running.
|
||||
|
||||
test_garbagecollect_now() *test_garbagecollect_now()*
|
||||
Like garbagecollect(), but executed right away. This must
|
||||
only be called directly to avoid any structure to exist
|
||||
@@ -7930,8 +8264,19 @@ test_override({name}, {val}) *test_override()*
|
||||
name effect when {val} is non-zero ~
|
||||
redraw disable the redrawing() function
|
||||
char_avail disable the char_avail() function
|
||||
starting reset the "starting" variable, see below
|
||||
ALL clear all overrides ({val} is not used)
|
||||
|
||||
"starting" is to be used when a test should behave like
|
||||
startup was done. Since the tests are run by sourcing a
|
||||
script the "starting" variable is non-zero. This is usually a
|
||||
good thing (tests run faster), but sometimes changes behavior
|
||||
in a way that the test doesn't work properly.
|
||||
When using: >
|
||||
call test_override('starting', 1)
|
||||
< The value of "starting" is saved. It is restored by: >
|
||||
call test_override('starting', 0)
|
||||
|
||||
test_settime({expr}) *test_settime()*
|
||||
Set the time Vim uses internally. Currently only used for
|
||||
timestamps in the history, as they are used in viminfo, and
|
||||
@@ -7993,6 +8338,10 @@ timer_start({time}, {callback} [, {options}])
|
||||
"repeat" Number of times to repeat calling the
|
||||
callback. -1 means forever. When not present
|
||||
the callback will be called once.
|
||||
If the timer causes an error three times in a
|
||||
row the repeat is cancelled. This avoids that
|
||||
Vim becomes unusable because of all the error
|
||||
messages.
|
||||
|
||||
Example: >
|
||||
func MyHandler(timer)
|
||||
@@ -8227,7 +8576,7 @@ win_getid([{win} [, {tab}]]) *win_getid()*
|
||||
Get the |window-ID| for the specified window.
|
||||
When {win} is missing use the current window.
|
||||
With {win} this is the window number. The top window has
|
||||
number 1.
|
||||
number 1. Use `win_getid(winnr())` for the current window.
|
||||
Without {tab} use the current tab, otherwise the tab with
|
||||
number {tab}. The first tab has number one.
|
||||
Return zero if the window cannot be found.
|
||||
@@ -8267,6 +8616,7 @@ winheight({nr}) *winheight()*
|
||||
When {nr} is zero, the height of the current window is
|
||||
returned. When window {nr} doesn't exist, -1 is returned.
|
||||
An existing window always has a height of zero or more.
|
||||
This excludes any window toolbar line.
|
||||
Examples: >
|
||||
:echo "The current window has " . winheight(0) . " lines."
|
||||
<
|
||||
@@ -8374,7 +8724,7 @@ wordcount() *wordcount()*
|
||||
(only in Visual mode)
|
||||
visual_chars Number of chars visually selected
|
||||
(only in Visual mode)
|
||||
visual_words Number of chars visually selected
|
||||
visual_words Number of words visually selected
|
||||
(only in Visual mode)
|
||||
|
||||
|
||||
@@ -8583,6 +8933,7 @@ tag_any_white Compiled with support for any white characters in tags
|
||||
files |tag-any-white|.
|
||||
tcl Compiled with Tcl interface.
|
||||
termguicolors Compiled with true color in terminal support.
|
||||
terminal Compiled with |terminal| support.
|
||||
terminfo Compiled with terminfo instead of termcap.
|
||||
termresponse Compiled with support for |t_RV| and |v:termresponse|.
|
||||
textobjects Compiled with support for |text-objects|.
|
||||
@@ -8593,7 +8944,7 @@ title Compiled with window title support |'title'|.
|
||||
toolbar Compiled with support for |gui-toolbar|.
|
||||
ttyin input is a terminal (tty)
|
||||
ttyout output is a terminal (tty)
|
||||
unix Unix version of Vim.
|
||||
unix Unix version of Vim. *+unix*
|
||||
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
|
||||
user_commands User-defined commands.
|
||||
vertsplit Compiled with vertically split windows |:vsplit|.
|
||||
@@ -8719,6 +9070,9 @@ See |:verbose-cmd| for more information.
|
||||
not used an error message is given. When [!] is used,
|
||||
an existing function is silently replaced. Unless it
|
||||
is currently being executed, that is an error.
|
||||
NOTE: Use ! wisely. If used without care it can cause
|
||||
an existing function to be replaced unexpectedly,
|
||||
which is hard to debug.
|
||||
|
||||
For the {arguments} see |function-argument|.
|
||||
|
||||
@@ -8768,7 +9122,7 @@ See |:verbose-cmd| for more information.
|
||||
implies that the effect of |:nohlsearch| is undone
|
||||
when the function returns.
|
||||
|
||||
*:endf* *:endfunction* *E126* *E193* *E946*
|
||||
*:endf* *:endfunction* *E126* *E193* *W22*
|
||||
:endf[unction] [argument]
|
||||
The end of a function definition. Best is to put it
|
||||
on a line by its own, without [argument].
|
||||
@@ -8777,12 +9131,16 @@ See |:verbose-cmd| for more information.
|
||||
| command command to execute next
|
||||
\n command command to execute next
|
||||
" comment always ignored
|
||||
anything else ignored, unless 'verbose' is
|
||||
non-zero
|
||||
anything else ignored, warning given when
|
||||
'verbose' is non-zero
|
||||
The support for a following command was added in Vim
|
||||
8.0.0654, before that any argument was silently
|
||||
ignored.
|
||||
|
||||
To be able to define a function inside an `:execute`
|
||||
command, use line breaks instead of |:bar|: >
|
||||
:exe "func Foo()\necho 'foo'\nendfunc"
|
||||
<
|
||||
*:delf* *:delfunction* *E130* *E131* *E933*
|
||||
:delf[unction][!] {name}
|
||||
Delete function {name}.
|
||||
|
||||
@@ -116,13 +116,13 @@ g:rustfmt_options~
|
||||
|
||||
*g:rust_playpen_url*
|
||||
g:rust_playpen_url~
|
||||
Set this option to override the url for the playpen to use: >
|
||||
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~
|
||||
Set this option to override the url for the url shortener: >
|
||||
Set this option to override the URL for the URL shortener: >
|
||||
let g:rust_shortener_url = 'https://is.gd/'
|
||||
<
|
||||
|
||||
@@ -199,7 +199,7 @@ COMMANDS *rust-commands*
|
||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||
"https://play.rust-lang.org/".
|
||||
|
||||
|g:rust_shortener_url| is the base url for the shorterner, by
|
||||
|g:rust_shortener_url| is the base URL for the shorterner, by
|
||||
default "https://is.gd/"
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 8.0. Last change: 2014 Mar 08
|
||||
*gui.txt* For Vim version 8.0. Last change: 2017 Sep 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -67,7 +67,7 @@ When the GUI starts up initializations are carried out, in this order:
|
||||
executed as an Ex command.
|
||||
- If the user gvimrc file exists, it is sourced. The name of this file is
|
||||
normally "$HOME/.gvimrc". You can check this with ":version".
|
||||
- For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
|
||||
- For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
|
||||
- When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
|
||||
versa.
|
||||
The name of the first file found is stored in $MYGVIMRC, unless it was
|
||||
@@ -79,7 +79,8 @@ When the GUI starts up initializations are carried out, in this order:
|
||||
and DOS/Win32 "_gvimrc" is tried first.
|
||||
|
||||
NOTE: All but the first one are not carried out if Vim was started with
|
||||
"-u NONE" and no "-U" argument was given, or when started with "-U NONE".
|
||||
"-u NONE" or "-u DEFAULTS" and no "-U" argument was given, or when started
|
||||
with "-U NONE".
|
||||
|
||||
All this happens AFTER the normal Vim initializations, like reading your
|
||||
.vimrc file. See |initialization|.
|
||||
@@ -783,10 +784,40 @@ In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
|
||||
from the main menu bar. You must then use the |:popup| or |:tearoff| command
|
||||
to display it.
|
||||
|
||||
*window-toolbar* *WinBar*
|
||||
Each window can have a local toolbar. This uses the first line of the window,
|
||||
thus reduces the space for the text by one line. The items in the toolbar
|
||||
must start with "WinBar".
|
||||
|
||||
Only text can be used. When using Unicode, special characters can be used to
|
||||
make the items look like icons.
|
||||
|
||||
If the items do not fit then the last ones cannot be used. The toolbar does
|
||||
not wrap.
|
||||
|
||||
Note that Vim may be in any mode when executing these commands. The menu
|
||||
should be defined for Normal mode and will be executed without changing the
|
||||
current mode. Thus if the current window is in Visual mode and the menu
|
||||
command does not intentionally change the mode, Vim will remain in Visual
|
||||
mode. Best is to use `:nnoremenu` to avoid side effects.
|
||||
|
||||
Example for debugger tools: >
|
||||
nnoremenu 1.10 WinBar.Step :Step<CR>
|
||||
nnoremenu 1.20 WinBar.Next :Next<CR>
|
||||
nnoremenu 1.30 WinBar.Finish :Finish<CR>
|
||||
nnoremenu 1.40 WinBar.Cont :Continue<CR>
|
||||
<
|
||||
The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
|
||||
|
||||
When splitting the window the window toolbar is not copied to the new window.
|
||||
|
||||
*popup-menu*
|
||||
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
|
||||
special menu "PopUp". This is the menu that is displayed when the right mouse
|
||||
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
|
||||
Example: >
|
||||
nnoremenu 1.40 PopUp.&Paste "+gP
|
||||
menu PopUp
|
||||
|
||||
|
||||
5.3 Showing What Menus Are Mapped To *showing-menus*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 8.0. Last change: 2016 Sep 12
|
||||
*gui_x11.txt* For Vim version 8.0. Last change: 2017 Jul 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -279,8 +279,9 @@ For CDE "dtwm" (a derivative of Motif) add this line in the .Xdefaults: >
|
||||
For "mwm" (Motif window manager) the line would be: >
|
||||
Mwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm
|
||||
|
||||
Mouse Pointers Available in X11 *X11_mouse_shapes*
|
||||
|
||||
Mouse Pointers Available in X11 ~
|
||||
*X11_mouse_shapes*
|
||||
By using the |'mouseshape'| option, the mouse pointer can be automatically
|
||||
changed whenever Vim enters one of its various modes (e.g., Insert or
|
||||
Command). Currently, the available pointers are:
|
||||
@@ -354,6 +355,8 @@ to the GTK documentation, however little there is, on how to do this.
|
||||
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
|
||||
for more information.
|
||||
|
||||
|
||||
Tooltip Colors ~
|
||||
*gtk-tooltip-colors*
|
||||
Example, which sets the tooltip colors to black on light-yellow: >
|
||||
|
||||
@@ -372,15 +375,122 @@ distribution.
|
||||
For GTK+ 3, an effect similar to the above can be obtained by adding the
|
||||
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
|
||||
$HOME/.config/gtk-3.0/gtk.css):
|
||||
>
|
||||
|
||||
For GTK+ 3 < 3.20: >
|
||||
|
||||
.tooltip {
|
||||
background-color: #ffffcc;
|
||||
color: #000000;
|
||||
}
|
||||
<
|
||||
For GTK+ 3 >= 3.20: >
|
||||
|
||||
Using Vim as a GTK+ plugin *gui-gtk-socketid*
|
||||
tooltip {
|
||||
background-color: #ffffcc;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: #2e3436;
|
||||
}
|
||||
<
|
||||
|
||||
A Quick Look at GTK+ CSS ~
|
||||
*gtk-css*
|
||||
The contents of this subsection apply to GTK+ 3.20 or later which provides
|
||||
stable support for GTK+ CSS:
|
||||
|
||||
https://developer.gnome.org/gtk3/stable/theming.html
|
||||
|
||||
GTK+ uses CSS for styling and layout of widgets. In this subsection, we'll
|
||||
have a quick look at GTK+ CSS through simple, illustrative examples.
|
||||
|
||||
Example 1. Empty Space Adjustment ~
|
||||
|
||||
By default, the toolbar and the tabline of the GTK+ 3 GUI are somewhat larger
|
||||
than those of the GTK+ 2 GUI. Some people may want to make them look similar
|
||||
to the GTK+ 2 GUI in size.
|
||||
|
||||
To do that, we'll try reducing empty space around icons and labels that looks
|
||||
apparently superfluous.
|
||||
|
||||
Add the following lines to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
|
||||
$HOME/.config/gtk-3.0/gtk.css): >
|
||||
|
||||
toolbar button {
|
||||
margin-top: -2px;
|
||||
margin-right: 0px;
|
||||
margin-bottom: -2px;
|
||||
margin-left: 0px;
|
||||
|
||||
padding-top: 0px;
|
||||
padding-right: 0px;
|
||||
padding-bottom: 0px;
|
||||
padding-left: 0px
|
||||
}
|
||||
|
||||
notebook tab {
|
||||
margin-top: -1px;
|
||||
margin-right: 3px;
|
||||
margin-bottom: -1px;
|
||||
margin-left: 3px;
|
||||
|
||||
padding-top: 0px;
|
||||
padding-right: 0px;
|
||||
padding-bottom: 0px;
|
||||
padding-left: 0px
|
||||
}
|
||||
<
|
||||
Since it's a CSS, they can be rewritten using shorthand: >
|
||||
|
||||
toolbar button {
|
||||
margin: -2px 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
notebook tab {
|
||||
margin: -1px 3px;
|
||||
padding: 0px
|
||||
}
|
||||
<
|
||||
Note: You might want to use 'toolbariconsize' to adjust the icon size, too.
|
||||
|
||||
Note: Depending on the icon theme and/or the font in use, some extra tweaks
|
||||
may be needed for a satisfactory result.
|
||||
|
||||
Note: In addition to margin and padding, you can use border. For details,
|
||||
refer to the box model of CSS, e.g.,
|
||||
|
||||
https://www.w3schools.com/css/css_boxmodel.asp
|
||||
|
||||
Example 2. More Than Just Colors ~
|
||||
|
||||
GTK+ CSS supports gradients as well: >
|
||||
|
||||
tooltip {
|
||||
background-image: -gtk-gradient(linear,
|
||||
0 0, 0 1,
|
||||
color-stop(0, #344752),
|
||||
color-stop(0.5, #546772),
|
||||
color-stop(1, #243742));
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: #f3f3f3;
|
||||
}
|
||||
<
|
||||
Gradients can be used to make a GUI element visually distinguishable from
|
||||
others without relying on high contrast. Accordingly, effective use of them is
|
||||
a useful technique to give a theme a sense of unity in color and luminance.
|
||||
|
||||
Note: Theming can be difficult since it must make every application look
|
||||
equally good; making a single application more charming often gets others
|
||||
unexpectedly less attractive or even deteriorates their usability. Keep this
|
||||
in mind always when you try improving a theme.
|
||||
|
||||
|
||||
Using Vim as a GTK+ plugin ~
|
||||
*gui-gtk-socketid*
|
||||
When the GTK+ version of Vim starts up normally, it creates its own top level
|
||||
window (technically, a 'GtkWindow'). GTK+ provides an embedding facility with
|
||||
its GtkSocket and GtkPlug widgets. If one GTK+ application creates a
|
||||
@@ -425,8 +535,8 @@ Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build. The
|
||||
functionality mentioned above is consolidated in GTK+ 3.
|
||||
|
||||
|
||||
GNOME session support *gui-gnome-session* *gnome-session*
|
||||
|
||||
GNOME session support ~
|
||||
*gui-gnome-session* *gnome-session*
|
||||
On logout, Vim shows the well-known exit confirmation dialog if any buffers
|
||||
are modified. Clicking [Cancel] will stop the logout process. Otherwise the
|
||||
current session is stored to disk by using the |:mksession| command, and
|
||||
@@ -563,7 +673,7 @@ Of these three, Vim uses PRIMARY when reading and writing the "* register
|
||||
register. Vim does not access the SECONDARY selection.
|
||||
|
||||
Examples: (assuming the default option values)
|
||||
- Select an URL in Visual mode in Vim. Go to your browser and click the
|
||||
- Select a URL in Visual mode in Vim. Go to your browser and click the
|
||||
middle mouse button in the URL text field. The selected text will be
|
||||
inserted (hopefully!). Note: in Firefox you can set the
|
||||
middlemouse.contentLoadURL preference to true in about:config, then the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2011 Jun 12
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2017 Jun 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Andy Kahn
|
||||
@@ -91,9 +91,10 @@ suggested use.)
|
||||
2. Cscope related commands *cscope-commands*
|
||||
|
||||
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
|
||||
All cscope commands are accessed through suboptions to the main cscope
|
||||
command ":cscope". The shortest abbreviation is ":cs". The ":scscope"
|
||||
command does the same and also splits the window (short: "scs").
|
||||
All cscope commands are accessed through suboptions to the cscope commands.
|
||||
`:cscope` or `:cs` is the main command
|
||||
`:scscope` or `:scs` does the same and splits the window
|
||||
`:lcscope` or `:lcs` uses the location list, see |:lcscope|
|
||||
|
||||
The available subcommands are:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2017 Oct 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sergey Khorev
|
||||
@@ -278,12 +278,15 @@ When you don't use the MzScheme interface you don't need them, thus you can
|
||||
use Vim without these DLL files.
|
||||
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
||||
startup if possible.
|
||||
startup if possible. This may make Vim startup slower.
|
||||
|
||||
To use the MzScheme interface the MzScheme DLLs must be in your search path.
|
||||
In a console window type "path" to see what directories are used.
|
||||
|
||||
The names of the DLLs must match the MzScheme version Vim was compiled with.
|
||||
On MS-Windows the options 'mzschemedll' and 'mzschemegcdll' are used for the
|
||||
name of the library to load. The initial value is specified at build time.
|
||||
|
||||
The version of the DLL must match the MzScheme version Vim was compiled with.
|
||||
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
||||
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
|
||||
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
||||
|
||||
@@ -894,10 +894,10 @@ On Ubuntu you will want to install these packages for Python 2:
|
||||
python-dev
|
||||
For Python 3:
|
||||
python3
|
||||
pytyon3-dev
|
||||
python3-dev
|
||||
For Python 3.6:
|
||||
python3.6
|
||||
pytyon3.6-dev
|
||||
python3.6-dev
|
||||
|
||||
If you have more than one version of Python 3, you need to link python3 to the
|
||||
one you prefer, before running configure.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.0. Last change: 2017 Apr 22
|
||||
*index.txt* For Vim version 8.0. Last change: 2017 Aug 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -528,8 +528,11 @@ tag command action in Normal mode ~
|
||||
|CTRL-W_CTRL-]| CTRL-W CTRL-] same as "CTRL-W ]"
|
||||
|CTRL-W_CTRL-^| CTRL-W CTRL-^ same as "CTRL-W ^"
|
||||
|CTRL-W_CTRL-_| CTRL-W CTRL-_ same as "CTRL-W _"
|
||||
|CTRL-W_quote| CTRL-W " terminal window: paste register
|
||||
|CTRL-W_+| CTRL-W + increase current window height N lines
|
||||
|CTRL-W_-| CTRL-W - decrease current window height N lines
|
||||
|CTRL-W_.| CTRL-W . terminal window: type CTRL-W
|
||||
|CTRL-W_:| CTRL-W : same as |:|, edit a command line
|
||||
|CTRL-W_<| CTRL-W < decrease current window width N columns
|
||||
|CTRL-W_=| CTRL-W = make all windows the same height & width
|
||||
|CTRL-W_>| CTRL-W > increase current window width N columns
|
||||
@@ -537,6 +540,7 @@ tag command action in Normal mode ~
|
||||
|CTRL-W_J| CTRL-W J move current window to the very bottom
|
||||
|CTRL-W_K| CTRL-W K move current window to the very top
|
||||
|CTRL-W_L| CTRL-W L move current window to the far right
|
||||
|CTRL-W_N| CTRL-W N terminal window: go to Terminal Normal mode
|
||||
|CTRL-W_P| CTRL-W P go to preview window
|
||||
|CTRL-W_R| CTRL-W R rotate windows upwards N times
|
||||
|CTRL-W_S| CTRL-W S same as "CTRL-W s"
|
||||
@@ -1573,18 +1577,23 @@ tag command action ~
|
||||
|:tcldo| :tcld[o] execute Tcl command for each line
|
||||
|:tclfile| :tclf[ile] execute Tcl script file
|
||||
|:tearoff| :te[aroff] tear-off a menu
|
||||
|:terminal| :ter[minal] open a terminal window
|
||||
|:tfirst| :tf[irst] jump to first matching tag
|
||||
|:throw| :th[row] throw an exception
|
||||
|:tjump| :tj[ump] like ":tselect", but jump directly when there
|
||||
is only one match
|
||||
|:tlast| :tl[ast] jump to last matching tag
|
||||
|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
|
||||
|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|
||||
|:tmenu| :tm[enu] define menu tooltip
|
||||
|:tnext| :tn[ext] jump to next matching tag
|
||||
|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|
||||
|:topleft| :to[pleft] make split window appear at top or far left
|
||||
|:tprevious| :tp[revious] jump to previous matching tag
|
||||
|:trewind| :tr[ewind] jump to first matching tag
|
||||
|:try| :try execute commands, abort on error or exception
|
||||
|:tselect| :ts[elect] list matching tags and select one
|
||||
|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|
||||
|:tunmenu| :tu[nmenu] remove menu tooltip
|
||||
|:undo| :u[ndo] undo last change(s)
|
||||
|:undojoin| :undoj[oin] join next change with previous undo block
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.0. Last change: 2016 Sep 24
|
||||
*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -143,9 +143,14 @@ There are two ways to report bugs, both work:
|
||||
|
||||
Please be brief; all the time that is spent on answering mail is subtracted
|
||||
from the time that is spent on improving Vim! Always give a reproducible
|
||||
example and try to find out which settings or other things influence the
|
||||
appearance of the bug. Try different machines, if possible. Send me patches
|
||||
if you can!
|
||||
example and try to find out which settings or other things trigger the bug.
|
||||
|
||||
Preferably start Vim with: >
|
||||
vim --clean -u reproduce.vim
|
||||
Where reproduce.vim is a script that reproduces the problem. Try different
|
||||
machines, if relevant (is this an MS-Windows specific bug perhaps?).
|
||||
|
||||
Send me patches if you can!
|
||||
|
||||
It will help to include information about the version of Vim you are using and
|
||||
your setup. You can get the information with this command: >
|
||||
@@ -259,6 +264,10 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Juergen Weigert Lattice version, AUX improvements, UNIX and
|
||||
MS-DOS ports, autoconf
|
||||
Stefan 'Sec' Zehl Maintainer of vim.org
|
||||
Yasuhiro Matsumoto many MS-Windows improvements
|
||||
Ken Takata fixes and features
|
||||
Kazunobu Kuriyama GTK 3
|
||||
Christian Brabandt many fixes, features, user support, etc.
|
||||
|
||||
I wish to thank all the people that sent me bug reports and suggestions. The
|
||||
list is too long to mention them all here. Vim would not be the same without
|
||||
@@ -525,7 +534,7 @@ examples and use them directly. Or type them literally, including the '<' and
|
||||
==============================================================================
|
||||
5. Modes, introduction *vim-modes-intro* *vim-modes*
|
||||
|
||||
Vim has six BASIC modes:
|
||||
Vim has seven BASIC modes:
|
||||
|
||||
*Normal* *Normal-mode* *command-mode*
|
||||
Normal mode In Normal mode you can enter all the normal editor
|
||||
@@ -561,7 +570,12 @@ Ex mode Like Command-line mode, but after entering a command
|
||||
you remain in Ex mode. Very limited editing of the
|
||||
command line. |Ex-mode|
|
||||
|
||||
There are six ADDITIONAL modes. These are variants of the BASIC modes:
|
||||
Terminal-Job mode Interacting with a job in a terminal window. Typed
|
||||
keys go to the job and the job output is displayed in
|
||||
the terminal window. See |terminal| about how to
|
||||
switch to other modes.
|
||||
|
||||
There are seven ADDITIONAL modes. These are variants of the BASIC modes:
|
||||
|
||||
*Operator-pending* *Operator-pending-mode*
|
||||
Operator-pending mode This is like Normal mode, but after an operator
|
||||
@@ -587,6 +601,10 @@ Insert Normal mode Entered when CTRL-O given in Insert mode. This is
|
||||
If the 'showmode' option is on "-- (insert) --" is
|
||||
shown at the bottom of the window.
|
||||
|
||||
Terminal-Normal mode Using Normal mode in a terminal window. Making
|
||||
changes is impossible. Use an insert command, such as
|
||||
"a" or "i", to return to Terminal-Job mode.
|
||||
|
||||
Insert Visual mode Entered when starting a Visual selection from Insert
|
||||
mode, e.g., by using CTRL-O and then "v", "V" or
|
||||
CTRL-V. When the Visual selection ends, Vim returns
|
||||
@@ -661,6 +679,8 @@ Normal mode from any other mode. This can be used to make sure Vim is in
|
||||
Normal mode, without causing a beep like <Esc> would. However, this does not
|
||||
work in Ex mode. When used after a command that takes an argument, such as
|
||||
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
|
||||
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode for only
|
||||
one command, see |t_CTRL-\_CTRL-N|.
|
||||
|
||||
*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
|
||||
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when
|
||||
@@ -823,10 +843,12 @@ by Vim. {Vi: not ok}
|
||||
==============================================================================
|
||||
8. Definitions *definitions*
|
||||
|
||||
buffer Contains lines of text, usually read from a file.
|
||||
screen The whole area that Vim uses to work in. This can be
|
||||
a terminal emulator window. Also called "the Vim
|
||||
window".
|
||||
window A view on a buffer.
|
||||
window A view on a buffer. There can be multiple windows for
|
||||
one buffer.
|
||||
|
||||
A screen contains one or more windows, separated by status lines and with the
|
||||
command line at the bottom.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.0. Last change: 2017 May 30
|
||||
*map.txt* For Vim version 8.0. Last change: 2017 Sep 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -29,7 +29,7 @@ manual.
|
||||
1. Key mapping *key-mapping* *mapping* *macro*
|
||||
|
||||
Key mapping is used to change the meaning of typed keys. The most common use
|
||||
is to define a sequence commands for a function key. Example: >
|
||||
is to define a sequence of commands for a function key. Example: >
|
||||
|
||||
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
|
||||
|
||||
@@ -55,6 +55,7 @@ modes.
|
||||
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
|
||||
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
|
||||
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
|
||||
:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
|
||||
Map the key sequence {lhs} to {rhs} for the modes
|
||||
where the map command applies. The result, including
|
||||
{rhs}, is then further scanned for mappings. This
|
||||
@@ -71,6 +72,7 @@ modes.
|
||||
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap*
|
||||
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
|
||||
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap*
|
||||
:tno[remap] {lhs} {rhs} |mapmode-t| *:tno* *:tnoremap*
|
||||
Map the key sequence {lhs} to {rhs} for the modes
|
||||
where the map command applies. Disallow mapping of
|
||||
{rhs}, to avoid nested and recursive mappings. Often
|
||||
@@ -87,6 +89,7 @@ modes.
|
||||
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
|
||||
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
|
||||
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
|
||||
:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
|
||||
Remove the mapping of {lhs} for the modes where the
|
||||
map command applies. The mapping may remain defined
|
||||
for other modes where it applies.
|
||||
@@ -105,6 +108,7 @@ modes.
|
||||
:imapc[lear] |mapmode-i| *:imapc* *:imapclear*
|
||||
:lmapc[lear] |mapmode-l| *:lmapc* *:lmapclear*
|
||||
:cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear*
|
||||
:tmapc[lear] |mapmode-t| *:tmapc* *:tmapclear*
|
||||
Remove ALL mappings for the modes where the map
|
||||
command applies. {not in Vi}
|
||||
Use the <buffer> argument to remove buffer-local
|
||||
@@ -121,6 +125,7 @@ modes.
|
||||
:im[ap] |mapmode-i|
|
||||
:lm[ap] |mapmode-l|
|
||||
:cm[ap] |mapmode-c|
|
||||
:tma[p] |mapmode-t|
|
||||
List all key mappings for the modes where the map
|
||||
command applies. Note that ":map" and ":map!" are
|
||||
used most often, because they include the other modes.
|
||||
@@ -135,6 +140,7 @@ modes.
|
||||
:im[ap] {lhs} |mapmode-i| *:imap_l*
|
||||
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
|
||||
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
|
||||
:tma[p] {lhs} |mapmode-t| *:tmap_l*
|
||||
List the key mappings for the key sequences starting
|
||||
with {lhs} in the modes where the map command applies.
|
||||
{not in Vi}
|
||||
@@ -318,6 +324,7 @@ Overview of which map command works in which mode. More details below.
|
||||
:imap :inoremap :iunmap Insert
|
||||
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
|
||||
:cmap :cnoremap :cunmap Command-line
|
||||
:tmap :tnoremap :tunmap Terminal-Job
|
||||
|
||||
|
||||
COMMANDS MODES ~
|
||||
@@ -358,6 +365,10 @@ Therefore the ":map" and ":map!" commands enter and display mappings for
|
||||
several modes. In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
|
||||
":imap" commands to enter mappings for each mode separately.
|
||||
|
||||
*mapmode-t*
|
||||
The terminal mappings are used in a terminal window, when typing keys for the
|
||||
job running in the terminal. See |terminal-typing|.
|
||||
|
||||
*omap-info*
|
||||
Operator-pending mappings can be used to define a movement command that can be
|
||||
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
|
||||
@@ -418,6 +429,7 @@ When listing mappings the characters in the first two columns are:
|
||||
i Insert
|
||||
l ":lmap" mappings for Insert, Command-line and Lang-Arg
|
||||
c Command-line
|
||||
t Terminal-Job
|
||||
|
||||
Just before the {rhs} a special character can appear:
|
||||
* indicates that it is not remappable
|
||||
@@ -1279,6 +1291,7 @@ completion can be enabled:
|
||||
-complete=highlight highlight groups
|
||||
-complete=history :history suboptions
|
||||
-complete=locale locale names (as output of locale -a)
|
||||
-complete=mapclear buffer argument
|
||||
-complete=mapping mapping name
|
||||
-complete=menu menus
|
||||
-complete=messages |:messages| suboptions
|
||||
@@ -1414,6 +1427,8 @@ The valid escape sequences are
|
||||
<line1> The starting line of the command range.
|
||||
*<line2>*
|
||||
<line2> The final line of the command range.
|
||||
*<range>*
|
||||
<range> The number of items in the command range: 0, 1 or 2
|
||||
*<count>*
|
||||
<count> Any count supplied (as described for the '-range'
|
||||
and '-count' attributes).
|
||||
|
||||
@@ -832,6 +832,9 @@ Use the RPM or port for your system.
|
||||
|
||||
Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
|
||||
|Root|.
|
||||
When compiled with |+GUI_GTK| feature, GUI Vim supports two styles,
|
||||
|OnTheSpot| and |OverTheSpot|. You can select the style with the 'imstyle'
|
||||
option.
|
||||
|
||||
*. on-the-spot *OnTheSpot*
|
||||
Preedit Area and Status Area are performed by the client application in
|
||||
|
||||
@@ -463,12 +463,6 @@ changed. To avoid the message reset the 'warn' option.
|
||||
Something inside Vim went wrong and resulted in a NULL pointer. If you know
|
||||
how to reproduce this problem, please report it. |bugs|
|
||||
|
||||
*E172* >
|
||||
Only one file name allowed
|
||||
|
||||
The ":edit" command only accepts one file name. When you want to specify
|
||||
several files for editing use ":next" |:next|.
|
||||
|
||||
*E41* *E82* *E83* *E342* >
|
||||
Out of memory!
|
||||
Out of memory! (allocating {number} bytes)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Jun 18
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Sep 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -417,12 +417,23 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
|
||||
contain non-id characters then. Note that if you want to use this for the
|
||||
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
|
||||
|
||||
On MS-Windows, if $HOME is not defined as an environment variable, then
|
||||
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
|
||||
|
||||
NOTE: expanding environment variables and "~/" is only done with the ":set"
|
||||
command, not when assigning a value to an option with ":let".
|
||||
|
||||
*$HOME-windows*
|
||||
On MS-Windows, if $HOME is not defined as an environment variable, then
|
||||
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
|
||||
If $HOMEDRIVE is not set then $USERPROFILE is used.
|
||||
|
||||
This expanded value is not exported to the environment, this matters when
|
||||
running an external command: >
|
||||
:echo system('set | findstr ^HOME=')
|
||||
and >
|
||||
:echo luaeval('os.getenv("HOME")')
|
||||
should echo nothing (an empty string) despite exists('$HOME') being true.
|
||||
When setting $HOME to a non-empty string it will be exported to the
|
||||
subprocesses.
|
||||
|
||||
|
||||
Note the maximum length of an expanded option is limited. How much depends on
|
||||
the system, mostly it is something like 256 or 1024 characters.
|
||||
@@ -721,7 +732,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
Vim may set this option automatically at startup time when Vim is
|
||||
compiled with the |+termresponse| feature and if |t_u7| is set to the
|
||||
escape sequence to request cursor position report.
|
||||
escape sequence to request cursor position report. The response can
|
||||
be found in |v:termu7resp|.
|
||||
|
||||
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
|
||||
'antialias' 'anti' boolean (default: off)
|
||||
@@ -869,11 +881,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Vim will guess the value. In the GUI this should work correctly,
|
||||
in other cases Vim might not be able to guess the right value.
|
||||
|
||||
When the t_BG option is set, Vim will use it to request the background
|
||||
When the |t_RB| option is set, Vim will use it to request the background
|
||||
color from the terminal. If the returned RGB value is dark/light and
|
||||
'background' is not dark/light, 'background' will be set and the
|
||||
screen is redrawn. This may have side effects, make t_BG empty in
|
||||
your .vimrc if you suspect this problem.
|
||||
your .vimrc if you suspect this problem. The response to |t_RB| can
|
||||
be found in |v:termrgbresp|.
|
||||
|
||||
When starting the GUI, the default value for 'background' will be
|
||||
"light". When the value is not set in the .gvimrc, and Vim detects
|
||||
@@ -889,6 +902,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
|
||||
background. Otherwise the default is "light".
|
||||
|
||||
The |:terminal| command and the |term_start()| function use the
|
||||
'background' value to decide whether the terminal window will start
|
||||
with a white or black background.
|
||||
|
||||
Normally this option would be set in the .vimrc file. Possibly
|
||||
depending on the terminal name. Example: >
|
||||
:if &term == "pcterm"
|
||||
@@ -1319,8 +1336,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'bufhidden' 'bh' string (default: "")
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+quickfix|
|
||||
feature}
|
||||
This option specifies what happens when a buffer is no longer
|
||||
displayed in a window:
|
||||
<empty> follow the global 'hidden' option
|
||||
@@ -1355,8 +1370,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'buftype' 'bt' string (default: "")
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+quickfix|
|
||||
feature}
|
||||
The value of this option specifies the type of a buffer:
|
||||
<empty> normal buffer
|
||||
nofile buffer which is not related to a file and will not be
|
||||
@@ -1369,6 +1382,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
or list of locations |:lwindow|
|
||||
help help buffer (you are not supposed to set this
|
||||
manually)
|
||||
terminal buffer for a |terminal| (you are not supposed to set
|
||||
this manually)
|
||||
|
||||
This option is used together with 'bufhidden' and 'swapfile' to
|
||||
specify special kinds of buffers. See |special-buffers|.
|
||||
@@ -4042,7 +4057,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
||||
x:PmenuSbar,X:PmenuThumb,*:TabLine,
|
||||
#:TabLineSel,_:TabLineFill,!:CursorColumn,
|
||||
.:CursorLine,o:ColorColumn,q:QuickFixLine")
|
||||
.:CursorLine,o:ColorColumn,q:QuickFixLine,
|
||||
z:StatusLineTerm,Z:StatusLineTermNC")
|
||||
global
|
||||
{not in Vi}
|
||||
This option can be used to set highlighting mode for various
|
||||
@@ -4101,6 +4117,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
s standout (termcap entry "so" and "se")
|
||||
u underline (termcap entry "us" and "ue")
|
||||
c undercurl (termcap entry "Cs" and "Ce")
|
||||
t strikethrough (termcap entry "Ts" and "Te")
|
||||
n no highlighting
|
||||
- no highlighting
|
||||
: use a highlight group
|
||||
@@ -4294,7 +4311,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
may change in later releases.
|
||||
|
||||
*'iminsert'* *'imi'*
|
||||
'iminsert' 'imi' number (default 0, 2 when an input method is supported)
|
||||
'iminsert' 'imi' number (default 0)
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
Specifies whether :lmap or an Input Method (IM) is to be used in
|
||||
@@ -4317,7 +4334,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
methods. Use 'imdisable' to disable XIM then.
|
||||
|
||||
*'imsearch'* *'ims'*
|
||||
'imsearch' 'ims' number (default 0, 2 when an input method is supported)
|
||||
'imsearch' 'ims' number (default -1)
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
Specifies whether :lmap or an Input Method (IM) is to be used when
|
||||
@@ -4352,6 +4369,23 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<
|
||||
NOTE: This function is invoked very often. Keep it fast.
|
||||
|
||||
*'imstyle'* *'imst'*
|
||||
'imstyle' 'imst' number (default 1)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with |+xim| and
|
||||
|+GUI_GTK|}
|
||||
This option specifies the input style of Input Method:
|
||||
0 use on-the-spot style
|
||||
1 over-the-spot style
|
||||
See: |xim-input-style|
|
||||
|
||||
For a long time on-the-spot style had been used in the GTK version of
|
||||
vim, however, it is known that it causes troubles when using mappings,
|
||||
|single-repeat|, etc. Therefore over-the-spot style becomes the
|
||||
default now. This should work fine for most people, however if you
|
||||
have any problem with it, try using on-the-spot style.
|
||||
|
||||
*'include'* *'inc'*
|
||||
'include' 'inc' string (default "^\s*#\s*include")
|
||||
global or local to buffer |global-local|
|
||||
@@ -4966,8 +5000,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When on the plugin scripts are loaded when starting up |load-plugins|.
|
||||
This option can be reset in your |vimrc| file to disable the loading
|
||||
of plugins.
|
||||
Note that using the "-u NONE" and "--noplugin" command line arguments
|
||||
reset this option. |-u| |--noplugin|
|
||||
Note that using the "-u NONE", "-u DEFAULTS" and "--noplugin" command
|
||||
line arguments reset this option. See |-u| and |--noplugin|.
|
||||
|
||||
*'luadll'*
|
||||
'luadll' string (default depends on the build)
|
||||
@@ -5434,6 +5468,31 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
time in msec between two mouse clicks for the second click to be
|
||||
recognized as a multi click.
|
||||
|
||||
*'mzschemedll'*
|
||||
'mzschemedll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+mzscheme/dyn|
|
||||
feature}
|
||||
Specifies the name of the MzScheme shared library. The default is
|
||||
DYNAMIC_MZSCH_DLL which was specified at compile time.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'mzschemegcdll'*
|
||||
'mzschemegcdll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+mzscheme/dyn|
|
||||
feature}
|
||||
Specifies the name of the MzScheme GC shared library. The default is
|
||||
DYNAMIC_MZGC_DLL which was specified at compile time.
|
||||
The value can be equal to 'mzschemedll' if it includes the GC code.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'mzquantum'* *'mzq'*
|
||||
'mzquantum' 'mzq' number (default 100)
|
||||
global
|
||||
@@ -7330,7 +7389,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
Watch out for errors in expressions. They may render Vim unusable!
|
||||
If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and
|
||||
edit your .vimrc or whatever with "vim -u NONE" to get it right.
|
||||
edit your .vimrc or whatever with "vim --clean" to get it right.
|
||||
|
||||
Examples:
|
||||
Emulate standard status line with 'ruler' set >
|
||||
@@ -7754,6 +7813,36 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Note that the "cterm" attributes are still used, not the "gui" ones.
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'termkey'* *'tk'*
|
||||
'termkey' 'tk' string (default "")
|
||||
local to window
|
||||
{not in Vi}
|
||||
The key that starts a CTRL-W command in a terminal window. Other keys
|
||||
are sent to the job running in the window.
|
||||
The <> notation can be used, e.g.: >
|
||||
:set termkey=<C-L>
|
||||
< The string must be one key stroke but can be multiple bytes.
|
||||
When not set CTRL-W is used, so that CTRL-W : gets you to the command
|
||||
line. If 'termkey' is set to CTRL-L then CTRL-L : gets you to the
|
||||
command line.
|
||||
|
||||
*'termsize'* *'tms'*
|
||||
'termsize' 'tms' string (default "")
|
||||
local to window
|
||||
{not in Vi}
|
||||
Size of the |terminal| window. Format: {rows}x{columns}.
|
||||
- When empty the terminal gets the size from the window.
|
||||
- When set (e.g., "24x80") the terminal size is not adjusted to the
|
||||
window size. If the window is smaller only the top-left part is
|
||||
displayed.
|
||||
When rows is zero then use the height of the window.
|
||||
When columns is zero then use the width of the window.
|
||||
For example: "30x0" uses 30 rows with the current window width.
|
||||
Using "0x0" is the same as empty.
|
||||
Note that the command running in the terminal window may still change
|
||||
the size of the terminal. In that case the Vim window will be
|
||||
adjusted to that size, if possible.
|
||||
|
||||
*'terse'* *'noterse'*
|
||||
'terse' boolean (default off)
|
||||
global
|
||||
@@ -8195,7 +8284,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Save the whole buffer for undo when reloading it. This applies to the
|
||||
":e!" command and reloading for when the buffer changed outside of
|
||||
Vim. |FileChangedShell|
|
||||
The save only happens when this options is negative or when the number
|
||||
The save only happens when this option is negative or when the number
|
||||
of lines is smaller than the value of this option.
|
||||
Set this option to zero to disable undo for a reload.
|
||||
|
||||
@@ -8313,13 +8402,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not available when compiled without the |+viminfo|
|
||||
feature}
|
||||
When non-empty, the viminfo file is read upon startup and written
|
||||
when exiting Vim (see |viminfo-file|). The string should be a comma
|
||||
separated list of parameters, each consisting of a single character
|
||||
identifying the particular parameter, followed by a number or string
|
||||
which specifies the value of that parameter. If a particular
|
||||
character is left out, then the default value is used for that
|
||||
parameter. The following is a list of the identifying characters and
|
||||
the effect of their value.
|
||||
when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
|
||||
"NONE".
|
||||
The string should be a comma separated list of parameters, each
|
||||
consisting of a single character identifying the particular parameter,
|
||||
followed by a number or string which specifies the value of that
|
||||
parameter. If a particular character is left out, then the default
|
||||
value is used for that parameter. The following is a list of the
|
||||
identifying characters and the effect of their value.
|
||||
CHAR VALUE ~
|
||||
*viminfo-!*
|
||||
! When included, save and restore global variables that start
|
||||
@@ -8379,9 +8469,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
has been used since the last search command.
|
||||
*viminfo-n*
|
||||
n Name of the viminfo file. The name must immediately follow
|
||||
the 'n'. Must be at the end of the option! If the "-i"
|
||||
argument was given when starting Vim, that file name overrides
|
||||
the one given here with 'viminfo'. Environment variables are
|
||||
the 'n'. Must be at the end of the option! If the
|
||||
'viminfofile' option is set, that file name overrides the one
|
||||
given here with 'viminfo'. Environment variables are
|
||||
expanded when opening the file, not when setting the option.
|
||||
*viminfo-r*
|
||||
r Removable media. The argument is a string (up to the next
|
||||
@@ -8422,6 +8512,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
NOTE: This option is set to the Vim default value when 'compatible'
|
||||
is reset.
|
||||
|
||||
*'viminfofile'* *'vif'*
|
||||
'viminfofile' 'vif' string (default: "")
|
||||
global
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+viminfo|
|
||||
feature}
|
||||
When non-empty, overrides the file name used for viminfo.
|
||||
When equal to "NONE" no viminfo file will be read or written.
|
||||
This option can be set with the |-i| command line flag. The |--clean|
|
||||
command line flag sets it to "NONE".
|
||||
|
||||
*'virtualedit'* *'ve'*
|
||||
'virtualedit' 've' string (default "")
|
||||
global
|
||||
@@ -8455,14 +8556,27 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'visualbell' 'vb' boolean (default off)
|
||||
global
|
||||
{not in Vi}
|
||||
Use visual bell instead of beeping. The terminal code to display the
|
||||
Use a visual bell instead of beeping. The terminal code to display the
|
||||
visual bell is given with 't_vb'. When no beep or flash is wanted,
|
||||
use ":set vb t_vb=".
|
||||
Note: When the GUI starts, 't_vb' is reset to its default value. You
|
||||
might want to set it again in your |gvimrc|.
|
||||
use: >
|
||||
:set vb t_vb=
|
||||
< If you want a short flash, you can use this on many terminals: >
|
||||
:set vb t_vb=[?5h$<100>[?5l
|
||||
< Here $<100> specifies the time, you can use a smaller or bigger value
|
||||
to get a shorter or longer flash.
|
||||
|
||||
Note: Vim will limit the bell to once per half a second. This avoids
|
||||
having to wait for the flashing to finish when there are lots of
|
||||
bells, e.g. on key repeat. This also happens without 'visualbell'
|
||||
set.
|
||||
|
||||
In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
|
||||
for 20 msec. If you want to use a different time, use "<Esc>|40f",
|
||||
where 40 is the time in msec.
|
||||
|
||||
Note: When the GUI starts, 't_vb' is reset to its default value. You
|
||||
might want to set it again in your |gvimrc|.
|
||||
|
||||
Does not work on the Amiga, you always get a screen flash.
|
||||
Also see 'errorbells'.
|
||||
|
||||
@@ -8777,6 +8891,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
large number, it will cause errors when opening more than a few
|
||||
windows. A value of 0 to 12 is reasonable.
|
||||
|
||||
*'winptydll'*
|
||||
'winptydll' string (default "winpty32.dll" or "winpty64.dll")
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |terminal|
|
||||
feature on MS-Windows}
|
||||
Specifies the name of the winpty shared library, used for the
|
||||
|:terminal| command. The default depends on whether was build as a
|
||||
32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
|
||||
a fallback.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'winwidth'* *'wiw'* *E592*
|
||||
'winwidth' 'wiw' number (default 20)
|
||||
global
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_getscript.txt* For Vim version 7.0. Last change: 2013 Nov 29
|
||||
*pi_getscript.txt* For Vim version 7.0. Last change: 2017 Aug 01
|
||||
>
|
||||
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
||||
<
|
||||
@@ -389,7 +389,7 @@ v36 Apr 22, 2013 : * (glts) suggested use of plugin/**/*.vim instead of
|
||||
plugin/*.vim in globpath() call.
|
||||
* (Andy Wokula) got warning message when setting
|
||||
g:loaded_getscriptPlugin
|
||||
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script url has
|
||||
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script URL has
|
||||
changed (somewhat). However, it doesn't work, and
|
||||
the original one does (under Linux). I'll make it
|
||||
yet-another-option.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Jun 13
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Sep 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -44,6 +44,13 @@ From inside Vim an easy way to run a command and handle the output is with the
|
||||
The 'errorformat' option should be set to match the error messages from your
|
||||
compiler (see |errorformat| below).
|
||||
|
||||
*quickfix-ID*
|
||||
Each quickfix list has a unique identifier called the quickfix ID and this
|
||||
number will not change within a Vim session. The getqflist() function can be
|
||||
used to get the identifier assigned to a list. There is also a quickfix list
|
||||
number which may change whenever more than ten lists are added to a quickfix
|
||||
stack.
|
||||
|
||||
*location-list* *E776*
|
||||
A location list is a window-local quickfix list. You get one after commands
|
||||
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
|
||||
@@ -425,7 +432,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
||||
which will indicate the command that produced the
|
||||
quickfix list. This can be used to compose a custom
|
||||
status line if the value of 'statusline' is adjusted
|
||||
properly.
|
||||
properly. Whenever this buffer is modified by a
|
||||
quickfix command or function, the |b:changedtick|
|
||||
variable is incremented.
|
||||
|
||||
*:lop* *:lopen*
|
||||
:lop[en] [height] Open a window to show the location list for the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2016 Dec 16
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Sep 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -749,6 +749,7 @@ Short explanation of each option: *option-list*
|
||||
'iminsert' 'imi' use :lmap or IM in Insert mode
|
||||
'imsearch' 'ims' use :lmap or IM when typing a search pattern
|
||||
'imstatusfunc' 'imsf' function to obtain X input method status
|
||||
'imstyle' 'imst' specifies the input style of the input method
|
||||
'include' 'inc' pattern to be used to find an include file
|
||||
'includeexpr' 'inex' expression used to process an include line
|
||||
'incsearch' 'is' highlight match while typing search pattern
|
||||
@@ -920,6 +921,8 @@ Short explanation of each option: *option-list*
|
||||
'termbidi' 'tbidi' terminal takes care of bi-directionality
|
||||
'termencoding' 'tenc' character encoding used by the terminal
|
||||
'termguicolors' 'tgc' use GUI colors for the terminal
|
||||
'termkey' 'tk' key that precedes a Vim command in a terminal
|
||||
'termsize' 'tms' size of a terminal window
|
||||
'terse' shorten some messages
|
||||
'textauto' 'ta' obsolete, use 'fileformats'
|
||||
'textmode' 'tx' obsolete, use 'fileformat'
|
||||
@@ -952,6 +955,7 @@ Short explanation of each option: *option-list*
|
||||
'viewdir' 'vdir' directory where to store files with :mkview
|
||||
'viewoptions' 'vop' specifies what to save for :mkview
|
||||
'viminfo' 'vi' use .viminfo file upon startup and exiting
|
||||
'viminfofile' 'vif' file name used for the viminfo file
|
||||
'virtualedit' 've' when to use virtual editing
|
||||
'visualbell' 'vb' use visual bell instead of beeping
|
||||
'warn' warn for shell command when buffer was changed
|
||||
@@ -971,6 +975,7 @@ Short explanation of each option: *option-list*
|
||||
'winfixwidth' 'wfw' keep window width when opening/closing windows
|
||||
'winminheight' 'wmh' minimum number of lines for any window
|
||||
'winminwidth' 'wmw' minimal number of columns for any window
|
||||
'winptydll' name of the winpty dynamic library
|
||||
'winwidth' 'wiw' minimal number of columns for current window
|
||||
'wrap' long lines wrap and continue on the next line
|
||||
'wrapmargin' 'wm' chars from the right where wrapping starts
|
||||
@@ -1309,6 +1314,7 @@ Context-sensitive completion on the command-line:
|
||||
|
||||
|:sfind| :sf[ind] {file} split window, find {file} in 'path'
|
||||
and edit it
|
||||
|:terminal| :terminal {cmd} open a terminal window
|
||||
|CTRL-W_]| CTRL-W ] split window and jump to tag under
|
||||
cursor
|
||||
|CTRL-W_f| CTRL-W f split window and edit file name under
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*remote.txt* For Vim version 8.0. Last change: 2017 Mar 18
|
||||
*remote.txt* For Vim version 8.0. Last change: 2017 Aug 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -99,7 +99,7 @@ Tell the remote server "BLA" to write all files and exit: >
|
||||
vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'
|
||||
|
||||
|
||||
SERVER NAME
|
||||
SERVER NAME *client-server-name*
|
||||
|
||||
By default Vim will try to register the name under which it was invoked (gvim,
|
||||
egvim ...). This can be overridden with the --servername argument. If the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.0. Last change: 2017 Jan 15
|
||||
*starting.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -140,11 +140,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
--noplugin Skip loading plugins. Resets the 'loadplugins' option.
|
||||
{not in Vi}
|
||||
Note that the |-u| argument may also disable loading plugins:
|
||||
argument load vimrc files load plugins ~
|
||||
(nothing) yes yes
|
||||
-u NONE no no
|
||||
-u NORC no yes
|
||||
--noplugin yes no
|
||||
argument load: vimrc files plugins defaults.vim ~
|
||||
(nothing) yes yes yes
|
||||
-u NONE no no no
|
||||
-u DEFAULTS no no yes
|
||||
-u NORC no yes no
|
||||
--noplugin yes no yes
|
||||
|
||||
--startuptime {fname} *--startuptime*
|
||||
During startup write timing messages to the file {fname}.
|
||||
@@ -465,21 +466,30 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
--nofork GUI: Do not fork. Same as |-f|.
|
||||
*-u* *E282*
|
||||
-u {vimrc} The file {vimrc} is read for initializations. Most other
|
||||
initializations are skipped; see |initialization|. This can
|
||||
be used to start Vim in a special mode, with special
|
||||
initializations are skipped; see |initialization|.
|
||||
|
||||
This can be used to start Vim in a special mode, with special
|
||||
mappings and settings. A shell alias can be used to make
|
||||
this easy to use. For example: >
|
||||
alias vimc vim -u ~/.c_vimrc !*
|
||||
< Also consider using autocommands; see |autocommand|.
|
||||
|
||||
When {vimrc} is equal to "NONE" (all uppercase), all
|
||||
initializations from files and environment variables are
|
||||
skipped, including reading the |gvimrc| file when the GUI
|
||||
starts. Loading plugins is also skipped.
|
||||
|
||||
When {vimrc} is equal to "NORC" (all uppercase), this has the
|
||||
same effect as "NONE", but loading plugins is not skipped.
|
||||
Using the "-u" argument has the side effect that the
|
||||
'compatible' option will be on by default. This can have
|
||||
unexpected effects. See |'compatible'|.
|
||||
|
||||
When {vimrc} is equal to "DEFAULTS" (all uppercase), this has
|
||||
the same effect as "NONE", but the |defaults.vim| script is
|
||||
loaded, which will also set 'nocompatible'.
|
||||
|
||||
Using the "-u" argument with another argument than DEFAULTS
|
||||
has the side effect that the 'compatible' option will be on by
|
||||
default. This can have unexpected effects. See
|
||||
|'compatible'|.
|
||||
{not in Vi}
|
||||
|
||||
*-U* *E230*
|
||||
@@ -497,6 +507,13 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
":rv" or ":wv" are used. See also |viminfo-file|.
|
||||
{not in Vi}
|
||||
|
||||
*--clean*
|
||||
--clean Equal to "-u DEFAULTS -i NONE":
|
||||
- initializations from files and environment variables is
|
||||
skipped
|
||||
- the |defaults.vim| script is loaded, which implies
|
||||
'nocompatible': use Vim defaults
|
||||
- no viminfo file is read or written
|
||||
*-x*
|
||||
-x Use encryption to read/write files. Will prompt for a key,
|
||||
which is then stored in the 'key' option. All writes will
|
||||
@@ -868,6 +885,7 @@ accordingly. Vim proceeds in this order:
|
||||
Loading plugins won't be done when:
|
||||
- The 'loadplugins' option was reset in a vimrc file.
|
||||
- The |--noplugin| command line argument is used.
|
||||
- The |--clean| command line argument is used.
|
||||
- The "-u NONE" command line argument is used |-u|.
|
||||
- When Vim was compiled without the |+eval| feature.
|
||||
Note that using "-c 'set noloadplugins'" doesn't work, because the
|
||||
@@ -990,6 +1008,7 @@ starts its initializations. But as soon as:
|
||||
- a vimrc file in the current directory, or
|
||||
- the "VIMINIT" environment variable is set, or
|
||||
- the "-N" command line argument is given, or
|
||||
- the "--clean" command line argument is given, or
|
||||
even when no vimrc file exists.
|
||||
- the |defaults.vim| script is loaded, or
|
||||
- gvimrc file was found,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Jun 04
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Aug 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2138,6 +2138,16 @@ set "msql_minlines" to the value you desire. Example: >
|
||||
:let msql_minlines = 200
|
||||
|
||||
|
||||
N1QL *n1ql.vim* *ft-n1ql-syntax*
|
||||
|
||||
N1QL is a SQL-like declarative language for manipulating JSON documents in
|
||||
Couchbase Server databases.
|
||||
|
||||
Vim syntax highlights N1QL statements, keywords, operators, types, comments,
|
||||
and special values. Vim ignores syntactical elements specific to SQL or its
|
||||
many dialects, like COLUMN or CHAR, that don't exist in N1QL.
|
||||
|
||||
|
||||
NCF *ncf.vim* *ft-ncf-syntax*
|
||||
|
||||
There is one option for NCF syntax highlighting.
|
||||
@@ -4689,23 +4699,26 @@ the same syntax file on all terminals, and use the optimal highlighting.
|
||||
|
||||
*bold* *underline* *undercurl*
|
||||
*inverse* *italic* *standout*
|
||||
*nocombine* *strikethrough*
|
||||
term={attr-list} *attr-list* *highlight-term* *E418*
|
||||
attr-list is a comma separated list (without spaces) of the
|
||||
following items (in any order):
|
||||
bold
|
||||
underline
|
||||
undercurl not always available
|
||||
strikethrough not always available
|
||||
reverse
|
||||
inverse same as reverse
|
||||
italic
|
||||
standout
|
||||
nocombine override attributes instead of combining them
|
||||
NONE no attributes used (used to reset it)
|
||||
|
||||
Note that "bold" can be used here and by using a bold font. They
|
||||
have the same effect.
|
||||
"undercurl" is a curly underline. When "undercurl" is not possible
|
||||
then "underline" is used. In general "undercurl" is only available in
|
||||
the GUI. The color is set with |highlight-guisp|.
|
||||
then "underline" is used. In general "undercurl" and "strikethrough"
|
||||
is only available in the GUI. The color is set with |highlight-guisp|.
|
||||
|
||||
start={term-list} *highlight-start* *E422*
|
||||
stop={term-list} *term-list* *highlight-stop*
|
||||
@@ -4870,7 +4883,8 @@ guifg={color-name} *highlight-guifg*
|
||||
guibg={color-name} *highlight-guibg*
|
||||
guisp={color-name} *highlight-guisp*
|
||||
These give the foreground (guifg), background (guibg) and special
|
||||
(guisp) color to use in the GUI. "guisp" is used for undercurl.
|
||||
(guisp) color to use in the GUI. "guisp" is used for undercurl and
|
||||
strikethrough.
|
||||
There are a few special names:
|
||||
NONE no color (transparent)
|
||||
bg use normal background color
|
||||
@@ -4982,10 +4996,11 @@ PmenuSbar Popup menu: scrollbar.
|
||||
PmenuThumb Popup menu: Thumb of the scrollbar.
|
||||
*hl-Question*
|
||||
Question |hit-enter| prompt and yes/no questions
|
||||
*hl-QuickFixLine*
|
||||
QuickFixLine Current |quickfix| item in the quickfix window.
|
||||
*hl-Search*
|
||||
Search Last search pattern highlighting (see 'hlsearch').
|
||||
Also used for highlighting the current line in the quickfix
|
||||
window and similar items that need to stand out.
|
||||
Also used for similar items that need to stand out.
|
||||
*hl-SpecialKey*
|
||||
SpecialKey Meta and special keys listed with ":map", also for text used
|
||||
to show unprintable characters in the text, 'listchars'.
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
$ motion.txt /*$*
|
||||
$HOME options.txt /*$HOME*
|
||||
$HOME-use version5.txt /*$HOME-use*
|
||||
$HOME-windows options.txt /*$HOME-windows*
|
||||
$MYGVIMRC gui.txt /*$MYGVIMRC*
|
||||
$MYVIMRC starting.txt /*$MYVIMRC*
|
||||
$VIM starting.txt /*$VIM*
|
||||
@@ -366,7 +367,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'ims' options.txt /*'ims'*
|
||||
'imsearch' options.txt /*'imsearch'*
|
||||
'imsf' options.txt /*'imsf'*
|
||||
'imst' options.txt /*'imst'*
|
||||
'imstatusfunc' options.txt /*'imstatusfunc'*
|
||||
'imstyle' options.txt /*'imstyle'*
|
||||
'inc' options.txt /*'inc'*
|
||||
'include' options.txt /*'include'*
|
||||
'includeexpr' options.txt /*'includeexpr'*
|
||||
@@ -935,6 +938,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
't_Co' term.txt /*'t_Co'*
|
||||
't_Cs' term.txt /*'t_Cs'*
|
||||
't_DL' term.txt /*'t_DL'*
|
||||
't_EC' term.txt /*'t_EC'*
|
||||
't_EI' term.txt /*'t_EI'*
|
||||
't_F1' term.txt /*'t_F1'*
|
||||
't_F2' term.txt /*'t_F2'*
|
||||
@@ -971,12 +975,19 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
't_PE' term.txt /*'t_PE'*
|
||||
't_PS' term.txt /*'t_PS'*
|
||||
't_RB' term.txt /*'t_RB'*
|
||||
't_RC' term.txt /*'t_RC'*
|
||||
't_RI' term.txt /*'t_RI'*
|
||||
't_RS' term.txt /*'t_RS'*
|
||||
't_RV' term.txt /*'t_RV'*
|
||||
't_SC' term.txt /*'t_SC'*
|
||||
't_SH' term.txt /*'t_SH'*
|
||||
't_SI' term.txt /*'t_SI'*
|
||||
't_SR' term.txt /*'t_SR'*
|
||||
't_Sb' term.txt /*'t_Sb'*
|
||||
't_Sf' term.txt /*'t_Sf'*
|
||||
't_Te' term.txt /*'t_Te'*
|
||||
't_Ts' term.txt /*'t_Ts'*
|
||||
't_VS' term.txt /*'t_VS'*
|
||||
't_WP' term.txt /*'t_WP'*
|
||||
't_WS' term.txt /*'t_WS'*
|
||||
't_ZH' term.txt /*'t_ZH'*
|
||||
@@ -1064,6 +1075,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'termbidi' options.txt /*'termbidi'*
|
||||
'termencoding' options.txt /*'termencoding'*
|
||||
'termguicolors' options.txt /*'termguicolors'*
|
||||
'termkey' options.txt /*'termkey'*
|
||||
'termsize' options.txt /*'termsize'*
|
||||
'terse' options.txt /*'terse'*
|
||||
'textauto' options.txt /*'textauto'*
|
||||
'textmode' options.txt /*'textmode'*
|
||||
@@ -1079,8 +1092,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'titlelen' options.txt /*'titlelen'*
|
||||
'titleold' options.txt /*'titleold'*
|
||||
'titlestring' options.txt /*'titlestring'*
|
||||
'tk' options.txt /*'tk'*
|
||||
'tl' options.txt /*'tl'*
|
||||
'tm' options.txt /*'tm'*
|
||||
'tms' options.txt /*'tms'*
|
||||
'to' options.txt /*'to'*
|
||||
'toolbar' options.txt /*'toolbar'*
|
||||
'toolbariconsize' options.txt /*'toolbariconsize'*
|
||||
@@ -1124,7 +1139,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'vi' options.txt /*'vi'*
|
||||
'viewdir' options.txt /*'viewdir'*
|
||||
'viewoptions' options.txt /*'viewoptions'*
|
||||
'vif' options.txt /*'vif'*
|
||||
'viminfo' options.txt /*'viminfo'*
|
||||
'viminfofile' options.txt /*'viminfofile'*
|
||||
'virtualedit' options.txt /*'virtualedit'*
|
||||
'visualbell' options.txt /*'visualbell'*
|
||||
'vop' options.txt /*'vop'*
|
||||
@@ -1161,6 +1178,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'winheight' options.txt /*'winheight'*
|
||||
'winminheight' options.txt /*'winminheight'*
|
||||
'winminwidth' options.txt /*'winminwidth'*
|
||||
'winptydll' options.txt /*'winptydll'*
|
||||
'winwidth' options.txt /*'winwidth'*
|
||||
'wiv' options.txt /*'wiv'*
|
||||
'wiw' options.txt /*'wiw'*
|
||||
@@ -1309,6 +1327,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+tcl various.txt /*+tcl*
|
||||
+tcl/dyn various.txt /*+tcl\/dyn*
|
||||
+termguicolors various.txt /*+termguicolors*
|
||||
+terminal various.txt /*+terminal*
|
||||
+terminfo various.txt /*+terminfo*
|
||||
+termresponse various.txt /*+termresponse*
|
||||
+textobjects various.txt /*+textobjects*
|
||||
@@ -1316,6 +1335,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+timers various.txt /*+timers*
|
||||
+title various.txt /*+title*
|
||||
+toolbar various.txt /*+toolbar*
|
||||
+unix eval.txt /*+unix*
|
||||
+user_commands various.txt /*+user_commands*
|
||||
+vertsplit various.txt /*+vertsplit*
|
||||
+viminfo various.txt /*+viminfo*
|
||||
@@ -1344,6 +1364,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
-+rv gui_x11.txt /*-+rv*
|
||||
-- starting.txt /*--*
|
||||
--- starting.txt /*---*
|
||||
--clean starting.txt /*--clean*
|
||||
--cmd starting.txt /*--cmd*
|
||||
--echo-wid starting.txt /*--echo-wid*
|
||||
--help starting.txt /*--help*
|
||||
@@ -1879,6 +1900,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:<afile> cmdline.txt /*:<afile>*
|
||||
:<amatch> cmdline.txt /*:<amatch>*
|
||||
:<cWORD> cmdline.txt /*:<cWORD>*
|
||||
:<cexpr> cmdline.txt /*:<cexpr>*
|
||||
:<cfile> cmdline.txt /*:<cfile>*
|
||||
:<cword> cmdline.txt /*:<cword>*
|
||||
:<sfile> cmdline.txt /*:<sfile>*
|
||||
@@ -1938,6 +1960,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:Sexplore pi_netrw.txt /*:Sexplore*
|
||||
:TOhtml syntax.txt /*:TOhtml*
|
||||
:TarDiff pi_tar.txt /*:TarDiff*
|
||||
:Termdebug terminal.txt /*:Termdebug*
|
||||
:Texplore pi_netrw.txt /*:Texplore*
|
||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||
:Vexplore pi_netrw.txt /*:Vexplore*
|
||||
@@ -3098,6 +3121,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:tclfile if_tcl.txt /*:tclfile*
|
||||
:te gui_w32.txt /*:te*
|
||||
:tearoff gui_w32.txt /*:tearoff*
|
||||
:ter terminal.txt /*:ter*
|
||||
:terminal terminal.txt /*:terminal*
|
||||
:tf tagsrch.txt /*:tf*
|
||||
:tfirst tagsrch.txt /*:tfirst*
|
||||
:th eval.txt /*:th*
|
||||
@@ -3107,9 +3132,16 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:tl tagsrch.txt /*:tl*
|
||||
:tlast tagsrch.txt /*:tlast*
|
||||
:tm gui.txt /*:tm*
|
||||
:tma map.txt /*:tma*
|
||||
:tmap map.txt /*:tmap*
|
||||
:tmap_l map.txt /*:tmap_l*
|
||||
:tmapc map.txt /*:tmapc*
|
||||
:tmapclear map.txt /*:tmapclear*
|
||||
:tmenu gui.txt /*:tmenu*
|
||||
:tn tagsrch.txt /*:tn*
|
||||
:tnext tagsrch.txt /*:tnext*
|
||||
:tno map.txt /*:tno*
|
||||
:tnoremap map.txt /*:tnoremap*
|
||||
:topleft windows.txt /*:topleft*
|
||||
:tp tagsrch.txt /*:tp*
|
||||
:tprevious tagsrch.txt /*:tprevious*
|
||||
@@ -3119,6 +3151,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:ts tagsrch.txt /*:ts*
|
||||
:tselect tagsrch.txt /*:tselect*
|
||||
:tu gui.txt /*:tu*
|
||||
:tunma map.txt /*:tunma*
|
||||
:tunmap map.txt /*:tunmap*
|
||||
:tunmenu gui.txt /*:tunmenu*
|
||||
:u undo.txt /*:u*
|
||||
:un undo.txt /*:un*
|
||||
@@ -3383,6 +3417,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<bang> map.txt /*<bang>*
|
||||
<buffer=N> autocmd.txt /*<buffer=N>*
|
||||
<buffer=abuf> autocmd.txt /*<buffer=abuf>*
|
||||
<cexpr> cmdline.txt /*<cexpr>*
|
||||
<cfile> cmdline.txt /*<cfile>*
|
||||
<character> intro.txt /*<character>*
|
||||
<count> map.txt /*<count>*
|
||||
@@ -3413,6 +3448,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<mods> map.txt /*<mods>*
|
||||
<nomodeline> autocmd.txt /*<nomodeline>*
|
||||
<q-args> map.txt /*<q-args>*
|
||||
<range> map.txt /*<range>*
|
||||
<reg> map.txt /*<reg>*
|
||||
<register> map.txt /*<register>*
|
||||
<sfile> cmdline.txt /*<sfile>*
|
||||
@@ -3526,6 +3562,8 @@ CTRL-V-alternative gui_w32.txt /*CTRL-V-alternative*
|
||||
CTRL-W index.txt /*CTRL-W*
|
||||
CTRL-W_+ windows.txt /*CTRL-W_+*
|
||||
CTRL-W_- windows.txt /*CTRL-W_-*
|
||||
CTRL-W_. terminal.txt /*CTRL-W_.*
|
||||
CTRL-W_: windows.txt /*CTRL-W_:*
|
||||
CTRL-W_< windows.txt /*CTRL-W_<*
|
||||
CTRL-W_<BS> windows.txt /*CTRL-W_<BS>*
|
||||
CTRL-W_<CR> quickfix.txt /*CTRL-W_<CR>*
|
||||
@@ -3564,6 +3602,7 @@ CTRL-W_H windows.txt /*CTRL-W_H*
|
||||
CTRL-W_J windows.txt /*CTRL-W_J*
|
||||
CTRL-W_K windows.txt /*CTRL-W_K*
|
||||
CTRL-W_L windows.txt /*CTRL-W_L*
|
||||
CTRL-W_N terminal.txt /*CTRL-W_N*
|
||||
CTRL-W_P windows.txt /*CTRL-W_P*
|
||||
CTRL-W_R windows.txt /*CTRL-W_R*
|
||||
CTRL-W_S windows.txt /*CTRL-W_S*
|
||||
@@ -3591,6 +3630,7 @@ CTRL-W_n windows.txt /*CTRL-W_n*
|
||||
CTRL-W_o windows.txt /*CTRL-W_o*
|
||||
CTRL-W_p windows.txt /*CTRL-W_p*
|
||||
CTRL-W_q windows.txt /*CTRL-W_q*
|
||||
CTRL-W_quote terminal.txt /*CTRL-W_quote*
|
||||
CTRL-W_r windows.txt /*CTRL-W_r*
|
||||
CTRL-W_s windows.txt /*CTRL-W_s*
|
||||
CTRL-W_t windows.txt /*CTRL-W_t*
|
||||
@@ -4521,6 +4561,9 @@ E942 eval.txt /*E942*
|
||||
E943 message.txt /*E943*
|
||||
E944 pattern.txt /*E944*
|
||||
E945 pattern.txt /*E945*
|
||||
E946 terminal.txt /*E946*
|
||||
E947 terminal.txt /*E947*
|
||||
E948 terminal.txt /*E948*
|
||||
E95 message.txt /*E95*
|
||||
E96 diff.txt /*E96*
|
||||
E97 diff.txt /*E97*
|
||||
@@ -4762,6 +4805,7 @@ TabNew autocmd.txt /*TabNew*
|
||||
Tcl if_tcl.txt /*Tcl*
|
||||
TermChanged autocmd.txt /*TermChanged*
|
||||
TermResponse autocmd.txt /*TermResponse*
|
||||
Terminal-mode terminal.txt /*Terminal-mode*
|
||||
TextChanged autocmd.txt /*TextChanged*
|
||||
TextChangedI autocmd.txt /*TextChangedI*
|
||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||
@@ -4802,9 +4846,11 @@ W18 syntax.txt /*W18*
|
||||
W19 autocmd.txt /*W19*
|
||||
W20 if_pyth.txt /*W20*
|
||||
W21 if_pyth.txt /*W21*
|
||||
W22 eval.txt /*W22*
|
||||
WORD motion.txt /*WORD*
|
||||
WWW intro.txt /*WWW*
|
||||
Win32 os_win32.txt /*Win32*
|
||||
WinBar gui.txt /*WinBar*
|
||||
WinEnter autocmd.txt /*WinEnter*
|
||||
WinLeave autocmd.txt /*WinLeave*
|
||||
WinNew autocmd.txt /*WinNew*
|
||||
@@ -5398,6 +5444,7 @@ cinoptions-values indent.txt /*cinoptions-values*
|
||||
clear-undo undo.txt /*clear-undo*
|
||||
clearmatches() eval.txt /*clearmatches()*
|
||||
client-server remote.txt /*client-server*
|
||||
client-server-name remote.txt /*client-server-name*
|
||||
clientserver remote.txt /*clientserver*
|
||||
clipboard gui.txt /*clipboard*
|
||||
clipboard-autoselect options.txt /*clipboard-autoselect*
|
||||
@@ -6115,6 +6162,7 @@ ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
|
||||
ft-mma-syntax syntax.txt /*ft-mma-syntax*
|
||||
ft-moo-syntax syntax.txt /*ft-moo-syntax*
|
||||
ft-msql-syntax syntax.txt /*ft-msql-syntax*
|
||||
ft-n1ql-syntax syntax.txt /*ft-n1ql-syntax*
|
||||
ft-nasm-syntax syntax.txt /*ft-nasm-syntax*
|
||||
ft-ncf-syntax syntax.txt /*ft-ncf-syntax*
|
||||
ft-nroff-syntax syntax.txt /*ft-nroff-syntax*
|
||||
@@ -6571,6 +6619,7 @@ gs various.txt /*gs*
|
||||
gsp.vim syntax.txt /*gsp.vim*
|
||||
gstar pattern.txt /*gstar*
|
||||
gt tabpage.txt /*gt*
|
||||
gtk-css gui_x11.txt /*gtk-css*
|
||||
gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
|
||||
gu change.txt /*gu*
|
||||
gugu change.txt /*gugu*
|
||||
@@ -6740,6 +6789,7 @@ hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
|
||||
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
||||
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
||||
hl-Question syntax.txt /*hl-Question*
|
||||
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
|
||||
hl-Scrollbar syntax.txt /*hl-Scrollbar*
|
||||
hl-Search syntax.txt /*hl-Search*
|
||||
hl-SignColumn syntax.txt /*hl-SignColumn*
|
||||
@@ -7242,6 +7292,7 @@ mapmode-n map.txt /*mapmode-n*
|
||||
mapmode-nvo map.txt /*mapmode-nvo*
|
||||
mapmode-o map.txt /*mapmode-o*
|
||||
mapmode-s map.txt /*mapmode-s*
|
||||
mapmode-t map.txt /*mapmode-t*
|
||||
mapmode-v map.txt /*mapmode-v*
|
||||
mapmode-x map.txt /*mapmode-x*
|
||||
mapping map.txt /*mapping*
|
||||
@@ -7356,6 +7407,7 @@ mzscheme-vim if_mzsch.txt /*mzscheme-vim*
|
||||
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
|
||||
mzscheme-window if_mzsch.txt /*mzscheme-window*
|
||||
n pattern.txt /*n*
|
||||
n1ql.vim syntax.txt /*n1ql.vim*
|
||||
nasm.vim syntax.txt /*nasm.vim*
|
||||
navigation motion.txt /*navigation*
|
||||
nb-commands netbeans.txt /*nb-commands*
|
||||
@@ -7699,6 +7751,7 @@ no-type-checking eval.txt /*no-type-checking*
|
||||
no_buffers_menu gui.txt /*no_buffers_menu*
|
||||
no_mail_maps filetype.txt /*no_mail_maps*
|
||||
no_plugin_maps filetype.txt /*no_plugin_maps*
|
||||
nocombine syntax.txt /*nocombine*
|
||||
non-greedy pattern.txt /*non-greedy*
|
||||
non-zero-arg eval.txt /*non-zero-arg*
|
||||
none-variable eval.txt /*none-variable*
|
||||
@@ -7975,6 +8028,7 @@ qnx-terminal os_qnx.txt /*qnx-terminal*
|
||||
quake.vim syntax.txt /*quake.vim*
|
||||
quickfix quickfix.txt /*quickfix*
|
||||
quickfix-6 version6.txt /*quickfix-6*
|
||||
quickfix-ID quickfix.txt /*quickfix-ID*
|
||||
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
||||
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
||||
quickfix-functions usr_41.txt /*quickfix-functions*
|
||||
@@ -8204,6 +8258,7 @@ servername-variable eval.txt /*servername-variable*
|
||||
session-file starting.txt /*session-file*
|
||||
set-option options.txt /*set-option*
|
||||
set-spc-auto spell.txt /*set-spc-auto*
|
||||
setbufline() eval.txt /*setbufline()*
|
||||
setbufvar() eval.txt /*setbufvar()*
|
||||
setcharsearch() eval.txt /*setcharsearch()*
|
||||
setcmdpos() eval.txt /*setcmdpos()*
|
||||
@@ -8410,6 +8465,7 @@ star pattern.txt /*star*
|
||||
starstar editing.txt /*starstar*
|
||||
starstar-wildcard editing.txt /*starstar-wildcard*
|
||||
start-of-file pattern.txt /*start-of-file*
|
||||
start-vimdiff diff.txt /*start-vimdiff*
|
||||
starting starting.txt /*starting*
|
||||
starting-amiga starting.txt /*starting-amiga*
|
||||
starting.txt starting.txt /*starting.txt*
|
||||
@@ -8430,6 +8486,7 @@ strdisplaywidth() eval.txt /*strdisplaywidth()*
|
||||
strftime() eval.txt /*strftime()*
|
||||
strgetchar() eval.txt /*strgetchar()*
|
||||
stridx() eval.txt /*stridx()*
|
||||
strikethrough syntax.txt /*strikethrough*
|
||||
string eval.txt /*string*
|
||||
string() eval.txt /*string()*
|
||||
string-functions usr_41.txt /*string-functions*
|
||||
@@ -8516,11 +8573,14 @@ t_AL term.txt /*t_AL*
|
||||
t_BD term.txt /*t_BD*
|
||||
t_BE term.txt /*t_BE*
|
||||
t_CS term.txt /*t_CS*
|
||||
t_CTRL-W_CTRL-C terminal.txt /*t_CTRL-W_CTRL-C*
|
||||
t_CTRL-\_CTRL-N terminal.txt /*t_CTRL-\\_CTRL-N*
|
||||
t_CV term.txt /*t_CV*
|
||||
t_Ce term.txt /*t_Ce*
|
||||
t_Co term.txt /*t_Co*
|
||||
t_Cs term.txt /*t_Cs*
|
||||
t_DL term.txt /*t_DL*
|
||||
t_EC term.txt /*t_EC*
|
||||
t_EI term.txt /*t_EI*
|
||||
t_F1 term.txt /*t_F1*
|
||||
t_F2 term.txt /*t_F2*
|
||||
@@ -8557,12 +8617,19 @@ t_KL term.txt /*t_KL*
|
||||
t_PE term.txt /*t_PE*
|
||||
t_PS term.txt /*t_PS*
|
||||
t_RB term.txt /*t_RB*
|
||||
t_RC term.txt /*t_RC*
|
||||
t_RI term.txt /*t_RI*
|
||||
t_RS term.txt /*t_RS*
|
||||
t_RV term.txt /*t_RV*
|
||||
t_SC term.txt /*t_SC*
|
||||
t_SH term.txt /*t_SH*
|
||||
t_SI term.txt /*t_SI*
|
||||
t_SR term.txt /*t_SR*
|
||||
t_Sb term.txt /*t_Sb*
|
||||
t_Sf term.txt /*t_Sf*
|
||||
t_Te term.txt /*t_Te*
|
||||
t_Ts term.txt /*t_Ts*
|
||||
t_VS term.txt /*t_VS*
|
||||
t_WP term.txt /*t_WP*
|
||||
t_WS term.txt /*t_WS*
|
||||
t_ZH term.txt /*t_ZH*
|
||||
@@ -8775,9 +8842,27 @@ temp-file-name eval.txt /*temp-file-name*
|
||||
tempfile change.txt /*tempfile*
|
||||
template autocmd.txt /*template*
|
||||
tempname() eval.txt /*tempname()*
|
||||
term++close terminal.txt /*term++close*
|
||||
term++open terminal.txt /*term++open*
|
||||
term-dependent-settings term.txt /*term-dependent-settings*
|
||||
term-list syntax.txt /*term-list*
|
||||
term.txt term.txt /*term.txt*
|
||||
term_getaltscreen() eval.txt /*term_getaltscreen()*
|
||||
term_getattr() eval.txt /*term_getattr()*
|
||||
term_getcursor() eval.txt /*term_getcursor()*
|
||||
term_getjob() eval.txt /*term_getjob()*
|
||||
term_getline() eval.txt /*term_getline()*
|
||||
term_getscrolled() eval.txt /*term_getscrolled()*
|
||||
term_getsize() eval.txt /*term_getsize()*
|
||||
term_getstatus() eval.txt /*term_getstatus()*
|
||||
term_gettitle() eval.txt /*term_gettitle()*
|
||||
term_gettty() eval.txt /*term_gettty()*
|
||||
term_list() eval.txt /*term_list()*
|
||||
term_scrape() eval.txt /*term_scrape()*
|
||||
term_sendkeys() eval.txt /*term_sendkeys()*
|
||||
term_setsize() eval.txt /*term_setsize()*
|
||||
term_start() eval.txt /*term_start()*
|
||||
term_wait() eval.txt /*term_wait()*
|
||||
termcap term.txt /*termcap*
|
||||
termcap-changed version4.txt /*termcap-changed*
|
||||
termcap-colors term.txt /*termcap-colors*
|
||||
@@ -8785,16 +8870,24 @@ termcap-cursor-color term.txt /*termcap-cursor-color*
|
||||
termcap-cursor-shape term.txt /*termcap-cursor-shape*
|
||||
termcap-options term.txt /*termcap-options*
|
||||
termcap-title term.txt /*termcap-title*
|
||||
terminal terminal.txt /*terminal*
|
||||
terminal-colors os_unix.txt /*terminal-colors*
|
||||
terminal-debug terminal.txt /*terminal-debug*
|
||||
terminal-functions usr_41.txt /*terminal-functions*
|
||||
terminal-info term.txt /*terminal-info*
|
||||
terminal-key-codes term.txt /*terminal-key-codes*
|
||||
terminal-options term.txt /*terminal-options*
|
||||
terminal-output-codes term.txt /*terminal-output-codes*
|
||||
terminal-testing terminal.txt /*terminal-testing*
|
||||
terminal-typing terminal.txt /*terminal-typing*
|
||||
terminal-use terminal.txt /*terminal-use*
|
||||
terminal.txt terminal.txt /*terminal.txt*
|
||||
terminfo term.txt /*terminfo*
|
||||
termresponse-variable eval.txt /*termresponse-variable*
|
||||
test-functions usr_41.txt /*test-functions*
|
||||
test_alloc_fail() eval.txt /*test_alloc_fail()*
|
||||
test_autochdir() eval.txt /*test_autochdir()*
|
||||
test_feedinput() eval.txt /*test_feedinput()*
|
||||
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
|
||||
test_ignore_error() eval.txt /*test_ignore_error()*
|
||||
test_null_channel() eval.txt /*test_null_channel()*
|
||||
@@ -9021,7 +9114,11 @@ v:t_list eval.txt /*v:t_list*
|
||||
v:t_none eval.txt /*v:t_none*
|
||||
v:t_number eval.txt /*v:t_number*
|
||||
v:t_string eval.txt /*v:t_string*
|
||||
v:termblinkresp eval.txt /*v:termblinkresp*
|
||||
v:termresponse eval.txt /*v:termresponse*
|
||||
v:termrgbresp eval.txt /*v:termrgbresp*
|
||||
v:termstyleresp eval.txt /*v:termstyleresp*
|
||||
v:termu7resp eval.txt /*v:termu7resp*
|
||||
v:testing eval.txt /*v:testing*
|
||||
v:this_session eval.txt /*v:this_session*
|
||||
v:throwpoint eval.txt /*v:throwpoint*
|
||||
@@ -9341,6 +9438,7 @@ window-resize windows.txt /*window-resize*
|
||||
window-size term.txt /*window-size*
|
||||
window-size-functions usr_41.txt /*window-size-functions*
|
||||
window-tag windows.txt /*window-tag*
|
||||
window-toolbar gui.txt /*window-toolbar*
|
||||
window-variable eval.txt /*window-variable*
|
||||
windowid windows.txt /*windowid*
|
||||
windowid-variable eval.txt /*windowid-variable*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 8.0. Last change: 2017 Apr 11
|
||||
*term.txt* For Vim version 8.0. Last change: 2017 Aug 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -295,13 +295,11 @@ OUTPUT CODES *terminal-output-codes*
|
||||
t_ts set window title start (to status line) *t_ts* *'t_ts'*
|
||||
t_ue underline end *t_ue* *'t_ue'*
|
||||
t_us underline mode *t_us* *'t_us'*
|
||||
t_Ce undercurl end *t_Ce* *'t_Ce'*
|
||||
t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
||||
t_ut clearing uses the current background color *t_ut* *'t_ut'*
|
||||
t_vb visual bell *t_vb* *'t_vb'*
|
||||
t_ve cursor visible *t_ve* *'t_ve'*
|
||||
t_vi cursor invisible *t_vi* *'t_vi'*
|
||||
t_vs cursor very visible *t_vs* *'t_vs'*
|
||||
t_vs cursor very visible (blink) *t_vs* *'t_vs'*
|
||||
*t_xs* *'t_xs'*
|
||||
t_xs if non-empty, standout not erased by overwriting (hpterm)
|
||||
*t_xn* *'t_xn'*
|
||||
@@ -311,11 +309,16 @@ OUTPUT CODES *terminal-output-codes*
|
||||
t_ZR italics end *t_ZR* *'t_ZR'*
|
||||
|
||||
Added by Vim (there are no standard codes for these):
|
||||
t_Ce undercurl end *t_Ce* *'t_Ce'*
|
||||
t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
||||
t_Te strikethrough end *t_Te* *'t_Te'*
|
||||
t_Ts strikethrough mode *t_Ts* *'t_Ts'*
|
||||
t_IS set icon text start *t_IS* *'t_IS'*
|
||||
t_IE set icon text end *t_IE* *'t_IE'*
|
||||
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
|
||||
t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
|
||||
t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
|
||||
t_WS set window size (height, width in cells) *t_WS* *'t_WS'*
|
||||
t_VS cursor normally visible (no blink) *t_VS* *'t_VS'*
|
||||
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
|
||||
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
|
||||
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
|
||||
@@ -333,6 +336,29 @@ Added by Vim (there are no standard codes for these):
|
||||
|xterm-bracketed-paste|
|
||||
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|
||||
|xterm-bracketed-paste|
|
||||
t_SC set cursor color start *t_SC* *'t_SC'*
|
||||
t_EC set cursor color end *t_EC* *'t_EC'*
|
||||
t_SH set cursor shape *t_SH* *'t_SH'*
|
||||
t_RC request terminal cursor blinking *t_RC* *'t_RC'*
|
||||
t_RS request terminal cursor style *t_RS* *'t_RS'*
|
||||
|
||||
Some codes have a start, middle and end part. The start and end are defined
|
||||
by the termcap option, the middle part is text.
|
||||
set title text: t_ts {title text} t_fs
|
||||
set icon text: t_IS {icon text} t_IE
|
||||
set cursor color: t_SC {color name} t_EC
|
||||
|
||||
t_SH must take one argument:
|
||||
0, 1 or none blinking block cursor
|
||||
2 block cursor
|
||||
3 blinking underline cursor
|
||||
4 underline cursor
|
||||
5 blinking vertical bar cursor
|
||||
6 vertical bar cursor
|
||||
|
||||
t_RS is sent only if the response to t_RV has been received. It is not used
|
||||
on Mac OS when Terminal.app could be recognized from the termresponse.
|
||||
|
||||
|
||||
KEY CODES *terminal-key-codes*
|
||||
Note: Use the <> form if possible
|
||||
|
||||
502
runtime/doc/terminal.txt
Normal file
502
runtime/doc/terminal.txt
Normal file
@@ -0,0 +1,502 @@
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2017 Sep 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
Terminal window support *terminal*
|
||||
|
||||
|
||||
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
|
||||
|
||||
The terminal feature is optional, use this to check if your Vim has it: >
|
||||
echo has('terminal')
|
||||
If the result is "1" you have it.
|
||||
|
||||
|
||||
1. Basic use |terminal-use|
|
||||
2. Remote testing |terminal-testing|
|
||||
3. Debugging |terminal-debug|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
|
||||
|
||||
==============================================================================
|
||||
1. Basic use *terminal-use*
|
||||
|
||||
This feature is for running a terminal emulator in a Vim window. A job can be
|
||||
started connected to the terminal emulator. For example, to run a shell: >
|
||||
:term bash
|
||||
|
||||
Or to run build command: >
|
||||
:term make myprogram
|
||||
|
||||
The job runs asynchronously from Vim, the window will be updated to show
|
||||
output from the job, also while editing in another window.
|
||||
|
||||
|
||||
Typing ~
|
||||
*terminal-typing*
|
||||
When the keyboard focus is in the terminal window, typed keys will be sent to
|
||||
the job. This uses a pty when possible. You can click outside of the
|
||||
terminal window to move keyboard focus elsewhere.
|
||||
|
||||
CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.:
|
||||
CTRL-W CTRL-W move focus to the next window
|
||||
CTRL-W : enter an Ex command
|
||||
See |CTRL-W| for more commands.
|
||||
|
||||
Special in the terminal window: *CTRL-W_.* *CTRL-W_N*
|
||||
CTRL-W . send a CTRL-W to the job in the terminal
|
||||
CTRL-W N go to Terminal-Normal mode, see |Terminal-mode|
|
||||
CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode|
|
||||
CTRL-W " {reg} paste register {reg} *CTRL-W_quote*
|
||||
Also works with the = register to insert the result of
|
||||
evaluating an expression.
|
||||
CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C|
|
||||
|
||||
See option 'termkey' for specifying another key instead of CTRL-W that
|
||||
will work like CTRL-W. However, typing 'termkey' twice sends 'termkey' to
|
||||
the job. For example:
|
||||
'termkey' CTRL-W move focus to the next window
|
||||
'termkey' : enter an Ex command
|
||||
'termkey' 'termkey' send 'termkey' to the job in the terminal
|
||||
'termkey' . send a CTRL-W to the job in the terminal
|
||||
'termkey' N go to terminal Normal mode, see below
|
||||
'termkey' CTRL-N same as CTRL-W N
|
||||
'termkey' CTRL-C same as |t_CTRL-W_CTRL-C|
|
||||
*t_CTRL-\_CTRL-N*
|
||||
The special key combination CTRL-\ CTRL-N can be used to switch to Normal
|
||||
mode, just like this works in any other mode.
|
||||
*t_CTRL-W_CTRL-C*
|
||||
CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a
|
||||
CTRL-BREAK will also kill the job.
|
||||
|
||||
If you type CTRL-C the effect depends on what the pty has been configured to
|
||||
do. For simple commands this causes a SIGINT to be sent to the job, which
|
||||
would end it. Other commands may ignore the SIGINT or handle the CTRL-C
|
||||
themselves (like Vim does).
|
||||
|
||||
To change the keys you type use terminal mode mappings, see |:tmap|.
|
||||
These are defined like any mapping, but apply only when typing keys that are
|
||||
sent to the job running in the terminal. For example, to make Escape switch
|
||||
to Terminal-Normal mode: >
|
||||
tnoremap <Esc> <C-W>N
|
||||
|
||||
After opening the terminal window and setting 'buftype' to "terminal" the
|
||||
BufWinEnter autocommand event is triggered. This makes it possible to set
|
||||
options specifically for the window and buffer. Example: >
|
||||
au BufWinEnter * if &buftype == 'terminal' | setlocal bufhidden=hide | endif
|
||||
|
||||
|
||||
Size and color ~
|
||||
|
||||
See option 'termsize' for controlling the size of the terminal window.
|
||||
(TODO: scrolling when the terminal is larger than the window)
|
||||
|
||||
The job running in the terminal can change the colors. The default foreground
|
||||
and background colors are taken from Vim, the Normal highlight group.
|
||||
|
||||
For a color terminal the 'background' option is used to decide whether the
|
||||
terminal window will start with a white or black background.
|
||||
|
||||
To use a different color the Terminal highlight group can be used: >
|
||||
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
|
||||
|
||||
|
||||
Syntax ~
|
||||
|
||||
:[range]ter[minal] [options] [command] *:ter* *:terminal*
|
||||
Open a new terminal window.
|
||||
|
||||
If [command] is provided run it as a job and connect
|
||||
the input and output to the terminal.
|
||||
If [command] is not given the 'shell' option is used.
|
||||
if [command] is NONE no job is started, the pty of the
|
||||
terminal can be used by a command like gdb.
|
||||
|
||||
A new buffer will be created, using [command] or
|
||||
'shell' as the name, prefixed with a "!". If a buffer
|
||||
by this name already exists a number is added in
|
||||
parentheses. E.g. if "gdb" exists the second terminal
|
||||
buffer will use "!gdb (1)".
|
||||
|
||||
If [range] is given the specified lines are used as
|
||||
input for the job. It will not be possible to type
|
||||
keys in the terminal window. For MS-Windows see the
|
||||
++eof argument below.
|
||||
|
||||
Two comma separated numbers are used as "rows,cols".
|
||||
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
|
||||
columns. However, if the terminal window spans the
|
||||
Vim window with, there is no vertical split, the Vim
|
||||
window width is used.
|
||||
*term++close* *term++open*
|
||||
Supported [options] are:
|
||||
++close The terminal window will close
|
||||
automatically when the job terminates.
|
||||
++open When the job terminates and no window
|
||||
shows it, a window will be opened.
|
||||
Note that this can be interruptive.
|
||||
++curwin Open the terminal in the current
|
||||
window, do not split the current
|
||||
window. Fails if the current buffer
|
||||
cannot be |abandon|ed.
|
||||
++hidden Open the terminal in a hidden buffer,
|
||||
no window will be used.
|
||||
++rows={height} Use {height} for the terminal window
|
||||
height.
|
||||
++cols={width} Use {width} for the terminal window
|
||||
width.
|
||||
++eof={text} when using [range]: text to send after
|
||||
the last line was written. Cannot
|
||||
contain white space. A CR is
|
||||
appended. For MS-Windows the default
|
||||
is to send CTRL-D.
|
||||
E.g. for a shell use "++eof=exit" and
|
||||
for Python "++eof=exit()". Special
|
||||
codes can be used like with `:map`,
|
||||
e.g. "<C-Z>" for CTRL-Z.
|
||||
|
||||
If you want to use more options use the |term_start()|
|
||||
function.
|
||||
|
||||
When the buffer associated with the terminal is unloaded or wiped out the job
|
||||
is killed, similar to calling `job_stop(job, "kill")`
|
||||
|
||||
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.
|
||||
|
||||
Trying to close the window with `CTRL-W :close` also fails. Using
|
||||
`CTRL-W :close!` will close the window and make the buffer hidden.
|
||||
|
||||
You can use `CTRL-W :hide` to close the terminal window and make the buffer
|
||||
hidden, the job keeps running. The `:buffer` command can be used to turn the
|
||||
current window into a terminal window. If there are unsaved changes this
|
||||
fails, use ! to force, as usual.
|
||||
|
||||
To have a background job run without a window, and open the window when it's
|
||||
done, use options like this: >
|
||||
:term ++hidden ++open make
|
||||
Note that the window will open at an unexpected moment, this will interrupt
|
||||
what you are doing.
|
||||
|
||||
*E947* *E948*
|
||||
So long as the job is running, the buffer is considered modified and Vim
|
||||
cannot be quit easily, see |abandon|.
|
||||
|
||||
When the job has finished and no changes were made to the buffer: closing the
|
||||
window will wipe out the buffer.
|
||||
|
||||
Before changes can be made to a terminal buffer, the 'modifiable' option must
|
||||
be set. This is only possible when the job has finished. At the first change
|
||||
the buffer will become a normal buffer and the highlighting is removed.
|
||||
You may want to change the buffer name with |:file| to be able to write, since
|
||||
the buffer name will still be set to the command.
|
||||
|
||||
|
||||
Resizing ~
|
||||
|
||||
The size of the terminal can be in one of three modes:
|
||||
|
||||
1. The 'termsize' option is empty: The terminal size follows the window size.
|
||||
The minimal size is 2 screen lines with 10 cells.
|
||||
|
||||
2. The 'termsize' option is "rows*cols", where "rows" is the minimal number of
|
||||
screen rows and "cols" is the minimal number of cells.
|
||||
|
||||
3. The 'termsize' option is "rowsXcols" (where the x is upper or lower case).
|
||||
The terminal size is fixed to the specified number of screen lines and
|
||||
cells. If the window is bigger there will be unused empty space.
|
||||
|
||||
If the window is smaller than the terminal size, only part of the terminal can
|
||||
be seen (the lower-left part).
|
||||
|
||||
The |term_getsize()| function can be used to get the current size of the
|
||||
terminal. |term_setsize()| can be used only when in the first or second mode,
|
||||
not when 'termsize' is "rowsXcols".
|
||||
|
||||
|
||||
Terminal-Job and Terminal-Normal mode ~
|
||||
*Terminal-mode*
|
||||
When the job is running the contents of the terminal is under control of the
|
||||
job. That includes the cursor position. Typed keys are sent to the job.
|
||||
The terminal contents can change at any time. This is called Terminal-Job
|
||||
mode.
|
||||
|
||||
Use CTRL-W N (or 'termkey' N) to switch to Terminal-Normal mode. Now the
|
||||
contents of the terminal window is under control of Vim, the job output is
|
||||
suspended. CTRL-\ CTRL-N does the same.
|
||||
|
||||
Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
|
||||
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
|
||||
|
||||
*E946*
|
||||
In Terminal-Normal mode you can move the cursor around with the usual Vim
|
||||
commands, Visually mark text, yank text, etc. But you cannot change the
|
||||
contents of the buffer. The commands that would start insert mode, such as
|
||||
'i' and 'a', return to Terminal-Job mode. The window will be updated to show
|
||||
the contents of the terminal. |:startinsert| is ineffective.
|
||||
|
||||
In Terminal-Normal mode the statusline and window title show "(Terminal)". If
|
||||
the job ends while in Terminal-Normal mode this changes to
|
||||
"(Terminal-finished)".
|
||||
|
||||
It is not possible to enter Insert mode from Terminal-Job mode.
|
||||
|
||||
|
||||
Cursor style ~
|
||||
|
||||
By default the cursor in the terminal window uses a not blinking block. The
|
||||
normal xterm escape sequences can be used to change the blinking state and the
|
||||
shape. Once focus leaves the terminal window Vim will restore the original
|
||||
cursor.
|
||||
|
||||
An exception is when xterm is started with the "-bc" argument, or another way
|
||||
that causes the cursor to blink. This actually means that the blinking flag
|
||||
is inverted. Since Vim cannot detect this, the terminal window cursor
|
||||
blinking will also be inverted.
|
||||
|
||||
|
||||
Unix ~
|
||||
|
||||
On Unix a pty is used to make it possible to run all kinds of commands. You
|
||||
can even run Vim in the terminal! That's used for debugging, see below.
|
||||
|
||||
Environment variables are used to pass information to the running job:
|
||||
TERM name of the terminal, 'term'
|
||||
ROWS number of rows in the terminal initially
|
||||
LINES same as ROWS
|
||||
COLUMNS number of columns in the terminal initially
|
||||
COLORS number of colors, 't_Co' (256*256*256 in the GUI)
|
||||
VIM_SERVERNAME v:servername
|
||||
|
||||
The |client-server| feature can be used to communicate with the Vim instance
|
||||
where the job was started. This only works when v:servername is not empty.
|
||||
If needed you can set it with: >
|
||||
call remote_startserver('vim-server')
|
||||
|
||||
In the job you can then do something like: >
|
||||
vim --servername $VIM_SERVERNAME --remote +123 some_file.c
|
||||
This will open the file "some_file.c" and put the cursor on line 123.
|
||||
|
||||
|
||||
MS-Windows ~
|
||||
|
||||
On MS-Windows winpty is used to make it possible to run all kind of commands.
|
||||
Obviously, they must be commands that run in a terminal, not open their own
|
||||
window.
|
||||
|
||||
You need the following two files from winpty:
|
||||
|
||||
winpty.dll
|
||||
winpty-agent.exe
|
||||
|
||||
You can download them from the following page:
|
||||
|
||||
https://github.com/rprichard/winpty
|
||||
|
||||
Just put the files somewhere in your PATH. You can set the 'winptydll' option
|
||||
to point to the right file, if needed. If you have both the 32-bit and 64-bit
|
||||
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
|
||||
build.
|
||||
|
||||
==============================================================================
|
||||
2. Remote testing *terminal-testing*
|
||||
|
||||
Most Vim tests execute a script inside Vim. For some tests this does not
|
||||
work, running the test interferes with the code being tested. To avoid this
|
||||
Vim is executed in a terminal window. The test sends keystrokes to it and
|
||||
inspects the resulting screen state.
|
||||
|
||||
Functions ~
|
||||
|
||||
term_sendkeys() send keystrokes to a terminal (not subject to tmap)
|
||||
term_wait() wait for screen to be updated
|
||||
term_scrape() inspect terminal screen
|
||||
|
||||
|
||||
==============================================================================
|
||||
3. Debugging *terminal-debug*
|
||||
|
||||
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||
the source code in a Vim window. Since this is completely contained inside
|
||||
Vim this also works remotely over an ssh connection.
|
||||
|
||||
|
||||
Starting ~
|
||||
|
||||
Load the plugin with this command: >
|
||||
packadd termdebug
|
||||
< *:Termdebug*
|
||||
To start debugging use `:TermDebug` folowed by the command name, for example: >
|
||||
:Termdebug vim
|
||||
|
||||
This opens two windows:
|
||||
gdb window A terminal window in which "gdb vim" is executed. Here you
|
||||
can directly interact with gdb. The buffer name is "!gdb".
|
||||
program window A terminal window for the executed program. When "run" is
|
||||
used in gdb the program I/O will happen in this window, so
|
||||
that it does not interfere with controlling gdb. The buffer
|
||||
name is "gdb program".
|
||||
|
||||
The current window is used to show the source code. When gdb pauses the
|
||||
source file location will be displayed, if possible. A sign is used to
|
||||
highlight the current position (using highlight group debugPC).
|
||||
|
||||
If the buffer in the current window is modified, another window will be opened
|
||||
to display the current gdb position.
|
||||
|
||||
Focus the terminal of the executed program to interact with it. This works
|
||||
the same as any command running in a terminal window.
|
||||
|
||||
When the debugger ends, typically by typing "quit" in the gdb window, the two
|
||||
opened windows are closed.
|
||||
|
||||
|
||||
Example session ~
|
||||
|
||||
Start in the Vim "src" directory and build Vim: >
|
||||
% make
|
||||
Start Vim: >
|
||||
% ./vim
|
||||
Load the termdebug plugin and start debugging Vim: >
|
||||
:packadd termdebug
|
||||
:Termdebug vim
|
||||
You should now have three windows:
|
||||
source - where you started, has a window toolbar with buttons
|
||||
gdb - you can type gdb commands here
|
||||
program - the executed program will use this window
|
||||
You can use CTRL-W CTRL-W or the mouse to move focus between windows.
|
||||
Put focus on the gdb window and type: >
|
||||
break ex_help
|
||||
run
|
||||
Vim will start running in the program window. Put focus there and type: >
|
||||
:help gui
|
||||
Gdb will run into the ex_help breakpoint. The source window now shows the
|
||||
ex_cmds.c file. A ">>" marker will appear where the breakpoint was set. The
|
||||
line where the debugger stopped is highlighted. You can now step through the
|
||||
program. Let's use the mouse: click on the "Next" button in the window
|
||||
toolbar. You will see the highlighting move as the debugger executes a line
|
||||
of source code.
|
||||
|
||||
Click "Next" a few times until the for loop is highlighted. Put the cursor on
|
||||
the end of "eap->arg", then click "Eval" in the toolbar. You will see this
|
||||
displayed:
|
||||
"eap->arg": 0x555555e68855 "gui" ~
|
||||
This way you can inspect the value of local variables. You can also focus the
|
||||
gdb window and use a "print" command, e.g.: >
|
||||
print *eap
|
||||
|
||||
Now go back to the source window and put the cursor on the first line after
|
||||
the for loop, then type: >
|
||||
:Break
|
||||
You will see a ">>" marker appear, this indicates the new breakpoint. Now
|
||||
click "Cont" in the toolbar and the code until the breakpoint will be
|
||||
executed.
|
||||
|
||||
You can type more advanced commands in the gdb window. For example, type: >
|
||||
watch curbuf
|
||||
Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution
|
||||
will now continue until the value of "curbuf" changes, which is in do_ecmd().
|
||||
To remove this watchpoint again type in the gdb window: >
|
||||
delete 3
|
||||
|
||||
You can see the stack by typing in the gdb window: >
|
||||
where
|
||||
Move through the stack frames, e.g. with: >
|
||||
frame 3
|
||||
The source window will show the code, at the point where the call was made to
|
||||
a deeper level.
|
||||
|
||||
|
||||
Stepping through code ~
|
||||
|
||||
Put focus on the gdb window to type commands there. Some common ones are:
|
||||
- CTRL-C interrupt the program
|
||||
- next execute the current line and stop at the next line
|
||||
- step execute the current line and stop at the next statement, entering
|
||||
functions
|
||||
- finish execute until leaving the current function
|
||||
- where show the stack
|
||||
- frame N go to the Nth stack frame
|
||||
- continue continue execution
|
||||
|
||||
In the window showing the source code some commands can used to control gdb:
|
||||
:Break set a breakpoint at the current line; a sign will be displayed
|
||||
:Delete delete a breakpoint at the current line
|
||||
:Step execute the gdb "step" command
|
||||
:Over execute the gdb "next" command (:Next is a Vim command)
|
||||
:Finish execute the gdb "finish" command
|
||||
:Continue execute the gdb "continue" command
|
||||
|
||||
The plugin adds a window toolbar with these entries:
|
||||
Step :Step
|
||||
Next :Over
|
||||
Finish :Finish
|
||||
Cont :Continue
|
||||
Eval :Evaluate
|
||||
This way you can use the mouse to perform the most common commands.
|
||||
|
||||
|
||||
Inspecting variables ~
|
||||
|
||||
:Evaluate evaluate the expression under the cursor
|
||||
K same
|
||||
:Evaluate {expr} evaluate {expr}
|
||||
:'<,'>Evaluate evaluate the Visually selected text
|
||||
|
||||
This is similar to using "print" in the gdb window.
|
||||
|
||||
|
||||
Other commands ~
|
||||
|
||||
:Gdb jump to the gdb window
|
||||
:Program jump to the window with the running program
|
||||
|
||||
|
||||
Communication ~
|
||||
|
||||
There is another, hidden, buffer, which is used for Vim to communicate with
|
||||
gdb. The buffer name is "gdb communication". Do not delete this buffer, it
|
||||
will break the debugger.
|
||||
|
||||
|
||||
Customizing ~
|
||||
|
||||
To change the name of the gdb command, set the "termdebugger" variable before
|
||||
invoking `:Termdebug`: >
|
||||
let termdebugger = "mygdb"
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface. This probably requires gdb version 7.12.
|
||||
|
||||
The color of the signs can be adjusted with these highlight groups:
|
||||
- debugPC the current position
|
||||
- debugBreakpoint a breakpoint
|
||||
|
||||
The defaults are, when 'background' is "light":
|
||||
hi debugPC term=reverse ctermbg=lightblue guibg=lightblue
|
||||
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||
|
||||
When 'background' is "dark":
|
||||
hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
|
||||
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||
|
||||
To change the width of the Vim window when debugging starts, and use a
|
||||
vertical split: >
|
||||
let g:termdebug_wide = 163
|
||||
This will set &columns to 163 when :Termdebug is used. The value is restored
|
||||
when quitting the debugger.
|
||||
If g:termdebug_wide is set and &Columns is already larger than
|
||||
g:termdebug_wide then a vertical split will be used without changing &columns.
|
||||
Set it to 1 to get a vertical split without every changing &columns (useful
|
||||
for when the terminal can't be resized by Vim).
|
||||
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.0. Last change: 2017 Jun 13
|
||||
*todo.txt* For Vim version 8.0. Last change: 2017 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -35,15 +35,47 @@ entered there will not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
MS-Windows build and installer improvements:
|
||||
- Switch to VC2015 for building. (Ken Takata, 2017 Sep 21)
|
||||
Check resulting binary on XP.
|
||||
- Patch to install 32 and 64 bit Gvimext and related dll files. (Ken Takata,
|
||||
2017 Sep 23, #2144)
|
||||
|
||||
:term hangs in Athena and Motif. (Kazunobu Kuriyama, 2017 Sep 17)
|
||||
|
||||
Universal solution to detect if t_RS is working, using cursor position.
|
||||
Koichi Iwamoto, #2126
|
||||
|
||||
No maintainer for Vietnamese translations.
|
||||
No maintainer for Simplified Chinese translations.
|
||||
|
||||
Terminal emulator window:
|
||||
- Lots of stuff to implement, see src/terminal.c
|
||||
- Improve debugger interface:
|
||||
Include all debug features of Agide.
|
||||
- Implement the right-click popup menu for the terminal. Can use the
|
||||
completion popup menu code and mouse dragging.
|
||||
Use it for "set breakpoint", "remove breakpoint", etc.
|
||||
- make showballoon() work in a terminal. Requires getting mouse-move
|
||||
events.
|
||||
- send 'balloonText' events for the cursor position (using CursorHold ?)
|
||||
in terminal mode.
|
||||
- get ideas from http://clewn.sf.net
|
||||
- Look into the idevim plugin/script.
|
||||
- Improve testing:
|
||||
Make a screenshot of a terminal, store in a file.
|
||||
Display a stored screenshot, display diff with another one.
|
||||
Make a test that puts Vim in a specific state, make a screenshot and compare
|
||||
with the expected screenshot. Set t_Co to 256.
|
||||
|
||||
+channel:
|
||||
- When redrawing for the channel buffer, command line completion is cleared.
|
||||
(Ramel Eshed, 2017 May 4)
|
||||
- Add a separate timeout for opening a socket. Currently it's fixed at 50
|
||||
msec, which is too small for a remote connection. (tverniquet, #2130)
|
||||
- Try out background make plugin:
|
||||
https://github.com/AndrewVos/vim-make-background
|
||||
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
||||
- Add 'cwd' argument to start_job(): directory to change to in the child.
|
||||
check for valid directory before forking.
|
||||
Part of patch for environment, Yasuhiro Matsumoto, #1160
|
||||
- Writing raw mode to a buffer should still handle NL characters as line
|
||||
breaks. (Dmitry Zotikov, 2017 Aug 16)
|
||||
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
|
||||
2016 Dec 11, #1320)
|
||||
- Implement |job-term| ?
|
||||
@@ -58,11 +90,13 @@ entered there will not be repeated below, unless there is extra information.
|
||||
Feb 9) How to do this on MS-Windows?
|
||||
- For connection to server, a "keep open" flag would be useful. Retry
|
||||
connecting in the main loop with zero timeout.
|
||||
- job_start(): run job in a newly opened terminal.
|
||||
- job_start(): run job in a newly opened terminal (not a terminal window).
|
||||
With xterm could use -S{pty}.
|
||||
Although user could use "xterm -e 'cmd arg'".
|
||||
|
||||
Regexp problems:
|
||||
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
|
||||
characters, esp. including 0xa0. Use character class zero.
|
||||
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
||||
(Manuel Ortega, 2016 Apr 24)
|
||||
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
|
||||
@@ -101,17 +135,68 @@ Regexp problems:
|
||||
col and vcol when moving to another line.
|
||||
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
|
||||
out the \& works. Seems any column check after \& fails.
|
||||
- The pattern "\1" with the old engine gives E65, with the new engine it
|
||||
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
|
||||
had_endbrace[] is set but not initialized or used.
|
||||
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
|
||||
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
|
||||
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
||||
(2017 May 15, #1252)
|
||||
|
||||
Include a few color schemes, based on popularity:
|
||||
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
|
||||
http://vimawesome.com/?q=tag:color-scheme
|
||||
Use names that indicate their appearnce (Christian Brabandt, 2017 Aug 3)
|
||||
- monokai - Xia Crusoe (2017 Aug 4)
|
||||
- seoul256 - Christian Brabandt (2017 Aug 3)
|
||||
- gruvbox - Christian Brabandt (2017 Aug 3)
|
||||
- janah - Marco Hinz (2017 Aug 4)
|
||||
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
|
||||
Suggested by Hiroki Kokubun:
|
||||
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
|
||||
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
||||
Include solarized color scheme?
|
||||
|
||||
When starting with --clean packages under "start" are not loaded. Make this
|
||||
work: :packadd START {name} similar to :runtime START name
|
||||
|
||||
When using :packadd files under "later" are not used, which is inconsistent
|
||||
with packages under "start". (xtal8, #1994)
|
||||
|
||||
After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
|
||||
2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
|
||||
|
||||
Patch to fix popup menu drawing when changing the window size. (Ozaki Kiichi,
|
||||
2017 Sep 17, #2110)
|
||||
|
||||
Patch to fix cursor highlighting with match. (Ozaki Kiichi, 2017 Sep 17,
|
||||
#2111)
|
||||
|
||||
Patch for not profiling the first line of a script. (Lemonboy, 2017 Sep 17,
|
||||
#2103)
|
||||
|
||||
Mac Terminal.app: ctermbg=15 gives light grey instead of white.
|
||||
ctermbg=256 breaks clearing till end of the line. Both work fine in xterm.
|
||||
|
||||
Patch to avoid `rb_load_protect` as a workaround not to crash (#2147)
|
||||
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
||||
Update 2016 Aug 10.
|
||||
|
||||
Using ":hi" causes a redraw, but a redraw may update the status line, which
|
||||
may trigger a ":hi" command.
|
||||
|
||||
Last line not in profile if it is a continuation line. (LemonBoy, 2017 Sep 17,
|
||||
#2112)
|
||||
|
||||
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||
(Marcin Szewczyk, 2017 Apr 26)
|
||||
|
||||
Patch to make Mac features more clear and add "macdarwin". (Kazunobu Kuriyama,
|
||||
2017 Sep 5)
|
||||
|
||||
Using 'wildignore' also applies to literally entered file name. Also with
|
||||
:drop (remote commands).
|
||||
|
||||
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
||||
Lemonboy can reproduce (2017 Jun 5)
|
||||
|
||||
@@ -119,30 +204,124 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Patch to make ":set scroll&" work properly. (Ozaki Kiichi, 2017 Sep 17, #2104)
|
||||
|
||||
mswin.vim should not map CTRL-F in the console (#2093)
|
||||
Patch from Christian, 2017 Sep 15.
|
||||
Installer patch from Ken Takata, link on #2093.
|
||||
|
||||
Default install on MS-Windows should source defaults.vim.
|
||||
Ask whether to use Windows or Vim key behavior?
|
||||
|
||||
matchit hasn't been maintained for a long time. #955.
|
||||
|
||||
Test runtime files.
|
||||
Start with filetype detection: testdir/test_filetype.vim
|
||||
|
||||
Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
|
||||
|
||||
Add options_default() / options_restore() to set several options to Vim
|
||||
defaults for a plugin. Comments from Zyx, 2017 May 10.
|
||||
Perhaps use a vimcontext / endvimcontext command block.
|
||||
|
||||
Using freed memory with "qf" FileType autocommand that does :cclose.
|
||||
(Lemonboy, 2017 May 28, #1730, fix in 1734, with test that doesn't fail, but
|
||||
it fails when run manually) Add "starting" to test_override()?
|
||||
After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
|
||||
13, #2084). Set old position after the command.
|
||||
|
||||
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
|
||||
Still happens (2017 Jul 9)
|
||||
|
||||
When bracketed paste is used, pasting at the ":append" prompt does not get the
|
||||
line breaks. (Ken Takata, 2017 Aug 22)
|
||||
|
||||
This example in the help does not work (Andy Wokula, 2017 Aug 20):
|
||||
augroup mine | au! BufRead | augroup END
|
||||
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
Memory leak in test_arabic.
|
||||
Using uninitialized value in test_crypt.
|
||||
|
||||
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
||||
|
||||
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
It can replace the BeOS code, which is likely not used anymore.
|
||||
Now on github: #1856.
|
||||
Got permission to include this under the Vim license.
|
||||
|
||||
Refactored HTML indent file. (Michael Lee, #1821)
|
||||
|
||||
Test_writefile_fails_conversion failure on Solaris because if different iconv
|
||||
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
|
||||
|
||||
All functions are global, which makes functions like get() and len() awkward.
|
||||
For the future use the ~get() and ~len() syntax, e.g.:
|
||||
mylist~get(idx)
|
||||
mydict~get(idx)
|
||||
mystring~len()
|
||||
Alternatives for ~:
|
||||
^ list^get() could also be used
|
||||
. list.get() already means concatenate
|
||||
$ list$get() harder to read
|
||||
@ list@get() harder to read
|
||||
-> list->get() two characters, used for lambda
|
||||
|
||||
The ++ options for the :edit command are also useful on the Vim command line.
|
||||
|
||||
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
|
||||
#2089) Patch with possible solution by Björn Linse.
|
||||
|
||||
X11: Putting more than about 262040 characters of text on the clipboard and
|
||||
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
|
||||
clip_x11_request_selection_cb() is called with zero value and length.
|
||||
Also: Get an error message from free() in the process that owns the selection.
|
||||
Seems to happen when the selection is requested the second time, but before
|
||||
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
||||
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
|
||||
|
||||
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
|
||||
|
||||
Creating a partial with an autoload function is confused about the "self"
|
||||
attribute of the function. For an unknown function assume "self" and make
|
||||
that optiona? (Bjorn Linse, 2017 Aug 5)
|
||||
|
||||
Cindent: returning a structure has more indent for the second item.
|
||||
(Sam Pagenkopf, 2017 Sep 14, #2090)
|
||||
|
||||
Completion mixes results from the current buffer with tags and other files.
|
||||
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
|
||||
terminal.c and then CTRL-N twice.
|
||||
Should do current file first and not split it up when more results are found.
|
||||
(Also #1890)
|
||||
|
||||
Python: After "import vim" error messages only show the first line of the
|
||||
stack trace. (Yggdroot, 2017 Jul 28, #1887)
|
||||
|
||||
When checking if a bufref is valid, also check the buffer number, to catch the
|
||||
case of :bwipe followed by :new.
|
||||
|
||||
Files for Latvian language. (Vitolins, 2017 May 3, #1675)
|
||||
Patch to skip writing a temp file for diffing if the buffer is equal to the
|
||||
existing file. (Akria Sheng, 2017 Jul 22)
|
||||
Could also skip writing lines that are the same.
|
||||
|
||||
Patch with Files for Latvian language. (Vitolins, 2017 May 3, #1675)
|
||||
|
||||
MS-Windows: Opening same file in a second gvim hangs. (Sven Bruggemann, 2017
|
||||
Jul 4)
|
||||
|
||||
Setting 'clipboard' to "unnamed" makes a global command very slow (Daniel
|
||||
Drucker, 2017 May 8).
|
||||
This was supposed to be fixed, did it break again somehow?
|
||||
Christian cannot reproduce it.
|
||||
|
||||
Using composing char in mapping does not work properly. maparg() shows the
|
||||
wrong thing. (Nikolai Pavlov, 2017 Jul 8, #1827)
|
||||
Or is this not an actual problem?
|
||||
|
||||
Better TeX indent file. (Christian Brabandt, 2017 May 3)
|
||||
|
||||
Openhab syntax file (mueller, #1678)
|
||||
|
||||
Patch to use a separate code for BS on Windows. (Linwei, #1823)
|
||||
|
||||
Use gvimext.dll from the nightly build? (Issue #249)
|
||||
|
||||
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
||||
@@ -151,18 +330,15 @@ Use gvimext.dll from the nightly build? (Issue #249)
|
||||
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
||||
8, #1690)
|
||||
|
||||
'equalalways' only works for one column. (Glacambre, 2017 May 15, #1707)
|
||||
|
||||
Include solarized color scheme?
|
||||
|
||||
Updates to GTK help. (Kazunobu Kuriyama, 2017 May 4)
|
||||
|
||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||
manager. Problem with Motif?
|
||||
|
||||
Bogus characters inserted when triggering indent while changing text.
|
||||
(Vitor Antunes, 2016 Nov 22, #1269)
|
||||
|
||||
Using "wviminfo /tmp/viminfo" does not store file marks that Vim knows about,
|
||||
it only works when merging with an existing file. (Shougo, 2017 Jun 19, #1781)
|
||||
|
||||
Segmentation fault with complete(). (Lifepillar, 2017 Apr 29, #1668)
|
||||
Check for "pat" to be NULL in search_for_exact_line()?
|
||||
How did it get NULL? Comment by Christian, Apr 30.
|
||||
@@ -172,6 +348,12 @@ Is it possible to keep the complete menu open when calling complete()?
|
||||
|
||||
Memory leak in test97? The string is actually freed. Weird.
|
||||
|
||||
Patch to add configure flags to skip rtl, farsi and arabic support.
|
||||
(Diego Carrión, #1867)
|
||||
|
||||
assert_fails() can only check for the first error. Make it possible to have
|
||||
it catch multiple errors and check all of them.
|
||||
|
||||
New value "uselast" for 'switchbuf'. (Lemonboy, 2017 Apr 23, #1652)
|
||||
|
||||
Add a toolbar in the terminal. Can be global, above all windows, or specific
|
||||
@@ -185,7 +367,7 @@ Still need maplist() to find the mappings. What can we use to identify a
|
||||
mapping? Something unique would be better than the LHS.
|
||||
Perhaps simpler: actually delete the mappings. Use maplist() to list matching
|
||||
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
||||
maprestore() to restore (using the output of maplist().
|
||||
maprestore() to restore (using the output of maplist()).
|
||||
|
||||
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
||||
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
||||
@@ -200,6 +382,9 @@ What if there is an invalid character?
|
||||
|
||||
Json string with trailing \u should be an error. (Lcd)
|
||||
|
||||
import can't be used in define option when include matches too.
|
||||
(Romain Lafourcade, 2017 Jun 18, #1519)
|
||||
|
||||
When session file has name in argument list but the buffer was deleted, the
|
||||
buffer is not deleted when using the session file. (#1393)
|
||||
Should add the buffer in hidden state.
|
||||
@@ -211,10 +396,6 @@ Wrong diff highlighting with three files. (2016 Oct 20, #1186)
|
||||
Also get E749 on exit.
|
||||
Another example in #1309
|
||||
|
||||
Patch to change all use of &sw to shiftwidth(). (Tyru, 2017 Feb 19)
|
||||
Takuya Fujiwara
|
||||
Wait until maintainers integrate it.
|
||||
|
||||
When deleting a mark or register, leave a tombstone, so that it's also deleted
|
||||
when writing viminfo (and the delete was the most recent action). #1339
|
||||
|
||||
@@ -244,6 +425,12 @@ highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)
|
||||
Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca
|
||||
Fuentes, 2017 Feb 12, #1470)
|
||||
|
||||
Add a "keytrans()" function, which turns the internal byte representation of a
|
||||
key into a form that can be used for :map. E.g.
|
||||
let xx = "\<C-Home>"
|
||||
echo keytrans(xx)
|
||||
<C-Home>
|
||||
|
||||
Check for errors E704 and E705 only does VAR_FUNC, should also do VAR_PARTIAL.
|
||||
(Nikolai Pavlov, 2017 Mar 13, #1557)
|
||||
Make a function to check for function-like type?
|
||||
@@ -257,12 +444,6 @@ Implement optional arguments for functions.
|
||||
call Foo(12, all = 0)
|
||||
call Foo(12, 15, 0)
|
||||
|
||||
writefile() does not abort as soon as an error is found. (Nikolai Pavlov,
|
||||
2017 Feb 14, #1476)
|
||||
|
||||
Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
|
||||
Feb 14).
|
||||
|
||||
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
|
||||
support, or similar.
|
||||
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
|
||||
@@ -273,11 +454,13 @@ somewhere else. :{range}copy {dest} !cmd
|
||||
Patch to fix that empty first tab is not in session.
|
||||
(Hirohito Higashi, 2016 Nov 25, #1282)
|
||||
|
||||
Patch for restoring wide characters in the console buffer.
|
||||
(Ken Takata, 2016 Jun 7)
|
||||
Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
|
||||
Alternative from Christian Brabandt. (2010 Sep 19)
|
||||
New one from Yasuhiro Matsumoto, #1277.
|
||||
|
||||
Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
|
||||
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
|
||||
Update Aug 2017: #1954
|
||||
|
||||
Characters deleted on completion. (Adrià Farrés, 2017 Apr 20, #1645)
|
||||
Remarks from Christian Brabandt (Apr 21)
|
||||
@@ -286,9 +469,6 @@ The TermResponse event is not triggered when a plugin has set 'eventignore' to
|
||||
"all". Netrw does this. (Gary Johnson, 2017 Jan 24)
|
||||
Postpone the event until 'eventignore' is reset.
|
||||
|
||||
Patch to make urxvt mouse work better, recognize Esc[*M termcap code.
|
||||
(Maurice Bos, 2017 Feb 17, #1486)
|
||||
|
||||
Expanding /**/ is slow. Idea by Luc Hermitte, 2017 Apr 14.
|
||||
|
||||
Once .exe with updated installer is available: Add remark to download page
|
||||
@@ -303,7 +483,7 @@ MS-Windows. Perhaps in \# the \ is seen as a path separator. (Axel Bender,
|
||||
2017 Feb 9) Can we expand wildcards first and send the path literally to the
|
||||
receiving Vim? Or make an exception for #, it's not useful remotely.
|
||||
|
||||
":sbr" docs state it respect 'switchbuf', but "vsplit" does not cause a
|
||||
":sbr" docs state it respects 'switchbuf', but "vsplit" does not cause a
|
||||
vertical split. (Haldean Brown, 2017 Mar 1)
|
||||
|
||||
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
|
||||
@@ -324,11 +504,24 @@ Does this also fix #1408 ?
|
||||
|
||||
Patch to add "module" to quickfix entries. (Coot, 2017 Jun 8, #1757)
|
||||
|
||||
'cursorline' and match interfere. (Ozaki Kiichi, 2017 Jun 23, #1792)
|
||||
|
||||
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
||||
|
||||
Patch to be able to separately map CTRL-H and BS on Windows.
|
||||
(Linwei, 2017 Jul 11, #1833)
|
||||
|
||||
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
|
||||
Apr 23, #1653)
|
||||
|
||||
Using an external diff is inefficient. Not all systems have a good diff
|
||||
program available (esp. MS-Windows). Would be nice to have in internal diff
|
||||
implementation. Can then also use this for displaying changes within a line.
|
||||
Olaf Dabrunz is working on this. (10 Jan 2016)
|
||||
9 Instead invoking an external diff program, use builtin code. One can be
|
||||
found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
|
||||
It's complicated and badly documented.
|
||||
|
||||
Window resizing with 'winfixheight': With a vertical split the height changes
|
||||
anyway. (Tommy allen, 2017 Feb 21, #1502)
|
||||
|
||||
@@ -385,9 +578,6 @@ Include the test.
|
||||
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
|
||||
New update 2017 Apr 10, #1628
|
||||
|
||||
Unnamed register only contains the last deleted text when appending deleted
|
||||
text to a register. (Wolfgang Jeltsch, reproduced by Ben Fritz, 2017 Apr 10)
|
||||
|
||||
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
||||
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
||||
|
||||
@@ -405,6 +595,8 @@ execute() cannot be used with command completeion. (Daniel Hahler, 2016 Oct 1,
|
||||
|
||||
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
|
||||
|
||||
:map X may print invalid data. (Nikolay Pavlov, 2017 Jul 3, #1816)
|
||||
|
||||
Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)
|
||||
|
||||
patch for 'spellcamelcase' option: spellcheck each CamelCased word.
|
||||
@@ -472,11 +664,6 @@ Patch to improve map documentation. Issue #799.
|
||||
|
||||
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
|
||||
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
||||
Update 2016 Aug 10.
|
||||
|
||||
We can use '. to go to the last change in the current buffer, but how about
|
||||
the last change in any buffer? Can we use ', (, is next to .)?
|
||||
|
||||
@@ -491,20 +678,12 @@ Reject the value? #710.
|
||||
Patch to fix increment/decrement not working properly when 'virtualedit' is
|
||||
set. (Hirohito Higashi, 2016 Aug 1, #923)
|
||||
|
||||
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
|
||||
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
|
||||
Update mentioned by Christian, 2016 Apr 25.
|
||||
Update from Ken Takata, 2016 Jul 17.
|
||||
|
||||
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
|
||||
Because of using the initial buffer? (Dun Peal, 2016 May 12)
|
||||
|
||||
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
||||
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>
|
||||
|
||||
Patch to fix that an encoding conversion failure results in a corrupted or
|
||||
empty file. (Christian Brabandt, #1765, https://github.com/chrisbra/vim-mq-patches/blob/master/conversion_error)
|
||||
|
||||
Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
|
||||
|
||||
Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
|
||||
@@ -522,11 +701,6 @@ Possibly include the needed code so that it can be build everywhere.
|
||||
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
|
||||
but the reference remains valid.
|
||||
|
||||
Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
|
||||
Kiichi, 2016 Feb 28)
|
||||
Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
|
||||
Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
|
||||
|
||||
Need to try out instructions in INSSTALLpc.txt about how to install all
|
||||
interfaces and how to build Vim with them.
|
||||
Appveyor build with self-installing executable, includes getting most
|
||||
@@ -639,8 +813,6 @@ Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)
|
||||
Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
|
||||
Only remembers one error.
|
||||
|
||||
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
|
||||
|
||||
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
|
||||
|
||||
Unexpected delay when using CTRL-O u. It's not timeoutlen.
|
||||
@@ -708,11 +880,6 @@ Patch to use two highlight groups for relative numbers. (Shaun Brady, 2016 Jan
|
||||
MS-Windows: Crash opening very long file name starting with "\\".
|
||||
(Christian Brock, 2012 Jun 29)
|
||||
|
||||
Using an external diff is inefficient. Not all systems have a good diff
|
||||
program available (esp. MS-Windows). Would be nice to have in internal diff
|
||||
implementation. Can then also use this for displaying changes within a line.
|
||||
Olaf Dabrunz is working on this.
|
||||
|
||||
The OptionSet autocommand event is not always triggered. (Rick Howe, 2015 Sep
|
||||
24): :diffthis, :diffoff.
|
||||
|
||||
@@ -986,9 +1153,6 @@ For the path use a hash instead of dir%dir%dir%name hash%name.
|
||||
Patch to add ":undorecover", get as much text out of the undo file as
|
||||
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)
|
||||
|
||||
Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
It can replace the BeOS code, which is likely not used anymore.
|
||||
|
||||
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
|
||||
|
||||
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
|
||||
@@ -1281,9 +1445,6 @@ Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
|
||||
When using a Vim server, a # in the path causes an error message.
|
||||
(Jeff Lanzarotta, 2011 Feb 17)
|
||||
|
||||
Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
|
||||
Fritz (2011 Oct 27).
|
||||
|
||||
When there is a ">" in a line that "gq" wraps to the start of the next line,
|
||||
then the following line will pick it up as a leader. Should get the leader
|
||||
from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
|
||||
@@ -1388,6 +1549,9 @@ GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
|
||||
Win32: tear-off menu does not work when menu language is German. (Markus
|
||||
Bossler, 2011 Mar 2) Fixed by 7.3.095?
|
||||
|
||||
Wish for NetBeans commands:
|
||||
- make it possible to have 'defineAnnoType' also handle terminal colors.
|
||||
|
||||
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
|
||||
|
||||
7.3.014 changed how backslash at end of line works, but still get a NUL when
|
||||
@@ -1408,9 +1572,6 @@ New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
|
||||
Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
|
||||
^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
|
||||
|
||||
'colorcolumn' has higher priority than hlsearch. Should probably be the other
|
||||
way around. (Nazri Ramliy, 2013 Feb 19)
|
||||
|
||||
When Vim is put in the background (SIGTSTP) and then gets a SIGHUP it doesn't
|
||||
exit. It exists as soon as back in the foreground. (Stephen Liang, 2011 Jan
|
||||
9) Caused by vim_handle_signal(SIGNAL_BLOCK); in ui.c.
|
||||
@@ -1459,14 +1620,13 @@ setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
|
||||
7 The 'directory' option supports changing path separators to "%" to make
|
||||
file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
|
||||
Patch by Christian Brabandt, 2010 Oct 21.
|
||||
Is this an update: related to: #179
|
||||
https://github.com/chrisbra/vim-mq-patches/blob/master/backupdir
|
||||
Fixed patch 2017 Jul 1.
|
||||
|
||||
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
|
||||
2010 Oct 24)
|
||||
|
||||
Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
|
||||
Alternative from Christian Brabandt. (2010 Sep 19)
|
||||
New one from Yasuhiro Matsumoto, #1277.
|
||||
|
||||
Messages in message.txt are highlighted as examples.
|
||||
|
||||
When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
|
||||
@@ -2075,9 +2235,6 @@ with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then
|
||||
go to Insert mode and add a few lines. Then backspacing every other time
|
||||
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
|
||||
|
||||
Windows installer should install 32-bit version of right-click handler also on
|
||||
64-bit systems. (Brian Cunningham, 2011 Dec 28)
|
||||
|
||||
Windows installer could add a "open in new tab of existing Vim" menu entry.
|
||||
Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
|
||||
Just have two choices, always using one Vim and selecting between using an
|
||||
@@ -2406,13 +2563,6 @@ respond to selection requests. Invoking XtDisownSelection() before executing
|
||||
the shell doesn't help. Would require forking and doing a message loop, like
|
||||
what happens for the GUI.
|
||||
|
||||
X11: Putting more than about 262040 characters of text on the clipboard and
|
||||
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
|
||||
clip_x11_request_selection_cb() is called with zero value and length.
|
||||
Also: Get an error message from free() in the process that owns the selection.
|
||||
Seems to happen when the selection is requested the second time, but before
|
||||
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
||||
|
||||
":vimgrep" does not recognize a recursive symlink. Is it possible to detect
|
||||
this, at least for Unix (using device/inode)?
|
||||
|
||||
@@ -3275,18 +3425,6 @@ Most interesting new features to be added when all bugs have been fixed:
|
||||
Alternative: Make a function for Ex commands: cmd_edit().
|
||||
- Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
|
||||
can be selected with CTRL-V. Allow '$' (end of line) for col2.
|
||||
- Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye.
|
||||
Should work like an IDE. Try to keep it generic. Now found here:
|
||||
http://clewn.sf.net.
|
||||
And the idevim plugin/script.
|
||||
To be able to start the debugger from inside Vim: For GUI run a program
|
||||
with a netbeans connection; for console: start a program that splits the
|
||||
terminal, runs the debugger in one window and reconnect Vim I/O to the
|
||||
other window.
|
||||
Wishes for NetBeans commands:
|
||||
- make it possible to have 'defineAnnoType' also handle terminal colors.
|
||||
- send 'balloonText' events for the cursor position (using CursorHold ?)
|
||||
in terminal mode.
|
||||
- ECLIPSE plugin. Problem is: the interface is very complicated. Need to
|
||||
implement part in Java and then connect to Vim. Some hints from Alexandru
|
||||
Roman, 2004 Dec 15. Should then also work with Oracle Jdeveloper, see JSR
|
||||
@@ -3299,9 +3437,6 @@ Most interesting new features to be added when all bugs have been fixed:
|
||||
scrolls back to where the cursor is.
|
||||
- Scroll commands by screen line. g CTRL-E and g CTRL-Y ? Requires the
|
||||
first line to be able to start halfway.
|
||||
- Running a shell command from the GUI still has limitations. Look into how
|
||||
the terminal emulator of the Vim shell project can help:
|
||||
http://vimshell.wana.at
|
||||
8 Add a command to jump to a certain kind of tag. Allow the user to specify
|
||||
values for the optional fields. E.g., ":tag size type=m".
|
||||
Also allow specifying the file and command, so that the result of
|
||||
@@ -3490,9 +3625,6 @@ Spell checking:
|
||||
Diff mode:
|
||||
9 When making small changes, e.g. deleting a character, update the diff.
|
||||
Possibly without running diff.
|
||||
9 Instead invoking an external diff program, use builtin code. One can be
|
||||
found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
|
||||
It's quite big and badly documented though.
|
||||
8 Also show difference with the file when editing started? Should show what
|
||||
can be undone. (Tom Popovich)
|
||||
|
||||
@@ -3607,7 +3739,7 @@ Multi-byte characters:
|
||||
at a multi-byte character >= 0x100.
|
||||
- Add the possibility to enter mappings which are used whenever normal text
|
||||
could be entered. E.g., for "f" command. But not in Normal mode. Sort
|
||||
of opposite of 'langmap'. Use ":tmap" command?
|
||||
of opposite of 'langmap'. Use ":amap" command?
|
||||
- When breaking a line, take properties of multi-byte characters into
|
||||
account. The "linebreak" program from Bruno Haible can do it:
|
||||
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
||||
@@ -5579,11 +5711,11 @@ Various improvements:
|
||||
- Support %name% expansion for "gf" on Windows.
|
||||
- Make "gf" work on "file://c:/path/name". "file:/c:/" and "file:///c:/"
|
||||
should also work?
|
||||
- Add 'urlpath', used like 'path' for when "gf" used on an URL?
|
||||
- Add 'urlpath', used like 'path' for when "gf" used on a URL?
|
||||
8 When using "gf" on an absolute file name, while editing a remote file
|
||||
(starts with scp:// or http://) should prepend the method and machine
|
||||
name.
|
||||
- When finding an URL or file name, and it doesn't exist, try removing a
|
||||
- When finding a URL or file name, and it doesn't exist, try removing a
|
||||
trailing '.'.
|
||||
- Add ":path" command modifier. Should work for every command that takes a
|
||||
file name argument, to search for the file name in 'path'. Use
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_01.txt* For Vim version 8.0. Last change: 2010 Nov 03
|
||||
*usr_01.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -140,19 +140,19 @@ On other systems, you have to do a little work:
|
||||
|
||||
1. Copy the tutor file. You can do this with Vim (it knows where to find it):
|
||||
>
|
||||
vim -u NONE -c 'e $VIMRUNTIME/tutor/tutor' -c 'w! TUTORCOPY' -c 'q'
|
||||
vim --clean -c 'e $VIMRUNTIME/tutor/tutor' -c 'w! TUTORCOPY' -c 'q'
|
||||
<
|
||||
This will write the file "TUTORCOPY" in the current directory. To use a
|
||||
translated version of the tutor, append the two-letter language code to the
|
||||
filename. For French:
|
||||
>
|
||||
vim -u NONE -c 'e $VIMRUNTIME/tutor/tutor.fr' -c 'w! TUTORCOPY' -c 'q'
|
||||
vim --clean -c 'e $VIMRUNTIME/tutor/tutor.fr' -c 'w! TUTORCOPY' -c 'q'
|
||||
<
|
||||
2. Edit the copied file with Vim:
|
||||
>
|
||||
vim -u NONE -c "set nocp" TUTORCOPY
|
||||
vim --clean TUTORCOPY
|
||||
<
|
||||
The extra arguments make sure Vim is started in a good mood.
|
||||
The --clean argument makes sure Vim is started with nice defaults.
|
||||
|
||||
3. Delete the copied file when you are finished with it:
|
||||
>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_03.txt* For Vim version 8.0. Last change: 2016 Jan 05
|
||||
*usr_03.txt* For Vim version 8.0. Last change: 2017 Jul 21
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -352,7 +352,7 @@ The "?" command works like "/" but searches backwards: >
|
||||
?word
|
||||
|
||||
The "N" command repeats the last search the opposite direction. Thus using
|
||||
"N" after a "/" command search backwards, using "N" after "?" searches
|
||||
"N" after a "/" command searches backwards, using "N" after "?" searches
|
||||
forward.
|
||||
|
||||
|
||||
@@ -512,7 +512,7 @@ only if it is at the beginning of a line.
|
||||
The $ character matches the end of a line. Therefore, "was$" matches the
|
||||
word was only if it is at the end of a line.
|
||||
|
||||
Let's mark the places where "the" matches in this example line with "x"s:
|
||||
Let's mark the places where "/the" matches in this example line with "x"s:
|
||||
|
||||
the solder holding one of the chips melted and the ~
|
||||
xxx xxx xxx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_07.txt* For Vim version 8.0. Last change: 2006 Apr 24
|
||||
*usr_07.txt* For Vim version 8.0. Last change: 2017 Sep 18
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -215,14 +215,14 @@ change: >
|
||||
|
||||
`.
|
||||
|
||||
Suppose you are editing the file "one.txt". Somewhere halfway the file you
|
||||
use "x" to delete a character. Then you go to the last line with "G" and
|
||||
write the file with ":w". You edit several other files, and then use ":edit
|
||||
one.txt" to come back to "one.txt". If you now use `" Vim jumps to the last
|
||||
line of the file. Using `. takes you to the position where you deleted the
|
||||
character. Even when you move around in the file `" and `. will take you to
|
||||
the remembered position. At least until you make another change or leave the
|
||||
file.
|
||||
Suppose you are editing the file "one.txt". Somewhere halfway through the
|
||||
file you use "x" to delete a character. Then you go to the last line with "G"
|
||||
and write the file with ":w". You edit several other files, and then use
|
||||
":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
|
||||
last line of the file. Using `. takes you to the position where you deleted
|
||||
the character. Even when you move around in the file `" and `. will take you
|
||||
to the remembered position. At least until you make another change or leave
|
||||
the file.
|
||||
|
||||
|
||||
FILE MARKS
|
||||
@@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
|
||||
each file has its own set of marks, they are local to the file.
|
||||
So far we were using marks with a lowercase letter. There are also marks
|
||||
with an uppercase letter. These are global, they can be used from any file.
|
||||
For example suppose that we are editing the file "foo.txt". Go to halfway the
|
||||
file ("50%") and place the F mark there (F for foo): >
|
||||
For example suppose that we are editing the file "foo.txt". Go to halfway
|
||||
down the file ("50%") and place the F mark there (F for foo): >
|
||||
|
||||
50%mF
|
||||
|
||||
@@ -355,7 +355,7 @@ a sentence to the f register (f for First): >
|
||||
"fyas
|
||||
|
||||
The "yas" command yanks a sentence like before. It's the "f that tells Vim
|
||||
the text should be place in the f register. This must come just before the
|
||||
the text should be placed in the f register. This must come just before the
|
||||
yank command.
|
||||
Now yank three whole lines to the l register (l for line): >
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_08.txt* For Vim version 8.0. Last change: 2014 Jul 06
|
||||
*usr_08.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -45,7 +45,7 @@ top one:
|
||||
+----------------------------------+
|
||||
|
||||
What you see here is two windows on the same file. The line with "====" is
|
||||
that status line. It displays information about the window above it. (In
|
||||
the status line. It displays information about the window above it. (In
|
||||
practice the status line will be in reverse video.)
|
||||
The two windows allow you to view two parts of the same file. For example,
|
||||
you could make the top window show the variable declarations of a program, and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_09.txt* For Vim version 8.0. Last change: 2006 Apr 24
|
||||
*usr_09.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -60,7 +60,7 @@ THE WINDOW TITLE
|
||||
At the very top is the window title. This is drawn by your window system.
|
||||
Vim will set the title to show the name of the current file. First comes the
|
||||
name of the file. Then some special characters and the directory of the file
|
||||
in parens. These special character can be present:
|
||||
in parens. These special characters can be present:
|
||||
|
||||
- The file cannot be modified (e.g., a help file)
|
||||
+ The file contains changes
|
||||
@@ -206,7 +206,7 @@ the "real clipboard" are called clipboard, you'll have to get used to that.
|
||||
To put text on the real clipboard, select a few different words in one of
|
||||
the gVims you have running. Then use the Edit/Copy menu entry. Now the text
|
||||
has been copied to the real clipboard. You can't see this, unless you have
|
||||
some application that shows the clipboard contents (e.g., KDE's klipper).
|
||||
some application that shows the clipboard contents (e.g., KDE's Klipper).
|
||||
Now select the other gVim, position the cursor somewhere and use the
|
||||
Edit/Paste menu. You will see the text from the real clipboard is inserted.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_12.txt* For Vim version 8.0. Last change: 2007 May 11
|
||||
*usr_12.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -290,7 +290,7 @@ command: >
|
||||
The line range "%" is used, thus this works on the whole file. The pattern
|
||||
that the ":substitute" command matches with is "\s\+$". This finds white
|
||||
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
|
||||
Later will be explained how you write patterns like this |usr_27.txt|.
|
||||
Later will be explained how you write patterns like this, see |usr_27.txt|.
|
||||
The "to" part of the substitute command is empty: "//". Thus it replaces
|
||||
with nothing, effectively deleting the matched white space.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Mar 28
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Aug 22
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -966,6 +966,23 @@ Jobs: *job-functions*
|
||||
job_info() get information about a job
|
||||
job_setoptions() set options for a job
|
||||
|
||||
Terminal window: *terminal-functions*
|
||||
term_start() open a terminal window and run a job
|
||||
term_list() get the list of terminal buffers
|
||||
term_sendkeys() send keystrokes to a terminal
|
||||
term_wait() wait for screen to be updated
|
||||
term_getjob() get the job associated with a terminal
|
||||
term_scrape() get row of a terminal screen
|
||||
term_getline() get a line of text from a terminal
|
||||
term_getattr() get the value of attribute {what}
|
||||
term_getcursor() get the cursor position of a terminal
|
||||
term_getscrolled() get the scroll count of a terminal
|
||||
term_getaltscreen() get the alternate screen flag
|
||||
term_getsize() get the size of a terminal
|
||||
term_getstatus() get the status of a terminal
|
||||
term_gettitle() get the title of a terminal
|
||||
term_gettty() get the tty name of a terminal
|
||||
|
||||
Timers: *timer-functions*
|
||||
timer_start() create a timer
|
||||
timer_pause() pause or unpause a timer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.0. Last change: 2017 Feb 24
|
||||
*various.txt* For Vim version 8.0. Last change: 2017 Sep 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -322,7 +322,7 @@ N *+cindent* |'cindent'|, C indenting
|
||||
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
|
||||
*+clipboard* |clipboard| support
|
||||
N *+cmdline_compl* command line completion |cmdline-completion|
|
||||
N *+cmdline_hist* command line history |cmdline-history|
|
||||
S *+cmdline_hist* command line history |cmdline-history|
|
||||
N *+cmdline_info* |'showcmd'| and |'ruler'|
|
||||
N *+comments* |'comments'| support
|
||||
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
|
||||
@@ -361,7 +361,7 @@ m *+hangul_input* Hangul input support |hangul|
|
||||
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
|
||||
N *+insert_expand* |insert_expand| Insert mode completion
|
||||
m *+job* starting and stopping jobs |job|
|
||||
N *+jumplist* |jumplist|
|
||||
S *+jumplist* |jumplist|
|
||||
B *+keymap* |'keymap'|
|
||||
N *+lambda* |lambda| and |closure|
|
||||
B *+langmap* |'langmap'|
|
||||
@@ -427,6 +427,7 @@ N *+tag_old_static* old method for static tags |tag-old-static|
|
||||
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
|
||||
m *+tcl* Tcl interface |tcl|
|
||||
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
|
||||
@@ -437,14 +438,16 @@ N *+title* Setting the window 'title' and 'icon'
|
||||
N *+toolbar* |gui-toolbar|
|
||||
N *+user_commands* User-defined commands. |user-commands|
|
||||
N *+viminfo* |'viminfo'|
|
||||
N *+vertsplit* Vertically split windows |:vsplit|
|
||||
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||
since 8.0.1118.
|
||||
in sync with the |+windows| feature
|
||||
N *+virtualedit* |'virtualedit'|
|
||||
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
||||
N *+visualextra* extra Visual mode commands |blockwise-operators|
|
||||
N *+vreplace* |gR| and |gr|
|
||||
N *+wildignore* |'wildignore'|
|
||||
N *+wildmenu* |'wildmenu'|
|
||||
S *+windows* more than one window
|
||||
*+windows* more than one window; Always enabled sinde 8.0.1118.
|
||||
m *+writebackup* |'writebackup'| is default on
|
||||
m *+xim* X input method |xim|
|
||||
*+xfontset* X fontset support |xfontset|
|
||||
|
||||
@@ -16827,7 +16827,7 @@ Patch 8.0.0388
|
||||
Problem: filtering lines through "cat", without changing the line count,
|
||||
changes manual folds.
|
||||
Solution: Change how marks and folds are adjusted. (Matthew Malcomson, from
|
||||
neovim #6194.
|
||||
neovim #6194).
|
||||
Files: src/fold.c, src/testdir/test_fold.vim
|
||||
|
||||
Patch 8.0.0389
|
||||
@@ -17499,7 +17499,7 @@ Files: src/evalfunc.c, src/if_xcmdsrv.c, src/proto/if_xcmdsrv.pro,
|
||||
|
||||
Patch 8.0.0493
|
||||
Problem: Crash with cd command with very long argument.
|
||||
Solution: Check for running out of space. (Dominique pending, closes #1576)
|
||||
Solution: Check for running out of space. (Dominique Pelle, closes #1576)
|
||||
Files: src/testdir/test_alot.vim, src/testdir/test_cd.vim, src/Makefile,
|
||||
src/misc2.c
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.TH VIM 1 "2006 Apr 11"
|
||||
.SH NAME
|
||||
vim \- Vi IMproved, a programmers text editor
|
||||
vim \- Vi IMproved, a programmer's text editor
|
||||
.SH SYNOPSIS
|
||||
.br
|
||||
.B vim
|
||||
@@ -325,7 +325,7 @@ You can still edit the buffer, but will be prevented from accidentally
|
||||
overwriting a file.
|
||||
If you do want to overwrite a file, add an exclamation mark to the Ex command,
|
||||
as in ":w!".
|
||||
The \-R option also implies the \-n option (see below).
|
||||
The \-R option also implies the \-n option (see above).
|
||||
The 'readonly' option can be reset with ":set noro".
|
||||
See ":help 'readonly'".
|
||||
.TP
|
||||
|
||||
@@ -3,7 +3,7 @@ VIM(1) General Commands Manual VIM(1)
|
||||
|
||||
|
||||
NAME
|
||||
vim - Vi IMproved, a programmers text editor
|
||||
vim - Vi IMproved, a programmer's text editor
|
||||
|
||||
SYNOPSIS
|
||||
vim [options] [file ..]
|
||||
@@ -225,7 +225,7 @@ OPTIONS
|
||||
dentally overwriting a file. If you do want to overwrite a
|
||||
file, add an exclamation mark to the Ex command, as in
|
||||
":w!". The -R option also implies the -n option (see
|
||||
below). The 'readonly' option can be reset with ":set
|
||||
above). The 'readonly' option can be reset with ":set
|
||||
noro". See ":help 'readonly'".
|
||||
|
||||
-r List swap files, with information about using them for
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 8.0. Last change: 2014 Mar 23
|
||||
*visual.txt* For Vim version 8.0. Last change: 2017 Sep 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -314,8 +314,8 @@ Visual-block Insert *v_b_I*
|
||||
With a blockwise selection, I{string}<ESC> will insert {string} at the start
|
||||
of block on every line of the block, provided that the line extends into the
|
||||
block. Thus lines that are short will remain unmodified. TABs are split to
|
||||
retain visual columns.
|
||||
See |v_b_I_example|.
|
||||
retain visual columns. Works only for adding text to a line, not for
|
||||
deletions. See |v_b_I_example|.
|
||||
|
||||
Visual-block Append *v_b_A*
|
||||
With a blockwise selection, A{string}<ESC> will append {string} to the end of
|
||||
@@ -331,6 +331,7 @@ See |v_b_A_example|.
|
||||
Note: "I" and "A" behave differently for lines that don't extend into the
|
||||
selected block. This was done intentionally, so that you can do it the way
|
||||
you want.
|
||||
Works only for adding text to a line, not for deletions.
|
||||
|
||||
Visual-block change *v_b_c*
|
||||
All selected text in the block will be replaced by the same text string. When
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.0. Last change: 2016 Dec 01
|
||||
*windows.txt* For Vim version 8.0. Last change: 2017 Sep 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -222,6 +222,11 @@ CTRL-W ^ Does ":split #", split window in two and edit alternate file.
|
||||
When a count is given, it becomes ":split #N", split window
|
||||
and edit buffer N.
|
||||
|
||||
*CTRL-W_:*
|
||||
CTRL-W : Does the same as typing |:| : edit a command line. Useful in a
|
||||
terminal window, where all Vim commands must be preceded with
|
||||
CTRL-W or 'termkey'.
|
||||
|
||||
Note that the 'splitbelow' and 'splitright' options influence where a new
|
||||
window will appear.
|
||||
|
||||
@@ -339,8 +344,9 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
|
||||
*:hide*
|
||||
:hid[e]
|
||||
:{count}hid[e]
|
||||
Quit the current window, unless it is the last window on the
|
||||
screen. For {count} see |:quit| command.
|
||||
Without {count}: Quit the current window, unless it is the
|
||||
last window on the screen.
|
||||
If {count} is given quit the {count} window.
|
||||
|
||||
The buffer becomes hidden (unless there is another window
|
||||
editing it or 'bufhidden' is "unload", "delete" or "wipe").
|
||||
@@ -613,7 +619,8 @@ The minimal height and width of a window is set with 'winminheight' and
|
||||
41. :buffers list of buffers
|
||||
|
||||
The meaning of [N] depends on the command:
|
||||
[N] is number of buffers to go forward/backward on ?2, ?3, and ?4
|
||||
[N] is the number of buffers to go forward/backward on 2/12/22/32,
|
||||
3/13/23/33, and 4/14/24/34
|
||||
[N] is an argument number, defaulting to current argument, for 1 and 21
|
||||
[N] is a buffer number, defaulting to current buffer, for 11 and 31
|
||||
[N] is a count for 19 and 39
|
||||
@@ -1026,6 +1033,9 @@ list of buffers. |unlisted-buffer|
|
||||
displayed in a window |hidden-buffer|
|
||||
- a buffer with 'modifiable' off
|
||||
= a readonly buffer
|
||||
R a terminal buffer with a running job
|
||||
F a terminal buffer with a finished job
|
||||
? a terminal buffer without a job: `:terminal NONE`
|
||||
+ a modified buffer
|
||||
x a buffer with read errors
|
||||
|
||||
@@ -1272,6 +1282,9 @@ help Contains a help file. Will only be created with the |:help|
|
||||
and can't be changed. The 'buflisted' option will be reset
|
||||
for a help buffer.
|
||||
|
||||
terminal A terminal window buffer, see |terminal|. The contents cannot
|
||||
be read or changed until the job ends.
|
||||
|
||||
directory Displays directory contents. Can be used by a file explorer
|
||||
plugin. The buffer is created with these settings: >
|
||||
:setlocal buftype=nowrite
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim script for Evim key bindings
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Jul 24
|
||||
" Last Change: 2017 Sep 20
|
||||
|
||||
" Don't use Vi-compatible mode.
|
||||
set nocompatible
|
||||
@@ -67,8 +67,10 @@ endif " has("autocmd")
|
||||
"
|
||||
" The matchit plugin makes the % command work better, but it is not backwards
|
||||
" compatible.
|
||||
" The ! means the package won't be loaded right away but when plugins are
|
||||
" loaded during initialization.
|
||||
if has('syntax') && has('eval')
|
||||
packadd matchit
|
||||
packadd! matchit
|
||||
endif
|
||||
|
||||
" vim: set sw=2 :
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Jun 22
|
||||
" Last Change: 2017 Aug 11
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -635,7 +635,13 @@ au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
|
||||
au BufNewFile,BufRead dictd.conf setf dictdconf
|
||||
|
||||
" Diff files
|
||||
au BufNewFile,BufRead *.diff,*.rej,*.patch setf diff
|
||||
au BufNewFile,BufRead *.diff,*.rej setf diff
|
||||
au BufNewFile,BufRead *.patch
|
||||
\ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' |
|
||||
\ setf gitsendemail |
|
||||
\ else |
|
||||
\ setf diff |
|
||||
\ endif
|
||||
|
||||
" Dircolors
|
||||
au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors
|
||||
@@ -804,6 +810,7 @@ if !empty($XDG_CONFIG_HOME)
|
||||
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
|
||||
endif
|
||||
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
||||
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
|
||||
au BufNewFile,BufRead .msg.[0-9]*
|
||||
\ if getline(1) =~ '^From.*# This line is ignored.$' |
|
||||
\ setf gitsendemail |
|
||||
@@ -1020,7 +1027,7 @@ au BufNewFile,BufRead *.java,*.jav setf java
|
||||
au BufNewFile,BufRead *.jj,*.jjt setf javacc
|
||||
|
||||
" JavaScript, ECMAScript
|
||||
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx setf javascript
|
||||
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.mjs setf javascript
|
||||
|
||||
" Java Server Pages
|
||||
au BufNewFile,BufRead *.jsp setf jsp
|
||||
@@ -1335,6 +1342,9 @@ au BufNewFile,BufRead *.mush setf mush
|
||||
" Mutt setup file (also for Muttng)
|
||||
au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
|
||||
|
||||
" N1QL
|
||||
au BufRead,BufNewfile *.n1ql,*.nql setf n1ql
|
||||
|
||||
" Nano
|
||||
au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
|
||||
|
||||
@@ -2260,6 +2270,8 @@ func! s:FTtex()
|
||||
elseif format == 'plaintex'
|
||||
let format = 'plain'
|
||||
endif
|
||||
elseif expand('%') =~ 'tex/context/.*/.*.tex'
|
||||
let format = 'context'
|
||||
else
|
||||
" Default value, may be changed later:
|
||||
let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
|
||||
@@ -2301,7 +2313,7 @@ func! s:FTtex()
|
||||
endfunc
|
||||
|
||||
" ConTeXt
|
||||
au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv,*.mkvi setf context
|
||||
au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi setf context
|
||||
|
||||
" Texinfo
|
||||
au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2013-07-21
|
||||
" Last Change: 2015-02-09
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
@@ -33,14 +33,14 @@ endif
|
||||
setlocal include=\\<\\(use\\\|require\\)\\>
|
||||
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
|
||||
setlocal define=[^A-Za-z_]
|
||||
setlocal iskeyword+=:
|
||||
|
||||
" The following line changes a global variable but is necessary to make
|
||||
" gf and similar commands work. The change to iskeyword was incorrect.
|
||||
" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
|
||||
" problem for you, add an after/ftplugin/perl.vim file that contains
|
||||
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
|
||||
" out the problem. If this causes a problem for you, add an
|
||||
" after/ftplugin/perl.vim file that contains
|
||||
" set isfname-=:
|
||||
set isfname+=:
|
||||
set iskeyword+=:
|
||||
|
||||
" Set this once, globally.
|
||||
if !exists("perlpath")
|
||||
@@ -77,11 +77,12 @@ endif
|
||||
"---------------------------------------------
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
" proper matching for matchit plugin
|
||||
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
|
||||
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Verilog HDL
|
||||
" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
|
||||
" Last Change: Wed Sep 3 15:24:49 CST 2008
|
||||
" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
|
||||
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
|
||||
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
|
||||
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
|
||||
"
|
||||
" Credits:
|
||||
" Suggestions for improvement, bug reports by
|
||||
" Shao <shaominghai2005@163.com>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -45,11 +49,16 @@ if exists("loaded_matchit")
|
||||
\ '\<begin\>:\<end\>,' .
|
||||
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
|
||||
\ '\<module\>:\<endmodule\>,' .
|
||||
\ '\<if\>:\<else\>,' .
|
||||
\ '\<if\>:`\@<!\<else\>,' .
|
||||
\ '\<function\>:\<endfunction\>,' .
|
||||
\ '`ifdef\>:`else\>:`endif\>,' .
|
||||
\ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
|
||||
\ '\<task\>:\<endtask\>,' .
|
||||
\ '\<specify\>:\<endspecify\>'
|
||||
\ '\<specify\>:\<endspecify\>,' .
|
||||
\ '\<config\>:\<endconfig\>,' .
|
||||
\ '\<generate\>:\<endgenerate\>,' .
|
||||
\ '\<fork\>:\<join\>,' .
|
||||
\ '\<primitive\>:\<endprimitive\>,' .
|
||||
\ '\<table\>:\<endtable\>'
|
||||
endif
|
||||
|
||||
" Reset 'cpoptions' back to the user's setting
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
" Vim indent file
|
||||
" Program: CMake - Cross-Platform Makefile Generator
|
||||
" Module: $RCSfile: cmake-indent.vim,v $
|
||||
" Language: CMake (ft=cmake)
|
||||
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
|
||||
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: $Date: 2008-01-16 16:53:53 $
|
||||
" Version: $Revision: 1.9 $
|
||||
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
|
||||
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: 2017 Sep 24
|
||||
"
|
||||
" Licence: The CMake license applies to this file. See
|
||||
" http://www.cmake.org/HTML/Copyright.html
|
||||
" https://cmake.org/licensing
|
||||
" This implies that distribution with Vim is allowed
|
||||
|
||||
if exists("b:did_indent")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Javascript
|
||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Last Change: March 21, 2017
|
||||
" Last Change: September 18, 2017
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
@@ -10,6 +10,10 @@ if exists('b:did_indent')
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
" indent correctly if inside <script>
|
||||
" vim/vim@690afe1 for the switch from cindent
|
||||
let b:html_indent_script1 = 'inc'
|
||||
|
||||
" Now, set up our indentation expression and keys that trigger it.
|
||||
setlocal indentexpr=GetJavascriptIndent()
|
||||
setlocal autoindent nolisp nosmartindent
|
||||
@@ -21,6 +25,13 @@ setlocal indentkeys+=0],0)
|
||||
|
||||
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
|
||||
let b:syng_str = get(b:,'syng_str','string\|template\|special')
|
||||
" template strings may want to be excluded when editing graphql:
|
||||
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
|
||||
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
|
||||
|
||||
" Only define the function once.
|
||||
if exists('*GetJavascriptIndent')
|
||||
finish
|
||||
@@ -36,7 +47,7 @@ if exists('*shiftwidth')
|
||||
endfunction
|
||||
else
|
||||
function s:sw()
|
||||
return &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth
|
||||
return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
|
||||
endfunction
|
||||
endif
|
||||
|
||||
@@ -44,272 +55,301 @@ endif
|
||||
" matches before pos.
|
||||
let s:z = has('patch-7.4.984') ? 'z' : ''
|
||||
|
||||
" searchpair() wrapper
|
||||
if has('reltime')
|
||||
function s:GetPair(start,end,flags,skip,time,...)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
|
||||
endfunction
|
||||
else
|
||||
function s:GetPair(start,end,flags,skip,...)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
|
||||
endfunction
|
||||
endif
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!'
|
||||
let s:syng_str = 'string\|template\|special'
|
||||
let s:syng_com = 'comment\|doc'
|
||||
" Expression used to check whether we should skip a match with searchpair().
|
||||
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
|
||||
let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
|
||||
let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"
|
||||
|
||||
function s:parse_cino(f) abort
|
||||
return float2nr(eval(substitute(substitute(join(split(
|
||||
\ matchstr(&cino,'.*'.a:f.'\zs[^,]*'), 's',1), '*'.s:W)
|
||||
\ , '^-\=\zs\*','',''), '^-\=\zs\.','0.','')))
|
||||
let s:rel = has('reltime')
|
||||
" searchpair() wrapper
|
||||
if s:rel
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
|
||||
endfunction
|
||||
|
||||
function s:skip_func()
|
||||
if getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
||||
return eval(s:skip_expr)
|
||||
elseif s:checkIn || search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
|
||||
let s:checkIn = eval(s:skip_expr)
|
||||
endif
|
||||
let s:looksyn = line('.')
|
||||
return s:checkIn
|
||||
endfunction
|
||||
|
||||
function s:alternatePair(stop)
|
||||
let pos = getpos('.')[1:2]
|
||||
let pat = '[][(){};]'
|
||||
while search('\m'.pat,'bW',a:stop)
|
||||
if s:skip_func() | continue | endif
|
||||
let idx = stridx('])};',s:looking_at())
|
||||
if idx is 3 | let pat = '[{}()]' | continue | endif
|
||||
if idx + 1
|
||||
if s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop) <= 0
|
||||
break
|
||||
endif
|
||||
else
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
|
||||
endfunction
|
||||
endif
|
||||
|
||||
function s:SynAt(l,c)
|
||||
let byte = line2byte(a:l) + a:c - 1
|
||||
let pos = index(s:synid_cache[0], byte)
|
||||
if pos == -1
|
||||
let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
|
||||
endif
|
||||
return s:synid_cache[1][pos]
|
||||
endfunction
|
||||
|
||||
function s:ParseCino(f)
|
||||
let [divider, n, cstr] = [0] + matchlist(&cino,
|
||||
\ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
|
||||
for c in split(cstr,'\zs')
|
||||
if c == '.' && !divider
|
||||
let divider = 1
|
||||
elseif c ==# 's'
|
||||
if n !~ '\d'
|
||||
return n . s:sw() + 0
|
||||
endif
|
||||
let n = str2nr(n) * s:sw()
|
||||
break
|
||||
else
|
||||
let [n, divider] .= [c, 0]
|
||||
endif
|
||||
endfor
|
||||
return str2nr(n) / max([str2nr(divider),1])
|
||||
endfunction
|
||||
|
||||
" Optimized {skip} expr, only callable from the search loop which
|
||||
" GetJavascriptIndent does to find the containing [[{(] (side-effects)
|
||||
function s:SkipFunc()
|
||||
if s:top_col == 1
|
||||
throw 'out of bounds'
|
||||
endif
|
||||
let s:top_col = 0
|
||||
if s:check_in
|
||||
if eval(s:skip_expr)
|
||||
return 1
|
||||
endif
|
||||
let s:check_in = 0
|
||||
elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
||||
if eval(s:skip_expr)
|
||||
let s:looksyn = a:firstline
|
||||
return 1
|
||||
endif
|
||||
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr)
|
||||
let s:check_in = 1
|
||||
return 1
|
||||
endif
|
||||
let [s:looksyn, s:top_col] = getpos('.')[1:2]
|
||||
endfunction
|
||||
|
||||
function s:AlternatePair()
|
||||
let [pat, l:for] = ['[][(){};]', 2]
|
||||
while s:SearchLoop(pat,'bW','s:SkipFunc()')
|
||||
if s:LookingAt() == ';'
|
||||
if !l:for
|
||||
if s:GetPair('{','}','bW','s:SkipFunc()')
|
||||
return
|
||||
endif
|
||||
break
|
||||
else
|
||||
let [pat, l:for] = ['[{}();]', l:for - 1]
|
||||
endif
|
||||
else
|
||||
let idx = stridx('])}',s:LookingAt())
|
||||
if idx == -1
|
||||
return
|
||||
elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
|
||||
break
|
||||
endif
|
||||
endif
|
||||
endwhile
|
||||
call call('cursor',pos)
|
||||
throw 'out of bounds'
|
||||
endfunction
|
||||
|
||||
function s:save_pos(f,...)
|
||||
let l:pos = getpos('.')[1:2]
|
||||
let ret = call(a:f,a:000)
|
||||
call call('cursor',l:pos)
|
||||
return ret
|
||||
function s:Nat(int)
|
||||
return a:int * (a:int > 0)
|
||||
endfunction
|
||||
|
||||
function s:syn_at(l,c)
|
||||
return synIDattr(synID(a:l,a:c,0),'name')
|
||||
endfunction
|
||||
|
||||
function s:looking_at()
|
||||
function s:LookingAt()
|
||||
return getline('.')[col('.')-1]
|
||||
endfunction
|
||||
|
||||
function s:token()
|
||||
return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
|
||||
function s:Token()
|
||||
return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
|
||||
endfunction
|
||||
|
||||
function s:previous_token()
|
||||
let l:pos = getpos('.')[1:2]
|
||||
if search('\m\k\{1,}\zs\k\|\S','bW')
|
||||
if (getline('.')[col('.')-2:col('.')-1] == '*/' || line('.') != l:pos[0] &&
|
||||
\ getline('.') =~ '\%<'.col('.').'c\/\/') && s:syn_at(line('.'),col('.')) =~? s:syng_com
|
||||
while search('\m\S\ze\_s*\/[/*]','bW')
|
||||
if s:syn_at(line('.'),col('.')) !~? s:syng_com
|
||||
return s:token()
|
||||
function s:PreviousToken()
|
||||
let l:col = col('.')
|
||||
if search('\m\k\{1,}\|\S','ebW')
|
||||
if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm)
|
||||
if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
|
||||
return s:Token()
|
||||
endif
|
||||
endwhile
|
||||
call cursor(a:firstline, l:col)
|
||||
else
|
||||
return s:token()
|
||||
return s:Token()
|
||||
endif
|
||||
endif
|
||||
call call('cursor',l:pos)
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function s:expr_col()
|
||||
if getline('.')[col('.')-2] == ':'
|
||||
return 1
|
||||
endif
|
||||
function s:Pure(f,...)
|
||||
return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
|
||||
endfunction
|
||||
|
||||
function s:SearchLoop(pat,flags,expr)
|
||||
return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
|
||||
endfunction
|
||||
|
||||
function s:ExprCol()
|
||||
let bal = 0
|
||||
while search('\m[{}?:;]','bW')
|
||||
if eval(s:skip_expr) | continue | endif
|
||||
" switch (looking_at())
|
||||
exe { '}': "if s:GetPair('{','}','bW',s:skip_expr,200) <= 0 | return | endif",
|
||||
\ ';': "return",
|
||||
\ '{': "return getpos('.')[1:2] != b:js_cache[1:] && !s:IsBlock()",
|
||||
\ ':': "let bal -= getline('.')[max([col('.')-2,0]):col('.')] !~ '::'",
|
||||
\ '?': "let bal += 1 | if bal > 0 | return 1 | endif" }[s:looking_at()]
|
||||
while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr)
|
||||
if s:LookingAt() == ':'
|
||||
let bal -= 1
|
||||
elseif s:LookingAt() == '?'
|
||||
let bal += 1
|
||||
if bal == 1
|
||||
break
|
||||
endif
|
||||
elseif s:LookingAt() == '{'
|
||||
let bal = !s:IsBlock()
|
||||
break
|
||||
elseif !s:GetPair('{','}','bW',s:skip_expr)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
return s:Nat(bal)
|
||||
endfunction
|
||||
|
||||
" configurable regexes that define continuation lines, not including (, {, or [.
|
||||
let s:opfirst = '^' . get(g:,'javascript_opfirst',
|
||||
\ '\C\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
|
||||
\ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
|
||||
let s:continuation = get(g:,'javascript_continuation',
|
||||
\ '\C\%([-+<>=,.~!?/*^%|&:]\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
||||
\ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
||||
|
||||
function s:continues(ln,con)
|
||||
if !cursor(a:ln, match(' '.a:con,s:continuation))
|
||||
let teol = s:looking_at()
|
||||
if teol == '/'
|
||||
return s:syn_at(line('.'),col('.')) !~? 'regex'
|
||||
elseif teol =~ '[-+>]'
|
||||
return getline('.')[col('.')-2] != tr(teol,'>','=')
|
||||
elseif teol =~ '\l'
|
||||
return s:previous_token() != '.'
|
||||
elseif teol == ':'
|
||||
return s:expr_col()
|
||||
function s:Continues(ln,con)
|
||||
let tok = matchstr(a:con[-15:],s:continuation)
|
||||
if tok =~ '[a-z:]'
|
||||
call cursor(a:ln, len(a:con))
|
||||
return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
|
||||
elseif tok !~ '[/>]'
|
||||
return tok isnot ''
|
||||
endif
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" get the line of code stripped of comments and move cursor to the last
|
||||
" non-comment char.
|
||||
function s:Trim(ln)
|
||||
let pline = substitute(getline(a:ln),'\s*$','','')
|
||||
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
|
||||
while l:max != -1 && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
|
||||
let pline = pline[: l:max]
|
||||
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
|
||||
let pline = substitute(pline[:-2],'\s*$','','')
|
||||
endwhile
|
||||
return pline is '' || cursor(a:ln,strlen(pline)) ? pline : pline
|
||||
endfunction
|
||||
|
||||
" Find line above 'lnum' that isn't empty or in a comment
|
||||
function s:PrevCodeLine(lnum)
|
||||
let [l:pos, l:n] = [getpos('.')[1:2], prevnonblank(a:lnum)]
|
||||
while l:n
|
||||
if getline(l:n) =~ '^\s*\/[/*]'
|
||||
let l:n = prevnonblank(l:n-1)
|
||||
elseif stridx(getline(l:n), '*/') + 1 && s:syn_at(l:n,1) =~? s:syng_com
|
||||
call cursor(l:n,1)
|
||||
keepjumps norm! [*
|
||||
let l:n = search('\m\S','nbW')
|
||||
else
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
call call('cursor',l:pos)
|
||||
return l:n
|
||||
return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
|
||||
endfunction
|
||||
|
||||
" Check if line 'lnum' has a balanced amount of parentheses.
|
||||
function s:Balanced(lnum)
|
||||
let l:open = 0
|
||||
let l:line = getline(a:lnum)
|
||||
let pos = match(l:line, '[][(){}]', 0)
|
||||
let [l:open, l:line] = [0, getline(a:lnum)]
|
||||
let pos = match(l:line, '[][(){}]')
|
||||
while pos != -1
|
||||
if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
|
||||
if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
|
||||
let l:open += match(' ' . l:line[pos],'[[({]')
|
||||
if l:open < 0
|
||||
return
|
||||
endif
|
||||
endif
|
||||
let pos = match(l:line, (l:open ?
|
||||
\ '['.escape(tr(l:line[pos],'({[]})',')}][{(').l:line[pos],']').']' :
|
||||
\ '[][(){}]'), pos + 1)
|
||||
let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ?
|
||||
\ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1)
|
||||
endwhile
|
||||
return !l:open
|
||||
endfunction
|
||||
|
||||
function s:OneScope(lnum)
|
||||
let pline = s:Trim(a:lnum)
|
||||
let kw = 'else do'
|
||||
if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
|
||||
if s:previous_token() =~# '^\%(await\|each\)$'
|
||||
call s:previous_token()
|
||||
let kw = 'for'
|
||||
else
|
||||
let kw = 'for if let while with'
|
||||
function s:OneScope()
|
||||
if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
|
||||
let tok = s:PreviousToken()
|
||||
return (count(split('for if let while with'),tok) ||
|
||||
\ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
|
||||
\ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
|
||||
elseif s:Token() =~# '^else$\|^do$'
|
||||
return s:Pure('s:PreviousToken') != '.'
|
||||
endif
|
||||
endif
|
||||
return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
|
||||
\ s:save_pos('s:previous_token') != '.'
|
||||
return strpart(getline('.'),col('.')-2,2) == '=>'
|
||||
endfunction
|
||||
|
||||
" returns braceless levels started by 'i' and above lines * shiftwidth().
|
||||
" 'num' is the lineNr which encloses the entire context, 'cont' if whether
|
||||
" line 'i' + 1 is a continued expression, which could have started in a
|
||||
" braceless context
|
||||
function s:iscontOne(i,num,cont)
|
||||
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
|
||||
let pind = a:num ? indent(l:num) + s:W : 0
|
||||
let ind = indent(l:i) + (a:cont ? 0 : s:W)
|
||||
while l:i >= l:num && (ind > pind || l:i == l:num)
|
||||
if indent(l:i) < ind && s:OneScope(l:i)
|
||||
let bL += s:W
|
||||
let l:i = line('.')
|
||||
elseif !a:cont || bL || ind < indent(a:i)
|
||||
function s:DoWhile()
|
||||
let cpos = searchpos('\m\<','cbW')
|
||||
if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
|
||||
if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ?
|
||||
\ 'Previous' : ''}Token() ==# 'do' && s:IsBlock()
|
||||
return 1
|
||||
endif
|
||||
call call('cursor',cpos)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" returns total offset from braceless contexts. 'num' is the lineNr which
|
||||
" encloses the entire context, 'cont' if whether a:firstline is a continued
|
||||
" expression, which could have started in a braceless context
|
||||
function s:IsContOne(num,cont)
|
||||
let [l:num, b_l] = [a:num + !a:num, 0]
|
||||
let pind = a:num ? indent(a:num) + s:sw() : 0
|
||||
let ind = indent('.') + !a:cont
|
||||
while line('.') > l:num && ind > pind || line('.') == l:num
|
||||
if indent('.') < ind && s:OneScope()
|
||||
let b_l += 1
|
||||
elseif !a:cont || b_l || ind < indent(a:firstline)
|
||||
break
|
||||
else
|
||||
call cursor(0,1)
|
||||
endif
|
||||
let ind = min([ind, indent('.')])
|
||||
if s:PreviousToken() is ''
|
||||
break
|
||||
endif
|
||||
let ind = min([ind, indent(l:i)])
|
||||
let l:i = s:PrevCodeLine(l:i - 1)
|
||||
endwhile
|
||||
return bL
|
||||
return b_l
|
||||
endfunction
|
||||
|
||||
function s:Class()
|
||||
return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
|
||||
\ s:PreviousToken() != '.'
|
||||
endfunction
|
||||
|
||||
function s:IsSwitch()
|
||||
return s:PreviousToken() !~ '[.*]' &&
|
||||
\ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class())
|
||||
endfunction
|
||||
|
||||
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
|
||||
function s:IsBlock()
|
||||
if s:looking_at() == '{'
|
||||
let l:n = line('.')
|
||||
let char = s:previous_token()
|
||||
if match(s:stack,'\cxml\|jsx') + 1 && s:syn_at(line('.'),col('.')-1) =~? 'xml\|jsx'
|
||||
return char != '{'
|
||||
elseif char =~ '\k'
|
||||
if char ==# 'type'
|
||||
return s:previous_token() !~# '^\%(im\|ex\)port$'
|
||||
let tok = s:PreviousToken()
|
||||
if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
|
||||
return tok != '{'
|
||||
elseif tok =~ '\k'
|
||||
if tok ==# 'type'
|
||||
return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
|
||||
elseif tok ==# 'of'
|
||||
return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
|
||||
\ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
|
||||
endif
|
||||
return index(split('return const let import export extends yield default delete var await void typeof throw case new of in instanceof')
|
||||
\ ,char) < (line('.') != l:n) || s:save_pos('s:previous_token') == '.'
|
||||
elseif char == '>'
|
||||
return getline('.')[col('.')-2] == '=' || s:syn_at(line('.'),col('.')) =~? '^jsflow'
|
||||
elseif char == ':'
|
||||
return !s:save_pos('s:expr_col')
|
||||
elseif char == '/'
|
||||
return s:syn_at(line('.'),col('.')) =~? 'regex'
|
||||
endif
|
||||
return char !~ '[=~!<*,?^%|&([]' &&
|
||||
\ (char !~ '[-+]' || l:n != line('.') && getline('.')[col('.')-2] == char)
|
||||
return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
|
||||
\ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
|
||||
elseif tok == '>'
|
||||
return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
|
||||
elseif tok == '*'
|
||||
return s:Pure('s:PreviousToken') == ':'
|
||||
elseif tok == ':'
|
||||
return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
|
||||
elseif tok == '/'
|
||||
return s:SynAt(line('.'),col('.')) =~? 'regex'
|
||||
elseif tok !~ '[=~!<,.?^%|&([]'
|
||||
return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function GetJavascriptIndent()
|
||||
let b:js_cache = get(b:,'js_cache',[0,0,0])
|
||||
" Get the current line.
|
||||
call cursor(v:lnum,1)
|
||||
let l:line = getline('.')
|
||||
let s:synid_cache = [[],[]]
|
||||
let l:line = getline(v:lnum)
|
||||
" use synstack as it validates syn state and works in an empty line
|
||||
let s:stack = map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
|
||||
let syns = get(s:stack,-1,'')
|
||||
let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
|
||||
|
||||
" start with strings,comments,etc.
|
||||
if syns =~? s:syng_com
|
||||
if s:stack[-1] =~? 'comment\|doc'
|
||||
if l:line =~ '^\s*\*'
|
||||
return cindent(v:lnum)
|
||||
elseif l:line !~ '^\s*\/[/*]'
|
||||
return -1
|
||||
endif
|
||||
elseif syns =~? s:syng_str
|
||||
elseif s:stack[-1] =~? b:syng_str
|
||||
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
|
||||
let b:js_cache[0] = v:lnum
|
||||
endif
|
||||
return -1
|
||||
endif
|
||||
let l:lnum = s:PrevCodeLine(v:lnum - 1)
|
||||
if !l:lnum
|
||||
|
||||
let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
|
||||
\ get(get(b:,'hi_indent',{}),'blocklnr')])
|
||||
call cursor(v:lnum,1)
|
||||
if s:PreviousToken() is ''
|
||||
return
|
||||
endif
|
||||
let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]
|
||||
|
||||
let l:line = substitute(l:line,'^\s*','','')
|
||||
let l:line_raw = l:line
|
||||
if l:line[:1] == '/*'
|
||||
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
|
||||
endif
|
||||
@@ -318,60 +358,91 @@ function GetJavascriptIndent()
|
||||
endif
|
||||
|
||||
" the containing paren, bracket, or curly. Many hacks for performance
|
||||
call cursor(v:lnum,1)
|
||||
let idx = index([']',')','}'],l:line[0])
|
||||
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
|
||||
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
|
||||
if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
|
||||
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum)
|
||||
call call('cursor',b:js_cache[1:])
|
||||
else
|
||||
let [s:looksyn, s:checkIn, top] = [v:lnum - 1, 0, (!indent(l:lnum) &&
|
||||
\ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
|
||||
if idx + 1
|
||||
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:skip_func()',2000,top)
|
||||
elseif getline(v:lnum) !~ '^\S' && syns =~? 'block'
|
||||
call s:GetPair('{','}','bW','s:skip_func()',2000,top)
|
||||
let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
|
||||
\ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
|
||||
try
|
||||
if idx != -1
|
||||
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
|
||||
elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
|
||||
call s:GetPair('{','}','bW','s:SkipFunc()')
|
||||
else
|
||||
call s:alternatePair(top)
|
||||
call s:AlternatePair()
|
||||
endif
|
||||
catch /^\Cout of bounds$/
|
||||
call cursor(v:lnum,1)
|
||||
endtry
|
||||
let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
|
||||
endif
|
||||
|
||||
let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
|
||||
let num = b:js_cache[1]
|
||||
let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
|
||||
|
||||
let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
|
||||
if !num || s:IsBlock()
|
||||
let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0]
|
||||
if !num || s:LookingAt() == '{' && s:IsBlock()
|
||||
let ilnum = line('.')
|
||||
let pline = s:save_pos('s:Trim',l:lnum)
|
||||
if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
|
||||
let num = ilnum == num ? line('.') : num
|
||||
if idx < 0 && s:previous_token() ==# 'switch' && s:previous_token() != '.'
|
||||
if &cino !~ ':'
|
||||
let switch_offset = s:W
|
||||
else
|
||||
let switch_offset = max([-indent(num),s:parse_cino(':')])
|
||||
if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
|
||||
if ilnum == num
|
||||
let [num, num_ind] = [line('.'), indent('.')]
|
||||
endif
|
||||
if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
|
||||
let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
|
||||
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
|
||||
return indent(num) + switch_offset
|
||||
return s:Nat(num_ind + l:switch_offset)
|
||||
elseif &cino =~ '='
|
||||
let l:case_offset = s:ParseCino('=')
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if idx < 0 && pline[-1:] !~ '[{;]'
|
||||
let isOp = (l:line =~# s:opfirst || s:continues(l:lnum,pline)) * s:W
|
||||
let bL = s:iscontOne(l:lnum,b:js_cache[1],isOp)
|
||||
let bL -= (bL && l:line[0] == '{') * s:W
|
||||
if idx == -1 && pline[-1:] !~ '[{;]'
|
||||
let sol = matchstr(l:line,s:opfirst)
|
||||
if sol is '' || sol == '/' && s:SynAt(v:lnum,
|
||||
\ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
|
||||
if s:Continues(l:lnum,pline)
|
||||
let is_op = s:sw()
|
||||
endif
|
||||
elseif idx < 0 && getline(b:js_cache[1])[b:js_cache[2]-1] == '(' && &cino =~ '('
|
||||
let pval = s:parse_cino('(')
|
||||
return !pval ? (s:parse_cino('w') ? 0 : -(!!search('\m\S','W'.s:z,num))) + virtcol('.') :
|
||||
\ max([indent('.') + pval + (s:GetPair('(',')','nbrmW',s:skip_expr,100,num) * s:W),0])
|
||||
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$'
|
||||
call call('cursor',b:js_cache[1:])
|
||||
if s:PreviousToken() =~ '\k' && s:Class()
|
||||
return num_ind + s:sw()
|
||||
endif
|
||||
let is_op = s:sw()
|
||||
else
|
||||
let is_op = s:sw()
|
||||
endif
|
||||
call cursor(l:lnum, len(pline))
|
||||
let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw()
|
||||
endif
|
||||
elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
|
||||
let pval = s:ParseCino('(')
|
||||
if !pval
|
||||
let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
|
||||
if search('\m\S','W',num)
|
||||
return s:ParseCino('w') ? vcol : virtcol('.')-1
|
||||
endif
|
||||
return Wval ? s:Nat(num_ind + Wval) : vcol
|
||||
endif
|
||||
return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
|
||||
endif
|
||||
|
||||
" main return
|
||||
if l:line =~ '^\%([])}]\||}\)'
|
||||
return max([indent(num),0])
|
||||
elseif num
|
||||
return indent(num) + s:W + switch_offset + bL + isOp
|
||||
if l:line =~ '^[])}]\|^|}'
|
||||
if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '('
|
||||
if s:ParseCino('M')
|
||||
return indent(l:lnum)
|
||||
elseif &cino =~# 'm' && !s:ParseCino('m')
|
||||
return virtcol('.') - 1
|
||||
endif
|
||||
return bL + isOp
|
||||
endif
|
||||
return num_ind
|
||||
elseif num
|
||||
return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
|
||||
endif
|
||||
return b_l + is_op
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2017 Jun 13
|
||||
" Last Change: 2017-01-04
|
||||
|
||||
" Suggestions and improvements by :
|
||||
" Aaron J. Sherman (use syntax for hints)
|
||||
@@ -48,11 +48,6 @@ function! GetPerlIndent()
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Don't reindent comments on first column
|
||||
if cline =~ '^#.'
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Get current syntax item at the line's first char
|
||||
let csynid = ''
|
||||
if b:indent_use_syntax
|
||||
@@ -134,6 +129,7 @@ function! GetPerlIndent()
|
||||
\ || synid == "perlMatchStartEnd"
|
||||
\ || synid == "perlHereDoc"
|
||||
\ || synid == "perlBraces"
|
||||
\ || synid == "perlStatementIndirObj"
|
||||
\ || synid =~ "^perlFiledescStatement"
|
||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||
let brace = strpart(line, bracepos, 1)
|
||||
@@ -151,6 +147,7 @@ function! GetPerlIndent()
|
||||
if synid == ""
|
||||
\ || synid == "perlMatchStartEnd"
|
||||
\ || synid == "perlBraces"
|
||||
\ || synid == "perlStatementIndirObj"
|
||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
|
||||
" Original Author: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2017-05-02
|
||||
" Latest Revision: 2017-08-08
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-sh-indent
|
||||
" Changelog:
|
||||
" 20170808: - better indent of line continuation
|
||||
" 20170502: - get rid of buffer-shiftwidth function
|
||||
" 20160912: - preserve indentation of here-doc blocks
|
||||
" 20160627: - detect heredocs correctly
|
||||
@@ -117,7 +118,8 @@ function! GetShIndent()
|
||||
endfunction
|
||||
|
||||
function! s:is_continuation_line(line)
|
||||
return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\)$'
|
||||
return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\||\)' .
|
||||
\ '\s*\({\s*\)\=\(#.*\)\=$'
|
||||
endfunction
|
||||
|
||||
function! s:find_continued_lnum(lnum)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Language: Verilog HDL
|
||||
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
|
||||
" Last Change: 2017 Feb 24 by Chih-Tsun Huang
|
||||
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
|
||||
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
|
||||
"
|
||||
" Credits:
|
||||
@@ -25,7 +25,8 @@ let b:did_indent = 1
|
||||
setlocal indentexpr=GetVerilogIndent()
|
||||
setlocal indentkeys=!^F,o,O,0),=begin,=end,=join,=endcase
|
||||
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
|
||||
setlocal indentkeys+==`else,=`endif
|
||||
setlocal indentkeys+==endconfig,=endgenerate,=endprimitive,=endtable
|
||||
setlocal indentkeys+==`else,=`elsif,=`endif
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetVerilogIndent")
|
||||
@@ -84,7 +85,9 @@ function GetVerilogIndent()
|
||||
endif
|
||||
|
||||
" Indent after if/else/for/case/always/initial/specify/fork blocks
|
||||
elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
|
||||
" Note: We exclude '`if' or '`else' and consider 'end else'
|
||||
" 'end if' is redundant here
|
||||
elseif last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(for\|case\%[[zx]]\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(always\|initial\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(specify\|fork\)\>'
|
||||
@@ -93,8 +96,8 @@ function GetVerilogIndent()
|
||||
let ind = ind + offset
|
||||
if vverb | echo vverb_str "Indent after a block statement." | endif
|
||||
endif
|
||||
" Indent after function/task blocks
|
||||
elseif last_line =~ '^\s*\<\(function\|task\)\>'
|
||||
" Indent after function/task/config/generate/primitive/table blocks
|
||||
elseif last_line =~ '^\s*\<\(function\|task\|config\|generate\|primitive\|table\)\>'
|
||||
if last_line !~ '\<end\>\s*' . vlog_comment . '*$' ||
|
||||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
|
||||
let ind = ind + offset
|
||||
@@ -161,11 +164,11 @@ function GetVerilogIndent()
|
||||
let ind = ind - offset
|
||||
if vverb | echo vverb_str "De-indent after a close statement." | endif
|
||||
|
||||
" `ifdef and `else
|
||||
elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
|
||||
" `ifdef or `ifndef or `elsif or `else
|
||||
elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>'
|
||||
let ind = ind + offset
|
||||
if vverb
|
||||
echo vverb_str "Indent after a `ifdef or `else statement."
|
||||
echo vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement."
|
||||
endif
|
||||
|
||||
endif
|
||||
@@ -175,7 +178,8 @@ function GetVerilogIndent()
|
||||
" De-indent on the end of the block
|
||||
" join/end/endcase/endfunction/endtask/endspecify
|
||||
if curr_line =~ '^\s*\<\(join\|end\|endcase\)\>' ||
|
||||
\ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>'
|
||||
\ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>' ||
|
||||
\ curr_line =~ '^\s*\<\(endconfig\|endgenerate\|endprimitive\|endtable\)\>'
|
||||
let ind = ind - offset
|
||||
if vverb | echo vverb_str "De-indent the end of a block." | endif
|
||||
elseif curr_line =~ '^\s*\<endmodule\>'
|
||||
@@ -186,7 +190,7 @@ function GetVerilogIndent()
|
||||
|
||||
" De-indent on a stand-alone 'begin'
|
||||
elseif curr_line =~ '^\s*\<begin\>'
|
||||
if last_line !~ '^\s*\<\(function\|task\|specify\|module\)\>' &&
|
||||
if last_line !~ '^\s*\<\(function\|task\|specify\|module\|config\|generate\|primitive\|table\)\>' &&
|
||||
\ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . vlog_comment . '*$' &&
|
||||
\ ( last_line =~
|
||||
\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\)\>' ||
|
||||
@@ -208,10 +212,10 @@ function GetVerilogIndent()
|
||||
echo vverb_str "De-indent the end of a multiple statement."
|
||||
endif
|
||||
|
||||
" De-indent `else and `endif
|
||||
elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
|
||||
" De-indent `elsif or `else or `endif
|
||||
elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>'
|
||||
let ind = ind - offset
|
||||
if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
|
||||
if vverb | echo vverb_str "De-indent `elsif or `else or `endif statement." | endif
|
||||
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Menu translations for Catalan
|
||||
"
|
||||
" Maintainer: Ernest Adrogu<67> <eadrogue@gmx.net>
|
||||
" Last Change: 6 Jun 2008
|
||||
" Last Change: 26 Jul 2017
|
||||
"
|
||||
|
||||
" Quit when menu translations have already been done.
|
||||
@@ -70,9 +70,9 @@ menutrans Settings\ &Window Fin&estra\ d'opcions
|
||||
menutrans Startup\ &Settings Opcions\ i&nicials
|
||||
menutrans &Global\ Settings Opcions\ &globals
|
||||
" submen<65> Edita/Opcions Globals
|
||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Ressalt\ de\ &patrons<Tab>:set\ hls!
|
||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Ressaltat\ de\ &patrons<Tab>:set\ hls!
|
||||
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Sensibilitat\ a\ les\ ma&j<EFBFBD>scules<Tab>:set\ ic!
|
||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! &Ressalt\ de\ coincid<EFBFBD>ncies<Tab>:set\ sm!
|
||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! &Ressaltat\ de\ coincid<EFBFBD>ncies<Tab>:set\ sm!
|
||||
menutrans &Context\ lines L<EFBFBD>nies\ de\ co&ntext
|
||||
menutrans &Virtual\ Edit Edici<EFBFBD>\ &virtual
|
||||
" submen<65> Edita/Opcions Globals/Edici<63> virtual
|
||||
@@ -191,7 +191,7 @@ menutrans &Diff &Difer
|
||||
menutrans &Update &Actualitza
|
||||
menutrans &Get\ Block &Obtingues\ un\ bloc
|
||||
menutrans &Put\ Block &Posa\ un\ bloc
|
||||
menutrans &Make<Tab>:make Crida\ a\ &make<Tab>:make
|
||||
menutrans &Make<Tab>:make Crida\ &make<Tab>:make
|
||||
menutrans &List\ Errors<Tab>:cl Llista\ d'&errors<Tab>:cl
|
||||
menutrans L&ist\ Messages<Tab>:cl! &Llista\ de\ missatges<Tab>:cl!
|
||||
menutrans &Next\ Error<Tab>:cn Error\ se&g<EFBFBD>ent<Tab>:cn
|
||||
@@ -203,8 +203,7 @@ menutrans Error\ &Window F&inestra\ d'errors
|
||||
menutrans &Update<Tab>:cwin &Actualitza<Tab>:cwin
|
||||
menutrans &Open<Tab>:copen &Obre<Tab>:copen
|
||||
menutrans &Close<Tab>:cclose &Tanca<Tab>:cclose
|
||||
menutrans &Set\ Compiler &Compilador
|
||||
menutrans &SeT\ Compiler &Compilador
|
||||
menutrans Se&t\ Compiler &Compilador
|
||||
menutrans &Convert\ to\ HEX<Tab>:%!xxd Converteix\ a\ &HEX<Tab>:%!xxd
|
||||
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Torna\ al\ format\ &original<Tab>:%!xxd\ -r
|
||||
|
||||
@@ -303,14 +302,14 @@ menutrans &Syntax &Sintaxi
|
||||
menutrans &Manual &Manual
|
||||
menutrans A&utomatic A&utom<EFBFBD>tica
|
||||
menutrans on/off\ for\ &This\ file Activa/Desactiva\ en\ &aquest\ fitxer
|
||||
menutrans &Show\ filetypes\ in\ menu Mostra\ tots\ els\ &tipus\ al\ men<EFBFBD>
|
||||
menutrans &Show\ File\ Types\ in\ Menu Mostra\ tots\ els\ &tipus\ al\ men<EFBFBD>
|
||||
menutrans &Off &Desactiva
|
||||
menutrans Co&lor\ test Prova\ dels\ &colors
|
||||
menutrans &Highlight\ test Prova\ del\ &ressalt
|
||||
menutrans &Highlight\ test Prova\ del\ &ressaltat
|
||||
menutrans &Convert\ to\ HTML Converteix\ a\ &HTML
|
||||
menutrans Assembly Ensamblador
|
||||
menutrans Config Configuraci<EFBFBD>
|
||||
menutrans Set\ '&syntax'\ only Nom<EFBFBD>s\ el\ ressalt\ de\ sintaxi
|
||||
menutrans Set\ '&syntax'\ only Nom<EFBFBD>s\ el\ ressaltat\ de\ sintaxi
|
||||
menutrans Set\ '&filetype'\ too Carrega\ tamb<EFBFBD>\ els\ plugins
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Mar 06
|
||||
" Last Change: 2017 Sep 10
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
if bufwinnr("option-window") > 0
|
||||
let s:thiswin = winnr()
|
||||
while 1
|
||||
if @% == "option-window"
|
||||
let buf = bufnr('option-window')
|
||||
if buf >= 0
|
||||
let winids = win_findbuf(buf)
|
||||
if len(winids) > 0
|
||||
if win_gotoid(winids[0]) == 1
|
||||
finish
|
||||
endif
|
||||
wincmd w
|
||||
if s:thiswin == winnr()
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
endif
|
||||
|
||||
" Make sure the '<' flag is not included in 'cpoptions', otherwise <CR> would
|
||||
@@ -141,8 +138,8 @@ while exists("b:current_syntax") && b:current_syntax == "help"
|
||||
endif
|
||||
endwhile
|
||||
|
||||
" Open the window
|
||||
new option-window
|
||||
" Open the window. $OPTWIN_CMD is set to "tab" for ":tab options".
|
||||
exe $OPTWIN_CMD . ' new option-window'
|
||||
setlocal ts=15 tw=0 noro buftype=nofile
|
||||
|
||||
" Insert help and a "set" command for each option.
|
||||
@@ -506,6 +503,18 @@ if has("cursorbind")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>BinOptionL("crb")
|
||||
endif
|
||||
if has("terminal")
|
||||
call append("$", "termsize\tsize of a terminal window")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("tms")
|
||||
call append("$", "termkey\tkey that precedes Vim commands in a terminal window")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("tk")
|
||||
if exists("&winptydll")
|
||||
call append("$", "winptydll\tname of the winpty dynamic library")
|
||||
call <SID>OptionG("winptydll", &winptydll)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
call <SID>Header("multiple tab pages")
|
||||
@@ -1216,6 +1225,8 @@ endif
|
||||
call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("imi")
|
||||
call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot")
|
||||
call <SID>OptionG("imst", &imst)
|
||||
call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("ims")
|
||||
@@ -1296,6 +1307,8 @@ endif
|
||||
if has("viminfo")
|
||||
call append("$", "viminfo\tlist that specifies what to write in the viminfo file")
|
||||
call <SID>OptionG("vi", &vi)
|
||||
call append("$", "viminfofile\tfile name used for the viminfo file")
|
||||
call <SID>OptionG("vif", &vif)
|
||||
endif
|
||||
if has("quickfix")
|
||||
call append("$", "bufhidden\twhat happens with a buffer when it's no longer in a window")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
" matchit.vim: (global plugin) Extended "%" matching
|
||||
" Last Change: 2017 March 26
|
||||
" Last Change: 2017 Sep 15
|
||||
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
|
||||
" Version: 1.13.3, for Vim 6.3+
|
||||
" Fix from Fernando Torres included.
|
||||
@@ -704,9 +704,8 @@ fun! s:MultiMatch(spflag, mode)
|
||||
let skip = 's:comment\|string'
|
||||
endif
|
||||
let skip = s:ParseSkip(skip)
|
||||
" let restore_cursor = line(".") . "G" . virtcol(".") . "|"
|
||||
" normal! H
|
||||
" let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
|
||||
" save v:count1 variable, might be reset from the restore_cursor command
|
||||
let level = v:count1
|
||||
let restore_cursor = virtcol(".") . "|"
|
||||
normal! g0
|
||||
let restore_cursor = line(".") . "G" . virtcol(".") . "|zs" . restore_cursor
|
||||
@@ -726,7 +725,6 @@ fun! s:MultiMatch(spflag, mode)
|
||||
execute "if " . skip . "| let skip = '0' | endif"
|
||||
endif
|
||||
mark '
|
||||
let level = v:count1
|
||||
while level
|
||||
if searchpair(openpat, '', closepat, a:spflag, skip) < 1
|
||||
call s:CleanUp(restore_options, a:mode, startline, startcol)
|
||||
|
||||
379
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
vendored
Normal file
379
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
vendored
Normal file
@@ -0,0 +1,379 @@
|
||||
" Debugger plugin using gdb.
|
||||
"
|
||||
" WORK IN PROGRESS - much doesn't work yet
|
||||
"
|
||||
" Open two visible terminal windows:
|
||||
" 1. run a pty, as with ":term NONE"
|
||||
" 2. run gdb, passing the pty
|
||||
" The current window is used to view source code and follows gdb.
|
||||
"
|
||||
" A third terminal window is hidden, it is used for communication with gdb.
|
||||
"
|
||||
" The communication with gdb uses GDB/MI. See:
|
||||
" https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html
|
||||
"
|
||||
" Author: Bram Moolenaar
|
||||
" Copyright: Vim license applies, see ":help license"
|
||||
|
||||
" In case this gets loaded twice.
|
||||
if exists(':Termdebug')
|
||||
finish
|
||||
endif
|
||||
|
||||
" The command that starts debugging, e.g. ":Termdebug vim".
|
||||
" To end type "quit" in the gdb window.
|
||||
command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>)
|
||||
|
||||
" Name of the gdb command, defaults to "gdb".
|
||||
if !exists('termdebugger')
|
||||
let termdebugger = 'gdb'
|
||||
endif
|
||||
|
||||
let s:pc_id = 12
|
||||
let s:break_id = 13
|
||||
|
||||
if &background == 'light'
|
||||
hi default debugPC term=reverse ctermbg=lightblue guibg=lightblue
|
||||
else
|
||||
hi default debugPC term=reverse ctermbg=darkblue guibg=darkblue
|
||||
endif
|
||||
hi default debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||
|
||||
func s:StartDebug(cmd)
|
||||
let s:startwin = win_getid(winnr())
|
||||
let s:startsigncolumn = &signcolumn
|
||||
|
||||
let s:save_columns = 0
|
||||
if exists('g:termdebug_wide')
|
||||
if &columns < g:termdebug_wide
|
||||
let s:save_columns = &columns
|
||||
let &columns = g:termdebug_wide
|
||||
endif
|
||||
let vertical = 1
|
||||
else
|
||||
let vertical = 0
|
||||
endif
|
||||
|
||||
" Open a terminal window without a job, to run the debugged program
|
||||
let s:ptybuf = term_start('NONE', {
|
||||
\ 'term_name': 'gdb program',
|
||||
\ 'vertical': vertical,
|
||||
\ })
|
||||
if s:ptybuf == 0
|
||||
echoerr 'Failed to open the program terminal window'
|
||||
return
|
||||
endif
|
||||
let pty = job_info(term_getjob(s:ptybuf))['tty_out']
|
||||
let s:ptywin = win_getid(winnr())
|
||||
|
||||
" Create a hidden terminal window to communicate with gdb
|
||||
let s:commbuf = term_start('NONE', {
|
||||
\ 'term_name': 'gdb communication',
|
||||
\ 'out_cb': function('s:CommOutput'),
|
||||
\ 'hidden': 1,
|
||||
\ })
|
||||
if s:commbuf == 0
|
||||
echoerr 'Failed to open the communication terminal window'
|
||||
exe 'bwipe! ' . s:ptybuf
|
||||
return
|
||||
endif
|
||||
let commpty = job_info(term_getjob(s:commbuf))['tty_out']
|
||||
|
||||
" Open a terminal window to run the debugger.
|
||||
let cmd = [g:termdebugger, '-tty', pty, a:cmd]
|
||||
echomsg 'executing "' . join(cmd) . '"'
|
||||
let gdbbuf = term_start(cmd, {
|
||||
\ 'exit_cb': function('s:EndDebug'),
|
||||
\ 'term_finish': 'close',
|
||||
\ })
|
||||
if gdbbuf == 0
|
||||
echoerr 'Failed to open the gdb terminal window'
|
||||
exe 'bwipe! ' . s:ptybuf
|
||||
exe 'bwipe! ' . s:commbuf
|
||||
return
|
||||
endif
|
||||
let s:gdbwin = win_getid(winnr())
|
||||
|
||||
" Connect gdb to the communication pty, using the GDB/MI interface
|
||||
call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
|
||||
|
||||
" Sign used to highlight the line where the program has stopped.
|
||||
" There can be only one.
|
||||
sign define debugPC linehl=debugPC
|
||||
|
||||
" Sign used to indicate a breakpoint.
|
||||
" Can be used multiple times.
|
||||
sign define debugBreakpoint text=>> texthl=debugBreakpoint
|
||||
|
||||
" Install debugger commands in the text window.
|
||||
call win_gotoid(s:startwin)
|
||||
call s:InstallCommands()
|
||||
call win_gotoid(s:gdbwin)
|
||||
|
||||
let s:breakpoints = {}
|
||||
|
||||
augroup TermDebug
|
||||
au BufRead * call s:BufRead()
|
||||
au BufUnload * call s:BufUnloaded()
|
||||
augroup END
|
||||
endfunc
|
||||
|
||||
func s:EndDebug(job, status)
|
||||
exe 'bwipe! ' . s:ptybuf
|
||||
exe 'bwipe! ' . s:commbuf
|
||||
|
||||
let curwinid = win_getid(winnr())
|
||||
|
||||
call win_gotoid(s:startwin)
|
||||
let &signcolumn = s:startsigncolumn
|
||||
call s:DeleteCommands()
|
||||
|
||||
call win_gotoid(curwinid)
|
||||
if s:save_columns > 0
|
||||
let &columns = s:save_columns
|
||||
endif
|
||||
|
||||
au! TermDebug
|
||||
endfunc
|
||||
|
||||
" Handle a message received from gdb on the GDB/MI interface.
|
||||
func s:CommOutput(chan, msg)
|
||||
let msgs = split(a:msg, "\r")
|
||||
|
||||
for msg in msgs
|
||||
" remove prefixed NL
|
||||
if msg[0] == "\n"
|
||||
let msg = msg[1:]
|
||||
endif
|
||||
if msg != ''
|
||||
if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
|
||||
call s:HandleCursor(msg)
|
||||
elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,'
|
||||
call s:HandleNewBreakpoint(msg)
|
||||
elseif msg =~ '^=breakpoint-deleted,'
|
||||
call s:HandleBreakpointDelete(msg)
|
||||
elseif msg =~ '^\^done,value='
|
||||
call s:HandleEvaluate(msg)
|
||||
elseif msg =~ '^\^error,msg='
|
||||
call s:HandleError(msg)
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
" Install commands in the current window to control the debugger.
|
||||
func s:InstallCommands()
|
||||
command Break call s:SetBreakpoint()
|
||||
command Delete call s:DeleteBreakpoint()
|
||||
command Step call s:SendCommand('-exec-step')
|
||||
command Over call s:SendCommand('-exec-next')
|
||||
command Finish call s:SendCommand('-exec-finish')
|
||||
command Continue call s:SendCommand('-exec-continue')
|
||||
command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
|
||||
command Gdb call win_gotoid(s:gdbwin)
|
||||
command Program call win_gotoid(s:ptywin)
|
||||
|
||||
" TODO: can the K mapping be restored?
|
||||
nnoremap K :Evaluate<CR>
|
||||
|
||||
if has('menu')
|
||||
nnoremenu WinBar.Step :Step<CR>
|
||||
nnoremenu WinBar.Next :Over<CR>
|
||||
nnoremenu WinBar.Finish :Finish<CR>
|
||||
nnoremenu WinBar.Cont :Continue<CR>
|
||||
nnoremenu WinBar.Eval :Evaluate<CR>
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Delete installed debugger commands in the current window.
|
||||
func s:DeleteCommands()
|
||||
delcommand Break
|
||||
delcommand Delete
|
||||
delcommand Step
|
||||
delcommand Over
|
||||
delcommand Finish
|
||||
delcommand Continue
|
||||
delcommand Evaluate
|
||||
delcommand Gdb
|
||||
delcommand Program
|
||||
|
||||
nunmap K
|
||||
|
||||
if has('menu')
|
||||
aunmenu WinBar.Step
|
||||
aunmenu WinBar.Next
|
||||
aunmenu WinBar.Finish
|
||||
aunmenu WinBar.Cont
|
||||
aunmenu WinBar.Eval
|
||||
endif
|
||||
|
||||
exe 'sign unplace ' . s:pc_id
|
||||
for key in keys(s:breakpoints)
|
||||
exe 'sign unplace ' . (s:break_id + key)
|
||||
endfor
|
||||
sign undefine debugPC
|
||||
sign undefine debugBreakpoint
|
||||
unlet s:breakpoints
|
||||
endfunc
|
||||
|
||||
" :Break - Set a breakpoint at the cursor position.
|
||||
func s:SetBreakpoint()
|
||||
call term_sendkeys(s:commbuf, '-break-insert --source '
|
||||
\ . fnameescape(expand('%:p')) . ' --line ' . line('.') . "\r")
|
||||
endfunc
|
||||
|
||||
" :Delete - Delete a breakpoint at the cursor position.
|
||||
func s:DeleteBreakpoint()
|
||||
let fname = fnameescape(expand('%:p'))
|
||||
let lnum = line('.')
|
||||
for [key, val] in items(s:breakpoints)
|
||||
if val['fname'] == fname && val['lnum'] == lnum
|
||||
call term_sendkeys(s:commbuf, '-break-delete ' . key . "\r")
|
||||
" Assume this always wors, the reply is simply "^done".
|
||||
exe 'sign unplace ' . (s:break_id + key)
|
||||
unlet s:breakpoints[key]
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
" :Next, :Continue, etc - send a command to gdb
|
||||
func s:SendCommand(cmd)
|
||||
call term_sendkeys(s:commbuf, a:cmd . "\r")
|
||||
endfunc
|
||||
|
||||
" :Evaluate - evaluate what is under the cursor
|
||||
func s:Evaluate(range, arg)
|
||||
if a:arg != ''
|
||||
let expr = a:arg
|
||||
elseif a:range == 2
|
||||
let pos = getcurpos()
|
||||
let reg = getreg('v', 1, 1)
|
||||
let regt = getregtype('v')
|
||||
normal! gv"vy
|
||||
let expr = @v
|
||||
call setpos('.', pos)
|
||||
call setreg('v', reg, regt)
|
||||
else
|
||||
let expr = expand('<cexpr>')
|
||||
endif
|
||||
call term_sendkeys(s:commbuf, '-data-evaluate-expression "' . expr . "\"\r")
|
||||
let s:evalexpr = expr
|
||||
endfunc
|
||||
|
||||
" Handle the result of data-evaluate-expression
|
||||
func s:HandleEvaluate(msg)
|
||||
let value = substitute(a:msg, '.*value="\(.*\)"', '\1', '')
|
||||
let value = substitute(value, '\\"', '"', 'g')
|
||||
echomsg '"' . s:evalexpr . '": ' . value
|
||||
|
||||
if s:evalexpr[0] != '*' && value =~ '^0x' && value !~ '"$'
|
||||
" Looks like a pointer, also display what it points to.
|
||||
let s:evalexpr = '*' . s:evalexpr
|
||||
call term_sendkeys(s:commbuf, '-data-evaluate-expression "' . s:evalexpr . "\"\r")
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Handle an error.
|
||||
func s:HandleError(msg)
|
||||
echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
|
||||
endfunc
|
||||
|
||||
" Handle stopping and running message from gdb.
|
||||
" Will update the sign that shows the current position.
|
||||
func s:HandleCursor(msg)
|
||||
let wid = win_getid(winnr())
|
||||
|
||||
if win_gotoid(s:startwin)
|
||||
let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
|
||||
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
|
||||
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
|
||||
if lnum =~ '^[0-9]*$'
|
||||
if expand('%:p') != fnamemodify(fname, ':p')
|
||||
if &modified
|
||||
" TODO: find existing window
|
||||
exe 'split ' . fnameescape(fname)
|
||||
let s:startwin = win_getid(winnr())
|
||||
else
|
||||
exe 'edit ' . fnameescape(fname)
|
||||
endif
|
||||
endif
|
||||
exe lnum
|
||||
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
|
||||
setlocal signcolumn=yes
|
||||
endif
|
||||
else
|
||||
exe 'sign unplace ' . s:pc_id
|
||||
endif
|
||||
|
||||
call win_gotoid(wid)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Handle setting a breakpoint
|
||||
" Will update the sign that shows the breakpoint
|
||||
func s:HandleNewBreakpoint(msg)
|
||||
let nr = substitute(a:msg, '.*number="\([0-9]\)*\".*', '\1', '') + 0
|
||||
if nr == 0
|
||||
return
|
||||
endif
|
||||
|
||||
if has_key(s:breakpoints, nr)
|
||||
let entry = s:breakpoints[nr]
|
||||
else
|
||||
let entry = {}
|
||||
let s:breakpoints[nr] = entry
|
||||
endif
|
||||
|
||||
let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
|
||||
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
|
||||
let entry['fname'] = fname
|
||||
let entry['lnum'] = lnum
|
||||
|
||||
if bufloaded(fname)
|
||||
call s:PlaceSign(nr, entry)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func s:PlaceSign(nr, entry)
|
||||
exe 'sign place ' . (s:break_id + a:nr) . ' line=' . a:entry['lnum'] . ' name=debugBreakpoint file=' . a:entry['fname']
|
||||
let a:entry['placed'] = 1
|
||||
endfunc
|
||||
|
||||
" Handle deleting a breakpoint
|
||||
" Will remove the sign that shows the breakpoint
|
||||
func s:HandleBreakpointDelete(msg)
|
||||
let nr = substitute(a:msg, '.*id="\([0-9]*\)\".*', '\1', '') + 0
|
||||
if nr == 0
|
||||
return
|
||||
endif
|
||||
if has_key(s:breakpoints, nr)
|
||||
let entry = s:breakpoints[nr]
|
||||
if has_key(entry, 'placed')
|
||||
exe 'sign unplace ' . (s:break_id + nr)
|
||||
unlet entry['placed']
|
||||
endif
|
||||
unlet s:breakpoints[nr]
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Handle a BufRead autocommand event: place any signs.
|
||||
func s:BufRead()
|
||||
let fname = expand('<afile>:p')
|
||||
for [nr, entry] in items(s:breakpoints)
|
||||
if entry['fname'] == fname
|
||||
call s:PlaceSign(nr, entry)
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
" Handle a BufUnloaded autocommand event: unplace any signs.
|
||||
func s:BufUnloaded()
|
||||
let fname = expand('<afile>:p')
|
||||
for [nr, entry] in items(s:breakpoints)
|
||||
if entry['fname'] == fname
|
||||
let entry['placed'] = 0
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types in scripts
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2017 Jun 11
|
||||
" Last change: 2017 Aug 27
|
||||
|
||||
" This file is called by an autocommand for every file that has just been
|
||||
" loaded into a buffer. It checks if the type of file can be recognized by
|
||||
@@ -306,7 +306,7 @@ else
|
||||
set ft=virata
|
||||
|
||||
" Strace
|
||||
elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
|
||||
elseif s:line1 =~# '[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
|
||||
set ft=strace
|
||||
|
||||
" VSE JCL
|
||||
|
||||
@@ -136,7 +136,7 @@ syntax match clojureRegexpBoundary "[$^]" contained display
|
||||
syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display
|
||||
syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display
|
||||
syntax match clojureRegexpOr "|" contained display
|
||||
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-z]+\>)" contained display
|
||||
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-Z]+\>)" contained display
|
||||
|
||||
" Mode modifiers, mode-modified spans, lookaround, regular and atomic
|
||||
" grouping, and named-capturing.
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2016 Aug 30
|
||||
" Last Change: 2017 Aug 18
|
||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -21,8 +21,8 @@ syn case match
|
||||
syn match debcontrolElse "^.*$"
|
||||
|
||||
" Common seperators
|
||||
syn match debControlComma ", *"
|
||||
syn match debControlSpace " "
|
||||
syn match debControlComma ",[ \t]*"
|
||||
syn match debControlSpace "[ \t]"
|
||||
|
||||
let s:kernels = '\%(linux\|hurd\|kfreebsd\|knetbsd\|kopensolaris\|netbsd\)'
|
||||
let s:archs = '\%(alpha\|amd64\|armeb\|armel\|armhf\|arm64\|avr32\|hppa\|i386'
|
||||
@@ -38,7 +38,7 @@ unlet s:kernels s:archs s:pairs
|
||||
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
|
||||
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
|
||||
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
|
||||
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
|
||||
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java%(script)=|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
|
||||
syn match debcontrolPackageType contained "u\?deb"
|
||||
syn match debcontrolVariable contained "\${.\{-}}"
|
||||
syn match debcontrolDmUpload contained "\cyes"
|
||||
@@ -60,7 +60,7 @@ syn match debcontrolComment "^#.*$" contains=@Spell
|
||||
syn case ignore
|
||||
|
||||
" List of all legal keys
|
||||
syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\): *"
|
||||
syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\|\%(XS-\)\=Testsuite\): *"
|
||||
|
||||
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
|
||||
|
||||
@@ -79,9 +79,9 @@ syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=deb
|
||||
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
|
||||
|
||||
" Catch-all for the other legal fields
|
||||
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
|
||||
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
|
||||
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link debcontrolKey Keyword
|
||||
|
||||
@@ -85,7 +85,7 @@ syn match formComment "\;\ *\*.*$" contains=formTodo
|
||||
syn region formString start=+"+ end=+"+ contains=formSpecial
|
||||
syn region formString start=+'+ end=+'+
|
||||
syn region formNestedString start=+`+ end=+'+ contains=formNestedString
|
||||
syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>"
|
||||
syn match formPreProc "^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
|
||||
syn match formNumber "\<\d\+\>"
|
||||
syn match formNumber "\<\d\+\.\d*\>"
|
||||
syn match formNumber "\.\d\+\>"
|
||||
@@ -94,13 +94,13 @@ syn match formNumber "-\.\d" contains=Number
|
||||
syn match formNumber "i_\+\>"
|
||||
syn match formNumber "fac_\+\>"
|
||||
" pattern matching wildcards
|
||||
syn match formNumber "?[A-z0-9]*"
|
||||
syn match formNumber "?[a-zA-Z0-9]*"
|
||||
" dollar-variables (new in 3.x)
|
||||
syn match formNumber "\\$[A-z0-9]*"
|
||||
syn match formNumber "\\$[a-zA-Z0-9]*"
|
||||
" scalar products
|
||||
syn match formNumber "^\=[a-zA-z][a-zA-Z0-9]*\.[a-zA-z][a-zA-Z0-9]*\>"
|
||||
syn match formNumber "^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>"
|
||||
|
||||
syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>"
|
||||
syn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>"
|
||||
|
||||
" hi User Labels
|
||||
syn sync ccomment formComment minlines=10
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: none; used to see highlighting
|
||||
" Maintainer: Ronald Schild <rs@scutum.de>
|
||||
" Last Change: 2001 Sep 02
|
||||
" Last Change: 2017 Jul 28
|
||||
" Version: 5.4n.1
|
||||
|
||||
" To see your current highlight settings, do
|
||||
@@ -111,17 +111,6 @@ endif
|
||||
nohlsearch
|
||||
normal 0
|
||||
|
||||
" add autocommands to remove temporary file from buffer list
|
||||
aug highlighttest
|
||||
au!
|
||||
au BufUnload Highlight\ test if expand("<afile>") == "Highlight test"
|
||||
au BufUnload Highlight\ test bdelete! Highlight\ test
|
||||
au BufUnload Highlight\ test endif
|
||||
au VimLeavePre * if bufexists("Highlight test")
|
||||
au VimLeavePre * bdelete! Highlight\ test
|
||||
au VimLeavePre * endif
|
||||
aug END
|
||||
|
||||
" we don't want to save this temporary file
|
||||
set nomodified
|
||||
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
" Vim syntax file
|
||||
" Language: Mason (Perl embedded in HTML)
|
||||
" Maintainer: Andrew Smith <andrewdsmith@yahoo.com>
|
||||
" Last change: 2003 May 11
|
||||
" URL: http://www.masonhq.com/editors/mason.vim
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2017-09-12
|
||||
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||
" Andrew Smith <andrewdsmith@yahoo.com>
|
||||
"
|
||||
" This seems to work satisfactorily with html.vim and perl.vim for version 5.5.
|
||||
" Please mail any fixes or improvements to the above address. Things that need
|
||||
" doing include:
|
||||
"
|
||||
" - Add match for component names in <& &> blocks.
|
||||
" - Add match for component names in <%def> and <%method> block delimiters.
|
||||
" TODO:
|
||||
" - Fix <%text> blocks to show HTML tags but ignore Mason tags.
|
||||
"
|
||||
|
||||
@@ -34,30 +32,38 @@ syn cluster htmlPreproc add=@masonTop
|
||||
" Now pull in the Perl syntax.
|
||||
"
|
||||
syn include @perlTop syntax/perl.vim
|
||||
unlet b:current_syntax
|
||||
syn include @podTop syntax/pod.vim
|
||||
|
||||
" It's hard to reduce down to the correct sub-set of Perl to highlight in some
|
||||
" of these cases so I've taken the safe option of just using perlTop in all of
|
||||
" them. If you have any suggestions, please let me know.
|
||||
"
|
||||
syn region masonLine matchgroup=Delimiter start="^%" end="$" contains=@perlTop
|
||||
syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop
|
||||
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=@perlTop
|
||||
syn region masonComp keepend matchgroup=Delimiter start="<&" end="&>" contains=@perlTop
|
||||
syn region masonPod start="^=[a-z]" end="^=cut" keepend contained contains=@podTop
|
||||
syn cluster perlTop remove=perlBraces
|
||||
syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@perlTop
|
||||
syn region masonPerlComment start="#" end="\%(%>\)\@=\|$" contained contains=perlTodo,@Spell
|
||||
syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop,masonPerlComment
|
||||
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=masonPod,@perlTop
|
||||
syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop
|
||||
syn region masonComp keepend matchgroup=Delimiter skipnl start="<&|\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop nextgroup=masonCompContent
|
||||
syn region masonCompContent matchgroup=Delimiter start="" end="</&>" contained contains=@masonTop
|
||||
|
||||
syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=@perlTop
|
||||
syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop
|
||||
|
||||
syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=@perlTop
|
||||
syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=@perlTop
|
||||
syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=@perlTop
|
||||
syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=@perlTop
|
||||
syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=masonPod,@perlTop
|
||||
syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=masonPod,@perlTop
|
||||
syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=masonPod,@perlTop
|
||||
syn region masonClass matchgroup=Delimiter start="<%class>" end="</%class>" contains=masonPod,@perlTop
|
||||
syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=masonPod,@perlTop
|
||||
|
||||
syn region masonDef matchgroup=Delimiter start="<%def[^>]*>" end="</%def>" contains=@htmlTop
|
||||
syn region masonMethod matchgroup=Delimiter start="<%method[^>]*>" end="</%method>" contains=@htmlTop
|
||||
syn region masonDef matchgroup=Delimiter start="<%def\s*[-._/[:alnum:]]\+\s*>" end="</%def>" contains=@htmlTop
|
||||
syn region masonMethod matchgroup=Delimiter start="<%method\s*[-._/[:alnum:]]\+\s*>" end="</%method>" contains=@htmlTop
|
||||
|
||||
syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=@perlTop
|
||||
syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=@perlTop
|
||||
syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=masonPod,@perlTop
|
||||
syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=masonPod,@perlTop
|
||||
|
||||
syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=@perlTop
|
||||
syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=masonPod,@perlTop
|
||||
|
||||
syn region masonDoc matchgroup=Delimiter start="<%doc>" end="</%doc>"
|
||||
syn region masonText matchgroup=Delimiter start="<%text>" end="</%text>"
|
||||
@@ -67,6 +73,8 @@ syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,
|
||||
" Set up default highlighting. Almost all of this is done in the included
|
||||
" syntax files.
|
||||
hi def link masonDoc Comment
|
||||
hi def link masonPod Comment
|
||||
hi def link masonPerlComment perlComment
|
||||
|
||||
let b:current_syntax = "mason"
|
||||
|
||||
|
||||
127
runtime/syntax/murphi.vim
Normal file
127
runtime/syntax/murphi.vim
Normal file
@@ -0,0 +1,127 @@
|
||||
" Vim syntax file
|
||||
" Language: Murphi model checking language
|
||||
" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
|
||||
" Last Change: 2017 Aug 27
|
||||
" Version: 2
|
||||
" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu>
|
||||
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Keywords are case insensitive.
|
||||
" Keep these in alphabetical order.
|
||||
syntax case ignore
|
||||
syn keyword murphiKeyword alias
|
||||
syn keyword murphiStructure array
|
||||
syn keyword murphiKeyword assert
|
||||
syn keyword murphiKeyword begin
|
||||
syn keyword murphiType boolean
|
||||
syn keyword murphiKeyword by
|
||||
syn keyword murphiLabel case
|
||||
syn keyword murphiKeyword clear
|
||||
syn keyword murphiLabel const
|
||||
syn keyword murphiRepeat do
|
||||
syn keyword murphiConditional else
|
||||
syn keyword murphiConditional elsif
|
||||
syn keyword murphiKeyword end
|
||||
syn keyword murphiKeyword endalias
|
||||
syn keyword murphiRepeat endexists
|
||||
syn keyword murphiRepeat endfor
|
||||
syn keyword murphiRepeat endforall
|
||||
syn keyword murphiKeyword endfunction
|
||||
syn keyword murphiConditional endif
|
||||
syn keyword murphiKeyword endprocedure
|
||||
syn keyword murphiStructure endrecord
|
||||
syn keyword murphiKeyword endrule
|
||||
syn keyword murphiKeyword endruleset
|
||||
syn keyword murphiKeyword endstartstate
|
||||
syn keyword murphiConditional endswitch
|
||||
syn keyword murphiRepeat endwhile
|
||||
syn keyword murphiStructure enum
|
||||
syn keyword murphiKeyword error
|
||||
syn keyword murphiRepeat exists
|
||||
syn keyword murphiBoolean false
|
||||
syn keyword murphiRepeat for
|
||||
syn keyword murphiRepeat forall
|
||||
syn keyword murphiKeyword function
|
||||
syn keyword murphiConditional if
|
||||
syn keyword murphiKeyword in
|
||||
syn keyword murphiKeyword interleaved
|
||||
syn keyword murphiLabel invariant
|
||||
syn keyword murphiFunction ismember
|
||||
syn keyword murphiFunction isundefined
|
||||
syn keyword murphiKeyword log
|
||||
syn keyword murphiStructure of
|
||||
syn keyword murphiType multiset
|
||||
syn keyword murphiFunction multisetadd
|
||||
syn keyword murphiFunction multisetcount
|
||||
syn keyword murphiFunction multisetremove
|
||||
syn keyword murphiFunction multisetremovepred
|
||||
syn keyword murphiKeyword procedure
|
||||
syn keyword murphiKeyword process
|
||||
syn keyword murphiKeyword program
|
||||
syn keyword murphiKeyword put
|
||||
syn keyword murphiStructure record
|
||||
syn keyword murphiKeyword return
|
||||
syn keyword murphiLabel rule
|
||||
syn keyword murphiLabel ruleset
|
||||
syn keyword murphiType scalarset
|
||||
syn keyword murphiLabel startstate
|
||||
syn keyword murphiConditional switch
|
||||
syn keyword murphiConditional then
|
||||
syn keyword murphiRepeat to
|
||||
syn keyword murphiKeyword traceuntil
|
||||
syn keyword murphiBoolean true
|
||||
syn keyword murphiLabel type
|
||||
syn keyword murphiKeyword undefine
|
||||
syn keyword murphiStructure union
|
||||
syn keyword murphiLabel var
|
||||
syn keyword murphiRepeat while
|
||||
|
||||
syn keyword murphiTodo contained todo xxx fixme
|
||||
syntax case match
|
||||
|
||||
" Integers.
|
||||
syn match murphiNumber "\<\d\+\>"
|
||||
|
||||
" Operators and special characters.
|
||||
syn match murphiOperator "[\+\-\*\/%&|=!<>:\?]\|\."
|
||||
syn match murphiDelimiter "\(:[^=]\|[;,]\)"
|
||||
syn match murphiSpecial "[()\[\]]"
|
||||
|
||||
" Double equal sign is a common error: use one equal sign for equality testing.
|
||||
syn match murphiError "==[^>]"he=e-1
|
||||
" Double && and || are errors.
|
||||
syn match murphiError "&&\|||"
|
||||
|
||||
" Strings. This is defined so late so that it overrides previous matches.
|
||||
syn region murphiString start=+"+ end=+"+
|
||||
|
||||
" Comments. This is defined so late so that it overrides previous matches.
|
||||
syn region murphiComment start="--" end="$" contains=murphiTodo
|
||||
syn region murphiComment start="/\*" end="\*/" contains=murphiTodo
|
||||
|
||||
" Link the rules to some groups.
|
||||
hi def link murphiComment Comment
|
||||
hi def link murphiString String
|
||||
hi def link murphiNumber Number
|
||||
hi def link murphiBoolean Boolean
|
||||
hi def link murphiIdentifier Identifier
|
||||
hi def link murphiFunction Function
|
||||
hi def link murphiStatement Statement
|
||||
hi def link murphiConditional Conditional
|
||||
hi def link murphiRepeat Repeat
|
||||
hi def link murphiLabel Label
|
||||
hi def link murphiOperator Operator
|
||||
hi def link murphiKeyword Keyword
|
||||
hi def link murphiType Type
|
||||
hi def link murphiStructure Structure
|
||||
hi def link murphiSpecial Special
|
||||
hi def link murphiDelimiter Delimiter
|
||||
hi def link murphiError Error
|
||||
hi def link murphiTodo Todo
|
||||
|
||||
let b:current_syntax = "murphi"
|
||||
434
runtime/syntax/n1ql.vim
Normal file
434
runtime/syntax/n1ql.vim
Normal file
@@ -0,0 +1,434 @@
|
||||
" Vim syntax file
|
||||
" Language: N1QL / Couchbase Server
|
||||
" Maintainer: Eugene Ciurana <n1ql AT cime.net>
|
||||
" Version: 1.0
|
||||
" Source: https://github.com/pr3d4t0r/n1ql-vim-syntax
|
||||
"
|
||||
" License: Vim is Charityware. n1ql.vim syntax is Charityware.
|
||||
" (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r. Licensed
|
||||
" under the standard VIM LICENSE - Vim command :help uganda.txt
|
||||
" for details.
|
||||
"
|
||||
" Questions, comments: <n1ql AT cime.net>
|
||||
" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r
|
||||
"
|
||||
" vim: set fileencoding=utf-8:
|
||||
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn keyword n1qlSpecial DATASTORES
|
||||
syn keyword n1qlSpecial DUAL
|
||||
syn keyword n1qlSpecial FALSE
|
||||
syn keyword n1qlSpecial INDEXES
|
||||
syn keyword n1qlSpecial KEYSPACES
|
||||
syn keyword n1qlSpecial MISSING
|
||||
syn keyword n1qlSpecial NAMESPACES
|
||||
syn keyword n1qlSpecial NULL
|
||||
syn keyword n1qlSpecial TRUE
|
||||
|
||||
|
||||
"
|
||||
" *** keywords ***
|
||||
"
|
||||
syn keyword n1qlKeyword ALL
|
||||
syn keyword n1qlKeyword ANY
|
||||
syn keyword n1qlKeyword ASC
|
||||
syn keyword n1qlKeyword BEGIN
|
||||
syn keyword n1qlKeyword BETWEEN
|
||||
syn keyword n1qlKeyword BREAK
|
||||
syn keyword n1qlKeyword BUCKET
|
||||
syn keyword n1qlKeyword CALL
|
||||
syn keyword n1qlKeyword CASE
|
||||
syn keyword n1qlKeyword CAST
|
||||
syn keyword n1qlKeyword CLUSTER
|
||||
syn keyword n1qlKeyword COLLATE
|
||||
syn keyword n1qlKeyword COLLECTION
|
||||
syn keyword n1qlKeyword CONNECT
|
||||
syn keyword n1qlKeyword CONTINUE
|
||||
syn keyword n1qlKeyword CORRELATE
|
||||
syn keyword n1qlKeyword COVER
|
||||
syn keyword n1qlKeyword DATABASE
|
||||
syn keyword n1qlKeyword DATASET
|
||||
syn keyword n1qlKeyword DATASTORE
|
||||
syn keyword n1qlKeyword DECLARE
|
||||
syn keyword n1qlKeyword DECREMENT
|
||||
syn keyword n1qlKeyword DERIVED
|
||||
syn keyword n1qlKeyword DESC
|
||||
syn keyword n1qlKeyword DESCRIBE
|
||||
syn keyword n1qlKeyword DO
|
||||
syn keyword n1qlKeyword EACH
|
||||
syn keyword n1qlKeyword ELEMENT
|
||||
syn keyword n1qlKeyword ELSE
|
||||
syn keyword n1qlKeyword END
|
||||
syn keyword n1qlKeyword EVERY
|
||||
syn keyword n1qlKeyword EXCLUDE
|
||||
syn keyword n1qlKeyword EXISTS
|
||||
syn keyword n1qlKeyword FETCH
|
||||
syn keyword n1qlKeyword FIRST
|
||||
syn keyword n1qlKeyword FLATTEN
|
||||
syn keyword n1qlKeyword FOR
|
||||
syn keyword n1qlKeyword FORCE
|
||||
syn keyword n1qlKeyword FROM
|
||||
syn keyword n1qlKeyword FUNCTION
|
||||
syn keyword n1qlKeyword GROUP
|
||||
syn keyword n1qlKeyword GSI
|
||||
syn keyword n1qlKeyword HAVING
|
||||
syn keyword n1qlKeyword IF
|
||||
syn keyword n1qlKeyword IGNORE
|
||||
syn keyword n1qlKeyword INCLUDE
|
||||
syn keyword n1qlKeyword INCREMENT
|
||||
syn keyword n1qlKeyword INDEX
|
||||
syn keyword n1qlKeyword INITIAL
|
||||
syn keyword n1qlKeyword INLINE
|
||||
syn keyword n1qlKeyword INNER
|
||||
syn keyword n1qlKeyword INTO
|
||||
syn keyword n1qlKeyword KEY
|
||||
syn keyword n1qlKeyword KEYS
|
||||
syn keyword n1qlKeyword KEYSPACE
|
||||
syn keyword n1qlKeyword KNOWN
|
||||
syn keyword n1qlKeyword LAST
|
||||
syn keyword n1qlKeyword LET
|
||||
syn keyword n1qlKeyword LETTING
|
||||
syn keyword n1qlKeyword LIMIT
|
||||
syn keyword n1qlKeyword LOOP
|
||||
syn keyword n1qlKeyword LSM
|
||||
syn keyword n1qlKeyword MAP
|
||||
syn keyword n1qlKeyword MAPPING
|
||||
syn keyword n1qlKeyword MATCHED
|
||||
syn keyword n1qlKeyword MATERIALIZED
|
||||
syn keyword n1qlKeyword MERGE
|
||||
syn keyword n1qlKeyword NAMESPACE
|
||||
syn keyword n1qlKeyword NEST
|
||||
syn keyword n1qlKeyword OPTION
|
||||
syn keyword n1qlKeyword ORDER
|
||||
syn keyword n1qlKeyword OUTER
|
||||
syn keyword n1qlKeyword OVER
|
||||
syn keyword n1qlKeyword PARSE
|
||||
syn keyword n1qlKeyword PARTITION
|
||||
syn keyword n1qlKeyword PASSWORD
|
||||
syn keyword n1qlKeyword PATH
|
||||
syn keyword n1qlKeyword POOL
|
||||
syn keyword n1qlKeyword PRIMARY
|
||||
syn keyword n1qlKeyword PRIVATE
|
||||
syn keyword n1qlKeyword PRIVILEGE
|
||||
syn keyword n1qlKeyword PROCEDURE
|
||||
syn keyword n1qlKeyword PUBLIC
|
||||
syn keyword n1qlKeyword REALM
|
||||
syn keyword n1qlKeyword REDUCE
|
||||
syn keyword n1qlKeyword RETURN
|
||||
syn keyword n1qlKeyword RETURNING
|
||||
syn keyword n1qlKeyword ROLE
|
||||
syn keyword n1qlKeyword SATISFIES
|
||||
syn keyword n1qlKeyword SCHEMA
|
||||
syn keyword n1qlKeyword SELF
|
||||
syn keyword n1qlKeyword SEMI
|
||||
syn keyword n1qlKeyword SHOW
|
||||
syn keyword n1qlKeyword START
|
||||
syn keyword n1qlKeyword STATISTICS
|
||||
syn keyword n1qlKeyword SYSTEM
|
||||
syn keyword n1qlKeyword THEN
|
||||
syn keyword n1qlKeyword TRANSACTION
|
||||
syn keyword n1qlKeyword TRIGGER
|
||||
syn keyword n1qlKeyword UNDER
|
||||
syn keyword n1qlKeyword UNKNOWN
|
||||
syn keyword n1qlKeyword UNSET
|
||||
syn keyword n1qlKeyword USE
|
||||
syn keyword n1qlKeyword USER
|
||||
syn keyword n1qlKeyword USING
|
||||
syn keyword n1qlKeyword VALIDATE
|
||||
syn keyword n1qlKeyword VALUE
|
||||
syn keyword n1qlKeyword VALUED
|
||||
syn keyword n1qlKeyword VALUES
|
||||
syn keyword n1qlKeyword VIEW
|
||||
syn keyword n1qlKeyword WHEN
|
||||
syn keyword n1qlKeyword WHERE
|
||||
syn keyword n1qlKeyword WHILE
|
||||
syn keyword n1qlKeyword WITHIN
|
||||
syn keyword n1qlKeyword WORK
|
||||
|
||||
|
||||
"
|
||||
" *** functions ***
|
||||
"
|
||||
syn keyword n1qlOperator ABS
|
||||
syn keyword n1qlOperator ACOS
|
||||
syn keyword n1qlOperator ARRAY_AGG
|
||||
syn keyword n1qlOperator ARRAY_APPEND
|
||||
syn keyword n1qlOperator ARRAY_AVG
|
||||
syn keyword n1qlOperator ARRAY_CONCAT
|
||||
syn keyword n1qlOperator ARRAY_CONTAINS
|
||||
syn keyword n1qlOperator ARRAY_COUNT
|
||||
syn keyword n1qlOperator ARRAY_DISTINCT
|
||||
syn keyword n1qlOperator ARRAY_FLATTEN
|
||||
syn keyword n1qlOperator ARRAY_IFNULL
|
||||
syn keyword n1qlOperator ARRAY_INSERT
|
||||
syn keyword n1qlOperator ARRAY_INTERSECT
|
||||
syn keyword n1qlOperator ARRAY_LENGTH
|
||||
syn keyword n1qlOperator ARRAY_MAX
|
||||
syn keyword n1qlOperator ARRAY_MIN
|
||||
syn keyword n1qlOperator ARRAY_POSITION
|
||||
syn keyword n1qlOperator ARRAY_PREPEND
|
||||
syn keyword n1qlOperator ARRAY_PUT
|
||||
syn keyword n1qlOperator ARRAY_RANGE
|
||||
syn keyword n1qlOperator ARRAY_REMOVE
|
||||
syn keyword n1qlOperator ARRAY_REPEAT
|
||||
syn keyword n1qlOperator ARRAY_REPLACE
|
||||
syn keyword n1qlOperator ARRAY_REVERSE
|
||||
syn keyword n1qlOperator ARRAY_SORT
|
||||
syn keyword n1qlOperator ARRAY_START
|
||||
syn keyword n1qlOperator ARRAY_SUM
|
||||
syn keyword n1qlOperator ARRAY_SYMDIFF
|
||||
syn keyword n1qlOperator ARRAY_UNION
|
||||
syn keyword n1qlOperator ASIN
|
||||
syn keyword n1qlOperator ATAN
|
||||
syn keyword n1qlOperator ATAN2
|
||||
syn keyword n1qlOperator AVG
|
||||
syn keyword n1qlOperator BASE64
|
||||
syn keyword n1qlOperator BASE64_DECODE
|
||||
syn keyword n1qlOperator BASE64_ENCODE
|
||||
syn keyword n1qlOperator CEIL
|
||||
syn keyword n1qlOperator CLOCK_LOCAL
|
||||
syn keyword n1qlOperator CLOCK_STR
|
||||
syn keyword n1qlOperator CLOCK_TZ
|
||||
syn keyword n1qlOperator CLOCK_UTC
|
||||
syn keyword n1qlOperator CLOCL_MILLIS
|
||||
syn keyword n1qlOperator CONTAINS
|
||||
syn keyword n1qlOperator COS
|
||||
syn keyword n1qlOperator COUNT
|
||||
syn keyword n1qlOperator DATE_ADD_MILLIS
|
||||
syn keyword n1qlOperator DATE_ADD_STR
|
||||
syn keyword n1qlOperator DATE_DIFF_MILLIS
|
||||
syn keyword n1qlOperator DATE_DIFF_STR
|
||||
syn keyword n1qlOperator DATE_FORMAT_STR
|
||||
syn keyword n1qlOperator DATE_PART_MILLIS
|
||||
syn keyword n1qlOperator DATE_PART_STR
|
||||
syn keyword n1qlOperator DATE_RANGE_MILLIS
|
||||
syn keyword n1qlOperator DATE_RANGE_STR
|
||||
syn keyword n1qlOperator DATE_TRUC_STR
|
||||
syn keyword n1qlOperator DATE_TRUNC_MILLIS
|
||||
syn keyword n1qlOperator DECODE_JSON
|
||||
syn keyword n1qlOperator DEGREES
|
||||
syn keyword n1qlOperator DURATION_TO_STR
|
||||
syn keyword n1qlOperator E
|
||||
syn keyword n1qlOperator ENCODED_SIZE
|
||||
syn keyword n1qlOperator ENCODE_JSON
|
||||
syn keyword n1qlOperator EXP
|
||||
syn keyword n1qlOperator FLOOR
|
||||
syn keyword n1qlOperator GREATEST
|
||||
syn keyword n1qlOperator IFINF
|
||||
syn keyword n1qlOperator IFMISSING
|
||||
syn keyword n1qlOperator IFMISSINGORNULL
|
||||
syn keyword n1qlOperator IFNAN
|
||||
syn keyword n1qlOperator IFNANORINF
|
||||
syn keyword n1qlOperator IFNULL
|
||||
syn keyword n1qlOperator INITCAP
|
||||
syn keyword n1qlOperator ISARRAY
|
||||
syn keyword n1qlOperator ISATOM
|
||||
syn keyword n1qlOperator ISBOOLEAN
|
||||
syn keyword n1qlOperator ISNUMBER
|
||||
syn keyword n1qlOperator ISOBJECT
|
||||
syn keyword n1qlOperator ISSTRING
|
||||
syn keyword n1qlOperator LEAST
|
||||
syn keyword n1qlOperator LENGTH
|
||||
syn keyword n1qlOperator LN
|
||||
syn keyword n1qlOperator LOG
|
||||
syn keyword n1qlOperator LOWER
|
||||
syn keyword n1qlOperator LTRIM
|
||||
syn keyword n1qlOperator MAX
|
||||
syn keyword n1qlOperator META
|
||||
syn keyword n1qlOperator MILLIS
|
||||
syn keyword n1qlOperator MILLIS_TO_LOCAL
|
||||
syn keyword n1qlOperator MILLIS_TO_STR
|
||||
syn keyword n1qlOperator MILLIS_TO_TZ
|
||||
syn keyword n1qlOperator MILLIS_TO_UTC
|
||||
syn keyword n1qlOperator MILLIS_TO_ZONE_NAME
|
||||
syn keyword n1qlOperator MIN
|
||||
syn keyword n1qlOperator MISSINGIF
|
||||
syn keyword n1qlOperator NANIF
|
||||
syn keyword n1qlOperator NEGINFIF
|
||||
syn keyword n1qlOperator NOW_LOCAL
|
||||
syn keyword n1qlOperator NOW_MILLIS
|
||||
syn keyword n1qlOperator NOW_STR
|
||||
syn keyword n1qlOperator NOW_TZ
|
||||
syn keyword n1qlOperator NOW_UTC
|
||||
syn keyword n1qlOperator NULLIF
|
||||
syn keyword n1qlOperator OBJECT_ADD
|
||||
syn keyword n1qlOperator OBJECT_CONCAT
|
||||
syn keyword n1qlOperator OBJECT_INNER_PAIRS
|
||||
syn keyword n1qlOperator OBJECT_INNER_VALUES
|
||||
syn keyword n1qlOperator OBJECT_LENGTH
|
||||
syn keyword n1qlOperator OBJECT_NAMES
|
||||
syn keyword n1qlOperator OBJECT_PAIRS
|
||||
syn keyword n1qlOperator OBJECT_PUT
|
||||
syn keyword n1qlOperator OBJECT_REMOVE
|
||||
syn keyword n1qlOperator OBJECT_RENAME
|
||||
syn keyword n1qlOperator OBJECT_REPLACE
|
||||
syn keyword n1qlOperator OBJECT_UNWRAP
|
||||
syn keyword n1qlOperator OBJECT_VALUES
|
||||
syn keyword n1qlOperator PI
|
||||
syn keyword n1qlOperator POLY_LENGTH
|
||||
syn keyword n1qlOperator POSINIF
|
||||
syn keyword n1qlOperator POSITION
|
||||
syn keyword n1qlOperator POWER
|
||||
syn keyword n1qlOperator RADIANS
|
||||
syn keyword n1qlOperator RANDOM
|
||||
syn keyword n1qlOperator REGEXP_CONTAINS
|
||||
syn keyword n1qlOperator REGEXP_LIKE
|
||||
syn keyword n1qlOperator REGEXP_POSITION
|
||||
syn keyword n1qlOperator REGEXP_REPLACE
|
||||
syn keyword n1qlOperator REPEAT
|
||||
syn keyword n1qlOperator REPLACE
|
||||
syn keyword n1qlOperator REVERSE
|
||||
syn keyword n1qlOperator ROUND
|
||||
syn keyword n1qlOperator RTRIM
|
||||
syn keyword n1qlOperator SIGN
|
||||
syn keyword n1qlOperator SIN
|
||||
syn keyword n1qlOperator SPLIT
|
||||
syn keyword n1qlOperator SQRT
|
||||
syn keyword n1qlOperator STR_TO_DURATION
|
||||
syn keyword n1qlOperator STR_TO_MILLIS
|
||||
syn keyword n1qlOperator STR_TO_TZ
|
||||
syn keyword n1qlOperator STR_TO_UTC
|
||||
syn keyword n1qlOperator STR_TO_ZONE_NAME
|
||||
syn keyword n1qlOperator SUBSTR
|
||||
syn keyword n1qlOperator SUFFIXES
|
||||
syn keyword n1qlOperator SUM
|
||||
syn keyword n1qlOperator TAN
|
||||
syn keyword n1qlOperator TITLE
|
||||
syn keyword n1qlOperator TOARRAY
|
||||
syn keyword n1qlOperator TOATOM
|
||||
syn keyword n1qlOperator TOBOOLEAN
|
||||
syn keyword n1qlOperator TOKENS
|
||||
syn keyword n1qlOperator TONUMBER
|
||||
syn keyword n1qlOperator TOOBJECT
|
||||
syn keyword n1qlOperator TOSTRING
|
||||
syn keyword n1qlOperator TRIM
|
||||
syn keyword n1qlOperator TRUNC
|
||||
syn keyword n1qlOperator TYPE
|
||||
syn keyword n1qlOperator UPPER
|
||||
syn keyword n1qlOperator UUID
|
||||
syn keyword n1qlOperator WEEKDAY_MILLIS
|
||||
syn keyword n1qlOperator WEEKDAY_STR
|
||||
|
||||
|
||||
"
|
||||
" *** operators ***
|
||||
"
|
||||
syn keyword n1qlOperator AND
|
||||
syn keyword n1qlOperator AS
|
||||
syn keyword n1qlOperator BY
|
||||
syn keyword n1qlOperator DISTINCT
|
||||
syn keyword n1qlOperator EXCEPT
|
||||
syn keyword n1qlOperator ILIKE
|
||||
syn keyword n1qlOperator IN
|
||||
syn keyword n1qlOperator INTERSECT
|
||||
syn keyword n1qlOperator IS
|
||||
syn keyword n1qlOperator JOIN
|
||||
syn keyword n1qlOperator LEFT
|
||||
syn keyword n1qlOperator LIKE
|
||||
syn keyword n1qlOperator MINUS
|
||||
syn keyword n1qlOperator NEST
|
||||
syn keyword n1qlOperator NESTING
|
||||
syn keyword n1qlOperator NOT
|
||||
syn keyword n1qlOperator OFFSET
|
||||
syn keyword n1qlOperator ON
|
||||
syn keyword n1qlOperator OR
|
||||
syn keyword n1qlOperator OUT
|
||||
syn keyword n1qlOperator RIGHT
|
||||
syn keyword n1qlOperator SOME
|
||||
syn keyword n1qlOperator TO
|
||||
syn keyword n1qlOperator UNION
|
||||
syn keyword n1qlOperator UNIQUE
|
||||
syn keyword n1qlOperator UNNEST
|
||||
syn keyword n1qlOperator VIA
|
||||
syn keyword n1qlOperator WITH
|
||||
syn keyword n1qlOperator XOR
|
||||
|
||||
|
||||
"
|
||||
" *** statements ***
|
||||
"
|
||||
syn keyword n1qlStatement ALTER
|
||||
syn keyword n1qlStatement ANALYZE
|
||||
syn keyword n1qlStatement BUILD
|
||||
syn keyword n1qlStatement COMMIT
|
||||
syn keyword n1qlStatement CREATE
|
||||
syn keyword n1qlStatement DELETE
|
||||
syn keyword n1qlStatement DROP
|
||||
syn keyword n1qlStatement EXECUTE
|
||||
syn keyword n1qlStatement EXPLAIN
|
||||
syn keyword n1qlStatement GRANT
|
||||
syn keyword n1qlStatement INFER
|
||||
syn keyword n1qlStatement INSERT
|
||||
syn keyword n1qlStatement MERGE
|
||||
syn keyword n1qlStatement PREPARE
|
||||
syn keyword n1qlStatement RENAME
|
||||
syn keyword n1qlStatement REVOKE
|
||||
syn keyword n1qlStatement ROLLBACK
|
||||
syn keyword n1qlStatement SELECT
|
||||
syn keyword n1qlStatement SET
|
||||
syn keyword n1qlStatement TRUNCATE
|
||||
syn keyword n1qlStatement UPDATE
|
||||
syn keyword n1qlStatement UPSERT
|
||||
|
||||
|
||||
"
|
||||
" *** types ***
|
||||
"
|
||||
syn keyword n1qlType ARRAY
|
||||
syn keyword n1qlType BINARY
|
||||
syn keyword n1qlType BOOLEAN
|
||||
syn keyword n1qlType NUMBER
|
||||
syn keyword n1qlType OBJECT
|
||||
syn keyword n1qlType RAW
|
||||
syn keyword n1qlType STRING
|
||||
|
||||
|
||||
"
|
||||
" *** strings and characters ***
|
||||
"
|
||||
syn region n1qlString start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn region n1qlString start=+'+ skip=+\\\\\|\\'+ end=+'+
|
||||
syn region n1qlBucketSpec start=+`+ skip=+\\\\\|\\'+ end=+`+
|
||||
|
||||
|
||||
"
|
||||
" *** numbers ***
|
||||
"
|
||||
syn match n1qlNumber "-\=\<\d*\.\=[0-9_]\>"
|
||||
|
||||
|
||||
"
|
||||
" *** comments ***
|
||||
"
|
||||
syn region n1qlComment start="/\*" end="\*/" contains=n1qlTODO
|
||||
syn match n1qlComment "--.*$" contains=n1qlTODO
|
||||
syn sync ccomment n1qlComment
|
||||
|
||||
|
||||
"
|
||||
" *** TODO ***
|
||||
"
|
||||
syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE
|
||||
|
||||
|
||||
"
|
||||
" *** enable ***
|
||||
"
|
||||
hi def link n1qlBucketSpec Underlined
|
||||
hi def link n1qlComment Comment
|
||||
hi def link n1qlKeyword Macro
|
||||
hi def link n1qlOperator Function
|
||||
hi def link n1qlSpecial Special
|
||||
hi def link n1qlStatement Statement
|
||||
hi def link n1qlString String
|
||||
hi def link n1qlTODO Todo
|
||||
hi def link n1qlType Type
|
||||
|
||||
let b:current_syntax = "n1ql"
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2013-07-23
|
||||
" Last Change: 2017-09-12
|
||||
" Contributors: Andy Lester <andy@petdance.com>
|
||||
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||
" Lukas Mai <l.mai.web.de>
|
||||
@@ -28,8 +28,9 @@
|
||||
" unlet perl_fold
|
||||
" unlet perl_fold_blocks
|
||||
" unlet perl_nofold_packages
|
||||
" let perl_nofold_subs = 1
|
||||
" unlet perl_nofold_subs
|
||||
" unlet perl_fold_anonymous_subs
|
||||
" unlet perl_no_subprototype_error
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -38,11 +39,6 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists('®expengine')
|
||||
let s:regexpengine=®expengine
|
||||
set regexpengine=1
|
||||
endif
|
||||
|
||||
" POD starts with ^=<word> and ends with ^=cut
|
||||
|
||||
if !exists("perl_include_pod") || perl_include_pod == 1
|
||||
@@ -83,7 +79,7 @@ syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgr
|
||||
|
||||
syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>"
|
||||
syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>"
|
||||
syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|uc\%(first\)\=\)\>"
|
||||
syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|fc\|uc\%(first\)\=\)\>"
|
||||
syn match perlStatementRegexp "\<\%(pos\|quotemeta\|split\|study\)\>"
|
||||
syn match perlStatementNumeric "\<\%(abs\|atan2\|cos\|exp\|hex\|int\|log\|oct\|rand\|sin\|sqrt\|srand\)\>"
|
||||
syn match perlStatementList "\<\%(splice\|unshift\|shift\|push\|pop\|join\|reverse\|grep\|map\|sort\|unpack\)\>"
|
||||
@@ -94,9 +90,9 @@ syn match perlStatementFiledesc "\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read
|
||||
syn match perlStatementVector "\<vec\>"
|
||||
syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
|
||||
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
|
||||
syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\)\>"
|
||||
syn match perlStatementInclude "\<\%(require\|import\)\>"
|
||||
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
|
||||
syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
|
||||
syn match perlStatementInclude "\<\%(require\|import\|unimport\)\>"
|
||||
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
|
||||
syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
|
||||
syn match perlStatementSocket "\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
|
||||
syn match perlStatementIPC "\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
|
||||
@@ -108,7 +104,7 @@ syn match perlStatementMisc "\<\%(warn\|format\|formline\|reset\|scalar\|protot
|
||||
|
||||
syn keyword perlTodo TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained
|
||||
|
||||
syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlBraces extend
|
||||
syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\%(\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*\)\@<={" end="}" transparent extend
|
||||
|
||||
syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
|
||||
|
||||
@@ -125,7 +121,7 @@ syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
|
||||
" Special variables first ($^A, ...) and ($|, $', ...)
|
||||
syn match perlVarPlain "$^[ACDEFHILMNOPRSTVWX]\="
|
||||
syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]"
|
||||
syn match perlVarPlain "%+"
|
||||
syn match perlVarPlain "@[-+]"
|
||||
syn match perlVarPlain "$\%(0\|[1-9]\d*\)"
|
||||
" Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
|
||||
syn match perlVarPlain "$::\@!"
|
||||
@@ -143,41 +139,46 @@ syn match perlPackageRef "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\
|
||||
" just set the variable "perl_no_extended_vars"...
|
||||
|
||||
if !exists("perl_no_scope_in_variables")
|
||||
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
|
||||
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef
|
||||
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
|
||||
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
|
||||
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
|
||||
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
|
||||
else
|
||||
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
|
||||
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)"
|
||||
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
|
||||
syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
|
||||
syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
|
||||
syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
|
||||
endif
|
||||
|
||||
syn match perlVarPlain2 "%[-+]"
|
||||
|
||||
if !exists("perl_no_extended_vars")
|
||||
syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
|
||||
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
|
||||
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
|
||||
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
|
||||
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
|
||||
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
|
||||
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
|
||||
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
|
||||
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
|
||||
syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
|
||||
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
|
||||
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
|
||||
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
|
||||
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
|
||||
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
|
||||
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contains=perlVarSimpleMemberName contained extend
|
||||
syn match perlVarSimpleMemberName "\I\i*" contained
|
||||
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
|
||||
syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod
|
||||
syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod
|
||||
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
|
||||
syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod,perlPostDeref
|
||||
syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
|
||||
syn match perlPostDeref "->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
|
||||
syn region perlPostDeref start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
|
||||
syn region perlPostDeref matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
|
||||
endif
|
||||
|
||||
" File Descriptors
|
||||
syn match perlFiledescRead "<\h\w*>"
|
||||
|
||||
syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement
|
||||
syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
|
||||
syn match perlFiledescStatementComma "(\=\s*\<\u\w*\>\s*,"me=e-1 transparent contained contains=perlFiledescStatement
|
||||
syn match perlFiledescStatementNocomma "(\=\s*\<\u\w*\>\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
|
||||
|
||||
syn match perlFiledescStatement "\u\w*" contained
|
||||
syn match perlFiledescStatement "\<\u\w*\>" contained
|
||||
|
||||
" Special characters in strings and matches
|
||||
syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
|
||||
@@ -241,20 +242,18 @@ syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesD
|
||||
|
||||
|
||||
" Simple version of searches and matches
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
|
||||
|
||||
" A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgcn]*+ contains=@perlInterpSQ keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgcn]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgcn]*+ contains=@perlInterpMatch,perlBracesDQ extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgcn]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgcn]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend
|
||||
|
||||
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
|
||||
" cases as the / is used in so many other ways, but these should be the most obvious ones.
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash extend
|
||||
|
||||
|
||||
" Substitutions
|
||||
@@ -267,12 +266,12 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
|
||||
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcern]*+ keepend contained contains=@perlInterpDQ extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
|
||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
|
||||
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcern]*+ contained contains=@perlInterpSQ keepend extend
|
||||
|
||||
" Translations
|
||||
" perlMatch is the first part, perlTranslation* is the second, translator part.
|
||||
@@ -314,35 +313,40 @@ syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
|
||||
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosxdual]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosxdual]*+ contains=@perlInterpSlash keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosxdual]*+ contains=@perlInterpMatch keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosxdual]*+ contains=@perlInterpSQ keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosxdual]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
|
||||
|
||||
" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosxdual]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosxdual]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
|
||||
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosxdual]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
|
||||
|
||||
" Constructs such as print <<EOF [...] EOF, 'here' documents
|
||||
"
|
||||
" XXX Any statements after the identifier are in perlString colour (i.e.
|
||||
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
|
||||
" seems due to the 'auto-extending nature' of regions.
|
||||
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+$+ contains=@perlTop oneline
|
||||
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+$+ contains=@perlTop oneline
|
||||
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+$+ contains=@perlTop oneline
|
||||
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*""+ end=+$+ contains=@perlTop oneline
|
||||
syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*''+ end=+$+ contains=@perlTop oneline
|
||||
if exists("perl_fold")
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold extend
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold extend
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold extend
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold extend
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold extend
|
||||
syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
|
||||
syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
|
||||
syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ fold extend
|
||||
syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
|
||||
syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
|
||||
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
|
||||
else
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
|
||||
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine
|
||||
syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
|
||||
syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
|
||||
syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ
|
||||
syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
|
||||
syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
|
||||
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL
|
||||
endif
|
||||
|
||||
@@ -356,28 +360,22 @@ syn keyword perlStatementPackage package contained
|
||||
" sub [name] [(prototype)] {
|
||||
"
|
||||
syn match perlSubError "[^[:space:];{#]" contained
|
||||
if v:version == 701 && !has('patch221') " XXX I hope that's the right one
|
||||
syn match perlSubAttributes ":" contained
|
||||
else
|
||||
syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
|
||||
syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
|
||||
syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
|
||||
syn match perlSubAttributes "" contained nextgroup=perlSubError
|
||||
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
|
||||
endif
|
||||
if get(g:, "perl_sub_signatures", 0)
|
||||
syn match perlSignature +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained
|
||||
else
|
||||
syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
|
||||
syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
|
||||
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
|
||||
syn match perlSubPrototype +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
|
||||
endif
|
||||
|
||||
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlSignature,perlSubAttributes,perlComment
|
||||
|
||||
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
|
||||
|
||||
if !exists("perl_no_scope_in_variables")
|
||||
syn match perlFunctionPRef "\h\w*::" contained
|
||||
syn match perlFunctionName "\h\w*[^:]" contained
|
||||
else
|
||||
syn match perlFunctionName "\h[[:alnum:]_:]*" contained
|
||||
endif
|
||||
|
||||
" The => operator forces a bareword to the left of it to be interpreted as
|
||||
" a string
|
||||
syn match perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@="
|
||||
@@ -397,10 +395,10 @@ syn match perlFormatField "@$" contained
|
||||
|
||||
" __END__ and __DATA__ clauses
|
||||
if exists("perl_fold")
|
||||
syntax region perlDATA start="^__DATA__$" skip="." end="." fold
|
||||
syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA fold
|
||||
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
|
||||
else
|
||||
syntax region perlDATA start="^__DATA__$" skip="." end="."
|
||||
syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA
|
||||
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
|
||||
endif
|
||||
|
||||
@@ -414,8 +412,8 @@ if exists("perl_fold")
|
||||
syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
|
||||
endif
|
||||
if !exists("perl_nofold_subs")
|
||||
if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
|
||||
syn region perlSubFold start="\<sub\>[^\n;]*{" end="}" transparent fold keepend extend
|
||||
if get(g:, "perl_fold_anonymous_subs", 0)
|
||||
syn region perlSubFold start="\<sub\>[^{]*{" end="}" transparent fold keepend extend
|
||||
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
|
||||
else
|
||||
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
|
||||
@@ -424,7 +422,7 @@ if exists("perl_fold")
|
||||
endif
|
||||
|
||||
if exists("perl_fold_blocks")
|
||||
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)foreach\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
||||
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
||||
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
||||
endif
|
||||
|
||||
@@ -435,7 +433,6 @@ else
|
||||
syn sync minlines=0
|
||||
endif
|
||||
|
||||
|
||||
" NOTE: If you're linking new highlight groups to perlString, please also put
|
||||
" them into b:match_skip in ftplugin/perl.vim.
|
||||
|
||||
@@ -458,6 +455,7 @@ hi def link perlOperator Operator
|
||||
hi def link perlFunction Keyword
|
||||
hi def link perlSubName Function
|
||||
hi def link perlSubPrototype Type
|
||||
hi def link perlSignature Type
|
||||
hi def link perlSubAttributes PreProc
|
||||
hi def link perlSubAttributesCont perlSubAttributes
|
||||
hi def link perlComment Comment
|
||||
@@ -516,8 +514,11 @@ hi def link perlStatementMisc perlStatement
|
||||
hi def link perlStatementIndirObj perlStatement
|
||||
hi def link perlFunctionName perlIdentifier
|
||||
hi def link perlMethod perlIdentifier
|
||||
hi def link perlPostDeref perlIdentifier
|
||||
hi def link perlFunctionPRef perlType
|
||||
if !get(g:, 'perl_include_pod', 1)
|
||||
hi def link perlPOD perlComment
|
||||
endif
|
||||
hi def link perlShellCommand perlString
|
||||
hi def link perlSpecialAscii perlSpecial
|
||||
hi def link perlSpecialDollar perlSpecial
|
||||
@@ -548,7 +549,6 @@ hi def link perlElseIfError Error
|
||||
hi def link perlSubPrototypeError Error
|
||||
hi def link perlSubError Error
|
||||
|
||||
|
||||
" Syncing to speed up processing
|
||||
"
|
||||
if !exists("perl_no_sync_on_sub")
|
||||
@@ -575,11 +575,6 @@ syn sync match perlSyncPOD grouphere NONE "^=cut"
|
||||
|
||||
let b:current_syntax = "perl"
|
||||
|
||||
if exists('®expengine')
|
||||
let ®expengine=s:regexpengine
|
||||
unlet s:regexpengine
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
" Vim syntax file
|
||||
" Language: php PHP 3/4/5/7
|
||||
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
|
||||
" Last Change: Jun 09, 2017
|
||||
" Last Change: Jul 14, 2017
|
||||
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
|
||||
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
|
||||
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
"
|
||||
" Note: If you are using a colour terminal with dark background, you will probably find
|
||||
" the 'elflord' colorscheme is much better for PHP's syntax than the default
|
||||
" colourscheme, because elflord's colours will better highlight the break-points
|
||||
" (Statements) in your code.
|
||||
" Note: If you are using a colour terminal with dark background, you will
|
||||
" probably find the 'elflord' colorscheme is much better for PHP's syntax
|
||||
" than the default colourscheme, because elflord's colours will better
|
||||
" highlight the break-points (Statements) in your code.
|
||||
"
|
||||
" Options:
|
||||
" Set to anything to enable:
|
||||
@@ -112,7 +112,7 @@ syn keyword phpCoreConstant E_ALL E_COMPILE_ERROR E_COMPILE_WARNING E_CORE_ERROR
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ contained
|
||||
syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ __TRAIT__ contained
|
||||
|
||||
|
||||
" Function and Methods ripped from php_manual_de.tar.gz Jan 2003
|
||||
@@ -255,13 +255,13 @@ syn keyword phpRepeat as do endfor endforeach endwhile for foreach while contai
|
||||
syn keyword phpLabel case default switch contained
|
||||
|
||||
" Statement
|
||||
syn keyword phpStatement return break continue exit goto contained
|
||||
syn keyword phpStatement return break continue exit goto yield contained
|
||||
|
||||
" Keyword
|
||||
syn keyword phpKeyword var const contained
|
||||
|
||||
" Type
|
||||
syn keyword phpType bool boolean int integer real double float string array object NULL contained
|
||||
syn keyword phpType bool boolean int integer real double float string array object NULL callable iterable contained
|
||||
|
||||
" Structure
|
||||
syn keyword phpStructure namespace extends implements instanceof parent self contained
|
||||
@@ -320,7 +320,6 @@ syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelecto
|
||||
" Include
|
||||
syn keyword phpInclude include require include_once require_once use contained
|
||||
|
||||
" Peter Hodge - added 'clone' keyword
|
||||
" Define
|
||||
syn keyword phpDefine new clone contained
|
||||
|
||||
@@ -441,37 +440,31 @@ if exists("php_folding") && php_folding==1
|
||||
syn keyword phpFCKeyword function contained
|
||||
syn keyword phpStorageClass global contained
|
||||
syn match phpDefine "\(\s\|^\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\(\s\+.*[;}]\)\@=" contained contains=phpSCKeyword
|
||||
syn match phpStructure "\(\s\|^\)\(abstract\s\+\|final\s\+\)*class\(\s\+.*}\)\@=" contained
|
||||
syn match phpStructure "\(\s\|^\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\(\s\+.*}\)\@=" contained
|
||||
syn match phpStructure "\(\s\|^\)interface\(\s\+.*}\)\@=" contained
|
||||
syn match phpException "\(\s\|^\)try\(\s\+.*}\)\@=" contained
|
||||
syn match phpException "\(\s\|^\)catch\(\s\+.*}\)\@=" contained
|
||||
syn match phpException "\(\s\|^\)finally\(\s\+.*}\)\@=" contained
|
||||
|
||||
set foldmethod=syntax
|
||||
syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
|
||||
syn region phpFoldFunction matchgroup=Storageclass start="^\z(\s*\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\s\([^};]*$\)\@="rs=e-9 matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldHtmlInside,phpFCKeyword contained transparent fold extend
|
||||
syn region phpFoldFunction matchgroup=Define start="^function\s\([^};]*$\)\@=" matchgroup=Delimiter end="^}" contains=@phpClFunction,phpFoldHtmlInside contained transparent fold extend
|
||||
syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*class\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend
|
||||
syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend
|
||||
syn region phpFoldInterface matchgroup=Structure start="^\z(\s*\)interface\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
|
||||
syn region phpFoldCatch matchgroup=Exception start="^\z(\s*\)catch\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
|
||||
syn region phpFoldTry matchgroup=Exception start="^\z(\s*\)try\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
|
||||
elseif exists("php_folding") && php_folding==2
|
||||
else
|
||||
syn keyword phpDefine function contained
|
||||
syn keyword phpStructure abstract class interface contained
|
||||
syn keyword phpException catch throw try contained
|
||||
syn keyword phpStructure abstract class trait interface contained
|
||||
syn keyword phpException catch throw try finally contained
|
||||
syn keyword phpStorageClass final global private protected public static contained
|
||||
|
||||
if exists("php_folding") && php_folding==2
|
||||
set foldmethod=syntax
|
||||
syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
|
||||
syn region phpParent matchgroup=Delimiter start="{" end="}" contained contains=@phpClFunction,phpFoldHtmlInside transparent fold
|
||||
else
|
||||
syn keyword phpDefine function contained
|
||||
syn keyword phpStructure abstract class interface contained
|
||||
syn keyword phpException catch throw try contained
|
||||
syn keyword phpStorageClass final global private protected public static contained
|
||||
endif
|
||||
|
||||
" TODO: fold on "trait". For now just make sure it gets colored:
|
||||
syn keyword phpStructure trait
|
||||
endif
|
||||
|
||||
" ================================================================
|
||||
" Peter Hodge - June 9, 2006
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
" Previously: Scott Bigham <dsb@killerbunnies.org>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2013-07-21
|
||||
" Last Change: 2017-09-12
|
||||
|
||||
" To add embedded POD documentation highlighting to your syntax file, add
|
||||
" the commands:
|
||||
@@ -76,7 +76,6 @@ hi def link podSpecial Identifier
|
||||
hi def link podEscape String
|
||||
hi def link podEscape2 Number
|
||||
|
||||
|
||||
if exists("perl_pod_spellcheck_headings")
|
||||
" Spell-check headings
|
||||
syn clear podCmdText
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: readline(3) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2012-04-25
|
||||
" Latest Revision: 2017-06-25
|
||||
" readline_has_bash - if defined add support for bash specific
|
||||
" settings/functions
|
||||
|
||||
@@ -119,6 +119,7 @@ syn keyword readlineVariable contained
|
||||
\ nextgroup=readlineBoolean
|
||||
\ skipwhite
|
||||
\ bind-tty-special-chars
|
||||
\ colored-stats
|
||||
\ completion-ignore-case
|
||||
\ completion-map-case
|
||||
\ convert-meta
|
||||
@@ -142,6 +143,7 @@ syn keyword readlineVariable contained
|
||||
\ revert-all-at-newline
|
||||
\ show-all-if-ambiguous
|
||||
\ show-all-if-unmodified
|
||||
\ show-mode-in-prompt
|
||||
\ skip-completed-text
|
||||
\ visible-stats
|
||||
|
||||
@@ -158,6 +160,7 @@ syn keyword readlineVariable contained
|
||||
\ completion-prefix-display-length
|
||||
\ completion-query-items
|
||||
\ history-size
|
||||
\ keyseq-timeout
|
||||
|
||||
syn keyword readlineVariable contained
|
||||
\ nextgroup=readlineEditingMode
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Zhen-Huan Hu <wildkeny@gmail.com>
|
||||
" Original Maintainer: James Kidd <james.kidd@covance.com>
|
||||
" Version: 3.0.0
|
||||
" Last Change: Mar 10, 2017
|
||||
" Last Change: Aug 26, 2017
|
||||
"
|
||||
" 2017 Mar 7
|
||||
"
|
||||
@@ -120,7 +120,7 @@ syn match sasDataStepStatement '\v%(^|;)\s*\zs%(dcl|declare)>' display contained
|
||||
syn match sasDataStepStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
|
||||
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(format|informat|input|put)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
|
||||
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(cards|datalines|lines)4=\s*;' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataLine skipwhite skipnl skipempty
|
||||
syn region sasDataLine start='^' end='^;'me=s-1 contained
|
||||
syn region sasDataLine start='^' end='^\s*;'me=s-1 contained
|
||||
syn region sasDataStep matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsdata>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,@sasDataStepSyntax
|
||||
syn cluster sasDataStepSyntax contains=sasDataStepFunction,sasDataStepHashOperator,sasDataStepHashAttribute,sasDataStepHashMethod,sasDataStepControl,sasDataStepStatement
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" SiSU Vim syntax file
|
||||
" SiSU Maintainer: Ralph Amissah <ralph.amissah@gmail.com>
|
||||
" SiSU Markup: SiSU (sisu-5.6.7)
|
||||
" Last Change: 2014-09-14
|
||||
" Last Change: 2017 Jun 22
|
||||
" URL: <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
|
||||
" <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob_plain;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
|
||||
"(originally looked at Ruby Vim by Mirko Nasato)
|
||||
@@ -102,7 +102,7 @@ syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_c
|
||||
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+table" end="^```\(\s\|$\)"
|
||||
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n$"
|
||||
" block, group, poem, alt
|
||||
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\(block\|group\|poem\|alt\){" end="^}\1"
|
||||
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\z(block\|group\|poem\|alt\){" end="^}\z1"
|
||||
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+\(block\|group\|poem\|alt\)" end="^```\(\s\|$\)"
|
||||
" box
|
||||
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^box\(\.[a-z]\+\)\?{" end="^}box"
|
||||
|
||||
97
runtime/syntax/tap.vim
Normal file
97
runtime/syntax/tap.vim
Normal file
@@ -0,0 +1,97 @@
|
||||
" Vim syntax file
|
||||
" Language: Verbose TAP Output
|
||||
" Maintainer: Rufus Cable <rufus@threebytesfull.com>
|
||||
" Remark: Simple syntax highlighting for TAP output
|
||||
" License:
|
||||
" Copyright: (c) 2008-2013 Rufus Cable
|
||||
" Last Change: 2014-12-13
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match tapTestDiag /^ *#.*/ contains=tapTestTodo
|
||||
syn match tapTestTime /^ *\[\d\d:\d\d:\d\d\].*/ contains=tapTestFile
|
||||
syn match tapTestFile /\w\+\/[^. ]*/ contained
|
||||
syn match tapTestFileWithDot /\w\+\/[^ ]*/ contained
|
||||
|
||||
syn match tapTestPlan /^ *\d\+\.\.\d\+$/
|
||||
|
||||
" tapTest is a line like 'ok 1', 'not ok 2', 'ok 3 - xxxx'
|
||||
syn match tapTest /^ *\(not \)\?ok \d\+.*/ contains=tapTestStatusOK,tapTestStatusNotOK,tapTestLine
|
||||
|
||||
" tapTestLine is the line without the ok/not ok status - i.e. number and
|
||||
" optional message
|
||||
syn match tapTestLine /\d\+\( .*\|$\)/ contains=tapTestNumber,tapTestLoadMessage,tapTestTodo,tapTestSkip contained
|
||||
|
||||
" turn ok/not ok messages green/red respectively
|
||||
syn match tapTestStatusOK /ok/ contained
|
||||
syn match tapTestStatusNotOK /not ok/ contained
|
||||
|
||||
" highlight todo tests
|
||||
syn match tapTestTodo /\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev
|
||||
syn match tapTestTodoRev /\<TODO\>/ contained
|
||||
|
||||
" highlight skipped tests
|
||||
syn match tapTestSkip /# skip .*$/ contained contains=tapTestSkipTag
|
||||
syn match tapTestSkipTag /\(# \)\@<=skip\>/ contained
|
||||
|
||||
" look behind so "ok 123" and "not ok 124" match test number
|
||||
syn match tapTestNumber /\(ok \)\@<=\d\d*/ contained
|
||||
syn match tapTestLoadMessage /\*\*\*.*\*\*\*/ contained contains=tapTestThreeStars,tapTestFileWithDot
|
||||
syn match tapTestThreeStars /\*\*\*/ contained
|
||||
|
||||
syn region tapTestRegion start=/^ *\(not \)\?ok.*$/me=e+1 end=/^\(\(not \)\?ok\|# Looks like you planned \|All tests successful\|Bailout called\)/me=s-1 fold transparent excludenl
|
||||
syn region tapTestResultsOKRegion start=/^\(All tests successful\|Result: PASS\)/ end=/$/
|
||||
syn region tapTestResultsNotOKRegion start=/^\(# Looks like you planned \|Bailout called\|# Looks like you failed \|Result: FAIL\)/ end=/$/
|
||||
syn region tapTestResultsSummaryRegion start=/^Test Summary Report/ end=/^Files=.*$/ contains=tapTestResultsSummaryHeading,tapTestResultsSummaryNotOK
|
||||
|
||||
syn region tapTestResultsSummaryHeading start=/^Test Summary Report/ end=/^-\+$/ contained
|
||||
syn region tapTestResultsSummaryNotOK start=/TODO passed:/ end=/$/ contained
|
||||
|
||||
syn region tapTestInstructionsRegion start=/\%1l/ end=/^$/
|
||||
|
||||
set foldtext=TAPTestLine_foldtext()
|
||||
function! TAPTestLine_foldtext()
|
||||
let line = getline(v:foldstart)
|
||||
let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
|
||||
return sub
|
||||
endfunction
|
||||
|
||||
set foldminlines=5
|
||||
set foldcolumn=2
|
||||
set foldenable
|
||||
set foldmethod=syntax
|
||||
syn sync fromstart
|
||||
|
||||
if !exists("did_tapverboseoutput_syntax_inits")
|
||||
let did_tapverboseoutput_syntax_inits = 1
|
||||
|
||||
hi tapTestStatusOK term=bold ctermfg=green guifg=Green
|
||||
hi tapTestStatusNotOK term=reverse ctermfg=black ctermbg=red guifg=Black guibg=Red
|
||||
hi tapTestTodo term=bold ctermfg=yellow ctermbg=black guifg=Yellow guibg=Black
|
||||
hi tapTestTodoRev term=reverse ctermfg=black ctermbg=yellow guifg=Black guibg=Yellow
|
||||
hi tapTestSkip term=bold ctermfg=lightblue guifg=LightBlue
|
||||
hi tapTestSkipTag term=reverse ctermfg=black ctermbg=lightblue guifg=Black guibg=LightBlue
|
||||
hi tapTestTime term=bold ctermfg=blue guifg=Blue
|
||||
hi tapTestFile term=reverse ctermfg=black ctermbg=yellow guibg=Black guifg=Yellow
|
||||
hi tapTestLoadedFile term=bold ctermfg=black ctermbg=cyan guibg=Cyan guifg=Black
|
||||
hi tapTestThreeStars term=reverse ctermfg=blue guifg=Blue
|
||||
hi tapTestPlan term=bold ctermfg=yellow guifg=Yellow
|
||||
|
||||
hi link tapTestFileWithDot tapTestLoadedFile
|
||||
hi link tapTestNumber Number
|
||||
hi link tapTestDiag Comment
|
||||
|
||||
hi tapTestRegion ctermbg=green
|
||||
|
||||
hi tapTestResultsOKRegion ctermbg=green ctermfg=black
|
||||
hi tapTestResultsNotOKRegion ctermbg=red ctermfg=black
|
||||
|
||||
hi tapTestResultsSummaryHeading ctermbg=blue ctermfg=white
|
||||
hi tapTestResultsSummaryNotOK ctermbg=red ctermfg=black
|
||||
|
||||
hi tapTestInstructionsRegion ctermbg=lightmagenta ctermfg=black
|
||||
endif
|
||||
|
||||
let b:current_syntax="tapVerboseOutput"
|
||||
@@ -3,10 +3,10 @@
|
||||
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2013-07-21
|
||||
" Last Change: 2015-04-25
|
||||
"
|
||||
" Instration:
|
||||
" put tt2.vim and tt2html.vim in to your syntax diretory.
|
||||
" Installation:
|
||||
" put tt2.vim and tt2html.vim in to your syntax directory.
|
||||
"
|
||||
" add below in your filetype.vim.
|
||||
" au BufNewFile,BufRead *.tt2 setf tt2
|
||||
|
||||
@@ -78,7 +78,7 @@ syn case match
|
||||
|
||||
" Function Names {{{2
|
||||
syn keyword vimFuncName contained abs append argv assert_fails assert_notequal atan2 buflisted bufwinid byteidxcomp ch_close_in ch_getjob ch_open ch_sendraw char2nr complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlexists index inputrestore invert items job_start js_decode json_encode libcall line2byte log map match matcharg matchlist max mode nr2char perleval printf pyeval reltime remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strdisplaywidth stridx strpart strwidth synID synconcealed systemlist tabpagewinnr tan test_alloc_fail test_garbagecollect_now test_null_job test_null_string timer_pause timer_stopall tr undofile values wildmenumode win_gotoid winbufnr winline winrestview wordcount
|
||||
syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch browse bufloaded bufwinnr call ch_evalexpr ch_info ch_read ch_setoptions cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synIDattr synstack tabpagebuflist tagfiles tanh test_autochdir test_null_channel test_null_list test_settime timer_start tolower trunc undotree virtcol win_findbuf win_id2tabwin wincol winnr winsaveview writefile
|
||||
syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch browse bufloaded bufwinnr call ch_evalexpr ch_info ch_read ch_setoptions cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufline setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synIDattr synstack tabpagebuflist tagfiles tanh test_autochdir test_null_channel test_null_list test_settime timer_start tolower trunc undotree virtcol win_findbuf win_id2tabwin wincol winnr winsaveview writefile
|
||||
syn keyword vimFuncName contained add argidx assert_equal assert_inrange assert_true browsedir bufname byte2line ceil ch_evalraw ch_log ch_readraw ch_status clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode len line localtime luaeval mapcheck matchaddpos matchend matchstrpos mkdir nextnonblank pathshorten prevnonblank py3eval readfile reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setline setpos settabvar sha256 simplify sort spellsuggest str2float strchars strgetchar strlen strtrans substitute synIDtrans system tabpagenr taglist tempname test_disable_char_avail test_null_dict test_null_partial timer_info timer_stop toupper type uniq visualmode win_getid win_id2win winheight winrestcmd winwidth xor
|
||||
syn keyword vimFuncName contained and arglistid assert_exception assert_match atan bufexists bufnr byteidx ch_close ch_getbufnr ch_logfile ch_sendexpr changenr col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlID indent inputlist insert isnan job_setoptions join
|
||||
|
||||
@@ -560,7 +560,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
|
||||
|
||||
syn match vimHiGroup contained "\i\+"
|
||||
syn case ignore
|
||||
syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl
|
||||
syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl nocombine
|
||||
syn keyword vimFgBgAttrib contained none bg background fg foreground
|
||||
syn case match
|
||||
syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -12,7 +12,7 @@
|
||||
|
||||
ATTENTION:
|
||||
The commands in the lessons will modify the text. Make a copy of this
|
||||
file to practise on (if you started "vimtutor" this is already a copy).
|
||||
file to practice on (if you started "vimtutor" this is already a copy).
|
||||
|
||||
It is important to remember that this tutor is set up to teach by
|
||||
use. That means that you need to execute the commands to learn them
|
||||
|
||||
@@ -2,29 +2,30 @@
|
||||
= B e n v i n g u t s a l t u t o r d e l V I M - Versi<73> 1.5 =
|
||||
===============================================================================
|
||||
|
||||
El Vim <20>s un editor molt potent que t<> moltes ordres, masses com per
|
||||
explicar-les totes un tutor com aquest. Aquest tutor est<73> dissenyat
|
||||
per descriure les ordres b<>siques que us permetin fer servir el Vim com
|
||||
a editor de prop<6F>sit general.
|
||||
El Vim <20>s un editor potent i t<> moltes ordres, massa com per a
|
||||
explicar-les totes un tutor com aquest. Aquest tutor est<73> pensat per a
|
||||
ensenyar les ordres b<>siques que us permetin fer servir el Vim com a
|
||||
editor de prop<6F>sit general.
|
||||
|
||||
El temps aproximat de seguir el tutor complet <EFBFBD>s d'uns 25 o 30 minuts
|
||||
El temps aproximat de completar el tutor <20>s d'uns 25 o 30 minuts
|
||||
depenent de quant temps dediqueu a experimentar.
|
||||
|
||||
Feu una c<>pia d'aquest fitxer per practicar-hi (si heu comen<65>at amb el
|
||||
programa vimtutor aix<69> que esteu llegint ja <20>s una c<>pia).
|
||||
Feu una c<>pia d'aquest fitxer per a practicar-hi (si heu comen<65>at amb
|
||||
el programa vimtutor aix<69> que esteu llegint ja <20>s una c<>pia).
|
||||
|
||||
<20>s important recordar que aquest tutor est<73> pensat per ensenyar
|
||||
practicant. <20>s a dir, que haureu d'executar les ordres si les voleu
|
||||
<20>s important recordar que aquest tutor est<73> pensat per a ensenyar
|
||||
practicant, <20>s a dir que haureu d'executar les ordres si les voleu
|
||||
aprendre. Si nom<6F>s llegiu el text el m<>s probable <20>s que les oblideu.
|
||||
|
||||
Ara assegureu-vos que la tecla de bloqueig de maj<61>scules no est<73>
|
||||
activada i premeu la tecla j per moure el cursor avall, fins que
|
||||
la lli<EFBFBD><EFBFBD> 1.1 ocupi completament la pantalla.
|
||||
activada i premeu la tecla j per a moure el cursor avall, fins que la
|
||||
lli<6C><69> 1.1 ocupi completament la pantalla.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 1.1: MOURE EL CURSOR
|
||||
|
||||
|
||||
** Per moure el cursor premeu les tecles h,j,k,l tal com est<EFBFBD> indicat. **
|
||||
** Per a moure el cursor premeu les tecles h, j, k, l tal com s'indica. **
|
||||
^
|
||||
k Pista: La h <20>s a l'esquerra i mou el cursor cap a l'esquerra.
|
||||
< h l > La l <20>s a la dreta i mou el cursor cap a la dreta.
|
||||
@@ -33,15 +34,15 @@
|
||||
1. Moveu el cursor per la pantalla fins que us sentiu confortables.
|
||||
|
||||
2. Mantingueu premuda la tecla avall (j) una estona.
|
||||
---> Ara sabeu com moure-us fins a la pr<EFBFBD>xima lli<6C><69>.
|
||||
---> Ara ja sabeu com moure-us fins a la seg<EFBFBD>ent lli<6C><69>.
|
||||
|
||||
3. Usant la tecla avall, aneu a la lli<6C><69> 1.2.
|
||||
|
||||
Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per tornar
|
||||
al mode Normal. Llavors torneu a teclejar l'ordre que vol<6F>eu.
|
||||
Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per a
|
||||
tornar al mode Normal. Llavors torneu a teclejar l'ordre que vol<6F>eu.
|
||||
|
||||
Nota: Les tecles de moviment del cursor (fletxes) tamb<6D> funcionen. Per<65> usant
|
||||
hjkl anireu m<>s r<>pid, quan us hi h<EFBFBD>giu acostumant.
|
||||
Nota: Les tecles de moviment del cursor (fletxes) tamb<6D> funcionen. Per<65>
|
||||
usant hjkl anireu m<>s r<>pid un cop us hi hagueu acostumant.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 1.2: ENTRAR I SORTIR DEL VIM
|
||||
@@ -49,39 +50,39 @@ Nota: Les tecles de moviment del cursor (fletxes) tamb
|
||||
|
||||
!! NOTA: Abans de seguir els passos seg<65>ents llegiu *tota* la lli<6C><69>!!
|
||||
|
||||
1. Premeu <ESC> (per estar segurs que esteu en el mode Normal).
|
||||
1. Premeu <ESC> (per a estar segurs que esteu en el mode Normal).
|
||||
|
||||
2. Teclegeu: :q! <ENTRAR>.
|
||||
|
||||
---> Amb aix<69> sortireu de l'editor SENSE desar els canvis que h<EFBFBD>giu pogut
|
||||
---> Amb aix<69> sortireu de l'editor SENSE desar els canvis que hagueu pogut
|
||||
fer. Si voleu desar els canvis teclegeu:
|
||||
:wq <ENTRAR>
|
||||
|
||||
3. Quan vegeu l'introductor de la shell escriviu l'ordre amb la qual heu
|
||||
arribat a aquest tutor. Podria ser: vimtutor <ENTRAR>
|
||||
3. Quan vegeu l'introductor de l'int<6E>rpret escriviu l'ordre amb la
|
||||
qual heu arribat a aquest tutor. Podria ser: vimtutor <ENTRAR>
|
||||
O b<>: vim tutor <ENTRAR>
|
||||
|
||||
---> 'vim' <20>s l'editor vim, i 'tutor' <20>s el fitxer que voleu editar.
|
||||
|
||||
4. Si heu memoritzat les ordres, feu els passos anteriors, de l'1 al 3,
|
||||
per sortir i tornar a entrar a l'editor. Llavors moveu el cursor avall
|
||||
fins la lli<6C><69> 1.3.
|
||||
per a sortir i tornar a entrar a l'editor. Llavors moveu el cursor
|
||||
avall fins a la lli<6C><69> 1.3.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 1.3: EDITAR TEXT - ESBORRAR
|
||||
|
||||
|
||||
** En mode Normal premeu x per esborrar el car<61>cter de sota el cursor. **
|
||||
** En mode Normal premeu x per a esborrar el car<61>cter sota el cursor. **
|
||||
|
||||
1. Moveu el cursor fins la l<>nia que hi ha m<>s avall marcada amb --->.
|
||||
1. Moveu el cursor fins a la l<>nia que hi ha m<>s avall senyalada amb --->.
|
||||
|
||||
2. Poseu el cursor a sobre el car<61>cter que cal esborrar, per corregir els
|
||||
errors.
|
||||
2. Poseu el cursor a sobre el car<61>cter que cal esborrar per a corregir
|
||||
els errors.
|
||||
|
||||
3. Premeu la tecla x per esborrar el car<61>cter.
|
||||
3. Premeu la tecla x per a esborrar el car<61>cter.
|
||||
|
||||
4. Repetiu els passos 2 i 3 fins que la frase sigui correcta.
|
||||
|
||||
---> Unna vaaca vva salttar sobbree la llluna.
|
||||
---> Unna vaaca vva salttar perr sobbree la llluna.
|
||||
|
||||
5. Ara que la l<>nia <20>s correcta, aneu a la lli<6C><69> 1.4.
|
||||
|
||||
@@ -93,17 +94,17 @@ NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.
|
||||
Lli<6C><69> 1.4: EDITAR TEXT - INSERIR
|
||||
|
||||
|
||||
** En mode Normal premeu i per inserir text. **
|
||||
** En mode Normal premeu i per a inserir text. **
|
||||
|
||||
1. Moveu el cursor avall fins la primera l<>nia marcada amb --->.
|
||||
1. Moveu el cursor avall fins la primera l<>nia senyalada amb --->.
|
||||
|
||||
2. Per fer la primera l<>nia igual que la segona poseu el cursor sobre el
|
||||
primer car<61>cter POSTERIOR al text que s'ha d'inserir.
|
||||
2. Per a fer la primera l<>nia igual que la segona poseu el cursor sobre
|
||||
el primer car<61>cter POSTERIOR al text que s'ha d'inserir.
|
||||
|
||||
3. Premeu la tecla i i escriviu el text que falta.
|
||||
|
||||
4. Quan h<EFBFBD>giu acabat premeu <ESC> per tornar al mode Normal. Repetiu
|
||||
els passos 2, 3 i 4 per corregir la frase.
|
||||
4. Quan hageu acabat premeu <ESC> per tornar al mode Normal. Repetiu
|
||||
els passos 2, 3 i 4 fins a corregir la frase.
|
||||
|
||||
---> Falten carctrs en aquesta .
|
||||
---> Falten alguns car<61>cters en aquesta l<>nia.
|
||||
@@ -119,63 +120,63 @@ NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.
|
||||
1. El cursor es mou amb les fletxes o b<> amb les tecles hjkl.
|
||||
h (esquerra) j (avall) k (amunt) l (dreta)
|
||||
|
||||
2. Per entrar al Vim (des de la shell) escriviu: vim FITXER <ENTRAR>
|
||||
2. Per a entrar al Vim (des de l'int<6E>rpret) escriviu: vim FITXER <ENTRAR>
|
||||
|
||||
3. Per sortir teclegeu: <ESC> :q! <ENTRAR> per descartar els canvis.
|
||||
O B<> teclegeu: <ESC> :wq <ENTRAR> per desar els canvis.
|
||||
3. Per a sortir teclegeu: <ESC> :q! <ENTRAR> per a descartar els canvis.
|
||||
O B<> teclegeu: <ESC> :wq <ENTRAR> per a desar els canvis.
|
||||
|
||||
4. Per esborrar el car<61>cter de sota el cursor en el mode Normal premeu: x
|
||||
4. Per a esborrar el car<61>cter de sota el cursor en el mode Normal premeu: x
|
||||
|
||||
5. Per inserir text on hi ha el cursor, en mode Normal, premeu:
|
||||
5. Per a inserir text on hi ha el cursor, en mode Normal, premeu:
|
||||
i escriviu el text <ESC>
|
||||
|
||||
NOTA: La tecla <ESC> us portar<EFBFBD> al mode Normal o cancel<65>lar<EFBFBD> una ordre
|
||||
que estigui a mitges.
|
||||
NOTA: La tecla <ESC> us porta al mode Normal o cancel<65>la una ordre que
|
||||
estigui a mitges.
|
||||
|
||||
Ara continueu amb la lli<6C><69> 2.
|
||||
Ara continueu a la lli<6C><69> 2.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 2.1: ORDRES PER ESBORRAR
|
||||
|
||||
|
||||
** Teclegeu dw per esborrar fins al final d'una paraula. **
|
||||
** Teclegeu dw per a esborrar fins al final d'una paraula. **
|
||||
|
||||
1. Premeu <ESC> per estar segurs que esteu en mode normal.
|
||||
|
||||
2. Moveu el cursor avall fins la l<>nia marcada amb --->.
|
||||
2. Moveu el cursor avall fins a la l<>nia senyalada amb --->.
|
||||
|
||||
3. Moveu el cursor fins el principi de la paraula que s'ha d'esborrar.
|
||||
3. Moveu el cursor fins al principi de la paraula que s'ha d'esborrar.
|
||||
|
||||
4. Teclegeu dw per fer desapar<61>ixer la paraula.
|
||||
4. Teclegeu dw per a fer desapar<61>ixer la paraula.
|
||||
|
||||
NOTA: Les lletres dw apareixeran a la l<>nia de baix de la pantalla mentre
|
||||
les aneu escrivint. Si us equivoqueu premeu <ESC> i torneu a comen<65>ar.
|
||||
|
||||
---> Hi han algunes paraules divertit que no pertanyen paper a aquesta frase.
|
||||
---> Hi ha algunes paraules divertit que no pertanyen paper a aquesta frase.
|
||||
|
||||
5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu a
|
||||
la lli<6C><69> 2.2.
|
||||
5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu
|
||||
a la lli<6C><69> 2.2.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 2.2: M<>S ORDRES PER ESBORRAR
|
||||
|
||||
|
||||
** Escriviu d$ per esborrar fins al final de la l<>nia. **
|
||||
** Escriviu d$ per a esborrar fins al final de la l<>nia. **
|
||||
|
||||
1. Premeu <ESC> per estar segurs que esteu en el mode Normal.
|
||||
1. Premeu <ESC> per a estar segurs que esteu en el mode Normal.
|
||||
|
||||
2. Moveu el cursor avall fins a la l<>nia marcada amb --->.
|
||||
2. Moveu el cursor avall fins a la l<>nia senyalada amb --->.
|
||||
|
||||
3. Moveu el cursor fins el final de la l<>nia correcta
|
||||
3. Moveu el cursor fins al final de la l<>nia correcta
|
||||
(DESPR<50>S del primer . ).
|
||||
|
||||
4. Teclegeu d$ per esborrar fins al final de la l<>nia.
|
||||
4. Teclegeu d$ per a esborrar fins al final de la l<>nia.
|
||||
|
||||
---> Alg<6C> ha escrit el final d'aquesta l<>nia dos cops. l<>nia dos cops.
|
||||
|
||||
5. Aneu a la lli<6C><69> 2.3 per entendre qu<71> est<73> passant.
|
||||
5. Aneu a la lli<6C><69> 2.3 per a entendre qu<71> est<73> passant.
|
||||
|
||||
|
||||
|
||||
@@ -190,17 +191,17 @@ NOTA: Les lletres dw apareixeran a la l
|
||||
[nombre] d objecte O B<> d [nombre] objecte
|
||||
On:
|
||||
nombre - <20>s el nombre de cops que s'ha d'executar (opcional, omissi<73>=1).
|
||||
d - <20>s l'ordre per esborrar.
|
||||
d - <20>s l'ordre d'esborrar.
|
||||
objecte - <20>s la cosa amb la qual operar (llista a baix).
|
||||
|
||||
Una petita llista d'objectes:
|
||||
w - des del cursor fins al final de la paraula, incloent-hi l'espai.
|
||||
w - des del cursor fins al final de la paraula, incloent l'espai.
|
||||
e - des del cursor fins al final de la paraula, SENSE incloure l'espai.
|
||||
$ - des del cursor fins al final de la l<>nia.
|
||||
|
||||
NOTA: Per als aventurers: si teclegeu nom<6F>s l'objecte, en el mode Normal,
|
||||
sense cap ordre, el cursor es mour<75> tal com est<73> especificat a la
|
||||
llista d'objectes.
|
||||
sense cap ordre, el cursor es mour<75> tal com est<73> descrit a la llista
|
||||
d'objectes.
|
||||
|
||||
|
||||
|
||||
@@ -208,15 +209,16 @@ NOTA: Per als aventurers: si teclegeu nom
|
||||
Lli<6C><69> 2.4: UNA EXCEPCI<43> A 'ORDRE-OBJECTE'
|
||||
|
||||
|
||||
** Teclegeu dd esborrar tota la l<>nia. **
|
||||
** Teclegeu dd per a esborrar tota la l<>nia. **
|
||||
|
||||
Com que molt sovint s'han d'eliminar l<>nies senceres els dissenyadors del
|
||||
Vi van creure que seria m<>s f<EFBFBD>cil teclejar dd per esborrar tota la l<>nia.
|
||||
Com que molt sovint s'han d'eliminar l<>nies senceres, els programadors
|
||||
del Vi van creure que seria m<>s convenient teclejar dd per a esborrar
|
||||
tota la l<>nia.
|
||||
|
||||
1. Moveu el cursor a la segona l<>nia de la frase de baix.
|
||||
2. Teclegeu dd per esborrar la l<>nia.
|
||||
2. Teclegeu dd per a esborrar la l<>nia.
|
||||
3. Ara aneu a la quarta l<>nia.
|
||||
4. Teclegeu 2dd per esborrar dues l<>nies (recordeu nombre-ordre-objecte).
|
||||
4. Teclegeu 2dd per a esborrar dues l<>nies (recordeu nombre-ordre-objecte).
|
||||
|
||||
1) Les roses s<>n vermelles,
|
||||
2) El fang <20>s divertit,
|
||||
@@ -226,21 +228,20 @@ NOTA: Per als aventurers: si teclegeu nom
|
||||
6) El sucre <20>s dol<6F>,
|
||||
7) Igual que tu.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 2.5: L'ORDRE DESFER
|
||||
|
||||
|
||||
** Premeu u per desfer els <EFBFBD>ltims canvis, U per arreglar tota la l<>nia. **
|
||||
** Premeu u per a desfer els canvis, U per a restaurar tota la l<>nia. **
|
||||
|
||||
1. Moveu el cursor sobre el primer error de l<>nia de baix marcada amb --->
|
||||
2. Premeu x per esborrar el car<61>cter no desitjat.
|
||||
3. Ara premeu u per desfer l'<27>ltima ordre executada.
|
||||
1. Moveu el cursor sobre el primer error de l<>nia de baix senyalada amb --->
|
||||
2. Premeu x per a esborrar el car<61>cter no desitjat.
|
||||
3. Ara premeu u per a desfer l'<27>ltima ordre executada.
|
||||
4. Aquest cop corregiu tots els errors de la l<>nia amb l'ordre x.
|
||||
5. Ara premeu U per restablir la l<>nia al seu estat original.
|
||||
6. Ara premeu u uns quants cops per desfer U i les ordres anteriors.
|
||||
5. Ara premeu U per a restablir la l<>nia al seu estat original.
|
||||
6. Ara premeu u uns quants cops per a desfer U i les ordres anteriors.
|
||||
7. Ara premeu CONTROL-R (les dues tecles al mateix temps) uns quants cops
|
||||
per refer les ordres.
|
||||
per a refer les ordres.
|
||||
|
||||
---> Correegiu els errors d'aqquesta l<>nia i dessfeu-los aamb desfer.
|
||||
|
||||
@@ -249,15 +250,16 @@ NOTA: Per als aventurers: si teclegeu nom
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LLI<4C><49> 2 SUMARI
|
||||
|
||||
|
||||
1. Per esborrar del cursor al final de la paraula teclegeu: dw
|
||||
1. Per a esborrar del cursor al final de la paraula teclegeu: dw
|
||||
|
||||
2. Per esborrar del cursor al final de la l<>nia teclegeu: d$
|
||||
2. Per a esborrar del cursor al final de la l<>nia teclegeu: d$
|
||||
|
||||
3. Per esborrar una l<>nia sencera teclegeu: dd
|
||||
3. Per a esborrar una l<>nia sencera teclegeu: dd
|
||||
|
||||
4. El format de qualsevol ordre del mode Normal <20>s:
|
||||
|
||||
@@ -268,67 +270,67 @@ NOTA: Per als aventurers: si teclegeu nom
|
||||
objecte - <20>s amb qu<71> s'ha d'actuar, com ara w (paraula),
|
||||
$ (fins a final de l<>nia), etc.
|
||||
|
||||
5. Per desfer les accions anteriors premeu: u
|
||||
Per desfer tots el canvis en una l<>nia premeu: U
|
||||
Per desfer l'ordre desfer premeu: CTRL-R
|
||||
5. Per a desfer les accions anteriors premeu: u
|
||||
Per a desfer tots el canvis en una l<>nia premeu: U
|
||||
Per a desfer l'ordre desfer premeu: CTRL-R
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 3.1: L'ORDRE 'POSAR'
|
||||
|
||||
|
||||
** Premeu p per posar l'<27>ltima cosa que heu esborrat despr<70>s del cursor. **
|
||||
** Premeu p per a inserir l'<27>ltima cosa que heu esborrat
|
||||
despr<70>s del cursor. **
|
||||
|
||||
|
||||
1. Moveu el cursor a la primera l<>nia de llista de baix.
|
||||
|
||||
2. Teclegeu dd per esborrar la l<>nia i desar-la a la mem<65>ria.
|
||||
2. Teclegeu dd per a esborrar la l<>nia i desar-la a la mem<65>ria.
|
||||
|
||||
3. Moveu el cursor a la l<>nia ANTERIOR on hauria d'anar.
|
||||
3. Moveu el cursor a la l<>nia ANTERIOR d'on hauria d'anar.
|
||||
|
||||
4. En mode Normal, premeu p per inserir la l<>nia.
|
||||
4. En mode Normal, premeu p per a inserir la l<>nia.
|
||||
|
||||
5. Repetiu els passos 2, 3 i 4 per ordenar les l<>nies correctament.
|
||||
5. Repetiu els passos 2, 3 i 4 per a ordenar les l<>nies correctament.
|
||||
|
||||
d) Pots aprendre tu?
|
||||
b) Les violetes s<>n blaves,
|
||||
c) L'intel<EFBFBD>lig<EFBFBD>ncia s'apr<70>n,
|
||||
c) La intel<EFBFBD>lig<EFBFBD>ncia s'apr<70>n,
|
||||
a) Les roses s<>n vermelles,
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 3.2: L'ORDRE SUBSTITUIR
|
||||
|
||||
|
||||
** Premeu r i un car<61>cter per substituir el car<61>cter de sota el cursor. **
|
||||
** Premeu r i un car<61>cter per a substituir el car<61>cter
|
||||
de sota el cursor. **
|
||||
|
||||
1. Moveu el cursor a la primera l<>nia de sota marcada amb --->.
|
||||
1. Moveu el cursor a la primera l<>nia de sota senyalada amb --->.
|
||||
|
||||
2. Moveu el cursor a sobre del primer car<61>cter equivocat.
|
||||
|
||||
3. Premeu r i tot seguit el car<61>cter correcte per corregir l'error.
|
||||
3. Premeu r i tot seguit el car<61>cter correcte per a corregir l'error.
|
||||
|
||||
4. Repetiu els passos 2 i 3 fins que la l<>nia sigui correcta.
|
||||
|
||||
---> Quen van escroure aquerta l<>nia, algh va apretar tikles equivocades!
|
||||
---> Quan van escriure aquesta l<>nia, alg<6C> va apretar tecles equivocades!
|
||||
---> Quen van escroure aquerta l<>nia, algh va pr<EFBFBD>mer tikles equivocades!
|
||||
---> Quan van escriure aquesta l<>nia, alg<6C> va pr<EFBFBD>mer tecles equivocades!
|
||||
|
||||
5. Ara continueu a la lli<6C><69> 3.2.
|
||||
|
||||
NOTA: Recordeu que heu de practicar, no memoritzar.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 3.3: L'ORDRE CANVIAR
|
||||
|
||||
|
||||
** Per canviar una part o tota la paraula, escriviu cw . **
|
||||
** Per a canviar una part o tota la paraula, escriviu cw . **
|
||||
|
||||
1. Moveu el cursor a la primera l<>nia de sota marcada amb --->.
|
||||
1. Moveu el cursor a la primera l<>nia de sota senyalada amb --->.
|
||||
|
||||
2. Poseu el cursor sobre la u de 'lughc'.
|
||||
|
||||
3. Teclegeu cw i corregiu la paraula (en aquest cas escriviu '<27>nia'.)
|
||||
3. Teclegeu cw i corregiu la paraula (en aquest cas, escrivint '<27>nia'.)
|
||||
|
||||
4. Premeu <ESC> i aneu al seg<65>ent error.
|
||||
|
||||
@@ -351,9 +353,9 @@ Noteu que cw no nom
|
||||
|
||||
[nombre] c objecte O B<> c [nombre] objecte
|
||||
|
||||
2. Els objectes s<>n els mateixos, com w (paraula), $ (final de l<>nia), etc.
|
||||
2. Els objectes s<>n els mateixos, w (paraula), $ (final de l<>nia), etc.
|
||||
|
||||
3. Moveu el cursor fins la primera l<>nia marcada amb --->.
|
||||
3. Moveu el cursor fins la primera l<>nia senyalada amb --->.
|
||||
|
||||
4. Avanceu fins al primer error.
|
||||
|
||||
@@ -368,41 +370,41 @@ Noteu que cw no nom
|
||||
LLI<4C><49> 3 SUMARI
|
||||
|
||||
|
||||
1. Per tornar a posar el text que s'ha esborrat, premeu p . Aix<69> posa el
|
||||
text esborrat DESPR<50>S del cursor (si heu esborrat una l<>nia anir<69> a
|
||||
parar a la l<>nia SEG<45>ENT d'on hi ha el cursor).
|
||||
1. Per a tornar a posar el text que heu esborrat, premeu p . Aix<69> posa
|
||||
el text esborrat DESPR<50>S del cursor (si heu esborrat una l<>nia anir<69>
|
||||
a parar a la l<>nia SEG<45>ENT d'on hi ha el cursor).
|
||||
|
||||
2. Per substituir el car<61>cter de sota el cursor, premeu r i tot seguit
|
||||
el car<61>cter que ha de reempla<6C>ar l'original.
|
||||
2. Per a substituir el car<61>cter de sota el cursor, premeu r i tot
|
||||
seguit el car<61>cter que ha de reempla<6C>ar l'original.
|
||||
|
||||
3. L'ordre canviar permet canviar l'objecte especificat des del cursor
|
||||
3. L'ordre canviar permet canviar l'objecte especificat, des del cursor
|
||||
fins el final de l'objecte. Per exemple, cw canvia el que hi ha des
|
||||
del cursor fins al final de la paraula, i c$ fins al final de l<>nia.
|
||||
del cursor fins al final de la paraula, i c$ fins al final de
|
||||
l<>nia.
|
||||
|
||||
4. El format de l'ordre canviar <20>s:
|
||||
|
||||
[nombre] c objecte O B<> c [nombre] objecte
|
||||
|
||||
Ara aneu a la pr<EFBFBD>xima lli<6C><69>.
|
||||
|
||||
Ara aneu a la seg<EFBFBD>ent lli<6C><69>.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 4.1: SITUACI<43> I ESTAT DEL FITXER
|
||||
|
||||
|
||||
** Premeu CTRL-g per veure la situaci<63> dins del fitxer i el seu estat.
|
||||
Premeu SHIFT-G per anar a una l<>nia determinada. **
|
||||
** Premeu CTRL-g per a veure la situaci<63> dins del fitxer i el seu estat.
|
||||
Premeu SHIFT-g per a anar a una l<>nia determinada. **
|
||||
|
||||
Nota: No proveu res fins que h<EFBFBD>giu llegit TOTA la lli<6C><69>!!
|
||||
Nota: No proveu res fins que hagueu llegit TOTA la lli<6C><69>!!
|
||||
|
||||
1. Mantingueu premuda la tecla Control i premeu g . A la part de baix de
|
||||
la p<>gina apareixer<65> un l<>nia amb el nom del fitxer i la l<>nia en la
|
||||
qual us trobeu. Recordeu el n<>mero de la l<>nia pel Pas 3.
|
||||
1. Mantingueu premuda la tecla Control i premeu g . A la part de baix
|
||||
de la p<>gina apareixer<65> un l<>nia amb el nom del fitxer i la l<>nia en
|
||||
la qual us trobeu. Recordeu el n<>mero de la l<>nia pel Pas 3.
|
||||
|
||||
2. Premeu Shift-G per anar al final de tot del fitxer.
|
||||
2. Premeu Shift-g per a anar al final de tot del fitxer.
|
||||
|
||||
3. Teclegeu el n<>mero de la l<>nia on <20>reu i despr<70>s premeu Shift-G. Aix<69>
|
||||
3. Teclegeu el n<>mero de la l<>nia on <20>reu i despr<70>s premeu Shift-g. Aix<69>
|
||||
us tornar<61> a la l<>nia on <20>reu quan heu premut per primer cop Ctrl-g.
|
||||
(Quan teclegeu el n<>mero NO es veur<75> a la pantalla.)
|
||||
|
||||
@@ -422,15 +424,15 @@ Ara aneu a la pr
|
||||
2. Ara escriviu 'errroor' <ENTRAR>. Aquesta <20>s la paraula que voleu
|
||||
cercar.
|
||||
|
||||
3. Per tornar a cercar la mateixa frase, premeu n .
|
||||
Per cercar la mateixa frase en direcci<63> contraria, premeu Shift-N .
|
||||
3. Per a tornar a cercar la mateixa frase, premeu n . Per a cercar la
|
||||
mateixa frase en direcci<63> contraria, premeu Shift-n .
|
||||
|
||||
4. Si voleu cercar una frase en direcci<63> ascendent, useu l'ordre ? en
|
||||
lloc de /.
|
||||
|
||||
---> "errroor" no <20>s com s'escriu error; errroor <20>s un error.
|
||||
|
||||
Note: Quan la cerca arribi al final del fitxer continuar<61> a l'inici.
|
||||
Nota: Quan la cerca arribi al final del fitxer continuar<61> a l'inici.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -439,17 +441,17 @@ Note: Quan la cerca arribi al final del fitxer continuar
|
||||
|
||||
** Premeu % per cercar el ), ], o } corresponent. **
|
||||
|
||||
1. Poseu el cursor en qualsevol (, [, o { de la l<>nia marcada amb --->.
|
||||
1. Poseu el cursor a qualsevol (, [, o { de la l<>nia senyalada amb --->.
|
||||
|
||||
2. Ara premeu el car<61>cter % .
|
||||
|
||||
3. El cursor hauria d'anar a la clau o par<61>ntesis corresponent.
|
||||
|
||||
4. Premeu % per tornar el cursor al primer par<61>ntesi.
|
||||
4. Premeu % per a tornar el cursor al primer par<61>ntesi.
|
||||
|
||||
---> Aix<69> ( <20>s una l<>nia amb car<61>cters (, [ ] i { } de prova. ))
|
||||
|
||||
Nota: Aix<69> <20>s molt <20>til per trobar errors en programes inform<72>tics!
|
||||
Nota: Aix<69> <20>s molt <20>til per a trobar errors en programes inform<72>tics!
|
||||
|
||||
|
||||
|
||||
@@ -457,24 +459,24 @@ Nota: Aix
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 4.4: UNA MANERA DE CANVIAR ERRORS
|
||||
Lli<6C><69> 4.4: UNA MANERA DE CORREGIR ERRORS
|
||||
|
||||
|
||||
** Escriviu :s/vell/nou/g per substituir 'vell' per 'nou'. **
|
||||
** Escriviu :s/vell/nou/g per a substituir 'vell' per 'nou'. **
|
||||
|
||||
1. Moveu el cursor a la l<>nia de sota marcada amb --->.
|
||||
1. Moveu el cursor a la l<>nia de sota senyalada amb --->.
|
||||
|
||||
2. Escriviu :s/laa/la <ENTRAR>. Aquesta ordre nom<6F>s canvia la primera
|
||||
coincid<69>ncia que es trobi a la l<>nia.
|
||||
|
||||
3. Ara escriviu :s/laa/la/g per fer una substituci<63> global. Aix<69>
|
||||
3. Ara escriviu :s/laa/la/g per a fer una substituci<63> global. Aix<69>
|
||||
canviar<61> totes les coincid<69>ncies que es trobin a la l<>nia.
|
||||
|
||||
---> laa millor <20>poca per veure laa flor <20>s laa primavera.
|
||||
---> laa millor <20>poca per a veure laa flor <20>s laa primavera.
|
||||
|
||||
4. Per canviar totes les coincid<69>ncies d'una cadena entre dues l<>nies,
|
||||
4. Per a canviar totes les coincid<69>ncies d'una cadena entre dues l<>nies,
|
||||
escriviu :#,#s/vell/nou/g on #,# s<>n els nombres de les l<>nies.
|
||||
Escriviu :%s/vell/nou/g per substituir la cadena a tot el fitxer.
|
||||
Escriviu :%s/vell/nou/g per a substituir la cadena a tot el fitxer.
|
||||
|
||||
|
||||
|
||||
@@ -484,41 +486,41 @@ Nota: Aix
|
||||
|
||||
|
||||
1. Ctrl-g mostra la posici<63> dins del fitxer i l'estat del mateix.
|
||||
Shift-G us porta al final del fitxer. Un n<>mero seguit de Shift-G
|
||||
us porta a la l<>nia corresponent.
|
||||
Shift-g us porta al final del fitxer. Un n<>mero seguit de Shift-g us
|
||||
porta a la l<>nia corresponent.
|
||||
|
||||
2. L'ordre / seguida d'una frase cerca la frase ENDAVANT.
|
||||
L'ordre ? seguida d'una frase cerca la frase ENDARRERE.
|
||||
Despr<70>s d'una cerca premeu n per trobar la pr<70>xima coincid<69>ncia en
|
||||
la mateixa direcci<63>, o Shift-N per cercar en la direcci<63> contr<74>ria.
|
||||
2. L'ordre / seguida d'una frase cerca la frase cap ENDAVANT.
|
||||
L'ordre ? seguida d'una frase cerca la frase cap ENDARRERE.
|
||||
Despr<70>s d'una cerca premeu n per a trobar la pr<70>xima coincid<69>ncia en
|
||||
la mateixa direcci<63>, o Shift-n per a cercar en la direcci<63> contr<74>ria.
|
||||
|
||||
3. L'ordre % quan el cursor <EFBFBD>s a sobre un (,),[,],{, o } troba la
|
||||
3. L'ordre % quan el cursor es troba en un (, ), [, ], {, o } troba la
|
||||
parella corresponent.
|
||||
|
||||
4. Per substituir el primer 'vell' per 'nou' en una l<>nia :s/vell/nou
|
||||
Per substituir tots els 'vell' per 'nou' en una l<>nia :s/vell/nou/g
|
||||
Per substituir frases entre les l<>nies # i # :#,#s/vell/nou/g
|
||||
Per substituir totes les coincid<69>ncies en el fitxer :%s/vell/nou/g
|
||||
Per demanar confirmaci<63> cada cop afegiu 'c' :%s/vell/nou/gc
|
||||
4. Per a substituir el primer 'vell' per 'nou' en una l<>nia :s/vell/nou
|
||||
Per a substituir tots els 'vell' per 'nou' en una l<>nia :s/vell/nou/g
|
||||
Per a substituir frases entre les l<>nies # i # :#,#s/vell/nou/g
|
||||
Per a substituir totes les coincid<69>ncies en el fitxer :%s/vell/nou/g
|
||||
Per a demanar confirmaci<63> cada cop afegiu 'c' :%s/vell/nou/gc
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 5.1: COM EXECUTAR UNA ORDRE EXTERNA
|
||||
|
||||
|
||||
** Teclegeu :! seguit d'una ordre externa per executar-la. **
|
||||
** Teclegeu :! seguit d'una ordre externa per a executar-la. **
|
||||
|
||||
1. Premeu el familiar : per col<6F>locar el cursor a la part de baix de
|
||||
1. Premeu el familiar : per a col<EFBFBD>locar el cursor a la part de baix de
|
||||
la pantalla. Aix<69> us permet entrar una ordre.
|
||||
|
||||
2. Ara teclegeu el car<61>cter ! (signe d'exclamaci<63>). Aix<69> us permet
|
||||
executar qualsevol ordre de la shell.
|
||||
executar qualsevol ordre de l'int<6E>rpret del sistema.
|
||||
|
||||
3. Com a exemple escriviu ls i tot seguit premeu <ENTRAR>. Aix<69> us
|
||||
3. Per exemple, escriviu ls i tot seguit premeu <ENTRAR>. Aix<69> us
|
||||
mostrar<61> el contingut del directori, tal com si estigu<67>ssiu a la
|
||||
l<>nia d'ordres. Feu servir :!dir si ls no funciona.
|
||||
l<>nia d'ordres. Proveu :!dir si ls no funciona.
|
||||
|
||||
Nota: D'aquesta manera es pot executar qualsevol ordre externa.
|
||||
Nota: D'aquesta manera <EFBFBD>s possible executar qualsevol ordre externa.
|
||||
|
||||
Nota: Totes les ordres : s'han d'acabar amb la tecla <ENTRAR>
|
||||
|
||||
@@ -529,17 +531,17 @@ Nota: Totes les ordres : s'han d'acabar amb la tecla <ENTRAR>
|
||||
Lli<6C><69> 5.2: M<>S SOBRE L'ESCRIPTURA DE FITXERS
|
||||
|
||||
|
||||
** Per desar els canvis fets, escriviu :w FITXER. ***
|
||||
** Per a desar els canvis fets, escriviu :w FITXER. **
|
||||
|
||||
1. Escriviu :!dir o b<> :!ls per obtenir un llistat del directori.
|
||||
1. Escriviu :!dir o b<> :!ls per a obtenir un llistat del directori.
|
||||
Ja sabeu que heu de pr<70>mer <ENTRAR> despr<70>s d'aix<69>.
|
||||
|
||||
2. Trieu un nom de fitxer que no existeixi, com ara PROVA.
|
||||
|
||||
3. Ara feu: :w PROVA (on PROVA <20>s el nom que heu triat.)
|
||||
|
||||
4. Aix<69> desa tot el fitxer amb el nom de PROVA. Per comprovar-ho
|
||||
escriviu :!dir per veure el contingut del directori.
|
||||
4. Aix<69> desa el text en un fitxer amb el nom de PROVA. Per a comprovar-ho
|
||||
escriviu :!dir i mireu el contingut del directori.
|
||||
|
||||
Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
|
||||
fitxer ser<65> una c<>pia exacta del tutor que heu desat.
|
||||
@@ -549,13 +551,13 @@ Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lli<6C><69> 5.3: UNA ORDRE SELECTIVA PER DESAR
|
||||
Lli<6C><69> 5.3: UNA ORDRE SELECTIVA PER A DESAR
|
||||
|
||||
|
||||
** Per desar una part del fitxer, escriviu :#,# w FITXER **
|
||||
** Per a desar una part del fitxer, escriviu :#,# w FITXER **
|
||||
|
||||
1. Un altre cop, feu :!dir o :!ls per obtenir un llistat del directori
|
||||
i trieu un nom de fitxer adequat com ara PROVA.
|
||||
1. Un altre cop, feu :!dir o :!ls per a obtenir un llistat del
|
||||
directori i trieu un nom de fitxer adequat com ara PROVA.
|
||||
|
||||
2. Moveu el cursor a dalt de tot de la p<>gina i premeu Ctrl-g per
|
||||
saber el n<>mero de la l<>nia. RECORDEU AQUEST N<>MERO!
|
||||
@@ -563,11 +565,11 @@ Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
|
||||
3. Ara aneu a baix de tot de la p<>gina i torneu a pr<70>mer Ctrl-g.
|
||||
RECORDEU AQUEST N<>MERO TAMB<4D>!
|
||||
|
||||
4. Per desar NOM<4F>S una secci<63> en un fitxer, escriviu :#,# w PROVA on
|
||||
4. Per a desar NOM<4F>S una secci<63> en un fitxer, escriviu :#,# w PROVA on
|
||||
#,# s<>n els dos n<>meros que heu recordat (dalt, baix) i PROVA el nom
|
||||
del fitxer.
|
||||
|
||||
5. Mireu que el fitxer nou hi sigui amb :!dir per<65> no l'esborreu.
|
||||
5. Comproveu que el fitxer nou hi sigui amb :!dir per<65> no l'esborreu.
|
||||
|
||||
|
||||
|
||||
@@ -575,22 +577,22 @@ Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
|
||||
Lli<6C><69> 5.4: OBTENIR I AJUNTAR FITXERS
|
||||
|
||||
|
||||
** Per inserir el contingut d'un fitxer, feu :r FITXER **
|
||||
** Per a inserir el contingut d'un fitxer, feu :r FITXER **
|
||||
|
||||
1. Assegureu-vos, amb l'ordre :!dir , que el fitxer PROVA encara hi <20>s.
|
||||
|
||||
2. Poseu el cursor a dalt de tot d'aquesta p<>gina.
|
||||
2. Situeu el cursor a dalt de tot d'aquesta p<>gina.
|
||||
|
||||
NOTA: Despr<70>s d'executar el Pas 3 veureu la lli<6C><69> 5.3. Aleshores moveu-vos
|
||||
cap avall fins a aquesta lli<6C><69> un altre cop.
|
||||
NOTA: Despr<70>s d'executar el Pas 3 veureu la lli<6C><69> 5.3. Tireu cap avall
|
||||
fins a aquesta lli<6C><69> un altre cop.
|
||||
|
||||
3. Ara obtingueu el fitxer PROVA amb l'ordre :r PROVA on PROVA <20>s el
|
||||
nom del fitxer.
|
||||
|
||||
NOTA: El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.
|
||||
NOTA: El fitxer que obtingueu s'insereix en el lloc on hi hagi el cursor.
|
||||
|
||||
4. Per comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
|
||||
ara hi han dues c<>pies de la lli<6C><69> 5.3: l'original i la del fitxer.
|
||||
4. Per a comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
|
||||
ara hi ha dues c<>pies de la lli<6C><69> 5.3, l'original i la del fitxer.
|
||||
|
||||
|
||||
|
||||
@@ -600,7 +602,7 @@ NOTA: El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.
|
||||
|
||||
1. :!ordre executa una ordre externa.
|
||||
|
||||
Alguns exemples <20>tils s<>n:
|
||||
Alguns exemples <20>tils:
|
||||
(MS-DOS) (Unix)
|
||||
:!dir :!ls - mostra un llistat del directori
|
||||
:!del FITXER :!rm FITXER - esborra el fitxer FITXER
|
||||
@@ -621,21 +623,21 @@ NOTA: El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.
|
||||
Lli<6C><69> 6.1: L'ORDRE OBRIR
|
||||
|
||||
|
||||
** Premeu o per obrir una l<>nia sota el cursor i entrar en mode inserci<63>. **
|
||||
** Premeu o per a obrir una l<>nia i entrar en mode inserci<63>. **
|
||||
|
||||
1. Moveu el cursor a la l<>nia de sota marcada amb --->.
|
||||
1. Moveu el cursor a la l<>nia de sota senyalada amb --->.
|
||||
|
||||
2. Premeu o (min<69>scula) per obrir una l<>nia SOTA el cursor i situar-vos
|
||||
en mode d'inserci<63>.
|
||||
2. Premeu o (min<69>scula) per a obrir una l<>nia a BAIX del cursor i
|
||||
situar-vos en mode d'inserci<63>.
|
||||
|
||||
3. Ara copieu la l<>nia marcada amb ---> i premeu <ESC> per tornar al mode
|
||||
3. Copieu la l<>nia senyalada amb ---> i premeu <ESC> per a tornar al mode
|
||||
normal.
|
||||
|
||||
---> Despr<70>s de pr<70>mer o el cursor es situa a la l<>nia nova en mode inserci<63>.
|
||||
---> Despr<70>s de pr<70>mer o el cursor se situa a la l<>nia nova en mode inserci<63>.
|
||||
|
||||
4. Per obrir una l<>nia SOBRE el cursor, premeu la O maj<61>scula, en lloc
|
||||
4. Per a obrir una l<>nia a SOBRE del cursor, premeu la O maj<61>scula, en lloc
|
||||
de la min<69>scula. Proveu-ho amb la l<>nia de sota.
|
||||
Obriu una l<>nia sobre aquesta amb Shift-O amb el cursor en aquesta l<>nia.
|
||||
Obriu una l<>nia sobre aquesta prement Shift-o amb el cursor en aquesta l<>nia.
|
||||
|
||||
|
||||
|
||||
@@ -644,13 +646,13 @@ Obriu una l
|
||||
Lli<6C><69> 6.2: L'ORDRE AFEGIR
|
||||
|
||||
|
||||
** Premeu a per afegir text DESPR<50>S del cursor. **
|
||||
** Premeu a per a afegir text DESPR<50>S del cursor. **
|
||||
|
||||
1. Moveu el cursor al final de la primera l<>nia de sota marcada
|
||||
1. Moveu el cursor al final de la primera l<>nia de sota senyalada
|
||||
amb ---> prement $ en el mode Normal.
|
||||
|
||||
2. Premeu la lletra a (min<69>scula) per afegir text DESPR<50>S del car<61>cter
|
||||
sota el cursor. (La A maj<61>scula afegeix text al final de l<>nia.)
|
||||
2. Premeu la lletra a (min<69>scula) per a afegir text DESPR<50>S del car<61>cter
|
||||
sota el cursor. (La A maj<61>scula afegeix text al final de la l<EFBFBD>nia.)
|
||||
|
||||
Nota: Aix<69> s'evita haver de pr<70>mer i , l'<27>ltim car<61>cter, el text a inserir,
|
||||
la tecla <ESC>, cursor a la dreta, i finalment x , nom<6F>s per afegir
|
||||
@@ -667,20 +669,20 @@ Nota: Aix
|
||||
Lli<6C><69> 6.3: UNA ALTRA MANERA DE SUBSTITUIR
|
||||
|
||||
|
||||
** Teclegeu una R maj<61>scula per substituir m<>s d'un car<61>cter. **
|
||||
** Teclegeu una R maj<61>scula per a substituir m<>s d'un car<61>cter. **
|
||||
|
||||
1. Moveu el cursor a la l<>nia de sota marcada amb --->.
|
||||
1. Moveu el cursor a la l<>nia de sota senyalada amb --->.
|
||||
|
||||
2. Poseu el cursor al principi de la primera paraula que es diferent
|
||||
respecte a la segona l<>nia marcada amb ---> (la paraula "l'<27>ltima").
|
||||
2. Poseu el cursor al principi de la primera paraula que <EFBFBD>s diferent
|
||||
respecte a la segona l<>nia senyalada amb ---> (la paraula "l'<27>ltima").
|
||||
|
||||
3. Ara premeu R i substitu<74>u el que queda de text a la primera l<>nia
|
||||
escrivint sobre el text vell, per fer-la igual que la segona.
|
||||
escrivint sobre el text vell, per a fer-la igual que la segona.
|
||||
|
||||
---> Per fer aquesta l<>nia igual que l'<27>ltima useu les tecles.
|
||||
---> Per fer aquesta l<>nia igual que la segona, premeu R i el text nou.
|
||||
---> Per a fer aquesta l<>nia igual que l'<27>ltima useu les tecles.
|
||||
---> Per a fer aquesta l<>nia igual que la segona, premeu R i el text nou.
|
||||
|
||||
4. Tingueu en compte que en pr<70>mer <ESC> per sortir, el text que no
|
||||
4. Tingueu en compte que en pr<70>mer <ESC> per a sortir, el text que no
|
||||
s'hagi alterat es mant<6E>.
|
||||
|
||||
|
||||
@@ -695,7 +697,7 @@ Nota: Aix
|
||||
1. Cerqueu la paraula 'ignorar' amb: /ignorar
|
||||
Repetiu-ho uns quants cops amb la tecla n.
|
||||
|
||||
2. Establiu l'opci<63> 'ic' (Ignorar Capitals) escrivint:
|
||||
2. Establiu l'opci<63> 'ic' (ignore case) escrivint:
|
||||
:set ic
|
||||
|
||||
3. Ara cerqueu 'ignorar' un altre cop amb la tecla n.
|
||||
@@ -707,22 +709,22 @@ Nota: Aix
|
||||
5. Ara torneu a executar una ordre de cerca, i mireu qu<71> passa:
|
||||
/ignorar
|
||||
|
||||
6. Per treure el ressalt dels resultats, feu:
|
||||
6. Per a treure el ressaltat dels resultats, feu:
|
||||
:nohlsearch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LLI<4C><49> 6 SUMARI
|
||||
|
||||
|
||||
1. L'ordre o obre una l<>nia SOTA la del cursor i mou el cursor a la nova
|
||||
1. L'ordre o obre una l<>nia a SOTA la del cursor i mou el cursor a la nova
|
||||
l<>nia, en mode Inserci<63>.
|
||||
La O maj<61>scula obre la l<>nia a SOBRE la que hi ha el cursor.
|
||||
|
||||
2. Premeu una a per afegir text DESPR<50>S del car<61>cter sota el cursor.
|
||||
2. Premeu una a per a afegir text DESPR<50>S del car<61>cter a sota del cursor.
|
||||
La A maj<61>scula afegeix autom<6F>ticament el text a final de l<>nia.
|
||||
|
||||
3. L'ordre R maj<61>scula us posa en mode substituci<63> fins que premeu <ESC>.
|
||||
|
||||
4. Escriviu ":set xxx" per establir l'opci<63> "xxx"
|
||||
4. Escriviu ":set xxx" per a establir l'opci<63> "xxx"
|
||||
|
||||
|
||||
|
||||
@@ -738,16 +740,16 @@ Nota: Aix
|
||||
|
||||
** Utilitzeu el sistema intern d'ajuda **
|
||||
|
||||
El Vim t<> un extens sistema d'ajuda. Per llegir una introducci<63> proveu una
|
||||
El Vim t<> un extens sistema d'ajuda. Per a llegir una introducci<63> proveu una
|
||||
d'aquestes tres coses:
|
||||
- premeu la tecla <AJUDA> (si en teniu alguna)
|
||||
- premeu la tecla <F1> (si en teniu alguna)
|
||||
- premeu la tecla <AJUDA> (si la teniu)
|
||||
- premeu la tecla <F1> (si la teniu)
|
||||
- escriviu :help <ENTRAR>
|
||||
|
||||
Teclegeu :q <ENTRAR> per tancar la finestra d'ajuda.
|
||||
Teclegeu :q <ENTRAR> per a tancar la finestra d'ajuda.
|
||||
|
||||
Podeu trobar ajuda sobre pr<70>cticament qualsevol tema donant un argument
|
||||
a l'ordre ":help". Proveu aix<EFBFBD> (no oblideu pr<70>mer <ENTRAR>):
|
||||
Podeu trobar ajuda sobre pr<70>cticament qualsevol tema passant un argument
|
||||
a l'ordre ":help". Proveu el seg<65>ent (no oblideu pr<70>mer <ENTRAR>):
|
||||
|
||||
:help w
|
||||
:help c_<T
|
||||
@@ -758,16 +760,17 @@ Nota: Aix
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LLI<4C><49> 8: CREAR UN SCRIPT D'INICI
|
||||
|
||||
** Activar funcions autom<6F>ticament **
|
||||
** Activeu funcions autom<6F>ticament **
|
||||
|
||||
El Vim t<> moltes m<>s funcions que el Vi, per<65> moltes estan desactivades per
|
||||
omissi<EFBFBD>. Per comen<65>ar a utilitzar m<>s funcions heu de crear un fitxer "vimrc".
|
||||
El Vim t<> moltes m<>s funcions que el Vi, per<65> moltes estan desactivades
|
||||
per defecte. Per a comen<EFBFBD>ar a utilitzar m<>s funcions heu de crear un
|
||||
fitxer "vimrc".
|
||||
|
||||
1. Comenceu a editar el fitxer "vimrc", depenent del sistema
|
||||
:edit ~/.vimrc per Unix
|
||||
:edit $VIM/_vimrc per MS-Windows
|
||||
|
||||
2. Ara llegiu el fitxer "vimrc" d'exemple:
|
||||
2. Llegiu el fitxer "vimrc" d'exemple:
|
||||
|
||||
:read $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
@@ -775,32 +778,31 @@ Nota: Aix
|
||||
|
||||
:write
|
||||
|
||||
El pr<70>xim cop que executeu el Vim usar<61> ressalt de sintaxi.
|
||||
Podeu afegir els ajustos que vulgueu en aquest fitxer "vimrc".
|
||||
|
||||
El pr<70>xim cop que executeu el Vim usar<61> ressaltat de sintaxi. Podeu
|
||||
afegir els ajustos que vulgueu en aquest fitxer "vimrc".
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Aqu<71> conclou el Tutor del Vim. Ha sigut un intent de fer-vos una breu
|
||||
introducci<63> a l'editor Vim, suficient com per qu<EFBFBD> el pugueu comen<65>ar a fer
|
||||
servir. Est<73> lluny de ser complet perqu<71> el Vim t<> moltes m<>s ordres.
|
||||
Llegiu el manual de l'usuari: ":help user-manual".
|
||||
Aqu<71> conclou el Tutor del Vim. <EFBFBD>s una breu introducci<63> a l'editor Vim,
|
||||
suficient perqu<71> el pugueu comen<65>ar a fer servir. No <20>s complet perqu<71>
|
||||
el Vim t<> moltes ordres. Per a llegir el manual de l'usuari, feu:
|
||||
":help user-manual".
|
||||
|
||||
Per un estudi m<>s profund us recomanem el seg<65>ent llibre:
|
||||
Per a un estudi m<>s a fons us recomanem el seg<65>ent llibre:
|
||||
Vim - Vi Improved - de Steve Oualline
|
||||
Editorial: New Riders
|
||||
<20>s el primer llibre dedicat completament al Vim, especialment <20>til per a
|
||||
usuaris novells. T<EFBFBD> molts exemples i dibuixos.
|
||||
usuaris novells. Cont<EFBFBD> molts exemples i diagrames.
|
||||
Vegeu http://iccf-holland.org/click5.html
|
||||
|
||||
Aquest altre <20>s m<>s vell i tracta m<>s sobre el Vi que sobre el Vim:
|
||||
Learning the Vi Editor - de Linda Lamb
|
||||
Editorial: O'Reilly & Associates Inc.
|
||||
<20>s un bon llibre per saber qualsevol cosa que desitgeu sobre el Vi.
|
||||
<20>s un bon llibre per a aprendre qualsevol cosa que desitgeu sobre el Vi.
|
||||
La sisena edici<63> tamb<6D> inclou informaci<63> sobre el Vim.
|
||||
|
||||
Aquest tutorial ha estat escrit per Michael C. Pierce i Robert K. Ware,
|
||||
Colorado School of Mines amb la col<6F>laboraci<63> de Charles Smith,
|
||||
Colorado State University. E-mail: bware@mines.colorado.edu.
|
||||
Colorado School of Mines amb la col<6F>laboraci<63> de Charles Smith, Colorado
|
||||
State University. E-mail: bware@mines.colorado.edu.
|
||||
|
||||
Modificat pel Vim per Bram Moolenaar.
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ NOTE : :q! <Entrée> annule tous les changements que vous avez faits. Dans
|
||||
|
||||
4. Répétez les étapes 2 à 4 jusqu'à ce que la phrase soit correcte.
|
||||
|
||||
---> La vvache à sautéé au-ddessus dde la luune.
|
||||
---> La vvache a sautéé au-ddessus dde la luune.
|
||||
|
||||
5. Maintenant que la ligne est correcte, passez à la Leçon 1.4.
|
||||
|
||||
@@ -1034,5 +1034,5 @@ NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
|
||||
Dernières mises à jour par Dominique Pellé.
|
||||
|
||||
E-mail : dominique.pelle@gmail.com
|
||||
Last Change : 2017 Jan 16
|
||||
Last Change : 2017 Jun 30
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
1009
runtime/tutor/tutor.lv
Normal file
1009
runtime/tutor/tutor.lv
Normal file
File diff suppressed because it is too large
Load Diff
@@ -904,7 +904,7 @@ NOTA: Se quiser ignorar a diferen
|
||||
:e $VIM/_vimrc para MS-Windows
|
||||
|
||||
2. Agora, leia o conte<74>do do arquivo "vimrc" de exemplo:
|
||||
:r $VIM/vimrc_example.vim
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. Salve o arquivo com:
|
||||
:w
|
||||
|
||||
@@ -904,7 +904,7 @@ NOTA: Se quiser ignorar a diferença entre maiúsculas e minúsculas em apenas
|
||||
:e $VIM/_vimrc para MS-Windows
|
||||
|
||||
2. Agora, leia o conteúdo do arquivo "vimrc" de exemplo:
|
||||
:r $VIM/vimrc_example.vim
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. Salve o arquivo com:
|
||||
:w
|
||||
|
||||
@@ -790,10 +790,10 @@
|
||||
1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
|
||||
первого слова xxx.
|
||||
|
||||
2. Теперь нажмите R и введите число указанный ниже во второй строке чтобы
|
||||
2. Теперь нажмите R и введите число, указанное ниже во второй строке, чтобы
|
||||
заменить xxx.
|
||||
|
||||
3. Нажмите <ESC> для выхода из режима замены. Заметьте что остаток строки
|
||||
3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки
|
||||
не был изменён.
|
||||
|
||||
4. Повторите эти шаги для замены оставшихся xxx.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
ATTENTION:
|
||||
The commands in the lessons will modify the text. Make a copy of this
|
||||
file to practise on (if you started "vimtutor" this is already a copy).
|
||||
file to practice on (if you started "vimtutor" this is already a copy).
|
||||
|
||||
It is important to remember that this tutor is set up to teach by
|
||||
use. That means that you need to execute the commands to learn them
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
---> 現在您應該已經學會如何移動到下一講吧。
|
||||
|
||||
3. 現在請使用下行鍵,將光標移動到第二講。
|
||||
3. 現在請使用下行鍵,將光標移動到第一講第二節。
|
||||
|
||||
提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
|
||||
然後再次從鍵盤輸入您想要的命令。
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
---> 現在您應該已經學會如何移動到下一講吧。
|
||||
|
||||
3. 現在請使用下行鍵,將光標移動到第二講。
|
||||
3. 現在請使用下行鍵,將光標移動到第一講第二節。
|
||||
|
||||
提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
|
||||
然後再次從鍵盤輸入您想要的命令。
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" An example for a vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2016 Jul 28
|
||||
" Last change: 2017 Sep 20
|
||||
"
|
||||
" To use it, copy it to
|
||||
" for Unix and OS/2: ~/.vimrc
|
||||
@@ -53,6 +53,8 @@ endif " has("autocmd")
|
||||
"
|
||||
" The matchit plugin makes the % command work better, but it is not backwards
|
||||
" compatible.
|
||||
" The ! means the package won't be loaded right away but when plugins are
|
||||
" loaded during initialization.
|
||||
if has('syntax') && has('eval')
|
||||
packadd matchit
|
||||
packadd! matchit
|
||||
endif
|
||||
|
||||
@@ -36,20 +36,31 @@ CPU = i386
|
||||
|
||||
!ifdef SDK_INCLUDE_DIR
|
||||
!include $(SDK_INCLUDE_DIR)\Win32.mak
|
||||
!else
|
||||
!elseif "$(USE_WIN32MAK)"=="yes"
|
||||
!include <Win32.mak>
|
||||
!else
|
||||
cc = cl
|
||||
link = link
|
||||
rc = rc
|
||||
cflags = -nologo -c
|
||||
lflags = -incremental:no -nologo
|
||||
rcflags = /r
|
||||
olelibsdll = ole32.lib uuid.lib oleaut32.lib user32.lib gdi32.lib advapi32.lib
|
||||
!endif
|
||||
|
||||
# include CPUARG
|
||||
cflags = $(cflags) $(CPUARG)
|
||||
|
||||
SUBSYSTEM = console
|
||||
!if "$(SUBSYSTEM_VER)" != ""
|
||||
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
|
||||
!endif
|
||||
|
||||
all: gvimext.dll
|
||||
|
||||
gvimext.dll: gvimext.obj \
|
||||
gvimext.res
|
||||
# $(implib) /NOLOGO -machine:$(CPU) -def:gvimext.def $** -out:gvimext.lib
|
||||
# $(link) $(dlllflags) -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib gvimext.lib comctl32.lib gvimext.exp
|
||||
$(link) $(lflags) -dll -def:gvimext.def -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib
|
||||
$(link) $(lflags) -dll -def:gvimext.def -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
|
||||
if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2
|
||||
|
||||
gvimext.obj: gvimext.h
|
||||
|
||||
@@ -38,7 +38,7 @@ STGMEDIUM medium;
|
||||
HRESULT hres = 0;
|
||||
UINT cbFiles = 0;
|
||||
|
||||
/* The buffers size used to be MAX_PATH (256 bytes), but that's not always
|
||||
/* The buffers size used to be MAX_PATH (260 bytes), but that's not always
|
||||
* enough */
|
||||
#define BUFSIZE 1100
|
||||
|
||||
@@ -203,7 +203,7 @@ dyn_libintl_init(char *dir)
|
||||
if (hLibintlDLL)
|
||||
return 1;
|
||||
|
||||
// Load gettext library from the Vim runtime directory.
|
||||
// Load gettext library from $VIMRUNTIME\GvimExt{64,32} directory.
|
||||
// Add the directory to $PATH temporarily.
|
||||
len = GetEnvironmentVariableW(L"PATH", NULL, 0);
|
||||
len2 = MAX_PATH + 1 + len;
|
||||
@@ -212,7 +212,11 @@ dyn_libintl_init(char *dir)
|
||||
if (buf != NULL && buf2 != NULL)
|
||||
{
|
||||
GetEnvironmentVariableW(L"PATH", buf, len);
|
||||
_snwprintf(buf2, len2, L"%S;%s", dir, buf);
|
||||
#ifdef _WIN64
|
||||
_snwprintf(buf2, len2, L"%S\\GvimExt64;%s", dir, buf);
|
||||
#else
|
||||
_snwprintf(buf2, len2, L"%S\\GvimExt32;%s", dir, buf);
|
||||
#endif
|
||||
SetEnvironmentVariableW(L"PATH", buf2);
|
||||
hLibintlDLL = LoadLibrary(GETTEXT_DLL);
|
||||
#ifdef GETTEXT_DLL_ALT
|
||||
@@ -883,36 +887,6 @@ BOOL CShellExt::LoadMenuIcon()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
// This symbol is not defined in older versions of the SDK or Visual C++.
|
||||
|
||||
#ifndef VER_PLATFORM_WIN32_WINDOWS
|
||||
# define VER_PLATFORM_WIN32_WINDOWS 1
|
||||
#endif
|
||||
|
||||
static DWORD g_PlatformId;
|
||||
|
||||
//
|
||||
// Set g_PlatformId to VER_PLATFORM_WIN32_NT (NT) or
|
||||
// VER_PLATFORM_WIN32_WINDOWS (Win95).
|
||||
//
|
||||
static void
|
||||
PlatformId(void)
|
||||
{
|
||||
static int done = FALSE;
|
||||
|
||||
if (!done)
|
||||
{
|
||||
OSVERSIONINFO ovi;
|
||||
|
||||
ovi.dwOSVersionInfoSize = sizeof(ovi);
|
||||
GetVersionEx(&ovi);
|
||||
|
||||
g_PlatformId = ovi.dwPlatformId;
|
||||
done = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef __BORLANDC__
|
||||
static char *
|
||||
searchpath(char *name)
|
||||
@@ -922,10 +896,7 @@ searchpath(char *name)
|
||||
|
||||
// There appears to be a bug in FindExecutableA() on Windows NT.
|
||||
// Use FindExecutableW() instead...
|
||||
PlatformId();
|
||||
if (g_PlatformId == VER_PLATFORM_WIN32_NT)
|
||||
{
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1,
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)name, -1,
|
||||
(LPWSTR)widename, BUFSIZE);
|
||||
if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
|
||||
(LPWSTR)location) > (HINSTANCE)32)
|
||||
@@ -934,17 +905,9 @@ searchpath(char *name)
|
||||
(LPSTR)widename, 2 * BUFSIZE, NULL, NULL);
|
||||
return widename;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (FindExecutableA((LPCTSTR)name, (LPCTSTR)"",
|
||||
(LPTSTR)location) > (HINSTANCE)32)
|
||||
return location;
|
||||
}
|
||||
return (char *)"";
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
STDMETHODIMP CShellExt::InvokeGvim(HWND hParent,
|
||||
LPCSTR /* pszWorkingDir */,
|
||||
|
||||
@@ -3,9 +3,9 @@ INSTALLpc.txt - Installation of Vim on PC
|
||||
This file contains instructions for compiling Vim. If you already have an
|
||||
executable version of Vim, you don't need this.
|
||||
|
||||
More information can be found here: (Very stale now.)
|
||||
|
||||
http://mywebpage.netscape.com/sharppeople/vim/howto/
|
||||
You can find the lastest here: https://github.com/vim/vim-win32-installer
|
||||
This page also has links to install support for interfaces such as Perl,
|
||||
Python, Lua, etc.
|
||||
|
||||
The file "feature.h" can be edited to match your preferences. You can skip
|
||||
this, then you will get the default behavior as is documented, which should
|
||||
@@ -15,6 +15,10 @@ This document assumes that you are building Vim for Win32 or later (Windows
|
||||
XP/2003/Vista/7/8/10). There are also instructions for pre-XP systems, but
|
||||
they might no longer work.
|
||||
|
||||
The recommended way is to build a 32 bit Vim, also on 64 bit systems. You can
|
||||
build a 64 bit Vim if you like, the executable will be bigger and Vim wan't be
|
||||
any faster, but you can edit files larger than 2 Gbyte.
|
||||
|
||||
|
||||
Contents:
|
||||
1. Microsoft Visual C++
|
||||
@@ -24,24 +28,32 @@ Contents:
|
||||
5. Cross compiling for Win32 from a Linux machine
|
||||
6. Building with Python support
|
||||
7. Building with Python3 support
|
||||
8. Building with MzScheme/Racket support
|
||||
8. Building with Racket or MzScheme support
|
||||
9. Building with Lua support
|
||||
10. Building with Perl support
|
||||
11. Building with Ruby support
|
||||
12. Building with Tcl support
|
||||
13. Windows 3.1
|
||||
14. MS-DOS
|
||||
13. Building with Terminal support
|
||||
14. Windows 3.1
|
||||
15. MS-DOS
|
||||
|
||||
15. Installing after building from sources
|
||||
16. Installing after building from sources
|
||||
|
||||
|
||||
The currently preferred method is using the free Visual C++ Toolkit 2008
|
||||
|msvc-2008-express|, the produced binary runs on most MS-Windows systems.
|
||||
The currently recommended way (that means it has been verified to work) is
|
||||
using the "Visual Studio Community 2015" installation. This includes the SDK
|
||||
needed to target Windows XP. But not older Windows versions (95, 97), see
|
||||
|msvc-2008-express| below for that
|
||||
|
||||
|
||||
1. Microsoft Visual C++
|
||||
=======================
|
||||
|
||||
We do not provide download links, since Microsoft keeps changing them. You
|
||||
can search for "Visual Studio Community 2015", for example. You will need to
|
||||
create a Microsoft account (it's free).
|
||||
|
||||
|
||||
Visual Studio
|
||||
-------------
|
||||
|
||||
@@ -49,9 +61,8 @@ Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, VS 2008,
|
||||
VS2010, VS2012, VS2013 and VS2015) is straightforward. (These instructions
|
||||
should also work for VS 4 and VS 5.)
|
||||
|
||||
Using VS C++ 2008 Express is recommended, the binaries built with that run on
|
||||
nearly all platforms. Binaries from later versions may not run on Windows 95
|
||||
or XP.
|
||||
Using VS C++ 2008 Express is recommended if you need the binary to run on
|
||||
Windows 95 or 97, see |msvc-2008-express| below.
|
||||
|
||||
To build Vim from the command line with MSVC, use Make_mvc.mak.
|
||||
Visual Studio installed a batch file called vcvars32.bat, which you must
|
||||
@@ -116,8 +127,8 @@ To set the environment execute the msvc2010.bat script. You can then build
|
||||
Vim with Make_mvc.mak.
|
||||
|
||||
|
||||
Targeting Windows XP with new MSVC *new-msvc-windows-xp*
|
||||
----------------------------------
|
||||
Targeting Windows XP with MSVC 2012 and later *new-msvc-windows-xp*
|
||||
---------------------------------------------
|
||||
|
||||
Beginning with Visual C++ 2012, Microsoft changed the behavior of LINK.EXE
|
||||
so that it targets Windows 6.0 (Vista) by default. In order to override
|
||||
@@ -126,16 +137,28 @@ follows:
|
||||
LINK ... /subsystem:console,5.01
|
||||
|
||||
Make_mvc.mak now supports a macro SUBSYSTEM_VER to pass the Windows version.
|
||||
Use lines like follows to target Windows XP (assuming using Visual C++ 2012
|
||||
under 64-bit Windows):
|
||||
Use lines like follows to target Windows XP x86 (assuming using Visual C++
|
||||
2012 under 64-bit Windows):
|
||||
set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A
|
||||
set SDK_INCLUDE_DIR=%WinSdk71%\Include
|
||||
set INCLUDE=%WinSdk71%\Include;%INCLUDE%
|
||||
set LIB=%WinSdk71%\Lib;%LIB%
|
||||
set PATH=%WinSdk71%\Bin;%PATH%
|
||||
set CL=/D_USING_V110_SDK71_
|
||||
nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.01
|
||||
|
||||
To target Windows XP x64 instead of x86, you need to change the settings of
|
||||
LIB and SUBSYSTEM_VER:
|
||||
...
|
||||
set LIB=%WinSdk71%\Lib\x64;%LIB%
|
||||
...
|
||||
nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.02
|
||||
|
||||
If you use Visual C++ 2015 (either Express or Community Edition), executing
|
||||
msvc2015.bat will set them automatically. For x86 builds run this without
|
||||
options:
|
||||
msvc2015
|
||||
For x64 builds run this with the "x86_amd64" option:
|
||||
msvc2015 x86_amd64
|
||||
|
||||
The following Visual C++ team blog can serve as a reference page:
|
||||
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
|
||||
|
||||
@@ -187,10 +210,10 @@ Now you can build Vim with Make_mvc.mak.
|
||||
|
||||
Getting the Windows Platform SDK *ms-platform-sdk*
|
||||
|
||||
You will also need a copy of the Windows Platform SDK from
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
Specifically, you need the Windows Core SDK subset of the Platform SDK,
|
||||
which contains the Windows headers and libraries.
|
||||
You will also need a copy of the Windows Platform SDK. Specifically, you need
|
||||
the Windows Core SDK subset of the Platform SDK, which contains the Windows
|
||||
headers and libraries. You need to search for it, Microsoft keeps changing
|
||||
the URL.
|
||||
|
||||
|
||||
Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
|
||||
@@ -431,10 +454,61 @@ E.g. When using MSVC (as one line):
|
||||
PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34
|
||||
|
||||
|
||||
8. Building with MzScheme/Racket support
|
||||
8. Building with Racket or MzScheme support
|
||||
========================================
|
||||
|
||||
1) Building with MzScheme support
|
||||
1) Building with Racket support (newest)
|
||||
|
||||
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
|
||||
support can be built with either MSVC or MinGW (or Cygwin).
|
||||
Get it from https://download.racket-lang.org/
|
||||
|
||||
Copy lib/libracket{version}.dll to your Windows system directory. The system
|
||||
directory depends on your Windows bitness and Vim bitness:
|
||||
32-bit Vim on 32-bit Windows: C:\Windows\System32
|
||||
32-bit Vim on 64-bit Windows: C:\Windows\SysWOW64
|
||||
64-bit Vim on 64-bit Windows: C:\Windows\System32
|
||||
|
||||
For building you need to set the following variables:
|
||||
|
||||
MZSCHEME: Where Racket is installed.
|
||||
E.g. C:\Program Files (x86)\Racket
|
||||
DYNAMIC_MZSCHEME: Whether dynamic linking is used. Usually, set to yes.
|
||||
MZSCHEME_VER: Racket DLL version which is used for the file name.
|
||||
See below for a list of MZSCHEME_VER.
|
||||
The DLL can be found under the lib directory. E.g.
|
||||
C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
|
||||
MZSCHEME_COLLECTS: (Optional) Path of the collects directory used at
|
||||
runtime. Default: $(MZSCHEME)\collects
|
||||
User can override this with the PLTCOLLECTS environment
|
||||
variable.
|
||||
|
||||
List of MZSCHEME_VER (incomplete):
|
||||
|
||||
Racket ver. | MZSCHEME_VER
|
||||
==========================
|
||||
6.3 | 3m_9z0ds0
|
||||
6.6 | 3m_a0solc
|
||||
6.8 | 3m_a1zjsw
|
||||
6.10 | 3m_a36fs8
|
||||
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
MZSCHEME="C:\Program Files (x86)\Racket" DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak
|
||||
MZSCHEME='C:/Program\ Files\ (x86)/Racket' DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Spaces should be escaped with '\'.
|
||||
|
||||
|
||||
2) Building with MzScheme support (older)
|
||||
|
||||
(written by Sergey Khorev <sergey.khorev@gmail.com>)
|
||||
|
||||
@@ -469,37 +543,6 @@ After a successful build, these dlls can be freely removed, leaving them in
|
||||
%WINDOWS%\System32 only.
|
||||
|
||||
|
||||
2) Building with Racket support
|
||||
|
||||
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
|
||||
(https://racket-lang.org/) support can be built with either MSVC or MinGW (or
|
||||
Cygwin).
|
||||
|
||||
You need to set the following variables:
|
||||
|
||||
MZSCHEME: Where Racket is installed.
|
||||
E.g. C:\Program Files (x86)\Racket
|
||||
DYNAMIC_MZSCHEME: Whether dynamic linking is used. Usually, set to yes.
|
||||
MZSCHEME_VER: Racket DLL version. E.g. 3m_9z0ds0 for Racket 6.3.
|
||||
MZSCHEME_COLLECTS: (Optional) Path of the collects directory used at
|
||||
runtime. Default: $(MZSCHEME)\collects
|
||||
User can override this with the PLTCOLLECTS environment
|
||||
variable.
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
MZSCHEME="C:\Program Files (x86)\Racket" DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak
|
||||
MZSCHEME='C:/Program\ Files\ (x86)/Racket' DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Spaces should be escaped with '\'.
|
||||
|
||||
|
||||
9. Building with Lua support
|
||||
============================
|
||||
@@ -546,7 +589,7 @@ E.g. When using MSVC (as one line):
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak
|
||||
mingw32-make -f Make_ming.mak
|
||||
LUA=C:\projects\lua53 DYNAMIC_LUA=yes LUA_VER=53
|
||||
|
||||
|
||||
@@ -578,7 +621,7 @@ E.g. When using MSVC (as one line):
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak
|
||||
mingw32-make -f Make_ming.mak
|
||||
PERL=C:\Perl DYNAMIC_PERL=yes PERL_VER=522
|
||||
|
||||
|
||||
@@ -587,7 +630,7 @@ Or when using MinGW (as one line):
|
||||
|
||||
Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
|
||||
Ruby doesn't provide the official Windows binaries. The most widely used
|
||||
Windows binaries might be RubyInstaller.
|
||||
Windows binaries might be RubyInstaller. Currently Ruby 2.4 is recommended.
|
||||
|
||||
http://rubyinstaller.org/
|
||||
|
||||
@@ -598,11 +641,11 @@ you need some tricks described below.
|
||||
|
||||
When building, you need to set the following variables at least:
|
||||
|
||||
RUBY: Where ruby is installed. E.g. C:\Ruby22
|
||||
RUBY: Where ruby is installed. E.g. C:\Ruby24
|
||||
DYNAMIC_RUBY: Whether dynamic linking is used. Usually, set to yes.
|
||||
RUBY_VER: Ruby version. E.g. 22 for Ruby 2.2.X.
|
||||
RUBY_VER: Ruby version. E.g. 24 for Ruby 2.4.X.
|
||||
RUBY_API_VER_LONG: Ruby API version in a long format.
|
||||
E.g. 2.2.0 for Ruby 2.2.X.
|
||||
E.g. 2.4.0 for Ruby 2.4.X.
|
||||
|
||||
Ruby version vs. Ruby API version:
|
||||
|
||||
@@ -627,33 +670,34 @@ config.h and Ruby's DLL name. Here are the steps for working around them:
|
||||
1) Download and Install RubyInstaller.
|
||||
You can install RubyInstaller with the default options and directory.
|
||||
E.g.:
|
||||
C:\Ruby22 (32-bit) or C:\Ruby22-x64 (64-bit)
|
||||
C:\Ruby24 (32-bit) or C:\Ruby24-x64 (64-bit)
|
||||
|
||||
Ruby 2.2.X is used in this example.
|
||||
Ruby 2.4.X is used in this example.
|
||||
|
||||
2) Download Ruby 2.2.X's source code and generate config.h:
|
||||
2) Download Ruby 2.4.X's source code and generate config.h:
|
||||
|
||||
cd C:\projects
|
||||
git clone https://github.com/ruby/ruby.git -b ruby_2_2
|
||||
git clone https://github.com/ruby/ruby.git -b ruby_2_4
|
||||
cd ruby
|
||||
win32\configure.bat
|
||||
nmake .config.h.time
|
||||
|
||||
Note that ruby_2_2 is the branch name for Ruby 2.2.X's source code.
|
||||
Note that ruby_2_4 is the branch name for Ruby 2.4.X's source code.
|
||||
There is no need to build whole Ruby, just config.h is needed.
|
||||
If you use 32-bit MSVC10, the config.h is generated in the
|
||||
.ext\include\i386-mswin32_100 directory.
|
||||
.ext\include\i386-mswin32_140 directory.
|
||||
|
||||
3) Install the generated config.h.
|
||||
|
||||
xcopy /s .ext\include C:\Ruby22\include\ruby-2.2.0
|
||||
xcopy /s .ext\include E:\Ruby24\include\ruby-2.4.0
|
||||
|
||||
Note that 2.2.0 is Ruby API version of Ruby 2.2.X.
|
||||
Note that 2.4.0 is Ruby API version of Ruby 2.4.X.
|
||||
You may need to close the console and reopen it to pick up the new $PATH.
|
||||
|
||||
4) Build Vim. Note that you need to adjust some variables (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
RUBY=C:\Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0
|
||||
RUBY=C:\Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
|
||||
RUBY_MSVCRT_NAME=msvcrt
|
||||
WINVER=0x501
|
||||
|
||||
@@ -684,6 +728,7 @@ You can use binaries from ActiveState (ActiveTcl).
|
||||
|
||||
http://www.activestate.com/activetcl
|
||||
|
||||
For MSVC 2015 use version 8.6.6 or later.
|
||||
When building, you need to set the following variables:
|
||||
|
||||
TCL: Where tcl is installed. E.g. C:\Tcl86
|
||||
@@ -691,6 +736,11 @@ When building, you need to set the following variables:
|
||||
TCL_VER: Tcl version in a short format. E.g. 86 for Tcl 8.6.X.
|
||||
TCL_VER_LONG: Tcl version in a long format. E.g. 8.6 for Tcl 8.6.X.
|
||||
|
||||
Sometimes the Tcl dll name changes. E.g. ActiveTcl 8.6.4 comes with tcl86.dll,
|
||||
but ActiveTcl 8.6.6 comes with tcl86t.dll. You can set the dll name by setting
|
||||
the TCL_DLL variable:
|
||||
TCL_DLL=tcl86t.dll
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
@@ -698,23 +748,39 @@ E.g. When using MSVC (as one line):
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak
|
||||
mingw32-make -f Make_ming.mak
|
||||
TCL=C:\Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
|
||||
|
||||
|
||||
13. Windows 3.1x
|
||||
13. Building with Terminal support
|
||||
==================================
|
||||
|
||||
Vim with Terminal support can be built with either MSVC, MinGW or Cygwin.
|
||||
This uses the included libvterm and winpty. No extra header files or
|
||||
libraries are needed for building. Just set TERMINAL to yes.
|
||||
|
||||
E.g. When using MSVC:
|
||||
|
||||
nmake -f Make_mvc.mak TERMINAL=yes
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak TERMINAL=yes
|
||||
|
||||
|
||||
14. Windows 3.1x
|
||||
================
|
||||
|
||||
The Windows 3.1x support was removed in patch 7.4.1364.
|
||||
|
||||
|
||||
14. MS-DOS
|
||||
15. MS-DOS
|
||||
==========
|
||||
|
||||
The MS-DOS support was removed in patch 7.4.1399.
|
||||
|
||||
|
||||
15. Installing after building from sources
|
||||
16. Installing after building from sources
|
||||
==========================================
|
||||
|
||||
[provided by Michael Soyka]
|
||||
|
||||
@@ -50,3 +50,5 @@ CROSS_COMPILE = i686-pc-mingw32-
|
||||
# Do not change this.
|
||||
UNDER_CYGWIN = yes
|
||||
include Make_cyg_ming.mak
|
||||
|
||||
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
|
||||
|
||||
@@ -73,7 +73,13 @@ CHANNEL=yes
|
||||
else
|
||||
CHANNEL=$(GUI)
|
||||
endif
|
||||
# Set to yes to enable terminal support.
|
||||
TERMINAL=no
|
||||
|
||||
ifndef CTAGS
|
||||
# this assumes ctags is Exuberant ctags
|
||||
CTAGS = ctags -I INIT+ --fields=+S
|
||||
endif
|
||||
|
||||
# Link against the shared version of libstdc++ by default. Set
|
||||
# STATIC_STDCPLUS to "yes" to link against static version instead.
|
||||
@@ -215,6 +221,8 @@ endif
|
||||
# MZSCHEME=[Path to MzScheme directory] (Set inside Make_cyg.mak or Make_ming.mak)
|
||||
# DYNAMIC_MZSCHEME=yes (to load the MzScheme DLL dynamically)
|
||||
# MZSCHEME_VER=[MzScheme version] (default is 3m_a0solc (6.6))
|
||||
# Used for the DLL file name. E.g.:
|
||||
# C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
|
||||
# MZSCHEME_DEBUG=no
|
||||
ifdef MZSCHEME
|
||||
ifndef DYNAMIC_MZSCHEME
|
||||
@@ -338,6 +346,7 @@ endif
|
||||
# TCL_VER=[TCL version, eg 83, 84] (default is 86)
|
||||
# TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.6)
|
||||
# You must set TCL_VER_LONG when you set TCL_VER.
|
||||
# TCL_DLL=[TCL dll name, eg tcl86.dll] (default is tcl86.dll)
|
||||
ifdef TCL
|
||||
ifndef DYNAMIC_TCL
|
||||
DYNAMIC_TCL=yes
|
||||
@@ -348,6 +357,9 @@ endif
|
||||
ifndef TCL_VER_LONG
|
||||
TCL_VER_LONG = 8.6
|
||||
endif
|
||||
ifndef TCL_DLL
|
||||
TCL_DLL = tcl$(TCL_VER).dll
|
||||
endif
|
||||
TCLINC += -I$(TCL)/include
|
||||
endif
|
||||
|
||||
@@ -524,7 +536,7 @@ endif
|
||||
ifdef TCL
|
||||
CFLAGS += -DFEAT_TCL $(TCLINC)
|
||||
ifeq (yes, $(DYNAMIC_TCL))
|
||||
CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
|
||||
CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"$(TCL_DLL)\" -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -557,6 +569,16 @@ ifeq ($(CHANNEL),yes)
|
||||
DEFINES += -DFEAT_JOB_CHANNEL
|
||||
endif
|
||||
|
||||
ifeq ($(TERMINAL),yes)
|
||||
DEFINES += -DFEAT_TERMINAL
|
||||
TERM_DEPS = \
|
||||
libvterm/include/vterm.h \
|
||||
libvterm/include/vterm_keycodes.h \
|
||||
libvterm/src/rect.h \
|
||||
libvterm/src/utf8.h \
|
||||
libvterm/src/vterm_internal.h
|
||||
endif
|
||||
|
||||
# DirectWrite (DirectX)
|
||||
ifeq ($(DIRECTX),yes)
|
||||
# Only allow DirectWrite for a GUI build.
|
||||
@@ -743,6 +765,19 @@ LIB += -L$(XPM)/lib -lXpm
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TERMINAL),yes)
|
||||
OBJ += $(OUTDIR)/terminal.o \
|
||||
$(OUTDIR)/term_encoding.o \
|
||||
$(OUTDIR)/term_keyboard.o \
|
||||
$(OUTDIR)/term_mouse.o \
|
||||
$(OUTDIR)/term_parser.o \
|
||||
$(OUTDIR)/term_pen.o \
|
||||
$(OUTDIR)/term_screen.o \
|
||||
$(OUTDIR)/term_state.o \
|
||||
$(OUTDIR)/term_unicode.o \
|
||||
$(OUTDIR)/term_vterm.o
|
||||
endif
|
||||
|
||||
|
||||
ifdef MZSCHEME
|
||||
MZSCHEME_SUFFIX = Z
|
||||
@@ -856,6 +891,12 @@ xxd/xxd.exe: xxd/xxd.c
|
||||
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
|
||||
$(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE) CXX='$(CXX)' STATIC_STDCPLUS=$(STATIC_STDCPLUS)
|
||||
|
||||
tags: notags
|
||||
$(CTAGS) *.c *.cpp *.h if_perl.xs
|
||||
|
||||
notags:
|
||||
-$(DEL) tags
|
||||
|
||||
clean:
|
||||
-$(DEL) $(OUTDIR)$(DIRSLASH)*.o
|
||||
-$(DEL) $(OUTDIR)$(DIRSLASH)*.res
|
||||
@@ -872,9 +913,10 @@ endif
|
||||
$(MAKE) -C xxd -f Make_ming.mak clean
|
||||
|
||||
###########################################################################
|
||||
INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
|
||||
structs.h regexp.h option.h ex_cmds.h proto.h globals.h farsi.h \
|
||||
gui.h
|
||||
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
|
||||
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
|
||||
spell.h structs.h term.h $(NBDEBUG_INCL)
|
||||
GUI_INCL = gui.h gui_beval.h
|
||||
CUI_INCL = iscygpty.h
|
||||
|
||||
$(OUTDIR)/if_python.o: if_python.c if_py_both.h $(INCL)
|
||||
@@ -893,34 +935,40 @@ $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
|
||||
$(OUTDIR):
|
||||
$(MKDIR) $(OUTDIR)
|
||||
|
||||
$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
|
||||
$(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
|
||||
|
||||
$(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
|
||||
$(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
|
||||
|
||||
$(OUTDIR)/gui_w32.o: gui_w32.c $(INCL)
|
||||
$(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
|
||||
|
||||
$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
|
||||
$(CC) -c $(CFLAGS) $(CXXFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
|
||||
|
||||
$(OUTDIR)/gui.o: gui.c $(INCL) $(GUI_INCL)
|
||||
$(CC) -c $(CFLAGS) gui.c -o $(OUTDIR)/gui.o
|
||||
|
||||
$(OUTDIR)/gui_beval.o: gui_beval.c $(INCL) $(GUI_INCL)
|
||||
$(CC) -c $(CFLAGS) gui_beval.c -o $(OUTDIR)/gui_beval.o
|
||||
|
||||
$(OUTDIR)/gui_w32.o: gui_w32.c $(INCL) $(GUI_INCL)
|
||||
$(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
|
||||
|
||||
$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
|
||||
$(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
|
||||
|
||||
$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) $(MZSCHEME_INCL) $(MZ_EXTRA_DEP)
|
||||
$(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
|
||||
|
||||
mzscheme_base.c:
|
||||
$(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
|
||||
|
||||
# Remove -D__IID_DEFINED__ for newer versions of the w32api
|
||||
$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
|
||||
$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) if_ole.h
|
||||
$(CC) $(CFLAGS) $(CXXFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp
|
||||
|
||||
if_perl.c: if_perl.xs typemap
|
||||
$(XSUBPP) -prototypes -typemap \
|
||||
$(PERLTYPEMAP) if_perl.xs -output $@
|
||||
|
||||
$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
|
||||
ifeq (16, $(RUBY))
|
||||
$(CC) $(CFLAGS) -U_WIN32 -c -o $(OUTDIR)/if_ruby.o if_ruby.c
|
||||
endif
|
||||
|
||||
if_perl.c: if_perl.xs typemap
|
||||
$(XSUBPP) -prototypes -typemap \
|
||||
$(PERLTYPEMAP) if_perl.xs > $@
|
||||
|
||||
$(OUTDIR)/iscygpty.o: iscygpty.c $(CUI_INCL)
|
||||
$(CC) -c $(CFLAGS) iscygpty.c -o $(OUTDIR)/iscygpty.o -U_WIN32_WINNT -D_WIN32_WINNT=0x0600 -DUSE_DYNFILEID -DENABLE_STUB_IMPL
|
||||
|
||||
@@ -930,17 +978,48 @@ $(OUTDIR)/main.o: main.c $(INCL) $(CUI_INCL)
|
||||
$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
|
||||
$(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
|
||||
|
||||
$(OUTDIR)/channel.o: channel.c $(INCL)
|
||||
$(CC) -c $(CFLAGS) channel.c -o $(OUTDIR)/channel.o
|
||||
$(OUTDIR)/os_win32.o: os_win32.c $(INCL) $(MZSCHEME_INCL)
|
||||
$(CC) -c $(CFLAGS) os_win32.c -o $(OUTDIR)/os_win32.o
|
||||
|
||||
$(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL)
|
||||
$(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o
|
||||
|
||||
$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
|
||||
$(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
|
||||
$(OUTDIR)/terminal.o: terminal.c $(INCL) $(TERM_DEPS)
|
||||
$(CC) -c $(CFLAGS) terminal.c -o $(OUTDIR)/terminal.o
|
||||
|
||||
|
||||
CCCTERM = $(CC) -c $(CFLAGS) -Ilibvterm/include -DINLINE="" \
|
||||
-DVSNPRINTF=vim_vsnprintf \
|
||||
-DIS_COMBINING_FUNCTION=utf_iscomposing_uint \
|
||||
-DWCWIDTH_FUNCTION=utf_uint2cells
|
||||
|
||||
$(OUTDIR)/term_encoding.o: libvterm/src/encoding.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/encoding.c -o $@
|
||||
|
||||
$(OUTDIR)/term_keyboard.o: libvterm/src/keyboard.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/keyboard.c -o $@
|
||||
|
||||
$(OUTDIR)/term_mouse.o: libvterm/src/mouse.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/mouse.c -o $@
|
||||
|
||||
$(OUTDIR)/term_parser.o: libvterm/src/parser.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/parser.c -o $@
|
||||
|
||||
$(OUTDIR)/term_pen.o: libvterm/src/pen.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/pen.c -o $@
|
||||
|
||||
$(OUTDIR)/term_screen.o: libvterm/src/screen.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/screen.c -o $@
|
||||
|
||||
$(OUTDIR)/term_state.o: libvterm/src/state.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/state.c -o $@
|
||||
|
||||
$(OUTDIR)/term_unicode.o: libvterm/src/unicode.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/unicode.c -o $@
|
||||
|
||||
$(OUTDIR)/term_vterm.o: libvterm/src/vterm.c $(TERM_DEPS)
|
||||
$(CCCTERM) libvterm/src/vterm.c -o $@
|
||||
|
||||
mzscheme_base.c:
|
||||
$(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
|
||||
|
||||
pathdef.c: $(INCL)
|
||||
ifneq (sh.exe, $(SHELL))
|
||||
@@ -964,3 +1043,5 @@ else
|
||||
@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
|
||||
@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
|
||||
endif
|
||||
|
||||
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user