mirror of
https://github.com/zoriya/vim.git
synced 2025-12-28 09:58:17 +00:00
Compare commits
389 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1072768b91 | ||
|
|
e28cfb2812 | ||
|
|
247bf0de46 | ||
|
|
7780e5c1c5 | ||
|
|
b05caa782d | ||
|
|
3b849af90a | ||
|
|
7ba343e634 | ||
|
|
e089c3fd69 | ||
|
|
3dabd718f4 | ||
|
|
8a7383b6d2 | ||
|
|
0d07155c8b | ||
|
|
49fe95f225 | ||
|
|
9992244226 | ||
|
|
ee9e604124 | ||
|
|
3e35d05b1f | ||
|
|
3f3e954d96 | ||
|
|
d84b2c3d88 | ||
|
|
56a6312099 | ||
|
|
b3d17a20d2 | ||
|
|
5b19e5b919 | ||
|
|
899f20deae | ||
|
|
ec572ad6a6 | ||
|
|
6cc7e21412 | ||
|
|
c2f5054be9 | ||
|
|
28fc247f8d | ||
|
|
3940ec6d41 | ||
|
|
4f5b0e5355 | ||
|
|
437a746b4c | ||
|
|
b4d9b893d3 | ||
|
|
981d9dc8f3 | ||
|
|
b7ed839976 | ||
|
|
48ac671fe5 | ||
|
|
4e038571aa | ||
|
|
e809a4ed30 | ||
|
|
790c18bfa5 | ||
|
|
6bf2c6264b | ||
|
|
931a277145 | ||
|
|
6cb39f924a | ||
|
|
5ca1ac373a | ||
|
|
bc2cfe4672 | ||
|
|
0d702028fe | ||
|
|
e4b407f536 | ||
|
|
e296e3177b | ||
|
|
80edda1cf5 | ||
|
|
ba45f1f4fb | ||
|
|
435f9f06ca | ||
|
|
9ee3d161f7 | ||
|
|
d529ba58dc | ||
|
|
8531dc66e8 | ||
|
|
7866b87958 | ||
|
|
f8a0712655 | ||
|
|
a83e70000f | ||
|
|
5b8cfedfbd | ||
|
|
892ae723ab | ||
|
|
15e248e37f | ||
|
|
2e62b568e9 | ||
|
|
b60d8514b8 | ||
|
|
f9c85f580b | ||
|
|
548be7f126 | ||
|
|
4340fc95d5 | ||
|
|
13b47c37a6 | ||
|
|
d74af4227b | ||
|
|
711d02c96d | ||
|
|
8da4181631 | ||
|
|
4cd583c6da | ||
|
|
6efd76ae4a | ||
|
|
53a95d6584 | ||
|
|
68acb41f99 | ||
|
|
c2a4316500 | ||
|
|
88c47aa692 | ||
|
|
2eed9bafa0 | ||
|
|
6a7af8e2db | ||
|
|
5c381eb9e7 | ||
|
|
7d491c4253 | ||
|
|
6c6a603cd2 | ||
|
|
75fb0854e9 | ||
|
|
e96a2498f9 | ||
|
|
2b044ffb5a | ||
|
|
b2cda0dd1d | ||
|
|
e7eb92708e | ||
|
|
0a1f56fcfe | ||
|
|
7be3ab2589 | ||
|
|
0fcf26ba4f | ||
|
|
7a39dd7f00 | ||
|
|
c662ec9978 | ||
|
|
6c1e1570b1 | ||
|
|
adc6714aac | ||
|
|
dfc1455728 | ||
|
|
693f7dc818 | ||
|
|
405bb42734 | ||
|
|
75a1a9415b | ||
|
|
a3fce62c91 | ||
|
|
37e66cf0f6 | ||
|
|
e9726e31fe | ||
|
|
a956bf6ca3 | ||
|
|
4dff4aed09 | ||
|
|
bf8c3adef2 | ||
|
|
87652a7e3b | ||
|
|
db51730df1 | ||
|
|
517f71ab17 | ||
|
|
9b283523f2 | ||
|
|
394c5d8870 | ||
|
|
6e5000d493 | ||
|
|
ad24a71e22 | ||
|
|
ae943150d3 | ||
|
|
6313c4f41d | ||
|
|
eb2310d47d | ||
|
|
a730e55cc2 | ||
|
|
983f2f1403 | ||
|
|
8a5c7ef9bb | ||
|
|
8cdbd5b3c4 | ||
|
|
1c196e7b17 | ||
|
|
dc2ce58b5a | ||
|
|
f85e40afc2 | ||
|
|
6c17543b56 | ||
|
|
51c3131040 | ||
|
|
61eeeea8e6 | ||
|
|
a42d945efc | ||
|
|
26910de8b0 | ||
|
|
0331faf712 | ||
|
|
45aa07d3c1 | ||
|
|
b46fecd345 | ||
|
|
b6e3b88ec8 | ||
|
|
d7c9687947 | ||
|
|
bffc50494d | ||
|
|
0abb4273f6 | ||
|
|
9937a05543 | ||
|
|
dfa97f2aed | ||
|
|
fc06cbbf86 | ||
|
|
1755ec4278 | ||
|
|
650a63748c | ||
|
|
bd75b5333d | ||
|
|
2fc39aeeb5 | ||
|
|
d2cea96f6c | ||
|
|
0554fa478d | ||
|
|
f42397c395 | ||
|
|
21606676d9 | ||
|
|
b4086ffa32 | ||
|
|
a540f8aa3b | ||
|
|
37df9a4401 | ||
|
|
b53fb31a1e | ||
|
|
b0f94c1ff3 | ||
|
|
8d24104031 | ||
|
|
68d48f40a4 | ||
|
|
7c7f01e2b2 | ||
|
|
451d4b5b7c | ||
|
|
06e2c81f6d | ||
|
|
202d982b36 | ||
|
|
12ee7ff00b | ||
|
|
4c063a0dab | ||
|
|
640d4f0c97 | ||
|
|
82febc16e4 | ||
|
|
01257a7a8e | ||
|
|
3ff5f0f05d | ||
|
|
38ea784fec | ||
|
|
ac2450a9a8 | ||
|
|
80dad48c50 | ||
|
|
954bb06363 | ||
|
|
541faf7a73 | ||
|
|
a90998d93a | ||
|
|
b29cfb8c28 | ||
|
|
8ed75cb0b4 | ||
|
|
ef23c527bd | ||
|
|
ffa60dda0a | ||
|
|
427f5b66ce | ||
|
|
260addf795 | ||
|
|
21f8d93c71 | ||
|
|
24a5ac5d4d | ||
|
|
c024b46678 | ||
|
|
aef5c62a6f | ||
|
|
acc682bd7c | ||
|
|
1748c7f77e | ||
|
|
6c009a3974 | ||
|
|
33796b39b9 | ||
|
|
7c348bb5ad | ||
|
|
6064073841 | ||
|
|
4e0bf84627 | ||
|
|
64416127fc | ||
|
|
150f0550f4 | ||
|
|
62a88f498a | ||
|
|
1253704591 | ||
|
|
773a97c254 | ||
|
|
c07f67ad0e | ||
|
|
75ee544f99 | ||
|
|
5d30ff1964 | ||
|
|
f6d50f1da8 | ||
|
|
12e71eb8a8 | ||
|
|
8e228e21cc | ||
|
|
133c737357 | ||
|
|
18250e291a | ||
|
|
c7500f9cb5 | ||
|
|
9c0cec65f8 | ||
|
|
db294adc65 | ||
|
|
9aeb33639f | ||
|
|
4a792c87b9 | ||
|
|
61da1bfa6c | ||
|
|
de6dbb452a | ||
|
|
32e1977012 | ||
|
|
6d718c4c38 | ||
|
|
66761db11d | ||
|
|
d0380dc782 | ||
|
|
d6ec1730ba | ||
|
|
58a7f87c86 | ||
|
|
a37833dbd7 | ||
|
|
cea254f5a7 | ||
|
|
277e79adc4 | ||
|
|
c974022c31 | ||
|
|
ddd3308782 | ||
|
|
02e15072be | ||
|
|
3f6aeba18b | ||
|
|
0b4c9eddb5 | ||
|
|
87abab92f5 | ||
|
|
98fb65cb05 | ||
|
|
1762731f20 | ||
|
|
6116b6abb1 | ||
|
|
3397f74ac2 | ||
|
|
b0ebbda06c | ||
|
|
ca2f7037c1 | ||
|
|
399d898ac1 | ||
|
|
042fb4b449 | ||
|
|
988c43310a | ||
|
|
7b29dd8507 | ||
|
|
9eaac89650 | ||
|
|
790498b509 | ||
|
|
3bfd04e672 | ||
|
|
2fd8e35e16 | ||
|
|
8caaf82569 | ||
|
|
bf0eff0b72 | ||
|
|
2d247849ce | ||
|
|
c47ed44be7 | ||
|
|
815b76bff6 | ||
|
|
3a97bb3f0f | ||
|
|
7dd64a3e57 | ||
|
|
c28cb5b16d | ||
|
|
5d508dd39e | ||
|
|
1ab74a5af3 | ||
|
|
eea1699836 | ||
|
|
ccd6e3471d | ||
|
|
c6896e20f8 | ||
|
|
402502d0e4 | ||
|
|
ac1f1bc222 | ||
|
|
cc31ad9f9b | ||
|
|
54fabd4b5e | ||
|
|
b42301247d | ||
|
|
89adc3a137 | ||
|
|
5c3fb04623 | ||
|
|
cacc6a5c98 | ||
|
|
8c2a600f72 | ||
|
|
1714696600 | ||
|
|
88c4e1f069 | ||
|
|
68a4b04a8d | ||
|
|
868b7b6712 | ||
|
|
1bbebab525 | ||
|
|
bc133543b8 | ||
|
|
59edb00e22 | ||
|
|
c799fe206e | ||
|
|
b58a4b938c | ||
|
|
72fcf07b06 | ||
|
|
7833dab73c | ||
|
|
60cdb3004a | ||
|
|
b43683729b | ||
|
|
bf0ecb2cb6 | ||
|
|
7a8d0278bd | ||
|
|
2cd0dce898 | ||
|
|
68e6560b84 | ||
|
|
20c023aee0 | ||
|
|
9d591525a5 | ||
|
|
35d5af6c0b | ||
|
|
51fe3b14f6 | ||
|
|
076073950c | ||
|
|
9c27b1c6d1 | ||
|
|
ec58384afa | ||
|
|
a8c99fb78e | ||
|
|
80f95425cf | ||
|
|
193ffd1d9f | ||
|
|
adfde115d5 | ||
|
|
a5e44600eb | ||
|
|
51e14387f1 | ||
|
|
682725c141 | ||
|
|
4d784b21d1 | ||
|
|
8f46e4c4bd | ||
|
|
7b31a181c8 | ||
|
|
f0884c5f3f | ||
|
|
d79eef2eb1 | ||
|
|
18a4ba29ae | ||
|
|
71de720c2c | ||
|
|
964b3746b9 | ||
|
|
d33a764123 | ||
|
|
3020a87cb1 | ||
|
|
d22a6f8aaf | ||
|
|
fa8f861957 | ||
|
|
8239c62067 | ||
|
|
701ff0a3e5 | ||
|
|
fcc4d921d6 | ||
|
|
e2ad826f43 | ||
|
|
984f031fb0 | ||
|
|
c97582b029 | ||
|
|
0ab190c057 | ||
|
|
1c6fd1e100 | ||
|
|
99499b1c05 | ||
|
|
05b8b07e27 | ||
|
|
294d9bf966 | ||
|
|
e09244ee35 | ||
|
|
7e800c6047 | ||
|
|
110289e781 | ||
|
|
5357552140 | ||
|
|
5c017b2de2 | ||
|
|
e0b5949a3b | ||
|
|
c79745a82f | ||
|
|
0b0ad35c33 | ||
|
|
80341bcd89 | ||
|
|
f3333b02f3 | ||
|
|
386b43e594 | ||
|
|
999dc14644 | ||
|
|
8471e57026 | ||
|
|
16e9b85113 | ||
|
|
f5842c5a53 | ||
|
|
2b39d806f0 | ||
|
|
e9ebc9a91c | ||
|
|
338dfdad38 | ||
|
|
dc6855af97 | ||
|
|
cf0bfd9ade | ||
|
|
f8191c5f07 | ||
|
|
bd2d68c2f4 | ||
|
|
7f3a28490a | ||
|
|
6349e9411f | ||
|
|
0d3cb73012 | ||
|
|
8055d17388 | ||
|
|
787880a86d | ||
|
|
80e737cc6a | ||
|
|
bfd451283f | ||
|
|
dabfde04fe | ||
|
|
0ebe12be86 | ||
|
|
5c65e6a062 | ||
|
|
17aca707f9 | ||
|
|
dda4144d39 | ||
|
|
eda652215a | ||
|
|
45dd07f10a | ||
|
|
fe1ade0a78 | ||
|
|
fb222df28d | ||
|
|
9e58787de7 | ||
|
|
957f85d54e | ||
|
|
bc4fd43160 | ||
|
|
a9b2535f44 | ||
|
|
8aad88d8de | ||
|
|
97b0075b0d | ||
|
|
b73fbc76c6 | ||
|
|
5d0183b706 | ||
|
|
6e75e0a400 | ||
|
|
a334772967 | ||
|
|
6d2399bd10 | ||
|
|
6ed8819822 | ||
|
|
ec28d1516e | ||
|
|
3f86ca0faa | ||
|
|
dc9f9e93f5 | ||
|
|
d6896731ec | ||
|
|
afd78266c5 | ||
|
|
c049b52b90 | ||
|
|
63d2555c9c | ||
|
|
4ca41534b7 | ||
|
|
23b5139234 | ||
|
|
42ae78cfff | ||
|
|
6b528fa062 | ||
|
|
f90b6e03a9 | ||
|
|
a6c27c47dd | ||
|
|
d4aa83af1d | ||
|
|
eae1b91fea | ||
|
|
691ddeefb5 | ||
|
|
68cbb14bae | ||
|
|
be0a2597ae | ||
|
|
06bd824869 | ||
|
|
0b75f7c97c | ||
|
|
2f10658b06 | ||
|
|
a5c6a0b6c7 | ||
|
|
5416b75031 | ||
|
|
240f7abab0 | ||
|
|
27821260c0 | ||
|
|
98ffe4c6d8 | ||
|
|
93d77b2cbe | ||
|
|
fda9784dc9 | ||
|
|
ba9ea91beb | ||
|
|
1063f3d200 | ||
|
|
fd31e45e4b | ||
|
|
b6cb26ffe1 | ||
|
|
9ce3fa828d | ||
|
|
7e1a5af540 | ||
|
|
4fa06870e5 | ||
|
|
f0ab01f6d8 | ||
|
|
d136221129 |
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
custom: https://www.vim.org/sponsor/index.php
|
||||
32
.gitignore
vendored
32
.gitignore
vendored
@@ -6,16 +6,15 @@ src/auto/if_perl.c
|
||||
src/auto/gui_gtk_gresources.c
|
||||
src/auto/gui_gtk_gresources.h
|
||||
src/objects/.dirstamp
|
||||
src/objects
|
||||
src/tags
|
||||
|
||||
# We do need src/auto/configure.
|
||||
src/auto/config.aap
|
||||
src/auto/config.cache
|
||||
src/auto/config.h
|
||||
src/auto/config.log
|
||||
src/auto/config.mk
|
||||
src/auto/config.status
|
||||
src/auto/configure.aap
|
||||
src/auto/osdef.h
|
||||
src/auto/link.log
|
||||
src/auto/link.sed
|
||||
@@ -26,6 +25,7 @@ src/auto/pathdef.c
|
||||
*.idb
|
||||
*.manifest
|
||||
*.exp
|
||||
*.map
|
||||
*.obj
|
||||
*.pdb
|
||||
*.ilk
|
||||
@@ -35,22 +35,15 @@ src/auto/pathdef.c
|
||||
*.RES
|
||||
vim*.dll
|
||||
vim*.lib
|
||||
src/if_perl.c
|
||||
src/pathdef.c
|
||||
src/dobj*/pathdef.c
|
||||
src/gobj*/pathdef.c
|
||||
src/obj*/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
|
||||
# Borland C++
|
||||
bcc.cfg
|
||||
*.ilc
|
||||
*.ild
|
||||
*.ilf
|
||||
*.ils
|
||||
*.map
|
||||
*.tds
|
||||
nsis/icons/*
|
||||
|
||||
# NetBeans
|
||||
nbproject/*
|
||||
@@ -88,3 +81,16 @@ src/memfile_test
|
||||
src/json_test
|
||||
src/message_test
|
||||
src/kword_test
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/tags
|
||||
|
||||
# Generated by "make shadow". The directory names could be anything but we
|
||||
# restrict them to shadow (the default) or shadow-*
|
||||
src/shadow
|
||||
src/shadow-*
|
||||
src/runtime
|
||||
src/pixmaps
|
||||
|
||||
# other possible files build by tools
|
||||
src/cscope.out
|
||||
|
||||
98
.hgignore
Normal file
98
.hgignore
Normal file
@@ -0,0 +1,98 @@
|
||||
syntax: glob
|
||||
|
||||
# Unixen: object and executable files.
|
||||
*.o
|
||||
src/vim
|
||||
src/xxd/xxd
|
||||
src/auto/if_perl.c
|
||||
src/auto/gui_gtk_gresources.c
|
||||
src/auto/gui_gtk_gresources.h
|
||||
src/objects/.dirstamp
|
||||
src/objects
|
||||
src/tags
|
||||
|
||||
# We do need src/auto/configure.
|
||||
src/auto/config.cache
|
||||
src/auto/config.h
|
||||
src/auto/config.log
|
||||
src/auto/config.mk
|
||||
src/auto/config.status
|
||||
src/auto/osdef.h
|
||||
src/auto/link.log
|
||||
src/auto/link.sed
|
||||
src/auto/pathdef.c
|
||||
|
||||
# Windows
|
||||
*.exe
|
||||
*.idb
|
||||
*.manifest
|
||||
*.exp
|
||||
*.map
|
||||
*.obj
|
||||
*.pdb
|
||||
*.ilk
|
||||
*.sln
|
||||
*.suo
|
||||
*.res
|
||||
*.RES
|
||||
vim*.dll
|
||||
vim*.lib
|
||||
src/dobj*/pathdef.c
|
||||
src/gobj*/pathdef.c
|
||||
src/obj*/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
nsis/icons/*
|
||||
|
||||
# NetBeans
|
||||
nbproject/*
|
||||
|
||||
# Mac OSX
|
||||
src/xxd/xxd.dSYM
|
||||
|
||||
# All platforms
|
||||
*.rej
|
||||
*.orig
|
||||
*.mo
|
||||
*.swp
|
||||
*~
|
||||
*.pyc
|
||||
*.log
|
||||
src/po/vim.pot
|
||||
|
||||
# Generated by "make test"
|
||||
src/po/*.ck
|
||||
src/po/*.desktop
|
||||
src/testdir/mbyte.vim
|
||||
src/testdir/mzscheme.vim
|
||||
src/testdir/lua.vim
|
||||
src/testdir/small.vim
|
||||
src/testdir/tiny.vim
|
||||
src/testdir/test*.out
|
||||
src/testdir/test*.failed
|
||||
src/testdir/test.log
|
||||
src/testdir/dostmp/*
|
||||
src/testdir/messages
|
||||
src/testdir/viminfo
|
||||
src/testdir/opt_test.vim
|
||||
runtime/indent/testdir/*.out
|
||||
src/memfile_test
|
||||
src/json_test
|
||||
src/message_test
|
||||
src/kword_test
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/tags
|
||||
|
||||
# Generated by "make shadow". The directory names could be anything but we
|
||||
# restrict them to shadow (the default) or shadow-*
|
||||
src/shadow
|
||||
src/shadow-*
|
||||
src/runtime
|
||||
src/pixmaps
|
||||
|
||||
# other possible files build by tools
|
||||
src/cscope.out
|
||||
333
.travis.yml
333
.travis.yml
@@ -1,135 +1,120 @@
|
||||
language: c
|
||||
dist: trusty
|
||||
|
||||
os:
|
||||
- osx
|
||||
- linux
|
||||
anchors:
|
||||
envs:
|
||||
- &tiny-nogui
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &tiny
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &small
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &normal
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
|
||||
- &linux-huge
|
||||
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
- &osx-huge # macOS build
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
- &unittests
|
||||
BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
- &asan # ASAN build
|
||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
linux: &linux
|
||||
os: linux
|
||||
dist: trusty
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
# Need msgfmt 0.19.8 to be able to generate .desktop files
|
||||
- sourceline: 'ppa:ricotz/toolchain'
|
||||
packages:
|
||||
- autoconf
|
||||
- clang
|
||||
- lcov
|
||||
- gettext
|
||||
- libcanberra-dev
|
||||
- libperl-dev
|
||||
- python-dev
|
||||
- python3-dev
|
||||
- liblua5.2-dev
|
||||
- lua5.2
|
||||
- ruby-dev
|
||||
- tcl-dev
|
||||
- cscope
|
||||
- libgtk2.0-dev
|
||||
- desktop-file-utils
|
||||
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 [[ "$(which python3)" =~ ^/opt/python/ ]]; then
|
||||
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/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
|
||||
# Use llvm-cov instead of gcov when compiler is clang.
|
||||
- |
|
||||
if [[ "${CC}" = "clang" ]]; then
|
||||
ln -sf "$(which llvm-cov)" /home/travis/bin/gcov
|
||||
fi
|
||||
before_script:
|
||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
||||
- export DISPLAY=:99.0
|
||||
- sh -e /etc/init.d/xvfb start && sleep 3
|
||||
- sudo modprobe snd-dummy
|
||||
- sudo usermod -a -G audio $USER
|
||||
- do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||
|
||||
env:
|
||||
- &tiny-nogui
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &tiny
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &asan # 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" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
- &linux-huge
|
||||
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
- &unittests
|
||||
BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
- &normal
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
|
||||
- &small
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &osx-huge # Mac OSX build
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
osx: &osx
|
||||
os: osx
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
- lua
|
||||
update: true
|
||||
cache:
|
||||
directories:
|
||||
- /usr/local/Homebrew/Library/Homebrew/vendor/
|
||||
- /usr/local/Homebrew/Library/Taps/
|
||||
before_install:
|
||||
- rvm reset
|
||||
# Lua is not installed on Travis OSX
|
||||
- export LUA_PREFIX=/usr/local
|
||||
before_script:
|
||||
- do_test() { "$@"; }
|
||||
|
||||
coverage: &coverage
|
||||
- ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR
|
||||
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
|
||||
|
||||
asan_symbolize: &asan_symbolize
|
||||
- |
|
||||
while read log; do
|
||||
asan_symbolize < "${log}"
|
||||
done < <(find . -type f -name 'asan.*' -size +0)
|
||||
|
||||
sudo: false
|
||||
|
||||
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
|
||||
# exclude some builds on mac os x and linux
|
||||
# on mac os x "tiny" is always without GUI
|
||||
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
|
||||
matrix:
|
||||
exclude:
|
||||
- os: osx
|
||||
env: *tiny
|
||||
- os: osx
|
||||
env: *normal
|
||||
- os: osx
|
||||
env: *unittests
|
||||
- os: osx
|
||||
env: *small
|
||||
- os: osx
|
||||
env: *linux-huge
|
||||
- os: osx
|
||||
env: *asan
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: *asan
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: *unittests
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: *small
|
||||
- os: linux
|
||||
env: *osx-huge
|
||||
|
||||
branches:
|
||||
except:
|
||||
- /^v[0-9]/
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
# Need msgfmt 0.19.8 to be able to generate .desktop files
|
||||
- sourceline: 'ppa:ricotz/toolchain'
|
||||
packages:
|
||||
- autoconf
|
||||
- clang
|
||||
- lcov
|
||||
- gettext
|
||||
- libperl-dev
|
||||
- python-dev
|
||||
- python3-dev
|
||||
- liblua5.2-dev
|
||||
- lua5.2
|
||||
- ruby-dev
|
||||
- tcl-dev
|
||||
- cscope
|
||||
- libgtk2.0-dev
|
||||
homebrew:
|
||||
packages:
|
||||
- lua
|
||||
update: true
|
||||
|
||||
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)" =~ ^/opt/python/ ]]; then
|
||||
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/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
|
||||
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
|
||||
|
||||
before_script:
|
||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
||||
- |
|
||||
if [[ "${TRAVIS_OS_NAME}" = "linux" ]]; then
|
||||
export DISPLAY=:99.0
|
||||
sh -e /etc/init.d/xvfb start && sleep 3
|
||||
fi
|
||||
|
||||
script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- set -o errexit
|
||||
- echo -e "\\033[33;1mConfiguring Vim\\033[0m" && echo -en "travis_fold:start:configure\\r\\033[0K"
|
||||
- |
|
||||
if [[ "${CHECK_AUTOCONF}" = "yes" ]] && [[ "${CC}" = "gcc" ]]; then
|
||||
make -C src autoconf
|
||||
@@ -138,13 +123,17 @@ script:
|
||||
if [[ -n "${SHADOWOPT}" ]]; then
|
||||
make -C src shadow
|
||||
fi
|
||||
# "./configure" changes its working directory into "$SRCDIR".
|
||||
- ./configure --with-features=${FEATURES} ${CONFOPT} --enable-fail-if-missing
|
||||
- echo -en "travis_fold:end:configure\\r\\033[0K"
|
||||
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
|
||||
- |
|
||||
(
|
||||
cd "${SRCDIR}" \
|
||||
&& ./configure --with-features=${FEATURES} ${CONFOPT} --enable-fail-if-missing
|
||||
) && if [[ "${BUILD}" = "yes" ]]; then
|
||||
if [[ "${BUILD}" = "yes" ]]; then
|
||||
make ${SHADOWOPT} -j${NPROC}
|
||||
fi
|
||||
- echo -en "travis_fold:end:build\\r\\033[0K"
|
||||
- set +o errexit
|
||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||
# Show Vim version and also if_xx versions.
|
||||
- |
|
||||
if [[ "${BUILD}" = "yes" ]]; then
|
||||
@@ -153,23 +142,87 @@ script:
|
||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null
|
||||
cat if_ver.txt
|
||||
fi
|
||||
- make ${SHADOWOPT} ${TEST}
|
||||
- |
|
||||
if [[ -n "${ASAN_OPTIONS}" ]]; then
|
||||
while read log; do
|
||||
asan_symbolize < "${log}"
|
||||
done < <(find . -type f -name 'asan.*' -size +0)
|
||||
[[ -z "${log}" ]] # exit 1 if there are ASAN logs
|
||||
fi
|
||||
- do_test make ${SHADOWOPT} ${TEST}
|
||||
- echo -en "travis_fold:end:test\\r\\033[0K"
|
||||
|
||||
after_success:
|
||||
- |
|
||||
if [[ "${COVERAGE}" = "yes" ]]; then
|
||||
~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR
|
||||
fi
|
||||
- |
|
||||
if [[ "${COVERAGE}" = "yes" ]]; then
|
||||
(cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
|
||||
fi
|
||||
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
|
||||
# exclude some builds on mac os x and linux
|
||||
# on mac os x "tiny" is always without GUI
|
||||
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
|
||||
matrix:
|
||||
include:
|
||||
- <<: *osx
|
||||
name: tiny-nogui/clang
|
||||
compiler: clang
|
||||
env: *tiny-nogui
|
||||
- <<: *osx
|
||||
name: tiny-nogui/gcc
|
||||
compiler: gcc
|
||||
env: *tiny-nogui
|
||||
- <<: *osx
|
||||
name: huge/clang
|
||||
compiler: clang
|
||||
env: *osx-huge
|
||||
- <<: *osx
|
||||
name: huge/gcc
|
||||
compiler: gcc
|
||||
env: *osx-huge
|
||||
- <<: *linux
|
||||
name: tiny-nogui/clang
|
||||
compiler: clang
|
||||
env: *tiny-nogui
|
||||
- <<: *linux
|
||||
name: tiny-nogui/gcc
|
||||
compiler: gcc
|
||||
env: *tiny-nogui
|
||||
- <<: *linux
|
||||
name: tiny/clang
|
||||
compiler: clang
|
||||
env: *tiny
|
||||
- <<: *linux
|
||||
name: tiny/gcc
|
||||
compiler: gcc
|
||||
env: *tiny
|
||||
- <<: *linux
|
||||
name: small/gcc
|
||||
compiler: gcc
|
||||
env: *small
|
||||
- <<: *linux
|
||||
name: normal/clang
|
||||
compiler: clang
|
||||
env: *normal
|
||||
- <<: *linux
|
||||
name: normal/gcc
|
||||
compiler: gcc
|
||||
env: *normal
|
||||
- <<: *linux
|
||||
name: huge+coverage/clang
|
||||
compiler: clang
|
||||
env: *linux-huge
|
||||
after_success: *coverage
|
||||
- <<: *linux
|
||||
name: huge+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
after_success: *coverage
|
||||
- <<: *linux
|
||||
name: unittests+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *unittests
|
||||
after_success: *coverage
|
||||
- <<: *linux # ASAN
|
||||
name: huge+asan/gcc
|
||||
compiler: gcc
|
||||
env:
|
||||
- *linux-huge
|
||||
- *asan
|
||||
after_failure: *asan_symbolize
|
||||
- <<: *linux
|
||||
name: huge-testgui+coverage/gcc
|
||||
compiler: gcc
|
||||
env:
|
||||
- *linux-huge
|
||||
- TEST="-C src testgui"
|
||||
after_success: *coverage
|
||||
|
||||
# vim:set sts=2 sw=2 tw=0 et:
|
||||
|
||||
16
Filelist
16
Filelist
@@ -3,6 +3,7 @@
|
||||
|
||||
# source files for all source archives
|
||||
SRC_ALL = \
|
||||
.gitignore \
|
||||
.hgignore \
|
||||
.lgtm.yml \
|
||||
.travis.yml \
|
||||
@@ -19,6 +20,7 @@ SRC_ALL = \
|
||||
src/blob.c \
|
||||
src/blowfish.c \
|
||||
src/buffer.c \
|
||||
src/change.c \
|
||||
src/channel.c \
|
||||
src/charset.c \
|
||||
src/crypt.c \
|
||||
@@ -77,6 +79,7 @@ SRC_ALL = \
|
||||
src/option.c \
|
||||
src/option.h \
|
||||
src/popupmnu.c \
|
||||
src/popupwin.c \
|
||||
src/quickfix.c \
|
||||
src/regexp.c \
|
||||
src/regexp_nfa.c \
|
||||
@@ -85,6 +88,7 @@ SRC_ALL = \
|
||||
src/search.c \
|
||||
src/sha256.c \
|
||||
src/sign.c \
|
||||
src/sound.c \
|
||||
src/spell.c \
|
||||
src/spell.h \
|
||||
src/spellfile.c \
|
||||
@@ -115,9 +119,12 @@ SRC_ALL = \
|
||||
src/testdir/lsan-suppress.txt \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/summarize.vim \
|
||||
src/testdir/check.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/screendump.vim \
|
||||
src/testdir/view_util.vim \
|
||||
src/testdir/term_util.vim \
|
||||
src/testdir/setup.vim \
|
||||
src/testdir/gui_init.vim \
|
||||
src/testdir/setup_gui.vim \
|
||||
@@ -146,6 +153,8 @@ SRC_ALL = \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/if_ver*.vim \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
src/proto.h \
|
||||
src/protodef.h \
|
||||
src/proto/arabic.pro \
|
||||
@@ -154,6 +163,7 @@ SRC_ALL = \
|
||||
src/proto/blob.pro \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
src/proto/change.pro \
|
||||
src/proto/channel.pro \
|
||||
src/proto/charset.pro \
|
||||
src/proto/crypt.pro \
|
||||
@@ -197,12 +207,14 @@ SRC_ALL = \
|
||||
src/proto/ops.pro \
|
||||
src/proto/option.pro \
|
||||
src/proto/popupmnu.pro \
|
||||
src/proto/popupwin.pro \
|
||||
src/proto/quickfix.pro \
|
||||
src/proto/regexp.pro \
|
||||
src/proto/screen.pro \
|
||||
src/proto/search.pro \
|
||||
src/proto/sha256.pro \
|
||||
src/proto/sign.pro \
|
||||
src/proto/sound.pro \
|
||||
src/proto/spell.pro \
|
||||
src/proto/spellfile.pro \
|
||||
src/proto/syntax.pro \
|
||||
@@ -420,11 +432,8 @@ SRC_DOS = \
|
||||
src/GvimExt/uninst.bat \
|
||||
README_srcdos.txt \
|
||||
src/INSTALLpc.txt \
|
||||
src/Make_bc5.mak \
|
||||
src/Make_cyg.mak \
|
||||
src/Make_cyg_ming.mak \
|
||||
src/Make_ivc.mak \
|
||||
src/Make_dvc.mak \
|
||||
src/Make_ming.mak \
|
||||
src/Make_mvc.mak \
|
||||
tools/rename.bat \
|
||||
@@ -475,7 +484,6 @@ SRC_DOS = \
|
||||
src/xpm_w32.c \
|
||||
src/xpm_w32.h \
|
||||
src/tee/Make_mvc.mak \
|
||||
src/xxd/Make_bc5.mak \
|
||||
src/xxd/Make_ming.mak \
|
||||
src/xxd/Make_mvc.mak \
|
||||
nsis/gvim.nsi \
|
||||
|
||||
2
configure
vendored
2
configure
vendored
@@ -3,4 +3,4 @@
|
||||
# This is just a stub for the Unix configure script, to provide support for
|
||||
# doing "./configure" in the top Vim directory.
|
||||
|
||||
cd src && exec ./configure "$@"
|
||||
cd "${SRCDIR:-src}" && exec ./configure "$@"
|
||||
|
||||
@@ -47,6 +47,11 @@ Unicode true
|
||||
|
||||
!include gvim_version.nsh # for version number
|
||||
|
||||
# Definition of Patch for Vim
|
||||
!ifndef PATCHLEVEL
|
||||
!define PATCHLEVEL 0
|
||||
!endif
|
||||
|
||||
# ----------- No configurable settings below this line -----------
|
||||
|
||||
!include "Library.nsh" # For DLL install
|
||||
@@ -173,6 +178,16 @@ Page custom SetCustom ValidateCustom
|
||||
!include "lang\tradchinese.nsi"
|
||||
!endif
|
||||
|
||||
##########################################################
|
||||
# Version resources
|
||||
|
||||
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Vim"
|
||||
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Vim Developers"
|
||||
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Vim"
|
||||
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (C) 1996"
|
||||
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Vi Improved - A Text Editor"
|
||||
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VER_MAJOR}.${VER_MINOR}.${PATCHLEVEL}.0"
|
||||
VIProductVersion "${VER_MAJOR}.${VER_MINOR}.${PATCHLEVEL}.0"
|
||||
|
||||
# Global variables
|
||||
Var vim_dialog
|
||||
|
||||
@@ -45,37 +45,37 @@ LangString str_type_full ${LANG_SIMPCHINESE} \
|
||||
LangString str_section_old_ver ${LANG_SIMPCHINESE} \
|
||||
"卸载旧版本"
|
||||
LangString str_desc_old_ver ${LANG_SIMPCHINESE} \
|
||||
"卸载系统上旧版本的 Vim。"
|
||||
"卸载系统上已存在的 Vim 版本"
|
||||
|
||||
LangString str_section_exe ${LANG_SIMPCHINESE} \
|
||||
"安装 Vim 图形界面"
|
||||
LangString str_desc_exe ${LANG_SIMPCHINESE} \
|
||||
"安装 Vim 图形界面及脚本。此为必选安装。"
|
||||
"安装 Vim 图形界面及运行时文件。此项为必选。"
|
||||
|
||||
LangString str_section_console ${LANG_SIMPCHINESE} \
|
||||
"安装 Vim 命令行程序"
|
||||
"安装 Vim 控制台版本"
|
||||
LangString str_desc_console ${LANG_SIMPCHINESE} \
|
||||
"安装 Vim 命令行程序 (vim.exe)。该程序在命令行窗口中运行。"
|
||||
"安装 Vim 的控制台版本(vim.exe)。"
|
||||
|
||||
LangString str_section_batch ${LANG_SIMPCHINESE} \
|
||||
"安装批处理文件"
|
||||
LangString str_desc_batch ${LANG_SIMPCHINESE} \
|
||||
"为 Vim 的各种变体创建批处理程序,以便在命令行下运行 Vim。"
|
||||
"为 Vim 的各种变体创建批处理文件,以便在命令行下运行 Vim。"
|
||||
|
||||
LangString str_group_icons ${LANG_SIMPCHINESE} \
|
||||
"创建 Vim 图标"
|
||||
"创建图标"
|
||||
LangString str_desc_icons ${LANG_SIMPCHINESE} \
|
||||
"为 Vim 创建若干图标,以方便使用 Vim。"
|
||||
|
||||
LangString str_section_desktop ${LANG_SIMPCHINESE} \
|
||||
"在桌面上"
|
||||
"桌面图标"
|
||||
LangString str_desc_desktop ${LANG_SIMPCHINESE} \
|
||||
"在桌面上为 Vim 创建若干图标,以方便启动 Vim。"
|
||||
"创建 Vim 的桌面快捷方式图标。"
|
||||
|
||||
LangString str_section_start_menu ${LANG_SIMPCHINESE} \
|
||||
"在启动菜单的程序菜单下"
|
||||
"「开始」菜单程序组"
|
||||
LangString str_desc_start_menu ${LANG_SIMPCHINESE} \
|
||||
"在启动菜单的程序菜单下添加 Vim 组。适用于 Windows 95 及以上版本。"
|
||||
"在开始菜单中添加 Vim 程序组(适用于 Windows 95 及以上版本)"
|
||||
|
||||
#LangString str_section_quick_launch ${LANG_SIMPCHINESE} \
|
||||
# "在快速启动启动栏中"
|
||||
@@ -83,9 +83,9 @@ LangString str_desc_start_menu ${LANG_SIMPCHINESE} \
|
||||
# "在快速启动栏中添加 Vim 图标。"
|
||||
|
||||
LangString str_section_edit_with ${LANG_SIMPCHINESE} \
|
||||
"安装快捷菜单"
|
||||
"添加到快捷菜单"
|
||||
LangString str_desc_edit_with ${LANG_SIMPCHINESE} \
|
||||
"将 Vim 添加到“打开方式”快捷菜单中。"
|
||||
"将“用 Vim 编辑”添加到快捷菜单中。"
|
||||
|
||||
#LangString str_section_edit_with32 ${LANG_SIMPCHINESE} \
|
||||
# "32 位版本"
|
||||
@@ -98,10 +98,10 @@ LangString str_desc_edit_with ${LANG_SIMPCHINESE} \
|
||||
# "将 Vim 添加到 64 位程序的“打开方式”快捷菜单中。"
|
||||
|
||||
LangString str_section_vim_rc ${LANG_SIMPCHINESE} \
|
||||
"创建缺省配置文件"
|
||||
"创建默认配置文件"
|
||||
LangString str_desc_vim_rc ${LANG_SIMPCHINESE} \
|
||||
"在安装目录下生成缺省的 Vim 配置文件(_vimrc)。\
|
||||
如果该文件已经存在,则略过此项。"
|
||||
"在安装目录下生成默认的 Vim 配置文件(_vimrc)。\
|
||||
如果该文件已经存在,则跳过该项。"
|
||||
|
||||
LangString str_group_plugin ${LANG_SIMPCHINESE} \
|
||||
"创建插件目录"
|
||||
@@ -121,9 +121,9 @@ LangString str_desc_plugin_vim ${LANG_SIMPCHINESE} \
|
||||
该目录下的扩展插件。"
|
||||
|
||||
LangString str_section_vis_vim ${LANG_SIMPCHINESE} \
|
||||
"安装 VisVim 插件"
|
||||
"VisVim 插件"
|
||||
LangString str_desc_vis_vim ${LANG_SIMPCHINESE} \
|
||||
"安装用于与微软 Microsoft Visual Studio 进行集成的 VisVim 插件。"
|
||||
"安装与 Visual Studio 集成的 VisVim 插件。"
|
||||
|
||||
LangString str_section_nls ${LANG_SIMPCHINESE} \
|
||||
"安装多语言支持"
|
||||
@@ -153,12 +153,12 @@ LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \
|
||||
LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
|
||||
"公共插件目录"
|
||||
LangString str_desc_rm_plugin_vim ${LANG_SIMPCHINESE} \
|
||||
"Remove the plugin directories from Vim install directory."
|
||||
"从 Vim 安装目录下移除插件目录。"
|
||||
|
||||
LangString str_unsection_rootdir ${LANG_SIMPCHINESE} \
|
||||
"Remove the Vim root directory"
|
||||
"移除 Vim 主目录"
|
||||
LangString str_desc_rm_rootdir ${LANG_SIMPCHINESE} \
|
||||
"Remove the Vim root directory. It contains your Vim configuration files!"
|
||||
"移除 Vim 的主目录,该目录包含您的配置文件!"
|
||||
|
||||
|
||||
##############################################################################
|
||||
@@ -225,13 +225,13 @@ LangString str_msg_rm_exe_fail ${LANG_SIMPCHINESE} \
|
||||
# 该目录下仍有其他文件。"
|
||||
|
||||
LangString str_msg_uninstalling ${LANG_SIMPCHINESE} \
|
||||
"Uninstalling the old version..."
|
||||
"正在卸载旧版本..."
|
||||
|
||||
LangString str_msg_registering ${LANG_SIMPCHINESE} \
|
||||
"Registering..."
|
||||
"正在注册..."
|
||||
|
||||
LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
|
||||
"Unregistering..."
|
||||
"正在取消注册..."
|
||||
|
||||
|
||||
##############################################################################
|
||||
@@ -239,12 +239,12 @@ LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
|
||||
##############################################################################
|
||||
|
||||
LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \
|
||||
"Choose _vimrc settings"
|
||||
"设置 _vimrc"
|
||||
LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
|
||||
"Choose the settings for enhancement, keyboard and mouse."
|
||||
"选择键盘、鼠标和增强选项。"
|
||||
|
||||
LangString str_msg_compat_title ${LANG_SIMPCHINESE} \
|
||||
" Vi / Vim behavior "
|
||||
"Vi / Vim 行为"
|
||||
LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \
|
||||
"&Compatibility and enhancements"
|
||||
LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \
|
||||
@@ -257,7 +257,7 @@ LangString str_msg_compat_all ${LANG_SIMPCHINESE} \
|
||||
"Vim with all enhancements (load vimrc_example.vim) (Default)"
|
||||
|
||||
LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \
|
||||
" Mappings "
|
||||
"键盘映射"
|
||||
LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \
|
||||
"&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
|
||||
LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
|
||||
@@ -266,7 +266,7 @@ LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
|
||||
"Remap a few keys"
|
||||
|
||||
LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \
|
||||
" Mouse "
|
||||
"鼠标"
|
||||
LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \
|
||||
"&Behavior of right and left buttons"
|
||||
LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
" This script tests a color scheme for some errors. Load the scheme and source
|
||||
" this script. e.g. :e colors/desert.vim | :so check_colors.vim
|
||||
" Will output possible errors.
|
||||
" This script tests a color scheme for some errors and lists potential errors.
|
||||
" Load the scheme and source this script, like this:
|
||||
" :edit colors/desert.vim | :so colors/tools/check_colors.vim
|
||||
|
||||
let s:save_cpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
func! Test_check_colors()
|
||||
let l:savedview = winsaveview()
|
||||
call cursor(1,1)
|
||||
let err={}
|
||||
|
||||
@@ -17,11 +18,69 @@ func! Test_check_colors()
|
||||
endif
|
||||
|
||||
" 2) Check for some well-defined highlighting groups
|
||||
" Some items, check several groups, e.g. Diff, Spell
|
||||
let hi_groups = ['ColorColumn', 'Diff', 'ErrorMsg', 'Folded',
|
||||
\ 'FoldColumn', 'IncSearch', 'LineNr', 'ModeMsg', 'MoreMsg', 'NonText',
|
||||
\ 'Normal', 'Pmenu', 'Todo', 'Search', 'Spell', 'StatusLine', 'TabLine',
|
||||
\ 'Title', 'Visual', 'WarningMsg', 'WildMenu']
|
||||
let hi_groups = [
|
||||
\ 'ColorColumn',
|
||||
\ 'Comment',
|
||||
\ 'Conceal',
|
||||
\ 'Constant',
|
||||
\ 'Cursor',
|
||||
\ 'CursorColumn',
|
||||
\ 'CursorLine',
|
||||
\ 'CursorLineNr',
|
||||
\ 'DiffAdd',
|
||||
\ 'DiffChange',
|
||||
\ 'DiffDelete',
|
||||
\ 'DiffText',
|
||||
\ 'Directory',
|
||||
\ 'EndOfBuffer',
|
||||
\ 'Error',
|
||||
\ 'ErrorMsg',
|
||||
\ 'FoldColumn',
|
||||
\ 'Folded',
|
||||
\ 'Identifier',
|
||||
\ 'Ignore',
|
||||
\ 'IncSearch',
|
||||
\ 'LineNr',
|
||||
\ 'MatchParen',
|
||||
\ 'ModeMsg',
|
||||
\ 'MoreMsg',
|
||||
\ 'NonText',
|
||||
\ 'Normal',
|
||||
\ 'Pmenu',
|
||||
\ 'PmenuSbar',
|
||||
\ 'PmenuSel',
|
||||
\ 'PmenuThumb',
|
||||
\ 'PreProc',
|
||||
\ 'Question',
|
||||
\ 'QuickFixLine',
|
||||
\ 'Search',
|
||||
\ 'SignColumn',
|
||||
\ 'Special',
|
||||
\ 'SpecialKey',
|
||||
\ 'SpellBad',
|
||||
\ 'SpellCap',
|
||||
\ 'SpellLocal',
|
||||
\ 'SpellRare',
|
||||
\ 'Statement',
|
||||
\ 'StatusLine',
|
||||
\ 'StatusLineNC',
|
||||
\ 'StatusLineTerm',
|
||||
\ 'StatusLineTermNC',
|
||||
\ 'TabLine',
|
||||
\ 'TabLineFill',
|
||||
\ 'TabLineSel',
|
||||
\ 'Title',
|
||||
\ 'Todo',
|
||||
\ 'ToolbarButton',
|
||||
\ 'ToolbarLine',
|
||||
\ 'Type',
|
||||
\ 'Underlined',
|
||||
\ 'VertSplit',
|
||||
\ 'Visual',
|
||||
\ 'VisualNOS',
|
||||
\ 'WarningMsg',
|
||||
\ 'WildMenu',
|
||||
\ ]
|
||||
let groups={}
|
||||
for group in hi_groups
|
||||
if search('\c@suppress\s\+'.group, 'cnW')
|
||||
@@ -30,6 +89,9 @@ func! Test_check_colors()
|
||||
let groups[group] = 'Ignoring '.group
|
||||
continue
|
||||
endif
|
||||
if search('hi\%[ghlight]!\= \+link \+'.group, 'cnW') " Linked group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group, 'cnW')
|
||||
let groups[group] = 'No highlight definition for '.group
|
||||
continue
|
||||
@@ -43,12 +105,15 @@ func! Test_check_colors()
|
||||
let groups[group] = 'Missing bg terminal color for '.group
|
||||
continue
|
||||
endif
|
||||
call search('hi\%[ghlight] \+'.group, 'cW')
|
||||
" only check in the current line
|
||||
if !search('guifg', 'cnW', line('.')) || !search('ctermfg', 'cnW', line('.'))
|
||||
" do not check for background colors, they could be intentionally left out
|
||||
let groups[group] = 'Missing fg definition for '.group
|
||||
if !search('hi\%[ghlight] \+'.group. '.*guifg=', 'cnW')
|
||||
let groups[group] = 'Missing guifg definition for '.group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group. '.*ctermfg=', 'cnW')
|
||||
let groups[group] = 'Missing ctermfg definition for '.group
|
||||
continue
|
||||
endif
|
||||
" do not check for background colors, they could be intentionally left out
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
let err['highlight'] = groups
|
||||
@@ -91,15 +156,43 @@ func! Test_check_colors()
|
||||
endif
|
||||
|
||||
" 7) Does not define filetype specific groups like vimCommand, htmlTag,
|
||||
let hi_groups = ['vim', 'html', 'python', 'sh', 'ruby']
|
||||
let hi_groups = filter(getcompletion('', 'filetype'), { _,v -> v !~# '\%[no]syn\%(color\|load\|tax\)' })
|
||||
let ft_groups = []
|
||||
" let group = '\%('.join(hi_groups, '\|').'\)' " More efficient than a for loop, but less informative
|
||||
for group in hi_groups
|
||||
let pat='\Chi\%[ghlight]\s*\zs'.group.'\w\+\>'
|
||||
let pat='\Chi\%[ghlight]!\= *\%[link] \+\zs'.group.'\w\+\>\ze \+.' " Skips `hi clear`
|
||||
if search(pat, 'cW')
|
||||
call add(ft_groups, matchstr(getline('.'), pat))
|
||||
endif
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
if !empty(ft_groups)
|
||||
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . join(uniq(sort(ft_groups)))
|
||||
endif
|
||||
|
||||
" 8) Were debugPC and debugBreakpoint defined?
|
||||
for group in ['debugPC', 'debugBreakpoint']
|
||||
let pat='\Chi\%[ghlight]!\= *\%[link] \+\zs'.group.'\>'
|
||||
if search(pat, 'cnW')
|
||||
let line = search(pat, 'cW')
|
||||
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
|
||||
endif
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
|
||||
" 9) Normal should be defined first, not use reverse, fg or bg
|
||||
call cursor(1,1)
|
||||
let pat = 'hi\%[light] \+\%(link\|clear\)\@!\w\+\>'
|
||||
call search(pat, 'cW') " Look for the first hi def, skipping `hi link` and `hi clear`
|
||||
if getline('.') !~# '\m\<Normal\>'
|
||||
let err['highlight']['Normal'] = 'Should be defined first'
|
||||
elseif getline('.') =~# '\m\%(=\%(fg\|bg\)\)'
|
||||
let err['highlight']['Normal'] = "Should not use 'fg' or 'bg'"
|
||||
elseif getline('.') =~# '\m=\%(inv\|rev\)erse'
|
||||
let err['highlight']['Normal'] = 'Should not use reverse mode'
|
||||
endif
|
||||
|
||||
call winrestview(l:savedview)
|
||||
let g:err = err
|
||||
|
||||
" print Result
|
||||
@@ -107,11 +200,11 @@ func! Test_check_colors()
|
||||
endfu
|
||||
|
||||
fu! Result(err)
|
||||
let do_roups = 0
|
||||
let do_groups = 0
|
||||
echohl Title|echomsg "---------------"|echohl Normal
|
||||
for key in sort(keys(a:err))
|
||||
if key is# 'highlight'
|
||||
let do_groups = 1
|
||||
let do_groups = !empty(a:err[key])
|
||||
continue
|
||||
else
|
||||
if a:err[key] !~ 'OK'
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
" Vim Compiler File
|
||||
" Compiler: ocaml
|
||||
" Maintainer: See ftplugin/ocaml.vim (?)
|
||||
" Last Change: June 2013 by Marc Weber
|
||||
" Compiler: ocaml
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2017 Nov 26 - Improved error format (Markus Mottl)
|
||||
" 2013 Aug 27 - Added a new OCaml error format (Markus Mottl)
|
||||
" 2013 Jun 30 - Initial version (Marc Weber)
|
||||
"
|
||||
" Marc Weber's comments:
|
||||
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
|
||||
@@ -17,7 +21,6 @@
|
||||
"
|
||||
" So having it here makes people opt-in
|
||||
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
@@ -28,6 +31,7 @@ set cpo&vim
|
||||
|
||||
CompilerSet errorformat =
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#,
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
|
||||
\%+EReference\ to\ unbound\ regexp\ name\ %m,
|
||||
\%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
|
||||
@@ -38,6 +42,12 @@ CompilerSet errorformat =
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ '%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ '%f',
|
||||
\%D%*\\a:\ Entering\ directory\ '%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ '%f',
|
||||
\%DEntering\ directory\ '%f',
|
||||
\%XLeaving\ directory\ '%f',
|
||||
\%DMaking\ %*\\a\ in\ %f
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -83,6 +83,7 @@ DOCS = \
|
||||
pi_tar.txt \
|
||||
pi_vimball.txt \
|
||||
pi_zip.txt \
|
||||
popup.txt \
|
||||
print.txt \
|
||||
quickfix.txt \
|
||||
quickref.txt \
|
||||
@@ -220,6 +221,7 @@ HTMLS = \
|
||||
pi_tar.html \
|
||||
pi_vimball.html \
|
||||
pi_zip.html \
|
||||
popup.html \
|
||||
print.html \
|
||||
quickfix.html \
|
||||
quickref.html \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Jun 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -407,8 +407,8 @@ BufFilePost After changing the name of the current buffer
|
||||
BufFilePre Before changing the name of the current buffer
|
||||
with the ":file" or ":saveas" command.
|
||||
*BufHidden*
|
||||
BufHidden Just after a buffer has become hidden. That
|
||||
is, when there are no longer windows that show
|
||||
BufHidden Just before a buffer becomes hidden. That is,
|
||||
when there are no longer windows that show
|
||||
the buffer, but the buffer is not unloaded or
|
||||
deleted. Not used for ":qa" or ":q" when
|
||||
exiting Vim.
|
||||
@@ -873,15 +873,32 @@ MenuPopup Just before showing the popup menu (under the
|
||||
*OptionSet*
|
||||
OptionSet After setting an option. The pattern is
|
||||
matched against the long option name.
|
||||
The |v:option_old| variable indicates the
|
||||
old option value, |v:option_new| variable
|
||||
indicates the newly set value, the
|
||||
|v:option_type| variable indicates whether
|
||||
it's global or local scoped and |<amatch>|
|
||||
indicates what option has been set.
|
||||
|<amatch>| indicates what option has been set.
|
||||
|
||||
Is not triggered on startup and for the 'key'
|
||||
option for obvious reasons.
|
||||
|v:option_type| indicates whether it's global
|
||||
or local scoped.
|
||||
|v:option_command| indicates what type of
|
||||
set/let command was used (follow the tag to
|
||||
see the table).
|
||||
|v:option_new| indicates the newly set value.
|
||||
|v:option_oldlocal| has the old local value.
|
||||
|v:option_oldglobal| has the old global value.
|
||||
|v:option_old| indicates the old option value.
|
||||
|
||||
|v:option_oldlocal| is only set when |:set|
|
||||
or |:setlocal| or a |modeline| was used to set
|
||||
the option. Similarly |v:option_oldglobal| is
|
||||
only set when |:set| or |:setglobal| was used.
|
||||
|
||||
Note that when setting a |global-local| string
|
||||
option with |:set|, then |v:option_old| is the
|
||||
old global value. However, for all other kinds
|
||||
of options (local string options, global-local
|
||||
number options, ...) it is the old local
|
||||
value.
|
||||
|
||||
OptionSet is not triggered on startup and for
|
||||
the 'key' option for obvious reasons.
|
||||
|
||||
Usage example: Check for the existence of the
|
||||
directory in the 'backupdir' and 'undodir'
|
||||
@@ -1365,7 +1382,7 @@ have changed autocommands, or when Vim has executed the wrong autocommands
|
||||
Note that the 'eventignore' option applies here too. Events listed in this
|
||||
option will not cause any commands to be executed.
|
||||
|
||||
*:do* *:doau* *:doautocmd* *E217*
|
||||
*:do* *:doau* *:doaut* *:doautocmd* *E217*
|
||||
:do[autocmd] [<nomodeline>] [group] {event} [fname]
|
||||
Apply the autocommands matching [fname] (default:
|
||||
current file name) for {event} to the current buffer.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*change.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -268,8 +268,6 @@ r{char} Replace the character under the cursor with {char}.
|
||||
If {char} is a <CR> or <NL>, a line break replaces the
|
||||
character. To replace with a real <CR>, use CTRL-V
|
||||
<CR>. CTRL-V <NL> replaces with a <Nul>.
|
||||
{Vi: CTRL-V <CR> still replaces with a line break,
|
||||
cannot replace something with a <CR>}
|
||||
|
||||
If {char} is CTRL-E or CTRL-Y the character from the
|
||||
line below or above is used, just like with |i_CTRL-E|
|
||||
@@ -310,11 +308,9 @@ The following commands change the case of letters. The currently active
|
||||
*~*
|
||||
~ 'notildeop' option: Switch case of the character
|
||||
under the cursor and move the cursor to the right.
|
||||
If a [count] is given, do that many characters. {Vi:
|
||||
no count}
|
||||
If a [count] is given, do that many characters.
|
||||
|
||||
~{motion} 'tildeop' option: switch case of {motion} text. {Vi:
|
||||
tilde cannot be used as an operator}
|
||||
~{motion} 'tildeop' option: switch case of {motion} text.
|
||||
|
||||
*g~*
|
||||
g~{motion} Switch case of {motion} text.
|
||||
@@ -1054,11 +1050,11 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
|
||||
*p* *put* *E353*
|
||||
["x]p Put the text [from register x] after the cursor
|
||||
[count] times. {Vi: no count}
|
||||
[count] times.
|
||||
|
||||
*P*
|
||||
["x]P Put the text [from register x] before the cursor
|
||||
[count] times. {Vi: no count}
|
||||
[count] times.
|
||||
|
||||
*<MiddleMouse>*
|
||||
["x]<MiddleMouse> Put the text from a register before the cursor [count]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*channel.txt* For Vim version 8.1. Last change: 2019 May 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -155,7 +155,10 @@ Use |ch_status()| to see if the channel could be opened.
|
||||
func MyCloseHandler(channel)
|
||||
< Vim will invoke callbacks that handle data before invoking
|
||||
close_cb, thus when this function is called no more data will
|
||||
be passed to the callbacks.
|
||||
be passed to the callbacks. However, if a callback causes Vim
|
||||
to check for messages, the close_cb may be invoked while still
|
||||
in the callback. The plugin must handle this somehow, it can
|
||||
be useful to know that no more data is coming.
|
||||
*channel-drop*
|
||||
"drop" Specifies when to drop messages:
|
||||
"auto" When there is no callback to handle a message.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*cmdline.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -27,7 +27,6 @@ Basic command line editing is explained in chapter 20 of the user manual
|
||||
Normally characters are inserted in front of the cursor position. You can
|
||||
move around in the command-line with the left and right cursor keys. With the
|
||||
<Insert> key, you can toggle between inserting and overstriking characters.
|
||||
{Vi: can only alter the last character in the line}
|
||||
|
||||
Note that if your keyboard does not have working cursor keys or any of the
|
||||
other special keys, you can use ":cnoremap" to define another key for them.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*debug.txt* For Vim version 8.1. Last change: 2017 Jul 15
|
||||
*debug.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -78,15 +78,10 @@ matches the EXE (same date).
|
||||
If you built the executable yourself with the Microsoft Visual C++ compiler,
|
||||
then the PDB was built with the EXE.
|
||||
|
||||
Alternatively, if you have the source files, you can import Make_ivc.mak into
|
||||
Visual Studio as a workspace. Then select a debug configuration, build and
|
||||
you can do all kinds of debugging (set breakpoints, watch variables, etc.).
|
||||
|
||||
If you have Visual Studio, use that instead of the VC Toolkit and WinDbg.
|
||||
|
||||
For other compilers, you should always use the corresponding debugger: TD for
|
||||
a Vim executable compiled with the Borland compiler; gdb (see above
|
||||
|debug-gcc|) for the Cygwin and MinGW compilers.
|
||||
For other compilers, you should always use the corresponding debugger: gdb
|
||||
(see above |debug-gcc|) for the Cygwin and MinGW compilers.
|
||||
|
||||
|
||||
*debug-vs2005*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*debugger.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*debugger.txt* For Vim version 8.1. Last change: 2019 May 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -87,7 +87,8 @@ This feature allows a debugger, or other external tool, to display dynamic
|
||||
information based on where the mouse is pointing. The purpose of this feature
|
||||
was to allow Sun's Visual WorkShop debugger to display expression evaluations.
|
||||
However, the feature was implemented in as general a manner as possible and
|
||||
could be used for displaying other information as well.
|
||||
could be used for displaying other information as well. The functionality is
|
||||
limited though, for advanced popups see |popup-window|.
|
||||
|
||||
The Balloon Evaluation has some settable parameters too. For Motif the font
|
||||
list and colors can be set via X resources (XmNballoonEvalFontList,
|
||||
|
||||
@@ -278,7 +278,6 @@ wait don't use as argument to a function, conflicts with types.h
|
||||
index shadows global declaration
|
||||
time shadows global declaration
|
||||
new C++ reserved keyword
|
||||
try Borland C++ doesn't like it to be used as a variable.
|
||||
|
||||
clear Mac curses.h
|
||||
echo Mac curses.h
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 8.1. Last change: 2019 May 04
|
||||
*diff.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -185,7 +185,7 @@ hidden buffers. You can use ":hide" to close a window without unloading the
|
||||
buffer. If you don't want a buffer to remain used for the diff do ":set
|
||||
nodiff" before hiding it.
|
||||
|
||||
*:dif* *:diffupdate*
|
||||
*:dif* *:diff* *:diffupdate*
|
||||
:dif[fupdate][!] Update the diff highlighting and folds.
|
||||
|
||||
Vim attempts to keep the differences updated when you make changes to the
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/* vim:set ts=4 sw=4:
|
||||
* this program makes a tags file for vim_ref.txt
|
||||
*
|
||||
* Usage: doctags vim_ref.txt vim_win.txt ... >tags
|
||||
* This program makes a tags file for help text.
|
||||
*
|
||||
* Usage: doctags *.txt ... >tags
|
||||
*
|
||||
* A tag in this context is an identifier between stars, e.g. *c_files*
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*editing.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -51,7 +51,7 @@ for editing (e.g., with ":e filename") or writing (e.g., with ":w filename"),
|
||||
the file name is added to the list. You can use the buffer list to remember
|
||||
which files you edited and to quickly switch from one file to another (e.g.,
|
||||
to copy text) with the |CTRL-^| command. First type the number of the file
|
||||
and then hit CTRL-^. {Vi: only one alternate file name is remembered}
|
||||
and then hit CTRL-^.
|
||||
|
||||
|
||||
CTRL-G or *CTRL-G* *:f* *:fi* *:file*
|
||||
@@ -197,7 +197,6 @@ If you want to keep the changed buffer without saving it, switch on the
|
||||
buffer and 'autowriteall' isn't set or the file can't
|
||||
be written.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
*:edit!* *discard*
|
||||
:e[dit]! [++opt] [+cmd]
|
||||
@@ -205,7 +204,6 @@ If you want to keep the changed buffer without saving it, switch on the
|
||||
the current buffer. This is useful if you want to
|
||||
start all over again.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
*:edit_f*
|
||||
:e[dit] [++opt] [+cmd] {file}
|
||||
@@ -214,14 +212,12 @@ If you want to keep the changed buffer without saving it, switch on the
|
||||
buffer, unless 'hidden' is set or 'autowriteall' is
|
||||
set and the file can be written.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
*:edit!_f*
|
||||
:e[dit]! [++opt] [+cmd] {file}
|
||||
Edit {file} always. Discard any changes to the
|
||||
current buffer.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
:e[dit] [++opt] [+cmd] #[count]
|
||||
Edit the [count]th buffer (as shown by |:files|).
|
||||
@@ -229,7 +225,6 @@ If you want to keep the changed buffer without saving it, switch on the
|
||||
#" doesn't work if the alternate buffer doesn't have a
|
||||
file name, while CTRL-^ still works then.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
*:ene* *:enew*
|
||||
:ene[w] Edit a new, unnamed buffer. This fails when changes
|
||||
@@ -598,7 +593,7 @@ You can use the argument list with the following commands, and with the
|
||||
expression functions |argc()| and |argv()|. These all work on the argument
|
||||
list of the current window.
|
||||
|
||||
*:ar* *:args*
|
||||
*:ar* *:arg* *:args*
|
||||
:ar[gs] Print the argument list, with the current file in
|
||||
square brackets.
|
||||
|
||||
@@ -607,14 +602,12 @@ list of the current window.
|
||||
the first one. This fails when changes have been made
|
||||
and Vim does not want to |abandon| the current buffer.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
:ar[gs]! [++opt] [+cmd] {arglist} *:args_f!*
|
||||
Define {arglist} as the new argument list and edit
|
||||
the first one. Discard any changes to the current
|
||||
buffer.
|
||||
Also see |++opt| and |+cmd|.
|
||||
{Vi: no ++opt}
|
||||
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit*
|
||||
Add {name}s to the argument list and edit it.
|
||||
@@ -693,13 +686,11 @@ list of the current window.
|
||||
:[count]n[ext] [++opt] [+cmd] *:n* *:ne* *:next* *E165* *E163*
|
||||
Edit [count] next file. This fails when changes have
|
||||
been made and Vim does not want to |abandon| the
|
||||
current buffer. Also see |++opt| and |+cmd|. {Vi: no
|
||||
count or ++opt}.
|
||||
current buffer. Also see |++opt| and |+cmd|.
|
||||
|
||||
:[count]n[ext]! [++opt] [+cmd]
|
||||
Edit [count] next file, discard any changes to the
|
||||
buffer. Also see |++opt| and |+cmd|. {Vi: no count
|
||||
or ++opt}.
|
||||
buffer. Also see |++opt| and |+cmd|.
|
||||
|
||||
:n[ext] [++opt] [+cmd] {arglist} *:next_f*
|
||||
Same as |:args_f|.
|
||||
@@ -716,18 +707,17 @@ list of the current window.
|
||||
:[count]N[ext]! [count] [++opt] [+cmd]
|
||||
Edit [count] previous file in argument list. Discard
|
||||
any changes to the buffer. Also see |++opt| and
|
||||
|+cmd|. {Vi: no count or ++opt}.
|
||||
|+cmd|.
|
||||
|
||||
:[count]prev[ious] [count] [++opt] [+cmd] *:prev* *:previous*
|
||||
Same as :Next. Also see |++opt| and |+cmd|. {Vi:
|
||||
only in some versions}
|
||||
Same as :Next. Also see |++opt| and |+cmd|.
|
||||
|
||||
*:rew* *:rewind*
|
||||
:rew[ind] [++opt] [+cmd]
|
||||
Start editing the first file in the argument list.
|
||||
This fails when changes have been made and Vim does
|
||||
not want to |abandon| the current buffer.
|
||||
Also see |++opt| and |+cmd|. {Vi: no ++opt}
|
||||
Also see |++opt| and |+cmd|.
|
||||
|
||||
:rew[ind]! [++opt] [+cmd]
|
||||
Start editing the first file in the argument list.
|
||||
@@ -1335,7 +1325,7 @@ present in 'cpoptions' and "!" is not used in the command.
|
||||
:lch[dir][!] Same as |:lcd|.
|
||||
|
||||
*:pw* *:pwd* *E187*
|
||||
:pw[d] Print the current directory name. {Vi: no pwd}
|
||||
:pw[d] Print the current directory name.
|
||||
Also see |getcwd()|.
|
||||
|
||||
So long as no |:lcd| or |:tcd| command has been used, all windows share the
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*fold.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -441,7 +441,7 @@ zk Move upwards to the end of the previous fold. A closed fold
|
||||
|
||||
EXECUTING COMMANDS ON FOLDS ~
|
||||
|
||||
:[range]foldd[oopen] {cmd} *:foldd* *:folddoopen*
|
||||
:[range]foldd[oopen] {cmd} *:foldd* *:folddo* *:folddoopen*
|
||||
Execute {cmd} on all lines that are not in a closed fold.
|
||||
When [range] is given, only these lines are used.
|
||||
Each time {cmd} is executed the cursor is positioned on the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*gui.txt* For Vim version 8.1. Last change: 2019 May 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1046,7 +1046,7 @@ GUIFONT *gui-font*
|
||||
'guifont' is the option that tells Vim what font to use. In its simplest form
|
||||
the value is just one font name. It can also be a list of font names
|
||||
separated with commas. The first valid font is used. When no valid font can
|
||||
be found you will get an error message.
|
||||
be found you will get an error message.
|
||||
|
||||
On systems where 'guifontset' is supported (X11) and 'guifontset' is not
|
||||
empty, then 'guifont' is not used. See |xfontset|.
|
||||
@@ -1112,10 +1112,9 @@ For the Win32 GUI *E244* *E245*
|
||||
cXX - character set XX. Valid charsets are: ANSI, ARABIC, BALTIC,
|
||||
CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, HANGEUL,
|
||||
HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI,
|
||||
TURKISH, VIETNAMESE ANSI and BALTIC. Normally you would use
|
||||
"cDEFAULT".
|
||||
TURKISH and VIETNAMESE. Normally you would use "cDEFAULT".
|
||||
qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED,
|
||||
NONANTIALIASED, CLEARTYPE, DEFAULT. Normally you would use
|
||||
NONANTIALIASED, CLEARTYPE and DEFAULT. Normally you would use
|
||||
"qDEFAULT".
|
||||
Some quality values are not supported in legacy OSs.
|
||||
- A '_' can be used in the place of a space, so you don't need to use
|
||||
@@ -1139,30 +1138,28 @@ substitution.
|
||||
GUIFONTWIDE *gui-fontwide*
|
||||
|
||||
When not empty, 'guifontwide' specifies a comma-separated list of fonts to be
|
||||
used for double-width characters. The first font that can be loaded is
|
||||
used.
|
||||
used for double-width characters. The first font that can be loaded is used.
|
||||
|
||||
Note: The size of these fonts must be exactly twice as wide as the one
|
||||
specified with 'guifont' and the same height. If there is a mismatch then
|
||||
the text will not be drawn correctly.
|
||||
specified with 'guifont' and the same height. If there is a mismatch then the
|
||||
text will not be drawn correctly.
|
||||
|
||||
All GUI versions but GTK+:
|
||||
|
||||
'guifontwide' is only used when 'encoding' is set to "utf-8" and
|
||||
'guifontset' is empty or invalid.
|
||||
When 'guifont' is set and a valid font is found in it and
|
||||
'guifontwide' is empty Vim will attempt to find a matching
|
||||
double-width font and set 'guifontwide' to it.
|
||||
'guifontwide' is only used when 'encoding' is set to "utf-8" and 'guifontset'
|
||||
is empty or invalid.
|
||||
When 'guifont' is set and a valid font is found in it and 'guifontwide' is
|
||||
empty Vim will attempt to find a matching double-width font and set
|
||||
'guifontwide' to it.
|
||||
|
||||
GTK+ GUI only: *guifontwide_gtk*
|
||||
|
||||
If set and valid, 'guifontwide' is always used for double width
|
||||
characters, even if 'encoding' is not set to "utf-8".
|
||||
If set and valid, 'guifontwide' is always used for double width characters,
|
||||
even if 'encoding' is not set to "utf-8".
|
||||
Vim does not attempt to find an appropriate value for 'guifontwide'
|
||||
automatically. If 'guifontwide' is empty Pango/Xft will choose the
|
||||
font for characters not available in 'guifont'. Thus you do not need
|
||||
to set 'guifontwide' at all unless you want to override the choice
|
||||
made by Pango/Xft.
|
||||
automatically. If 'guifontwide' is empty Pango/Xft will choose the font for
|
||||
characters not available in 'guifont'. Thus you do not need to set
|
||||
'guifontwide' at all unless you want to override the choice made by Pango/Xft.
|
||||
|
||||
Windows +multibyte only: *guifontwide_win_mbyte*
|
||||
|
||||
@@ -1181,7 +1178,8 @@ This section describes other features which are related to the GUI.
|
||||
get "<Modifiers-Key>".
|
||||
|
||||
- In the GUI, the modifiers SHIFT, CTRL, and ALT (or META) may be used within
|
||||
mappings of special keys and mouse events. E.g.: :map <M-LeftDrag> <LeftDrag>
|
||||
mappings of special keys and mouse events.
|
||||
E.g.: :map <M-LeftDrag> <LeftDrag>
|
||||
|
||||
- In the GUI, several normal keys may have modifiers in mappings etc, these
|
||||
are <Space>, <Tab>, <NL>, <CR>, <Esc>.
|
||||
@@ -1218,8 +1216,8 @@ http://www.lexikan.com/mincho.htm
|
||||
For the X11 GUI the external commands are executed inside the gvim window.
|
||||
See |gui-pty|.
|
||||
|
||||
WARNING: Executing an external command from the X11 GUI will not always
|
||||
work. "normal" commands like "ls", "grep" and "make" mostly work fine.
|
||||
WARNING: Executing an external command from the X11 GUI will not always work.
|
||||
"normal" commands like "ls", "grep" and "make" mostly work fine.
|
||||
Commands that require an intelligent terminal like "less" and "ispell" won't
|
||||
work. Some may even hang and need to be killed from another terminal. So be
|
||||
careful!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 8.1. Last change: 2019 Jan 17
|
||||
*help.txt* For Vim version 8.1. Last change: 2019 May 12
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -143,6 +143,7 @@ Special issues ~
|
||||
|remote.txt| using Vim as a server or client
|
||||
|term.txt| using different terminals and mice
|
||||
|terminal.txt| Terminal window support
|
||||
|popup.txt| popop window support
|
||||
|
||||
Programming language support ~
|
||||
|indent.txt| automatic indenting for C and other languages
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Apr 24
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Jun 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1241,6 +1241,7 @@ tag command action ~
|
||||
|:compiler| :comp[iler] do settings for a specific compiler
|
||||
|:continue| :con[tinue] go back to :while
|
||||
|:confirm| :conf[irm] prompt user when confirmation required
|
||||
|:const| :cons[t] create a variable as a constant
|
||||
|:copen| :cope[n] open quickfix window
|
||||
|:cprevious| :cp[revious] go to previous error
|
||||
|:cpfile| :cpf[ile] go to last error in previous file
|
||||
@@ -1714,6 +1715,7 @@ tag command action ~
|
||||
|:xmapclear| :xmapc[lear] remove all mappings for Visual mode
|
||||
|:xmap| :xm[ap] like ":map" but for Visual mode
|
||||
|:xmenu| :xme[nu] add menu for Visual mode
|
||||
|:xrestore| :xr[estore] restores the X server connection
|
||||
|:xnoremap| :xn[oremap] like ":noremap" but for Visual mode
|
||||
|:xnoremenu| :xnoreme[nu] like ":noremenu" but for Visual mode
|
||||
|:xunmap| :xu[nmap] like ":unmap" but for Visual mode
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*insert.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -59,8 +59,8 @@ CTRL-C Quit insert mode, go back to Normal mode. Do not check for
|
||||
event.
|
||||
|
||||
*i_CTRL-@*
|
||||
CTRL-@ Insert previously inserted text and stop insert. {Vi: only
|
||||
when typed as first char, only up to 128 chars}
|
||||
CTRL-@ Insert previously inserted text and stop insert.
|
||||
|
||||
*i_CTRL-A*
|
||||
CTRL-A Insert previously inserted text.
|
||||
|
||||
@@ -68,7 +68,7 @@ CTRL-A Insert previously inserted text.
|
||||
<BS> or CTRL-H Delete the character before the cursor (see |i_backspacing|
|
||||
about joining lines).
|
||||
See |:fixdel| if your <BS> key does not do what you want.
|
||||
{Vi: does not delete autoindents}
|
||||
|
||||
*i_<Del>* *i_DEL*
|
||||
<Del> Delete the character under the cursor. If the cursor is at
|
||||
the end of the line, and the 'backspace' option includes
|
||||
@@ -174,19 +174,18 @@ CTRL-R CTRL-P {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-P*
|
||||
*i_CTRL-T*
|
||||
CTRL-T Insert one shiftwidth of indent at the start of the current
|
||||
line. The indent is always rounded to a 'shiftwidth' (this is
|
||||
vi compatible). {Vi: only when in indent}
|
||||
vi compatible).
|
||||
*i_CTRL-D*
|
||||
CTRL-D Delete one shiftwidth of indent at the start of the current
|
||||
line. The indent is always rounded to a 'shiftwidth' (this is
|
||||
vi compatible). {Vi: CTRL-D works only when used after
|
||||
autoindent}
|
||||
vi compatible).
|
||||
*i_0_CTRL-D*
|
||||
0 CTRL-D Delete all indent in the current line. {Vi: CTRL-D works
|
||||
only when used after autoindent}
|
||||
0 CTRL-D Delete all indent in the current line.
|
||||
|
||||
*i_^_CTRL-D*
|
||||
^ CTRL-D Delete all indent in the current line. The indent is
|
||||
restored in the next line. This is useful when inserting a
|
||||
label. {Vi: CTRL-D works only when used after autoindent}
|
||||
label.
|
||||
|
||||
*i_CTRL-V*
|
||||
CTRL-V Insert next non-digit literally. For special keys, the
|
||||
@@ -194,7 +193,7 @@ CTRL-V Insert next non-digit literally. For special keys, the
|
||||
decimal, octal or hexadecimal value of a character
|
||||
|i_CTRL-V_digit|.
|
||||
The characters typed right after CTRL-V are not considered for
|
||||
mapping. {Vi: no decimal byte entry}
|
||||
mapping.
|
||||
Note: When CTRL-V is mapped (e.g., to paste text) you can
|
||||
often use CTRL-Q instead |i_CTRL-Q|.
|
||||
|
||||
@@ -273,7 +272,6 @@ For backwards compatibility the values "0", "1" and "2" are also allowed, see
|
||||
If the 'backspace' option does contain "eol" and the cursor is in column 1
|
||||
when one of the three keys is used, the current line is joined with the
|
||||
previous line. This effectively deletes the <EOL> in front of the cursor.
|
||||
{Vi: does not cross lines, does not delete past start position of insert}
|
||||
|
||||
*i_CTRL-V_digit*
|
||||
With CTRL-V the decimal, octal or hexadecimal value of a character can be
|
||||
@@ -1815,15 +1813,13 @@ gi Insert text in the same position as where Insert mode
|
||||
|
||||
*o*
|
||||
o Begin a new line below the cursor and insert text,
|
||||
repeat [count] times. {Vi: blank [count] screen
|
||||
lines}
|
||||
repeat [count] times.
|
||||
When the '#' flag is in 'cpoptions' the count is
|
||||
ignored.
|
||||
|
||||
*O*
|
||||
O Begin a new line above the cursor and insert text,
|
||||
repeat [count] times. {Vi: blank [count] screen
|
||||
lines}
|
||||
repeat [count] times.
|
||||
When the '#' flag is in 'cpoptions' the count is
|
||||
ignored.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*intro.txt* For Vim version 8.1. Last change: 2019 Jun 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -65,14 +65,21 @@ contain links to the most recent version of Vim. The FAQ is a list of
|
||||
Frequently Asked Questions. Read this if you have problems.
|
||||
|
||||
Vim home page: https://www.vim.org/
|
||||
Vim FAQ: https://vimhelp.appspot.com/vim_faq.txt.html
|
||||
Vim FAQ: https://vimhelp.org/vim_faq.txt.html
|
||||
Downloading: https://www.vim.org/download.php
|
||||
|
||||
|
||||
Asking questions, finding answers: https://vi.stackexchange.com/
|
||||
"Vi and Vim Stack Exchange is a question and answer site for people using the
|
||||
vi and Vim families of text editors"
|
||||
|
||||
|
||||
Usenet News group where Vim is discussed: *news* *usenet*
|
||||
comp.editors
|
||||
This group is also for other editors. If you write about Vim, don't forget to
|
||||
mention that.
|
||||
You can access it here:
|
||||
https://groups.google.com/forum/#!topic/comp.editors
|
||||
|
||||
*mail-list* *maillist*
|
||||
There are several mailing lists for Vim:
|
||||
@@ -646,11 +653,7 @@ Ex :vi -- -- -- -- --
|
||||
the command.
|
||||
In the last case <Esc> may be the character defined with the 'wildchar'
|
||||
option, in which case it will start command-line completion. You can
|
||||
ignore that and type <Esc> again. {Vi: when hitting <Esc> the command-line
|
||||
is executed. This is unexpected for most people; therefore it was changed
|
||||
in Vim. But when the <Esc> is part of a mapping, the command-line is
|
||||
executed. If you want the Vi behaviour also when typing <Esc>, use ":cmap
|
||||
^V<Esc> ^V^M"}
|
||||
ignore that and type <Esc> again.
|
||||
*4 Go from Normal to Select mode by:
|
||||
- use the mouse to select text while 'selectmode' contains "mouse"
|
||||
- use a non-printable command to move the cursor while keeping the Shift
|
||||
@@ -713,7 +716,6 @@ exceptions:
|
||||
character.
|
||||
- When inserting text in one window, other windows on the same text are not
|
||||
updated until the insert is finished.
|
||||
{Vi: The screen is not always updated on slow terminals}
|
||||
|
||||
Lines longer than the window width will wrap, unless the 'wrap' option is off
|
||||
(see below). The 'linebreak' option can be set to wrap at a blank character.
|
||||
@@ -759,7 +761,6 @@ If there is a single line that is too long to fit in the window, this is a
|
||||
special situation. Vim will show only part of the line, around where the
|
||||
cursor is. There are no special characters shown, so that you can edit all
|
||||
parts of this line.
|
||||
{Vi: gives an "internal error" on lines that do not fit in the window}
|
||||
|
||||
The '@' occasion in the 'highlight' option can be used to set special
|
||||
highlighting for the '@' and '~' characters. This makes it possible to
|
||||
@@ -774,7 +775,7 @@ that is not shown, the screen is scrolled horizontally. The advantage of
|
||||
this method is that columns are shown as they are and lines that cannot fit
|
||||
on the screen can be edited. The disadvantage is that you cannot see all the
|
||||
characters of a line at once. The 'sidescroll' option can be set to the
|
||||
minimal number of columns to scroll. {Vi: has no 'wrap' option}
|
||||
minimal number of columns to scroll.
|
||||
|
||||
All normal ASCII characters are displayed directly on the screen. The <Tab>
|
||||
is replaced with the number of spaces that it represents. Other non-printing
|
||||
@@ -806,16 +807,14 @@ command characters 'showcmd' on off
|
||||
cursor position 'ruler' off off
|
||||
|
||||
The current mode is "-- INSERT --" or "-- REPLACE --", see |'showmode'|. The
|
||||
command characters are those that you typed but were not used yet. {Vi: does
|
||||
not show the characters you typed or the cursor position}
|
||||
command characters are those that you typed but were not used yet.
|
||||
|
||||
If you have a slow terminal you can switch off the status messages to speed
|
||||
up editing:
|
||||
:set nosc noru nosm
|
||||
|
||||
If there is an error, an error message will be shown for at least one second
|
||||
(in reverse video). {Vi: error messages may be overwritten with other
|
||||
messages before you have a chance to read them}
|
||||
(in reverse video).
|
||||
|
||||
Some commands show how many lines were affected. Above which threshold this
|
||||
happens can be controlled with the 'report' option (default 2).
|
||||
@@ -828,7 +827,7 @@ Make it at least 40 characters wide to be able to read most messages on the
|
||||
last line.
|
||||
|
||||
On most Unix systems, resizing the window is recognized and handled correctly
|
||||
by Vim. {Vi: not ok}
|
||||
by Vim.
|
||||
|
||||
==============================================================================
|
||||
8. Definitions *definitions*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*map.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -53,7 +53,7 @@ modes.
|
||||
:om[ap] {lhs} {rhs} |mapmode-o| *:om* *:omap*
|
||||
:map! {lhs} {rhs} |mapmode-ic| *:map!*
|
||||
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
|
||||
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
|
||||
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lma* *: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
|
||||
@@ -66,12 +66,12 @@ modes.
|
||||
:nn[oremap] {lhs} {rhs} |mapmode-n| *:nn* *:nnoremap*
|
||||
:vn[oremap] {lhs} {rhs} |mapmode-v| *:vn* *:vnoremap*
|
||||
:xn[oremap] {lhs} {rhs} |mapmode-x| *:xn* *:xnoremap*
|
||||
:snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snoremap*
|
||||
:snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snore* *:snoremap*
|
||||
:ono[remap] {lhs} {rhs} |mapmode-o| *:ono* *:onoremap*
|
||||
:no[remap]! {lhs} {rhs} |mapmode-ic| *:no!* *:noremap!*
|
||||
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap*
|
||||
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inor* *:inoremap*
|
||||
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
|
||||
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap*
|
||||
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnor* *: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
|
||||
@@ -88,7 +88,7 @@ modes.
|
||||
:unm[ap]! {lhs} |mapmode-ic| *:unm!* *:unmap!*
|
||||
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
|
||||
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
|
||||
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
|
||||
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cun* *: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
|
||||
@@ -1016,7 +1016,7 @@ See |:verbose-cmd| for more information.
|
||||
:norea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
||||
Same as ":ab", but no remapping for this {rhs}.
|
||||
|
||||
*:ca* *:cabbrev*
|
||||
*:ca* *:cab* *:cabbrev*
|
||||
:ca[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
||||
Same as ":ab", but for Command-line mode only.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*message.txt* For Vim version 8.1. Last change: 2019 May 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -247,6 +247,9 @@ format of the file. The file will not be marked unmodified. If you care
|
||||
about the loss of information, set the 'fileencoding' option to another value
|
||||
that can handle the characters in the buffer and write again. If you don't
|
||||
care, you can abandon the buffer or reset the 'modified' option.
|
||||
If there is a backup file, when 'writebackup' or 'backup' is set, it will not
|
||||
be deleted, so you can move it back into place if you want to discard the
|
||||
changes.
|
||||
|
||||
*E302* >
|
||||
Could not rename swap file
|
||||
@@ -798,7 +801,6 @@ and the screen is about to be redrawn:
|
||||
like pressing <Space>. This makes it impossible to select text though.
|
||||
-> For the GUI clicking the left mouse button in the last line works like
|
||||
pressing <Space>.
|
||||
{Vi: only ":" commands are interpreted}
|
||||
|
||||
If you accidentally hit <Enter> or <Space> and you want to see the displayed
|
||||
text then use |g<|. This only works when 'more' is set.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*motion.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -53,6 +53,7 @@ or change text. The following operators are available:
|
||||
|!| ! filter through an external program
|
||||
|=| = filter through 'equalprg' or C-indenting if empty
|
||||
|gq| gq text formatting
|
||||
|gw| gw text formatting with no cursor movement
|
||||
|g?| g? ROT13 encoding
|
||||
|>| > shift right
|
||||
|<| < shift left
|
||||
@@ -409,9 +410,7 @@ WORD before the fold.
|
||||
|
||||
Special case: "cw" and "cW" are treated like "ce" and "cE" if the cursor is
|
||||
on a non-blank. This is because "cw" is interpreted as change-word, and a
|
||||
word does not include the following white space. {Vi: "cw" when on a blank
|
||||
followed by other blanks changes only the first blank; this is probably a
|
||||
bug, because "dw" deletes all the blanks}
|
||||
word does not include the following white space.
|
||||
|
||||
Another special case: When using the "w" motion in combination with an
|
||||
operator and the last word moved over is at the end of a line, the end of
|
||||
@@ -831,12 +830,12 @@ deletes the lines from the cursor position to mark 't'. Hint: Use mark 't' for
|
||||
Top, 'b' for Bottom, etc.. Lowercase marks are restored when using undo and
|
||||
redo.
|
||||
|
||||
Uppercase marks 'A to 'Z include the file name. {Vi: no uppercase marks} You
|
||||
can use them to jump from file to file. You can only use an uppercase mark
|
||||
with an operator if the mark is in the current file. The line number of the
|
||||
mark remains correct, even if you insert/delete lines or edit another file for
|
||||
a moment. When the 'viminfo' option is not empty, uppercase marks are kept in
|
||||
the .viminfo file. See |viminfo-file-marks|.
|
||||
Uppercase marks 'A to 'Z include the file name. You can use them to jump from
|
||||
file to file. You can only use an uppercase mark with an operator if the mark
|
||||
is in the current file. The line number of the mark remains correct, even if
|
||||
you insert/delete lines or edit another file for a moment. When the 'viminfo'
|
||||
option is not empty, uppercase marks are kept in the .viminfo file. See
|
||||
|viminfo-file-marks|.
|
||||
|
||||
Numbered marks '0 to '9 are quite different. They can not be set directly.
|
||||
They are only present when using a viminfo file |viminfo-file|. Basically '0
|
||||
@@ -945,7 +944,7 @@ These commands are not marks themselves, but jump to a mark:
|
||||
[` [count] times to lowercase mark before the cursor.
|
||||
|
||||
|
||||
:loc[kmarks] {command} *:loc* *:lockmarks*
|
||||
:loc[kmarks] {command} *:loc* *:lock* *:lockmarks*
|
||||
Execute {command} without adjusting marks. This is
|
||||
useful when changing text in a way that the line count
|
||||
will be the same when the change has completed.
|
||||
@@ -971,7 +970,7 @@ These commands are not marks themselves, but jump to a mark:
|
||||
- folds
|
||||
- diffs
|
||||
|
||||
:kee[pmarks] {command} *:kee* *:keepmarks*
|
||||
:kee[pmarks] {command} *:kee* *:keep* *:keepmarks*
|
||||
Currently only has effect for the filter command
|
||||
|:range!|:
|
||||
- When the number of lines after filtering is equal to
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*options.txt* For Vim version 8.1. Last change: 2019 Jun 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -578,14 +578,17 @@ backslash in front of the ':' will be removed. Example:
|
||||
/* vi:set dir=c\:\tmp: */ ~
|
||||
This sets the 'dir' option to "c:\tmp". Only a single backslash before the
|
||||
':' is removed. Thus to include "\:" you have to specify "\\:".
|
||||
|
||||
*E992*
|
||||
No other commands than "set" are supported, for security reasons (somebody
|
||||
might create a Trojan horse text file with modelines). And not all options
|
||||
can be set. For some options a flag is set, so that when it's used the
|
||||
|sandbox| is effective. Still, there is always a small risk that a modeline
|
||||
causes trouble. E.g., when some joker sets 'textwidth' to 5 all your lines
|
||||
are wrapped unexpectedly. So disable modelines before editing untrusted text.
|
||||
The mail ftplugin does this, for example.
|
||||
can be set. For some options a flag is set, so that when the value is used
|
||||
the |sandbox| is effective. Some options can only be set from the modeline
|
||||
when 'modelineexpr' is set (the default is off).
|
||||
|
||||
Still, there is always a small risk that a modeline causes trouble. E.g.,
|
||||
when some joker sets 'textwidth' to 5 all your lines are wrapped unexpectedly.
|
||||
So disable modelines before editing untrusted text. The mail ftplugin does
|
||||
this, for example.
|
||||
|
||||
Hint: If you would like to do something else than setting an option, you could
|
||||
define an autocommand that checks the file for a specific string. For
|
||||
@@ -795,9 +798,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
a different way.
|
||||
The 'autoindent' option is reset when the 'paste' option is set and
|
||||
restored when 'paste' is reset.
|
||||
{small difference from Vi: After the indent is deleted when typing
|
||||
<Esc> or <CR>, the cursor position when moving up or down is after the
|
||||
deleted indent; Vi puts the cursor somewhere in the deleted indent}.
|
||||
|
||||
*'autoread'* *'ar'* *'noautoread'* *'noar'*
|
||||
'autoread' 'ar' boolean (default off)
|
||||
@@ -1121,7 +1121,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{only available when compiled with the |+balloon_eval|
|
||||
feature}
|
||||
Expression for text to show in evaluation balloon. It is only used
|
||||
when 'ballooneval' is on. These variables can be used:
|
||||
when 'ballooneval' or 'balloonevalterm' is on. These variables can be
|
||||
used:
|
||||
|
||||
v:beval_bufnr number of the buffer in which balloon is going to show
|
||||
v:beval_winnr number of the window
|
||||
@@ -1132,7 +1133,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The evaluation of the expression must not have side effects!
|
||||
Example: >
|
||||
function! MyBalloonExpr()
|
||||
function MyBalloonExpr()
|
||||
return 'Cursor is at line ' . v:beval_lnum .
|
||||
\', column ' . v:beval_col .
|
||||
\ ' of file ' . bufname(v:beval_bufnr) .
|
||||
@@ -1151,6 +1152,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'balloonexpr' |textlock|.
|
||||
@@ -1359,6 +1361,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
prompt buffer where only the last line can be edited, meant
|
||||
to be used by a plugin, see |prompt-buffer|
|
||||
{only when compiled with the |+channel| feature}
|
||||
popup buffer used in a popup window, see |popup|.
|
||||
{only when compiled with the |+textprop| feature}
|
||||
|
||||
This option is used together with 'bufhidden' and 'swapfile' to
|
||||
specify special kinds of buffers. See |special-buffers|.
|
||||
@@ -2677,7 +2681,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
uses another default.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
{Vi: directory to put temp file in, defaults to "/tmp"}
|
||||
|
||||
*'display'* *'dy'*
|
||||
'display' 'dy' string (default "", set to "truncate" in
|
||||
@@ -3229,7 +3232,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The expression will be evaluated in the |sandbox| if set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option can't be set from a |modeline| when the 'diff' option is
|
||||
on.
|
||||
on or the 'modelineexpr' option is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'foldexpr' |textlock|.
|
||||
@@ -3362,6 +3365,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The expression will be evaluated in the |sandbox| if set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'foldtext' |textlock|.
|
||||
@@ -3399,6 +3403,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|. That stops the option from working,
|
||||
since changing the buffer text is not allowed.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
NOTE: This option is set to "" when 'compatible' is set.
|
||||
|
||||
*'formatlistpat'* *'flp'*
|
||||
@@ -3455,6 +3460,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Also see 'swapsync' for controlling fsync() on swap files.
|
||||
'fsync' also applies to |writefile()|, unless a flag is used to
|
||||
overrule it.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
|
||||
'gdefault' 'gd' boolean (default off)
|
||||
@@ -3622,7 +3629,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'guiheadroom'* *'ghr'*
|
||||
'guiheadroom' 'ghr' number (default 50)
|
||||
global
|
||||
- {only for GTK and X11 GUI}
|
||||
{only for GTK and X11 GUI}
|
||||
The number of pixels subtracted from the screen height when fitting
|
||||
the GUI window on the screen. Set this before the GUI is started,
|
||||
e.g., in your |gvimrc| file. When zero, the whole screen height will
|
||||
@@ -3780,6 +3787,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'guitabtooltip' is used for the tooltip, see below.
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
Only used when the GUI tab pages line is displayed. 'e' must be
|
||||
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
|
||||
@@ -4030,6 +4038,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When this option contains printf-style '%' items, they will be
|
||||
expanded according to the rules used for 'statusline'. See
|
||||
'titlestring' for example settings.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
{not available when compiled without the |+statusline| feature}
|
||||
|
||||
*'ignorecase'* *'ic'* *'noignorecase'* *'noic'*
|
||||
@@ -4047,6 +4056,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option specifies a function that will be called to
|
||||
activate or deactivate the Input Method.
|
||||
It is not used in the GUI.
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
|
||||
Example: >
|
||||
function ImActivateFunc(active)
|
||||
@@ -4163,6 +4174,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set imstatusfunc=ImStatusFunc
|
||||
<
|
||||
NOTE: This function is invoked very often. Keep it fast.
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
|
||||
*'imstyle'* *'imst'*
|
||||
'imstyle' 'imst' number (default 1)
|
||||
@@ -4179,6 +4192,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|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.
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
|
||||
*'include'* *'inc'*
|
||||
'include' 'inc' string (default "^\s*#\s*include")
|
||||
@@ -4213,6 +4228,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'includeexpr' |textlock|.
|
||||
@@ -4300,6 +4316,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'indentexpr' |textlock|.
|
||||
@@ -4707,7 +4724,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"=" operator to use this same indentation algorithm rather than
|
||||
calling an external program if 'equalprg' is empty.
|
||||
This option is not used when 'paste' is set.
|
||||
{Vi: Does it a little bit differently}
|
||||
|
||||
*'lispwords'* *'lw'*
|
||||
'lispwords' 'lw' string (default is very long)
|
||||
@@ -4919,7 +4935,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'matchtime'* *'mat'*
|
||||
'matchtime' 'mat' number (default 5)
|
||||
global
|
||||
{in Nvi}
|
||||
Tenths of a second to show the matching paren, when 'showmatch' is
|
||||
set. Note that this is not in milliseconds, like other options that
|
||||
set a time. This is to be compatible with Nvi.
|
||||
@@ -5049,10 +5064,25 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< If you have less than 512 Mbyte |:mkspell| may fail for some
|
||||
languages, no matter what you set 'mkspellmem' to.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|.
|
||||
|
||||
*'modeline'* *'ml'* *'nomodeline'* *'noml'*
|
||||
'modeline' 'ml' boolean (Vim default: on (off for root),
|
||||
Vi default: off)
|
||||
local to buffer
|
||||
If 'modeline' is on 'modelines' gives the number of lines that is
|
||||
checked for set commands. If 'modeline' is off or 'modelines' is zero
|
||||
no lines are checked. See |modeline|.
|
||||
|
||||
*'modelineexpr'* *'mle'* *'nomodelineexpr'* *'nomle'*
|
||||
'modelineexpr' 'mle' boolean (default: off)
|
||||
global
|
||||
When on allow some options that are an expression to be set in the
|
||||
modeline. Check the option for whether it is affected by
|
||||
'modelineexpr'. Also see |modeline|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'modelines'* *'mls'*
|
||||
'modelines' 'mls' number (default 5)
|
||||
global
|
||||
@@ -5063,9 +5093,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
*'modifiable'* *'ma'* *'nomodifiable'* *'noma'*
|
||||
*E21*
|
||||
'modifiable' 'ma' boolean (default on)
|
||||
local to buffer
|
||||
*E21*
|
||||
When off the buffer contents cannot be changed. The 'fileformat' and
|
||||
'fileencoding' options also can't be changed.
|
||||
Can be reset on startup with the |-M| command line argument.
|
||||
@@ -5355,7 +5385,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
rows in the window, depending on whether 'number' or 'relativenumber'
|
||||
is set. Thus with the Vim default of 4 there is room for a line number
|
||||
up to 999. When the buffer has 1000 lines five columns will be used.
|
||||
The minimum value is 1, the maximum value is 10.
|
||||
The minimum value is 1, the maximum value is 20.
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
@@ -6062,6 +6092,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When this option is not empty, it determines the content of the ruler
|
||||
string, as displayed for the 'ruler' option.
|
||||
The format of this option is like that of 'statusline'.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
The default ruler width is 17 characters. To make the ruler 15
|
||||
characters wide, put "%15(" at the start and "%)" at the end.
|
||||
Example: >
|
||||
@@ -6585,7 +6617,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
O message for reading a file overwrites any previous message.
|
||||
Also for quickfix message (e.g., ":cn").
|
||||
s don't give "search hit BOTTOM, continuing at TOP" or "search
|
||||
hit TOP, continuing at BOTTOM" messages
|
||||
hit TOP, continuing at BOTTOM" messages; when using the search
|
||||
count do not show "W" after the count message (see S below)
|
||||
t truncate file message at the start if it is too long to fit
|
||||
on the command-line, "<" will appear in the left most column.
|
||||
Ignored in Ex mode.
|
||||
@@ -6601,7 +6634,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"Pattern not found", "Back at original", etc.
|
||||
q use "recording" instead of "recording @a"
|
||||
F don't give the file info when editing a file, like `:silent`
|
||||
was used for the command
|
||||
was used for the command; note that this also affects messages
|
||||
from autocommands
|
||||
S do not show search count message when searching, e.g.
|
||||
"[1/5]"
|
||||
|
||||
@@ -6769,6 +6803,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"auto" only when there is a sign to display
|
||||
"no" never
|
||||
"yes" always
|
||||
"number" display signs in the 'number' column. If the number
|
||||
column is not present, then behaves like "auto".
|
||||
|
||||
|
||||
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
|
||||
@@ -7055,7 +7091,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When the option starts with "%!" then it is used as an expression,
|
||||
evaluated and the result is used as the option value. Example: >
|
||||
:set statusline=%!MyStatusLine()
|
||||
< The result can contain %{} items that will be evaluated too.
|
||||
< The *g:statusline_winid* variable will be set to the |window-ID| of the
|
||||
window that the status line belongs to.
|
||||
The result can contain %{} items that will be evaluated too.
|
||||
Note that the "%!" expression is evaluated in the context of the
|
||||
current window and buffer, while %{} items are evaluated in the
|
||||
context of the window that the statusline belongs to.
|
||||
@@ -7158,16 +7196,19 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
become empty. This will make a group like the following disappear
|
||||
completely from the statusline when none of the flags are set. >
|
||||
:set statusline=...%(\ [%M%R%H]%)...
|
||||
< *g:actual_curbuf*
|
||||
Beware that an expression is evaluated each and every time the status
|
||||
line is displayed. The current buffer and current window will be set
|
||||
temporarily to that of the window (and buffer) whose statusline is
|
||||
currently being drawn. The expression will evaluate in this context.
|
||||
The variable "g:actual_curbuf" is set to the `bufnr()` number of the
|
||||
real current buffer.
|
||||
< Beware that an expression is evaluated each and every time the status
|
||||
line is displayed.
|
||||
*g:actual_curbuf* *g:actual_curwin*
|
||||
The current buffer and current window will be set temporarily to that
|
||||
of the window (and buffer) whose statusline is currently being drawn.
|
||||
The expression will evaluate in this context. The variable
|
||||
"g:actual_curbuf" is set to the `bufnr()` number of the real current
|
||||
buffer and "g:actual_curwin" to the |window-ID| of the real current
|
||||
window. These values are strings.
|
||||
|
||||
The 'statusline' option will be evaluated in the |sandbox| if set from
|
||||
a modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'statusline' |textlock|.
|
||||
@@ -7348,6 +7389,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
When changing something that is used in 'tabline' that does not
|
||||
trigger it to be updated, use |:redrawtabline|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
Keep in mind that only one of the tab pages is the current one, others
|
||||
are invisible and you can't jump to their windows.
|
||||
@@ -7443,7 +7485,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
must be included in the tags file.
|
||||
This option doesn't affect commands that find all matching tags (e.g.,
|
||||
command-line completion and ":help").
|
||||
{Vi: always uses binary search in some versions}
|
||||
|
||||
*'tagcase'* *'tc'*
|
||||
'tagcase' 'tc' string (default "followic")
|
||||
@@ -7507,7 +7548,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The use of |:set+=| and |:set-=| is preferred when adding or removing
|
||||
file names from the list. This avoids problems when a future version
|
||||
uses another default.
|
||||
{Vi: default is "tags /usr/lib/tags"}
|
||||
|
||||
*'tagstack'* *'tgst'* *'notagstack'* *'notgst'*
|
||||
'tagstack' 'tgst' boolean (default on)
|
||||
@@ -7878,8 +7918,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
non-empty 't_ts' option).
|
||||
When Vim was compiled with HAVE_X11 defined, the original title will
|
||||
be restored if possible, see |X11|.
|
||||
|
||||
When this option contains printf-style '%' items, they will be
|
||||
expanded according to the rules used for 'statusline'.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
Example: >
|
||||
:auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")
|
||||
:set title titlestring=%<%F%=%l/%L-%P titlelen=70
|
||||
@@ -8027,7 +8070,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
already.
|
||||
Additionally, if vim is compiled with the |+termresponse| feature and
|
||||
|t_RV| is set to the escape sequence to request the xterm version
|
||||
number, more intelligent detection process runs.
|
||||
number, more intelligent detection is done.
|
||||
The "xterm2" value will be set if the xterm version is reported to be
|
||||
from 95 to 276. The "sgr" value will be set if Vim detects Mac
|
||||
Terminal.app, iTerm2 or mintty, and when the xterm version is 277 or
|
||||
@@ -8065,6 +8108,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
undo file that exists is used. When it cannot be read an error is
|
||||
given, no further entry is used.
|
||||
See |undo-persistence|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'undofile'* *'noundofile'* *'udf'* *'noudf'*
|
||||
'undofile' 'udf' boolean (default off)
|
||||
@@ -8374,6 +8419,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
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".
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'virtualedit'* *'ve'*
|
||||
'virtualedit' 've' string (default "")
|
||||
@@ -8640,6 +8687,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option is not used for <F10>; on Win32 and with GTK <F10> will
|
||||
select the menu, unless it has been mapped.
|
||||
|
||||
*'wincolor'* *'wcr'*
|
||||
'wincolor' 'wcr' string (default empty)
|
||||
local to window
|
||||
Highlight group name to use for this window instead of the Normal
|
||||
color |hl-Normal|.
|
||||
|
||||
*'window'* *'wi'*
|
||||
'window' 'wi' number (default screen height - 1)
|
||||
global
|
||||
@@ -8783,8 +8836,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When 'textwidth' is non-zero, this option is not used.
|
||||
This option is set to 0 when 'paste' is set and restored when 'paste'
|
||||
is reset.
|
||||
See also 'formatoptions' and |ins-textwidth|. {Vi: works differently
|
||||
and less usefully}
|
||||
See also 'formatoptions' and |ins-textwidth|.
|
||||
|
||||
*'wrapscan'* *'ws'* *'nowrapscan'* *'nows'*
|
||||
'wrapscan' 'ws' boolean (default on) *E384* *E385*
|
||||
|
||||
@@ -61,11 +61,11 @@ explanations are in chapter 27 |usr_27.txt|.
|
||||
n Repeat the latest "/" or "?" [count] times.
|
||||
If the cursor doesn't move the search is repeated with
|
||||
count + 1.
|
||||
|last-pattern| {Vi: no count}
|
||||
|last-pattern|
|
||||
|
||||
*N*
|
||||
N Repeat the latest "/" or "?" [count] times in
|
||||
opposite direction. |last-pattern| {Vi: no count}
|
||||
opposite direction. |last-pattern|
|
||||
|
||||
*star* *E348* *E349*
|
||||
* Search forward for the [count]'th occurrence of the
|
||||
|
||||
811
runtime/doc/popup.txt
Normal file
811
runtime/doc/popup.txt
Normal file
@@ -0,0 +1,811 @@
|
||||
*popup.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
Displaying text in a floating window. *popup* *popup-window*
|
||||
|
||||
|
||||
1. Introduction |popup-intro|
|
||||
Window position and size |popup-position|
|
||||
Closing the popup window |popup-close|
|
||||
Popup buffer and window |popup-buffer|
|
||||
2. Functions |popup-functions|
|
||||
Details |popup-function-details|
|
||||
3. Usage |popup-usage|
|
||||
popup_create() arguments |popup_create-arguments|
|
||||
Popup text properties |popup-props|
|
||||
Popup filter |popup-filter|
|
||||
Popup callback |popup-callback|
|
||||
Popup scrollbar |popup-scrollbar|
|
||||
Popup mask |popup-mask|
|
||||
4. Examples |popup-examples|
|
||||
|
||||
|
||||
{not available if the |+textprop| feature was disabled at compile time}
|
||||
|
||||
==============================================================================
|
||||
1. Introduction *popup-intro*
|
||||
|
||||
We are talking about popup windows here, text that goes on top of the regular
|
||||
windows and is under control of a plugin. You cannot edit the text in the
|
||||
popup window like with regular windows.
|
||||
|
||||
A popup window can be used for such things as:
|
||||
- briefly show a message without overwriting the command line
|
||||
- prompt the user with a dialog
|
||||
- display contextual information while typing
|
||||
- give extra information for auto-completion
|
||||
|
||||
The text in the popup window can be colored with |text-properties|. It is
|
||||
also possible to use syntax highlighting.
|
||||
|
||||
The default color used is "Pmenu". If you prefer something else use the
|
||||
"highlight" argument or the 'wincolor' option, e.g.: >
|
||||
hi MyPopupColor ctermbg=lightblue guibg=lightblue
|
||||
call setwinvar(winid, '&wincolor', 'MyPopupColor')
|
||||
|
||||
'hlsearch' highlighting is not displayed in a popup window.
|
||||
|
||||
A popup window has a window-ID like other windows, but behaves differently.
|
||||
The size can be up to the whole Vim window and it overlaps other windows.
|
||||
Popup windows can also overlap each other. The "zindex" property specifies
|
||||
what goes on top of what.
|
||||
|
||||
The popup window contains a buffer, and that buffer is always associated with
|
||||
the popup window. The window cannot be in Normal, Visual or Insert mode, it
|
||||
does not get keyboard focus. You can use functions like `setbufline()` to
|
||||
change the text in the buffer. There are more differences from how this
|
||||
window and buffer behave compared to regular windows and buffers, see
|
||||
|popup-buffer|.
|
||||
|
||||
If this is not what you are looking for, check out other popup functionality:
|
||||
- popup menu, see |popup-menu|
|
||||
- balloon, see |balloon-eval|
|
||||
|
||||
|
||||
WINDOW POSITION AND SIZE *popup-position*
|
||||
|
||||
The height of the window is normally equal to the number of, possibly
|
||||
wrapping, lines in the buffer. It can be limited with the "maxheight"
|
||||
property. You can use empty lines to increase the height or the "minheight"
|
||||
property.
|
||||
|
||||
The width of the window is normally equal to the longest line in the buffer.
|
||||
It can be limited with the "maxwidth" property. You can use spaces to
|
||||
increase the width or use the "minwidth" property.
|
||||
|
||||
By default the 'wrap' option is set, so that no text disappears. Otherwise,
|
||||
if there is not enough space then the window is shifted left in order to
|
||||
display more text. When right-aligned the window is shifted right to display
|
||||
more text. The shifting can be disabled with the "fixed" property.
|
||||
|
||||
Vim tries to show the popup in the location you specify. In some cases, e.g.
|
||||
when the popup would go outside of the Vim window, it will show it somewhere
|
||||
nearby. E.g. if you use `popup_atcursor()` the popup normally shows just above
|
||||
the current cursor position, but if the cursor is close to the top of the Vim
|
||||
window it will be placed below the cursor position.
|
||||
|
||||
When the screen scrolls up for output of an Ex command, popups move too, so
|
||||
that they will not cover the output.
|
||||
|
||||
The current cursor position is displayed even when it is under a popup window.
|
||||
That way you can still see where it is, even though you cannot see the text
|
||||
that it is in.
|
||||
|
||||
|
||||
CLOSING THE POPUP WINDOW *popup-close*
|
||||
|
||||
Normally the plugin that created the popup window is also in charge of closing
|
||||
it. If somehow a popup hangs around, you can close all of them with: >
|
||||
call popup_clear()
|
||||
Some popups, such as notifications, close after a specified time. This can be
|
||||
set with the "time" property on `popup_create()`.
|
||||
Otherwise, a popup can be closed by clicking on the X in the top-right corner
|
||||
or by clicking anywhere inside the popup. This must be enabled with the
|
||||
"close" property. It is set by default for notifications.
|
||||
|
||||
|
||||
POPUP BUFFER AND WINDOW *popup-buffer*
|
||||
|
||||
If a popup function is called to create a popup from text, a new buffer is
|
||||
created to hold the text and text properties of the popup window. The buffer
|
||||
is always associated with the popup window and manipulation is restricted:
|
||||
- the buffer has no name
|
||||
- 'buftype' is "popup"
|
||||
- 'swapfile' is off
|
||||
- 'bufhidden' is "hide"
|
||||
- 'buflisted' is off
|
||||
- 'undolevels' is -1: no undo at all
|
||||
- all other buffer-local and window-local options are set to their Vim default
|
||||
value.
|
||||
|
||||
It is possible to change the specifically mentioned options, but anything
|
||||
might break then, so better leave them alone.
|
||||
|
||||
The window does have a cursor position, but the cursor is not displayed.
|
||||
|
||||
To execute a command in the context of the popup window and buffer use
|
||||
`win_execute()`. Example: >
|
||||
call win_execute(winid, 'syntax enable')
|
||||
|
||||
Options can be set on the window with `setwinvar()`, e.g.: >
|
||||
call setwinvar(winid, '&wrap', 0)
|
||||
And options can be set on the buffer with `setbufvar()`, e.g.: >
|
||||
call setbufvar(winbufnr(winid), '&filetype', 'java')
|
||||
Note that this does not trigger autocommands. Use `win_execute()` if you do
|
||||
need them.
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Functions *popup-functions*
|
||||
|
||||
Creating a popup window:
|
||||
|popup_create()| centered in the screen
|
||||
|popup_atcursor()| just above the cursor position, closes when
|
||||
the cursor moves away
|
||||
|popup_beval()| at the position indicated by v:beval_
|
||||
variables, closes when the mouse moves away
|
||||
|popup_notification()| show a notification for three seconds
|
||||
|popup_dialog()| centered with padding and border
|
||||
|popup_menu()| prompt for selecting an item from a list
|
||||
|
||||
Manipulating a popup window:
|
||||
|popup_hide()| hide a popup temporarily
|
||||
|popup_show()| show a previously hidden popup
|
||||
|popup_move()| change the position and size of a popup
|
||||
|popup_setoptions()| override options of a popup
|
||||
|popup_settext()| replace the popup buffer contents
|
||||
|
||||
Closing popup windows:
|
||||
|popup_close()| close one popup
|
||||
|popup_clear()| close all popups
|
||||
|
||||
Filter functions:
|
||||
|popup_filter_menu()| select from a list of items
|
||||
|popup_filter_yesno()| blocks until 'y' or 'n' is pressed
|
||||
|
||||
Other:
|
||||
|popup_getoptions()| get current options for a popup
|
||||
|popup_getpos()| get actual position and size of a popup
|
||||
|
||||
|
||||
DETAILS *popup-function-details*
|
||||
|
||||
popup_atcursor({what}, {options}) *popup_atcursor()*
|
||||
Show the {what} above the cursor, and close it when the cursor
|
||||
moves. This works like: >
|
||||
call popup_create({what}, {
|
||||
\ 'pos': 'botleft',
|
||||
\ 'line': 'cursor-1',
|
||||
\ 'col': 'cursor',
|
||||
\ 'moved': 'WORD',
|
||||
\ })
|
||||
< Use {options} to change the properties.
|
||||
|
||||
|
||||
popup_beval({what}, {options}) *popup_beval()*
|
||||
Show the {what} above the position from 'ballooneval' and
|
||||
close it when the mouse moves. This works like: >
|
||||
let pos = screenpos(v:beval_winnr, v:beval_lnum, v:beval_col)
|
||||
call popup_create({what}, {
|
||||
\ 'pos': 'botleft',
|
||||
\ 'line': pos.row - 1,
|
||||
\ 'col': pos.col,
|
||||
\ 'mousemoved': 'WORD',
|
||||
\ })
|
||||
< Use {options} to change the properties.
|
||||
See |popup_beval_example| for an example use.
|
||||
|
||||
|
||||
*popup_clear()*
|
||||
popup_clear() Emergency solution to a misbehaving plugin: close all popup
|
||||
windows for the current tab and global popups.
|
||||
|
||||
|
||||
popup_close({id} [, {result}]) *popup_close()*
|
||||
Close popup {id}. The window and the associated buffer will
|
||||
be deleted.
|
||||
|
||||
If the popup has a callback it will be called just before the
|
||||
popup window is deleted. If the optional {result} is present
|
||||
it will be passed as the second argument of the callback.
|
||||
Otherwise zero is passed to the callback.
|
||||
|
||||
|
||||
popup_create({what}, {options}) *popup_create()*
|
||||
Open a popup window showing {what}, which is either:
|
||||
- a buffer number
|
||||
- a string
|
||||
- a list of strings
|
||||
- a list of text lines with text properties
|
||||
When {what} is not a buffer number, a buffer is created with
|
||||
'buftype' set to "popup". That buffer will be wiped out once
|
||||
the popup closes.
|
||||
|
||||
{options} is a dictionary with many possible entries.
|
||||
See |popup_create-arguments| for details.
|
||||
|
||||
Returns a window-ID, which can be used with other popup
|
||||
functions. Use `winbufnr()` to get the number of the buffer
|
||||
in the window: >
|
||||
let winid = popup_create('hello', {})
|
||||
let bufnr = winbufnr(winid)
|
||||
call setbufline(bufnr, 2, 'second line')
|
||||
< In case of failure zero is returned.
|
||||
|
||||
|
||||
popup_dialog({what}, {options}) *popup_dialog()*
|
||||
Just like |popup_create()| but with these default options: >
|
||||
call popup_create({what}, {
|
||||
\ 'pos': 'center',
|
||||
\ 'zindex': 200,
|
||||
\ 'drag': 1,
|
||||
\ 'border': [],
|
||||
\ 'padding': [],
|
||||
\})
|
||||
< Use {options} to change the properties. E.g. add a 'filter'
|
||||
option with value 'popup_filter_yesno'. Example: >
|
||||
call popup_create('do you want to quit (Yes/no)?', {
|
||||
\ 'filter': 'popup_filter_yesno',
|
||||
\ 'callback': 'QuitCallback',
|
||||
\ })
|
||||
|
||||
< By default the dialog can be dragged, so that text below it
|
||||
can be read if needed.
|
||||
|
||||
|
||||
popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
||||
Filter that can be used for a popup. These keys can be used:
|
||||
j <Down> select item below
|
||||
k <Up> select item above
|
||||
<Space> <Enter> accept current selection
|
||||
x Esc CTRL-C cancel the menu
|
||||
Other keys are ignored.
|
||||
|
||||
A match is set on that line to highlight it, see
|
||||
|popup_menu()|.
|
||||
|
||||
When the current selection is accepted the "callback" of the
|
||||
popup menu is invoked with the index of the selected line as
|
||||
the second argument. The first entry has index one.
|
||||
Cancelling the menu invokes the callback with -1.
|
||||
|
||||
To add shortcut keys, see the example here:
|
||||
|popup_menu-shortcut-example|
|
||||
|
||||
|
||||
popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
|
||||
Filter that can be used for a popup. It handles only the keys
|
||||
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
|
||||
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
|
||||
as the second argument. Pressing Esc and 'x' works like
|
||||
pressing 'n'. CTRL-C invokes the callback with -1. Other
|
||||
keys are ignored.
|
||||
See the example here: |popup_dialog-example|
|
||||
|
||||
|
||||
popup_getoptions({id}) *popup_getoptions()*
|
||||
Return the {options} for popup {id} in a Dict.
|
||||
A zero value means the option was not set. For "zindex" the
|
||||
default value is returned, not zero.
|
||||
|
||||
The "moved" entry is a list with line number, minimum and
|
||||
maximum column, [0, 0, 0] when not set.
|
||||
|
||||
The "mousemoved" entry is a list with screen row, minimum and
|
||||
maximum screen column, [0, 0, 0] when not set.
|
||||
|
||||
"border" and "padding" are not included when all values are
|
||||
zero. When all values are one then an empty list is included.
|
||||
|
||||
"borderhighlight" is not included when all values are empty.
|
||||
"scrollbarhighlight" and "thumbhighlight" are onlu included
|
||||
when set.
|
||||
|
||||
"tabpage" will be -1 for a global popup, zero for a popup on
|
||||
the current tabpage and a positive number for a popup on
|
||||
another tabpage.
|
||||
|
||||
If popup window {id} is not found an empty Dict is returned.
|
||||
|
||||
|
||||
popup_getpos({id}) *popup_getpos()*
|
||||
Return the position and size of popup {id}. Returns a Dict
|
||||
with these entries:
|
||||
col screen column of the popup, one-based
|
||||
line screen line of the popup, one-based
|
||||
width width of the whole popup in screen cells
|
||||
height height of the whole popup in screen cells
|
||||
core_col screen column of the text box
|
||||
core_line screen line of the text box
|
||||
core_width width of the text box in screen cells
|
||||
core_height height of the text box in screen cells
|
||||
firstline line of the buffer at top (1 unless scrolled)
|
||||
scrollbar non-zero if a scrollbar is displayed
|
||||
visible one if the popup is displayed, zero if hidden
|
||||
Note that these are the actual screen positions. They differ
|
||||
from the values in `popup_getoptions()` for the sizing and
|
||||
positioning mechanism applied.
|
||||
|
||||
The "core_" values exclude the padding and border.
|
||||
|
||||
If popup window {id} is not found an empty Dict is returned.
|
||||
|
||||
|
||||
popup_hide({id}) *popup_hide()*
|
||||
If {id} is a displayed popup, hide it now. If the popup has a
|
||||
filter it will not be invoked for so long as the popup is
|
||||
hidden.
|
||||
If window {id} does not exist nothing happens. If window {id}
|
||||
exists but is not a popup window an error is given. *E993*
|
||||
|
||||
|
||||
popup_menu({what}, {options}) *popup_menu()*
|
||||
Show the {what} near the cursor, handle selecting one of the
|
||||
items with cursorkeys, and close it an item is selected with
|
||||
Space or Enter. {what} should have multiple lines to make this
|
||||
useful. This works like: >
|
||||
call popup_create({what}, {
|
||||
\ 'pos': 'center',
|
||||
\ 'zindex': 200,
|
||||
\ 'drag': 1,
|
||||
\ 'wrap': 0,
|
||||
\ 'border': [],
|
||||
\ 'padding': [],
|
||||
\ 'filter': 'popup_filter_menu',
|
||||
\ })
|
||||
< The current line is highlighted with a match using
|
||||
"PopupSelected", or "PmenuSel" if that is not defined.
|
||||
|
||||
Use {options} to change the properties. Should at least set
|
||||
"callback" to a function that handles the selected item.
|
||||
|
||||
|
||||
popup_move({id}, {options}) *popup_move()*
|
||||
Move popup {id} to the position specified with {options}.
|
||||
{options} may contain the items from |popup_create()| that
|
||||
specify the popup position:
|
||||
line
|
||||
col
|
||||
pos
|
||||
maxheight
|
||||
minheight
|
||||
maxwidth
|
||||
minwidth
|
||||
fixed
|
||||
For {id} see `popup_hide()`.
|
||||
For other options see |popup_setoptions()|.
|
||||
|
||||
|
||||
popup_notification({what}, {options}) *popup_notification()*
|
||||
Show the {what} for 3 seconds at the top of the Vim window.
|
||||
This works like: >
|
||||
call popup_create({what}, {
|
||||
\ 'line': 1,
|
||||
\ 'col': 10,
|
||||
\ 'minwidth': 20,
|
||||
\ 'time': 3000,
|
||||
\ 'tabpage': -1,
|
||||
\ 'zindex': 300,
|
||||
\ 'drag': 1,
|
||||
\ 'highlight': 'WarningMsg',
|
||||
\ 'border': [],
|
||||
\ 'close': 'click',
|
||||
\ 'padding': [0,1,0,1],
|
||||
\ })
|
||||
< The PopupNotification highlight group is used instead of
|
||||
WarningMsg if it is defined.
|
||||
|
||||
Without the |+timers| feature the poup will not disappear
|
||||
automatically, the user has to click in it.
|
||||
|
||||
The position will be adjusted to avoid overlap with other
|
||||
notifications.
|
||||
Use {options} to change the properties.
|
||||
|
||||
|
||||
popup_show({id}) *popup_show()*
|
||||
If {id} is a hidden popup, show it now.
|
||||
For {id} see `popup_hide()`.
|
||||
|
||||
|
||||
popup_setoptions({id}, {options}) *popup_setoptions()*
|
||||
Override options in popup {id} with entries in {options}.
|
||||
These options can be set:
|
||||
border
|
||||
borderchars
|
||||
borderhighlight
|
||||
callback
|
||||
close
|
||||
drag
|
||||
filter
|
||||
firstline
|
||||
flip
|
||||
highlight
|
||||
mask
|
||||
moved
|
||||
padding
|
||||
scrollbar
|
||||
scrollbarhighlight
|
||||
thumbhighlight
|
||||
time
|
||||
title
|
||||
wrap
|
||||
zindex
|
||||
The options from |popup_move()| can also be used.
|
||||
For "hidden" use |popup_hide()| and |popup_show()|.
|
||||
"tabpage" cannot be changed.
|
||||
|
||||
popup_settext({id}, {text}) *popup_settext()*
|
||||
Set the text of the buffer in poup win {id}. {text} is the
|
||||
same as supplied to |popup_create()|, except that a buffer
|
||||
number is not allowed.
|
||||
Does not change the window size or position, other than caused
|
||||
by the different text.
|
||||
|
||||
|
||||
==============================================================================
|
||||
3. Usage *popup-usage*
|
||||
|
||||
POPUP_CREATE() ARGUMENTS *popup_create-arguments*
|
||||
|
||||
The first argument of |popup_create()| (and the second argument to
|
||||
|popup_settext()|) specifies the text to be displayed, and optionally text
|
||||
properties. It is in one of four forms:
|
||||
- a buffer number
|
||||
- a string
|
||||
- a list of strings
|
||||
- a list of dictionaries, where each dictionary has these entries:
|
||||
text String with the text to display.
|
||||
props A list of text properties. Optional.
|
||||
Each entry is a dictionary, like the third argument of
|
||||
|prop_add()|, but specifying the column in the
|
||||
dictionary with a "col" entry, see below:
|
||||
|popup-props|.
|
||||
|
||||
The second argument of |popup_create()| is a dictionary with options:
|
||||
line Screen line where to position the popup. Can use a
|
||||
number or "cursor", "cursor+1" or "cursor-1" to use
|
||||
the line of the cursor and add or subtract a number of
|
||||
lines. If omitted the popup is vertically centered.
|
||||
The first line is 1.
|
||||
col Screen column where to position the popup. Can use a
|
||||
number or "cursor" to use the column of the cursor,
|
||||
"cursor+9" or "cursor-9" to add or subtract a number
|
||||
of columns. If omitted the popup is horizontally
|
||||
centered. The first column is 1.
|
||||
pos "topleft", "topright", "botleft" or "botright":
|
||||
defines what corner of the popup "line" and "col" are
|
||||
used for. When not set "topleft" is used.
|
||||
Alternatively "center" can be used to position the
|
||||
popup in the center of the Vim window, in which case
|
||||
"line" and "col" are ignored.
|
||||
fixed When FALSE (the default), and:
|
||||
- "pos" is "botleft" or "topleft", and
|
||||
- "wrap" is off, and
|
||||
- the popup would be truncated at the right edge of
|
||||
the screen, then
|
||||
the popup is moved to the left so as to fit the
|
||||
contents on the screen. Set to TRUE to disable this.
|
||||
flip When TRUE (the default) and the position is relative
|
||||
to the cursor, flip to below or above the cursor to
|
||||
avoid overlap with the |popupmenu-completion| or
|
||||
another popup with a higher "zindex". When there is
|
||||
no space above/below the cursor then show the popup to
|
||||
the side of the popup or popup menu.
|
||||
{not implemented yet}
|
||||
maxheight Maximum height of the contents, excluding border and
|
||||
padding.
|
||||
minheight Minimum height of the contents, excluding border and
|
||||
padding.
|
||||
maxwidth Maximum width of the contents, excluding border and
|
||||
padding.
|
||||
minwidth Minimum width of the contents, excluding border and
|
||||
padding.
|
||||
firstline First buffer line to display. When larger than one it
|
||||
looks like the text scrolled up. When out of range
|
||||
the last buffer line will at the top of the window.
|
||||
Also see "scrollbar".
|
||||
hidden When TRUE the popup exists but is not displayed; use
|
||||
`popup_show()` to unhide it.
|
||||
tabpage When -1: display the popup on all tab pages.
|
||||
When 0 (the default): display the popup on the current
|
||||
tab page.
|
||||
Otherwise the number of the tab page the popup is
|
||||
displayed on; when invalid the popup is not created
|
||||
and an error is given. *E997*
|
||||
title Text to be displayed above the first item in the
|
||||
popup, on top of any border. If there is no top
|
||||
border one line of padding is added to put the title
|
||||
on. You might want to add one or more spaces at the
|
||||
start and end as padding.
|
||||
wrap TRUE to make the lines wrap (default TRUE).
|
||||
drag TRUE to allow the popup to be dragged with the mouse
|
||||
by grabbing at at the border. Has no effect if the
|
||||
popup does not have a border. As soon as dragging
|
||||
starts and "pos" is "center" it is changed to
|
||||
"topleft".
|
||||
close When "button" an X is displayed in the top-right, on
|
||||
top of any border, padding or text. When clicked on
|
||||
the X the popup will close. Any callback is invoked
|
||||
with the value -2.
|
||||
When "click" any mouse click in the popup will close
|
||||
it.
|
||||
When "none" (the default) mouse clicks do not close
|
||||
the popup window.
|
||||
highlight Highlight group name to use for the text, stored in
|
||||
the 'wincolor' option.
|
||||
padding List with numbers, defining the padding
|
||||
above/right/below/left of the popup (similar to CSS).
|
||||
An empty list uses a padding of 1 all around. The
|
||||
padding goes around the text, inside any border.
|
||||
Padding uses the 'wincolor' highlight.
|
||||
Example: [1, 2, 1, 3] has 1 line of padding above, 2
|
||||
columns on the right, 1 line below and 3 columns on
|
||||
the left.
|
||||
border List with numbers, defining the border thickness
|
||||
above/right/below/left of the popup (similar to CSS).
|
||||
Only values of zero and non-zero are recognized.
|
||||
An empty list uses a border all around.
|
||||
borderhighlight List of highlight group names to use for the border.
|
||||
When one entry it is used for all borders, otherwise
|
||||
the highlight for the top/right/bottom/left border.
|
||||
Example: ['TopColor', 'RightColor', 'BottomColor,
|
||||
'LeftColor']
|
||||
borderchars List with characters, defining the character to use
|
||||
for the top/right/bottom/left border. Optionally
|
||||
followed by the character to use for the
|
||||
topleft/topright/botright/botleft corner.
|
||||
Example: ['-', '|', '-', '|', '┌', '┐', '┘', '└']
|
||||
When the list has one character it is used for all.
|
||||
When the list has two characters the first is used for
|
||||
the border lines, the second for the corners.
|
||||
By default a double line is used all around when
|
||||
'encoding' is "utf-8" and 'ambiwidth' is "single",
|
||||
otherwise ASCII characters are used.
|
||||
scrollbar non-zero: show a scrollbar when the text doesn't fit.
|
||||
zero: do not show a scrollbar. Default is non-zero.
|
||||
Also see |popup-scrollbar|.
|
||||
scrollbarhighlight Highlight group name for the scrollbar. The
|
||||
background color is what matters. When not given then
|
||||
PmenuSbar is used.
|
||||
thumbhighlight Highlight group name for the scrollbar thumb. The
|
||||
background color is what matters. When not given then
|
||||
PmenuThumb is used.
|
||||
zindex Priority for the popup, default 50. Minimum value is
|
||||
1, maximum value is 32000.
|
||||
mask A list of lists with coordinates, defining parts of
|
||||
the popup that are transparent. See |popup-mask|.
|
||||
time Time in milliseconds after which the popup will close.
|
||||
When omitted |popup_close()| must be used.
|
||||
moved Specifies to close the popup if the cursor moved:
|
||||
- "any": if the cursor moved at all
|
||||
- "word": if the cursor moved outside |<cword>|
|
||||
- "WORD": if the cursor moved outside |<cWORD>|
|
||||
- "expr": if the cursor moved outside |<cexpr>|
|
||||
- [{start}, {end}]: if the cursor moved before column
|
||||
{start} or after {end}
|
||||
The popup also closes if the cursor moves to another
|
||||
line or to another window.
|
||||
filter A callback that can filter typed characters, see
|
||||
|popup-filter|.
|
||||
callback A callback that is called when the popup closes, e.g.
|
||||
when using |popup_filter_menu()|, see |popup-callback|.
|
||||
|
||||
Depending on the "zindex" the popup goes under or above other popups. The
|
||||
completion menu (|popup-menu|) has zindex 100. For messages that occur for a
|
||||
short time the suggestion is to use zindex 1000.
|
||||
|
||||
By default text wraps, which causes a line in {lines} to occupy more than one
|
||||
screen line. When "wrap" is FALSE then the text outside of the popup or
|
||||
outside of the Vim window will not be displayed, thus truncated.
|
||||
|
||||
|
||||
POPUP TEXT PROPERTIES *popup-props*
|
||||
|
||||
These are similar to the third argument of |prop_add()| except:
|
||||
- "lnum" is always the current line in the list
|
||||
- "bufnr" is always the buffer of the popup
|
||||
- "col" is in the Dict instead of a separate argument
|
||||
So we get:
|
||||
col starting column, counted in bytes, use one for the
|
||||
first column.
|
||||
length length of text in bytes; can be zero
|
||||
end_lnum line number for the end of the text
|
||||
end_col column just after the text; not used when "length" is
|
||||
present; when {col} and "end_col" are equal, this is a
|
||||
zero-width text property
|
||||
id user defined ID for the property; when omitted zero is
|
||||
used
|
||||
type name of the text property type, as added with
|
||||
|prop_type_add()|
|
||||
|
||||
|
||||
POPUP FILTER *popup-filter*
|
||||
|
||||
A callback that gets any typed keys while a popup is displayed. The filter is
|
||||
not invoked when the popup is hidden.
|
||||
|
||||
The filter can return TRUE to indicate the key has been handled and is to be
|
||||
discarded, or FALSE to let Vim handle the key as usual in the current state.
|
||||
In case it returns FALSE and there is another popup window visible, that
|
||||
filter is also called. The filter of the popup window with the highest zindex
|
||||
is called first.
|
||||
|
||||
The filter function is called with two arguments: the ID of the popup and the
|
||||
key as a string, e.g.: >
|
||||
func MyFilter(winid, key)
|
||||
if a:key == "\<F2>"
|
||||
" do something
|
||||
return 1
|
||||
endif
|
||||
if a:key == 'x'
|
||||
call popup_close(a:winid)
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
Currently the key is what results after any mapping. This may change...
|
||||
|
||||
Some common key actions:
|
||||
x close the popup (see note below)
|
||||
cursor keys select another entry
|
||||
Tab accept current suggestion
|
||||
|
||||
A mouse click arrives as <LeftMouse>. The coordinates are in
|
||||
v:mouse_popup_col and v:mouse_popup_row. The top-left screen cell of the
|
||||
popup is col 1, row 1 (not counting the border).
|
||||
|
||||
Vim provides standard filters |popup_filter_menu()| and
|
||||
|popup_filter_yesno()|.
|
||||
|
||||
Note that "x" is the normal way to close a popup. You may want to use Esc,
|
||||
but since many keys start with an Esc character, there may be a delay before
|
||||
Vim recognizes the Esc key. If you do use Esc, it is recommended to set the
|
||||
'ttimeoutlen' option to 100 and set 'timeout' and/or 'ttimeout'.
|
||||
|
||||
|
||||
POPUP CALLBACK *popup-callback*
|
||||
|
||||
A callback that is invoked when the popup closes.
|
||||
|
||||
The callback is invoked with two arguments: the ID of the popup window and the
|
||||
result, which could be an index in the popup lines, or whatever was passed as
|
||||
the second argument of `popup_close()`.
|
||||
|
||||
If the popup is force-closed, e.g. because the cursor moved or CTRL-C was
|
||||
pressed, the number -1 is passed to the callback.
|
||||
|
||||
|
||||
POPUP SCROLLBAR *popup-scrollbar*
|
||||
|
||||
If the text does not fit in the popup a scrollbar is displayed on the right of
|
||||
the window. This can be disabled by setting the "scrollbar" option to zero.
|
||||
When the scrollbar is displayed mouse scroll events, while the mouse pointer
|
||||
is on the popup, will cause the text to scroll up or down as you would expect.
|
||||
A click in the upper halve of the scrollbar will scroll the text one line
|
||||
down. A click in the lower halve wil scroll the text one line up. However,
|
||||
this is limited so that the popup does not get smaller.
|
||||
|
||||
|
||||
POPUP MASK *popup-mask*
|
||||
|
||||
To minimize the text that the popup covers, parts of it can be made
|
||||
transparent. This is defined by a "mask" which is a list of lists, where each
|
||||
list has four numbers:
|
||||
col start column, positive for counting from the left, 1 for
|
||||
leftmost, negative for counting from the right, -1 for
|
||||
rightmost
|
||||
endcol last column, like "col"
|
||||
line start line, positive for conting from the top, 1 for top,
|
||||
negative for counting from the bottom, -1 for bottom
|
||||
endline end line, like "line"
|
||||
|
||||
For example, to make the last 10 columns of the last line transparent:
|
||||
[[-10, -1, -1, -1]]
|
||||
|
||||
To make the four corners transparent:
|
||||
[[1, 1, 1, 1], [-1, -1, 1, 1], [1, 1, -1, -1], [-1, -1, -1, -1]]
|
||||
|
||||
==============================================================================
|
||||
4. Examples *popup-examples*
|
||||
|
||||
TODO: more interesting examples
|
||||
*popup_dialog-example*
|
||||
Prompt the user to press y/Y or n/N: >
|
||||
|
||||
func MyDialogHandler(id, result)
|
||||
if a:result
|
||||
" ... 'y' or 'Y' was pressed
|
||||
endif
|
||||
endfunc
|
||||
|
||||
call popup_dialog('Continue? y/n', {
|
||||
\ 'filter': 'popup_filter_yesno',
|
||||
\ 'callback': 'MyDialogHandler',
|
||||
\ })
|
||||
<
|
||||
*popup_menu-shortcut-example*
|
||||
Extend popup_filter_menu() with shortcut keys: >
|
||||
|
||||
call popup_menu(['Save', 'Cancel', 'Discard'], {
|
||||
\ 'filter': 'MyMenuFilter',
|
||||
\ 'callback': 'MyMenuHandler',
|
||||
\ })
|
||||
|
||||
func MyMenuFilter(id, key)
|
||||
" Handle shortcuts
|
||||
if a:key == 'S'
|
||||
call popup_close(a:id, 1)
|
||||
return 1
|
||||
endif
|
||||
if a:key == 'C'
|
||||
call popup_close(a:id, 2)
|
||||
return 1
|
||||
endif
|
||||
if a:key == 'D'
|
||||
call popup_close(a:id, 3)
|
||||
return 1
|
||||
endif
|
||||
|
||||
" No shortcut, pass to generic filter
|
||||
return popup_filter_menu(a:id, a:key)
|
||||
endfunc
|
||||
<
|
||||
*popup_beval_example*
|
||||
Example for using a popup window for 'ballooneval': >
|
||||
|
||||
set ballooneval balloonevalterm
|
||||
set balloonexpr=BalloonExpr()
|
||||
let s:winid = 0
|
||||
let s:last_text = ''
|
||||
|
||||
func BalloonExpr()
|
||||
if s:winid && popup_getpos(s:winid) != {}
|
||||
" previous popup window still shows
|
||||
if v:beval_text == s:last_text
|
||||
" Still the same text, keep the existing popup
|
||||
return ''
|
||||
endif
|
||||
call popup_close(s:winid)
|
||||
endif
|
||||
let s:winid = popup_beval(v:beval_text, {'mousemoved': 'word'})
|
||||
let s:last_text = v:beval_text
|
||||
return ''
|
||||
endfunc
|
||||
<
|
||||
If the text has to be obtained asynchronously return an empty string from the
|
||||
expression function and call popup_beval() once the text is available. In
|
||||
this example simulated with a timer callback: >
|
||||
|
||||
set ballooneval balloonevalterm
|
||||
set balloonexpr=BalloonExpr()
|
||||
let s:winid = 0
|
||||
let s:balloonText = ''
|
||||
|
||||
func BalloonExpr()
|
||||
if s:winid && popup_getpos(s:winid) != {}
|
||||
" previous popup window still shows
|
||||
if v:beval_text == s:balloonText
|
||||
" Still the same text, keep the existing popup
|
||||
return ''
|
||||
endif
|
||||
call popup_close(s:winid)
|
||||
let s:winid = 0
|
||||
endif
|
||||
" simulate an asynchronous loopup for the text to display
|
||||
let s:balloonText = v:beval_text
|
||||
call timer_start(100, 'ShowPopup')
|
||||
return ''
|
||||
endfunc
|
||||
|
||||
func ShowPopup(id)
|
||||
let s:winid = popup_beval(s:balloonText, {'mousemoved': 'word'})
|
||||
endfunc
|
||||
<
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*quickfix.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -102,7 +102,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
:ll[!] [nr] Same as ":cc", except the location list for the
|
||||
:[nr]ll[!] current window is used instead of the quickfix list.
|
||||
|
||||
*:cn* *:cnext* *E553*
|
||||
*:cn* *:cne* *:cnext* *E553*
|
||||
:[count]cn[ext][!] Display the [count] next error in the list that
|
||||
includes a file name. If there are no file names at
|
||||
all, go to the [count] next error. See |:cc| for
|
||||
@@ -246,7 +246,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
'encoding' option, you can use the 'makeencoding'
|
||||
option to specify the encoding.
|
||||
|
||||
*:lf* *:lfile*
|
||||
*:lf* *:lfi* *:lfile*
|
||||
:lf[ile][!] [errorfile] Same as ":cfile", except the location list for the
|
||||
current window is used instead of the quickfix list.
|
||||
You can not use the -q command-line option to set
|
||||
@@ -261,7 +261,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
option to specify the encoding.
|
||||
|
||||
|
||||
:lg[etfile] [errorfile] *:lg* *:lgetfile*
|
||||
:lg[etfile] [errorfile] *:lg* *:lge* *:lgetfile*
|
||||
Same as ":cgetfile", except the location list for the
|
||||
current window is used instead of the quickfix list.
|
||||
|
||||
@@ -299,7 +299,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
the current window is used instead of the quickfix
|
||||
list.
|
||||
|
||||
*:cad* *:caddbuffer*
|
||||
*:cad* *:cadd* *:caddbuffer*
|
||||
:cad[dbuffer] [bufnr] Read the error list from the current buffer and add
|
||||
the errors to the current quickfix list. If a
|
||||
quickfix list is not present, then a new list is
|
||||
@@ -346,7 +346,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
Example: >
|
||||
:g/mypattern/caddexpr expand("%") . ":" . line(".") . ":" . getline(".")
|
||||
<
|
||||
*:lad* *:laddexpr*
|
||||
*:lad* *:addd* *:laddexpr*
|
||||
:lad[dexpr] {expr} Same as ":caddexpr", except the location list for the
|
||||
current window is used instead of the quickfix list.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.1. Last change: 2019 Apr 28
|
||||
*quickref.txt* For Vim version 8.1. Last change: 2019 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -798,6 +798,7 @@ Short explanation of each option: *option-list*
|
||||
'menuitems' 'mis' maximum number of items in a menu
|
||||
'mkspellmem' 'msm' memory used before |:mkspell| compresses the tree
|
||||
'modeline' 'ml' recognize modelines at start or end of file
|
||||
'modelineexpr' 'mle' allow setting expression options from a modeline
|
||||
'modelines' 'mls' number of lines checked for modelines
|
||||
'modifiable' 'ma' changes to the text are not possible
|
||||
'modified' 'mod' buffer has been modified
|
||||
@@ -981,6 +982,7 @@ Short explanation of each option: *option-list*
|
||||
'wildmode' 'wim' mode for 'wildchar' command-line expansion
|
||||
'wildoptions' 'wop' specifies how command line completion is done
|
||||
'winaltkeys' 'wak' when the windows system handles ALT keys
|
||||
'wincolor' 'wcr' window-local highlighting
|
||||
'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
|
||||
'winheight' 'wh' minimum number of lines for the current window
|
||||
'winfixheight' 'wfh' keep window height when opening/closing windows
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*recover.txt* For Vim version 8.1. Last change: 2014 Mar 27
|
||||
*recover.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -131,7 +131,6 @@ command:
|
||||
flag is present in 'cpoptions' the swap file will not
|
||||
be deleted for this buffer when Vim exits and the
|
||||
buffer is still loaded |cpo-&|.
|
||||
{Vi: might also exit}
|
||||
|
||||
A Vim swap file can be recognized by the first six characters: "b0VIM ".
|
||||
After that comes the version number, e.g., "3.0".
|
||||
@@ -196,7 +195,6 @@ recovered file. Or use |:DiffOrig|.
|
||||
Once you are sure the recovery is ok delete the swap file. Otherwise, you
|
||||
will continue to get warning messages that the ".swp" file already exists.
|
||||
|
||||
{Vi: recovers in another way and sends mail if there is something to recover}
|
||||
|
||||
|
||||
ENCRYPTION AND THE SWAP FILE *:recover-crypt*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*repeat.txt* For Vim version 8.1. Last change: 2019 Jun 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -124,11 +124,11 @@ q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
|
||||
used for |y| and |p| the result is most likely not
|
||||
what is expected, because the put will paste the
|
||||
recorded macro and the yank will overwrite the
|
||||
recorded macro. {Vi: no recording}
|
||||
recorded macro.
|
||||
|
||||
q Stops recording. (Implementation note: The 'q' that
|
||||
stops recording is not stored in the register, unless
|
||||
it was the result of a mapping) {Vi: no recording}
|
||||
it was the result of a mapping)
|
||||
|
||||
*@*
|
||||
@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} [count]
|
||||
@@ -140,7 +140,7 @@ q Stops recording. (Implementation note: The 'q' that
|
||||
applies.
|
||||
For "@=" you are prompted to enter an expression. The
|
||||
result of the expression is then executed.
|
||||
See also |@:|. {Vi: only named registers}
|
||||
See also |@:|.
|
||||
|
||||
*@@* *E748*
|
||||
@@ Repeat the previous @{0-9a-z":*} [count] times.
|
||||
@@ -158,8 +158,8 @@ q Stops recording. (Implementation note: The 'q' that
|
||||
result of evaluating the expression is executed as an
|
||||
Ex command.
|
||||
Mappings are not recognized in these commands.
|
||||
{Vi: only in some versions} Future: Will execute the
|
||||
register for each line in the address range.
|
||||
Future: Will execute the register for each line in the
|
||||
address range.
|
||||
|
||||
*:@:*
|
||||
:[addr]@: Repeat last command-line. First set cursor at line
|
||||
@@ -178,7 +178,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
:so[urce] {file} Read Ex commands from {file}. These are commands that
|
||||
start with a ":".
|
||||
Triggers the |SourcePre| autocommand.
|
||||
|
||||
*:source!*
|
||||
:so[urce]! {file} Read Vim commands from {file}. These are commands
|
||||
that are executed from Normal mode, like you type
|
||||
them.
|
||||
@@ -186,6 +186,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
|:bufdo|, in a loop or when another command follows
|
||||
the display won't be updated while executing the
|
||||
commands.
|
||||
Cannot be used in the |sandbox|.
|
||||
|
||||
*:ru* *:runtime*
|
||||
:ru[ntime][!] [where] {file} ..
|
||||
@@ -279,9 +280,16 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
after loading your .vimrc file. With this command it
|
||||
can be done earlier.
|
||||
|
||||
Packages will be loaded only once. After this command
|
||||
it won't happen again. When the optional ! is added
|
||||
this command will load packages even when done before.
|
||||
Packages will be loaded only once. Using
|
||||
`:packloadall` a second time will have no effect.
|
||||
When the optional ! is added this command will load
|
||||
packages even when done before.
|
||||
|
||||
Note that when using `:packloadall` in the |vimrc|
|
||||
file, the 'runtimepath' option is updated, and later
|
||||
all plugins in 'runtimepath' will be loaded, which
|
||||
means they are loaded again. Plugins are expected to
|
||||
handle that.
|
||||
|
||||
An error only causes sourcing the script where it
|
||||
happens to be aborted, further plugins will be loaded.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*scroll.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*scroll.txt* For Vim version 8.1. Last change: 2019 May 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -82,9 +82,6 @@ CTRL-U Scroll window Upwards in the buffer. The number of
|
||||
may be a difference). When the cursor is on the first
|
||||
line of the buffer nothing happens and a beep is
|
||||
produced. See also 'startofline' option.
|
||||
{difference from vi: Vim scrolls 'scroll' screen
|
||||
lines, instead of file lines; makes a difference when
|
||||
lines wrap}
|
||||
|
||||
<S-Up> or *<S-Up>* *<kPageUp>*
|
||||
<PageUp> or *<PageUp>* *CTRL-B*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*sign.txt* For Vim version 8.1. Last change: 2019 Jun 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -182,9 +182,9 @@ See |sign_place()| for the equivalent Vim script function.
|
||||
|
||||
By default, the sign is assigned a default priority of 10. To
|
||||
assign a different priority value, use "priority={prio}" to
|
||||
specify a value. The priority is used to determine the
|
||||
highlight group used when multiple signs are placed on the
|
||||
same line.
|
||||
specify a value. The priority is used to determine the sign
|
||||
that is displayed when multiple signs are placed on the same
|
||||
line.
|
||||
|
||||
Examples: >
|
||||
:sign place 5 line=3 name=sign1 file=a.py
|
||||
@@ -204,7 +204,9 @@ See |sign_place()| for the equivalent Vim script function.
|
||||
it (e.g., when the debugger has stopped at a breakpoint).
|
||||
|
||||
The optional "group={group}" attribute can be used before
|
||||
"file=" to select a sign in a particular group.
|
||||
"file=" to select a sign in a particular group. The optional
|
||||
"priority={prio}" attribute can be used to change the priority
|
||||
of an existing sign.
|
||||
|
||||
:sign place {id} name={name} [buffer={nr}]
|
||||
Same, but use buffer {nr}. If the buffer argument is not
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*starting.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1252,7 +1252,7 @@ vimrc file.
|
||||
options to [file] (default ".exrc" in the current
|
||||
directory).
|
||||
|
||||
*:mkv* *:mkvimrc*
|
||||
*:mkv* *:mkvi* *:mkvimrc*
|
||||
:mkv[imrc][!] [file] Like ":mkexrc", but the default is ".vimrc" in the
|
||||
current directory. The ":version" command is also
|
||||
written to the file.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.1. Last change: 2019 Mar 29
|
||||
*syntax.txt* For Vim version 8.1. Last change: 2019 Jun 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -3140,7 +3140,7 @@ in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
|
||||
modeline at the end of your LaTeX file: >
|
||||
% vim: fdm=syntax
|
||||
If your system becomes too slow, then you might wish to look into >
|
||||
https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7
|
||||
https://vimhelp.org/vim_faq.txt.html#faq-29.7
|
||||
<
|
||||
*g:tex_nospell*
|
||||
Tex: No Spell Checking Wanted~
|
||||
@@ -4827,8 +4827,9 @@ cterm={attr-list} *highlight-cterm*
|
||||
The "cterm" argument is likely to be different from "term", when
|
||||
colors are used. For example, in a normal terminal comments could
|
||||
be underlined, in a color terminal they can be made Blue.
|
||||
Note: Many terminals (e.g., DOS console) can't mix these attributes
|
||||
with coloring. Use only one of "cterm=" OR "ctermfg=" OR "ctermbg=".
|
||||
Note: Some terminals (e.g., DOS console) can't mix these attributes
|
||||
with coloring. To be portable, use only one of "cterm=" OR "ctermfg="
|
||||
OR "ctermbg=".
|
||||
|
||||
ctermfg={color-nr} *highlight-ctermfg* *E421*
|
||||
ctermbg={color-nr} *highlight-ctermbg*
|
||||
@@ -5002,6 +5003,8 @@ Conceal placeholder characters substituted for concealed
|
||||
text (see 'conceallevel')
|
||||
*hl-Cursor*
|
||||
Cursor the character under the cursor
|
||||
lCursor the character under the cursor when |language-mapping|
|
||||
is used (see 'guicursor')
|
||||
*hl-CursorIM*
|
||||
CursorIM like Cursor, but used when in IME mode |CursorIM|
|
||||
*hl-CursorColumn*
|
||||
@@ -5207,6 +5210,15 @@ load the syntax file.
|
||||
The command also deletes the "b:current_syntax" variable, since no syntax is
|
||||
loaded after this command.
|
||||
|
||||
To clean up specific syntax groups for the current buffer: >
|
||||
:syntax clear {group-name} ..
|
||||
This removes all patterns and keywords for {group-name}.
|
||||
|
||||
To clean up specific syntax group lists for the current buffer: >
|
||||
:syntax clear @{grouplist-name} ..
|
||||
This sets {grouplist-name}'s contents to an empty list.
|
||||
|
||||
*:syntax-off* *:syn-off*
|
||||
If you want to disable syntax highlighting for all buffers, you need to remove
|
||||
the autocommands that load the syntax files: >
|
||||
:syntax off
|
||||
@@ -5216,14 +5228,6 @@ What this command actually does, is executing the command >
|
||||
See the "nosyntax.vim" file for details. Note that for this to work
|
||||
$VIMRUNTIME must be valid. See |$VIMRUNTIME|.
|
||||
|
||||
To clean up specific syntax groups for the current buffer: >
|
||||
:syntax clear {group-name} ..
|
||||
This removes all patterns and keywords for {group-name}.
|
||||
|
||||
To clean up specific syntax group lists for the current buffer: >
|
||||
:syntax clear @{grouplist-name} ..
|
||||
This sets {grouplist-name}'s contents to an empty list.
|
||||
|
||||
*:syntax-reset* *:syn-reset*
|
||||
If you have changed the colors and messed them up, use this command to get the
|
||||
defaults back: >
|
||||
|
||||
176
runtime/doc/tags
176
runtime/doc/tags
@@ -455,6 +455,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'mis' options.txt /*'mis'*
|
||||
'mkspellmem' options.txt /*'mkspellmem'*
|
||||
'ml' options.txt /*'ml'*
|
||||
'mle' options.txt /*'mle'*
|
||||
'mls' options.txt /*'mls'*
|
||||
'mm' options.txt /*'mm'*
|
||||
'mmd' options.txt /*'mmd'*
|
||||
@@ -462,6 +463,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'mmt' options.txt /*'mmt'*
|
||||
'mod' options.txt /*'mod'*
|
||||
'modeline' options.txt /*'modeline'*
|
||||
'modelineexpr' options.txt /*'modelineexpr'*
|
||||
'modelines' options.txt /*'modelines'*
|
||||
'modifiable' options.txt /*'modifiable'*
|
||||
'modified' options.txt /*'modified'*
|
||||
@@ -617,8 +619,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'nomagic' options.txt /*'nomagic'*
|
||||
'nomh' options.txt /*'nomh'*
|
||||
'noml' options.txt /*'noml'*
|
||||
'nomle' options.txt /*'nomle'*
|
||||
'nomod' options.txt /*'nomod'*
|
||||
'nomodeline' options.txt /*'nomodeline'*
|
||||
'nomodelineexpr' options.txt /*'nomodelineexpr'*
|
||||
'nomodifiable' options.txt /*'nomodifiable'*
|
||||
'nomodified' options.txt /*'nomodified'*
|
||||
'nomore' options.txt /*'nomore'*
|
||||
@@ -1181,6 +1185,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'wb' options.txt /*'wb'*
|
||||
'wc' options.txt /*'wc'*
|
||||
'wcm' options.txt /*'wcm'*
|
||||
'wcr' options.txt /*'wcr'*
|
||||
'wd' options.txt /*'wd'*
|
||||
'weirdinvert' options.txt /*'weirdinvert'*
|
||||
'wfh' options.txt /*'wfh'*
|
||||
@@ -1199,6 +1204,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'wildoptions' options.txt /*'wildoptions'*
|
||||
'wim' options.txt /*'wim'*
|
||||
'winaltkeys' options.txt /*'winaltkeys'*
|
||||
'wincolor' options.txt /*'wincolor'*
|
||||
'window' options.txt /*'window'*
|
||||
'winfixheight' options.txt /*'winfixheight'*
|
||||
'winfixwidth' options.txt /*'winfixwidth'*
|
||||
@@ -1345,6 +1351,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+scrollbind various.txt /*+scrollbind*
|
||||
+signs various.txt /*+signs*
|
||||
+smartindent various.txt /*+smartindent*
|
||||
+sound various.txt /*+sound*
|
||||
+spell various.txt /*+spell*
|
||||
+startuptime various.txt /*+startuptime*
|
||||
+statusline various.txt /*+statusline*
|
||||
+sun_workshop various.txt /*+sun_workshop*
|
||||
@@ -2043,6 +2051,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:abclear map.txt /*:abclear*
|
||||
:abo windows.txt /*:abo*
|
||||
:aboveleft windows.txt /*:aboveleft*
|
||||
:addd quickfix.txt /*:addd*
|
||||
:al windows.txt /*:al*
|
||||
:all windows.txt /*:all*
|
||||
:am gui.txt /*:am*
|
||||
@@ -2051,6 +2060,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:anoremenu gui.txt /*:anoremenu*
|
||||
:append insert.txt /*:append*
|
||||
:ar editing.txt /*:ar*
|
||||
:arg editing.txt /*:arg*
|
||||
:arga editing.txt /*:arga*
|
||||
:argadd editing.txt /*:argadd*
|
||||
:argd editing.txt /*:argd*
|
||||
@@ -2103,6 +2113,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:bp windows.txt /*:bp*
|
||||
:bprevious windows.txt /*:bprevious*
|
||||
:br windows.txt /*:br*
|
||||
:bre windows.txt /*:bre*
|
||||
:brea eval.txt /*:brea*
|
||||
:break eval.txt /*:break*
|
||||
:breaka repeat.txt /*:breaka*
|
||||
@@ -2132,12 +2143,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:cNf quickfix.txt /*:cNf*
|
||||
:cNfile quickfix.txt /*:cNfile*
|
||||
:ca map.txt /*:ca*
|
||||
:cab map.txt /*:cab*
|
||||
:cabbrev map.txt /*:cabbrev*
|
||||
:cabc map.txt /*:cabc*
|
||||
:cabclear map.txt /*:cabclear*
|
||||
:cabo quickfix.txt /*:cabo*
|
||||
:cabove quickfix.txt /*:cabove*
|
||||
:cad quickfix.txt /*:cad*
|
||||
:cadd quickfix.txt /*:cadd*
|
||||
:caddbuffer quickfix.txt /*:caddbuffer*
|
||||
:cadde quickfix.txt /*:cadde*
|
||||
:caddexpr quickfix.txt /*:caddexpr*
|
||||
@@ -2151,8 +2164,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:catch eval.txt /*:catch*
|
||||
:cb quickfix.txt /*:cb*
|
||||
:cbe quickfix.txt /*:cbe*
|
||||
:cbe quickfix.txt /*:cbe*
|
||||
:cbefore quickfix.txt /*:cbefore*
|
||||
:cbel quickfix.txt /*:cbel*
|
||||
:cbelow quickfix.txt /*:cbelow*
|
||||
:cbo quickfix.txt /*:cbo*
|
||||
:cbottom quickfix.txt /*:cbottom*
|
||||
@@ -2184,6 +2197,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:chd editing.txt /*:chd*
|
||||
:chdir editing.txt /*:chdir*
|
||||
:che tagsrch.txt /*:che*
|
||||
:chec tagsrch.txt /*:chec*
|
||||
:check tagsrch.txt /*:check*
|
||||
:checkpath tagsrch.txt /*:checkpath*
|
||||
:checkt editing.txt /*:checkt*
|
||||
:checktime editing.txt /*:checktime*
|
||||
@@ -2205,12 +2220,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:cme gui.txt /*:cme*
|
||||
:cmenu gui.txt /*:cmenu*
|
||||
:cn quickfix.txt /*:cn*
|
||||
:cne quickfix.txt /*:cne*
|
||||
:cnew quickfix.txt /*:cnew*
|
||||
:cnewer quickfix.txt /*:cnewer*
|
||||
:cnext quickfix.txt /*:cnext*
|
||||
:cnf quickfix.txt /*:cnf*
|
||||
:cnfile quickfix.txt /*:cnfile*
|
||||
:cno map.txt /*:cno*
|
||||
:cnor map.txt /*:cnor*
|
||||
:cnorea map.txt /*:cnorea*
|
||||
:cnoreabbrev map.txt /*:cnoreabbrev*
|
||||
:cnoremap map.txt /*:cnoremap*
|
||||
@@ -2244,6 +2261,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:con eval.txt /*:con*
|
||||
:conf editing.txt /*:conf*
|
||||
:confirm editing.txt /*:confirm*
|
||||
:cons eval.txt /*:cons*
|
||||
:const eval.txt /*:const*
|
||||
:continue eval.txt /*:continue*
|
||||
:cope quickfix.txt /*:cope*
|
||||
:copen quickfix.txt /*:copen*
|
||||
@@ -2261,6 +2280,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:cscope if_cscop.txt /*:cscope*
|
||||
:cstag if_cscop.txt /*:cstag*
|
||||
:cu map.txt /*:cu*
|
||||
:cun map.txt /*:cun*
|
||||
:cuna map.txt /*:cuna*
|
||||
:cunabbrev map.txt /*:cunabbrev*
|
||||
:cunmap map.txt /*:cunmap*
|
||||
@@ -2285,6 +2305,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:delmarks motion.txt /*:delmarks*
|
||||
:di change.txt /*:di*
|
||||
:dif diff.txt /*:dif*
|
||||
:diff diff.txt /*:diff*
|
||||
:diffg diff.txt /*:diffg*
|
||||
:diffget diff.txt /*:diffget*
|
||||
:diffo diff.txt /*:diffo*
|
||||
@@ -2308,6 +2329,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:dlist tagsrch.txt /*:dlist*
|
||||
:do autocmd.txt /*:do*
|
||||
:doau autocmd.txt /*:doau*
|
||||
:doaut autocmd.txt /*:doaut*
|
||||
:doautoa autocmd.txt /*:doautoa*
|
||||
:doautoall autocmd.txt /*:doautoall*
|
||||
:doautocmd autocmd.txt /*:doautocmd*
|
||||
@@ -2342,6 +2364,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:em gui.txt /*:em*
|
||||
:emenu gui.txt /*:emenu*
|
||||
:en eval.txt /*:en*
|
||||
:end eval.txt /*:end*
|
||||
:endf eval.txt /*:endf*
|
||||
:endfo eval.txt /*:endfo*
|
||||
:endfor eval.txt /*:endfor*
|
||||
@@ -2394,6 +2417,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:foldc fold.txt /*:foldc*
|
||||
:foldclose fold.txt /*:foldclose*
|
||||
:foldd fold.txt /*:foldd*
|
||||
:folddo fold.txt /*:folddo*
|
||||
:folddoc fold.txt /*:folddoc*
|
||||
:folddoclosed fold.txt /*:folddoclosed*
|
||||
:folddoopen fold.txt /*:folddoopen*
|
||||
@@ -2465,6 +2489,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:in insert.txt /*:in*
|
||||
:index index.txt /*:index*
|
||||
:ino map.txt /*:ino*
|
||||
:inor map.txt /*:inor*
|
||||
:inorea map.txt /*:inorea*
|
||||
:inoreabbrev map.txt /*:inoreabbrev*
|
||||
:inoremap map.txt /*:inoremap*
|
||||
@@ -2488,6 +2513,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:jumps motion.txt /*:jumps*
|
||||
:k motion.txt /*:k*
|
||||
:kee motion.txt /*:kee*
|
||||
:keep motion.txt /*:keep*
|
||||
:keepa editing.txt /*:keepa*
|
||||
:keepalt editing.txt /*:keepalt*
|
||||
:keepj motion.txt /*:keepj*
|
||||
@@ -2518,7 +2544,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:lat undo.txt /*:lat*
|
||||
:later undo.txt /*:later*
|
||||
:lb quickfix.txt /*:lb*
|
||||
:lbef quickfix.txt /*:lbef*
|
||||
:lbe quickfix.txt /*:lbe*
|
||||
:lbefore quickfix.txt /*:lbefore*
|
||||
:lbel quickfix.txt /*:lbel*
|
||||
:lbelow quickfix.txt /*:lbelow*
|
||||
@@ -2546,21 +2572,25 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:let-= eval.txt /*:let-=*
|
||||
:let-@ eval.txt /*:let-@*
|
||||
:let-environment eval.txt /*:let-environment*
|
||||
:let-heredoc eval.txt /*:let-heredoc*
|
||||
:let-option eval.txt /*:let-option*
|
||||
:let-register eval.txt /*:let-register*
|
||||
:let-unpack eval.txt /*:let-unpack*
|
||||
:let..= eval.txt /*:let..=*
|
||||
:let.= eval.txt /*:let.=*
|
||||
:let/= eval.txt /*:let\/=*
|
||||
:let=<< eval.txt /*:let=<<*
|
||||
:letstar= eval.txt /*:letstar=*
|
||||
:lex quickfix.txt /*:lex*
|
||||
:lexpr quickfix.txt /*:lexpr*
|
||||
:lf quickfix.txt /*:lf*
|
||||
:lfdo quickfix.txt /*:lfdo*
|
||||
:lfi quickfix.txt /*:lfi*
|
||||
:lfile quickfix.txt /*:lfile*
|
||||
:lfir quickfix.txt /*:lfir*
|
||||
:lfirst quickfix.txt /*:lfirst*
|
||||
:lg quickfix.txt /*:lg*
|
||||
:lge quickfix.txt /*:lge*
|
||||
:lgetb quickfix.txt /*:lgetb*
|
||||
:lgetbuffer quickfix.txt /*:lgetbuffer*
|
||||
:lgete quickfix.txt /*:lgete*
|
||||
@@ -2581,6 +2611,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:lli quickfix.txt /*:lli*
|
||||
:llist quickfix.txt /*:llist*
|
||||
:lm map.txt /*:lm*
|
||||
:lma map.txt /*:lma*
|
||||
:lmak quickfix.txt /*:lmak*
|
||||
:lmake quickfix.txt /*:lmake*
|
||||
:lmap map.txt /*:lmap*
|
||||
@@ -2600,6 +2631,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:loadkeymap mbyte.txt /*:loadkeymap*
|
||||
:loadview starting.txt /*:loadview*
|
||||
:loc motion.txt /*:loc*
|
||||
:lock motion.txt /*:lock*
|
||||
:lockmarks motion.txt /*:lockmarks*
|
||||
:lockv eval.txt /*:lockv*
|
||||
:lockvar eval.txt /*:lockvar*
|
||||
@@ -2689,6 +2721,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:mksp spell.txt /*:mksp*
|
||||
:mkspell spell.txt /*:mkspell*
|
||||
:mkv starting.txt /*:mkv*
|
||||
:mkvi starting.txt /*:mkvi*
|
||||
:mkvie starting.txt /*:mkvie*
|
||||
:mkview starting.txt /*:mkview*
|
||||
:mkvimrc starting.txt /*:mkvimrc*
|
||||
@@ -2983,6 +3016,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:setl options.txt /*:setl*
|
||||
:setlocal options.txt /*:setlocal*
|
||||
:sf windows.txt /*:sf*
|
||||
:sfi windows.txt /*:sfi*
|
||||
:sfind windows.txt /*:sfind*
|
||||
:sfir windows.txt /*:sfir*
|
||||
:sfirst windows.txt /*:sfirst*
|
||||
@@ -3036,6 +3070,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:sno change.txt /*:sno*
|
||||
:snomagic change.txt /*:snomagic*
|
||||
:snor map.txt /*:snor*
|
||||
:snore map.txt /*:snore*
|
||||
:snoremap map.txt /*:snoremap*
|
||||
:snoreme gui.txt /*:snoreme*
|
||||
:snoremenu gui.txt /*:snoremenu*
|
||||
@@ -3043,6 +3078,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:sor change.txt /*:sor*
|
||||
:sort change.txt /*:sort*
|
||||
:source repeat.txt /*:source*
|
||||
:source! repeat.txt /*:source!*
|
||||
:source_crnl repeat.txt /*:source_crnl*
|
||||
:sp windows.txt /*:sp*
|
||||
:spe spell.txt /*:spe*
|
||||
@@ -3137,7 +3173,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:syn-matchgroup syntax.txt /*:syn-matchgroup*
|
||||
:syn-multi-line syntax.txt /*:syn-multi-line*
|
||||
:syn-nextgroup syntax.txt /*:syn-nextgroup*
|
||||
:syn-off usr_06.txt /*:syn-off*
|
||||
:syn-off syntax.txt /*:syn-off*
|
||||
:syn-on syntax.txt /*:syn-on*
|
||||
:syn-oneline syntax.txt /*:syn-oneline*
|
||||
:syn-pattern syntax.txt /*:syn-pattern*
|
||||
@@ -3166,6 +3202,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:syncbind scroll.txt /*:syncbind*
|
||||
:syntax syntax.txt /*:syntax*
|
||||
:syntax-enable syntax.txt /*:syntax-enable*
|
||||
:syntax-off syntax.txt /*:syntax-off*
|
||||
:syntax-on syntax.txt /*:syntax-on*
|
||||
:syntax-reset syntax.txt /*:syntax-reset*
|
||||
:syntime syntax.txt /*:syntime*
|
||||
@@ -3282,6 +3319,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:update editing.txt /*:update*
|
||||
:v repeat.txt /*:v*
|
||||
:ve various.txt /*:ve*
|
||||
:ver various.txt /*:ver*
|
||||
:verb various.txt /*:verb*
|
||||
:verbose various.txt /*:verbose*
|
||||
:verbose-cmd various.txt /*:verbose-cmd*
|
||||
@@ -3367,6 +3405,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:xnoremap map.txt /*:xnoremap*
|
||||
:xnoreme gui.txt /*:xnoreme*
|
||||
:xnoremenu gui.txt /*:xnoremenu*
|
||||
:xr various.txt /*:xr*
|
||||
:xrestore various.txt /*:xrestore*
|
||||
:xu map.txt /*:xu*
|
||||
:xunmap map.txt /*:xunmap*
|
||||
:xunme gui.txt /*:xunme*
|
||||
@@ -3441,6 +3481,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<F9> term.txt /*<F9>*
|
||||
<Help> helphelp.txt /*<Help>*
|
||||
<Home> motion.txt /*<Home>*
|
||||
<Ignore> eval.txt /*<Ignore>*
|
||||
<Insert> insert.txt /*<Insert>*
|
||||
<Leader> map.txt /*<Leader>*
|
||||
<Left> motion.txt /*<Left>*
|
||||
@@ -4685,12 +4726,12 @@ E95 message.txt /*E95*
|
||||
E950 message.txt /*E950*
|
||||
E951 pattern.txt /*E951*
|
||||
E952 autocmd.txt /*E952*
|
||||
E953 eval.txt /*E953*
|
||||
E953 terminal.txt /*E953*
|
||||
E954 options.txt /*E954*
|
||||
E955 eval.txt /*E955*
|
||||
E955 terminal.txt /*E955*
|
||||
E956 pattern.txt /*E956*
|
||||
E957 eval.txt /*E957*
|
||||
E958 eval.txt /*E958*
|
||||
E958 terminal.txt /*E958*
|
||||
E96 diff.txt /*E96*
|
||||
E960 options.txt /*E960*
|
||||
E961 cmdline.txt /*E961*
|
||||
@@ -4723,7 +4764,16 @@ E985 eval.txt /*E985*
|
||||
E986 tagsrch.txt /*E986*
|
||||
E987 tagsrch.txt /*E987*
|
||||
E988 gui_w32.txt /*E988*
|
||||
E989 eval.txt /*E989*
|
||||
E99 diff.txt /*E99*
|
||||
E990 eval.txt /*E990*
|
||||
E991 eval.txt /*E991*
|
||||
E992 options.txt /*E992*
|
||||
E993 popup.txt /*E993*
|
||||
E994 eval.txt /*E994*
|
||||
E995 eval.txt /*E995*
|
||||
E996 eval.txt /*E996*
|
||||
E997 popup.txt /*E997*
|
||||
E999 repeat.txt /*E999*
|
||||
EX intro.txt /*EX*
|
||||
EXINIT starting.txt /*EXINIT*
|
||||
@@ -5316,6 +5366,7 @@ backup-changed version4.txt /*backup-changed*
|
||||
backup-extension version4.txt /*backup-extension*
|
||||
backup-table editing.txt /*backup-table*
|
||||
balloon-eval debugger.txt /*balloon-eval*
|
||||
balloon_gettext() eval.txt /*balloon_gettext()*
|
||||
balloon_show() eval.txt /*balloon_show()*
|
||||
balloon_split() eval.txt /*balloon_split()*
|
||||
bar motion.txt /*bar*
|
||||
@@ -5367,6 +5418,7 @@ break-finally eval.txt /*break-finally*
|
||||
browse() eval.txt /*browse()*
|
||||
browsedir() eval.txt /*browsedir()*
|
||||
browsefilter editing.txt /*browsefilter*
|
||||
bufadd() eval.txt /*bufadd()*
|
||||
bufexists() eval.txt /*bufexists()*
|
||||
buffer-functions usr_41.txt /*buffer-functions*
|
||||
buffer-hidden windows.txt /*buffer-hidden*
|
||||
@@ -5379,6 +5431,7 @@ buffer_number() eval.txt /*buffer_number()*
|
||||
buffers windows.txt /*buffers*
|
||||
buffers-menu gui.txt /*buffers-menu*
|
||||
buflisted() eval.txt /*buflisted()*
|
||||
bufload() eval.txt /*bufload()*
|
||||
bufloaded() eval.txt /*bufloaded()*
|
||||
bufname() eval.txt /*bufname()*
|
||||
bufnr() eval.txt /*bufnr()*
|
||||
@@ -5590,6 +5643,7 @@ charconvert_to-variable eval.txt /*charconvert_to-variable*
|
||||
charity uganda.txt /*charity*
|
||||
charset mbyte.txt /*charset*
|
||||
charset-conversion mbyte.txt /*charset-conversion*
|
||||
chdir() eval.txt /*chdir()*
|
||||
chill.vim syntax.txt /*chill.vim*
|
||||
chmod eval.txt /*chmod*
|
||||
cindent() eval.txt /*cindent()*
|
||||
@@ -6017,6 +6071,7 @@ encryption editing.txt /*encryption*
|
||||
end intro.txt /*end*
|
||||
end-of-file pattern.txt /*end-of-file*
|
||||
enlightened-terminal syntax.txt /*enlightened-terminal*
|
||||
environ() eval.txt /*environ()*
|
||||
erlang.vim syntax.txt /*erlang.vim*
|
||||
err_buf channel.txt /*err_buf*
|
||||
err_cb channel.txt /*err_cb*
|
||||
@@ -6090,6 +6145,7 @@ exp() eval.txt /*exp()*
|
||||
expand() eval.txt /*expand()*
|
||||
expand-env options.txt /*expand-env*
|
||||
expand-environment-var options.txt /*expand-environment-var*
|
||||
expandcmd() eval.txt /*expandcmd()*
|
||||
expr eval.txt /*expr*
|
||||
expr-! eval.txt /*expr-!*
|
||||
expr-!= eval.txt /*expr-!=*
|
||||
@@ -6471,6 +6527,7 @@ g:Netrw_UserMaps pi_netrw.txt /*g:Netrw_UserMaps*
|
||||
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
|
||||
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
|
||||
g:actual_curbuf options.txt /*g:actual_curbuf*
|
||||
g:actual_curwin options.txt /*g:actual_curwin*
|
||||
g:ada#Comment ft_ada.txt /*g:ada#Comment*
|
||||
g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds*
|
||||
g:ada#DotWordRegex ft_ada.txt /*g:ada#DotWordRegex*
|
||||
@@ -6661,6 +6718,7 @@ g:rustfmt_autosave ft_rust.txt /*g:rustfmt_autosave*
|
||||
g:rustfmt_command ft_rust.txt /*g:rustfmt_command*
|
||||
g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently*
|
||||
g:rustfmt_options ft_rust.txt /*g:rustfmt_options*
|
||||
g:statusline_winid options.txt /*g:statusline_winid*
|
||||
g:syntax_on syntax.txt /*g:syntax_on*
|
||||
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
|
||||
g:tar_cmd pi_tar.txt /*g:tar_cmd*
|
||||
@@ -6756,6 +6814,7 @@ getcmdwintype() eval.txt /*getcmdwintype()*
|
||||
getcompletion() eval.txt /*getcompletion()*
|
||||
getcurpos() eval.txt /*getcurpos()*
|
||||
getcwd() eval.txt /*getcwd()*
|
||||
getenv() eval.txt /*getenv()*
|
||||
getfontname() eval.txt /*getfontname()*
|
||||
getfperm() eval.txt /*getfperm()*
|
||||
getfsize() eval.txt /*getfsize()*
|
||||
@@ -7405,6 +7464,9 @@ list-index eval.txt /*list-index*
|
||||
list-modification eval.txt /*list-modification*
|
||||
list-repeat windows.txt /*list-repeat*
|
||||
list2str() eval.txt /*list2str()*
|
||||
listener_add() eval.txt /*listener_add()*
|
||||
listener_flush() eval.txt /*listener_flush()*
|
||||
listener_remove() eval.txt /*listener_remove()*
|
||||
lite.vim syntax.txt /*lite.vim*
|
||||
literal-string eval.txt /*literal-string*
|
||||
lnum-variable eval.txt /*lnum-variable*
|
||||
@@ -8042,6 +8104,7 @@ option-summary options.txt /*option-summary*
|
||||
option-window options.txt /*option-window*
|
||||
option_restore() todo.txt /*option_restore()*
|
||||
option_save() todo.txt /*option_save()*
|
||||
optional-function-argument eval.txt /*optional-function-argument*
|
||||
options options.txt /*options*
|
||||
options-changed version5.txt /*options-changed*
|
||||
options-in-terminal terminal.txt /*options-in-terminal*
|
||||
@@ -8088,6 +8151,7 @@ paragraph motion.txt /*paragraph*
|
||||
pascal.vim syntax.txt /*pascal.vim*
|
||||
patches-8 version8.txt /*patches-8*
|
||||
patches-8.1 version8.txt /*patches-8.1*
|
||||
patches-8.2 version8.txt /*patches-8.2*
|
||||
pathshorten() eval.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
pattern-atoms pattern.txt /*pattern-atoms*
|
||||
@@ -8157,8 +8221,44 @@ plugin-special usr_41.txt /*plugin-special*
|
||||
pmbcs-option print.txt /*pmbcs-option*
|
||||
pmbfn-option print.txt /*pmbfn-option*
|
||||
popt-option print.txt /*popt-option*
|
||||
popup popup.txt /*popup*
|
||||
popup-buffer popup.txt /*popup-buffer*
|
||||
popup-callback popup.txt /*popup-callback*
|
||||
popup-close popup.txt /*popup-close*
|
||||
popup-examples popup.txt /*popup-examples*
|
||||
popup-filter popup.txt /*popup-filter*
|
||||
popup-function-details popup.txt /*popup-function-details*
|
||||
popup-functions popup.txt /*popup-functions*
|
||||
popup-intro popup.txt /*popup-intro*
|
||||
popup-mask popup.txt /*popup-mask*
|
||||
popup-menu gui.txt /*popup-menu*
|
||||
popup-menu-added version5.txt /*popup-menu-added*
|
||||
popup-position popup.txt /*popup-position*
|
||||
popup-props popup.txt /*popup-props*
|
||||
popup-scrollbar popup.txt /*popup-scrollbar*
|
||||
popup-usage popup.txt /*popup-usage*
|
||||
popup-window popup.txt /*popup-window*
|
||||
popup-window-functions usr_41.txt /*popup-window-functions*
|
||||
popup.txt popup.txt /*popup.txt*
|
||||
popup_atcursor() popup.txt /*popup_atcursor()*
|
||||
popup_clear() popup.txt /*popup_clear()*
|
||||
popup_close() popup.txt /*popup_close()*
|
||||
popup_create() popup.txt /*popup_create()*
|
||||
popup_create-arguments popup.txt /*popup_create-arguments*
|
||||
popup_dialog() popup.txt /*popup_dialog()*
|
||||
popup_dialog-example popup.txt /*popup_dialog-example*
|
||||
popup_filter_menu() popup.txt /*popup_filter_menu()*
|
||||
popup_filter_yesno() popup.txt /*popup_filter_yesno()*
|
||||
popup_getoptions() popup.txt /*popup_getoptions()*
|
||||
popup_getpos() popup.txt /*popup_getpos()*
|
||||
popup_hide() popup.txt /*popup_hide()*
|
||||
popup_menu() popup.txt /*popup_menu()*
|
||||
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
|
||||
popup_move() popup.txt /*popup_move()*
|
||||
popup_notification() popup.txt /*popup_notification()*
|
||||
popup_setoptions() popup.txt /*popup_setoptions()*
|
||||
popup_settext() popup.txt /*popup_settext()*
|
||||
popup_show() popup.txt /*popup_show()*
|
||||
popupmenu-completion insert.txt /*popupmenu-completion*
|
||||
popupmenu-keys insert.txt /*popupmenu-keys*
|
||||
ports-5.2 version5.txt /*ports-5.2*
|
||||
@@ -8499,6 +8599,9 @@ script-variable eval.txt /*script-variable*
|
||||
scriptnames-dictionary eval.txt /*scriptnames-dictionary*
|
||||
scriptout-changed version4.txt /*scriptout-changed*
|
||||
scriptversion eval.txt /*scriptversion*
|
||||
scriptversion-1 eval.txt /*scriptversion-1*
|
||||
scriptversion-2 eval.txt /*scriptversion-2*
|
||||
scriptversion-3 eval.txt /*scriptversion-3*
|
||||
scroll-binding scroll.txt /*scroll-binding*
|
||||
scroll-cursor scroll.txt /*scroll-cursor*
|
||||
scroll-down scroll.txt /*scroll-down*
|
||||
@@ -8544,6 +8647,7 @@ setbufline() eval.txt /*setbufline()*
|
||||
setbufvar() eval.txt /*setbufvar()*
|
||||
setcharsearch() eval.txt /*setcharsearch()*
|
||||
setcmdpos() eval.txt /*setcmdpos()*
|
||||
setenv() eval.txt /*setenv()*
|
||||
setfperm() eval.txt /*setfperm()*
|
||||
setline() eval.txt /*setline()*
|
||||
setloclist() eval.txt /*setloclist()*
|
||||
@@ -8607,6 +8711,10 @@ slow-terminal term.txt /*slow-terminal*
|
||||
socket-interface channel.txt /*socket-interface*
|
||||
sort() eval.txt /*sort()*
|
||||
sorting change.txt /*sorting*
|
||||
sound_clear() eval.txt /*sound_clear()*
|
||||
sound_playevent() eval.txt /*sound_playevent()*
|
||||
sound_playfile() eval.txt /*sound_playfile()*
|
||||
sound_stop() eval.txt /*sound_stop()*
|
||||
soundfold() eval.txt /*soundfold()*
|
||||
space intro.txt /*space*
|
||||
spec-customizing pi_spec.txt /*spec-customizing*
|
||||
@@ -9162,29 +9270,29 @@ 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_dumpdiff() eval.txt /*term_dumpdiff()*
|
||||
term_dumpload() eval.txt /*term_dumpload()*
|
||||
term_dumpwrite() eval.txt /*term_dumpwrite()*
|
||||
term_getaltscreen() eval.txt /*term_getaltscreen()*
|
||||
term_getansicolors() eval.txt /*term_getansicolors()*
|
||||
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_setansicolors() eval.txt /*term_setansicolors()*
|
||||
term_setkill() eval.txt /*term_setkill()*
|
||||
term_setrestore() eval.txt /*term_setrestore()*
|
||||
term_setsize() eval.txt /*term_setsize()*
|
||||
term_start() eval.txt /*term_start()*
|
||||
term_wait() eval.txt /*term_wait()*
|
||||
term_dumpdiff() terminal.txt /*term_dumpdiff()*
|
||||
term_dumpload() terminal.txt /*term_dumpload()*
|
||||
term_dumpwrite() terminal.txt /*term_dumpwrite()*
|
||||
term_getaltscreen() terminal.txt /*term_getaltscreen()*
|
||||
term_getansicolors() terminal.txt /*term_getansicolors()*
|
||||
term_getattr() terminal.txt /*term_getattr()*
|
||||
term_getcursor() terminal.txt /*term_getcursor()*
|
||||
term_getjob() terminal.txt /*term_getjob()*
|
||||
term_getline() terminal.txt /*term_getline()*
|
||||
term_getscrolled() terminal.txt /*term_getscrolled()*
|
||||
term_getsize() terminal.txt /*term_getsize()*
|
||||
term_getstatus() terminal.txt /*term_getstatus()*
|
||||
term_gettitle() terminal.txt /*term_gettitle()*
|
||||
term_gettty() terminal.txt /*term_gettty()*
|
||||
term_list() terminal.txt /*term_list()*
|
||||
term_scrape() terminal.txt /*term_scrape()*
|
||||
term_sendkeys() terminal.txt /*term_sendkeys()*
|
||||
term_setansicolors() terminal.txt /*term_setansicolors()*
|
||||
term_setkill() terminal.txt /*term_setkill()*
|
||||
term_setrestore() terminal.txt /*term_setrestore()*
|
||||
term_setsize() terminal.txt /*term_setsize()*
|
||||
term_start() terminal.txt /*term_start()*
|
||||
term_wait() terminal.txt /*term_wait()*
|
||||
termcap term.txt /*termcap*
|
||||
termcap-changed version4.txt /*termcap-changed*
|
||||
termcap-colors term.txt /*termcap-colors*
|
||||
@@ -9215,6 +9323,7 @@ terminal-debugger terminal.txt /*terminal-debugger*
|
||||
terminal-diff terminal.txt /*terminal-diff*
|
||||
terminal-diffscreendump terminal.txt /*terminal-diffscreendump*
|
||||
terminal-dumptest terminal.txt /*terminal-dumptest*
|
||||
terminal-function-details terminal.txt /*terminal-function-details*
|
||||
terminal-functions usr_41.txt /*terminal-functions*
|
||||
terminal-info term.txt /*terminal-info*
|
||||
terminal-job-index index.txt /*terminal-job-index*
|
||||
@@ -9241,6 +9350,8 @@ 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_garbagecollect_soon() eval.txt /*test_garbagecollect_soon()*
|
||||
test_getvalue() eval.txt /*test_getvalue()*
|
||||
test_ignore_error() eval.txt /*test_ignore_error()*
|
||||
test_null_blob() eval.txt /*test_null_blob()*
|
||||
test_null_channel() eval.txt /*test_null_channel()*
|
||||
@@ -9282,6 +9393,7 @@ text-prop-functions textprop.txt /*text-prop-functions*
|
||||
text-prop-intro textprop.txt /*text-prop-intro*
|
||||
text-properties textprop.txt /*text-properties*
|
||||
textlock eval.txt /*textlock*
|
||||
textprop textprop.txt /*textprop*
|
||||
textprop.txt textprop.txt /*textprop.txt*
|
||||
tf.vim syntax.txt /*tf.vim*
|
||||
this_session-variable eval.txt /*this_session-variable*
|
||||
@@ -9451,8 +9563,11 @@ v:none eval.txt /*v:none*
|
||||
v:null eval.txt /*v:null*
|
||||
v:oldfiles eval.txt /*v:oldfiles*
|
||||
v:operator eval.txt /*v:operator*
|
||||
v:option_command eval.txt /*v:option_command*
|
||||
v:option_new eval.txt /*v:option_new*
|
||||
v:option_old eval.txt /*v:option_old*
|
||||
v:option_oldglobal eval.txt /*v:option_oldglobal*
|
||||
v:option_oldlocal eval.txt /*v:option_oldlocal*
|
||||
v:option_type eval.txt /*v:option_type*
|
||||
v:prevcount eval.txt /*v:prevcount*
|
||||
v:profiling eval.txt /*v:profiling*
|
||||
@@ -9492,6 +9607,7 @@ v:true eval.txt /*v:true*
|
||||
v:val eval.txt /*v:val*
|
||||
v:var eval.txt /*v:var*
|
||||
v:version eval.txt /*v:version*
|
||||
v:versionlong eval.txt /*v:versionlong*
|
||||
v:vim_did_enter eval.txt /*v:vim_did_enter*
|
||||
v:warningmsg eval.txt /*v:warningmsg*
|
||||
v:windowid eval.txt /*v:windowid*
|
||||
@@ -9650,6 +9766,7 @@ version7.txt version7.txt /*version7.txt*
|
||||
version8.0 version8.txt /*version8.0*
|
||||
version8.1 version8.txt /*version8.1*
|
||||
version8.txt version8.txt /*version8.txt*
|
||||
versionlong-variable eval.txt /*versionlong-variable*
|
||||
vi intro.txt /*vi*
|
||||
vi-differences vi_diff.txt /*vi-differences*
|
||||
vi-features vi_diff.txt /*vi-features*
|
||||
@@ -9795,6 +9912,7 @@ win32-vimrun gui_w32.txt /*win32-vimrun*
|
||||
win32-win3.1 os_win32.txt /*win32-win3.1*
|
||||
win32-win95 os_win32.txt /*win32-win95*
|
||||
win32s os_win32.txt /*win32s*
|
||||
win_execute() eval.txt /*win_execute()*
|
||||
win_findbuf() eval.txt /*win_findbuf()*
|
||||
win_getid() eval.txt /*win_getid()*
|
||||
win_gotoid() eval.txt /*win_gotoid()*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -56,7 +56,6 @@ CTRL-] Jump to the definition of the keyword under the
|
||||
to the [count] one. When no [count] is given the
|
||||
first one is jumped to. See |tag-matchlist| for
|
||||
jumping to other matching tags.
|
||||
{Vi: identifier after the cursor}
|
||||
|
||||
*v_CTRL-]*
|
||||
{Visual}CTRL-] Same as ":tag {name}", where {name} is the text that
|
||||
@@ -86,18 +85,21 @@ changed, to avoid confusion when using ":tnext". It is changed when using
|
||||
":tag {name}".
|
||||
|
||||
The ignore-case matches are not found for a ":tag" command when:
|
||||
- the 'ignorecase' option is off and 'tagcase' is "followic"
|
||||
- 'tagcase' is "followic" and the 'ignorecase' option is off
|
||||
- 'tagcase' is "followscs" and the 'ignorecase' option is off and the
|
||||
'smartcase' option is off or the pattern contains an upper case character.
|
||||
- 'tagcase' is "match"
|
||||
- 'tagcase' is "smart" and the pattern contains an upper case character.
|
||||
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
|
||||
contains an upper case character.
|
||||
|
||||
The ignore-case matches are found when:
|
||||
- a pattern is used (starting with a "/")
|
||||
- for ":tselect"
|
||||
- when 'tagcase' is "followic" and 'ignorecase' is off
|
||||
- when 'tagcase' is "match"
|
||||
- when 'tagcase' is "followscs" and the 'smartcase' option is off
|
||||
- when 'tagcase' is "followic" and 'ignorecase' is on
|
||||
- when 'tagcase' is "followscs" and 'ignorecase' is on or the 'smartcase'
|
||||
option is on and the pattern does not contain an upper case character
|
||||
- when 'tagcase' is "ignore"
|
||||
- when 'tagcase' is "smart" and the patter does not contain an upper case
|
||||
character
|
||||
|
||||
Note that using ignore-case tag searching disables binary searching in the
|
||||
tags file, which causes a slowdown. This can be avoided by fold-case sorting
|
||||
@@ -421,7 +423,6 @@ In a future version changing the buffer will be impossible. All this for
|
||||
security reasons: Somebody might hide a nasty command in the tags file, which
|
||||
would otherwise go unnoticed. Example: >
|
||||
:$d|/tag-function-name/
|
||||
{this security prevention is not present in Vi}
|
||||
|
||||
In Vi the ":tag" command sets the last search pattern when the tag is searched
|
||||
for. In Vim this is not done, the previous search pattern is still remembered,
|
||||
@@ -505,7 +506,7 @@ Some programs that generate tags files:
|
||||
ctags As found on most Unix systems. Only supports C. Only
|
||||
does the basic work.
|
||||
*Exuberant_ctags*
|
||||
exuberant ctags This a very good one. It works for C, C++, Java,
|
||||
exuberant ctags This is a very good one. It works for C, C++, Java,
|
||||
Fortran, Eiffel and others. It can generate tags for
|
||||
many items. See http://ctags.sourceforge.net.
|
||||
etags Connected to Emacs. Supports many languages.
|
||||
@@ -826,7 +827,7 @@ CTRL-W d Open a new window, with the cursor on the first
|
||||
(default: whole file).
|
||||
See |:search-args| for [/] and [!].
|
||||
|
||||
*:che* *:checkpath*
|
||||
*:che* *:chec* *:check* *:checkpath*
|
||||
:che[ckpath] List all the included files that could not be found.
|
||||
|
||||
:che[ckpath]! List all the included files.
|
||||
@@ -897,7 +898,7 @@ The following fields are optional:
|
||||
If the function returns |v:null| instead of a List, a standard tag lookup will
|
||||
be performed instead.
|
||||
|
||||
It is not allowed to change the tagstack from inside 'tagfunc'. *E986*
|
||||
It is not allowed to change the tagstack from inside 'tagfunc'. *E986*
|
||||
|
||||
The following is a hypothetical example of a function used for 'tagfunc'. It
|
||||
uses the output of |taglist()| to generate the result: a list of tags in the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 8.1. Last change: 2019 Apr 11
|
||||
*term.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -249,9 +249,6 @@ It is always possible to change individual strings by setting the
|
||||
appropriate option. For example: >
|
||||
:set t_ce=^V^[[K (CTRL-V, <Esc>, [, K)
|
||||
|
||||
{Vi: no terminal options. You have to exit Vi, edit the termcap entry and
|
||||
try again}
|
||||
|
||||
The options are listed below. The associated termcap code is always equal to
|
||||
the last two characters of the option name. Only one termcap code is
|
||||
required: Cursor motion, 't_cm'.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*terminal.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -12,35 +12,36 @@ The terminal feature is optional, use this to check if your Vim has it: >
|
||||
If the result is "1" you have it.
|
||||
|
||||
|
||||
1. Basic use |terminal-use|
|
||||
Typing |terminal-typing|
|
||||
Size and color |terminal-size-color|
|
||||
Syntax |:terminal|
|
||||
Resizing |terminal-resizing|
|
||||
Terminal Modes |Terminal-mode|
|
||||
Cursor style |terminal-cursor-style|
|
||||
Session |terminal-session|
|
||||
Special keys |terminal-special-keys|
|
||||
Unix |terminal-unix|
|
||||
MS-Windows |terminal-ms-windows|
|
||||
2. Terminal communication |terminal-communication|
|
||||
Vim to job: term_sendkeys() |terminal-to-job|
|
||||
Job to Vim: JSON API |terminal-api|
|
||||
Using the client-server feature |terminal-client-server|
|
||||
3. Remote testing |terminal-testing|
|
||||
4. Diffing screen dumps |terminal-diff|
|
||||
Writing a screen dump test for Vim |terminal-dumptest|
|
||||
Creating a screen dump |terminal-screendump|
|
||||
Comparing screen dumps |terminal-diffscreendump|
|
||||
5. Debugging |terminal-debug|
|
||||
Starting |termdebug-starting|
|
||||
Example session |termdebug-example|
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Other commands |termdebug-commands|
|
||||
Prompt mode |termdebug-prompt|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
1. Basic use |terminal-use|
|
||||
Typing |terminal-typing|
|
||||
Size and color |terminal-size-color|
|
||||
Command syntax |:terminal|
|
||||
Resizing |terminal-resizing|
|
||||
Terminal Modes |Terminal-mode|
|
||||
Cursor style |terminal-cursor-style|
|
||||
Session |terminal-session|
|
||||
Special keys |terminal-special-keys|
|
||||
Unix |terminal-unix|
|
||||
MS-Windows |terminal-ms-windows|
|
||||
2. Terminal functions |terminal-function-details|
|
||||
3. Terminal communication |terminal-communication|
|
||||
Vim to job: term_sendkeys() |terminal-to-job|
|
||||
Job to Vim: JSON API |terminal-api|
|
||||
Using the client-server feature |terminal-client-server|
|
||||
4. Remote testing |terminal-testing|
|
||||
5. Diffing screen dumps |terminal-diff|
|
||||
Writing a screen dump test for Vim |terminal-dumptest|
|
||||
Creating a screen dump |terminal-screendump|
|
||||
Comparing screen dumps |terminal-diffscreendump|
|
||||
6. Debugging |terminal-debug|
|
||||
Starting |termdebug-starting|
|
||||
Example session |termdebug-example|
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Other commands |termdebug-commands|
|
||||
Prompt mode |termdebug-prompt|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
The terminal feature requires the |+job| and |+channel| features.
|
||||
@@ -159,7 +160,7 @@ The |term_setansicolors()| function can be used to change the colors, and
|
||||
|term_getansicolors()| to get the currently used colors.
|
||||
|
||||
|
||||
Syntax ~
|
||||
Command syntax ~
|
||||
|
||||
:[range]ter[minal] [options] [command] *:ter* *:terminal*
|
||||
Open a new terminal window.
|
||||
@@ -426,8 +427,371 @@ ConPTY problems have been fixed "winpty" will be preferred.
|
||||
Environment variables are used to pass information to the running job:
|
||||
VIM_SERVERNAME v:servername
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Terminal communication *terminal-communication*
|
||||
2. Terminal functions *terminal-function-details*
|
||||
|
||||
*term_dumpdiff()*
|
||||
term_dumpdiff({filename}, {filename} [, {options}])
|
||||
Open a new window displaying the difference between the two
|
||||
files. The files must have been created with
|
||||
|term_dumpwrite()|.
|
||||
Returns the buffer number or zero when the diff fails.
|
||||
Also see |terminal-diff|.
|
||||
NOTE: this does not work with double-width characters yet.
|
||||
|
||||
The top part of the buffer contains the contents of the first
|
||||
file, the bottom part of the buffer contains the contents of
|
||||
the second file. The middle part shows the differences.
|
||||
The parts are separated by a line of equals.
|
||||
|
||||
If the {options} argument is present, it must be a Dict with
|
||||
these possible members:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the first file name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
cannot be |abandon|ed
|
||||
"bufnr" do not create a new buffer, use the
|
||||
existing buffer "bufnr". This buffer
|
||||
must have been previously created with
|
||||
term_dumpdiff() or term_dumpload() and
|
||||
visible in a window.
|
||||
"norestore" do not add the terminal window to a
|
||||
session file
|
||||
|
||||
Each character in the middle part indicates a difference. If
|
||||
there are multiple differences only the first in this list is
|
||||
used:
|
||||
X different character
|
||||
w different width
|
||||
f different foreground color
|
||||
b different background color
|
||||
a different attribute
|
||||
+ missing position in first file
|
||||
- missing position in second file
|
||||
|
||||
Using the "s" key the top and bottom parts are swapped. This
|
||||
makes it easy to spot a difference.
|
||||
|
||||
*term_dumpload()*
|
||||
term_dumpload({filename} [, {options}])
|
||||
Open a new window displaying the contents of {filename}
|
||||
The file must have been created with |term_dumpwrite()|.
|
||||
Returns the buffer number or zero when it fails.
|
||||
Also see |terminal-diff|.
|
||||
|
||||
For {options} see |term_dumpdiff()|.
|
||||
|
||||
*term_dumpwrite()*
|
||||
term_dumpwrite({buf}, {filename} [, {options}])
|
||||
Dump the contents of the terminal screen of {buf} in the file
|
||||
{filename}. This uses a format that can be used with
|
||||
|term_dumpload()| and |term_dumpdiff()|.
|
||||
If the job in the terminal already finished an error is given:
|
||||
*E958*
|
||||
If {filename} already exists an error is given: *E953*
|
||||
Also see |terminal-diff|.
|
||||
|
||||
{options} is a dictionary with these optional entries:
|
||||
"rows" maximum number of rows to dump
|
||||
"columns" maximum number of columns to dump
|
||||
|
||||
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_getansicolors({buf}) *term_getansicolors()*
|
||||
Get the ANSI color palette in use by terminal {buf}.
|
||||
Returns a List of length 16 where each element is a String
|
||||
representing a color in hexadecimal "#rrggbb" format.
|
||||
Also see |term_setansicolors()| and |g:terminal_ansi_colors|.
|
||||
If neither was used returns the default colors.
|
||||
|
||||
{buf} is used as with |term_getsize()|. 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 and
|
||||
with GUI enabled and/or the |+termguicolors| 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 blinking, zero when it
|
||||
is not blinking.
|
||||
"shape" 1 for a block cursor, 2 for underline and 3
|
||||
for a vertical bar.
|
||||
"color" color of the cursor, e.g. "green"
|
||||
|
||||
{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.
|
||||
|
||||
To get attributes of each character use |term_scrape()|.
|
||||
{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_setansicolors({buf}, {colors}) *term_setansicolors()*
|
||||
Set the ANSI color palette used by terminal {buf}.
|
||||
{colors} must be a List of 16 valid color names or hexadecimal
|
||||
color codes, like those accepted by |highlight-guifg|.
|
||||
Also see |term_getansicolors()| and |g:terminal_ansi_colors|.
|
||||
|
||||
The colors normally are:
|
||||
0 black
|
||||
1 dark red
|
||||
2 dark green
|
||||
3 brown
|
||||
4 dark blue
|
||||
5 dark magenta
|
||||
6 dark cyan
|
||||
7 light grey
|
||||
8 dark grey
|
||||
9 red
|
||||
10 green
|
||||
11 yellow
|
||||
12 blue
|
||||
13 magenta
|
||||
14 cyan
|
||||
15 white
|
||||
|
||||
These colors are used in the GUI and in the terminal when
|
||||
'termguicolors' is set. When not using GUI colors (GUI mode
|
||||
or 'termguicolors'), the terminal window always uses the 16
|
||||
ANSI colors of the underlying terminal.
|
||||
{only available when compiled with the |+terminal| feature and
|
||||
with GUI enabled and/or the |+termguicolors| feature}
|
||||
|
||||
term_setkill({buf}, {how}) *term_setkill()*
|
||||
When exiting Vim or trying to close the terminal window in
|
||||
another way, {how} defines whether the job in the terminal can
|
||||
be stopped.
|
||||
When {how} is empty (the default), the job will not be
|
||||
stopped, trying to exit will result in |E947|.
|
||||
Otherwise, {how} specifies what signal to send to the job.
|
||||
See |job_stop()| for the values.
|
||||
|
||||
After sending the signal Vim will wait for up to a second to
|
||||
check that the job actually stopped.
|
||||
|
||||
term_setrestore({buf}, {command}) *term_setrestore()*
|
||||
Set the command to write in a session file to restore the job
|
||||
in this terminal. The line written in the session file is: >
|
||||
terminal ++curwin ++cols=%d ++rows=%d {command}
|
||||
< Make sure to escape the command properly.
|
||||
|
||||
Use an empty {command} to run 'shell'.
|
||||
Use "NONE" to not restore this window.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
||||
Set the size of terminal {buf}. The size of the window
|
||||
containing the terminal will also be adjusted, if possible.
|
||||
If {rows} or {cols} is zero or negative, that dimension is not
|
||||
changed.
|
||||
|
||||
{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 error is given.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_start({cmd} [, {options}]) *term_start()*
|
||||
Open a terminal window and run {cmd} in it.
|
||||
|
||||
{cmd} can be a string or a List, like with |job_start()|. The
|
||||
string "NONE" can be used to open a terminal window without
|
||||
starting a job, the pty of the terminal can be used by a
|
||||
command like gdb.
|
||||
|
||||
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", "cwd", "env"
|
||||
"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 'termwinsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically; note that
|
||||
other window position can be defined with
|
||||
command modifiers, such as |:belowright|.
|
||||
"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
|
||||
"norestore" do not add the terminal window to a
|
||||
session file
|
||||
"term_kill" what to do when trying to close the
|
||||
terminal window, see |term_setkill()|
|
||||
"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.
|
||||
"ansi_colors" A list of 16 color names or hex codes
|
||||
defining the ANSI palette used in GUI
|
||||
color modes. See |g:terminal_ansi_colors|.
|
||||
"tty_type" (MS-Windows only): Specify which pty to
|
||||
use. See 'termwintype' for the values.
|
||||
|
||||
{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}
|
||||
|
||||
==============================================================================
|
||||
3. Terminal communication *terminal-communication*
|
||||
|
||||
There are several ways to communicate with the job running in a terminal:
|
||||
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
|
||||
@@ -495,7 +859,8 @@ Currently supported commands:
|
||||
directory, thus it's best to use the full path.
|
||||
|
||||
[options] is only used when opening a new window. If present,
|
||||
it must be a Dict. Similarly to |++opt|, These entries are recognized:
|
||||
it must be a Dict. Similarly to |++opt|, These entries are
|
||||
recognized:
|
||||
"ff" file format: "dos", "mac" or "unix"
|
||||
"fileformat" idem
|
||||
"enc" overrides 'fileencoding'
|
||||
@@ -533,7 +898,7 @@ In the job you can then do something like: >
|
||||
This will open the file "some_file.c" and put the cursor on line 123.
|
||||
|
||||
==============================================================================
|
||||
3. Remote testing *terminal-testing*
|
||||
4. 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
|
||||
@@ -548,7 +913,7 @@ Functions ~
|
||||
|
||||
|
||||
==============================================================================
|
||||
4. Diffing screen dumps *terminal-diff*
|
||||
5. Diffing screen dumps *terminal-diff*
|
||||
|
||||
In some cases it can be bothersome to test that Vim displays the right
|
||||
characters on the screen. E.g. with syntax highlighting. To make this
|
||||
@@ -649,7 +1014,7 @@ Alternatively, press "s" to swap the first and second dump. Do this several
|
||||
times so that you can spot the difference in the context of the text.
|
||||
|
||||
==============================================================================
|
||||
5. Debugging *terminal-debug* *terminal-debugger*
|
||||
6. Debugging *terminal-debug* *terminal-debugger*
|
||||
|
||||
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
|
||||
@@ -906,7 +1271,7 @@ When 'background' is "dark":
|
||||
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||
|
||||
|
||||
Shorcuts *termdebug_shortcuts*
|
||||
Shortcuts *termdebug_shortcuts*
|
||||
|
||||
You can define your own shortcuts (mappings) to control gdb, that can work in
|
||||
any window, using the TermDebugSendCommand() function. Example: >
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
*textprop.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*textprop.txt* For Vim version 8.1. Last change: 2019 Jun 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
Displaying text with properties attached. *text-properties*
|
||||
Displaying text with properties attached. *textprop* *text-properties*
|
||||
|
||||
THIS IS UNDER DEVELOPMENT - ANYTHING MAY STILL CHANGE *E967*
|
||||
|
||||
@@ -12,7 +12,6 @@ What is not working yet:
|
||||
- Adjusting column/length when inserting text
|
||||
- Text properties spanning more than one line
|
||||
- prop_find()
|
||||
- callbacks when text properties are outdated
|
||||
|
||||
|
||||
1. Introduction |text-prop-intro|
|
||||
@@ -57,7 +56,7 @@ A text property normally has the name of a property type, which defines
|
||||
how to highlight the text. The property type can have these entries:
|
||||
"highlight" name of the highlight group to use
|
||||
"combine" when TRUE the text property highlighting is combined
|
||||
with any syntax highligting, when omitted or FALSE the
|
||||
with any syntax highlighting, when omitted or FALSE the
|
||||
text property highlighting replaces the syntax
|
||||
highlighting
|
||||
"priority" when properties overlap, the one with the highest
|
||||
@@ -131,11 +130,17 @@ unless the whole line is deleted.
|
||||
When using replace mode, the text properties stay on the same character
|
||||
positions, even though the characters themselves change.
|
||||
|
||||
To update text properties after the text was changed, install a callback with
|
||||
`listener_add()`. E.g, if your plugin does spell checking, you can have the
|
||||
callback update spelling mistakes in the changed text. Vim will move the
|
||||
properties below the changed text, so that they still highlight the same text,
|
||||
thus you don't need to update these.
|
||||
|
||||
When text property columns are not updated ~
|
||||
|
||||
Text property columns are not updated: ~
|
||||
|
||||
- When setting the line with |setline()| or through an interface, such as Lua,
|
||||
Tcl or Python.
|
||||
Tcl or Python. Vim does not know what text got inserted or deleted.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*todo.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,6 +38,50 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Ongoing work on text properties, see src/textprop.c
|
||||
|
||||
Popup windows are being implemented, see |popup-window|.
|
||||
|
||||
Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
|
||||
20)
|
||||
Also put :argadd commands at the start for all buffers, so that their order
|
||||
remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.
|
||||
|
||||
Listener causes extra } to be inserted. (Paul Jolly, #4455)
|
||||
|
||||
Refactor: Move common things out of evalfunc.c, it's too big.
|
||||
|
||||
Template string: review #4491
|
||||
|
||||
Terminal test fails when vim is configured with some features. (Dominique,
|
||||
#4597)
|
||||
|
||||
Popup windows:
|
||||
- Implement flip option
|
||||
- Have a way to scroll to the bottom? (#4577)
|
||||
- Why does 'nrformats' leak from the popup window buffer???
|
||||
- Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
|
||||
Use ERROR_IF_POPUP_WINDOW for more commands.
|
||||
- Add 'balloonpopup': instead of showing text, let the callback open a popup
|
||||
window and return the window ID. The popup will then be closed when the
|
||||
mouse moves, except when it moves inside the popup.
|
||||
- For the "moved" property also include mouse movement?
|
||||
- Can the buffer be re-used if it was the last one, to avoid using up lots of
|
||||
buffer numbers?
|
||||
- Have an option to attach the popup to a text position, like text properties
|
||||
do. (#4560)
|
||||
- Make redrawing more efficient and avoid flicker:
|
||||
- put popup menu also put in popup_mask?
|
||||
- Invoke filter with character before mapping?
|
||||
- Figure out the size and position better.
|
||||
if wrapping splits a double-wide character
|
||||
if wrapping inserts indent
|
||||
- When drawing on top half a double-wide character, display ">" or "<" in the
|
||||
incomplete cell.
|
||||
- Use a popup window for the "info" item of completion instead of using a
|
||||
preview window. Ideas in issue #4544.
|
||||
How to add highlighting?
|
||||
|
||||
'incsearch' with :s: (#3321)
|
||||
- Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
|
||||
was set. (#3837)
|
||||
@@ -72,6 +116,8 @@ Terminal debugger:
|
||||
with another Vim instance.
|
||||
|
||||
Terminal emulator window:
|
||||
- When typing "exit" in a terminal window with a shell and it's the only
|
||||
window, should exit Vim instead of editing another buffer. (#4539)
|
||||
- When the job in the terminal doesn't use mouse events, let the scroll wheel
|
||||
scroll the scrollback, like a terminal does at the shell prompt. #2490
|
||||
And use modeless selection. #2962
|
||||
@@ -104,19 +150,40 @@ Terminal emulator window:
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
Support for popup widows:
|
||||
- Use text properties to define highlighting.
|
||||
- Proposal on issue #4063
|
||||
Sound: support on Mac? Or does libcanberra work there?
|
||||
|
||||
Notifications for text changes, could be used for LSP.
|
||||
- New event, similar to TextChanged, but guaranteed to provide sequential
|
||||
information of all text changes.
|
||||
Possibly build on undo info (but undo itself is also a change).
|
||||
How to deal with ":%s/this/that" ?
|
||||
Patch to use forward slash for completion even when 'shellslash' is set.
|
||||
Adds 'completepathslash'. (Yasuhiro Matsumoto, 2018 Nov 15, #3612)
|
||||
|
||||
Patch to add win_splitmove() function. (Andy Massimino, #4561)
|
||||
|
||||
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)
|
||||
|
||||
Patch to use timers in matchparen. (Daniel Hahler, #1338)
|
||||
Ready to include now?
|
||||
|
||||
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
|
||||
(#4087)
|
||||
|
||||
Patch to the code to get sign information. (Yegappan Lakshmanan, #4586)
|
||||
|
||||
":bnext" in a help buffer is supposed to go to the next help buffer, but it
|
||||
goes to any buffer, and then :bnext skips help buffers, since they are
|
||||
unlisted. (#4478)
|
||||
|
||||
Problem with German spell file. Hint for solution by Klaus-Peter Schreiner in
|
||||
#4314, solves the Rasenmäher problem.
|
||||
|
||||
Problem showing a line if the number column width changes when using "o".
|
||||
(Mateusz Morusiewicz, #4245)
|
||||
|
||||
Visual highlight not removed when 'dipslay' is "lastline" and line doesn't
|
||||
fit. (Kevin Lawler, #4457)
|
||||
|
||||
Does not build with MinGW out of the box:
|
||||
- _stat64 is not defined, need to use "struct stat" in vim.h
|
||||
- WINVER conflict, should use 0x0600 by default?
|
||||
@@ -124,6 +191,8 @@ Does not build with MinGW out of the box:
|
||||
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
|
||||
13, #2910) Can't reproduce?
|
||||
|
||||
Columns and Rows are long, they should be int.
|
||||
|
||||
Errors found with random data:
|
||||
heap-buffer-overflow in alist_add (#2472)
|
||||
|
||||
@@ -134,11 +203,7 @@ Include part of #3242?
|
||||
When a terminal exit_cb closes the window, a following typed key is lost, if
|
||||
it's in a mapping. (2018 Oct 6, #2302, #3522)
|
||||
|
||||
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)
|
||||
Patch for Inno Setup: #2739
|
||||
|
||||
Internal diff doesn't handle binary file like external diff does. (Mike
|
||||
Williams, 2018 Oct 30)
|
||||
@@ -148,13 +213,44 @@ Problem with :tlmenu: Detach item added with all modes? Issue #3563.
|
||||
The quoting of the [command] argument of :terminal is not clearly documented.
|
||||
Give a few examples. (#4288)
|
||||
|
||||
Opening a file with --remote-tab-silent that matches 'wildignore' does not
|
||||
work, results in (E479: No match". (#4610)
|
||||
|
||||
Bug: script written with "-W scriptout" contains Key codes, while the script
|
||||
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
|
||||
be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
|
||||
|
||||
":registers" should indicate char/block/linewise. (Ayberk Aydin, #4546)
|
||||
|
||||
Patch for ambiguous width characters in libvterm on MS-Windows 10.
|
||||
(Nobuhiro Takasaki, #4411)
|
||||
|
||||
Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
|
||||
|
||||
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
|
||||
Mar 5)
|
||||
|
||||
Some composing characters actually add a cell width to the character they are
|
||||
on top off, making the whole thing two characters wide. (#4526)
|
||||
|
||||
Should we include some part of pull request #4505, not increment changedtick
|
||||
in some cases? E.g. for ":write" when the changed flag was already off, the
|
||||
buffer didn't change at all.
|
||||
|
||||
Patch to add getreginfo() and setreg() with an option to set the unnamed
|
||||
register "", So that registers can be saved and fully restored.
|
||||
(Andy Massimino, 2018 Aug 24, #3370)
|
||||
|
||||
Line numbers in profile are off when function was defined with ":execute".
|
||||
(Daniel Hahler, #4511)
|
||||
|
||||
Add a way to create an empty, hidden buffer. Like doing ":new|hide".
|
||||
":let buf = bufcreate('name')
|
||||
|
||||
Session file contains absolute paths when "curdir" is removed form
|
||||
'sessionoptions', making it impossible to have a session with a relative path.
|
||||
(#4450)
|
||||
|
||||
When using a timer callback vgetc_busy is reset, allowing for using input().
|
||||
But in a channel callback this does not happen. We need to do something
|
||||
similar to check_due_timer(). Also see #3809.
|
||||
@@ -176,13 +272,6 @@ negative. (see #4326)
|
||||
tab page. (Ingo Karkat, #4324)
|
||||
:call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well.
|
||||
|
||||
Add a chdir() function, which will set the window-local, tab-local or global
|
||||
directory, first one that is currently used. Returns the current directory,
|
||||
so that this works:
|
||||
let save_dir = chdir('somewhere')
|
||||
...
|
||||
call chdir(save_dir)
|
||||
|
||||
This modeline throws unexpected errors: (#4165)
|
||||
vim: syn=nosyntax
|
||||
|
||||
@@ -205,6 +294,8 @@ https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
|
||||
|
||||
Still a E315 error when using terminal. (Masato Nishihata, #3959)
|
||||
|
||||
Not existing directory in CDPATH leads to two shell calls. (#4525)
|
||||
|
||||
Use dict_iterate_start() / dict_iterate_next() instead of relying on the
|
||||
internals of the dict structure.
|
||||
|
||||
@@ -247,6 +338,11 @@ punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
|
||||
|
||||
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
|
||||
|
||||
Patch to add more info to OptionSet. Should mention what triggered the change
|
||||
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
|
||||
#4118. Proposed implementation: 2019 Mar 27.
|
||||
Updated 2019 May 25.
|
||||
|
||||
Using single wide base character with double wide composing character gives
|
||||
drawing errors. Fill up the base character? (Dominique, #4328)
|
||||
|
||||
@@ -271,40 +367,11 @@ when possible. (Dylan Lloyd, #3973)
|
||||
Make ":interactive !cmd" stop termcap mode, also when used in an autocommand.
|
||||
(#3692)
|
||||
|
||||
Patch to add environ(), gets a dict with all environment vars, and getenv(),
|
||||
useful for environment vars that are not made of keyword chars.
|
||||
(Yasuhiro Matsumoto, #2875)
|
||||
|
||||
Add buffer argument to undotree(). (#4001)
|
||||
|
||||
Patch to restore X11 connection. (#844)
|
||||
|
||||
Patch to add optional arguments with default values.
|
||||
(Andy Massimino, #3952) Needs to be reviewed.
|
||||
|
||||
Patch to add more info to OptionSet. Should mention what triggered the change
|
||||
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
|
||||
#4118. Proposed implementation: 2019 Mar 27.
|
||||
Updated 2019 Apr 9: ASAN fails.
|
||||
|
||||
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
|
||||
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
|
||||
Nov 17) Asked about this, Dec 22. Christian will have a look.
|
||||
|
||||
Patch for larger icons in installer. (#978) Still not good.
|
||||
|
||||
Patch to add commands to jump to quickfix entry above/below the cursor.
|
||||
(Yegappan Lakshmanan, #4316) Also do :cbefore and :cafter.
|
||||
|
||||
Patch to fix that using "5gj" starting inside a closed fold does not work on
|
||||
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
|
||||
|
||||
Patch to implement 'diffref' option. (#3535)
|
||||
Easier to use a 'diffmaster' option, is the extra complexity needed?
|
||||
Not ready to include.
|
||||
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
Using uninitialized value in test_gn
|
||||
Using uninitialized value in test_crypt.
|
||||
memory leak in test_paste
|
||||
Memory leak in test_terminal:
|
||||
==23530== by 0x2640D7: alloc (misc2.c:874)
|
||||
==23530== by 0x2646D6: vim_strsave (misc2.c:1315)
|
||||
@@ -315,26 +382,22 @@ Memory leak in test_terminal:
|
||||
==23530== by 0x35C923: term_start (terminal.c:421)
|
||||
==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377)
|
||||
==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383)
|
||||
TODO: be able to run all parts of test_alot with valgrind separately
|
||||
Memory leak in test_alot with pyeval() (allocating partial)
|
||||
Memory leak in test_alot with expand()
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
|
||||
gethostbyname() is old, use getaddrinfo() if available. (#3227)
|
||||
|
||||
matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
|
||||
19.
|
||||
|
||||
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
|
||||
Does #2405 do this?
|
||||
|
||||
Patch to add an interrupt() function: sets got_int. Useful in an autocommand
|
||||
such as BufWritePre that checks the file name or contents.
|
||||
|
||||
More patches to check:
|
||||
- #4098 improve Travis config
|
||||
|
||||
Should make 'listchars' global-local. Local to window or to buffer?
|
||||
Probably window.
|
||||
Add something like 'fillchars' local to window, but allow for specifying a
|
||||
highlight name. Esp. for the statusline.
|
||||
And "extends" and "precedes" are also useful without 'list' set. Also in
|
||||
'fillchars' or another option?
|
||||
|
||||
Sourceforge Vim pages still have content, redirect from empty page.
|
||||
Check for PHP errors. (Wayne Davison, 2018 Oct 26)
|
||||
@@ -343,6 +406,22 @@ Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871)
|
||||
Use something like ":tag {kind}/{tagname}".
|
||||
Not ready to include.
|
||||
|
||||
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
|
||||
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
|
||||
Nov 17) Asked about this, Dec 22. Christian will have a look.
|
||||
|
||||
Patch for larger icons in installer. (#978) Still not good.
|
||||
|
||||
Patch to fix that using "5gj" starting inside a closed fold does not work on
|
||||
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
|
||||
|
||||
Patch to implement 'diffref' option. (#3535)
|
||||
Easier to use a 'diffmaster' option, is the extra complexity needed?
|
||||
Not ready to include.
|
||||
|
||||
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
|
||||
Patch #2405 does something like this, but in the wrong way.
|
||||
|
||||
:pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12,
|
||||
#3536)
|
||||
|
||||
@@ -362,9 +441,6 @@ Feedback from someone who uses this?
|
||||
|
||||
ml_get error. (Dominique Pelle, 2018 Sep 14, #3434)
|
||||
|
||||
Patch to use forward slash for completion even when 'shellslash' is set.
|
||||
Adds 'completepathslash'. (Yasuhiro Matsumoto, 2018 Nov 15, #3612)
|
||||
|
||||
Only output t_Cs when t_Ce is also set. do not use Cs and Ce termcap entries. (Daniel Hahler, 2018 Sep 25)
|
||||
Add t_cS and t_cR for cursor color select and reset. Use Cs and Cr terminfo
|
||||
values.
|
||||
@@ -390,15 +466,14 @@ includes the first screen line. (2018 Aug 23, #3368)
|
||||
Refactored HTML indent file. (Michael Lee, #1821)
|
||||
Ask to write a test first.
|
||||
|
||||
Patch to add getregpoint() and setreg() with an option to set "".
|
||||
(Andy Massimino, 2018 Aug 24, #3370)
|
||||
Better name?
|
||||
|
||||
MS-Windows: .lnk file not resolved properly when 'encoding' is set.
|
||||
(lkintact, 2018 Sep 22, #3473)
|
||||
|
||||
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
|
||||
|
||||
Request to add sign_setlist() to make it faster to add a lot of signs, e.g.
|
||||
when adding a sign for every quickfix entry. (#4557)
|
||||
|
||||
Win32 key codes are messy. Mike Williams tried to fix that, but now old
|
||||
mappings no longer work. Create a new terminal for the better solution?
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*undo.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*undo.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -19,26 +19,24 @@ The basics are explained in section |02.5| of the user manual.
|
||||
1. Undo and redo commands *undo-commands*
|
||||
|
||||
<Undo> or *undo* *<Undo>* *u*
|
||||
u Undo [count] changes. {Vi: only one level}
|
||||
u Undo [count] changes.
|
||||
|
||||
*:u* *:un* *:undo*
|
||||
:u[ndo] Undo one change. {Vi: only one level}
|
||||
:u[ndo] Undo one change.
|
||||
*E830*
|
||||
:u[ndo] {N} Jump to after change number {N}. See |undo-branches|
|
||||
for the meaning of {N}.
|
||||
|
||||
*CTRL-R*
|
||||
CTRL-R Redo [count] changes which were undone. {Vi: redraw
|
||||
screen}
|
||||
CTRL-R Redo [count] changes which were undone.
|
||||
|
||||
*:red* *:redo* *redo*
|
||||
:red[o] Redo one change which was undone. {Vi: no redo}
|
||||
:red[o] Redo one change which was undone.
|
||||
|
||||
*U*
|
||||
U Undo all latest changes on one line, the line where
|
||||
the latest change was made. |U| itself also counts as
|
||||
a change, and thus |U| undoes a previous |U|.
|
||||
{Vi: while not moved off of the last modified line}
|
||||
|
||||
The last changes are remembered. You can use the undo and redo commands above
|
||||
to revert the text to how it was before each change. You can also apply the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 8.1. Last change: 2019 Feb 27
|
||||
*usr_05.txt* For Vim version 8.1. Last change: 2019 May 23
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -234,7 +234,7 @@ remote connection, increase the number. See 'ttimeout'.
|
||||
set display=truncate
|
||||
|
||||
Show @@@ in the last line if it is truncated, instead of hiding the whole
|
||||
like. See 'display'.
|
||||
line. See 'display'.
|
||||
|
||||
>
|
||||
set incsearch
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_06.txt* For Vim version 8.1. Last change: 2009 Oct 28
|
||||
*usr_06.txt* For Vim version 8.1. Last change: 2019 Jun 01
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -196,13 +196,12 @@ too slow, you might want to disable syntax highlighting for a moment: >
|
||||
|
||||
When editing another file (or the same one) the colors will come back.
|
||||
|
||||
*:syn-off*
|
||||
If you want to stop highlighting completely use: >
|
||||
|
||||
:syntax off
|
||||
|
||||
This will completely disable syntax highlighting and remove it immediately for
|
||||
all buffers.
|
||||
all buffers. See |:syntax-off| for more details.
|
||||
|
||||
*:syn-manual*
|
||||
If you want syntax highlighting only for specific files, use this: >
|
||||
|
||||
@@ -220,7 +220,7 @@ a tab page share this directory except for windows with a window-local
|
||||
directory. Any new windows opened in this tab page will use this directory as
|
||||
the current working directory. Using a `:cd` command in a tab page will not
|
||||
change the working directory of tab pages which have a tab local directory.
|
||||
When the global working directory is changed using the ":cd" command in a tab
|
||||
When the global working directory is changed using the `:cd` command in a tab
|
||||
page, it will also change the current tab page working directory.
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.1. Last change: 2019 May 04
|
||||
*usr_41.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -105,20 +105,21 @@ We won't explain how |:for| and |range()| work until later. Follow the links
|
||||
if you are impatient.
|
||||
|
||||
|
||||
THREE KINDS OF NUMBERS
|
||||
FOUR KINDS OF NUMBERS
|
||||
|
||||
Numbers can be decimal, hexadecimal or octal. A hexadecimal number starts
|
||||
with "0x" or "0X". For example "0x1f" is decimal 31. An octal number starts
|
||||
with a zero. "017" is decimal 15. Careful: don't put a zero before a decimal
|
||||
number, it will be interpreted as an octal number!
|
||||
Numbers can be decimal, hexadecimal, octal or binary. A hexadecimal number
|
||||
starts with "0x" or "0X". For example "0x1f" is decimal 31. An octal number
|
||||
starts with a zero. "017" is decimal 15. A binary number starts with "0b" or
|
||||
"0B". For example "0b101" is decimal 5. Careful: don't put a zero before a
|
||||
decimal number, it will be interpreted as an octal number!
|
||||
The ":echo" command always prints decimal numbers. Example: >
|
||||
|
||||
:echo 0x7f 036
|
||||
< 127 30 ~
|
||||
|
||||
A number is made negative with a minus sign. This also works for hexadecimal
|
||||
and octal numbers. A minus sign is also used for subtraction. Compare this
|
||||
with the previous example: >
|
||||
A number is made negative with a minus sign. This also works for hexadecimal,
|
||||
octal and binary numbers. A minus sign is also used for subtraction. Compare
|
||||
this with the previous example: >
|
||||
|
||||
:echo 0x7f -036
|
||||
< 97 ~
|
||||
@@ -608,12 +609,14 @@ String manipulation: *string-functions*
|
||||
strcharpart() get part of a string using char index
|
||||
strgetchar() get character from a string using char index
|
||||
expand() expand special keywords
|
||||
expandcmd() expand a command like done for `:edit`
|
||||
iconv() convert text from one encoding to another
|
||||
byteidx() byte index of a character in a string
|
||||
byteidxcomp() like byteidx() but count composing characters
|
||||
repeat() repeat a string multiple times
|
||||
eval() evaluate a string expression
|
||||
execute() execute an Ex command and get the output
|
||||
win_execute() like execute() but in a specified window
|
||||
trim() trim characters from a string
|
||||
|
||||
List manipulation: *list-functions*
|
||||
@@ -717,6 +720,7 @@ Cursor and mark position: *cursor-functions* *mark-functions*
|
||||
cursor() position the cursor at a line/column
|
||||
screencol() get screen column of the cursor
|
||||
screenrow() get screen row of the cursor
|
||||
screenpos() screen row and col of a text character
|
||||
getcurpos() get position of the cursor
|
||||
getpos() get position of cursor, mark, etc.
|
||||
setpos() set position of cursor, mark, etc.
|
||||
@@ -745,6 +749,12 @@ Working with text in the current buffer: *text-functions*
|
||||
getcharsearch() return character search information
|
||||
setcharsearch() set character search information
|
||||
|
||||
Working with text in another buffer:
|
||||
getbufline() get a list of lines from the specified buffer
|
||||
setbufline() replace a line in the specified buffer
|
||||
appendbufline() append a list of lines in the specified buffer
|
||||
deletebufline() delete lines from a specified buffer
|
||||
|
||||
*system-functions* *file-functions*
|
||||
System functions and manipulation of files:
|
||||
glob() expand wildcards
|
||||
@@ -769,10 +779,14 @@ System functions and manipulation of files:
|
||||
haslocaldir() check if current window used |:lcd| or |:tcd|
|
||||
tempname() get the name of a temporary file
|
||||
mkdir() create a new directory
|
||||
chdir() change current working directory
|
||||
delete() delete a file
|
||||
rename() rename a file
|
||||
system() get the result of a shell command as a string
|
||||
systemlist() get the result of a shell command as a list
|
||||
environ() get all environment variables
|
||||
getenv() get one environment variable
|
||||
setenv() set an environment variable
|
||||
hostname() name of the system
|
||||
readfile() read a file into a List of lines
|
||||
readdir() get a List of file names in a directory
|
||||
@@ -792,8 +806,10 @@ Buffers, windows and the argument list:
|
||||
argidx() current position in the argument list
|
||||
arglistid() get id of the argument list
|
||||
argv() get one entry from the argument list
|
||||
bufadd() add a file to the list of buffers
|
||||
bufexists() check if a buffer exists
|
||||
buflisted() check if a buffer exists and is listed
|
||||
bufload() ensure a buffer is loaded
|
||||
bufloaded() check if a buffer exists and is loaded
|
||||
bufname() get the name of a specific buffer
|
||||
bufnr() get the buffer number of a specific buffer
|
||||
@@ -804,10 +820,9 @@ Buffers, windows and the argument list:
|
||||
bufwinid() get the window ID of a specific buffer
|
||||
bufwinnr() get the window number of a specific buffer
|
||||
winbufnr() get the buffer number of a specific window
|
||||
getbufline() get a list of lines from the specified buffer
|
||||
setbufline() replace a line in the specified buffer
|
||||
appendbufline() append a list of lines in the specified buffer
|
||||
deletebufline() delete lines from a specified buffer
|
||||
listener_add() add a callback to listen to changes
|
||||
listener_flush() invoke listener callbacks
|
||||
listener_remove() remove a listener callback
|
||||
win_findbuf() find windows containing a buffer
|
||||
win_getid() get window ID of a window
|
||||
win_gotoid() go to window with ID
|
||||
@@ -902,6 +917,7 @@ GUI: *gui-functions*
|
||||
getwinposy() Y position of the Vim window
|
||||
balloon_show() set the balloon content
|
||||
balloon_split() split a message for a balloon
|
||||
balloon_gettext() get the text in the balloon
|
||||
|
||||
Vim server: *server-functions*
|
||||
serverlist() return the list of server names
|
||||
@@ -946,6 +962,7 @@ Testing: *test-functions*
|
||||
test_autochdir() enable 'autochdir' during startup
|
||||
test_override() test with Vim internal overrides
|
||||
test_garbagecollect_now() free memory right now
|
||||
test_getvalue() get value of an internal variable
|
||||
test_ignore_error() ignore a specific error message
|
||||
test_null_blob() return a null Blob
|
||||
test_null_channel() return a null Channel
|
||||
@@ -1026,6 +1043,27 @@ Terminal window: *terminal-functions*
|
||||
term_setrestore() set command to restore a terminal
|
||||
term_setsize() set the size of a terminal
|
||||
|
||||
Popup window: *popup-window-functions*
|
||||
popup_create() create popup centered in the screen
|
||||
popup_atcursor() create popup just above the cursor position,
|
||||
closes when the cursor moves away
|
||||
popup_beval() at the position indicated by v:beval_
|
||||
variables, closes when the mouse moves away
|
||||
popup_notification() show a notification for three seconds
|
||||
popup_dialog() create popup centered with padding and border
|
||||
popup_menu() prompt for selecting an item from a list
|
||||
popup_hide() hide a popup temporarily
|
||||
popup_show() show a previously hidden popup
|
||||
popup_move() change the position and size of a popup
|
||||
popup_setoptions() override options of a popup
|
||||
popup_settext() replace the popup buffer contents
|
||||
popup_close() close one popup
|
||||
popup_clear() close all popups
|
||||
popup_filter_menu() select from a list of items
|
||||
popup_filter_yesno() blocks until 'y' or 'n' is pressed
|
||||
popup_getoptions() get current options for a popup
|
||||
popup_getpos() get actual position and size of a popup
|
||||
|
||||
Timers: *timer-functions*
|
||||
timer_start() create a timer
|
||||
timer_pause() pause or unpause a timer
|
||||
|
||||
@@ -281,9 +281,8 @@ unpacked them.
|
||||
In case you are not satisfied with the features included in the supplied
|
||||
binaries, you could try compiling Vim yourself. Get the source archive from
|
||||
the same location as where the binaries are. You need a compiler for which a
|
||||
makefile exists. Microsoft Visual C works, but is expensive. The Free
|
||||
Borland command-line compiler 5.5 can be used, as well as the free MingW and
|
||||
Cygwin compilers. Check the file src/INSTALLpc.txt for hints.
|
||||
makefile exists. Microsoft Visual C works, but is expensive. The free MinGW
|
||||
and Cygwin compilers can be used. Check the file src/INSTALLpc.txt for hints.
|
||||
|
||||
==============================================================================
|
||||
*90.3* Upgrading
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_toc.txt* For Vim version 8.1. Last change: 2016 Mar 25
|
||||
*usr_toc.txt* For Vim version 8.1. Last change: 2019 May 24
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -103,12 +103,13 @@ Read this from start to end to learn the essential commands.
|
||||
|usr_05.txt| Set your settings
|
||||
|05.1| The vimrc file
|
||||
|05.2| The example vimrc file explained
|
||||
|05.3| Simple mappings
|
||||
|05.4| Adding a package
|
||||
|05.5| Adding a plugin
|
||||
|05.6| Adding a help file
|
||||
|05.7| The option window
|
||||
|05.8| Often used options
|
||||
|05.3| The defaults.vim file explained
|
||||
|05.4| Simple mappings
|
||||
|05.5| Adding a package
|
||||
|05.6| Adding a plugin
|
||||
|05.7| Adding a help file
|
||||
|05.8| The option window
|
||||
|05.9| Often used options
|
||||
|
||||
|usr_06.txt| Using syntax highlighting
|
||||
|06.1| Switching it on
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*various.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -288,7 +288,7 @@ g8 Print the hex values of the bytes used in the
|
||||
*:!!*
|
||||
:!! Repeat last ":!{cmd}".
|
||||
|
||||
*:ve* *:version*
|
||||
*:ve* *:ver* *:version*
|
||||
:ve[rsion] Print the version number of the editor. If the
|
||||
compiler used understands "__DATE__" the compilation
|
||||
date is mentioned. Otherwise a fixed release-date is
|
||||
@@ -428,6 +428,8 @@ m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
|
||||
T *+scrollbind* |'scrollbind'|
|
||||
B *+signs* |:sign|
|
||||
N *+smartindent* |'smartindent'|
|
||||
B *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
|
||||
N *+spell* spell checking support, see |spell|
|
||||
N *+startuptime* |--startuptime| argument
|
||||
N *+statusline* Options 'statusline', 'rulerformat' and special
|
||||
formats of 'titlestring' and 'iconstring'
|
||||
@@ -704,6 +706,21 @@ K Run a program to lookup the keyword under the
|
||||
available when compiled with the |+netbeans_intg|
|
||||
feature}
|
||||
|
||||
*:xrestore* *:xr*
|
||||
:xr[estore] [display] Reinitializes the connection to the X11 server. Useful
|
||||
after the X server restarts, e.g. when running Vim for
|
||||
long time inside screen/tmux and connecting from
|
||||
different machines.
|
||||
[display] should be in the format of the $DISPLAY
|
||||
environment variable (e.g. "localhost:10.0")
|
||||
If [display] is omitted, then it reinitializes the
|
||||
connection to the X11 server using the same value as
|
||||
was used for the previous execution of this command.
|
||||
If the value was never specified, then it uses the
|
||||
value of $DISPLAY environment variable as it was when
|
||||
Vim was started.
|
||||
{only available when compiled with the |+clipboard|
|
||||
feature}
|
||||
|
||||
*g_CTRL-A*
|
||||
g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*vi_diff.txt* For Vim version 8.1. Last change: 2019 May 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -199,7 +199,7 @@ Syntax highlighting. |:syntax|
|
||||
|
||||
Text properties |textprop.txt|
|
||||
Vim supports highlighting text by a plugin. Property types can be
|
||||
specificed with |prop_type_add()| and properties can be placed with
|
||||
specified with |prop_type_add()| and properties can be placed with
|
||||
|prop_add()|.
|
||||
|
||||
Spell checking. |spell|
|
||||
@@ -293,6 +293,12 @@ Command-line editing and history. |cmdline-editing|
|
||||
forward/backward one character. The shifted right/left cursor keys
|
||||
can be used to move forward/backward one word. CTRL-B/CTRL-E can be
|
||||
used to go to the begin/end of the command-line.
|
||||
{Vi: can only alter the last character in the line}
|
||||
{Vi: when hitting <Esc> the command-line is executed. This is
|
||||
unexpected for most people; therefore it was changed in Vim. But when
|
||||
the <Esc> is part of a mapping, the command-line is executed. If you
|
||||
want the Vi behaviour also when typing <Esc>, use ":cmap ^V<Esc>
|
||||
^V^M"}
|
||||
|cmdline-history|
|
||||
The command-lines are remembered. The up/down cursor keys can be used
|
||||
to recall previous command-lines. The 'history' option can be set to
|
||||
@@ -540,6 +546,8 @@ The 'tags' option can be set to a list of tag file names. Thus multiple
|
||||
tag files can be used. For file names that start with "./", the "./" is
|
||||
replaced with the path of the current file. This makes it possible to use a
|
||||
tags file in the same directory as the file being edited.
|
||||
{Vi: always uses binary search in some versions}
|
||||
{Vi does not have the security prevention for commands in tag files}
|
||||
|
||||
Previously used file names are remembered in the alternate file name list.
|
||||
CTRL-^ accepts a count, which is an index in this list.
|
||||
@@ -577,6 +585,8 @@ one space after a period (Vi inserts two spaces).
|
||||
|
||||
"cw" can be used to change white space formed by several characters (Vi is
|
||||
confusing: "cw" only changes one space, while "dw" deletes all white space).
|
||||
{Vi: "cw" when on a blank followed by other blanks changes only the first
|
||||
blank; this is probably a bug, because "dw" deletes all the blanks}
|
||||
|
||||
"o" and "O" accept a count for repeating the insert (Vi clears a part of
|
||||
display).
|
||||
@@ -645,7 +655,7 @@ of the window.
|
||||
Uppercase marks can be used to jump between files. The ":marks" command lists
|
||||
all currently set marks. The commands "']" and "`]" jump to the end of the
|
||||
previous operator or end of the text inserted with the put command. "'[" and
|
||||
"`[" do jump to the start.
|
||||
"`[" do jump to the start. {Vi: no uppercase marks}
|
||||
|
||||
The 'shelltype' option can be set to reflect the type of shell used on the
|
||||
Amiga.
|
||||
@@ -790,14 +800,16 @@ filesystem under Unix. See |'shortname'|.
|
||||
Error messages are shown at least one second (Vi overwrites error messages).
|
||||
|
||||
If Vim gives the |hit-enter| prompt, you can hit any key. Characters other
|
||||
than <CR>, <NL> and <Space> are interpreted as the (start of) a command. (Vi
|
||||
only accepts a command starting with ':').
|
||||
than <CR>, <NL> and <Space> are interpreted as the (start of) a command.
|
||||
{Vi: only ":" commands are interpreted}
|
||||
|
||||
The contents of the numbered and unnamed registers is remembered when
|
||||
changing files.
|
||||
|
||||
The "No lines in buffer" message is a normal message instead of an error
|
||||
message, since that may cause a mapping to be aborted.
|
||||
{Vi: error messages may be overwritten with other messages before you have a
|
||||
chance to read them}
|
||||
|
||||
The AUX: device of the Amiga is supported.
|
||||
|
||||
@@ -826,33 +838,35 @@ The following Ex commands are supported by Vi: ~
|
||||
`:copy` copy lines
|
||||
`:delete` delete lines
|
||||
`:edit` edit a file
|
||||
`:exit` same as ":xit"
|
||||
`:exit` same as `:xit`
|
||||
`:file` show or set the current file name; Vi: without the column number
|
||||
`:global` execute commands for matching lines
|
||||
`:insert` insert text
|
||||
`:join` join lines; Vi: not :join!
|
||||
`:k` set a mark
|
||||
`:list` print lines
|
||||
`:map` show or enter a mapping
|
||||
`:map` show or enter a mapping
|
||||
`:mark` set a mark
|
||||
`:move` move lines
|
||||
`:Next` go to previous file in the argument list; no count or ++opt
|
||||
`:next` go to next file in the argument list; no count or ++opt
|
||||
`:Next` go to previous file in the argument list {Vi: no count}
|
||||
`:next` go to next file in the argument list {Vi: no count}
|
||||
`:number` print lines with line number
|
||||
`:open` start open mode (not implemented in Vim)
|
||||
`:pop` jump to older entry in tag stack (only in some versions)
|
||||
`:preserve` write all text to swap file
|
||||
`:preserve` write all text to swap file {Vi: might also exit}
|
||||
`:previous` same as `:Next` {Vi: only in some versions}
|
||||
`:print` print lines
|
||||
`:put` insert contents of register in the text
|
||||
`:quit` quit Vi
|
||||
`:read` read file into the text
|
||||
`:recover` recover a file from a swap file
|
||||
`:rewind` go to the first file in the argument list; no ++opt
|
||||
`:recover` recover a file from a swap file {Vi: recovers in another way
|
||||
and sends mail if there is something to recover}
|
||||
`:rewind` go to the first file in the argument list; no ++opt
|
||||
`:set` set option; but not `:set inv{option}`, `:set option&`,
|
||||
`:set all&`, `:set option+=value`, `:set option^=value`
|
||||
`:set option-=value` `:set option<`
|
||||
`:shell` escape to a shell
|
||||
`:source` read Vim or Ex commands from a file
|
||||
`:source` read Vi or Ex commands from a file
|
||||
`:stop` suspend the editor or escape to a shell
|
||||
`:substitute` find and replace text; Vi: no '&', 'i', 's', 'r' or 'I' flag,
|
||||
confirm prompt only supports 'y' and 'n', no highlighting
|
||||
@@ -870,7 +884,7 @@ The following Ex commands are supported by Vi: ~
|
||||
`:xit` write if buffer changed and quit Vi
|
||||
`:yank` yank lines into a register
|
||||
`:z` print some lines {not in all versions of Vi}
|
||||
`:!` filter lines or execute an external command
|
||||
`:!` filter lines or execute an external command
|
||||
`:"` comment
|
||||
`:#` same as ":number"
|
||||
`:*` execute contents of a register
|
||||
@@ -881,9 +895,15 @@ The following Ex commands are supported by Vi: ~
|
||||
`:@` execute contents of a register; but not `:@`; `:@@` only in
|
||||
some versions
|
||||
|
||||
Common for these commands is that Vi doesn't support the ++opt argument on
|
||||
`:edit` and other commands that open a file.
|
||||
|
||||
|
||||
The following Normal mode commands are supported by Vi: ~
|
||||
|
||||
note: See the beginning of |normal-index| for the meaning of WORD, N, Nmove
|
||||
and etc in the description text.
|
||||
|
||||
|CTRL-B| scroll N screens Backwards
|
||||
|CTRL-C| interrupt current (search) command
|
||||
|CTRL-D| scroll Down N lines (default: half a screen); Vim scrolls
|
||||
@@ -903,11 +923,13 @@ The following Normal mode commands are supported by Vi: ~
|
||||
|CTRL-P| same as "k"
|
||||
|CTRL-R| in some Vi versions: same as CTRL-L
|
||||
|CTRL-T| jump to N older Tag in tag list
|
||||
|CTRL-U| N lines Upwards (default: half a screen)
|
||||
|CTRL-U| N lines Upwards (default: half a screen) {Vi used file lines
|
||||
while Vim scrolls 'scroll' screen lines; makes a difference
|
||||
when lines wrap}
|
||||
|CTRL-Y| scroll N lines downwards
|
||||
|CTRL-Z| suspend program (or start new shell)
|
||||
|CTRL-]| :ta to ident under cursor
|
||||
|CTRL-^| edit alternate file; Vi: no count
|
||||
|CTRL-]| :ta to ident under cursor {Vi: identifier after the cursor}
|
||||
|CTRL-^| edit alternate file {Vi: no count}
|
||||
|<Space>| same as "l"
|
||||
|!| filter Nmove text through the {filter} command
|
||||
|!!| filter N lines through the {filter} command
|
||||
@@ -937,6 +959,7 @@ The following Normal mode commands are supported by Vi: ~
|
||||
|>>| shift N lines one 'shiftwidth' rightwards
|
||||
|?| search backward for the Nth previous occurrence of {pattern}
|
||||
|@| execute the contents of register {a-z} N times
|
||||
{Vi: only named registers}
|
||||
|@@| repeat the previous @{a-z} N times
|
||||
|A| append text after the end of the line N times
|
||||
|B| cursor N WORDS backward
|
||||
@@ -953,8 +976,9 @@ The following Normal mode commands are supported by Vi: ~
|
||||
|M| cursor to middle line of screen
|
||||
|N| repeat the latest '/' or '?' N times in opposite direction
|
||||
|O| begin a new line above the cursor and insert text, repeat N
|
||||
times
|
||||
times {Vi: blank [count] screen lines}
|
||||
|P| put the text [from register x] before the cursor N times
|
||||
{Vi: no count}
|
||||
|Q| switch to "Ex" mode
|
||||
|R| enter replace mode: overtype existing characters, repeat the
|
||||
entered text N-1 times
|
||||
@@ -962,6 +986,7 @@ The following Normal mode commands are supported by Vi: ~
|
||||
"cc".
|
||||
|T| cursor till after Nth occurrence of {char} to the left
|
||||
|U| undo all latest changes on one line
|
||||
{Vi: while not moved off of the last modified line}
|
||||
|W| cursor N WORDS forward
|
||||
|X| delete N characters before the cursor [into register x]
|
||||
|Y| yank N lines [into register x]; synonym for "yy"
|
||||
@@ -987,8 +1012,11 @@ The following Normal mode commands are supported by Vi: ~
|
||||
|m| set mark {A-Za-z} at cursor position
|
||||
|n| repeat the latest '/' or '?' N times
|
||||
|o| begin a new line below the cursor and insert text
|
||||
{Vi: blank [count] screen lines}
|
||||
|p| put the text [from register x] after the cursor N times
|
||||
|r| replace N chars with {char}
|
||||
{Vi: no count}
|
||||
|r| replace N chars with {char} {Vi: CTRL-V <CR> still replaces
|
||||
with a line break, cannot replace something with a <CR>}
|
||||
|s| (substitute) delete N characters [into register x] and start
|
||||
insert
|
||||
|t| cursor till before Nth occurrence of {char} to the right
|
||||
@@ -1006,17 +1034,21 @@ The following Normal mode commands are supported by Vi: ~
|
||||
| cursor to column N
|
||||
|}| cursor N paragraphs forward
|
||||
|~| switch case of N characters under the cursor; Vim: depends on
|
||||
'tildeop'
|
||||
'tildeop' {Vi: no count, no 'tildeop'}
|
||||
|<Del>| same as "x"
|
||||
|
||||
|
||||
The following commands are supported in Insert mode by Vi: ~
|
||||
|
||||
CTRL-@ insert previously inserted text and stop insert
|
||||
{Vi: only when typed as first char, only up to 128 chars}
|
||||
CTRL-C quit insert mode, without checking for abbreviation, unless
|
||||
'insertmode' set.
|
||||
CTRL-D delete one shiftwidth of indent in the current line
|
||||
<BS> delete character before the cursor
|
||||
{Vi: CTRL-D works only when used after autoindent}
|
||||
<BS> delete character before the cursor {Vi: does not delete
|
||||
autoindents, does not cross lines, does not delete past start
|
||||
position of insert}
|
||||
CTRL-H same as <BS>
|
||||
<Tab> insert a <Tab> character
|
||||
CTRL-I same as <Tab>
|
||||
@@ -1024,10 +1056,11 @@ CTRL-I same as <Tab>
|
||||
CTRL-J same as <CR>
|
||||
<CR> begin new line
|
||||
CTRL-M same as <CR>
|
||||
CTRL-T insert one shiftwidth of indent in current line
|
||||
CTRL-V {char} insert next non-digit literally
|
||||
CTRL-T insert one shiftwidth of indent in current line {Vi: only when
|
||||
in indent}
|
||||
CTRL-V {char} insert next non-digit literally {Vi: no decimal byte entry}
|
||||
CTRL-W delete word before the cursor
|
||||
CTRL-Z when 'insertmode' set: suspend Vim
|
||||
CTRL-Z when 'insertmode' set: suspend Vi
|
||||
<Esc> end insert mode (unless 'insertmode' set)
|
||||
CTRL-[ same as <Esc>
|
||||
0 CTRL-D delete all indent in the current line
|
||||
@@ -1039,13 +1072,21 @@ CTRL-[ same as <Esc>
|
||||
The following options are supported by Vi: ~
|
||||
|
||||
'autoindent' 'ai' take indent for new line from previous line
|
||||
{Vi does this slightly differently: After the
|
||||
indent is deleted when typing <Esc> or <CR>, the
|
||||
cursor position when moving up or down is after
|
||||
the deleted indent; Vi puts the cursor somewhere
|
||||
in the deleted indent}.
|
||||
'autowrite' 'aw' automatically write file if changed
|
||||
'directory' 'dir' list of directory names for the swap file
|
||||
{Vi: directory to put temp file in, defaults to
|
||||
"/tmp"}
|
||||
'edcompatible' 'ed' toggle flags of ":substitute" command
|
||||
'errorbells' 'eb' ring the bell for error messages
|
||||
'ignorecase' 'ic' ignore case in search patterns
|
||||
'lines' number of lines in the display
|
||||
'lisp' automatic indenting for Lisp
|
||||
'lisp' automatic indenting for Lisp {Vi: Does it a little
|
||||
bit differently}
|
||||
'list' show <Tab> and <EOL>
|
||||
'magic' changes special characters in search patterns
|
||||
'modeline' 'ml' recognize 'modelines' at start or end of file
|
||||
@@ -1066,6 +1107,7 @@ The following options are supported by Vi: ~
|
||||
'tabstop' 'ts' number of spaces that <Tab> in file uses
|
||||
'taglength' 'tl' number of significant characters for a tag
|
||||
'tags' 'tag' list of file names used by the tag command
|
||||
{Vi: default is "tags /usr/lib/tags"}
|
||||
'tagstack' 'tgst' push tags onto the tag stack {not in all versions
|
||||
of Vi}
|
||||
'term' name of the terminal
|
||||
@@ -1080,6 +1122,7 @@ The following options are supported by Vi: ~
|
||||
{Vi also uses the option to specify the number of
|
||||
displayed lines}
|
||||
'wrapmargin' 'wm' chars from the right where wrapping starts
|
||||
{Vi: works differently and less usefully}
|
||||
'wrapscan' 'ws' searches wrap around the end of the file
|
||||
'writeany' 'wa' write to file with no need for "!" override
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*windows.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -216,7 +216,7 @@ CTRL-W CTRL_N *CTRL-W_CTRL-N*
|
||||
:[N]sv[iew] [++opt] [+cmd] {file} *:sv* *:sview* *splitview*
|
||||
Same as ":split", but set 'readonly' option for this buffer.
|
||||
|
||||
:[N]sf[ind] [++opt] [+cmd] {file} *:sf* *:sfind* *splitfind*
|
||||
:[N]sf[ind] [++opt] [+cmd] {file} *:sf* *:sfi* *:sfind* *splitfind*
|
||||
Same as ":split", but search for {file} in 'path' like in
|
||||
|:find|. Doesn't split if {file} is not found.
|
||||
|
||||
@@ -1030,6 +1030,13 @@ list of buffers. |unlisted-buffer|
|
||||
thus you can always go to a specific buffer with ":buffer N"
|
||||
or "N CTRL-^", where N is the buffer number.
|
||||
|
||||
For the file name these special values are used:
|
||||
[Prompt] |prompt-buffer|
|
||||
[Popup] buffer of a |popup-window|
|
||||
[Scratch] 'buftype' is "nofile"
|
||||
[No Name] no file name specified
|
||||
For a |terminal-window| buffer the status is used.
|
||||
|
||||
Indicators (chars in the same column are mutually exclusive):
|
||||
u an unlisted buffer (only displayed when [!] is used)
|
||||
|unlisted-buffer|
|
||||
@@ -1192,7 +1199,6 @@ list of buffers. |unlisted-buffer|
|
||||
the way when you're browsing code/text buffers. The next three
|
||||
commands also work like this.
|
||||
|
||||
|
||||
*:sbn* *:sbnext*
|
||||
:[N]sbn[ext] [+cmd] [N]
|
||||
Split window and go to [N]th next buffer in buffer list.
|
||||
@@ -1213,7 +1219,7 @@ list of buffers. |unlisted-buffer|
|
||||
Uses 'switchbuf'.
|
||||
Also see |+cmd|.
|
||||
|
||||
:br[ewind][!] [+cmd] *:br* *:brewind*
|
||||
:br[ewind][!] [+cmd] *:br* *:bre* *:brewind*
|
||||
Go to first buffer in buffer list. If the buffer list is
|
||||
empty, go to the first unlisted buffer.
|
||||
See |:buffer-!| for [!].
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Apr 19
|
||||
" Last Change: 2019 May 06
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -713,8 +713,8 @@ au BufNewFile,BufRead *.erb,*.rhtml setf eruby
|
||||
" HTML with M4
|
||||
au BufNewFile,BufRead *.html.m4 setf htmlm4
|
||||
|
||||
" HTML Cheetah template
|
||||
au BufNewFile,BufRead *.tmpl setf htmlcheetah
|
||||
" Some template. Used to be HTML Cheetah.
|
||||
au BufNewFile,BufRead *.tmpl setf template
|
||||
|
||||
" Host config
|
||||
au BufNewFile,BufRead */etc/host.conf setf hostconf
|
||||
|
||||
20
runtime/ftplugin/dune.vim
Normal file
20
runtime/ftplugin/dune.vim
Normal file
@@ -0,0 +1,20 @@
|
||||
" Language: Dune buildsystem
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2018 Nov 3 - Added commentstring (Markus Mottl)
|
||||
" 2017 Sep 6 - Initial version (Etienne Millon)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin=1
|
||||
|
||||
set lisp
|
||||
|
||||
" Comment string
|
||||
setl commentstring=;\ %s
|
||||
setl comments=:;
|
||||
|
||||
setl iskeyword+=#,?,.,/
|
||||
11
runtime/ftplugin/nroff.vim
Normal file
11
runtime/ftplugin/nroff.vim
Normal file
@@ -0,0 +1,11 @@
|
||||
" Vim filetype plugin
|
||||
" Language: roff(7)
|
||||
" Maintainer: Chris Spiegel <cspiegel@gmail.com>
|
||||
" Last Change: 2019 Apr 24
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=.\\\"%s
|
||||
@@ -5,12 +5,12 @@
|
||||
" Pierre Vittet <pierre-vittet@pvittet.com>
|
||||
" Stefano Zacchiroli <zack@bononia.it>
|
||||
" Vincent Aravantinos <firstname.name@imag.fr>
|
||||
" URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2013 Oct 27 - Added commentstring (MM)
|
||||
" 2013 Jul 26 - load default compiler settings (MM)
|
||||
" 2013 Jul 24 - removed superfluous efm-setting (MM)
|
||||
" 2013 Jul 22 - applied fixes supplied by Hirotaka Hamada (MM)
|
||||
" 2013 Mar 15 - Improved error format (MM)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -37,6 +37,10 @@ endif
|
||||
let s:cposet=&cpoptions
|
||||
set cpo&vim
|
||||
|
||||
" Comment string
|
||||
setlocal comments=
|
||||
setlocal commentstring=(*%s*)
|
||||
|
||||
" Add mappings, unless the user didn't want this.
|
||||
if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
|
||||
" (un)commenting
|
||||
@@ -60,16 +64,39 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
|
||||
endif
|
||||
|
||||
" Let % jump between structure elements (due to Issac Trotts)
|
||||
let b:mw = ''
|
||||
let b:mw = b:mw . ',\<let\>:\<and\>:\(\<in\>\|;;\)'
|
||||
let b:mw = '\<let\>:\<and\>:\(\<in\>\|;;\)'
|
||||
let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
|
||||
let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>,'
|
||||
let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>'
|
||||
let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
|
||||
let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
|
||||
let b:match_words = b:mw
|
||||
|
||||
let b:match_ignorecase=0
|
||||
|
||||
function! s:OcpGrep(bang,args) abort
|
||||
let grepprg = &l:grepprg
|
||||
let grepformat = &l:grepformat
|
||||
let shellpipe = &shellpipe
|
||||
try
|
||||
let &l:grepprg = "ocp-grep -c never"
|
||||
setlocal grepformat=%f:%l:%m
|
||||
if &shellpipe ==# '2>&1| tee' || &shellpipe ==# '|& tee'
|
||||
let &shellpipe = "| tee"
|
||||
endif
|
||||
execute 'grep! '.a:args
|
||||
if empty(a:bang) && !empty(getqflist())
|
||||
return 'cfirst'
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
finally
|
||||
let &l:grepprg = grepprg
|
||||
let &l:grepformat = grepformat
|
||||
let &shellpipe = shellpipe
|
||||
endtry
|
||||
endfunction
|
||||
command! -bar -bang -complete=file -nargs=+ Ocpgrep exe s:OcpGrep(<q-bang>, <q-args>)
|
||||
|
||||
" switching between interfaces (.mli) and implementations (.ml)
|
||||
if !exists("g:did_ocaml_switch")
|
||||
let g:did_ocaml_switch = 1
|
||||
@@ -97,15 +124,8 @@ endif
|
||||
" Folding support
|
||||
|
||||
" Get the modeline because folding depends on indentation
|
||||
let s:s = line2byte(line('.'))+col('.')-1
|
||||
if search('^\s*(\*:o\?caml:')
|
||||
let s:modeline = getline(".")
|
||||
else
|
||||
let s:modeline = ""
|
||||
endif
|
||||
if s:s > 0
|
||||
exe 'goto' s:s
|
||||
endif
|
||||
let lnum = search('^\s*(\*:o\?caml:', 'n')
|
||||
let s:modeline = lnum? getline(lnum): ""
|
||||
|
||||
" Get the indentation params
|
||||
let s:m = matchstr(s:modeline,'default\s*=\s*\d\+')
|
||||
|
||||
@@ -400,7 +400,7 @@ endif
|
||||
|
||||
" Predefined SQL objects what are used by the below mappings using
|
||||
" the ]} style maps.
|
||||
" This global variable allows the users to override it's value
|
||||
" This global variable allows the users to override its value
|
||||
" from within their vimrc.
|
||||
" Note, you cannot use \?, since these patterns can be used to search
|
||||
" backwards, you must use \{,1}
|
||||
@@ -486,10 +486,10 @@ if exists('&omnifunc')
|
||||
" OMNI function prior to setting up the SQL OMNI function
|
||||
let b:sql_compl_savefunc = &omnifunc
|
||||
|
||||
" Source it to determine it's version
|
||||
" Source it to determine its version
|
||||
runtime autoload/sqlcomplete.vim
|
||||
" This is used by the sqlcomplete.vim plugin
|
||||
" Source it for it's global functions
|
||||
" Source it for its global functions
|
||||
runtime autoload/syntaxcomplete.vim
|
||||
|
||||
setlocal omnifunc=sqlcomplete#Complete
|
||||
|
||||
@@ -3,18 +3,21 @@
|
||||
[Desktop Entry]
|
||||
# Translators: This is the Application Name used in the GVim desktop file
|
||||
Name[de]=GVim
|
||||
Name[eo]=GVim
|
||||
Name=GVim
|
||||
# Translators: This is the Generic Application Name used in the Vim desktop file
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[eo]=Tekstoredaktilo
|
||||
GenericName[ja]=テキストエディタ
|
||||
GenericName=Text Editor
|
||||
# Translators: This is the comment used in the Vim desktop file
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[eo]=Redakti tekstajn dosierojn
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment=Edit text files
|
||||
# The translations should come from the po file. Leave them here for now, they will
|
||||
# be overwritten by the po file when generating the desktop.file!
|
||||
GenericName[da]=Teksteditor
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[eo]=Tekstoredaktilo
|
||||
GenericName[fr]=Éditeur de texte
|
||||
GenericName[pl]=Edytor tekstu
|
||||
GenericName[is]=Ritvinnsluforrit
|
||||
@@ -30,11 +33,9 @@ Comment[ca]=Edita fitxers de text
|
||||
Comment[cs]=Úprava textových souborů
|
||||
Comment[cy]=Golygu ffeiliau testun
|
||||
Comment[da]=Rediger tekstfiler
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[el]=Επεξεργασία αρχείων κειμένου
|
||||
Comment[en_CA]=Edit text files
|
||||
Comment[en_GB]=Edit text files
|
||||
Comment[eo]=Redakti tekstajn dosierojn
|
||||
Comment[es]=Edita archivos de texto
|
||||
Comment[et]=Redigeeri tekstifaile
|
||||
Comment[eu]=Editatu testu-fitxategiak
|
||||
@@ -50,7 +51,6 @@ Comment[hu]=Szövegfájlok szerkesztése
|
||||
Comment[id]=Edit file teks
|
||||
Comment[is]=Vinna með textaskrár
|
||||
Comment[it]=Modifica file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
|
||||
Comment[ko]=텍스트 파일을 편집합니다
|
||||
Comment[lt]=Redaguoti tekstines bylas
|
||||
@@ -93,9 +93,12 @@ Terminal=false
|
||||
Type=Application
|
||||
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
|
||||
Keywords[de]=Text;Editor;
|
||||
Keywords[eo]=Teksto;redaktilo;
|
||||
Keywords[ja]=テキスト;エディタ;
|
||||
Keywords=Text;editor;
|
||||
# Translators: This is the Icon file name. Do NOT translate
|
||||
Icon[de]=gvim
|
||||
Icon[eo]=gvim
|
||||
Icon=gvim
|
||||
Categories=Utility;TextEditor;
|
||||
StartupNotify=true
|
||||
|
||||
@@ -47,7 +47,7 @@ endif
|
||||
|
||||
function! GetAwkIndent()
|
||||
|
||||
" Find previous line and get it's indentation
|
||||
" Find previous line and get its indentation
|
||||
let prev_lineno = s:Get_prev_line( v:lnum )
|
||||
if prev_lineno == 0
|
||||
return 0
|
||||
|
||||
@@ -57,7 +57,7 @@ function GetMmaIndent()
|
||||
if getline(v:lnum) =~ '[^[]*]\s*$'
|
||||
" move to the closing bracket
|
||||
call search(']','bW')
|
||||
" and find it's partner's indent
|
||||
" and find its partner's indent
|
||||
let ind = indent(searchpair('\[','',']','bWn'))
|
||||
" same for ( blocks
|
||||
elseif getline(v:lnum) =~ '[^(]*)$'
|
||||
|
||||
@@ -39,7 +39,7 @@ endfunction
|
||||
function s:GetYamlIndent()
|
||||
let pline = getline(v:lnum - 1)
|
||||
if pline =~ ':\s*$'
|
||||
return indent(v:lnum) + &sw
|
||||
return indent(v:lnum) + shiftwidth()
|
||||
elseif pline =~ '^\s*- '
|
||||
return indent(v:lnum) + 2
|
||||
endif
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Original Author: Nikolai Weibull <now@bitwi.se>
|
||||
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
|
||||
" Latest Revision: 2019-03-25
|
||||
" Latest Revision: 2019-04-27
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-sh-indent
|
||||
" Changelog:
|
||||
" 20190428 - De-indent fi correctly when typing with
|
||||
" https://github.com/chrisbra/vim-sh-indent/issues/15
|
||||
" 20190325 - Indent fi; correctly
|
||||
" https://github.com/chrisbra/vim-sh-indent/issues/14
|
||||
" 20190319 - Indent arrays (only zsh and bash)
|
||||
@@ -127,7 +129,7 @@ function! GetShIndent()
|
||||
" Current line is a endif line, so get indent from start of "if condition" line
|
||||
" TODO: should we do the same for other "end" lines?
|
||||
if curline =~ '^\s*\%(fi\);\?\s*\%(#.*\)\=$'
|
||||
let previous_line = searchpair('\<if\>', '', '\<fi\>', 'bnW')
|
||||
let previous_line = searchpair('\<if\>', '', '\<fi\>\zs', 'bnW')
|
||||
if previous_line > 0
|
||||
let ind = indent(previous_line)
|
||||
endif
|
||||
|
||||
503
runtime/indent/typescript.vim
Normal file
503
runtime/indent/typescript.vim
Normal file
@@ -0,0 +1,503 @@
|
||||
" Vim indent file
|
||||
" Language: TypeScript
|
||||
" Maintainer: See https://github.com/HerringtonDarkholme/yats.vim
|
||||
" Last Change: 2019 Jun 06
|
||||
" Acknowledgement: Based off of vim-ruby maintained by Nikolai Weibull http://vim-ruby.rubyforge.org
|
||||
|
||||
" 0. Initialization {{{1
|
||||
" =================
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nosmartindent
|
||||
|
||||
" Now, set up our indentation expression and keys that trigger it.
|
||||
setlocal indentexpr=GetTypescriptIndent()
|
||||
setlocal formatexpr=Fixedgq(v:lnum,v:count)
|
||||
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetTypescriptIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" 1. Variables {{{1
|
||||
" ============
|
||||
|
||||
let s:js_keywords = '^\s*\(break\|case\|catch\|continue\|debugger\|default\|delete\|do\|else\|finally\|for\|function\|if\|in\|instanceof\|new\|return\|switch\|this\|throw\|try\|typeof\|var\|void\|while\|with\)'
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let s:syng_strcom = 'string\|regex\|comment\c'
|
||||
|
||||
" Regex of syntax group names that are strings.
|
||||
let s:syng_string = 'regex\c'
|
||||
|
||||
" Regex of syntax group names that are strings or documentation.
|
||||
let s:syng_multiline = 'comment\c'
|
||||
|
||||
" Regex of syntax group names that are line comment.
|
||||
let s:syng_linecom = 'linecomment\c'
|
||||
|
||||
" Expression used to check whether we should skip a match with searchpair().
|
||||
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
|
||||
|
||||
let s:line_term = '\s*\%(\%(\/\/\).*\)\=$'
|
||||
|
||||
" Regex that defines continuation lines, not including (, {, or [.
|
||||
let s:continuation_regex = '\%([\\*+/.:]\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\|[^=]=[^=].*,\)' . s:line_term
|
||||
|
||||
" Regex that defines continuation lines.
|
||||
" TODO: this needs to deal with if ...: and so on
|
||||
let s:msl_regex = s:continuation_regex
|
||||
|
||||
let s:one_line_scope_regex = '\<\%(if\|else\|for\|while\)\>[^{;]*' . s:line_term
|
||||
|
||||
" Regex that defines blocks.
|
||||
let s:block_regex = '\%([{[]\)\s*\%(|\%([*@]\=\h\w*,\=\s*\)\%(,\s*[*@]\=\h\w*\)*|\)\=' . s:line_term
|
||||
|
||||
let s:var_stmt = '^\s*var'
|
||||
|
||||
let s:comma_first = '^\s*,'
|
||||
let s:comma_last = ',\s*$'
|
||||
|
||||
let s:ternary = '^\s\+[?|:]'
|
||||
let s:ternary_q = '^\s\+?'
|
||||
|
||||
" 2. Auxiliary Functions {{{1
|
||||
" ======================
|
||||
|
||||
" Check if the character at lnum:col is inside a string, comment, or is ascii.
|
||||
function s:IsInStringOrComment(lnum, col)
|
||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
|
||||
endfunction
|
||||
|
||||
" Check if the character at lnum:col is inside a string.
|
||||
function s:IsInString(lnum, col)
|
||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
|
||||
endfunction
|
||||
|
||||
" Check if the character at lnum:col is inside a multi-line comment.
|
||||
function s:IsInMultilineComment(lnum, col)
|
||||
return !s:IsLineComment(a:lnum, a:col) && synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_multiline
|
||||
endfunction
|
||||
|
||||
" Check if the character at lnum:col is a line comment.
|
||||
function s:IsLineComment(lnum, col)
|
||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_linecom
|
||||
endfunction
|
||||
|
||||
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
|
||||
function s:PrevNonBlankNonString(lnum)
|
||||
let in_block = 0
|
||||
let lnum = prevnonblank(a:lnum)
|
||||
while lnum > 0
|
||||
" Go in and out of blocks comments as necessary.
|
||||
" If the line isn't empty (with opt. comment) or in a string, end search.
|
||||
let line = getline(lnum)
|
||||
if line =~ '/\*'
|
||||
if in_block
|
||||
let in_block = 0
|
||||
else
|
||||
break
|
||||
endif
|
||||
elseif !in_block && line =~ '\*/'
|
||||
let in_block = 1
|
||||
elseif !in_block && line !~ '^\s*\%(//\).*$' && !(s:IsInStringOrComment(lnum, 1) && s:IsInStringOrComment(lnum, strlen(line)))
|
||||
break
|
||||
endif
|
||||
let lnum = prevnonblank(lnum - 1)
|
||||
endwhile
|
||||
return lnum
|
||||
endfunction
|
||||
|
||||
" Find line above 'lnum' that started the continuation 'lnum' may be part of.
|
||||
function s:GetMSL(lnum, in_one_line_scope)
|
||||
" Start on the line we're at and use its indent.
|
||||
let msl = a:lnum
|
||||
let lnum = s:PrevNonBlankNonString(a:lnum - 1)
|
||||
while lnum > 0
|
||||
" If we have a continuation line, or we're in a string, use line as MSL.
|
||||
" Otherwise, terminate search as we have found our MSL already.
|
||||
let line = getline(lnum)
|
||||
let col = match(line, s:msl_regex) + 1
|
||||
if (col > 0 && !s:IsInStringOrComment(lnum, col)) || s:IsInString(lnum, strlen(line))
|
||||
let msl = lnum
|
||||
else
|
||||
" Don't use lines that are part of a one line scope as msl unless the
|
||||
" flag in_one_line_scope is set to 1
|
||||
"
|
||||
if a:in_one_line_scope
|
||||
break
|
||||
end
|
||||
let msl_one_line = s:Match(lnum, s:one_line_scope_regex)
|
||||
if msl_one_line == 0
|
||||
break
|
||||
endif
|
||||
endif
|
||||
let lnum = s:PrevNonBlankNonString(lnum - 1)
|
||||
endwhile
|
||||
return msl
|
||||
endfunction
|
||||
|
||||
function s:RemoveTrailingComments(content)
|
||||
let single = '\/\/\(.*\)\s*$'
|
||||
let multi = '\/\*\(.*\)\*\/\s*$'
|
||||
return substitute(substitute(a:content, single, '', ''), multi, '', '')
|
||||
endfunction
|
||||
|
||||
" Find if the string is inside var statement (but not the first string)
|
||||
function s:InMultiVarStatement(lnum)
|
||||
let lnum = s:PrevNonBlankNonString(a:lnum - 1)
|
||||
|
||||
" let type = synIDattr(synID(lnum, indent(lnum) + 1, 0), 'name')
|
||||
|
||||
" loop through previous expressions to find a var statement
|
||||
while lnum > 0
|
||||
let line = getline(lnum)
|
||||
|
||||
" if the line is a js keyword
|
||||
if (line =~ s:js_keywords)
|
||||
" check if the line is a var stmt
|
||||
" if the line has a comma first or comma last then we can assume that we
|
||||
" are in a multiple var statement
|
||||
if (line =~ s:var_stmt)
|
||||
return lnum
|
||||
endif
|
||||
|
||||
" other js keywords, not a var
|
||||
return 0
|
||||
endif
|
||||
|
||||
let lnum = s:PrevNonBlankNonString(lnum - 1)
|
||||
endwhile
|
||||
|
||||
" beginning of program, not a var
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Find line above with beginning of the var statement or returns 0 if it's not
|
||||
" this statement
|
||||
function s:GetVarIndent(lnum)
|
||||
let lvar = s:InMultiVarStatement(a:lnum)
|
||||
let prev_lnum = s:PrevNonBlankNonString(a:lnum - 1)
|
||||
|
||||
if lvar
|
||||
let line = s:RemoveTrailingComments(getline(prev_lnum))
|
||||
|
||||
" if the previous line doesn't end in a comma, return to regular indent
|
||||
if (line !~ s:comma_last)
|
||||
return indent(prev_lnum) - shiftwidth()
|
||||
else
|
||||
return indent(lvar) + shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
return -1
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if line 'lnum' has more opening brackets than closing ones.
|
||||
function s:LineHasOpeningBrackets(lnum)
|
||||
let open_0 = 0
|
||||
let open_2 = 0
|
||||
let open_4 = 0
|
||||
let line = getline(a:lnum)
|
||||
let pos = match(line, '[][(){}]', 0)
|
||||
while pos != -1
|
||||
if !s:IsInStringOrComment(a:lnum, pos + 1)
|
||||
let idx = stridx('(){}[]', line[pos])
|
||||
if idx % 2 == 0
|
||||
let open_{idx} = open_{idx} + 1
|
||||
else
|
||||
let open_{idx - 1} = open_{idx - 1} - 1
|
||||
endif
|
||||
endif
|
||||
let pos = match(line, '[][(){}]', pos + 1)
|
||||
endwhile
|
||||
return (open_0 > 0) . (open_2 > 0) . (open_4 > 0)
|
||||
endfunction
|
||||
|
||||
function s:Match(lnum, regex)
|
||||
let col = match(getline(a:lnum), a:regex) + 1
|
||||
return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
|
||||
endfunction
|
||||
|
||||
function s:IndentWithContinuation(lnum, ind, width)
|
||||
" Set up variables to use and search for MSL to the previous line.
|
||||
let p_lnum = a:lnum
|
||||
let lnum = s:GetMSL(a:lnum, 1)
|
||||
let line = getline(lnum)
|
||||
|
||||
" If the previous line wasn't a MSL and is continuation return its indent.
|
||||
" TODO: the || s:IsInString() thing worries me a bit.
|
||||
if p_lnum != lnum
|
||||
if s:Match(p_lnum,s:continuation_regex)||s:IsInString(p_lnum,strlen(line))
|
||||
return a:ind
|
||||
endif
|
||||
endif
|
||||
|
||||
" Set up more variables now that we know we aren't continuation bound.
|
||||
let msl_ind = indent(lnum)
|
||||
|
||||
" If the previous line ended with [*+/.-=], start a continuation that
|
||||
" indents an extra level.
|
||||
if s:Match(lnum, s:continuation_regex)
|
||||
if lnum == p_lnum
|
||||
return msl_ind + a:width
|
||||
else
|
||||
return msl_ind
|
||||
endif
|
||||
endif
|
||||
|
||||
return a:ind
|
||||
endfunction
|
||||
|
||||
function s:InOneLineScope(lnum)
|
||||
let msl = s:GetMSL(a:lnum, 1)
|
||||
if msl > 0 && s:Match(msl, s:one_line_scope_regex)
|
||||
return msl
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function s:ExitingOneLineScope(lnum)
|
||||
let msl = s:GetMSL(a:lnum, 1)
|
||||
if msl > 0
|
||||
" if the current line is in a one line scope ..
|
||||
if s:Match(msl, s:one_line_scope_regex)
|
||||
return 0
|
||||
else
|
||||
let prev_msl = s:GetMSL(msl - 1, 1)
|
||||
if s:Match(prev_msl, s:one_line_scope_regex)
|
||||
return prev_msl
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" 3. GetTypescriptIndent Function {{{1
|
||||
" =========================
|
||||
|
||||
function GetTypescriptIndent()
|
||||
" 3.1. Setup {{{2
|
||||
" ----------
|
||||
|
||||
" Set up variables for restoring position in file. Could use v:lnum here.
|
||||
let vcol = col('.')
|
||||
|
||||
" 3.2. Work on the current line {{{2
|
||||
" -----------------------------
|
||||
|
||||
let ind = -1
|
||||
" Get the current line.
|
||||
let line = getline(v:lnum)
|
||||
" previous nonblank line number
|
||||
let prevline = prevnonblank(v:lnum - 1)
|
||||
|
||||
" If we got a closing bracket on an empty line, find its match and indent
|
||||
" according to it. For parentheses we indent to its column - 1, for the
|
||||
" others we indent to the containing line's MSL's level. Return -1 if fail.
|
||||
let col = matchend(line, '^\s*[],})]')
|
||||
if col > 0 && !s:IsInStringOrComment(v:lnum, col)
|
||||
call cursor(v:lnum, col)
|
||||
|
||||
let lvar = s:InMultiVarStatement(v:lnum)
|
||||
if lvar
|
||||
let prevline_contents = s:RemoveTrailingComments(getline(prevline))
|
||||
|
||||
" check for comma first
|
||||
if (line[col - 1] =~ ',')
|
||||
" if the previous line ends in comma or semicolon don't indent
|
||||
if (prevline_contents =~ '[;,]\s*$')
|
||||
return indent(s:GetMSL(line('.'), 0))
|
||||
" get previous line indent, if it's comma first return prevline indent
|
||||
elseif (prevline_contents =~ s:comma_first)
|
||||
return indent(prevline)
|
||||
" otherwise we indent 1 level
|
||||
else
|
||||
return indent(lvar) + shiftwidth()
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
|
||||
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
|
||||
if line[col-1]==')' && col('.') != col('$') - 1
|
||||
let ind = virtcol('.')-1
|
||||
else
|
||||
let ind = indent(s:GetMSL(line('.'), 0))
|
||||
endif
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
|
||||
" If the line is comma first, dedent 1 level
|
||||
if (getline(prevline) =~ s:comma_first)
|
||||
return indent(prevline) - shiftwidth()
|
||||
endif
|
||||
|
||||
if (line =~ s:ternary)
|
||||
if (getline(prevline) =~ s:ternary_q)
|
||||
return indent(prevline)
|
||||
else
|
||||
return indent(prevline) + shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
" If we are in a multi-line comment, cindent does the right thing.
|
||||
if s:IsInMultilineComment(v:lnum, 1) && !s:IsLineComment(v:lnum, 1)
|
||||
return cindent(v:lnum)
|
||||
endif
|
||||
|
||||
" Check for multiple var assignments
|
||||
" let var_indent = s:GetVarIndent(v:lnum)
|
||||
" if var_indent >= 0
|
||||
" return var_indent
|
||||
" endif
|
||||
|
||||
" 3.3. Work on the previous line. {{{2
|
||||
" -------------------------------
|
||||
|
||||
" If the line is empty and the previous nonblank line was a multi-line
|
||||
" comment, use that comment's indent. Deduct one char to account for the
|
||||
" space in ' */'.
|
||||
if line =~ '^\s*$' && s:IsInMultilineComment(prevline, 1)
|
||||
return indent(prevline) - 1
|
||||
endif
|
||||
|
||||
" Find a non-blank, non-multi-line string line above the current line.
|
||||
let lnum = s:PrevNonBlankNonString(v:lnum - 1)
|
||||
|
||||
" If the line is empty and inside a string, use the previous line.
|
||||
if line =~ '^\s*$' && lnum != prevline
|
||||
return indent(prevnonblank(v:lnum))
|
||||
endif
|
||||
|
||||
" At the start of the file use zero indent.
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Set up variables for current line.
|
||||
let line = getline(lnum)
|
||||
let ind = indent(lnum)
|
||||
|
||||
" If the previous line ended with a block opening, add a level of indent.
|
||||
if s:Match(lnum, s:block_regex)
|
||||
return indent(s:GetMSL(lnum, 0)) + shiftwidth()
|
||||
endif
|
||||
|
||||
" If the previous line contained an opening bracket, and we are still in it,
|
||||
" add indent depending on the bracket type.
|
||||
if line =~ '[[({]'
|
||||
let counts = s:LineHasOpeningBrackets(lnum)
|
||||
if counts[0] == '1' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
||||
if col('.') + 1 == col('$')
|
||||
return ind + shiftwidth()
|
||||
else
|
||||
return virtcol('.')
|
||||
endif
|
||||
elseif counts[1] == '1' || counts[2] == '1'
|
||||
return ind + shiftwidth()
|
||||
else
|
||||
call cursor(v:lnum, vcol)
|
||||
end
|
||||
endif
|
||||
|
||||
" 3.4. Work on the MSL line. {{{2
|
||||
" --------------------------
|
||||
|
||||
let ind_con = ind
|
||||
let ind = s:IndentWithContinuation(lnum, ind_con, shiftwidth())
|
||||
|
||||
" }}}2
|
||||
"
|
||||
"
|
||||
let ols = s:InOneLineScope(lnum)
|
||||
if ols > 0
|
||||
let ind = ind + shiftwidth()
|
||||
else
|
||||
let ols = s:ExitingOneLineScope(lnum)
|
||||
while ols > 0 && ind > 0
|
||||
let ind = ind - shiftwidth()
|
||||
let ols = s:InOneLineScope(ols - 1)
|
||||
endwhile
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
function! Fixedgq(lnum, count)
|
||||
let l:tw = &tw ? &tw : 80;
|
||||
|
||||
let l:count = a:count
|
||||
let l:first_char = indent(a:lnum) + 1
|
||||
|
||||
if mode() == 'i' " gq was not pressed, but tw was set
|
||||
return 1
|
||||
endif
|
||||
|
||||
" This gq is only meant to do code with strings, not comments
|
||||
if s:IsLineComment(a:lnum, l:first_char) || s:IsInMultilineComment(a:lnum, l:first_char)
|
||||
return 1
|
||||
endif
|
||||
|
||||
if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq
|
||||
return 1
|
||||
endif
|
||||
|
||||
" Put all the lines on one line and do normal spliting after that
|
||||
if l:count > 1
|
||||
while l:count > 1
|
||||
let l:count -= 1
|
||||
normal J
|
||||
endwhile
|
||||
endif
|
||||
|
||||
let l:winview = winsaveview()
|
||||
|
||||
call cursor(a:lnum, l:tw + 1)
|
||||
let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum)
|
||||
call cursor(a:lnum, l:tw + 1)
|
||||
let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum)
|
||||
|
||||
" No need for special treatment, normal gq handles edgecases better
|
||||
if breakpoint[1] == orig_breakpoint[1]
|
||||
call winrestview(l:winview)
|
||||
return 1
|
||||
endif
|
||||
|
||||
" Try breaking after string
|
||||
if breakpoint[1] <= indent(a:lnum)
|
||||
call cursor(a:lnum, l:tw + 1)
|
||||
let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum)
|
||||
endif
|
||||
|
||||
|
||||
if breakpoint[1] != 0
|
||||
call feedkeys("r\<CR>")
|
||||
else
|
||||
let l:count = l:count - 1
|
||||
endif
|
||||
|
||||
" run gq on new lines
|
||||
if l:count == 1
|
||||
call feedkeys("gqq")
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Feb 08
|
||||
" Last Change: 2019 May 25
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
let buf = bufnr('option-window')
|
||||
@@ -415,6 +415,9 @@ call append("$", "highlight\twhich highlighting to use for various occasions")
|
||||
call <SID>OptionG("hl", &hl)
|
||||
call append("$", "hlsearch\thighlight all matches for the last used search pattern")
|
||||
call <SID>BinOptionG("hls", &hls)
|
||||
call append("$", "wincolor\thighlight group to use for the window")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("wcr")
|
||||
if has("termguicolors")
|
||||
call append("$", "termguicolors\tuse GUI colors for the terminal")
|
||||
call <SID>BinOptionG("tgc", &tgc)
|
||||
@@ -988,6 +991,8 @@ call <SID>Header("reading and writing files")
|
||||
call append("$", "modeline\tenable using settings from modelines when reading a file")
|
||||
call append("$", "\t(local to buffer)")
|
||||
call <SID>BinOptionL("ml")
|
||||
call append("$", "modelineexpr\tallow setting expression options from a modeline")
|
||||
call <SID>BinOptionG("mle", &mle)
|
||||
call append("$", "modelines\tnumber of lines to check for modelines")
|
||||
call append("$", " \tset mls=" . &mls)
|
||||
call append("$", "binary\tbinary file editing")
|
||||
|
||||
@@ -4,7 +4,7 @@ For instructions on installing this file, type
|
||||
`:help matchit-install`
|
||||
inside Vim.
|
||||
|
||||
For Vim version 8.1. Last change: 2019 Jan 28
|
||||
For Vim version 8.1. Last change: 2019 May 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Benji Fisher et al
|
||||
@@ -20,8 +20,6 @@ For Vim version 8.1. Last change: 2019 Jan 28
|
||||
The functionality mentioned here is a plugin, see |add-plugin|.
|
||||
This plugin is only available if 'compatible' is not set.
|
||||
|
||||
{Vi does not have any of this}
|
||||
|
||||
==============================================================================
|
||||
1. Extended matching with "%" *matchit-intro*
|
||||
|
||||
|
||||
@@ -117,10 +117,14 @@ func s:StartDebug_internal(dict)
|
||||
let s:startsigncolumn = &signcolumn
|
||||
|
||||
let s:save_columns = 0
|
||||
let s:allleft = 0
|
||||
if exists('g:termdebug_wide')
|
||||
if &columns < g:termdebug_wide
|
||||
let s:save_columns = &columns
|
||||
let &columns = g:termdebug_wide
|
||||
" If we make the Vim window wider, use the whole left halve for the debug
|
||||
" windows.
|
||||
let s:allleft = 1
|
||||
endif
|
||||
let s:vertical = 1
|
||||
else
|
||||
@@ -165,6 +169,10 @@ func s:StartDebug_term(dict)
|
||||
" Assuming the source code window will get a signcolumn, use two more
|
||||
" columns for that, thus one less for the terminal window.
|
||||
exe (&columns / 2 - 1) . "wincmd |"
|
||||
if s:allleft
|
||||
" use the whole left column
|
||||
wincmd H
|
||||
endif
|
||||
endif
|
||||
|
||||
" Create a hidden terminal window to communicate with gdb
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types in scripts
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2018 Feb 03
|
||||
" Last change: 2019 Jun 25
|
||||
|
||||
" 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
|
||||
@@ -195,7 +195,7 @@ else
|
||||
if s:line1 =~# '^:$'
|
||||
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||
|
||||
" Z shell scripts
|
||||
" Z shell scripts
|
||||
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
|
||||
\ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
|
||||
set ft=zsh
|
||||
@@ -204,15 +204,20 @@ else
|
||||
elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
||||
set ft=mail
|
||||
|
||||
" Mason
|
||||
" Mason
|
||||
elseif s:line1 =~# '^<[%&].*>'
|
||||
set ft=mason
|
||||
|
||||
" Vim scripts (must have '" vim' as the first line to trigger this)
|
||||
" Vim scripts (must have '" vim' as the first line to trigger this)
|
||||
elseif s:line1 =~# '^" *[vV]im$'
|
||||
set ft=vim
|
||||
|
||||
" MOO
|
||||
" libcxx and libstdc++ standard library headers like "iostream" do not have
|
||||
" an extension, recognize the Emacs file mode.
|
||||
elseif s:line1 =~? '-\*-.*C++.*-\*-'
|
||||
set ft=cpp
|
||||
|
||||
" MOO
|
||||
elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
|
||||
set ft=moo
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Feb 11
|
||||
" Last Change: 2019 Apr 23
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -289,6 +289,22 @@ if !exists("c_no_c11")
|
||||
syn keyword cOperator _Static_assert static_assert
|
||||
syn keyword cStorageClass _Thread_local thread_local
|
||||
syn keyword cType char16_t char32_t
|
||||
" C11 atomics (take down the shield wall!)
|
||||
syn keyword cType atomic_bool atomic_char atomic_schar atomic_uchar
|
||||
syn keyword Ctype atomic_short atomic_ushort atomic_int atomic_uint
|
||||
syn keyword cType atomic_long atomic_ulong atomic_llong atomic_ullong
|
||||
syn keyword cType atomic_char16_t atomic_char32_t atomic_wchar_t
|
||||
syn keyword cType atomic_int_least8_t atomic_uint_least8_t
|
||||
syn keyword cType atomic_int_least16_t atomic_uint_least16_t
|
||||
syn keyword cType atomic_int_least32_t atomic_uint_least32_t
|
||||
syn keyword cType atomic_int_least64_t atomic_uint_least64_t
|
||||
syn keyword cType atomic_int_fast8_t atomic_uint_fast8_t
|
||||
syn keyword cType atomic_int_fast16_t atomic_uint_fast16_t
|
||||
syn keyword cType atomic_int_fast32_t atomic_uint_fast32_t
|
||||
syn keyword cType atomic_int_fast64_t atomic_uint_fast64_t
|
||||
syn keyword cType atomic_intptr_t atomic_uintptr_t
|
||||
syn keyword cType atomic_size_t atomic_ptrdiff_t
|
||||
syn keyword cType atomic_intmax_t atomic_uintmax_t
|
||||
endif
|
||||
|
||||
if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2019 Jan 26
|
||||
" Last Change: 2019 Apr 21
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes'
|
||||
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
||||
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(squeeze|wheezy|jessie)-%(backports%(-sloppy)=|lts|security)|stretch%(-backports%(-sloppy)=|-security)=|buster%(-backports|-security)=|bullseye|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco|eoan)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||
syn match debchangelogVersion contained "(.\{-})"
|
||||
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
||||
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||
" Last Change: 2018 Oct 30
|
||||
" Last Change: 2019 Apr 21
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -23,9 +23,10 @@ let s:cpo = &cpo
|
||||
set cpo-=C
|
||||
let s:supported = [
|
||||
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
|
||||
\ 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
|
||||
\ 'wheezy', 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
|
||||
\ 'sid', 'rc-buggy',
|
||||
\
|
||||
\ 'trusty', 'xenial', 'bionic', 'cosmic', 'disco', 'devel'
|
||||
\ 'trusty', 'xenial', 'bionic', 'cosmic', 'disco', 'eoan', 'devel'
|
||||
\ ]
|
||||
let s:unsupported = [
|
||||
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||
|
||||
46
runtime/syntax/dune.vim
Normal file
46
runtime/syntax/dune.vim
Normal file
@@ -0,0 +1,46 @@
|
||||
" Language: Dune buildsystem
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes)
|
||||
" 2018 May 8 - Check current_syntax (Kawahara Satoru)
|
||||
" 2018 Mar 29 - Extend jbuild syntax with more keywords (Petter A. Urkedal)
|
||||
" 2017 Sep 6 - Initial version (Etienne Millon)
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
set syntax=lisp
|
||||
syn case match
|
||||
|
||||
" The syn-iskeyword setting lacks #,? from the iskeyword setting here.
|
||||
" Clearing it avoids maintaining keyword characters in multiple places.
|
||||
syn iskeyword clear
|
||||
|
||||
syn keyword lispDecl jbuild_version library executable executables rule ocamllex ocamlyacc menhir alias install
|
||||
|
||||
syn keyword lispKey name public_name synopsis modules libraries wrapped
|
||||
syn keyword lispKey preprocess preprocessor_deps optional c_names cxx_names
|
||||
syn keyword lispKey install_c_headers modes no_dynlink self_build_stubs_archive
|
||||
syn keyword lispKey ppx_runtime_libraries virtual_deps js_of_ocaml link_flags
|
||||
syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps
|
||||
syn keyword lispKey library_flags c_flags c_library_flags kind package action
|
||||
syn keyword lispKey deps targets locks fallback
|
||||
syn keyword lispKey inline_tests tests names
|
||||
|
||||
syn keyword lispAtom true false
|
||||
|
||||
syn keyword lispFunc cat chdir copy# diff? echo run setenv
|
||||
syn keyword lispFunc ignore-stdout ignore-stderr ignore-outputs
|
||||
syn keyword lispFunc with-stdout-to with-stderr-to with-outputs-to
|
||||
syn keyword lispFunc write-file system bash
|
||||
|
||||
syn cluster lispBaseListCluster add=duneVar
|
||||
syn match duneVar '\${[@<^]}' containedin=lispSymbol
|
||||
syn match duneVar '\${\k\+\(:\k\+\)\?}' containedin=lispSymbol
|
||||
|
||||
hi def link duneVar Identifier
|
||||
|
||||
let b:current_syntax = "dune"
|
||||
@@ -2,8 +2,8 @@
|
||||
" Language: fstab file
|
||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
|
||||
" Last Change: 2017 Nov 09
|
||||
" Version: 1.2
|
||||
" Last Change: 2019 Jun 06
|
||||
" Version: 1.3
|
||||
"
|
||||
" Credits:
|
||||
" David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
@@ -68,7 +68,7 @@ syn match fsOptionsString /[a-zA-Z0-9_-]\+/
|
||||
syn keyword fsOptionsYesNo yes no
|
||||
syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
|
||||
syn keyword fsOptionsSize 512 1024 2048
|
||||
syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx
|
||||
syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx nofail
|
||||
syn match fsOptionsGeneral /_netdev/
|
||||
|
||||
" Options: adfs
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2017 Oct 19
|
||||
" Last Change: 2019 May 12
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -11,7 +11,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn match helpHeadline "^[-A-Z .][-A-Z0-9 .()]*[ \t]\+\*"me=e-1
|
||||
syn match helpHeadline "^[-A-Z .][-A-Z0-9 .()_]*[ \t]\+\*"me=e-1
|
||||
syn match helpSectionDelim "^===.*===$"
|
||||
syn match helpSectionDelim "^---.*--$"
|
||||
if has("conceal")
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: none; used to see highlighting
|
||||
" Maintainer: Ronald Schild <rs@scutum.de>
|
||||
" Last Change: 2017 Jul 28
|
||||
" Last Change: 2019 Jun 06
|
||||
" Version: 5.4n.1
|
||||
" Additional Changes By: Lifepillar, Bram
|
||||
|
||||
" To see your current highlight settings, do
|
||||
" :so $VIMRUNTIME/syntax/hitest.vim
|
||||
@@ -12,6 +13,7 @@ let s:hidden = &hidden
|
||||
let s:lazyredraw = &lazyredraw
|
||||
let s:more = &more
|
||||
let s:report = &report
|
||||
let s:whichwrap = &whichwrap
|
||||
let s:shortmess = &shortmess
|
||||
let s:wrapscan = &wrapscan
|
||||
let s:register_a = @a
|
||||
@@ -19,10 +21,11 @@ let s:register_se = @/
|
||||
|
||||
" set global options
|
||||
set hidden lazyredraw nomore report=99999 shortmess=aoOstTW wrapscan
|
||||
set whichwrap&
|
||||
|
||||
" print current highlight settings into register a
|
||||
redir @a
|
||||
highlight
|
||||
silent highlight
|
||||
redir END
|
||||
|
||||
" Open a new window if the current one isn't empty
|
||||
@@ -34,25 +37,32 @@ endif
|
||||
edit Highlight\ test
|
||||
|
||||
" set local options
|
||||
setlocal autoindent noexpandtab formatoptions=t shiftwidth=16 noswapfile tabstop=16
|
||||
setlocal autoindent noexpandtab formatoptions=t shiftwidth=18 noswapfile tabstop=18
|
||||
let &textwidth=&columns
|
||||
|
||||
" insert highlight settings
|
||||
% delete
|
||||
put a
|
||||
|
||||
" remove cleared groups
|
||||
silent! g/ cleared$/d
|
||||
|
||||
" remove the colored xxx items
|
||||
g/xxx /s///e
|
||||
|
||||
" remove color settings (not needed here)
|
||||
global! /links to/ substitute /\s.*$//e
|
||||
|
||||
" Move split 'links to' lines to the same line
|
||||
% substitute /^\(\w\+\)\n\s*\(links to.*\)/\1\t\2/e
|
||||
|
||||
" move linked groups to the end of file
|
||||
global /links to/ move $
|
||||
|
||||
" move linked group names to the matching preferred groups
|
||||
" TODO: this fails if the group linked to isn't defined
|
||||
% substitute /^\(\w\+\)\s*\(links to\)\s*\(\w\+\)$/\3\t\2 \1/e
|
||||
global /links to/ normal mz3ElD0#$p'zdd
|
||||
silent! global /links to/ normal mz3ElD0#$p'zdd
|
||||
|
||||
" delete empty lines
|
||||
global /^ *$/ delete
|
||||
@@ -124,6 +134,7 @@ let &lazyredraw = s:lazyredraw
|
||||
let &more = s:more
|
||||
let &report = s:report
|
||||
let &shortmess = s:shortmess
|
||||
let &whichwrap = s:whichwrap
|
||||
let &wrapscan = s:wrapscan
|
||||
let @a = s:register_a
|
||||
|
||||
@@ -133,6 +144,6 @@ let @/ = s:register_se
|
||||
|
||||
" remove variables
|
||||
unlet s:hidden s:lazyredraw s:more s:report s:shortmess
|
||||
unlet s:wrapscan s:register_a s:register_se
|
||||
unlet s:whichwrap s:wrapscan s:register_a s:register_se
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
|
||||
" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
|
||||
" Original author: Mario Eusebio
|
||||
" Last Change: Mon Jan 23 2017
|
||||
" added support for cell mode
|
||||
" Last Change: June 10 2019
|
||||
" added highlight rule for double-quoted string literals
|
||||
" Change History:
|
||||
" - double-quoted string literals added
|
||||
" - now highlights cell-mode separator comments
|
||||
" - 'global' and 'persistent' keyword are now recognized
|
||||
|
||||
@@ -40,6 +41,7 @@ syn match matlabLineContinuation "\.\{3}"
|
||||
" String
|
||||
" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
|
||||
syn region matlabString start=+'+ end=+'+ oneline skip=+''+
|
||||
syn region matlabStringArray start=+"+ end=+"+ oneline skip=+""+
|
||||
|
||||
" If you don't like tabs
|
||||
syn match matlabTab "\t"
|
||||
@@ -87,6 +89,7 @@ hi def link matlabExceptions Conditional
|
||||
hi def link matlabRepeat Repeat
|
||||
hi def link matlabTodo Todo
|
||||
hi def link matlabString String
|
||||
hi def link matlabStringArray String
|
||||
hi def link matlabDelimiter Identifier
|
||||
hi def link matlabTransposeOther Identifier
|
||||
hi def link matlabNumber Number
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
|
||||
" Issac Trotts <ijtrotts@ucdavis.edu>
|
||||
" URL: http://www.ocaml.info/vim/syntax/ocaml.vim
|
||||
" Last Change: 2012 May 12 - Added Dominique Pellé's spell checking patch (MM)
|
||||
" 2012 Feb 01 - Improved module path highlighting (MM)
|
||||
" 2010 Oct 11 - Added highlighting of lnot (MM, thanks to Erick Matsen)
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2018 Nov 08 - Improved highlighting of operators (Maëlan)
|
||||
" 2018 Apr 22 - Improved support for PPX (Andrey Popp)
|
||||
" 2018 Mar 16 - Remove raise, lnot and not from keywords (Étienne Millon, "copy")
|
||||
" 2017 Apr 11 - Improved matching of negative numbers (MM)
|
||||
" 2016 Mar 11 - Improved support for quoted strings (Glen Mével)
|
||||
" 2015 Aug 13 - Allow apostrophes in identifiers (Jonathan Chan, Einar Lielmanis)
|
||||
" 2015 Jun 17 - Added new "nonrec" keyword (MM)
|
||||
|
||||
" A minor patch was applied to the official version so that object/end
|
||||
" can be distinguished from begin/end, which is used for indentation,
|
||||
@@ -18,6 +23,9 @@ if exists("b:current_syntax") && b:current_syntax == "ocaml"
|
||||
finish
|
||||
endif
|
||||
|
||||
" ' can be used in OCaml identifiers
|
||||
setlocal iskeyword+='
|
||||
|
||||
" OCaml is case sensitive.
|
||||
syn case match
|
||||
|
||||
@@ -28,7 +36,7 @@ syn match ocamlMethod "#"
|
||||
syn match ocamlComment "^#!.*" contains=@Spell
|
||||
|
||||
" Scripting directives
|
||||
syn match ocamlScript "^#\<\(quit\|labels\|warnings\|directory\|cd\|load\|use\|install_printer\|remove_printer\|require\|thread\|trace\|untrace\|untrace_all\|print_depth\|print_length\|camlp4o\)\>"
|
||||
syn match ocamlScript "^#\<\(quit\|labels\|warnings\|warn_error\|directory\|remove_directory\|cd\|load\|load_rec\|use\|mod_use\|install_printer\|remove_printer\|require\|list\|ppx\|principal\|predicates\|rectypes\|thread\|trace\|untrace\|untrace_all\|print_depth\|print_length\|camlp4o\|camlp4r\|topfind_log\|topfind_verbose\)\>"
|
||||
|
||||
" lowercase identifier - the standard way to match
|
||||
syn match ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/
|
||||
@@ -66,7 +74,7 @@ syn cluster ocamlAllErrs contains=ocamlBraceErr,ocamlBrackErr,ocamlParenErr,oca
|
||||
|
||||
syn cluster ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr
|
||||
|
||||
syn cluster ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlPreMPRestr,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod,ocamlVal
|
||||
syn cluster ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod,ocamlVal
|
||||
|
||||
|
||||
" Enclosing delimiters
|
||||
@@ -103,11 +111,15 @@ endif
|
||||
" "if"
|
||||
syn region ocamlNone matchgroup=ocamlKeyword start="\<if\>" matchgroup=ocamlKeyword end="\<then\>" contains=ALLBUT,@ocamlContained,ocamlThenErr
|
||||
|
||||
"" PPX nodes
|
||||
|
||||
syn match ocamlPpxIdentifier /\(\[@\{1,3\}\)\@<=\w\+\(\.\w\+\)*/
|
||||
syn region ocamlPpx matchgroup=ocamlPpxEncl start="\[@\{1,3\}" contains=TOP end="\]"
|
||||
|
||||
"" Modules
|
||||
|
||||
" "sig"
|
||||
syn region ocamlSig matchgroup=ocamlModule start="\<sig\>" matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule
|
||||
syn region ocamlSig matchgroup=ocamlSigEncl start="\<sig\>" matchgroup=ocamlSigEncl end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule
|
||||
syn region ocamlModSpec matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr
|
||||
|
||||
" "open"
|
||||
@@ -118,15 +130,14 @@ syn match ocamlKeyword "\<include\>" skipwhite skipempty nextgroup=ocamlModPa
|
||||
|
||||
" "module" - somewhat complicated stuff ;-)
|
||||
syn region ocamlModule matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDef
|
||||
syn region ocamlPreDef start="."me=e-1 matchgroup=ocamlKeyword end="\l\|=\|)"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlModTypeRestr,ocamlModTRWith nextgroup=ocamlModPreRHS
|
||||
syn region ocamlModParam start="([^*]" end=")" contained contains=@ocamlAENoParen,ocamlModParam1,ocamlVal
|
||||
syn match ocamlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlPreMPRestr
|
||||
|
||||
syn region ocamlPreMPRestr start="."me=e-1 end=")"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlMPRestr,ocamlModTypeRestr
|
||||
syn region ocamlPreDef start="."me=e-1 matchgroup=ocamlKeyword end="\l\|=\|)"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod,ocamlModTypeRestr,ocamlModTRWith nextgroup=ocamlModPreRHS
|
||||
syn region ocamlModParam start="([^*]" end=")" contained contains=ocamlGenMod,ocamlModParam1,ocamlSig,ocamlVal
|
||||
syn match ocamlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty
|
||||
syn match ocamlGenMod "()" contained skipwhite skipempty
|
||||
|
||||
syn region ocamlMPRestr start=":" end="."me=e-1 contained contains=@ocamlComment skipwhite skipempty nextgroup=ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3
|
||||
syn region ocamlMPRestr1 matchgroup=ocamlModule start="\ssig\s\=" matchgroup=ocamlModule end="\<end\>" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule
|
||||
syn region ocamlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=ocamlKeyword end="->" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam skipwhite skipempty nextgroup=ocamlFuncWith,ocamlMPRestr2
|
||||
syn region ocamlMPRestr1 matchgroup=ocamlSigEncl start="\ssig\s\=" matchgroup=ocamlSigEncl end="\<end\>" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule
|
||||
syn region ocamlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=ocamlKeyword end="->" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod skipwhite skipempty nextgroup=ocamlFuncWith,ocamlMPRestr2
|
||||
syn match ocamlMPRestr3 "\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*" contained
|
||||
syn match ocamlModPreRHS "=" contained skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
|
||||
syn keyword ocamlKeyword val
|
||||
@@ -134,8 +145,8 @@ syn region ocamlVal matchgroup=ocamlKeyword start="\<val\>" matchgroup=ocamlLC
|
||||
syn region ocamlModRHS start="." end=". *\w\|([^*]"me=e-2 contained contains=ocamlComment skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
|
||||
syn match ocamlFullMod "\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=ocamlFuncWith
|
||||
|
||||
syn region ocamlFuncWith start="([^*]"me=e-1 end=")" contained contains=ocamlComment,ocamlWith,ocamlFuncStruct skipwhite skipempty nextgroup=ocamlFuncWith
|
||||
syn region ocamlFuncStruct matchgroup=ocamlModule start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
|
||||
syn region ocamlFuncWith start="([^*)]"me=e-1 end=")" contained contains=ocamlComment,ocamlWith,ocamlFuncStruct skipwhite skipempty nextgroup=ocamlFuncWith
|
||||
syn region ocamlFuncStruct matchgroup=ocamlStructEncl start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlStructEncl end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
|
||||
|
||||
syn match ocamlModTypeRestr "\<\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*\>" contained
|
||||
syn region ocamlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@ocamlAENoParen,ocamlWith
|
||||
@@ -143,20 +154,23 @@ syn match ocamlWith "\<\(\u\(\w\|'\)* *\. *\)*\w\(\w\|'\)*\>" contained skipw
|
||||
syn region ocamlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@ocamlContained
|
||||
|
||||
" "struct"
|
||||
syn region ocamlStruct matchgroup=ocamlModule start="\<\(module\s\+\)\=struct\>" matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
|
||||
syn region ocamlStruct matchgroup=ocamlStructEncl start="\<\(module\s\+\)\=struct\>" matchgroup=ocamlStructEncl end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
|
||||
|
||||
" "module type"
|
||||
syn region ocamlKeyword start="\<module\>\s*\<type\>\(\s*\<of\>\)\=" matchgroup=ocamlModule end="\<\w\(\w\|'\)*\>" contains=ocamlComment skipwhite skipempty nextgroup=ocamlMTDef
|
||||
syn match ocamlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s+1 skipwhite skipempty nextgroup=ocamlFullMod
|
||||
|
||||
" Quoted strings
|
||||
syn region ocamlString matchgroup=ocamlQuotedStringDelim start="{\z\([a-z_]*\)|" end="|\z1}" contains=@Spell
|
||||
|
||||
syn keyword ocamlKeyword and as assert class
|
||||
syn keyword ocamlKeyword constraint else
|
||||
syn keyword ocamlKeyword exception external fun
|
||||
|
||||
syn keyword ocamlKeyword in inherit initializer
|
||||
syn keyword ocamlKeyword land lazy let match
|
||||
syn keyword ocamlKeyword method mutable new of
|
||||
syn keyword ocamlKeyword parser private raise rec
|
||||
syn keyword ocamlKeyword lazy let match
|
||||
syn keyword ocamlKeyword method mutable new nonrec of
|
||||
syn keyword ocamlKeyword parser private rec
|
||||
syn keyword ocamlKeyword try type
|
||||
syn keyword ocamlKeyword virtual when while with
|
||||
|
||||
@@ -166,14 +180,11 @@ if exists("ocaml_revised")
|
||||
else
|
||||
syn keyword ocamlKeyword function
|
||||
syn keyword ocamlBoolean true false
|
||||
syn match ocamlKeyChar "!"
|
||||
endif
|
||||
|
||||
syn keyword ocamlType array bool char exn float format format4
|
||||
syn keyword ocamlType int int32 int64 lazy_t list nativeint option
|
||||
syn keyword ocamlType string unit
|
||||
|
||||
syn keyword ocamlOperator asr lnot lor lsl lsr lxor mod not
|
||||
syn keyword ocamlType bytes string unit
|
||||
|
||||
syn match ocamlConstructor "(\s*)"
|
||||
syn match ocamlConstructor "\[\s*\]"
|
||||
@@ -193,39 +204,61 @@ syn match ocamlCharErr "'\\\d\d'\|'\\\d'"
|
||||
syn match ocamlCharErr "'\\[^\'ntbr]'"
|
||||
syn region ocamlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
|
||||
|
||||
syn match ocamlFunDef "->"
|
||||
syn match ocamlRefAssign ":="
|
||||
syn match ocamlTopStop ";;"
|
||||
syn match ocamlOperator "\^"
|
||||
syn match ocamlOperator "::"
|
||||
|
||||
syn match ocamlOperator "&&"
|
||||
syn match ocamlOperator "<"
|
||||
syn match ocamlOperator ">"
|
||||
syn match ocamlAnyVar "\<_\>"
|
||||
syn match ocamlKeyChar "|[^\]]"me=e-1
|
||||
syn match ocamlKeyChar ";"
|
||||
syn match ocamlKeyChar "\~"
|
||||
syn match ocamlKeyChar "?"
|
||||
syn match ocamlKeyChar "\*"
|
||||
syn match ocamlKeyChar "="
|
||||
|
||||
"" Operators
|
||||
|
||||
" The grammar of operators is found there:
|
||||
" https://caml.inria.fr/pub/docs/manual-ocaml/names.html#operator-name
|
||||
" https://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s:ext-ops
|
||||
" https://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s:index-operators
|
||||
" =, *, < and > are both operator names and keywords, we let the user choose how
|
||||
" to display them (has to be declared before regular infix operators):
|
||||
syn match ocamlEqual "="
|
||||
syn match ocamlStar "*"
|
||||
syn match ocamlAngle "<"
|
||||
syn match ocamlAngle ">"
|
||||
" Custom indexing operators:
|
||||
syn match ocamlIndexingOp "\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\(()\|\[]\|{}\)\(<-\)\?"
|
||||
" Extension operators (has to be declared before regular infix operators):
|
||||
syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+"
|
||||
" Infix and prefix operators:
|
||||
syn match ocamlPrefixOp "![~?!.:|&$%<=>@^*/+-]*"
|
||||
syn match ocamlPrefixOp "[~?][~?!.:|&$%<=>@^*/+-]\+"
|
||||
syn match ocamlInfixOp "[&$%@^/+-][~?!.:|&$%<=>@^*/+-]*"
|
||||
syn match ocamlInfixOp "[|<=>*][~?!.:|&$%<=>@^*/+-]\+"
|
||||
syn match ocamlInfixOp "#[~?!.:|&$%<=>@^*/+-]\+#\@!"
|
||||
syn match ocamlInfixOp "!=[~?!.:|&$%<=>@^*/+-]\@!"
|
||||
syn keyword ocamlInfixOpKeyword asr land lor lsl lsr lxor mod or
|
||||
" := is technically an infix operator, but we may want to show it as a keyword
|
||||
" (somewhat analogously to = for let‐bindings and <- for assignations):
|
||||
syn match ocamlRefAssign ":="
|
||||
" :: is technically not an operator, but we may want to show it as such:
|
||||
syn match ocamlCons "::"
|
||||
" -> and <- are keywords, not operators (but can appear in longer operators):
|
||||
syn match ocamlArrow "->[~?!.:|&$%<=>@^*/+-]\@!"
|
||||
if exists("ocaml_revised")
|
||||
syn match ocamlErr "<-"
|
||||
syn match ocamlErr "<-[~?!.:|&$%<=>@^*/+-]\@!"
|
||||
else
|
||||
syn match ocamlOperator "<-"
|
||||
syn match ocamlKeyChar "<-[~?!.:|&$%<=>@^*/+-]\@!"
|
||||
endif
|
||||
|
||||
syn match ocamlNumber "\<-\=\d\(_\|\d\)*[l|L|n]\?\>"
|
||||
syn match ocamlNumber "\<-\=0[x|X]\(\x\|_\)\+[l|L|n]\?\>"
|
||||
syn match ocamlNumber "\<-\=0[o|O]\(\o\|_\)\+[l|L|n]\?\>"
|
||||
syn match ocamlNumber "\<-\=0[b|B]\([01]\|_\)\+[l|L|n]\?\>"
|
||||
syn match ocamlFloat "\<-\=\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>"
|
||||
syn match ocamlNumber "-\=\<\d\(_\|\d\)*[l|L|n]\?\>"
|
||||
syn match ocamlNumber "-\=\<0[x|X]\(\x\|_\)\+[l|L|n]\?\>"
|
||||
syn match ocamlNumber "-\=\<0[o|O]\(\o\|_\)\+[l|L|n]\?\>"
|
||||
syn match ocamlNumber "-\=\<0[b|B]\([01]\|_\)\+[l|L|n]\?\>"
|
||||
syn match ocamlFloat "-\=\<\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>"
|
||||
|
||||
" Labels
|
||||
syn match ocamlLabel "\~\(\l\|_\)\(\w\|'\)*"lc=1
|
||||
syn match ocamlLabel "?\(\l\|_\)\(\w\|'\)*"lc=1
|
||||
syn region ocamlLabel transparent matchgroup=ocamlLabel start="?(\(\l\|_\)\(\w\|'\)*"lc=2 end=")"me=e-1 contains=ALLBUT,@ocamlContained,ocamlParenErr
|
||||
syn region ocamlLabel transparent matchgroup=ocamlLabel start="[~?](\(\l\|_\)\(\w\|'\)*"lc=2 end=")"me=e-1 contains=ALLBUT,@ocamlContained,ocamlParenErr
|
||||
|
||||
|
||||
" Synchronization
|
||||
@@ -281,6 +314,8 @@ hi def link ocamlFullMod Include
|
||||
hi def link ocamlModTypeRestr Include
|
||||
hi def link ocamlWith Include
|
||||
hi def link ocamlMTDef Include
|
||||
hi def link ocamlSigEncl ocamlModule
|
||||
hi def link ocamlStructEncl ocamlModule
|
||||
|
||||
hi def link ocamlScript Include
|
||||
|
||||
@@ -291,18 +326,34 @@ hi def link ocamlModPreRHS Keyword
|
||||
hi def link ocamlMPRestr2 Keyword
|
||||
hi def link ocamlKeyword Keyword
|
||||
hi def link ocamlMethod Include
|
||||
hi def link ocamlFunDef Keyword
|
||||
hi def link ocamlRefAssign Keyword
|
||||
hi def link ocamlKeyChar Keyword
|
||||
hi def link ocamlAnyVar Keyword
|
||||
hi def link ocamlTopStop Keyword
|
||||
hi def link ocamlOperator Keyword
|
||||
|
||||
hi def link ocamlRefAssign ocamlKeyChar
|
||||
hi def link ocamlEqual ocamlKeyChar
|
||||
hi def link ocamlStar ocamlInfixOp
|
||||
hi def link ocamlAngle ocamlInfixOp
|
||||
hi def link ocamlCons ocamlInfixOp
|
||||
|
||||
hi def link ocamlPrefixOp ocamlOperator
|
||||
hi def link ocamlInfixOp ocamlOperator
|
||||
hi def link ocamlExtensionOp ocamlOperator
|
||||
hi def link ocamlIndexingOp ocamlOperator
|
||||
|
||||
if exists("ocaml_highlight_operators")
|
||||
hi def link ocamlInfixOpKeyword ocamlOperator
|
||||
hi def link ocamlOperator Operator
|
||||
else
|
||||
hi def link ocamlInfixOpKeyword Keyword
|
||||
endif
|
||||
|
||||
hi def link ocamlBoolean Boolean
|
||||
hi def link ocamlCharacter Character
|
||||
hi def link ocamlNumber Number
|
||||
hi def link ocamlFloat Float
|
||||
hi def link ocamlString String
|
||||
hi def link ocamlQuotedStringDelim Identifier
|
||||
|
||||
hi def link ocamlLabel Identifier
|
||||
|
||||
@@ -312,6 +363,7 @@ hi def link ocamlTodo Todo
|
||||
|
||||
hi def link ocamlEncl Keyword
|
||||
|
||||
hi def link ocamlPpxEncl ocamlEncl
|
||||
|
||||
let b:current_syntax = "ocaml"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" markdown Text with R statements
|
||||
" Language: markdown with R code chunks
|
||||
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
|
||||
" Last Change: Sat Aug 25, 2018 03:44PM
|
||||
" Last Change: Thu Apr 18, 2019 09:17PM
|
||||
"
|
||||
" For highlighting pandoc extensions to markdown like citations and TeX and
|
||||
" many other advanced features like folding of markdown sections, it is
|
||||
@@ -54,14 +54,14 @@ runtime syntax/markdown.vim
|
||||
" Now highlight chunks:
|
||||
for s:type in g:rmd_fenced_languages
|
||||
if s:type =~ '='
|
||||
let s:lng = substitute(s:type, '=.*', '')
|
||||
let s:nm = substitute(s:type, '.*=', '')
|
||||
let s:ft = substitute(s:type, '.*=', '', '')
|
||||
let s:nm = substitute(s:type, '=.*', '', '')
|
||||
else
|
||||
let s:lng = s:type
|
||||
let s:ft = s:type
|
||||
let s:nm = s:type
|
||||
endif
|
||||
unlet! b:current_syntax
|
||||
exe 'syn include @Rmd'.s:nm.' syntax/'.s:lng.'.vim'
|
||||
exe 'syn include @Rmd'.s:nm.' syntax/'.s:ft.'.vim'
|
||||
if g:rmd_syn_hl_chunk
|
||||
exe 'syn region rmd'.s:nm.'ChunkDelim matchgroup=rmdCodeDelim start="^\s*```\s*{\s*'.s:nm.'\>" matchgroup=rmdCodeDelim end="}$" keepend containedin=rmd'.s:nm.'Chunk contains=@Rmd'.s:nm
|
||||
exe 'syn region rmd'.s:nm.'Chunk start="^\s*```\s*{\s*'.s:nm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=rmd'.s:nm.'ChunkDelim,@Rmd'.s:nm
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 186
|
||||
" Last Change: Jun 16, 2019
|
||||
" Version: 188
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||
" For options and settings, please use: :help ft-sh-syntax
|
||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
||||
@@ -381,22 +381,23 @@ syn match shBQComment contained "#.\{-}\ze`" contains=@shCommentGroup
|
||||
|
||||
" Here Documents: {{{1
|
||||
" =========================================
|
||||
" Note : shHereDoc0[137] only had shDblQuoteList contained
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^"]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^']\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^']\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^"]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t'"|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^\t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^\t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^']\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^"]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
|
||||
" Here Strings: {{{1
|
||||
" =============
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Language: SPEC: Build/install scripts for Linux RPM packages
|
||||
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
|
||||
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
|
||||
" Last Change: 2019 Feb 12
|
||||
" Last Change: 2019 May 07
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -86,9 +86,9 @@ syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start
|
||||
"%% Files Section %%
|
||||
"TODO %config valid parameters: missingok\|noreplace
|
||||
"TODO %verify valid parameters: \(not\)\= \(md5\|atime\|...\)
|
||||
syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier
|
||||
syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\|exclude\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier
|
||||
"tip: remember to include new itens in specFilesArea above
|
||||
syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\)\>'
|
||||
syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\|exclude\)\>'
|
||||
|
||||
"valid options for certain section headers
|
||||
syn match specDescriptionOpts contained '\s-[ln]\s*\a'ms=s+1,me=e-1
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Originally: 2009-07-09
|
||||
" Last Change: 2017 Oct 25
|
||||
" SSH Version: 7.6p1
|
||||
" Last Change: 2019-05-31
|
||||
" SSH Version: 7.9p1
|
||||
"
|
||||
|
||||
" Setup
|
||||
@@ -137,7 +137,8 @@ syn case ignore
|
||||
|
||||
|
||||
" Keywords
|
||||
syn keyword sshdconfigMatch Host User Group Address
|
||||
" Also includes RDomain, but that is a keyword.
|
||||
syn keyword sshdconfigMatch Host User Group Address LocalAddress LocalPort
|
||||
|
||||
syn keyword sshdconfigKeyword AcceptEnv
|
||||
syn keyword sshdconfigKeyword AddressFamily
|
||||
@@ -150,8 +151,11 @@ syn keyword sshdconfigKeyword AuthenticationMethods
|
||||
syn keyword sshdconfigKeyword AuthorizedKeysFile
|
||||
syn keyword sshdconfigKeyword AuthorizedKeysCommand
|
||||
syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
|
||||
syn keyword sshdconfigKeyword AuthorizedPrincipalsCommand
|
||||
syn keyword sshdconfigKeyword AuthorizedPrincipalsCommandUser
|
||||
syn keyword sshdconfigKeyword AuthorizedPrincipalsFile
|
||||
syn keyword sshdconfigKeyword Banner
|
||||
syn keyword sshdconfigKeyword CASignatureAlgorithms
|
||||
syn keyword sshdconfigKeyword ChallengeResponseAuthentication
|
||||
syn keyword sshdconfigKeyword ChrootDirectory
|
||||
syn keyword sshdconfigKeyword Ciphers
|
||||
@@ -162,13 +166,17 @@ syn keyword sshdconfigKeyword DebianBanner
|
||||
syn keyword sshdconfigKeyword DenyGroups
|
||||
syn keyword sshdconfigKeyword DenyUsers
|
||||
syn keyword sshdconfigKeyword DisableForwarding
|
||||
syn keyword sshdconfigKeyword ExposeAuthInfo
|
||||
syn keyword sshdconfigKeyword FingerprintHash
|
||||
syn keyword sshdconfigKeyword ForceCommand
|
||||
syn keyword sshdconfigKeyword GatewayPorts
|
||||
syn keyword sshdconfigKeyword GSSAPIAuthentication
|
||||
syn keyword sshdconfigKeyword GSSAPICleanupCredentials
|
||||
syn keyword sshdconfigKeyword GSSAPIEnablek5users
|
||||
syn keyword sshdconfigKeyword GSSAPIKeyExchange
|
||||
syn keyword sshdconfigKeyword GSSAPIKexAlgorithms
|
||||
syn keyword sshdconfigKeyword GSSAPIStoreCredentialsOnRekey
|
||||
syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck
|
||||
syn keyword sshdconfigKeyword GatewayPorts
|
||||
syn keyword sshdconfigKeyword HostCertificate
|
||||
syn keyword sshdconfigKeyword HostKey
|
||||
syn keyword sshdconfigKeyword HostKeyAgent
|
||||
@@ -184,6 +192,8 @@ syn keyword sshdconfigKeyword KerberosAuthentication
|
||||
syn keyword sshdconfigKeyword KerberosGetAFSToken
|
||||
syn keyword sshdconfigKeyword KerberosOrLocalPasswd
|
||||
syn keyword sshdconfigKeyword KerberosTicketCleanup
|
||||
syn keyword sshdconfigKeyword KerberosUniqueCCache
|
||||
syn keyword sshdconfigKeyword KerberosUseKuserok
|
||||
syn keyword sshdconfigKeyword KexAlgorithms
|
||||
syn keyword sshdconfigKeyword KeyRegenerationInterval
|
||||
syn keyword sshdconfigKeyword ListenAddress
|
||||
@@ -197,6 +207,7 @@ syn keyword sshdconfigKeyword MaxStartups
|
||||
syn keyword sshdconfigKeyword PasswordAuthentication
|
||||
syn keyword sshdconfigKeyword PermitBlacklistedKeys
|
||||
syn keyword sshdconfigKeyword PermitEmptyPasswords
|
||||
syn keyword sshdconfigKeyword PermitListen
|
||||
syn keyword sshdconfigKeyword PermitOpen
|
||||
syn keyword sshdconfigKeyword PermitRootLogin
|
||||
syn keyword sshdconfigKeyword PermitTTY
|
||||
@@ -213,10 +224,14 @@ syn keyword sshdconfigKeyword PubkeyAuthentication
|
||||
syn keyword sshdconfigKeyword RSAAuthentication
|
||||
syn keyword sshdconfigKeyword RekeyLimit
|
||||
syn keyword sshdconfigKeyword RevokedKeys
|
||||
syn keyword sshdconfigKeyword RDomain
|
||||
syn keyword sshdconfigKeyword RhostsRSAAuthentication
|
||||
syn keyword sshdconfigKeyword ServerKeyBits
|
||||
syn keyword sshdconfigKeyword SetEnv
|
||||
syn keyword sshdconfigKeyword ShowPatchLevel
|
||||
syn keyword sshdconfigKeyword StrictModes
|
||||
syn keyword sshdconfigKeyword StreamLocalBindMask
|
||||
syn keyword sshdconfigKeyword StreamLocalBindUnlink
|
||||
syn keyword sshdconfigKeyword Subsystem
|
||||
syn keyword sshdconfigKeyword SyslogFacility
|
||||
syn keyword sshdconfigKeyword TCPKeepAlive
|
||||
@@ -227,6 +242,7 @@ syn keyword sshdconfigKeyword UsePAM
|
||||
syn keyword sshdconfigKeyword VersionAddendum
|
||||
syn keyword sshdconfigKeyword X11DisplayOffset
|
||||
syn keyword sshdconfigKeyword X11Forwarding
|
||||
syn keyword sshdconfigKeyword X11MaxDisplays
|
||||
syn keyword sshdconfigKeyword X11UseLocalhost
|
||||
syn keyword sshdconfigKeyword XAuthLocation
|
||||
|
||||
|
||||
15
runtime/syntax/template.vim
Normal file
15
runtime/syntax/template.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
" Vim syntax file
|
||||
" Language: Generic template
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 May 06
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Known template types are very similar to HTML, E.g. golang and "Xfire User
|
||||
" Interface Template"
|
||||
" If you know how to recognize a more specific type for *.tmpl suggest a
|
||||
" change to runtime/scripts.vim.
|
||||
runtime! syntax/html.vim
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: TeX
|
||||
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
|
||||
" Last Change: Apr 01, 2019
|
||||
" Version: 113
|
||||
" Last Change: May 14, 2019
|
||||
" Version: 114
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
||||
"
|
||||
" Notes: {{{1
|
||||
@@ -947,6 +947,7 @@ if has("conceal") && &enc == 'utf-8'
|
||||
call s:Greek('texGreek','\\eta\>' ,'η')
|
||||
call s:Greek('texGreek','\\theta\>' ,'θ')
|
||||
call s:Greek('texGreek','\\vartheta\>' ,'ϑ')
|
||||
call s:Greek('texGreek','\\iota\>' ,'ι')
|
||||
call s:Greek('texGreek','\\kappa\>' ,'κ')
|
||||
call s:Greek('texGreek','\\lambda\>' ,'λ')
|
||||
call s:Greek('texGreek','\\mu\>' ,'μ')
|
||||
@@ -969,11 +970,12 @@ if has("conceal") && &enc == 'utf-8'
|
||||
call s:Greek('texGreek','\\Delta\>' ,'Δ')
|
||||
call s:Greek('texGreek','\\Theta\>' ,'Θ')
|
||||
call s:Greek('texGreek','\\Lambda\>' ,'Λ')
|
||||
call s:Greek('texGreek','\\Xi\>' ,'Χ')
|
||||
call s:Greek('texGreek','\\Xi\>' ,'Ξ')
|
||||
call s:Greek('texGreek','\\Pi\>' ,'Π')
|
||||
call s:Greek('texGreek','\\Sigma\>' ,'Σ')
|
||||
call s:Greek('texGreek','\\Upsilon\>' ,'Υ')
|
||||
call s:Greek('texGreek','\\Phi\>' ,'Φ')
|
||||
call s:Greek('texGreek','\\Chi\>' ,'Χ')
|
||||
call s:Greek('texGreek','\\Psi\>' ,'Ψ')
|
||||
call s:Greek('texGreek','\\Omega\>' ,'Ω')
|
||||
delfun s:Greek
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
" Language: tmux(1) configuration file
|
||||
" Version: 2.7 (git-e4e060f2)
|
||||
" Version: 2.9a (git-0d64531f)
|
||||
" URL: https://github.com/ericpruitt/tmux.vim/
|
||||
" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
|
||||
" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
|
||||
@@ -64,60 +64,51 @@ endfor
|
||||
syn keyword tmuxOptions
|
||||
\ buffer-limit command-alias default-terminal escape-time exit-empty
|
||||
\ activity-action assume-paste-time base-index bell-action default-command
|
||||
\ default-shell destroy-unattached detach-on-destroy
|
||||
\ default-shell default-size destroy-unattached detach-on-destroy
|
||||
\ display-panes-active-colour display-panes-colour display-panes-time
|
||||
\ display-time exit-unattached focus-events history-file history-limit
|
||||
\ key-table lock-after-time lock-command message-attr message-bg
|
||||
\ message-command-attr message-command-bg message-command-fg
|
||||
\ message-command-style message-fg message-limit message-style mouse
|
||||
\ aggressive-resize allow-rename alternate-screen automatic-rename
|
||||
\ automatic-rename-format clock-mode-colour clock-mode-style force-height
|
||||
\ force-width main-pane-height main-pane-width mode-attr mode-bg mode-fg
|
||||
\ mode-keys mode-style monitor-activity monitor-bell monitor-silence
|
||||
\ other-pane-height other-pane-width pane-active-border-bg
|
||||
\ pane-active-border-fg pane-active-border-style pane-base-index
|
||||
\ pane-border-bg pane-border-fg pane-border-format pane-border-status
|
||||
\ pane-border-style prefix prefix2 remain-on-exit renumber-windows
|
||||
\ repeat-time set-clipboard set-titles set-titles-string silence-action
|
||||
\ status status-attr status-bg status-fg status-interval status-justify
|
||||
\ status-keys status-left status-left-attr status-left-bg status-left-fg
|
||||
\ status-left-length status-left-style status-position status-right
|
||||
\ status-right-attr status-right-bg status-right-fg status-right-length
|
||||
\ key-table lock-after-time lock-command message-command-style message-limit
|
||||
\ message-style mouse aggressive-resize allow-rename alternate-screen
|
||||
\ automatic-rename automatic-rename-format clock-mode-colour
|
||||
\ clock-mode-style main-pane-height main-pane-width mode-keys mode-style
|
||||
\ monitor-activity monitor-bell monitor-silence other-pane-height
|
||||
\ other-pane-width pane-active-border-style pane-base-index
|
||||
\ pane-border-format pane-border-status pane-border-style prefix prefix2
|
||||
\ remain-on-exit renumber-windows repeat-time set-clipboard set-titles
|
||||
\ set-titles-string silence-action status status-bg status-fg status-format
|
||||
\ status-interval status-justify status-keys status-left status-left-length
|
||||
\ status-left-style status-position status-right status-right-length
|
||||
\ status-right-style status-style synchronize-panes terminal-overrides
|
||||
\ update-environment user-keys visual-activity visual-bell visual-silence
|
||||
\ window-active-style window-status-activity-attr window-status-activity-bg
|
||||
\ window-status-activity-fg window-status-activity-style window-status-attr
|
||||
\ window-status-bell-attr window-status-bell-bg window-status-bell-fg
|
||||
\ window-status-bell-style window-status-bg window-status-current-attr
|
||||
\ window-status-current-bg window-status-current-fg
|
||||
\ window-status-current-format window-status-current-style window-status-fg
|
||||
\ window-status-format window-status-last-attr window-status-last-bg
|
||||
\ window-status-last-fg window-status-last-style window-status-separator
|
||||
\ window-status-style window-style word-separators wrap-search xterm-keys
|
||||
\ window-active-style window-size window-status-activity-style
|
||||
\ window-status-bell-style window-status-current-format
|
||||
\ window-status-current-style window-status-format window-status-last-style
|
||||
\ window-status-separator window-status-style window-style word-separators
|
||||
\ wrap-search xterm-keys
|
||||
|
||||
syn keyword tmuxCommands
|
||||
\ attach attach-session bind bind-key break-pane breakp capture-pane
|
||||
\ capturep choose-buffer choose-client choose-tree clear-history clearhist
|
||||
\ clock-mode command-prompt confirm confirm-before copy-mode detach
|
||||
\ detach-client display display-message display-panes displayp find-window
|
||||
\ findw if if-shell join-pane joinp kill-pane kill-server kill-session
|
||||
\ kill-window killp has-session has killw link-window linkw list-buffers
|
||||
\ list-clients list-commands list-keys list-panes list-sessions list-windows
|
||||
\ load-buffer loadb lock lock-client lock-server lock-session last-pane
|
||||
\ lastp lockc locks last-window last ls lsb delete-buffer deleteb lsc lscm
|
||||
\ lsk lsp lsw move-pane move-window movep movew new new-session new-window
|
||||
\ neww next next-layout next-window nextl paste-buffer pasteb pipe-pane
|
||||
\ pipep prev previous-layout previous-window prevl refresh refresh-client
|
||||
\ rename rename-session rename-window renamew resize-pane resizep
|
||||
\ respawn-pane respawn-window respawnp respawnw rotate-window rotatew run
|
||||
\ run-shell save-buffer saveb select-layout select-pane select-window
|
||||
\ selectl selectp selectw send send-keys send-prefix set set-buffer
|
||||
\ set-environment set-hook set-option set-window-option setb setenv setw
|
||||
\ show show-buffer show-environment show-hooks show-messages show-options
|
||||
\ show-window-options showb showenv showmsgs showw source source-file
|
||||
\ split-window splitw start start-server suspend-client suspendc swap-pane
|
||||
\ swap-window swapp swapw switch-client switchc unbind unbind-key
|
||||
\ unlink-window unlinkw wait wait-for
|
||||
\ detach-client display display-menu display-message display-panes displayp
|
||||
\ find-window findw if if-shell join-pane joinp kill-pane kill-server
|
||||
\ kill-session kill-window killp has-session has killw link-window linkw
|
||||
\ list-buffers list-clients list-commands list-keys list-panes list-sessions
|
||||
\ list-windows load-buffer loadb lock lock-client lock-server lock-session
|
||||
\ lockc last-pane lastp locks ls last-window last lsb lsc delete-buffer
|
||||
\ deleteb lscm lsk lsp lsw menu move-pane move-window movep movew new
|
||||
\ new-session new-window neww next next-layout next-window nextl
|
||||
\ paste-buffer pasteb pipe-pane pipep prev previous-layout previous-window
|
||||
\ prevl refresh refresh-client rename rename-session rename-window renamew
|
||||
\ resize-pane resize-window resizep resizew respawn-pane respawn-window
|
||||
\ respawnp respawnw rotate-window rotatew run run-shell save-buffer saveb
|
||||
\ select-layout select-pane select-window selectl selectp selectw send
|
||||
\ send-keys send-prefix set set-buffer set-environment set-hook set-option
|
||||
\ set-window-option setb setenv setw show show-buffer show-environment
|
||||
\ show-hooks show-messages show-options show-window-options showb showenv
|
||||
\ showmsgs showw source source-file split-window splitw start start-server
|
||||
\ suspend-client suspendc swap-pane swap-window swapp swapw switch-client
|
||||
\ switchc unbind unbind-key unlink-window unlinkw wait wait-for
|
||||
|
||||
let &cpo = s:original_cpo
|
||||
unlet! s:original_cpo s:bg s:i
|
||||
|
||||
2077
runtime/syntax/typescript.vim
Normal file
2077
runtime/syntax/typescript.vim
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.0 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Mar 08, 2019
|
||||
" Version: 8.0-21
|
||||
" Last Change: Jun 16, 2019
|
||||
" Version: 8.0-22
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@@ -166,7 +166,7 @@ syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgro
|
||||
syn match vimNumber "\<0[xX]\x\+" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||
syn match vimNumber "\%(^\|\A\)\zs#\x\{6}" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||
|
||||
" All vimCommands are contained by vimIsCommands. {{{2
|
||||
" All vimCommands are contained by vimIsCommand. {{{2
|
||||
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimEcho,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
|
||||
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
|
||||
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
|
||||
@@ -201,7 +201,7 @@ syn keyword vimFTOption contained detect indent off on plugin
|
||||
|
||||
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
|
||||
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
|
||||
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption
|
||||
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimNotFunc,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
|
||||
syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
|
||||
else
|
||||
@@ -217,8 +217,8 @@ syn keyword vimAugroupKey contained aug[roup]
|
||||
" =========
|
||||
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
|
||||
syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+.!]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
|
||||
syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
|
||||
@@ -255,7 +255,7 @@ syn match vimSpecFileMod "\(:[phtre]\)\+" contained
|
||||
|
||||
" User-Specified Commands: {{{2
|
||||
" =======================
|
||||
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
|
||||
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
|
||||
syn keyword vimUserCommand contained com[mand]
|
||||
syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList
|
||||
syn match vimUserAttrbError contained "-\a\+\ze\s"
|
||||
@@ -334,13 +334,14 @@ syn match vimSubstFlags contained "[&cegiIpr]\+"
|
||||
syn match vimString "[^(,]'[^']\{-}\zs'"
|
||||
|
||||
" Marks, Registers, Addresses, Filters: {{{2
|
||||
syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark ",\zs'[<>]\ze" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst2
|
||||
syn match vimPlainMark contained "'[a-zA-Z0-9]"
|
||||
syn match vimRange "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]" contains=vimMark skipwhite nextgroup=vimFilter
|
||||
|
||||
syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
|
||||
syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
|
||||
@@ -351,8 +352,8 @@ syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
|
||||
syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
|
||||
syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
|
||||
|
||||
syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile
|
||||
syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen
|
||||
syn match vimFilter "^!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||
syn match vimFilter contained "!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||
|
||||
" Complex repeats (:h complex-repeat) {{{2
|
||||
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
||||
@@ -433,17 +434,18 @@ syn case match
|
||||
" ==========================
|
||||
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute
|
||||
syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation
|
||||
syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
|
||||
|
||||
" Errors And Warnings: {{{2
|
||||
" ====================
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
|
||||
syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
|
||||
" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
|
||||
syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
|
||||
syn match vimElseIfErr "\<else\s\+if\>"
|
||||
syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
|
||||
endif
|
||||
|
||||
syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" skipwhite nextgroup=vimOper,vimOperParen,vimVar,vimFunc,vimNotation
|
||||
|
||||
" Norm {{{2
|
||||
" ====
|
||||
syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
|
||||
@@ -653,7 +655,7 @@ if (g:vimsyn_embed =~# 'l' && has("lua")) && filereadable(s:luapath)
|
||||
syn cluster vimFuncBodyList add=vimLuaRegion
|
||||
exe "syn include @vimLuaScript ".s:luapath
|
||||
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript
|
||||
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript
|
||||
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript
|
||||
syn cluster vimFuncBodyList add=vimLuaRegion
|
||||
else
|
||||
syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
|
||||
968
runtime/tutor/tutor.ko
Normal file
968
runtime/tutor/tutor.ko
Normal file
@@ -0,0 +1,968 @@
|
||||
===============================================================================
|
||||
= 빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다 - Version 1.7 =
|
||||
===============================================================================
|
||||
|
||||
빔(Vim)은 이 길잡이에서 다 설명할 수 없을 만큼 많은 명령을 가진
|
||||
매우 강력한 편집기입니다. 이 길잡이는 빔을 쉽게 전천후 편집기로 사용할
|
||||
수 있도록 충분한 명령에 대해 설명하고 있습니다.
|
||||
|
||||
이 길잡이를 떼는 데에는 실습하는 데에 얼마나 시간을 쓰는 가에 따라서
|
||||
25-30 분 정도가 걸립니다.
|
||||
|
||||
이 연습에 포함된 명령은 내용을 고칩니다. 이 파일의 복사본을 만들어서
|
||||
연습하세요. (vimtutor 를 통해 시작했다면, 이미 복사본을 사용하는
|
||||
중입니다.)
|
||||
|
||||
중요한 것은, 이 길잡이가 직접 써보면서 배우도록 고려되어 있다는 것입니다.
|
||||
명령을 제대로 익히려면, 직접 실행해보는 것이 필요합니다. 내용을 읽는
|
||||
것만으로는, 명령을 잊어버리게 될 것입니다.
|
||||
|
||||
자 이제, Caps Lock(Shift-Lock) 키가 눌려있지 않은지 확인해보시고, j 키를
|
||||
충분히 눌러서 Lesson 1.1이 화면에 가득 차도록 움직여봅시다.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.1: 커서 움직이기
|
||||
|
||||
** 커서를 움직이려면, 표시된 대로 h,j,k,l 키를 누르십시오. **
|
||||
^
|
||||
k 힌트: h 키는 왼쪽에 있으며, 왼쪽으로 움직입니다.
|
||||
< h l > l 키는 오른쪽에 있으며, 오른쪽으로
|
||||
j 움직입니다.
|
||||
v j 키는 아래방향 화살표처럼 생겼습니다.
|
||||
|
||||
1. 익숙해질 때까지 커서를 스크린 상에서 움직여 보십시오.
|
||||
|
||||
2. 아래 방향키 (j)를 반복입력이 될 때까지 누르고 계십시오.
|
||||
이제 다음 lesson으로 가는 방법을 알게 되었습니다.
|
||||
|
||||
3. 아래 방향키를 이용하여, Lesson 1.2 로 가십시오.
|
||||
|
||||
참고: 원하지 않는 무언가가 입력이 되었다면, <ESC>를 눌러서, 명령 모드로
|
||||
돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.
|
||||
|
||||
참고: 커서키 또한 작동할 것입니다. 하지만 hjkl에 익숙해지면, 커서키보다
|
||||
훨씬 빠르게 이동할 수 있을 것입니다. 정말요!
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.2: 빔을 시작하고 끝내기
|
||||
|
||||
|
||||
!! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!
|
||||
|
||||
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
|
||||
|
||||
2. 다음과 같이 입력합니다: :q! <ENTER>
|
||||
이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
|
||||
|
||||
3. 쉘 프롬프트가 보인다면, 다시 길잡이로 돌아오기 위해 다음과 같이
|
||||
입력합니다.
|
||||
vimtutor <ENTER>
|
||||
또는 다음과 같을 수도 있습니다.
|
||||
vim tutor.ko <ENTER>
|
||||
|
||||
---> 'vim' 은 빔 편집기로 들어가는 것을 뜻하며, 'tutor.ko'는 편집하려는
|
||||
파일을 뜻합니다.
|
||||
|
||||
4. 위에서 이야기한 단계를 기억하였으며, 확신이 서면, 1에서 3까지를
|
||||
수행하여 편집기를 나갔다가 다시 들어와 보십시오.
|
||||
|
||||
주의: :q! <ENTER> 는 바뀐 내용을 저장하지 않습니다. 이 후 lesson에서
|
||||
어떻게 편집 내용을 저장하는지 배울 수 있습니다.
|
||||
|
||||
5. 그 후 커서를 아래로 움직여 Lesson 1.3 으로 가십시오.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.3: 텍스트 편집 - 지우기
|
||||
|
||||
|
||||
** 명령 모드에서 x 를 누르면 커서가 위치한 곳의 글자를 지울 수 있습니다. **
|
||||
|
||||
1. ----> 로 표시된 곳으로 커서를 옮겨보십시오.
|
||||
|
||||
2. 오타를 수정하기 위해, 커서를 지울 글자 위로 움직여 보십시오.
|
||||
|
||||
3. x 키를 눌러서 지워야할 글자를 지우십시오.
|
||||
|
||||
4. 2에서 4까지를 반복하여 문장이 올바르게 되도록 하여 보십시오.
|
||||
|
||||
---> The ccow jumpedd ovverr thhe mooon.
|
||||
|
||||
5. 문장이 정확해졌다면, Lesson 1.4로 가십시오.
|
||||
|
||||
주의: 이 길잡이를 보면서 외우려고 하지말고, 직접 사용해보면서 익히길
|
||||
바랍니다.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.4: 텍스트 편집 - 삽입 (INSERTION)
|
||||
|
||||
|
||||
** 명령 모드에서 i 를 누르면 텍스트를 입력할 수 있습니다. **
|
||||
|
||||
1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.
|
||||
|
||||
2. 첫번째 줄을 두번째 줄과 똑같이 만들것입니다. 텍스트가 들어가야할
|
||||
곳 다음부터 첫번째 글자 위에 커서를 옮겨 놓습니다.
|
||||
|
||||
3. i 키를 누른 후, 필요한 내용을 입력합니다.
|
||||
|
||||
4. 수정한 후에는 <ESC> 를 눌러서 명령 모드로 돌아갑니다.
|
||||
문장을 올바르게 만들기 위해 2에서 4의 과정을 반복합니다.
|
||||
|
||||
---> There is text misng this .
|
||||
---> There is some text missing from this line.
|
||||
|
||||
5. 텍스트를 삽입하는 데에 익숙해졌다면, Lesson 1.5로 가십시오.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.5: 택스트 편집 - 추가 (APPENDING)
|
||||
|
||||
|
||||
** A 를 입력해 텍스트를 추가할 수 있습니다. **
|
||||
|
||||
1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.
|
||||
커서가 문장 내 어디에 있던 상관없습니다.
|
||||
|
||||
2. A 키를 눌러 필요한 내용을 입력합니다.
|
||||
|
||||
3. 내용을 모두 입력한 후 <ESC>를 눌러 명령 모드로 돌아갑니다.
|
||||
|
||||
4. 커서를 두번째 ---> 로 표시된 줄로 움직입니다.
|
||||
문장을 올바르게 만들기 위해 2에서 3의 과정을 반복합니다.
|
||||
|
||||
---> There is some text missing from th
|
||||
There is some text missing from this line.
|
||||
---> There is also some text miss
|
||||
There is also some text missing here.
|
||||
|
||||
5. 텍스트를 추가하는 데 익숙해졌다면, Lesson 1.6으로 가십시오.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.6: 파일 편집
|
||||
|
||||
** :wq 를 이용하여 파일을 저장하고 빠져나갈 수 있습니다. **
|
||||
|
||||
!! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!
|
||||
|
||||
1. lesson 1.2에서 배웠던 것처럼 :q!로 편집기를 나갈 수 있습니다.
|
||||
만약, 다른 터미널에 접근 가능하다면, 아래의 단계를 다른 터미널에서 해봅니다.
|
||||
|
||||
2. 쉘 프롬프트에 다음과 같이 입력합니다: vim tutor <ENTER>
|
||||
'vim' 은 빔 에디터 시작을 위한 명령어, 'tutor'는 수정하고자 하는
|
||||
파일의 이름 입니다.
|
||||
|
||||
3. 앞에서 배웠던 것처럼 텍스트를 삽입하고 지워보세요.
|
||||
|
||||
4. 다음 명령어를 이용해 파일 수정 부분을 저장하고 빠져나갑니다: :wq <ENTER>
|
||||
|
||||
5. 만약 1에서 vimtutor를 빠져나갔다가 다시 들어왔다면, 아래로 움직여 요약으로 넘어가도록 합시다.
|
||||
|
||||
6. 위 모든 단계를 다 읽고 이해한 후에 직접 해보세요.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 1 요약
|
||||
|
||||
|
||||
1. 커서를 움직일 때에는 화살표 키나 hjkl 키를 이용합니다.
|
||||
h (왼쪽) j (아래) k (위) l (오른쪽)
|
||||
|
||||
2. 쉘 프롬프트에서 빔을 시작하려면 vim FILENAME <ENTER>
|
||||
|
||||
3. 수정한 내용을 무시한 채로 빔에서 빠져나가려면 <ESC> :q! <ENTER>
|
||||
저장한 후 빔에서 빠져나가려면 <ESC> :wq <ENTER>
|
||||
|
||||
4. 명령 모드에서 커서가 위치한 곳의 글자를 지우려면 x 를 입력합니다.
|
||||
|
||||
5. 명령 모드에서 커서가 위치한 곳에 텍스트를 삽입하려면
|
||||
i 를 누른 후 텍스트를 입력하고 <ESC> 커서 앞에 삽입합니다.
|
||||
A 를 누른 후 텍스트를 입력하고 <ESC> 문장 뒤에 추가 합니다.
|
||||
|
||||
참고: <ESC>는 명령 모드로 돌아가는 데 쓰며, 원치 않는 명령이나 완전히 입력되지
|
||||
않은 명령을 취소하는 데에도 씁니다.
|
||||
|
||||
그럼 Lesson 2를 시작합시다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.1: 삭제(DELETION) 명령
|
||||
|
||||
|
||||
** 한 단어를 끝까지 지우려면 dw 라고 치면 됩니다. **
|
||||
|
||||
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
|
||||
|
||||
2. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
|
||||
|
||||
3. 지워야할 단어의 처음으로 커서를 옮깁니다.
|
||||
|
||||
4. dw 라고 쳐서 그 단어를 지웁니다.
|
||||
|
||||
주의: 위에서 말한대로 하면 화면의 마지막 줄에 dw 라는 글자가 표시됩니다.
|
||||
잘못 쳤다면, <ESC> 를 눌러서 다시 시작하십시오.
|
||||
|
||||
---> There are a some words fun that don't belong paper in this sentence.
|
||||
|
||||
5. 3, 4번 과정을 다시 하여 문장을 정확하게 만든 뒤 Lesson 2.2로 가십시오.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.2: 다른 삭제 명령
|
||||
|
||||
** d$ 라고 치면 그 줄 끝까지 지워집니다. **
|
||||
|
||||
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
|
||||
|
||||
2. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
|
||||
|
||||
3. 올바른 줄의 끝으로 커서를 옮깁니다. (첫번째로 나오는 . 다음입니다.)
|
||||
|
||||
4. d$ 라고 쳐서 줄 끝까지 지웁니다.
|
||||
|
||||
---> Somebody typed the end of this line twice. end of this line twice.
|
||||
|
||||
|
||||
5. 어떤 일이 일어났는지 이해하기 위해 Lesson 2.3 으로 가십시오.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.3: 명령과 적용 대상에 대해
|
||||
|
||||
|
||||
삭제 명령 d의 형식은 다음과 같습니다.
|
||||
|
||||
d 대상
|
||||
|
||||
여기서:
|
||||
d - 지우는 명령
|
||||
대상 - 아래에 제시된 대상에 대해 명령을 수행
|
||||
|
||||
적용 가능한 대상의 종류:
|
||||
w - 커서에서 그 단어의 끝까지 (공백 포함.)
|
||||
e - 커서에서 그 단어의 끝까지 (공백을 포함하지 않음.)
|
||||
$ - 커서에서 그 줄의 끝까지
|
||||
|
||||
예를 들어, de 는 커서의 위치부터 해당 단어의 끝까지 지웁니다.
|
||||
|
||||
참고: 호기심이 있다면, 명령 모드에서 명령 없이 대상을 입력해보십시오.
|
||||
위에서 이야기한 대상의 목록에 따라 커서가 움직이게 됩니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.4: 대상에 반복 적용하기
|
||||
|
||||
|
||||
** 대상 이전에 숫자를 넣어주면 그 만큼 반복 됩니다. **
|
||||
|
||||
1. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
|
||||
|
||||
2. 2w 입력하여 커서를 단어 두 개 뒤로 옮깁니다.
|
||||
|
||||
3. 3e 입력하여 커서를 뒤로 세 번째 단어의 끝으로 옮깁니다.
|
||||
|
||||
4. 0 (zero) 를 입력하여 문장의 시작부분으로 움직입니다.
|
||||
|
||||
5. 2에서 3까지를 다른 숫자로 반복해 봅니다.
|
||||
|
||||
---> This is just a line with words you can move around in.
|
||||
|
||||
6. Lesson 2.5로 가십시오.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.5: 삭제에 반복 적용하기
|
||||
|
||||
|
||||
** 명령과 숫자를 함께 사용하면 그만큼 반복 수행 됩니다. **
|
||||
|
||||
위에서 삭제 명령과 대상의 조합과 같이, 대상 이전에 횟수를 넣어 더 많이 삭제 할 수 있습니다:
|
||||
d 횟수 대상
|
||||
|
||||
1. 아래 ---> 표시된 줄에서 커서를 첫번째 대문자 단어로 옮깁니다.
|
||||
|
||||
2. d2w를 입력하여 두 대문자 단어를 지웁니다.
|
||||
|
||||
3. 이어지는 대문자 단어들을 1에서 2까지의 단계를 이용해 횟수를 바꾸어 삭제해 봅니다.
|
||||
|
||||
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.6: 줄 전체 조작하기
|
||||
|
||||
|
||||
|
||||
** dd 라고 치면 줄 전체를 지웁니다. **
|
||||
|
||||
줄 전체를 지우는 일이 잦기 때문에, Vi를 디자인 한 사람들은, 간단히 d를
|
||||
두번 연달아 치면 한 줄을 지울 수 있도록 하였습니다.
|
||||
|
||||
1. 커서를 아래 나온 단락의 두번째 줄로 가져가십시오.
|
||||
2. dd 를 입력하여 그 줄을 지우십시오.
|
||||
3. 그런 다음 네번째 줄로 가십시오.
|
||||
4. 2dd 라고 입력하여 두줄을 지웁니다. ( 횟수-명령-대상을 기억하세요. )
|
||||
|
||||
---> 1) Roses are red,
|
||||
---> 2) Mud is fun,
|
||||
---> 3) Violets are blue,
|
||||
---> 4) I have a car,
|
||||
---> 5) Clocks tell time,
|
||||
---> 6) Sugar is sweet
|
||||
---> 7) And so are you.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.7: 취소(UNDO) 명령
|
||||
|
||||
|
||||
** u 를 누르면 마지막 명령이 취소되며, U 는 줄 전체를 수정합니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 줄로 이동한 후 첫번째 잘못된 부분 위로 옮깁니다.
|
||||
2. x 를 입력하여 첫번째 잘못된 글자를 지웁니다.
|
||||
3. 그럼 이제 u 를 입력하여 마지막으로 수행된 명령을 취소합니다.
|
||||
4. 이번에는 x 명령을 이용하여 그 줄의 모든 에러를 수정해봅시다.
|
||||
5. 대문자 U 를 눌러서 그 줄을 원래 상태로 돌려놓아 보십시오.
|
||||
6. 이번에는 u 를 몇 번 눌러서 U 와 이전 명령을 취소해봅시다.
|
||||
7. CTRL-R (CTRL 키를 누른 상태에서 R을 누르는 것) 을 몇 번 눌러서
|
||||
명령을 다시 실행해봅시다. (취소한 것을 취소함.)
|
||||
|
||||
---> Fiix the errors oon thhis line and reeplace them witth undo.
|
||||
|
||||
8. 이 명령은 매우 유용합니다. 그럼 Lesson 2 요약으로 넘어가도록 합시다.
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 2 요약
|
||||
|
||||
|
||||
1. 커서가 위치한 곳부터 단어의 끝까지 지우려면: dw
|
||||
2. 커서가 위치한 곳부터 줄 끝까지 지우려면: d$
|
||||
3. 줄 전체를 지우려면: dd
|
||||
|
||||
4. 횟수와 함께 대상을 반복 시키려면: 2w
|
||||
5. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:
|
||||
|
||||
[횟수] 명령 대상 또는 명령 [횟수] 대상
|
||||
|
||||
여기서:
|
||||
횟수 - 그 명령을 몇 번 반복할 것인가
|
||||
명령 - 어떤 명령을 내릴 것인가 ( 예를 들어, 삭제인 경우는 d )
|
||||
대상 - 명령이 동작할 대상, 예를 들어 w (단어), $ (줄의 끝) 등.
|
||||
|
||||
6. 커서를 문장 맨 앞으로 옮기려면: 0
|
||||
|
||||
7. 이전 행동을 취소하려면: u (소문자 u)
|
||||
한 줄에서 수정한 것을 모두 취소하려면: U (대문자 U)
|
||||
취소한 것을 다시 실행하려면: CTRL-R
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 3.1: 붙이기(PUT) 명령
|
||||
|
||||
|
||||
** p 를 입력하여 마지막으로 지운 내용을 커서 뒤에 붙입니다. **
|
||||
|
||||
1. 아래에 있는 문단의 첫 줄로 커서를 움직이십시오.
|
||||
|
||||
2. dd 를 입력하여 그 줄을 지워서 빔의 버퍼에 저장합니다.
|
||||
|
||||
3. 아까 지운 줄이 가야할 위치의 *윗줄로* 커서를 옮깁니다.
|
||||
|
||||
4. 명령 모드에서, p 를 입력하여 그 줄을 제대로 된 자리로 옮깁니다.
|
||||
|
||||
5. 2에서 4를 반복하여 모든 줄의 순서를 바로 잡으십시오.
|
||||
|
||||
d) Can you learn too?
|
||||
b) Violets are blue,
|
||||
c) Intelligence is learned,
|
||||
a) Roses are red,
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 3.2: 치환(REPLACE) 명령
|
||||
|
||||
|
||||
** 커서 아래의 글자 하나를 바꾸려면, r 을 누른 후 바꿀 글자를 입력합니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 첫 줄로 옮깁니다.
|
||||
|
||||
2. 커서를 잘못된 첫 부분으로 옮깁니다.
|
||||
|
||||
3. r 을 누른 후, 잘못된 부분을 고쳐 쓸 글자를 입력합니다.
|
||||
|
||||
4. 2에서 3의 과정을 반복하여, 첫 줄의 오류를 수정하십시오.
|
||||
|
||||
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
|
||||
---> When this line was typed in, someone pressed some wrong keys!
|
||||
|
||||
5. Lesson 3.2 로 이동합시다.
|
||||
|
||||
주의: 외우지 말고, 직접 해보면서 익혀야 한다는 것을 잊지 마십시오.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 3.3: 변환(CHANGE) 명령
|
||||
|
||||
|
||||
** 한 단어의 전체를 바꾸려면, ce 를 치십시오. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 첫줄로 옮깁니다.
|
||||
|
||||
2. 커서를 lubw 에서 u 위에 올려놓습니다.
|
||||
|
||||
3. ce 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우, 'ine' 를 칩니다.)
|
||||
|
||||
4. <ESC> 를 누른 후 다음 에러로 갑니다 (수정되어야할 첫 글자로 갑니다.)
|
||||
|
||||
5. 3에서 4의 과정을 반복하여 첫번째 문장을 두번째 문장과 같도록 만듭니다.
|
||||
|
||||
---> This lubw has a few wptfd that mrrf changing usf the change command.
|
||||
---> This line has a few words that need changing using the change command.
|
||||
|
||||
ce 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
|
||||
유의합시다.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 3.4: c 를 이용한 다른 변환 명령
|
||||
|
||||
|
||||
** 변환 명령은 삭제할 때 이용한 대상에 대해 적용할 수 있습니다. **
|
||||
|
||||
1. 변환 명령은 삭제와 동일한 방식으로 동작합니다. 형식은 다음과 같습니다:
|
||||
|
||||
[횟수] c 대상 또는 c [횟수] 대상
|
||||
|
||||
2. 적용 가능한 대상 역시 같습니다. w (단어), $ (줄의 끝) 등이 있습니다.
|
||||
|
||||
3. ---> 로 표시된 첫줄로 이동합니다.
|
||||
|
||||
4. 첫 에러 위로 커서를 옮깁니다.
|
||||
|
||||
5. c$ 를 입력하여, 그 줄의 나머지가 두번째 줄처럼 되도록 수정한 후 <ESC> 를
|
||||
누르십시오.
|
||||
|
||||
---> The end of this line needs some help to make it like the second.
|
||||
---> The end of this line needs to be corrected using the c$ command.
|
||||
|
||||
참고: 입력하는 동안은 백스페이스를 이용할 수 있습니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 3 요약
|
||||
|
||||
|
||||
1. 이미 지운 내용을 되돌리려면, p 를 누르십시오. 이 명령은 커서 *다음에*
|
||||
지워진 내용을 붙입니다(PUT). (한 줄을 지운 경우에는 커서 다음 줄에
|
||||
지워진 내용이 붙습니다.)
|
||||
|
||||
2. 커서 아래의 글자를 치환하려면(REPLACE), r 을 누른 후 원래 글자 대신
|
||||
바꾸어 넣을 글자를 입력합니다.
|
||||
|
||||
3. 변환 명령(CHANGE)은 커서에서 부터 지정한 대상의 끝까지 바꿀 수 있는
|
||||
명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면 ce 를
|
||||
입력하면 되며, c$ 는 줄 끝까지 바꾸는 데 쓰입니다.
|
||||
|
||||
4. 변환 명령의 형식은 다음과 같습니다:
|
||||
|
||||
[횟수] c 대상 또는 c [횟수] 대상
|
||||
|
||||
계속해서 다음 Lesson 을 진행합시다.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 4.1: 위치와 파일의 상태
|
||||
|
||||
|
||||
** CTRL-G 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
|
||||
G 를 누르면 파일 내의 마지막 줄로 이동합니다. **
|
||||
|
||||
주의: 아래의 단계를 따라하기 전에, 이 Lesson 전체를 먼저 읽으십시오.
|
||||
|
||||
1. CTRL 키를 누른 상태에서 g 를 누릅니다. 파일 이름과 현재 위치한 줄이
|
||||
표시된 상태줄이 화면 아래에 표시될 것입니다. 3번째 단계를 위해 그
|
||||
줄 번호를 기억하고 계십시오.
|
||||
|
||||
참고: 커서가 화면 오른쪽 하단으로 옮겨진 것을 보인다면,
|
||||
이는 'ruler' 옵션을 세팅된 경우 입니다. (:help 'ruler' 를 참고 하세요.)
|
||||
|
||||
2. G 를 누르면 파일의 마지막으로 이동합니다.
|
||||
gg 를 누르면 파일의 시작 부분으로 이동합니다.
|
||||
|
||||
3. 아까 기억했던 줄 번호를 입력한 후 G 를 누르십시오. 이렇게 하면
|
||||
처음에 CTRL-G 를 눌렀던 장소로 되돌아가게 될 것입니다.
|
||||
(번호를 입력할 때, 이것은 화면에 표시되지 않습니다.)
|
||||
|
||||
4. 자신이 생겼다면, 1에서 3까지를 실행해보십시오.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 4.2: 찾기 명령
|
||||
|
||||
|
||||
** / 를 누른 후 검색할 문구를 입력하십시오. **
|
||||
|
||||
1. 명령 모드에서 / 를 입력하십시오. : 명령에서와 마찬가지로, 화면 아래에
|
||||
/ 와 커서가 표시될 것입니다.
|
||||
|
||||
2. 'errroor' 라고 친 후 <ENTER> 를 치십시오. 이 단어를 찾으려고 합니다.
|
||||
|
||||
3. 같은 문구를 다시 찾으려면, 간단히 n 을 입력하십시오.
|
||||
같은 문구를 반대 방향으로 찾으려면, Shift-N 을 입력하십시오.
|
||||
|
||||
4. 문구를 역방향으로 찾으려면, / 대신 ? 를 이용하면 됩니다.
|
||||
|
||||
5. 원래 있던 곳으로 돌아가기 위해서는 CTRL-O 를 이용하면 됩니다. 반복하면 더 이전으로도
|
||||
갈 수 있습니다. CTRL-I 로 다시 뒤로 갈 수도 있습니다.
|
||||
|
||||
---> "errroor" is not the way to spell error; errroor is an error.
|
||||
|
||||
참고: 찾는 중에 파일의 끝에 다다르게 되면, 파일의 처음부터 다시 찾게 됩니다.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 4.3: 괄호의 짝 찾기
|
||||
|
||||
|
||||
** % 를 눌러서 ), ], } 의 짝을 찾습니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 줄의 (, [, { 중 하나에 가져다 놓습니다.
|
||||
|
||||
2. % 를 입력해 봅시다.
|
||||
|
||||
3. 커서가 짝이 맞는 괄호로 이동할 것입니다.
|
||||
|
||||
4. % 를 입력하여, 이전 괄호로 되돌아 옵시다.
|
||||
|
||||
5. 커서를 다른 (,),[,],{ 혹은 } 로 움직여 % 를 입력해 봅니다.
|
||||
|
||||
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
|
||||
|
||||
참고: 짝이 맞지 않는 괄호가 있는 프로그램을 디버깅할 때에 매우 유용합니다!
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 4.4: 치환(SUBTITUTE) 명령
|
||||
|
||||
|
||||
** :s/old/new/g 하면 'old' 를 'new' 로 치환(SUBTITUTE)합니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 줄에 가져다 놓습니다.
|
||||
|
||||
2. :s/thee/the 를 입력한 후 <ENTER> 를 칩니다. 이 명령은 그 줄에서
|
||||
처음으로 발견된 것만 바꾼다는 것에 주의하십시오.
|
||||
|
||||
3. 이번에는 :s/thee/the/g 를 입력합니다. 이는 그 줄 전체(globally)를
|
||||
치환한다는 것을 의미합니다.
|
||||
|
||||
---> thee best time to see thee flowers is in thee spring.
|
||||
|
||||
4. 두 줄 사이의 모든 문자열에 대해 치환하려면 다음과 같이 합니다,
|
||||
:#,#s/old/new/g #,# 는 두 줄의 줄번호를 뜻합니다.
|
||||
:%s/old/new/g 파일 전체에서 발견된 모든 것을 치환하는 경우입니다.
|
||||
:%s/old/new/gc 파일 전체에서 발견된 모든 것을 찾고, 치환할지 안
|
||||
할지 프롬프트로 명령합니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 4 요약
|
||||
|
||||
1. CTRL-G 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
|
||||
G 파일의 끝으로 이동합니다.
|
||||
숫자 G 해당 줄로 이동합니다.
|
||||
gg 첫 번째 라인으로 이동합니다.
|
||||
|
||||
2. / 를 입력한 후 문구를 입력하면 그 문구를 아랫방향으로 찾습니다.
|
||||
? 를 입력한 후 문구를 입력하면 윗방향으로 찾습니다.
|
||||
검색 후, n 을 입력하면 같은 방향으로 다음 문구를 찾으며,
|
||||
Shift-N 을 입력하면 반대 방향으로 찾습니다.
|
||||
CTRL-O 는 과거의 위치로, CTRL-I는 새로운 위치로 옮겨줍니다.
|
||||
|
||||
3. 커서가 (,),[,],{,} 위에 있을 때에 % 를 입력하면 상응하는 짝을
|
||||
찾아갑니다.
|
||||
|
||||
4. 어떤 줄에 처음 등장하는 old를 new로 바꾸려면 :s/old/new
|
||||
한 줄에 등장하는 모든 old를 new로 바꾸려면 :s/old/new/g
|
||||
두 줄 #,# 사이에서 치환을 하려면 :#,#s/old/new/g
|
||||
파일 내의 모든 문구를 치환하려면 :%s/old/new/g
|
||||
바꿀 때마다 확인을 거치려면 'c'를 붙여서 :%s/old/new/gc
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 5.1: 외부 명령 실행하는 방법
|
||||
|
||||
|
||||
** :! 을 입력한 후 실행하려는 명령을 입력하십시오. **
|
||||
|
||||
1. 친숙한 명령인 : 를 입력하면 커서가 화면 아래로 이동합니다. 명령을
|
||||
입력할 수 있게 됩니다.
|
||||
|
||||
2. 이제 ! (느낌표) 를 입력하십시오. 이렇게 하면 외부 쉘 명령을 실행할
|
||||
수 있습니다.
|
||||
|
||||
3. 시험삼아 ! 다음에 ls 를 입력한 후 <ENTER> 를 쳐보십시오. 쉘 프롬프트
|
||||
에서처럼 디렉토리의 목록이 출력될 것입니다. ls 가 동작하지 않는다면
|
||||
:!dir 을 시도해 보십시오.
|
||||
|
||||
참고: 어떤 외부 명령도 이 방법으로 실행할 수 있습니다.
|
||||
|
||||
참고: 모든 : 명령은 <ENTER> 를 쳐야 마무리 됩니다.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 5.2: 보다 자세한 파일 저장
|
||||
|
||||
|
||||
** 수정된 내용을 파일로 저장하려면, :w FILENAME 하십시오. **
|
||||
|
||||
1. :!dir 또는 :!ls 를 입력하여 디렉토리의 리스트를 얻어옵니다.
|
||||
위의 명령 후 <ENTER>를 쳐야한다는 것은 이미 알고 있을 것입니다.
|
||||
|
||||
2. TEST 처럼 존재하지 않는 파일 이름을 하나 고르십시오.
|
||||
|
||||
3. 이제 :w TEST 라고 입력하십시오. (TEST는 당신이 선택한 파일 이름입니다.)
|
||||
|
||||
4. 이렇게 하면 빔 길잡이 파일 전체를 TEST라는 이름으로 저장합니다.
|
||||
확인하려면, :!dir 을 다시 입력하여, 디렉토리를 살펴보십시오.
|
||||
|
||||
참고: 빔을 종료한 후, 빔을 다시 실행하여 TEST라는 파일을 열면, 그 파일은
|
||||
저장했을 때와 완벽히 같은 복사본일 것입니다.
|
||||
|
||||
5. 이제 그 파일을 지웁시다.
|
||||
(MS-DOS에서): !del TEST
|
||||
(Unix에서): !rm TEST
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 5.3: 선택적으로 저장하는 명령
|
||||
|
||||
** 파일의 일부를 저장하려면, v 대상 :w FILENAME 을 입력합니다. **
|
||||
|
||||
1. 이 줄로 커서를 가져옵니다.
|
||||
|
||||
2. v 를 누르고 커서를 아래 다섯번째로 옮깁니다. 이 때, 문자열들이 하이라이트 됨을 주목합니다.
|
||||
|
||||
3. : 를 누릅니다. 화면 하단에 :'<,'> 가 나타납니다.
|
||||
|
||||
4. w TEST 를 입력합니다. 여기서 TEST는 파일 이름이며 아직 생성되어 있지 않습니다. <ENTER>를
|
||||
누르기 전, :'<,'>w TEST 로 입력되었는지 확인 합니다.
|
||||
|
||||
5. 빔은 선택된 문장들을 TEST 파일에 입력합니다. :!dir 혹은 :!ls를 이용하여 파일이 만들어졌는지
|
||||
확인하십시오. 아직 삭제하지 마십시오! 다음 레슨에서 이 파일을 사용합니다.
|
||||
|
||||
참고 : v 를 눌러 비주얼(Visual) 선택을 시작합니다. 커서를 주변으로 움직여 선택 부분을 조절할 수
|
||||
있습니다. 그리고 명령어를 이용해 해당 문자열을 조작할 수 있습니다. 예를 들어, d 를 이용해
|
||||
삭제할 수도 있습니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 5.4: 파일 읽어들이기, 합치기
|
||||
|
||||
|
||||
** 어떤 파일의 내용을 삽입하려면, :r FILENAME 하십시오 **
|
||||
|
||||
1. 커서를 이 라인 바로 위로 옮기십시오.
|
||||
|
||||
주의: 3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
|
||||
이 lesson으로 다시 내려오십시오.
|
||||
|
||||
2. 이제 TEST 파일을 읽어들입시다. :r TEST 명령을 사용하십시오. TEST 는
|
||||
파일의 이름입니다. 읽어들인 파일은 커서가 위치한 문장 아래부터 놓이게 됩니다.
|
||||
|
||||
3. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
|
||||
읽어들인 버전, 이렇게 Lesson 5.3 이 두번 반복되었음을 확인하십시오.
|
||||
|
||||
참고: 외부 명령어의 결과값도 읽을 수 있습니다. 예를 들어, :r !ls 는 ls 명령어에 대한 결과값을
|
||||
읽어 커서 바로 아래에 합칩니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 5 요약
|
||||
|
||||
|
||||
1. :!command 를 이용하여 외부 명령을 실행합니다.
|
||||
|
||||
유용한 예:
|
||||
(MS-DOS) (Unix)
|
||||
:!dir :!ls - 디렉토리의 목록을 보여준다.
|
||||
:!del FILENAME :!rm FILENAME - FILENAME이라는 파일을 지운다.
|
||||
|
||||
2. :w FILENAME 하면 현재 빔에서 사용하는 파일을 FILENAME이라는 이름으로
|
||||
디스크에 저장합니다.
|
||||
|
||||
3. v 명령 :w FILENAME 은 비주얼 모드에서 선택된 문장들을 파일 FILENAME에 저장합니다.
|
||||
|
||||
4. :r FILENAME 은 디스크에서 FILENAME이라는 파일을 불러들여서 커서 위치
|
||||
뒤에 현재 파일을 집어넣습니다.
|
||||
|
||||
5. :r !dir 는 dir 명령어의 결과값을 현재 커서의 위치 아래에 붙힙니다.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.1: 새 줄 열기(OPEN) 명령
|
||||
|
||||
|
||||
** o 를 누르면 커서 아래에 줄을 만들고 편집 모드가 됩니다. **
|
||||
|
||||
1. 아래에 ---> 로 표시된 줄로 커서를 옮기십시오.
|
||||
|
||||
2. o (소문자)를 쳐서 커서 *아래에* 줄을 하나 여십시오. 편집 모드가 됩니다.
|
||||
|
||||
3. ---> 로 표시된 줄을 복사한 후 <ESC> 를 눌러서 편집 모드에서 나오십시오.
|
||||
|
||||
---> After typing o the cursor is placed on the open line in Insert mode.
|
||||
|
||||
4. 커서 *위에* 줄을 하나 만드려면, 소문자 o 대신 대문자 O 를 치면 됩니다.
|
||||
아래 있는 줄에 대해 이 명령을 내려보십시오.
|
||||
|
||||
---> Open up a line above this by typing O while the cursor is on this line.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.2: 추가(APPEND) 명령
|
||||
|
||||
|
||||
** a 를 누르면 커서 *다음에* 글을 입력할 수 있습니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다.
|
||||
|
||||
2. e 를 눌러 li 의 끝으로 커서를 옮깁니다.
|
||||
|
||||
3. 소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
|
||||
|
||||
4. 아랫줄과 같이 문장을 완성해 봅니다. <ESC>를 이용해 편집(Insert) 모드를 나갑니다.
|
||||
|
||||
5. e 를 이용해 다음 고칠 단어로 움직여 3에서 4까지를 반복합니다.
|
||||
|
||||
참고: 그렇게 하시면 고작 줄의 끝에 추가를 하기 위해 i를 누르고, 커서 아래에
|
||||
있던 글자를 반복하고, 글을 끼워넣고, <ESC>를 눌러 명령 모드로 돌아와서,
|
||||
커서를 오른쪽으로 옮기고 마지막으로 x까지 눌러야 하는 번거로움을 피하실
|
||||
수 있습니다.
|
||||
|
||||
3. 이제 첫 줄을 완성하십시오. 추가 명령은 텍스트가 입력되는 위치 외에는
|
||||
편집 모드와 완전히 같다는 것을 유념하십시오.
|
||||
|
||||
---> This li will allow you to pract appendi text to a line.
|
||||
---> This line will allow you to practice appending text to a line.
|
||||
|
||||
참고: a, i 그리고 A 는 텍스트가 입력되는 위치 외에는 편집 모드와 완전히 같다는 것을 유념하십시오.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.3: 치환(REPLACE) 의 다른 버전
|
||||
|
||||
|
||||
** 대문자 R 을 입력하면 하나 이상의 글자를 바꿀 수 있습니다. **
|
||||
|
||||
1. ---> 로 표시된 첫번째 줄로 움직여 커서를 xxx의 앞으로 옮깁니다.
|
||||
|
||||
2. R 을 입력한 후, 두번째 줄과 같은 숫자를 입력해 xxx를 치환합니다.
|
||||
|
||||
3. <ESC> 를 눌러 치환 모드를 빠져나갑니다. 나머지 문장은 그대로 남아 있는지 확인합니다.
|
||||
|
||||
4. 위 단계들 반복하여 남은 모든 xxx를 치환합니다.
|
||||
|
||||
---> Adding 123 to xxx gives you xxx.
|
||||
---> Adding 123 to 456 gives you 579.
|
||||
|
||||
주의: 치환 모드는 편집 모드와 비슷합니다. 하지만 입력된 문자들이 원래 문자들을 삭제하는 점이 다릅니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.4: 문자 복사 붙여넣기(COPY AND PASTE)
|
||||
|
||||
|
||||
** y 를 이용해 복사하고 p 로 붙여 넣습니다. **
|
||||
|
||||
1. ---> 로 표시된 줄로 움직여 커서를 "a)" 뒤로 옮깁니다.
|
||||
|
||||
2. v 를 눌러 비주얼 모드를 시작하고 "first" 바로 앞까지 커서를 움직입니다.
|
||||
|
||||
3. y 를 눌러 하이라이트 된 부분을 복사(yank (copy))합니다.
|
||||
|
||||
4. 커서를 다음 문장의 끝으로 옮깁니다: j$
|
||||
|
||||
5. p 를 눌러 문자열을 붙여 넣습니다.(paste) 그리고 second <ESC> 를 입력합니다.
|
||||
|
||||
6. 비주얼 모드를 이용해 " item."을 선택, y 로 복사, j$ 으로 다음 문장 끝으로 움직여
|
||||
p 로 단어를 붙여 넣습니다.
|
||||
|
||||
---> a) this is the first item.
|
||||
b)
|
||||
|
||||
참고: y 역시 명령어로 사용 가능합니다. 예를 들어, yw 는 한 단어를 복사합니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.5: 옵션 설정(SET)
|
||||
|
||||
** 찾기나 바꾸기에서 대소문자 구분을 없애기 위해 옵션을 설정합니다 **
|
||||
|
||||
1. 다음을 입력하여 'ignore' 를 찾으십시오: /ignore <ENTER>
|
||||
n 키를 이용하여 여러번 반복하십시오.
|
||||
|
||||
2. 'ic' (대소문자 구별 안함, Ignore case) 옵션을 설정하십시오:
|
||||
:set ic
|
||||
|
||||
3. n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
|
||||
이제 ignore과 IGNORE 모두 검색되는 점을 주목합니다.
|
||||
|
||||
4. 'hlsearch' 와 'incsearch' 옵션을 설정합시다.
|
||||
:set hls is
|
||||
|
||||
5. 찾기 명령을 다시 입력하여, 어떤 일이 일어나는지 확인해 보십시오:
|
||||
/ignore
|
||||
|
||||
6. 대소문자 구별을 끄기 위해서는, 다음과 같이 입력합니다:
|
||||
:set noic
|
||||
|
||||
참고: 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면: :nohlsearch
|
||||
참고: 만약, 검색 한번에 대해서만 대소문자 구별 세팅을 끄고 싶다면 \c 를 이용할 수 있습니다.
|
||||
: /ignore\c <ENTER>
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 6 요약
|
||||
|
||||
|
||||
1. o 를 입력하면 커서 *아래에* 한 줄이 열리며, 커서는 편집 모드로
|
||||
열린 줄 위에 위치하게 됩니다.
|
||||
대문자 O 를 입력하면 커서가 있는 줄의 *위로* 새 줄을 열게 됩니다.
|
||||
|
||||
2. a 를 입력하면 커서 *다음에* 글을 입력할 수 있습니다.
|
||||
대문자 A 를 입력하면 자동으로 그 줄의 끝에 글자를 추가하게 됩니다.
|
||||
|
||||
3. e 를 입력하면 단어의 끝으로 움직입니다.
|
||||
|
||||
4. y 를 입력하면 복사(yank (copy))를, p 를 입력하면 붙여 넣기가 됩니다.
|
||||
|
||||
5. 대문자 R 을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.
|
||||
|
||||
6. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.:
|
||||
'ic' 'ignorecase' 검색시 대소문자 구별을 하지 않습니다.
|
||||
'is' 'incsearch' 검색어에서 부분 검색 결과를 보여줍니다.
|
||||
'hls' 'hlsearch' 검색 결과값을 하이라이트해줍니다.
|
||||
옵션은 전체 이름 혹은 줄인 이름 모두 사용 가능합니다.
|
||||
|
||||
7. 앞에 "no"를 붙여 옵션을 끌 수 있습니다: :set noic
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 7.1: 온라인 도움말 명령
|
||||
|
||||
|
||||
** 온라인 도움말 시스템 사용하기 **
|
||||
|
||||
빔은 폭 넓은 온라인 도움말 시스템을 제공합니다. 도움말을 보려면,
|
||||
다음 세가지 중 하나를 시도해보십시오:
|
||||
- <HELP> 키를 누른다. (키가 있는 경우)
|
||||
- <F1> 키를 누른다. (키가 있는 경우)
|
||||
- :help <ENTER> 라고 입력한다.
|
||||
|
||||
도움말 창을 닫으려면 :q <ENTER> 라고 입력하십시오.
|
||||
CTRL-W CTRL-W 다른쪽 윈도우로 넘어갑니다.
|
||||
:q <ENTER> 도움말 윈도우를 닫습니다.
|
||||
|
||||
":help" 라는 명령에 인자를 주면 어떤 주제에 관한 도움말을 찾을 수 있습니다.
|
||||
다음 명령을 내려 보십시오. ( <ENTER> 키를 누르는 것을 잊지 마십시오.)
|
||||
|
||||
:help w
|
||||
:help c_CTRL-D
|
||||
:help insert-index
|
||||
:help user-manual
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 7.2: 시작 스크립트 만들기
|
||||
|
||||
** 빔의 기능 켜기 **
|
||||
|
||||
빔은 Vi 보다 훨씬 많은 기능을 가지고 있지만, 대부분은 기본적으로 작동하지
|
||||
않습니다. 더 많은 기능을 써보려면, "vimrc" 라는 파일을 만들어야 합니다.
|
||||
|
||||
1. "vimrc" 파일을 수정합시다. 이 파일은 사용하는 시스템에 따라 다릅니다:
|
||||
:e ~/.vimrc Unix의 경우
|
||||
:e $VIM/_vimrc MS-Windows의 경우
|
||||
|
||||
2. 이제 "vimrc"의 예제를 읽어들입니다:
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. 다음과 같이 하여 파일을 저장합니다:
|
||||
:w
|
||||
|
||||
다음 번에 빔을 시작하면, 구문 강조(syntax highlighting)이 사용될 것입니다.
|
||||
모든 원하는 설정을 이 "vimrc" 파일에 넣어둘 수 있습니다.
|
||||
더 자세한 내용은 :help vimrc-intro를 참고 하세요.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 7.3: 명령어 완성하기
|
||||
|
||||
|
||||
** CTRL-D 와 <TAB> 이용하여 명령어를 완성할 수 있습니다.**
|
||||
|
||||
1. 먼저 vim이 호환 모드가 아닌지를 확인합니다: :set nocp
|
||||
|
||||
2. 디렉토리에 파일이 존재하는지 먼저 확인 합니다.: :!ls 혹은 :!dir
|
||||
|
||||
3. 다음과 같이 명령어를 입력합니다: :e
|
||||
|
||||
4. CTRL-D 를 누르면 "e"로 시작하는 모든 명령어들을 볼 수 있습니다.
|
||||
|
||||
5. <TAB> 을 눌러 ":edit" 명령어를 완성해 봅니다.
|
||||
|
||||
6. 이제 빈칸 하나를 추가한 뒤, 존재 파일 이름을 앞 부분을 입력합니다: :edit FIL
|
||||
|
||||
7. <TAB> 을 눌러 파일 이름을 완성 시킵니다.
|
||||
|
||||
참고: 완성하기는 많은 명령어에서 사용할 수 있습니다. CTRL-D와 <TAB> 만 누르세요!
|
||||
특히, :help 에서 유용할 것입니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 7 요약
|
||||
|
||||
|
||||
1. 도움말을 열기 위해 :help 혹은 <F1> 혹은 <Help> 를 누릅니다.
|
||||
|
||||
2. cmd 에 대한 도움말을 보기 위해서는 :help cmd 를 입력합니다.
|
||||
|
||||
3. CTRL-W CTRL-W 를 이용해 다른 윈도우로 넘어갑니다.
|
||||
|
||||
4. :q 로 도움말 윈도우를 빠져나옵니다.
|
||||
|
||||
5. vimrc 시작 스크립트를 이용해 선호하는 세팅을 유지할 수 있습니다.
|
||||
|
||||
6. : 명령어를 입력할때, CTRL-D 를 눌러 가능한 명령어들을 볼수 있습니다.
|
||||
<TAB> 을 눌러 완성 가능합니다.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
이것으로 빔 길잡이를 마칩니다. 이 길잡이는 빔 편집기에 대한 간략한 개요를
|
||||
보여주기 위한 의도로 제작되었으며, 이 편집기를 정말 간단히 사용하기에
|
||||
충분할 뿐입니다. 빔에는 이 길잡이와는 비교할 수 없을 만큼 훨씬 많은 명령이
|
||||
있습니다. 다음 사용자 매뉴얼을 읽으십시오: ":help user-manual"
|
||||
|
||||
보다 자세히 읽고 공부하려면, 다음 책을 추천해 드립니다:
|
||||
Vim - Vi Improved - by Steve Oualline
|
||||
출판사: New Riders
|
||||
이 책은 완전히 빔에 대해서만 다루고 있습니다. 특히 초보자들에게 유용합니다.
|
||||
많은 예제와 그림이 있습니다.
|
||||
다음을 참고하십시오: http://iccf-holland.org/click5.html
|
||||
|
||||
다음 책은 좀 오래된 책으로 빔보다는 Vi에 대해 다루고 있지만, 역시 추천할 만
|
||||
합니다:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
출판사: O'Reilly & Associates Inc.
|
||||
Vi로 하고 싶은 거의 모든 것에 대해 알 수 있는 좋은 책입니다.
|
||||
여섯번째 개정판은 빔에 관한 내용을 포함하고 있습니다.
|
||||
|
||||
이 길잡이는 Colorado School of Mines의 Michael C. Pierce 와
|
||||
Robert K. Ware 가 Colorado State University의 Charles Smith 의 아이디어에
|
||||
착안하여 썼습니다.
|
||||
. E-mail: bware@mines.colorado.edu.
|
||||
|
||||
Modified for Vim by Bram Moolenaar.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -1,5 +1,5 @@
|
||||
===============================================================================
|
||||
= 빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다 - Version 1.5 =
|
||||
= 빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다 - Version 1.7 =
|
||||
===============================================================================
|
||||
|
||||
빔(Vim)은 이 길잡이에서 다 설명할 수 없을 만큼 많은 명령을 가진
|
||||
@@ -32,15 +32,15 @@
|
||||
1. 익숙해질 때까지 커서를 스크린 상에서 움직여 보십시오.
|
||||
|
||||
2. 아래 방향키 (j)를 반복입력이 될 때까지 누르고 계십시오.
|
||||
---> 이제 다음 lesson으로 가는 방법을 알게 되었습니다.
|
||||
이제 다음 lesson으로 가는 방법을 알게 되었습니다.
|
||||
|
||||
3. 아래 방향키를 이용하여, Lesson 1.2 로 가십시오.
|
||||
|
||||
참고: 원하지 않는 무언가가 입력이 되었다면, <ESC>를 눌러서, 명령 모드로
|
||||
돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.
|
||||
돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.
|
||||
|
||||
참고: 커서키 또한 작동할 것입니다. 하지만 hjkl에 익숙해지면, 커서키보다
|
||||
훨씬 빠르게 이동할 수 있을 것입니다.
|
||||
훨씬 빠르게 이동할 수 있을 것입니다. 정말요!
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.2: 빔을 시작하고 끝내기
|
||||
@@ -51,10 +51,7 @@
|
||||
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
|
||||
|
||||
2. 다음과 같이 입력합니다: :q! <ENTER>
|
||||
|
||||
---> 이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
|
||||
저장한 후 빠져나가려면 다음과 같이 입력합니다:
|
||||
:wq <ENTER>
|
||||
이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
|
||||
|
||||
3. 쉘 프롬프트가 보인다면, 다시 길잡이로 돌아오기 위해 다음과 같이
|
||||
입력합니다.
|
||||
@@ -66,8 +63,12 @@
|
||||
파일을 뜻합니다.
|
||||
|
||||
4. 위에서 이야기한 단계를 기억하였으며, 확신이 서면, 1에서 3까지를
|
||||
수행하여 편집기를 나갔다가 다시 들어와보십시오. 그 후 커서를 아래로
|
||||
움직여 Lesson 1.3 으로 가십시오.
|
||||
수행하여 편집기를 나갔다가 다시 들어와 보십시오.
|
||||
|
||||
주의: :q! <ENTER> 는 바뀐 내용을 저장하지 않습니다. 이 후 lesson에서
|
||||
어떻게 편집 내용을 저장하는지 배울 수 있습니다.
|
||||
|
||||
5. 그 후 커서를 아래로 움직여 Lesson 1.3 으로 가십시오.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.3: 텍스트 편집 - 지우기
|
||||
|
||||
@@ -110,10 +111,55 @@
|
||||
---> There is text misng this .
|
||||
---> There is some text missing from this line.
|
||||
|
||||
5. 텍스트를 삽입하는 데에 익숙해졌다면, 요약을 봐주십시오.
|
||||
5. 텍스트를 삽입하는 데에 익숙해졌다면, Lesson 1.5로 가십시오.
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.5: 택스트 편집 - 추가 (APPENDING)
|
||||
|
||||
|
||||
** A 를 입력해 텍스트를 추가할 수 있습니다. **
|
||||
|
||||
1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.
|
||||
커서가 문장 내 어디에 있던 상관없습니다.
|
||||
|
||||
2. A 키를 눌러 필요한 내용을 입력합니다.
|
||||
|
||||
3. 내용을 모두 입력한 후 <ESC>를 눌러 명령 모드로 돌아갑니다.
|
||||
|
||||
4. 커서를 두번째 ---> 로 표시된 줄로 움직입니다.
|
||||
문장을 올바르게 만들기 위해 2에서 3의 과정을 반복합니다.
|
||||
|
||||
---> There is some text missing from th
|
||||
There is some text missing from this line.
|
||||
---> There is also some text miss
|
||||
There is also some text missing here.
|
||||
|
||||
5. 텍스트를 추가하는 데 익숙해졌다면, Lesson 1.6으로 가십시오.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 1.6: 파일 편집
|
||||
|
||||
** :wq 를 이용하여 파일을 저장하고 빠져나갈 수 있습니다. **
|
||||
|
||||
!! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!
|
||||
|
||||
1. lesson 1.2에서 배웠던 것처럼 :q!로 편집기를 나갈 수 있습니다.
|
||||
만약, 다른 터미널에 접근 가능하다면, 아래의 단계를 다른 터미널에서 해봅니다.
|
||||
|
||||
2. 쉘 프롬프트에 다음과 같이 입력합니다: vim tutor <ENTER>
|
||||
'vim' 은 빔 에디터 시작을 위한 명령어, 'tutor'는 수정하고자 하는
|
||||
파일의 이름 입니다.
|
||||
|
||||
3. 앞에서 배웠던 것처럼 텍스트를 삽입하고 지워보세요.
|
||||
|
||||
4. 다음 명령어를 이용해 파일 수정 부분을 저장하고 빠져나갑니다: :wq <ENTER>
|
||||
|
||||
5. 만약 1에서 vimtutor를 빠져나갔다가 다시 들어왔다면, 아래로 움직여 요약으로 넘어가도록 합시다.
|
||||
|
||||
6. 위 모든 단계를 다 읽고 이해한 후에 직접 해보세요.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 1 요약
|
||||
|
||||
@@ -129,14 +175,14 @@
|
||||
4. 명령 모드에서 커서가 위치한 곳의 글자를 지우려면 x 를 입력합니다.
|
||||
|
||||
5. 명령 모드에서 커서가 위치한 곳에 텍스트를 삽입하려면
|
||||
i 를 누른 후 텍스트를 입력하고 <ESC> 를 누릅니다.
|
||||
i 를 누른 후 텍스트를 입력하고 <ESC> 커서 앞에 삽입합니다.
|
||||
A 를 누른 후 텍스트를 입력하고 <ESC> 문장 뒤에 추가 합니다.
|
||||
|
||||
참고: <ESC>는 명령 모드로 돌아가는 데 쓰며, 원치 않는 명령이나 완전히 입력되지
|
||||
않은 명령을 취소하는 데에도 씁니다.
|
||||
|
||||
그럼 Lesson 2를 시작합시다.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.1: 삭제(DELETION) 명령
|
||||
|
||||
@@ -180,15 +226,16 @@
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.3: 명령과 적용 대상에 대해
|
||||
|
||||
|
||||
|
||||
삭제 명령 d의 형식은 다음과 같습니다.
|
||||
|
||||
[횟수] d 대상 또는 d [횟수] 대상
|
||||
여기서
|
||||
횟수 - 명령을 몇 번 수행할 지 (옵션, 기본값=1).
|
||||
d 대상
|
||||
|
||||
여기서:
|
||||
d - 지우는 명령
|
||||
대상 - 아래에 제시된 대상에 대해 명령을 수행
|
||||
|
||||
@@ -197,13 +244,51 @@
|
||||
e - 커서에서 그 단어의 끝까지 (공백을 포함하지 않음.)
|
||||
$ - 커서에서 그 줄의 끝까지
|
||||
|
||||
예를 들어, de 는 커서의 위치부터 해당 단어의 끝까지 지웁니다.
|
||||
|
||||
참고: 호기심이 있다면, 명령 모드에서 명령 없이 대상을 입력해보십시오.
|
||||
위에서 이야기한 대상의 목록에 따라 커서가 움직이게 됩니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.4: 대상에 반복 적용하기
|
||||
|
||||
|
||||
** 대상 이전에 숫자를 넣어주면 그 만큼 반복 됩니다. **
|
||||
|
||||
1. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
|
||||
|
||||
2. 2w 입력하여 커서를 단어 두 개 뒤로 옮깁니다.
|
||||
|
||||
3. 3e 입력하여 커서를 뒤로 세 번째 단어의 끝으로 옮깁니다.
|
||||
|
||||
4. 0 (zero) 를 입력하여 문장의 시작부분으로 움직입니다.
|
||||
|
||||
5. 2에서 3까지를 다른 숫자로 반복해 봅니다.
|
||||
|
||||
---> This is just a line with words you can move around in.
|
||||
|
||||
6. Lesson 2.5로 가십시오.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.4: '명령-대상' 에 대한 예외
|
||||
Lesson 2.5: 삭제에 반복 적용하기
|
||||
|
||||
|
||||
** 명령과 숫자를 함께 사용하면 그만큼 반복 수행 됩니다. **
|
||||
|
||||
위에서 삭제 명령과 대상의 조합과 같이, 대상 이전에 횟수를 넣어 더 많이 삭제 할 수 있습니다:
|
||||
d 횟수 대상
|
||||
|
||||
1. 아래 ---> 표시된 줄에서 커서를 첫번째 대문자 단어로 옮깁니다.
|
||||
|
||||
2. d2w를 입력하여 두 대문자 단어를 지웁니다.
|
||||
|
||||
3. 이어지는 대문자 단어들을 1에서 2까지의 단계를 이용해 횟수를 바꾸어 삭제해 봅니다.
|
||||
|
||||
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.6: 줄 전체 조작하기
|
||||
|
||||
|
||||
|
||||
** dd 라고 치면 줄 전체를 지웁니다. **
|
||||
@@ -216,17 +301,17 @@
|
||||
3. 그런 다음 네번째 줄로 가십시오.
|
||||
4. 2dd 라고 입력하여 두줄을 지웁니다. ( 횟수-명령-대상을 기억하세요. )
|
||||
|
||||
1) Roses are red,
|
||||
2) Mud is fun,
|
||||
3) Violets are blue,
|
||||
4) I have a car,
|
||||
5) Clocks tell time,
|
||||
6) Sugar is sweet
|
||||
7) And so are you.
|
||||
---> 1) Roses are red,
|
||||
---> 2) Mud is fun,
|
||||
---> 3) Violets are blue,
|
||||
---> 4) I have a car,
|
||||
---> 5) Clocks tell time,
|
||||
---> 6) Sugar is sweet
|
||||
---> 7) And so are you.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 2.5: 취소(UNDO) 명령
|
||||
Lesson 2.7: 취소(UNDO) 명령
|
||||
|
||||
|
||||
** u 를 누르면 마지막 명령이 취소되며, U 는 줄 전체를 수정합니다. **
|
||||
@@ -252,20 +337,22 @@
|
||||
|
||||
|
||||
1. 커서가 위치한 곳부터 단어의 끝까지 지우려면: dw
|
||||
|
||||
2. 커서가 위치한 곳부터 줄 끝까지 지우려면: d$
|
||||
|
||||
3. 줄 전체를 지우려면: dd
|
||||
|
||||
4. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:
|
||||
4. 횟수와 함께 대상을 반복 시키려면: 2w
|
||||
5. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:
|
||||
|
||||
[횟수] 명령 대상 또는 명령 [횟수] 대상
|
||||
|
||||
여기서:
|
||||
횟수 - 그 명령을 몇 번 반복할 것인가
|
||||
명령 - 어떤 명령을 내릴 것인가 ( 예를 들어, 삭제인 경우는 d )
|
||||
대상 - 명령이 동작할 대상, 예를 들어 w (단어), $ (줄의 끝) 등.
|
||||
|
||||
5. 이전 행동을 취소하려면: u (소문자 u)
|
||||
6. 커서를 문장 맨 앞으로 옮기려면: 0
|
||||
|
||||
7. 이전 행동을 취소하려면: u (소문자 u)
|
||||
한 줄에서 수정한 것을 모두 취소하려면: U (대문자 U)
|
||||
취소한 것을 다시 실행하려면: CTRL-R
|
||||
|
||||
@@ -319,13 +406,13 @@
|
||||
Lesson 3.3: 변환(CHANGE) 명령
|
||||
|
||||
|
||||
** 한 단어의 일부나 전체를 바꾸려면, cw 를 치십시오. **
|
||||
** 한 단어의 전체를 바꾸려면, ce 를 치십시오. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 첫줄로 옮깁니다.
|
||||
|
||||
2. 커서를 lubw 에서 u 위에 올려놓습니다.
|
||||
|
||||
3. cw 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우, 'ine' 를 칩니다.)
|
||||
3. ce 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우, 'ine' 를 칩니다.)
|
||||
|
||||
4. <ESC> 를 누른 후 다음 에러로 갑니다 (수정되어야할 첫 글자로 갑니다.)
|
||||
|
||||
@@ -334,8 +421,8 @@
|
||||
---> This lubw has a few wptfd that mrrf changing usf the change command.
|
||||
---> This line has a few words that need changing using the change command.
|
||||
|
||||
cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
|
||||
주의합시다.
|
||||
ce 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
|
||||
유의합시다.
|
||||
|
||||
|
||||
|
||||
@@ -361,7 +448,7 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
---> The end of this line needs some help to make it like the second.
|
||||
---> The end of this line needs to be corrected using the c$ command.
|
||||
|
||||
|
||||
참고: 입력하는 동안은 백스페이스를 이용할 수 있습니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 3 요약
|
||||
@@ -375,7 +462,7 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
바꾸어 넣을 글자를 입력합니다.
|
||||
|
||||
3. 변환 명령(CHANGE)은 커서에서 부터 지정한 대상의 끝까지 바꿀 수 있는
|
||||
명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면, cw 를
|
||||
명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면 ce 를
|
||||
입력하면 되며, c$ 는 줄 끝까지 바꾸는 데 쓰입니다.
|
||||
|
||||
4. 변환 명령의 형식은 다음과 같습니다:
|
||||
@@ -390,8 +477,8 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
Lesson 4.1: 위치와 파일의 상태
|
||||
|
||||
|
||||
** CTRL-g 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
|
||||
SHIFT-G 를 누르면 파일 내의 줄로 이동합니다. **
|
||||
** CTRL-G 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
|
||||
G 를 누르면 파일 내의 마지막 줄로 이동합니다. **
|
||||
|
||||
주의: 아래의 단계를 따라하기 전에, 이 Lesson 전체를 먼저 읽으십시오.
|
||||
|
||||
@@ -399,10 +486,14 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
표시된 상태줄이 화면 아래에 표시될 것입니다. 3번째 단계를 위해 그
|
||||
줄 번호를 기억하고 계십시오.
|
||||
|
||||
2. SHIFT-G 를 누르면 파일의 마지막으로 이동합니다.
|
||||
참고: 커서가 화면 오른쪽 하단으로 옮겨진 것을 보인다면,
|
||||
이는 'ruler' 옵션을 세팅된 경우 입니다. (:help 'ruler' 를 참고 하세요.)
|
||||
|
||||
3. 아까 기억했던 줄 번호를 입력한 후 SHIFT-G 를 누르십시오. 이렇게 하면
|
||||
처음에 CTRL-g 를 눌렀던 장소로 되돌아가게 될 것입니다.
|
||||
2. G 를 누르면 파일의 마지막으로 이동합니다.
|
||||
gg 를 누르면 파일의 시작 부분으로 이동합니다.
|
||||
|
||||
3. 아까 기억했던 줄 번호를 입력한 후 G 를 누르십시오. 이렇게 하면
|
||||
처음에 CTRL-G 를 눌렀던 장소로 되돌아가게 될 것입니다.
|
||||
(번호를 입력할 때, 이것은 화면에 표시되지 않습니다.)
|
||||
|
||||
4. 자신이 생겼다면, 1에서 3까지를 실행해보십시오.
|
||||
@@ -425,6 +516,9 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
|
||||
4. 문구를 역방향으로 찾으려면, / 대신 ? 를 이용하면 됩니다.
|
||||
|
||||
5. 원래 있던 곳으로 돌아가기 위해서는 CTRL-O 를 이용하면 됩니다. 반복하면 더 이전으로도
|
||||
갈 수 있습니다. CTRL-I 로 다시 뒤로 갈 수도 있습니다.
|
||||
|
||||
---> "errroor" is not the way to spell error; errroor is an error.
|
||||
|
||||
참고: 찾는 중에 파일의 끝에 다다르게 되면, 파일의 처음부터 다시 찾게 됩니다.
|
||||
@@ -444,17 +538,16 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
|
||||
4. % 를 입력하여, 이전 괄호로 되돌아 옵시다.
|
||||
|
||||
5. 커서를 다른 (,),[,],{ 혹은 } 로 움직여 % 를 입력해 봅니다.
|
||||
|
||||
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
|
||||
|
||||
참고: 짝이 맞지 않는 괄호가 있는 프로그램을 디버깅할 때에 매우 유용합니다!
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 4.4: 에러를 수정하는 방법
|
||||
Lesson 4.4: 치환(SUBTITUTE) 명령
|
||||
|
||||
|
||||
** :s/old/new/g 하면 'old' 를 'new' 로 치환(SUBTITUTE)합니다. **
|
||||
@@ -472,22 +565,22 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
4. 두 줄 사이의 모든 문자열에 대해 치환하려면 다음과 같이 합니다,
|
||||
:#,#s/old/new/g #,# 는 두 줄의 줄번호를 뜻합니다.
|
||||
:%s/old/new/g 파일 전체에서 발견된 모든 것을 치환하는 경우입니다.
|
||||
|
||||
|
||||
|
||||
:%s/old/new/gc 파일 전체에서 발견된 모든 것을 찾고, 치환할지 안
|
||||
할지 프롬프트로 명령합니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 4 요약
|
||||
|
||||
|
||||
1. CTRL-g 는 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
|
||||
SHIFT-G 는 파일의 끝으로 이동합니다. 줄번호를 입력한 후 SHIFT-G를
|
||||
입력하면, 그 줄로 이동합니다.
|
||||
|
||||
1. CTRL-G 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
|
||||
G 파일의 끝으로 이동합니다.
|
||||
숫자 G 해당 줄로 이동합니다.
|
||||
gg 첫 번째 라인으로 이동합니다.
|
||||
|
||||
2. / 를 입력한 후 문구를 입력하면 그 문구를 아랫방향으로 찾습니다.
|
||||
? 를 입력한 후 문구를 입력하면 윗방향으로 찾습니다.
|
||||
검색 후, n 을 입력하면 같은 방향으로 다음 문구를 찾으며,
|
||||
Shift-N 을 입력하면 반대 방향으로 찾습니다.
|
||||
CTRL-O 는 과거의 위치로, CTRL-I는 새로운 위치로 옮겨줍니다.
|
||||
|
||||
3. 커서가 (,),[,],{,} 위에 있을 때에 % 를 입력하면 상응하는 짝을
|
||||
찾아갑니다.
|
||||
@@ -548,25 +641,23 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 5.3: 선택적으로 저장하는 명령
|
||||
|
||||
** 파일의 일부를 저장하려면, v 대상 :w FILENAME 을 입력합니다. **
|
||||
|
||||
** 파일의 일부를 저장하려면, :#,# w FILENAME 하십시오. **
|
||||
|
||||
1. 다시 한번, :!dir 이나 :!ls 를 입력하여 디렉토리의 목록을 받아온 후
|
||||
TEST 같은 적합한 이름을 선택합니다.
|
||||
|
||||
2. 커서를 이 페이지의 처음으로 옮긴 후, Ctrl-g 를 입력하여 그 줄의 줄번호를
|
||||
알아냅니다. 이 번호를 기억하십시오!
|
||||
|
||||
3. 이제 이 페이지의 마지막으로 가서 Ctrl-g 를 다시 입력하십시오. 이 줄의
|
||||
줄번호 또한 기억하십시오!
|
||||
|
||||
4. 어떤 섹션만 파일로 저장하려면, :#,# w TEST 를 입력하면 됩니다. 이 때
|
||||
#,# 는 아까 기억했던 시작과 끝 줄번호 입니다. TEST는 파일 이름입니다.
|
||||
|
||||
5. :!dir 을 이용하여 파일이 만들어졌는지 확인하십시오. 지우지는 마십시오.
|
||||
1. 이 줄로 커서를 가져옵니다.
|
||||
|
||||
2. v 를 누르고 커서를 아래 다섯번째로 옮깁니다. 이 때, 문자열들이 하이라이트 됨을 주목합니다.
|
||||
|
||||
3. : 를 누릅니다. 화면 하단에 :'<,'> 가 나타납니다.
|
||||
|
||||
4. w TEST 를 입력합니다. 여기서 TEST는 파일 이름이며 아직 생성되어 있지 않습니다. <ENTER>를
|
||||
누르기 전, :'<,'>w TEST 로 입력되었는지 확인 합니다.
|
||||
|
||||
5. 빔은 선택된 문장들을 TEST 파일에 입력합니다. :!dir 혹은 :!ls를 이용하여 파일이 만들어졌는지
|
||||
확인하십시오. 아직 삭제하지 마십시오! 다음 레슨에서 이 파일을 사용합니다.
|
||||
|
||||
참고 : v 를 눌러 비주얼(Visual) 선택을 시작합니다. 커서를 주변으로 움직여 선택 부분을 조절할 수
|
||||
있습니다. 그리고 명령어를 이용해 해당 문자열을 조작할 수 있습니다. 예를 들어, d 를 이용해
|
||||
삭제할 수도 있습니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 5.4: 파일 읽어들이기, 합치기
|
||||
@@ -574,22 +665,19 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
|
||||
** 어떤 파일의 내용을 삽입하려면, :r FILENAME 하십시오 **
|
||||
|
||||
1. :!dir 을 입력하여 아까 만든 TEST 파일이 그대로 있는지 확인하십시오.
|
||||
|
||||
2. 커서를 이 페이지의 처음으로 움직이십시오.
|
||||
|
||||
주의: 3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
|
||||
1. 커서를 이 라인 바로 위로 옮기십시오.
|
||||
|
||||
주의: 3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
|
||||
이 lesson으로 다시 내려오십시오.
|
||||
|
||||
2. 이제 TEST 파일을 읽어들입시다. :r TEST 명령을 사용하십시오. TEST 는
|
||||
파일의 이름입니다. 읽어들인 파일은 커서가 위치한 문장 아래부터 놓이게 됩니다.
|
||||
|
||||
3. 이제 TEST 파일을 읽어들입시다. :r TEST 명령을 사용하십시오. TEST 는
|
||||
파일의 이름입니다.
|
||||
|
||||
참고: 읽어들인 파일은 커서가 위치한 지점에서부터 놓이게 됩니다.
|
||||
|
||||
4. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
|
||||
3. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
|
||||
읽어들인 버전, 이렇게 Lesson 5.3 이 두번 반복되었음을 확인하십시오.
|
||||
|
||||
|
||||
참고: 외부 명령어의 결과값도 읽을 수 있습니다. 예를 들어, :r !ls 는 ls 명령어에 대한 결과값을
|
||||
읽어 커서 바로 아래에 합칩니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 5 요약
|
||||
@@ -605,14 +693,12 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
2. :w FILENAME 하면 현재 빔에서 사용하는 파일을 FILENAME이라는 이름으로
|
||||
디스크에 저장합니다.
|
||||
|
||||
3. :#,#w FILENAME 하면 #부터 #까지의 줄을 FILENAME이라는 파일로 저장합니다.
|
||||
3. v 명령 :w FILENAME 은 비주얼 모드에서 선택된 문장들을 파일 FILENAME에 저장합니다.
|
||||
|
||||
4. :r FILENAME 은 디스크에서 FILENAME이라는 파일을 불러들여서 커서 위치
|
||||
뒤에 현재 파일을 집어넣습니다.
|
||||
|
||||
|
||||
|
||||
|
||||
5. :r !dir 는 dir 명령어의 결과값을 현재 커서의 위치 아래에 붙힙니다.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -624,7 +710,6 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
1. 아래에 ---> 로 표시된 줄로 커서를 옮기십시오.
|
||||
|
||||
2. o (소문자)를 쳐서 커서 *아래에* 줄을 하나 여십시오. 편집 모드가 됩니다.
|
||||
Insert mode.
|
||||
|
||||
3. ---> 로 표시된 줄을 복사한 후 <ESC> 를 눌러서 편집 모드에서 나오십시오.
|
||||
|
||||
@@ -632,10 +717,8 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
|
||||
4. 커서 *위에* 줄을 하나 만드려면, 소문자 o 대신 대문자 O 를 치면 됩니다.
|
||||
아래 있는 줄에 대해 이 명령을 내려보십시오.
|
||||
Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
|
||||
|
||||
|
||||
---> Open up a line above this by typing O while the cursor is on this line.
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -644,11 +727,15 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
|
||||
** a 를 누르면 커서 *다음에* 글을 입력할 수 있습니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다. 명령 모드에서
|
||||
$ 를 이용하십시오.
|
||||
1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다.
|
||||
|
||||
2. e 를 눌러 li 의 끝으로 커서를 옮깁니다.
|
||||
|
||||
2. 소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
|
||||
(대문자 A는 그 줄의 끝에 추가합니다.)
|
||||
3. 소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
|
||||
|
||||
4. 아랫줄과 같이 문장을 완성해 봅니다. <ESC>를 이용해 편집(Insert) 모드를 나갑니다.
|
||||
|
||||
5. e 를 이용해 다음 고칠 단어로 움직여 3에서 4까지를 반복합니다.
|
||||
|
||||
참고: 그렇게 하시면 고작 줄의 끝에 추가를 하기 위해 i를 누르고, 커서 아래에
|
||||
있던 글자를 반복하고, 글을 끼워넣고, <ESC>를 눌러 명령 모드로 돌아와서,
|
||||
@@ -658,10 +745,10 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
3. 이제 첫 줄을 완성하십시오. 추가 명령은 텍스트가 입력되는 위치 외에는
|
||||
편집 모드와 완전히 같다는 것을 유념하십시오.
|
||||
|
||||
---> This line will allow you to practice
|
||||
---> This line will allow you to practice appending text to the end of a line.
|
||||
|
||||
---> This li will allow you to pract appendi text to a line.
|
||||
---> This line will allow you to practice appending text to a line.
|
||||
|
||||
참고: a, i 그리고 A 는 텍스트가 입력되는 위치 외에는 편집 모드와 완전히 같다는 것을 유념하십시오.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.3: 치환(REPLACE) 의 다른 버전
|
||||
@@ -669,37 +756,56 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
|
||||
** 대문자 R 을 입력하면 하나 이상의 글자를 바꿀 수 있습니다. **
|
||||
|
||||
1. 커서를 ---> 로 표시된 첫번째 줄로 옮기십시오.
|
||||
1. ---> 로 표시된 첫번째 줄로 움직여 커서를 xxx의 앞으로 옮깁니다.
|
||||
|
||||
2. 커서를 ---> 로 표시된 두번째 줄과 다른 첫번째 단어 위로 옮기십시오.
|
||||
('last' 입니다.)
|
||||
|
||||
3. R 을 입력한 후 첫번째 줄의 예전 텍스트 위에 새로운 글을 입력하여
|
||||
나머지 내용이 두번째 줄과 같아지도록 바꿉시다.
|
||||
|
||||
---> To make the first line the same as the last on this page use the keys.
|
||||
---> To make the first line the same as the second, type R and the new text.
|
||||
|
||||
4. <ESC> 를 눌러서 나가면, 바뀌지 않은 텍스트는 그대로 남게 됩니다.
|
||||
2. R 을 입력한 후, 두번째 줄과 같은 숫자를 입력해 xxx를 치환합니다.
|
||||
|
||||
3. <ESC> 를 눌러 치환 모드를 빠져나갑니다. 나머지 문장은 그대로 남아 있는지 확인합니다.
|
||||
|
||||
4. 위 단계들 반복하여 남은 모든 xxx를 치환합니다.
|
||||
|
||||
---> Adding 123 to xxx gives you xxx.
|
||||
---> Adding 123 to 456 gives you 579.
|
||||
|
||||
주의: 치환 모드는 편집 모드와 비슷합니다. 하지만 입력된 문자들이 원래 문자들을 삭제하는 점이 다릅니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.4: 옵션 설정(SET)
|
||||
Lesson 6.4: 문자 복사 붙여넣기(COPY AND PASTE)
|
||||
|
||||
|
||||
** y 를 이용해 복사하고 p 로 붙여 넣습니다. **
|
||||
|
||||
1. ---> 로 표시된 줄로 움직여 커서를 "a)" 뒤로 옮깁니다.
|
||||
|
||||
2. v 를 눌러 비주얼 모드를 시작하고 "first" 바로 앞까지 커서를 움직입니다.
|
||||
|
||||
3. y 를 눌러 하이라이트 된 부분을 복사(yank (copy))합니다.
|
||||
|
||||
4. 커서를 다음 문장의 끝으로 옮깁니다: j$
|
||||
|
||||
5. p 를 눌러 문자열을 붙여 넣습니다.(paste) 그리고 second <ESC> 를 입력합니다.
|
||||
|
||||
6. 비주얼 모드를 이용해 " item."을 선택, y 로 복사, j$ 으로 다음 문장 끝으로 움직여
|
||||
p 로 단어를 붙여 넣습니다.
|
||||
|
||||
---> a) this is the first item.
|
||||
b)
|
||||
|
||||
참고: y 역시 명령어로 사용 가능합니다. 예를 들어, yw 는 한 단어를 복사합니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 6.5: 옵션 설정(SET)
|
||||
|
||||
** 찾기나 바꾸기에서 대소문자 구분을 없애기 위해 옵션을 설정합니다 **
|
||||
|
||||
1. 다음을 입력하여 'ignore' 를 찾으십시오:
|
||||
/ignore
|
||||
n 키를 이용하여 여러번 반복하십시오.
|
||||
1. 다음을 입력하여 'ignore' 를 찾으십시오: /ignore <ENTER>
|
||||
n 키를 이용하여 여러번 반복하십시오.
|
||||
|
||||
2. 'ic' (대소문자 구별 안함, Ignore case) 옵션을 설정하십시오:
|
||||
:set ic
|
||||
|
||||
3. n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
|
||||
n 키를 계속 눌러서 여러번 찾으십시오.
|
||||
3. n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
|
||||
이제 ignore과 IGNORE 모두 검색되는 점을 주목합니다.
|
||||
|
||||
4. 'hlsearch' 와 'incsearch' 옵션을 설정합시다.
|
||||
:set hls is
|
||||
@@ -707,8 +813,13 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
5. 찾기 명령을 다시 입력하여, 어떤 일이 일어나는지 확인해 보십시오:
|
||||
/ignore
|
||||
|
||||
6. 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면, 다음과 같이 입력합니다:
|
||||
:nohlsearch
|
||||
6. 대소문자 구별을 끄기 위해서는, 다음과 같이 입력합니다:
|
||||
:set noic
|
||||
|
||||
참고: 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면: :nohlsearch
|
||||
참고: 만약, 검색 한번에 대해서만 대소문자 구별 세팅을 끄고 싶다면 \c 를 이용할 수 있습니다.
|
||||
: /ignore\c <ENTER>
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 6 요약
|
||||
|
||||
@@ -720,20 +831,22 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
2. a 를 입력하면 커서 *다음에* 글을 입력할 수 있습니다.
|
||||
대문자 A 를 입력하면 자동으로 그 줄의 끝에 글자를 추가하게 됩니다.
|
||||
|
||||
3. 대문자 R 을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.
|
||||
|
||||
4. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3. e 를 입력하면 단어의 끝으로 움직입니다.
|
||||
|
||||
4. y 를 입력하면 복사(yank (copy))를, p 를 입력하면 붙여 넣기가 됩니다.
|
||||
|
||||
5. 대문자 R 을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.
|
||||
|
||||
6. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.:
|
||||
'ic' 'ignorecase' 검색시 대소문자 구별을 하지 않습니다.
|
||||
'is' 'incsearch' 검색어에서 부분 검색 결과를 보여줍니다.
|
||||
'hls' 'hlsearch' 검색 결과값을 하이라이트해줍니다.
|
||||
옵션은 전체 이름 혹은 줄인 이름 모두 사용 가능합니다.
|
||||
|
||||
7. 앞에 "no"를 붙여 옵션을 끌 수 있습니다: :set noic
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 7: 온라인 도움말 명령
|
||||
LESSON 7.1: 온라인 도움말 명령
|
||||
|
||||
|
||||
** 온라인 도움말 시스템 사용하기 **
|
||||
@@ -745,18 +858,19 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
- :help <ENTER> 라고 입력한다.
|
||||
|
||||
도움말 창을 닫으려면 :q <ENTER> 라고 입력하십시오.
|
||||
CTRL-W CTRL-W 다른쪽 윈도우로 넘어갑니다.
|
||||
:q <ENTER> 도움말 윈도우를 닫습니다.
|
||||
|
||||
":help" 라는 명령에 인자를 주면 어떤 주제에 관한 도움말을 찾을 수 있습니다.
|
||||
다음 명령을 내려 보십시오. ( <ENTER> 키를 누르는 것을 잊지 마십시오.)
|
||||
|
||||
:help w
|
||||
:help c_<T
|
||||
:help c_CTRL-D
|
||||
:help insert-index
|
||||
:help user-manual
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
LESSON 8: 시작 스크립트 만들기
|
||||
LESSON 7.2: 시작 스크립트 만들기
|
||||
|
||||
** 빔의 기능 켜기 **
|
||||
|
||||
@@ -764,20 +878,64 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
않습니다. 더 많은 기능을 써보려면, "vimrc" 라는 파일을 만들어야 합니다.
|
||||
|
||||
1. "vimrc" 파일을 수정합시다. 이 파일은 사용하는 시스템에 따라 다릅니다:
|
||||
1. Start editing the "vimrc" file, this depends on your system:
|
||||
:edit ~/.vimrc Unix의 경우
|
||||
:edit $VIM/_vimrc MS-Windows의 경우
|
||||
:e ~/.vimrc Unix의 경우
|
||||
:e $VIM/_vimrc MS-Windows의 경우
|
||||
|
||||
2. 이제 "vimrc"의 예제를 읽어들입니다:
|
||||
|
||||
:read $VIMRUNTIME/vimrc_example.vim
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. 다음과 같이 하여 파일을 저장합니다:
|
||||
|
||||
:write
|
||||
:w
|
||||
|
||||
다음 번에 빔을 시작하면, 구문 강조(syntax highlighting)이 사용될 것입니다.
|
||||
모든 원하는 설정을 이 "vimrc" 파일에 넣어둘 수 있습니다.
|
||||
더 자세한 내용은 :help vimrc-intro를 참고 하세요.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 7.3: 명령어 완성하기
|
||||
|
||||
|
||||
** CTRL-D 와 <TAB> 이용하여 명령어를 완성할 수 있습니다.**
|
||||
|
||||
1. 먼저 vim이 호환 모드가 아닌지를 확인합니다: :set nocp
|
||||
|
||||
2. 디렉토리에 파일이 존재하는지 먼저 확인 합니다.: :!ls 혹은 :!dir
|
||||
|
||||
3. 다음과 같이 명령어를 입력합니다: :e
|
||||
|
||||
4. CTRL-D 를 누르면 "e"로 시작하는 모든 명령어들을 볼 수 있습니다.
|
||||
|
||||
5. <TAB> 을 눌러 ":edit" 명령어를 완성해 봅니다.
|
||||
|
||||
6. 이제 빈칸 하나를 추가한 뒤, 존재 파일 이름을 앞 부분을 입력합니다: :edit FIL
|
||||
|
||||
7. <TAB> 을 눌러 파일 이름을 완성 시킵니다.
|
||||
|
||||
참고: 완성하기는 많은 명령어에서 사용할 수 있습니다. CTRL-D와 <TAB> 만 누르세요!
|
||||
특히, :help 에서 유용할 것입니다.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lesson 7 요약
|
||||
|
||||
|
||||
1. 도움말을 열기 위해 :help 혹은 <F1> 혹은 <Help> 를 누릅니다.
|
||||
|
||||
2. cmd 에 대한 도움말을 보기 위해서는 :help cmd 를 입력합니다.
|
||||
|
||||
3. CTRL-W CTRL-W 를 이용해 다른 윈도우로 넘어갑니다.
|
||||
|
||||
4. :q 로 도움말 윈도우를 빠져나옵니다.
|
||||
|
||||
5. vimrc 시작 스크립트를 이용해 선호하는 세팅을 유지할 수 있습니다.
|
||||
|
||||
6. : 명령어를 입력할때, CTRL-D 를 눌러 가능한 명령어들을 볼수 있습니다.
|
||||
<TAB> 을 눌러 완성 가능합니다.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -807,6 +965,4 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
|
||||
Modified for Vim by Bram Moolenaar.
|
||||
|
||||
이 문서의 한국어 버전에 관한 문의는 다음 사이트로 해주십시오.
|
||||
http://wiki.kldp.org/wiki.php/VimTutorKo
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -3,17 +3,21 @@
|
||||
[Desktop Entry]
|
||||
# Translators: This is the Application Name used in the Vim desktop file
|
||||
Name[de]=Vim
|
||||
Name[eo]=Vim
|
||||
Name=Vim
|
||||
# Translators: This is the Generic Application Name used in the Vim desktop file
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[eo]=Tekstoredaktilo
|
||||
GenericName[ja]=テキストエディタ
|
||||
GenericName=Text Editor
|
||||
# Translators: This is the comment used in the Vim desktop file
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[eo]=Redakti tekstajn dosierojn
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment=Edit text files
|
||||
# The translations should come from the po file. Leave them here for now, they will
|
||||
# be overwritten by the po file when generating the desktop.file.
|
||||
GenericName[da]=Teksteditor
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[pl]=Edytor tekstu
|
||||
GenericName[is]=Ritvinnsluforrit
|
||||
Comment[af]=Redigeer tekslêers
|
||||
@@ -28,7 +32,6 @@ Comment[ca]=Edita fitxers de text
|
||||
Comment[cs]=Úprava textových souborů
|
||||
Comment[cy]=Golygu ffeiliau testun
|
||||
Comment[da]=Rediger tekstfiler
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[el]=Επεξεργασία αρχείων κειμένου
|
||||
Comment[en_CA]=Edit text files
|
||||
Comment[en_GB]=Edit text files
|
||||
@@ -47,7 +50,6 @@ Comment[hu]=Szövegfájlok szerkesztése
|
||||
Comment[id]=Edit file teks
|
||||
Comment[is]=Vinna með textaskrár
|
||||
Comment[it]=Modifica file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
|
||||
Comment[ko]=텍스트 파일을 편집합니다
|
||||
Comment[lt]=Redaguoti tekstines bylas
|
||||
@@ -90,9 +92,12 @@ Terminal=true
|
||||
Type=Application
|
||||
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
|
||||
Keywords[de]=Text;Editor;
|
||||
Keywords[eo]=Teksto;redaktilo;
|
||||
Keywords[ja]=テキスト;エディタ;
|
||||
Keywords=Text;editor;
|
||||
# Translators: This is the Icon file name. Do NOT translate
|
||||
Icon[de]=gvim
|
||||
Icon[eo]=gvim
|
||||
Icon=gvim
|
||||
Categories=Utility;TextEditor;
|
||||
StartupNotify=false
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
### USEDLL no for statically linked version of run-time, yes for DLL runtime
|
||||
### BOR path to root of Borland C install (c:\bc5)
|
||||
|
||||
### (requires cc3250.dll be available in %PATH%)
|
||||
!if ("$(USEDLL)"=="")
|
||||
USEDLL = no
|
||||
!endif
|
||||
|
||||
### BOR: root of the BC installation
|
||||
!if ("$(BOR)"=="")
|
||||
BOR = c:\bc5
|
||||
!endif
|
||||
|
||||
CC = $(BOR)\bin\Bcc32
|
||||
BRC = $(BOR)\bin\brc32
|
||||
LINK = $(BOR)\BIN\ILink32
|
||||
INCLUDE = $(BOR)\include;.
|
||||
LIB = $(BOR)\lib
|
||||
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
RT_DEF = -D_RTLDLL
|
||||
RT_LIB = cw32i.lib
|
||||
!else
|
||||
RT_DEF =
|
||||
RT_LIB = cw32.lib
|
||||
!endif
|
||||
|
||||
|
||||
all : gvimext.dll
|
||||
|
||||
gvimext.obj : gvimext.cpp gvimext.h
|
||||
$(CC) -tWD -I$(INCLUDE) -c -DFEAT_GETTEXT $(RT_DEF) -w- gvimext.cpp
|
||||
|
||||
gvimext.res : gvimext.rc
|
||||
$(BRC) -r gvimext.rc
|
||||
|
||||
gvimext.dll : gvimext.obj gvimext.res
|
||||
$(LINK) -L$(LIB) -aa gvimext.obj, gvimext.dll, , c0d32.obj $(RT_LIB) import32.lib, gvimext.def, gvimext.res
|
||||
|
||||
clean :
|
||||
-@del gvimext.obj
|
||||
-@del gvimext.res
|
||||
-@del gvimext.dll
|
||||
@@ -16,14 +16,7 @@
|
||||
|
||||
#include "gvimext.h"
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
# include <dir.h>
|
||||
# ifndef _strnicmp
|
||||
# define _strnicmp(a, b, c) strnicmp((a), (b), (c))
|
||||
# endif
|
||||
#else
|
||||
static char *searchpath(char *name);
|
||||
#endif
|
||||
|
||||
// Always get an error while putting the following stuff to the
|
||||
// gvimext.h file as class protected variables, give up and
|
||||
@@ -917,7 +910,6 @@ BOOL CShellExt::LoadMenuIcon()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#ifndef __BORLANDC__
|
||||
static char *
|
||||
searchpath(char *name)
|
||||
{
|
||||
@@ -937,7 +929,6 @@ searchpath(char *name)
|
||||
}
|
||||
return (char *)"";
|
||||
}
|
||||
#endif
|
||||
|
||||
STDMETHODIMP CShellExt::InvokeGvim(HWND hParent,
|
||||
LPCSTR /* pszWorkingDir */,
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#ifndef __BORLANDC__
|
||||
# include "winresrc.h"
|
||||
#endif
|
||||
#include "winresrc.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
@@ -25,21 +25,20 @@ Contents:
|
||||
2. Using MSYS2 with MinGW
|
||||
3. Using MinGW
|
||||
4. Cygwin
|
||||
5. Borland
|
||||
6. Cross compiling for Win32 from a Linux machine
|
||||
7. Building with Python support
|
||||
8. Building with Python3 support
|
||||
9. Building with Racket or MzScheme support
|
||||
10. Building with Lua support
|
||||
11. Building with Perl support
|
||||
12. Building with Ruby support
|
||||
13. Building with Tcl support
|
||||
14. Building with Terminal support
|
||||
15. Building with DirectX (DirectWrite) support
|
||||
16. Windows 3.1
|
||||
17. MS-DOS
|
||||
5. Cross compiling for Win32 from a Linux machine
|
||||
6. Building with Python support
|
||||
7. Building with Python3 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. Building with Terminal support
|
||||
14. Building with DirectX (DirectWrite) support
|
||||
15. Windows 3.1
|
||||
16. MS-DOS
|
||||
|
||||
18. Installing after building from sources
|
||||
17. Installing after building from sources
|
||||
|
||||
|
||||
The currently recommended way (that means it has been verified to work) is
|
||||
@@ -81,21 +80,11 @@ nmake -f Make_mvc.mak PERL=C:\Perl PYTHON=C:\Python etc.
|
||||
Perl, Python, etc.
|
||||
|
||||
Make_mvc.mak allows a Vim to be built with various different features and
|
||||
debug support. Debugging with MS Devstudio is provided by Make_dvc.mak.
|
||||
For a description of the use of Make_dvc.mak, look in Make_mvc.mak.
|
||||
debug support.
|
||||
|
||||
For compiling Gvim with IME support on far-east Windows, add IME=yes
|
||||
to the parameters you pass to Make_mvc.mak.
|
||||
|
||||
To build Vim from within the Visual Studio IDE, open the Make_ivc.mak project.
|
||||
(Note: Make_ivc.mak is not as rich as Make_mvc.mak, which allows for
|
||||
far more configuration.) Make_ivc.mak can also be built with nmake.
|
||||
|
||||
nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim"
|
||||
GUI Microsoft Visual C++ 4.x or later
|
||||
nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim OLE"
|
||||
OLE Microsoft Visual C++ 4.x or later
|
||||
|
||||
See the specific files for comments and options.
|
||||
|
||||
These files have been supplied by George V. Reilly, Ben Singer, Ken Scott and
|
||||
@@ -461,14 +450,7 @@ running on Unix), while with Make_cyg.mak you get a Windows application (like
|
||||
with the other makefiles).
|
||||
|
||||
|
||||
5. Borland
|
||||
===========
|
||||
|
||||
Use Make_bc5.mak with Borland C++ 5.x. See
|
||||
http://users.skynet.be/antoine.mechelynck/vim/compile.htm
|
||||
|
||||
|
||||
6. Cross compiling for Win32 from a Linux machine
|
||||
5. Cross compiling for Win32 from a Linux machine
|
||||
=================================================
|
||||
|
||||
[Update of 1) needs to be verified]
|
||||
@@ -488,7 +470,7 @@ your Linux (or other unix) box. To do this, you need to follow a few steps:
|
||||
Now you have created the Windows binary from your Linux box! Have fun...
|
||||
|
||||
|
||||
7. Building with Python support
|
||||
6. Building with Python support
|
||||
===============================
|
||||
|
||||
For building with MSVC 2008 the "Windows Installer" from www.python.org
|
||||
@@ -549,7 +531,7 @@ Now just do:
|
||||
You will end up with a Python-enabled, Win32 version. Enjoy!
|
||||
|
||||
|
||||
8. Building with Python3 support
|
||||
7. Building with Python3 support
|
||||
================================
|
||||
|
||||
For building with MSVC 2008 the "Windows Installer" from www.python.org
|
||||
@@ -586,7 +568,7 @@ When using msys2 and link with Python3 bundled with msys2 (as one line):
|
||||
libstdc++-6.dll.)
|
||||
|
||||
|
||||
9. Building with Racket or MzScheme support
|
||||
8. Building with Racket or MzScheme support
|
||||
========================================
|
||||
|
||||
1) Building with Racket support (newest)
|
||||
@@ -676,7 +658,7 @@ After a successful build, these dlls can be freely removed, leaving them in
|
||||
|
||||
|
||||
|
||||
10. Building with Lua support
|
||||
9. Building with Lua support
|
||||
============================
|
||||
|
||||
Vim with Lua support can be built with either MSVC or MinGW (or maybe Cygwin).
|
||||
@@ -731,7 +713,7 @@ Or when using Cygwin (as one line) (untested):
|
||||
LUA=/cygdrive/c/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53
|
||||
|
||||
|
||||
11. Building with Perl support
|
||||
10. Building with Perl support
|
||||
==============================
|
||||
|
||||
Vim with Perl support can be built with either MSVC or MinGW (or Cygwin).
|
||||
@@ -757,7 +739,7 @@ Or when using MinGW (as one line):
|
||||
PERL=C:/Perl DYNAMIC_PERL=yes PERL_VER=522
|
||||
|
||||
|
||||
12. Building with Ruby support
|
||||
11. Building with Ruby support
|
||||
==============================
|
||||
|
||||
Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
|
||||
@@ -865,7 +847,7 @@ Ruby 2.1 or later. (Default is 0x600.)
|
||||
|
||||
|
||||
|
||||
13. Building with Tcl support
|
||||
12. Building with Tcl support
|
||||
=============================
|
||||
|
||||
Vim with Tcl support can be built with either MSVC or MinGW (or Cygwin).
|
||||
@@ -904,7 +886,7 @@ Or when using MinGW (as one line):
|
||||
TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
|
||||
|
||||
|
||||
14. Building with Terminal support
|
||||
13. Building with Terminal support
|
||||
==================================
|
||||
|
||||
Vim with Terminal support can be built with either MSVC, MinGW or Cygwin.
|
||||
@@ -920,7 +902,7 @@ Or when using MinGW:
|
||||
mingw32-make -f Make_ming.mak TERMINAL=yes
|
||||
|
||||
|
||||
15. Building with DirectX (DirectWrite) support
|
||||
14. Building with DirectX (DirectWrite) support
|
||||
===============================================
|
||||
|
||||
Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW.
|
||||
@@ -954,20 +936,20 @@ Just set DIRECTX to yes:
|
||||
mingw32-make -f Make_ming.mak DIRECTX=yes
|
||||
|
||||
|
||||
16. Windows 3.1x
|
||||
15. Windows 3.1x
|
||||
================
|
||||
|
||||
The Windows 3.1x support was removed in patch 7.4.1364.
|
||||
|
||||
|
||||
17. MS-DOS
|
||||
16. MS-DOS
|
||||
==========
|
||||
|
||||
The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions
|
||||
work on MS-DOS because of the limited amount of memory available.
|
||||
|
||||
|
||||
18. Installing after building from sources
|
||||
17. Installing after building from sources
|
||||
==========================================
|
||||
|
||||
[provided by Michael Soyka, updated by Ken Takata]
|
||||
|
||||
983
src/Make_bc5.mak
983
src/Make_bc5.mak
@@ -1,983 +0,0 @@
|
||||
#
|
||||
# Makefile for Vim.
|
||||
# Compiler: Borland C++ 5.0 and later 32-bit compiler
|
||||
# Targets: Win32 (Windows NT and Windows 95) (with/without GUI)
|
||||
#
|
||||
# NOTE: THIS IS OLD AND PROBABLY NO LONGER WORKS.
|
||||
#
|
||||
# Contributed by Ben Singer.
|
||||
# Updated 4/1997 by Ron Aaron
|
||||
# 2016: removed support for 16 bit DOS
|
||||
# 6/1997 - added support for 16 bit DOS
|
||||
# Note: this has been tested, and works, for BC5. Your mileage may vary.
|
||||
# Has been reported NOT to work with BC 4.52. Maybe it can be fixed?
|
||||
# 10/1997 - ron - fixed bugs w/ BC 5.02
|
||||
# 8/1998 - ron - updated with new targets, fixed some stuff
|
||||
# 3/2000 - Bram: Made it work with BC 5.5 free command line compiler,
|
||||
# cleaned up variables.
|
||||
# 6/2001 - Dan - Added support for compiling Python and TCL
|
||||
# 7/2001 - Dan - Added support for compiling Ruby
|
||||
#
|
||||
# It builds on Windows 95 and NT-Intel, producing the same binary in either
|
||||
# case. To build using Microsoft Visual C++, use Make_mvc.mak.
|
||||
#
|
||||
# This should work with the free Borland command line compiler, version 5.5.
|
||||
# You need at least sp1 (service pack 1). With sp2 it compiles faster.
|
||||
# Use a command like this:
|
||||
# <path>\bin\make /f Make_bc5.mak BOR=<path>
|
||||
#
|
||||
|
||||
# let the make utility do the hard work:
|
||||
.AUTODEPEND
|
||||
.CACHEAUTODEPEND
|
||||
|
||||
# VARIABLES:
|
||||
# name value (default)
|
||||
#
|
||||
# BOR path to root of Borland C install (c:\bc5)
|
||||
# LINK name of the linker ($(BOR)\bin\ilink32)
|
||||
# GUI no or yes: set to yes if you want the GUI version (yes)
|
||||
# LUA define to path to Lua dir to get Lua support (not defined)
|
||||
# LUA_VER define to version of Lua being used (51)
|
||||
# DYNAMIC_LUA no or yes: set to yes to load the Lua DLL dynamically (no)
|
||||
# PERL define to path to Perl dir to get Perl support (not defined)
|
||||
# PERL_VER define to version of Perl being used (56)
|
||||
# DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (no)
|
||||
# PYTHON define to path to Python dir to get PYTHON support (not defined)
|
||||
# PYTHON_VER define to version of Python being used (22)
|
||||
# DYNAMIC_PYTHON no or yes: use yes to load the Python DLL dynamically (no)
|
||||
# PYTHON3 define to path to Python3 dir to get PYTHON3 support (not defined)
|
||||
# PYTHON3_VER define to version of Python3 being used (31)
|
||||
# DYNAMIC_PYTHON3 no or yes: use yes to load the Python3 DLL dynamically (no)
|
||||
# TCL define to path to TCL dir to get TCL support (not defined)
|
||||
# TCL_VER define to version of TCL being used (83)
|
||||
# DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (no)
|
||||
# RUBY define to path to Ruby dir to get Ruby support (not defined)
|
||||
# NOTE: You may have to remove the defines for uid_t and gid_t
|
||||
# from the Ruby config.h header file.
|
||||
# RUBY_VER define to version of Ruby being used (16)
|
||||
# NOTE: compilation on WinNT/2K/XP requires
|
||||
# at least version 1.6.5 of Ruby. Earlier versions
|
||||
# of Ruby will cause a compile error on these systems.
|
||||
# RUBY_VER_LONG same, but in format with dot. (1.6)
|
||||
# DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no)
|
||||
# IME no or yes: set to yes for multi-byte IME support (yes)
|
||||
# DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
|
||||
# GETTEXT no or yes: set to yes for multi-language support (yes)
|
||||
# ICONV no or yes: set to yes for dynamic iconv support (yes)
|
||||
# OLE no or yes: set to yes to make OLE gvim (no)
|
||||
# DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
|
||||
# CODEGUARD no or yes: set to yes if you want to use CODEGUARD (no)
|
||||
# CPUNR 1 through 6: select -CPU argument to compile with (3)
|
||||
# 3 for 386, 4 for 486, 5 for pentium, 6 for pentium pro.
|
||||
# USEDLL no or yes: set to yes to use the Runtime library DLL (no)
|
||||
# For USEDLL=yes the cc3250.dll is required to run Vim.
|
||||
# ALIGN 1, 2 or 4: Alignment to use (4 for Win32)
|
||||
# FASTCALL no or yes: set to yes to use register-based function protocol (yes)
|
||||
# OPTIMIZE SPACE, SPEED, or MAXSPEED: type of optimization (MAXSPEED)
|
||||
# POSTSCRIPT no or yes: set to yes for PostScript printing
|
||||
# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG for WIN32)
|
||||
# WINVER 0x0400 or 0x0500: minimum Win32 version to support (0x0400)
|
||||
# CSCOPE no or yes: include support for Cscope interface (yes)
|
||||
# NETBEANS no or yes: include support for Netbeans interface; also
|
||||
# requires CHANNEL (yes if GUI
|
||||
# is yes)
|
||||
# NBDEBUG no or yes: include support for debugging Netbeans interface (no)
|
||||
# CHANNEL no or yes: include support for inter process communication (yes
|
||||
# if GUI is yes)
|
||||
# XPM define to path to XPM dir to get support for loading XPM images.
|
||||
|
||||
### BOR: root of the BC installation
|
||||
!if ("$(BOR)"=="")
|
||||
BOR = c:\bc5
|
||||
!endif
|
||||
|
||||
### LINK: Name of the linker: ilink32 (this is below)
|
||||
|
||||
### GUI: yes for GUI version, no for console version
|
||||
!if ("$(GUI)"=="")
|
||||
GUI = yes
|
||||
!endif
|
||||
|
||||
### IME: yes for multibyte support, no to disable it.
|
||||
!if ("$(IME)"=="")
|
||||
IME = yes
|
||||
!endif
|
||||
!if ("$(DYNAMIC_IME)"=="")
|
||||
DYNAMIC_IME = yes
|
||||
!endif
|
||||
|
||||
### GETTEXT: yes for multilanguage support, no to disable it.
|
||||
!if ("$(GETTEXT)"=="")
|
||||
GETTEXT = yes
|
||||
!endif
|
||||
|
||||
### ICONV: yes to enable dynamic-iconv support, no to disable it
|
||||
!if ("$(ICONV)"=="")
|
||||
ICONV = yes
|
||||
!endif
|
||||
|
||||
### CSCOPE: yes to enable Cscope support, no to disable it
|
||||
!if ("$(CSCOPE)"=="")
|
||||
CSCOPE = yes
|
||||
!endif
|
||||
|
||||
### NETBEANS: yes to enable NetBeans interface support, no to disable it
|
||||
!if ("$(NETBEANS)"=="") && ("$(GUI)"=="yes")
|
||||
NETBEANS = yes
|
||||
!endif
|
||||
|
||||
### CHANNEL: yes to enable inter process communication, no to disable it
|
||||
!if ("$(CHANNEL)"=="") && ("$(GUI)"=="yes")
|
||||
CHANNEL = yes
|
||||
!endif
|
||||
|
||||
### LUA: uncomment this line if you want lua support in vim
|
||||
# LUA=c:\lua
|
||||
|
||||
### PERL: uncomment this line if you want perl support in vim
|
||||
# PERL=c:\perl
|
||||
|
||||
### PYTHON: uncomment this line if you want python support in vim
|
||||
# PYTHON=c:\python22
|
||||
|
||||
### PYTHON3: uncomment this line if you want python3 support in vim
|
||||
# PYTHON3=c:\python31
|
||||
|
||||
### RUBY: uncomment this line if you want ruby support in vim
|
||||
# RUBY=c:\ruby
|
||||
|
||||
### TCL: uncomment this line if you want tcl support in vim
|
||||
# TCL=c:\tcl
|
||||
|
||||
### OLE: no for normal gvim, yes for OLE-capable gvim (only works with GUI)
|
||||
#OLE = yes
|
||||
|
||||
### DEBUG: Uncomment to make an executable for debugging
|
||||
# DEBUG = yes
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
DEBUG_FLAG = -v
|
||||
!endif
|
||||
|
||||
### CODEGUARD: Uncomment to use the CODEGUARD stuff (BC 5.0 or later):
|
||||
# CODEGUARD = yes
|
||||
!if ("$(CODEGUARD)"=="yes")
|
||||
CODEGUARD_FLAG = -vG
|
||||
!endif
|
||||
|
||||
### CPUNR: set your target processor (3 to 6)
|
||||
!if ("$(CPUNR)" == "i386") || ("$(CPUNR)" == "3")
|
||||
CPUNR = 3
|
||||
!elif ("$(CPUNR)" == "i486") || ("$(CPUNR)" == "4")
|
||||
CPUNR = 4
|
||||
!elif ("$(CPUNR)" == "i586") || ("$(CPUNR)" == "5")
|
||||
CPUNR = 5
|
||||
!elif ("$(CPUNR)" == "i686") || ("$(CPUNR)" == "6")
|
||||
CPUNR = 6
|
||||
!else
|
||||
CPUNR = 3
|
||||
!endif
|
||||
|
||||
### Comment out to use precompiled headers (faster, but uses lots of disk!)
|
||||
HEADERS = -H -H=vim.csm -Hc
|
||||
|
||||
### USEDLL: no for statically linked version of run-time, yes for DLL runtime
|
||||
!if ("$(USEDLL)"=="")
|
||||
USEDLL = no
|
||||
!endif
|
||||
|
||||
### ALIGN: alignment you desire: (1,2 or 4: s/b 4 for Win32)
|
||||
!if ("$(ALIGN)"=="")
|
||||
ALIGN = 4
|
||||
!endif
|
||||
|
||||
### FASTCALL: yes to use FASTCALL calling convention (RECOMMENDED!), no otherwise
|
||||
# Incompatible when calling external functions (like MSVC-compiled DLLs), so
|
||||
# don't use FASTCALL when linking with external libs.
|
||||
!if ("$(FASTCALL)"=="") && \
|
||||
("$(LUA)"=="") && \
|
||||
("$(PYTHON)"=="") && \
|
||||
("$(PYTHON3)"=="") && \
|
||||
("$(PERL)"=="") && \
|
||||
("$(TCL)"=="") && \
|
||||
("$(RUBY)"=="") && \
|
||||
("$(ICONV)"!="yes") && \
|
||||
("$(IME)"!="yes") && \
|
||||
("$(XPM)"=="")
|
||||
FASTCALL = yes
|
||||
!endif
|
||||
|
||||
### OPTIMIZE: SPEED to optimize for speed, SPACE otherwise (SPEED RECOMMENDED)
|
||||
!if ("$(OPTIMIZE)"=="")
|
||||
OPTIMIZE = MAXSPEED
|
||||
!endif
|
||||
|
||||
### FEATURES: TINY, SMALL, NORMAL, BIG or HUGE (BIG for WIN32)
|
||||
!if ("$(FEATURES)"=="")
|
||||
FEATURES = BIG
|
||||
!endif
|
||||
|
||||
### POSTSCRIPT: uncomment this line if you want PostScript printing
|
||||
#POSTSCRIPT = yes
|
||||
|
||||
###
|
||||
# If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
|
||||
# default, use these lines.
|
||||
#VIMRCLOC = somewhere
|
||||
#VIMRUNTIMEDIR = somewhere
|
||||
|
||||
### Set the default $(WINVER) to make it work with Bcc 5.5.
|
||||
!ifndef WINVER
|
||||
WINVER = 0x0400
|
||||
!endif
|
||||
|
||||
#
|
||||
# Sanity checks for the above options:
|
||||
#
|
||||
|
||||
OSTYPE = WIN32
|
||||
|
||||
#
|
||||
# Optimizations: change as desired (RECOMMENDATION: Don't change!):
|
||||
#
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
OPT = -Od -N
|
||||
!else
|
||||
!if ("$(OPTIMIZE)"=="SPACE")
|
||||
OPT = -O1 -f- -d
|
||||
!elif ("$(OPTIMIZE)"=="MAXSPEED")
|
||||
OPT = -O2 -f- -d -Ocavi -O
|
||||
!else
|
||||
OPT = -O2 -f- -d -Oc -O
|
||||
!endif
|
||||
!if ("$(FASTCALL)"=="yes")
|
||||
OPT = $(OPT) -pr
|
||||
!endif
|
||||
!if ("$(CODEGUARD)"!="yes")
|
||||
OPT = $(OPT) -vi-
|
||||
!endif
|
||||
!endif
|
||||
# shouldn't have to change:
|
||||
LIB = $(BOR)\lib
|
||||
INCLUDE = $(BOR)\include;.;proto
|
||||
DEFINES = -DFEAT_$(FEATURES) -DWIN32 -DHAVE_PATHDEF \
|
||||
-DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
|
||||
|
||||
!ifdef LUA
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_LUA
|
||||
INCLUDE = $(LUA)\include;$(INCLUDE)
|
||||
! ifndef LUA_VER
|
||||
LUA_VER = 51
|
||||
! endif
|
||||
! if ("$(DYNAMIC_LUA)" == "yes")
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\"
|
||||
LUA_LIB_FLAG = /nodefaultlib:
|
||||
! endif
|
||||
!endif
|
||||
|
||||
!ifdef PERL
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PERL
|
||||
INCLUDE = $(PERL)\lib\core;$(INCLUDE)
|
||||
! ifndef PERL_VER
|
||||
PERL_VER = 56
|
||||
! endif
|
||||
! if ("$(DYNAMIC_PERL)" == "yes")
|
||||
! if ($(PERL_VER) > 55)
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
|
||||
PERL_LIB_FLAG = /nodefaultlib:
|
||||
! else
|
||||
! message "Cannot dynamically load Perl versions less than 5.6. Loading statically..."
|
||||
! endif
|
||||
! endif
|
||||
!endif
|
||||
|
||||
!ifdef PYTHON
|
||||
!ifdef PYTHON3
|
||||
DYNAMIC_PYTHON=yes
|
||||
DYNAMIC_PYTHON3=yes
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!ifdef PYTHON
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON
|
||||
!ifndef PYTHON_VER
|
||||
PYTHON_VER = 22
|
||||
!endif
|
||||
!if "$(DYNAMIC_PYTHON)" == "yes"
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
|
||||
PYTHON_LIB_FLAG = /nodefaultlib:
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!ifdef PYTHON3
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON3
|
||||
!ifndef PYTHON3_VER
|
||||
PYTHON3_VER = 31
|
||||
!endif
|
||||
!if "$(DYNAMIC_PYTHON3)" == "yes"
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python$(PYTHON3_VER).dll\"
|
||||
PYTHON3_LIB_FLAG = /nodefaultlib:
|
||||
!endif
|
||||
!endif
|
||||
|
||||
|
||||
!ifdef RUBY
|
||||
!ifndef RUBY_VER
|
||||
RUBY_VER = 16
|
||||
!endif
|
||||
!ifndef RUBY_VER_LONG
|
||||
RUBY_VER_LONG = 1.6
|
||||
!endif
|
||||
|
||||
!if "$(RUBY_VER)" == "16"
|
||||
!ifndef RUBY_PLATFORM
|
||||
RUBY_PLATFORM = i586-mswin32
|
||||
!endif
|
||||
!ifndef RUBY_INSTALL_NAME
|
||||
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
|
||||
!endif
|
||||
!else
|
||||
!ifndef RUBY_PLATFORM
|
||||
RUBY_PLATFORM = i386-mswin32
|
||||
!endif
|
||||
!ifndef RUBY_INSTALL_NAME
|
||||
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
|
||||
!endif
|
||||
!endif
|
||||
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_RUBY
|
||||
INCLUDE = $(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM);$(INCLUDE)
|
||||
|
||||
!if "$(DYNAMIC_RUBY)" == "yes"
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY_VER=$(RUBY_VER)
|
||||
RUBY_LIB_FLAG = /nodefaultlib:
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!ifdef TCL
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_TCL
|
||||
INCLUDE = $(TCL)\include;$(INCLUDE)
|
||||
!ifndef TCL_VER
|
||||
TCL_VER = 83
|
||||
!endif
|
||||
TCL_LIB = $(TCL)\lib\tcl$(TCL_VER).lib
|
||||
TCL_LIB_FLAG =
|
||||
!if "$(DYNAMIC_TCL)" == "yes"
|
||||
INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
|
||||
TCL_LIB = tclstub$(TCL_VER)-bor.lib
|
||||
TCL_LIB_FLAG =
|
||||
!endif
|
||||
!endif
|
||||
#
|
||||
# DO NOT change below:
|
||||
#
|
||||
CPUARG = -$(CPUNR)
|
||||
ALIGNARG = -a$(ALIGN)
|
||||
#
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
|
||||
!endif
|
||||
#
|
||||
!if ("$(OLE)"=="yes")
|
||||
DEFINES = $(DEFINES) -DFEAT_OLE
|
||||
!endif
|
||||
#
|
||||
!if ("$(IME)"=="yes")
|
||||
MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE_IME
|
||||
!if ("$(DYNAMIC_IME)" == "yes")
|
||||
MBDEFINES = $(MBDEFINES) -DDYNAMIC_IME
|
||||
!endif
|
||||
!endif
|
||||
!if ("$(ICONV)"=="yes")
|
||||
MBDEFINES = $(MBDEFINES) -DDYNAMIC_ICONV
|
||||
!endif
|
||||
!if ("$(GETTEXT)"=="yes")
|
||||
MBDEFINES = $(MBDEFINES) -DDYNAMIC_GETTEXT
|
||||
!endif
|
||||
|
||||
!if ("$(CSCOPE)"=="yes")
|
||||
DEFINES = $(DEFINES) -DFEAT_CSCOPE
|
||||
!endif
|
||||
|
||||
!if ("$(GUI)"=="yes")
|
||||
DEFINES = $(DEFINES) -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
TARGET = gvimd.exe
|
||||
!else
|
||||
TARGET = gvim.exe
|
||||
!endif
|
||||
EXETYPE=-W
|
||||
STARTUPOBJ = c0w32.obj
|
||||
LINK2 = -aa
|
||||
RESFILE = vim.res
|
||||
!else
|
||||
!undef NETBEANS
|
||||
!undef CHANNEL
|
||||
!undef XPM
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
TARGET = vimd.exe
|
||||
!else
|
||||
# for now, anyway: VIMDLL is only for the GUI version
|
||||
TARGET = vim.exe
|
||||
!endif
|
||||
EXETYPE=-WC
|
||||
STARTUPOBJ = c0x32.obj
|
||||
LINK2 = -ap -OS -o -P
|
||||
RESFILE = vim.res
|
||||
!endif
|
||||
|
||||
!if ("$(NETBEANS)"=="yes")
|
||||
!if ("$(CHANNEL)"!="yes")
|
||||
# cannot use Netbeans without CHANNEL
|
||||
NETBEANS = no
|
||||
!else
|
||||
DEFINES = $(DEFINES) -DFEAT_NETBEANS_INTG
|
||||
!if ("$(NBDEBUG)"=="yes")
|
||||
DEFINES = $(DEFINES) -DNBDEBUG
|
||||
NBDEBUG_DEP = nbdebug.h nbdebug.c
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if ("$(CHANNEL)"=="yes")
|
||||
DEFINES = $(DEFINES) -DFEAT_JOB_CHANNEL
|
||||
!endif
|
||||
|
||||
!ifdef XPM
|
||||
!if ("$(GUI)"=="yes")
|
||||
DEFINES = $(DEFINES) -DFEAT_XPM_W32
|
||||
INCLUDE = $(XPM)\include;$(INCLUDE)
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
DEFINES = $(DEFINES) -D_RTLDLL
|
||||
!endif
|
||||
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
OBJDIR = $(OSTYPE)\objdbg
|
||||
!else
|
||||
!if ("$(GUI)"=="yes")
|
||||
!if ("$(OLE)"=="yes")
|
||||
OBJDIR = $(OSTYPE)\oleobj
|
||||
!else
|
||||
OBJDIR = $(OSTYPE)\gobj
|
||||
!endif
|
||||
!else
|
||||
OBJDIR = $(OSTYPE)\obj
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if ("$(POSTSCRIPT)"=="yes")
|
||||
DEFINES = $(DEFINES) -DMSWINPS
|
||||
!endif
|
||||
|
||||
##### BASE COMPILER/TOOLS RULES #####
|
||||
MAKE = $(BOR)\bin\make
|
||||
CFLAGS = -w-aus -w-par -w-pch -w-ngu -w-csu -I$(INCLUDE)
|
||||
BRC = $(BOR)\BIN\brc32
|
||||
!if ("$(LINK)"=="")
|
||||
LINK = $(BOR)\BIN\ILink32
|
||||
!endif
|
||||
CC = $(BOR)\BIN\Bcc32
|
||||
LFLAGS = -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
|
||||
LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
|
||||
CFLAGS = $(CFLAGS) -d -RT- -k- -Oi $(HEADERS) -f-
|
||||
|
||||
CC1 = -c
|
||||
CC2 = -o
|
||||
CCARG = +$(OBJDIR)\bcc.cfg
|
||||
|
||||
# implicit rules:
|
||||
|
||||
# Without the following, the implicit rule in BUILTINS.MAK is picked up
|
||||
# for a rule for .c.obj rather than the local implicit rule
|
||||
.SUFFIXES
|
||||
.SUFFIXES .c .obj
|
||||
.path.c = .
|
||||
|
||||
{.}.c{$(OBJDIR)}.obj:
|
||||
$(CC) $(CCARG) $(CC1) -n$(OBJDIR)\ {$< }
|
||||
|
||||
.cpp.obj:
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ $*.cpp
|
||||
|
||||
vimmain = \
|
||||
$(OBJDIR)\os_w32exe.obj
|
||||
vimwinmain = \
|
||||
$(OBJDIR)\os_w32exe.obj
|
||||
|
||||
vimobj = \
|
||||
$(OBJDIR)\arabic.obj \
|
||||
$(OBJDIR)\autocmd.obj \
|
||||
$(OBJDIR)\blowfish.obj \
|
||||
$(OBJDIR)\buffer.obj \
|
||||
$(OBJDIR)\charset.obj \
|
||||
$(OBJDIR)\crypt.obj \
|
||||
$(OBJDIR)\crypt_zip.obj \
|
||||
$(OBJDIR)\debugger.obj \
|
||||
$(OBJDIR)\dict.obj \
|
||||
$(OBJDIR)\diff.obj \
|
||||
$(OBJDIR)\digraph.obj \
|
||||
$(OBJDIR)\edit.obj \
|
||||
$(OBJDIR)\eval.obj \
|
||||
$(OBJDIR)\evalfunc.obj \
|
||||
$(OBJDIR)\ex_cmds.obj \
|
||||
$(OBJDIR)\ex_cmds2.obj \
|
||||
$(OBJDIR)\ex_docmd.obj \
|
||||
$(OBJDIR)\ex_eval.obj \
|
||||
$(OBJDIR)\ex_getln.obj \
|
||||
$(OBJDIR)\fileio.obj \
|
||||
$(OBJDIR)\findfile.obj \
|
||||
$(OBJDIR)\fold.obj \
|
||||
$(OBJDIR)\getchar.obj \
|
||||
$(OBJDIR)\hardcopy.obj \
|
||||
$(OBJDIR)\hashtab.obj \
|
||||
$(OBJDIR)\indent.obj \
|
||||
$(OBJDIR)\insexpand.obj \
|
||||
$(OBJDIR)\json.obj \
|
||||
$(OBJDIR)\list.obj \
|
||||
$(OBJDIR)\main.obj \
|
||||
$(OBJDIR)\mark.obj \
|
||||
$(OBJDIR)\memfile.obj \
|
||||
$(OBJDIR)\memline.obj \
|
||||
$(OBJDIR)\menu.obj \
|
||||
$(OBJDIR)\message.obj \
|
||||
$(OBJDIR)\misc1.obj \
|
||||
$(OBJDIR)\misc2.obj \
|
||||
$(OBJDIR)\move.obj \
|
||||
$(OBJDIR)\mbyte.obj \
|
||||
$(OBJDIR)\normal.obj \
|
||||
$(OBJDIR)\ops.obj \
|
||||
$(OBJDIR)\option.obj \
|
||||
$(OBJDIR)\popupmnu.obj \
|
||||
$(OBJDIR)\quickfix.obj \
|
||||
$(OBJDIR)\regexp.obj \
|
||||
$(OBJDIR)\screen.obj \
|
||||
$(OBJDIR)\search.obj \
|
||||
$(OBJDIR)\sha256.obj \
|
||||
$(OBJDIR)\sign.obj \
|
||||
$(OBJDIR)\spell.obj \
|
||||
$(OBJDIR)\spellfile.obj \
|
||||
$(OBJDIR)\syntax.obj \
|
||||
$(OBJDIR)\tag.obj \
|
||||
$(OBJDIR)\term.obj \
|
||||
$(OBJDIR)\ui.obj \
|
||||
$(OBJDIR)\undo.obj \
|
||||
$(OBJDIR)\usercmd.obj \
|
||||
$(OBJDIR)\userfunc.obj \
|
||||
$(OBJDIR)\version.obj \
|
||||
$(OBJDIR)\window.obj \
|
||||
$(OBJDIR)\pathdef.obj
|
||||
|
||||
!if ("$(OLE)"=="yes")
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_ole.obj
|
||||
!endif
|
||||
|
||||
!ifdef LUA
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_lua.obj
|
||||
!endif
|
||||
|
||||
!ifdef PERL
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_perl.obj
|
||||
!endif
|
||||
|
||||
!ifdef PYTHON
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_python.obj
|
||||
!endif
|
||||
|
||||
!ifdef PYTHON3
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_python3.obj
|
||||
!endif
|
||||
|
||||
!ifdef RUBY
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_ruby.obj
|
||||
!endif
|
||||
|
||||
!ifdef TCL
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_tcl.obj
|
||||
!endif
|
||||
|
||||
!if ("$(CSCOPE)"=="yes")
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\if_cscope.obj
|
||||
!endif
|
||||
|
||||
!if ("$(NETBEANS)"=="yes")
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\netbeans.obj
|
||||
!endif
|
||||
|
||||
!if ("$(CHANNEL)"=="yes")
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\channel.obj
|
||||
!endif
|
||||
|
||||
!ifdef XPM
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\xpm_w32.obj
|
||||
!endif
|
||||
|
||||
!if ("$(GUI)"=="yes")
|
||||
vimobj = $(vimobj) \
|
||||
$(vimwinmain) \
|
||||
$(OBJDIR)\gui.obj \
|
||||
$(OBJDIR)\gui_beval.obj \
|
||||
$(OBJDIR)\gui_w32.obj
|
||||
!endif
|
||||
|
||||
vimobj = $(vimobj) \
|
||||
$(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj $(OBJDIR)\winclip.obj
|
||||
# Blab what we are going to do:
|
||||
MSG = Compiling $(OSTYPE) $(TARGET) $(OLETARGET), with:
|
||||
!if ("$(GUI)"=="yes")
|
||||
MSG = $(MSG) GUI
|
||||
!endif
|
||||
!if ("$(OLE)"=="yes")
|
||||
MSG = $(MSG) OLE
|
||||
!endif
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
MSG = $(MSG) USEDLL
|
||||
!endif
|
||||
!if ("$(FASTCALL)"=="yes")
|
||||
MSG = $(MSG) FASTCALL
|
||||
!endif
|
||||
!if ("$(IME)"=="yes")
|
||||
MSG = $(MSG) IME
|
||||
! if "$(DYNAMIC_IME)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
!if ("$(GETTEXT)"=="yes")
|
||||
MSG = $(MSG) GETTEXT
|
||||
!endif
|
||||
!if ("$(ICONV)"=="yes")
|
||||
MSG = $(MSG) ICONV
|
||||
!endif
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
MSG = $(MSG) DEBUG
|
||||
!endif
|
||||
!if ("$(CODEGUARD)"=="yes")
|
||||
MSG = $(MSG) CODEGUARD
|
||||
!endif
|
||||
!if ("$(CSCOPE)"=="yes")
|
||||
MSG = $(MSG) CSCOPE
|
||||
!endif
|
||||
!if ("$(NETBEANS)"=="yes")
|
||||
MSG = $(MSG) NETBEANS
|
||||
!endif
|
||||
!if ("$(CHANNEL)"=="yes")
|
||||
MSG = $(MSG) CHANNEL
|
||||
!endif
|
||||
!ifdef XPM
|
||||
MSG = $(MSG) XPM
|
||||
!endif
|
||||
!ifdef LUA
|
||||
MSG = $(MSG) LUA
|
||||
! if "$(DYNAMIC_LUA)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
!ifdef PERL
|
||||
MSG = $(MSG) PERL
|
||||
! if "$(DYNAMIC_PERL)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
!ifdef PYTHON
|
||||
MSG = $(MSG) PYTHON
|
||||
! if "$(DYNAMIC_PYTHON)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
!ifdef PYTHON3
|
||||
MSG = $(MSG) PYTHON3
|
||||
! if "$(DYNAMIC_PYTHON3)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
!ifdef RUBY
|
||||
MSG = $(MSG) RUBY
|
||||
! if "$(DYNAMIC_RUBY)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
!ifdef TCL
|
||||
MSG = $(MSG) TCL
|
||||
! if "$(DYNAMIC_TCL)" == "yes"
|
||||
MSG = $(MSG)(dynamic)
|
||||
! endif
|
||||
!endif
|
||||
MSG = $(MSG) cpu=$(CPUARG)
|
||||
MSG = $(MSG) Align=$(ALIGNARG)
|
||||
|
||||
!message $(MSG)
|
||||
|
||||
TARGETS = $(TARGETS) $(TARGET)
|
||||
|
||||
# Targets:
|
||||
all: vim vimrun.exe install.exe xxd uninstal.exe GvimExt/gvimext.dll
|
||||
|
||||
vim: $(OSTYPE) $(OBJDIR) $(OBJDIR)\bcc.cfg $(TARGETS)
|
||||
@if exist $(OBJDIR)\version.obj del $(OBJDIR)\version.obj
|
||||
@if exist auto\pathdef.c del auto\pathdef.c
|
||||
|
||||
$(OSTYPE):
|
||||
-@md $(OSTYPE)
|
||||
|
||||
$(OBJDIR):
|
||||
-@md $(OBJDIR)
|
||||
|
||||
xxd:
|
||||
@cd xxd
|
||||
$(MAKE) /f Make_bc5.mak BOR="$(BOR)" BCC="$(CC)"
|
||||
@cd ..
|
||||
|
||||
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
|
||||
cd GvimExt
|
||||
$(MAKE) /f Make_bc5.mak USEDLL=$(USEDLL) BOR=$(BOR)
|
||||
cd ..
|
||||
|
||||
install.exe: dosinst.c $(OBJDIR)\bcc.cfg
|
||||
$(CC) $(CCARG) -WC -DWIN32 -einstall dosinst.c
|
||||
|
||||
uninstal.exe: uninstal.c $(OBJDIR)\bcc.cfg
|
||||
$(CC) $(CCARG) -WC -DWIN32 -O2 -euninstal uninstal.c
|
||||
|
||||
clean:
|
||||
!if "$(OS)" == "Windows_NT"
|
||||
# For Windows NT/2000, doesn't work on Windows 95/98...
|
||||
# $(COMSPEC) needed to ensure rmdir.exe is not run
|
||||
-@$(COMSPEC) /C rmdir /Q /S $(OBJDIR)
|
||||
!else
|
||||
# For Windows 95/98, doesn't work on Windows NT/2000...
|
||||
-@deltree /y $(OBJDIR)
|
||||
!endif
|
||||
-@del *.res
|
||||
-@del vim32*.dll
|
||||
-@del vim32*.lib
|
||||
-@del *vim*.exe
|
||||
-@del *install*.exe
|
||||
-@del *.csm
|
||||
-@del *.map
|
||||
-@del *.ilc
|
||||
-@del *.ild
|
||||
-@del *.ilf
|
||||
-@del *.ils
|
||||
-@del *.tds
|
||||
!ifdef LUA
|
||||
-@del lua.lib
|
||||
!endif
|
||||
!ifdef PERL
|
||||
-@del perl.lib
|
||||
-@del if_perl.c
|
||||
-@del auto\if_perl.c
|
||||
!endif
|
||||
!ifdef PYTHON
|
||||
-@del python.lib
|
||||
!endif
|
||||
!ifdef PYTHON3
|
||||
-@del python3.lib
|
||||
!endif
|
||||
!ifdef RUBY
|
||||
-@del ruby.lib
|
||||
!endif
|
||||
!ifdef TCL
|
||||
-@del tcl.lib
|
||||
!endif
|
||||
!ifdef XPM
|
||||
-@del xpm.lib
|
||||
!endif
|
||||
cd xxd
|
||||
$(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
|
||||
cd ..
|
||||
cd GvimExt
|
||||
$(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
|
||||
cd ..
|
||||
|
||||
|
||||
$(TARGET): $(OBJDIR) $(vimobj) $(OBJDIR)\$(RESFILE)
|
||||
$(LINK) @&&|
|
||||
$(LFLAGS) +
|
||||
$(STARTUPOBJ) +
|
||||
$(vimobj)
|
||||
$<,$*
|
||||
!if ("$(CODEGUARD)"=="yes")
|
||||
cg32.lib+
|
||||
!endif
|
||||
# $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE
|
||||
ole2w32.lib +
|
||||
import32.lib+
|
||||
!ifdef LUA
|
||||
$(LUA_LIB_FLAG)lua.lib+
|
||||
!endif
|
||||
!ifdef PERL
|
||||
$(PERL_LIB_FLAG)perl.lib+
|
||||
!endif
|
||||
!ifdef PYTHON
|
||||
$(PYTHON_LIB_FLAG)python.lib+
|
||||
!endif
|
||||
!ifdef PYTHON3
|
||||
$(PYTHON3_LIB_FLAG)python3.lib+
|
||||
!endif
|
||||
!ifdef RUBY
|
||||
$(RUBY_LIB_FLAG)ruby.lib+
|
||||
!endif
|
||||
!ifdef TCL
|
||||
$(TCL_LIB_FLAG)tcl.lib+
|
||||
!endif
|
||||
!ifdef XPM
|
||||
xpm.lib+
|
||||
!endif
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
cw32i.lib
|
||||
!else
|
||||
cw32.lib
|
||||
!endif
|
||||
|
||||
$(OBJDIR)\$(RESFILE)
|
||||
|
|
||||
|
||||
test:
|
||||
cd testdir
|
||||
$(MAKE) /NOLOGO -f Make_dos.mak win32
|
||||
cd ..
|
||||
|
||||
$(OBJDIR)\ex_docmd.obj: ex_docmd.c ex_cmds.h
|
||||
|
||||
$(OBJDIR)\ex_eval.obj: ex_eval.c ex_cmds.h
|
||||
|
||||
$(OBJDIR)\if_ole.obj: if_ole.cpp
|
||||
|
||||
$(OBJDIR)\if_lua.obj: if_lua.c lua.lib
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_lua.c
|
||||
|
||||
$(OBJDIR)\if_perl.obj: auto/if_perl.c perl.lib
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc auto/if_perl.c
|
||||
|
||||
auto/if_perl.c: if_perl.xs typemap
|
||||
$(PERL)\bin\perl.exe $(PERL)\lib\ExtUtils\xsubpp -prototypes -typemap \
|
||||
$(PERL)\lib\ExtUtils\typemap if_perl.xs -output $@
|
||||
|
||||
$(OBJDIR)\if_python.obj: if_python.c if_py_both.h python.lib
|
||||
$(CC) -I$(PYTHON)\include $(CCARG) $(CC1) $(CC2)$@ -pc if_python.c
|
||||
|
||||
$(OBJDIR)\if_python3.obj: if_python3.c if_py_both.h python3.lib
|
||||
$(CC) -I$(PYTHON3)\include $(CCARG) $(CC1) $(CC2)$@ -pc if_python3.c
|
||||
|
||||
$(OBJDIR)\if_ruby.obj: if_ruby.c ruby.lib
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_ruby.c
|
||||
|
||||
$(OBJDIR)\if_tcl.obj: if_tcl.c tcl.lib
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_tcl.c
|
||||
|
||||
$(OBJDIR)\xpm_w32.obj: xpm_w32.c xpm.lib
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc xpm_w32.c
|
||||
|
||||
$(OBJDIR)\netbeans.obj: netbeans.c $(NBDEBUG_DEP)
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ netbeans.c
|
||||
|
||||
$(OBJDIR)\channel.obj: channel.c
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ channel.c
|
||||
|
||||
$(OBJDIR)\vim.res: vim.rc version.h tools.bmp tearoff.bmp \
|
||||
vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
|
||||
$(BRC) -fo$(OBJDIR)\vim.res -i $(BOR)\include -w32 -r vim.rc @&&|
|
||||
$(DEFINES)
|
||||
|
|
||||
|
||||
$(OBJDIR)\pathdef.obj: auto\pathdef.c
|
||||
$(CC) $(CCARG) $(CC1) $(CC2)$@ auto\pathdef.c
|
||||
|
||||
|
||||
# Need to escape both quotes and backslashes in $INTERP_DEFINES
|
||||
INTERP_DEFINES_ESC_BKS=$(INTERP_DEFINES:\=\\)
|
||||
INTERP_DEFINES_ESC=$(INTERP_DEFINES_ESC_BKS:"=\")
|
||||
|
||||
# Note: the silly /*"*/ below are there to trick make into accepting
|
||||
# the # character as something other than a comment without messing up
|
||||
# the preprocessor directive.
|
||||
auto\pathdef.c::
|
||||
-@md auto
|
||||
@echo creating auto/pathdef.c
|
||||
@copy /y &&|
|
||||
/* pathdef.c */
|
||||
/*"*/#include "vim.h"/*"*/
|
||||
|
||||
char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)";
|
||||
char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)";
|
||||
char_u *all_cflags = (char_u *)"$(CC:\=\\) $(CFLAGS:\=\\) $(DEFINES) $(MBDEFINES) $(INTERP_DEFINES_ESC) $(OPT) $(EXETYPE) $(CPUARG) $(ALIGNARG) $(DEBUG_FLAG) $(CODEGUARD_FLAG)";
|
||||
char_u *all_lflags = (char_u *)"$(LINK:\=\\) $(LFLAGS:\=\\)";
|
||||
char_u *compiled_user = (char_u *)"$(USERNAME)";
|
||||
char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";
|
||||
| auto\pathdef.c
|
||||
|
||||
lua.lib: $(LUA)\lib\lua$(LUA_VER).lib
|
||||
coff2omf $(LUA)\lib\lua$(LUA_VER).lib $@
|
||||
|
||||
perl.lib: $(PERL)\lib\CORE\perl$(PERL_VER).lib
|
||||
coff2omf $(PERL)\lib\CORE\perl$(PERL_VER).lib $@
|
||||
|
||||
python.lib: $(PYTHON)\libs\python$(PYTHON_VER).lib
|
||||
coff2omf $(PYTHON)\libs\python$(PYTHON_VER).lib $@
|
||||
|
||||
python3.lib: $(PYTHON3)\libs\python$(PYTHON3_VER).lib
|
||||
coff2omf $(PYTHON3)\libs\python$(PYTHON3_VER).lib $@
|
||||
|
||||
ruby.lib: $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib
|
||||
coff2omf $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib $@
|
||||
|
||||
# For some reason, the coff2omf method doesn't work on libXpm.lib, so
|
||||
# we have to manually generate an import library straight from the DLL.
|
||||
xpm.lib: $(XPM)\lib\libXpm.lib
|
||||
implib -a $@ $(XPM)\bin\libXpm.dll
|
||||
|
||||
tcl.lib: $(TCL_LIB)
|
||||
!if ("$(DYNAMIC_TCL)" == "yes")
|
||||
copy $(TCL_LIB) $@
|
||||
!else
|
||||
coff2omf $(TCL_LIB) $@
|
||||
!endif
|
||||
|
||||
!if ("$(DYNAMIC_TCL)" == "yes")
|
||||
tclstub$(TCL_VER)-bor.lib:
|
||||
-@IF NOT EXIST $@ ECHO You must download tclstub$(TCL_VER)-bor.lib separately and\
|
||||
place it in the src directory in order to compile a dynamic TCL-enabled\
|
||||
(g)vim with the Borland compiler. You can get the tclstub$(TCL_VER)-bor.lib file\
|
||||
at http://mywebpage.netscape.com/sharppeople/vim/tclstub$(TCL_VER)-bor.lib
|
||||
!endif
|
||||
|
||||
# vimrun.exe:
|
||||
vimrun.exe: vimrun.c
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
$(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) -D_RTLDLL vimrun.c cw32mti.lib
|
||||
!else
|
||||
$(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) vimrun.c
|
||||
!endif
|
||||
|
||||
# The dependency on $(OBJDIR) is to have bcc.cfg generated each time.
|
||||
$(OBJDIR)\bcc.cfg: Make_bc5.mak $(OBJDIR)
|
||||
copy /y &&|
|
||||
$(CFLAGS)
|
||||
-L$(LIB)
|
||||
$(DEFINES)
|
||||
$(MBDEFINES)
|
||||
$(INTERP_DEFINES)
|
||||
$(EXETYPE)
|
||||
$(DEBUG_FLAG)
|
||||
$(OPT)
|
||||
$(CODEGUARD_FLAG)
|
||||
$(CPUARG)
|
||||
$(ALIGNARG)
|
||||
| $@
|
||||
|
||||
# vi:set sts=4 sw=4:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user