mirror of
https://github.com/zoriya/vim.git
synced 2025-12-10 09:16:16 +00:00
Compare commits
323 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e4cc9671c | ||
|
|
a62372be1f | ||
|
|
4ed124cc6c | ||
|
|
33e3346322 | ||
|
|
81a4cf469a | ||
|
|
ba7c0d7b4c | ||
|
|
96f8f499ce | ||
|
|
4507f6ada5 | ||
|
|
29a86ffee7 | ||
|
|
f842cd9e28 | ||
|
|
64075b0ab1 | ||
|
|
8e9be208ea | ||
|
|
c3516f7e45 | ||
|
|
6defa7bf0a | ||
|
|
57ad94c5a9 | ||
|
|
1c6737b20a | ||
|
|
9c929713b7 | ||
|
|
e83cca2911 | ||
|
|
44d6652d56 | ||
|
|
9bd5d879c2 | ||
|
|
c98cdb3bc9 | ||
|
|
63969ef07e | ||
|
|
418155def2 | ||
|
|
ad30470610 | ||
|
|
707be5f352 | ||
|
|
30d6413782 | ||
|
|
3986b94b09 | ||
|
|
d2c617055a | ||
|
|
2f3cd2e4ec | ||
|
|
8a0dcf4330 | ||
|
|
4140c4f3ff | ||
|
|
7c27f337bf | ||
|
|
401f0c0798 | ||
|
|
4b9bd692bd | ||
|
|
fcb6d7082d | ||
|
|
30788d3d37 | ||
|
|
597aaac9d2 | ||
|
|
fa2e38df76 | ||
|
|
a5a40c5696 | ||
|
|
ed6a430fae | ||
|
|
a48f786787 | ||
|
|
7918238528 | ||
|
|
15183b41c4 | ||
|
|
636c5d5399 | ||
|
|
04637e243d | ||
|
|
b02628b8a2 | ||
|
|
d217a87755 | ||
|
|
c08cc72947 | ||
|
|
036c2cf719 | ||
|
|
2df4731042 | ||
|
|
44b4a246b6 | ||
|
|
59941cbd80 | ||
|
|
2ce14589f2 | ||
|
|
8b5866ded6 | ||
|
|
7dfc5ce7cf | ||
|
|
86394aa972 | ||
|
|
cf8aa6448b | ||
|
|
e2e4075fad | ||
|
|
24f7750ffa | ||
|
|
c05d1c043a | ||
|
|
fe136c9a85 | ||
|
|
b936b79424 | ||
|
|
077cc7aa0e | ||
|
|
eadee486c7 | ||
|
|
fe6dce8739 | ||
|
|
fa57335e53 | ||
|
|
eb24556df3 | ||
|
|
18eedfa40b | ||
|
|
7ca86fe8dc | ||
|
|
1f42f5a675 | ||
|
|
a60053b8f4 | ||
|
|
5b5aa11801 | ||
|
|
62f93f4ec9 | ||
|
|
04d594b9c1 | ||
|
|
6c553f9c04 | ||
|
|
f966ce5ea2 | ||
|
|
5892ea1511 | ||
|
|
67ff97ded7 | ||
|
|
551d25e765 | ||
|
|
119f557230 | ||
|
|
9d8bfae50f | ||
|
|
a5d3841177 | ||
|
|
4da7a259f6 | ||
|
|
6efa46f4ef | ||
|
|
4488f5a545 | ||
|
|
e90d63ea90 | ||
|
|
4ad739fc05 | ||
|
|
6f84b6db10 | ||
|
|
3767e3a330 | ||
|
|
81fcb67fb3 | ||
|
|
9c2b06637b | ||
|
|
ca563b9b94 | ||
|
|
2f1228463a | ||
|
|
997cd1a17f | ||
|
|
39f7aa3c31 | ||
|
|
7d6979608e | ||
|
|
07e87e9eb5 | ||
|
|
2c93c685e3 | ||
|
|
64f37d3090 | ||
|
|
8b565c2c15 | ||
|
|
02aaad9109 | ||
|
|
ca774f6753 | ||
|
|
0b8cf278ec | ||
|
|
02c037a4be | ||
|
|
cd80006ecb | ||
|
|
76603baac5 | ||
|
|
207f009326 | ||
|
|
0b39c3fd4c | ||
|
|
25859dd74c | ||
|
|
a5639848cc | ||
|
|
95006e3dca | ||
|
|
98945560c1 | ||
|
|
e3d4685f1f | ||
|
|
423a85a11a | ||
|
|
b06a6d59d1 | ||
|
|
4e4473c927 | ||
|
|
08aac3c619 | ||
|
|
ee8580e52e | ||
|
|
6a950581da | ||
|
|
2566054a7f | ||
|
|
7a3330fc57 | ||
|
|
5163fcce79 | ||
|
|
749639ec72 | ||
|
|
3988f64f9d | ||
|
|
601e76ac3c | ||
|
|
228e62975e | ||
|
|
6e3aeec846 | ||
|
|
2e0866128b | ||
|
|
b9fc192f92 | ||
|
|
c8ec5fe56f | ||
|
|
07399e7f07 | ||
|
|
b3ea36c5bc | ||
|
|
c2af0afff5 | ||
|
|
2e80095501 | ||
|
|
6c53fca023 | ||
|
|
430deb1945 | ||
|
|
8436773fad | ||
|
|
dc0cf1db3e | ||
|
|
0981c8729e | ||
|
|
69e44552c5 | ||
|
|
cd94277f72 | ||
|
|
5390099a97 | ||
|
|
9943b3d979 | ||
|
|
c63b72b6dc | ||
|
|
51b6eb47b3 | ||
|
|
d70840ed68 | ||
|
|
1b04ce2d40 | ||
|
|
7cb6fc29d0 | ||
|
|
81e17fbe00 | ||
|
|
122616d9c1 | ||
|
|
3fc71285d5 | ||
|
|
5d72ce69c8 | ||
|
|
ec65d77fa2 | ||
|
|
733d259a83 | ||
|
|
17f67547f3 | ||
|
|
b8a9296ced | ||
|
|
df2524bbb4 | ||
|
|
825b54415f | ||
|
|
fc2a47ffc4 | ||
|
|
20b23c6358 | ||
|
|
66250c932e | ||
|
|
93ad14710b | ||
|
|
191929b182 | ||
|
|
9dc1917f42 | ||
|
|
a7c4e74763 | ||
|
|
f8abbf37d6 | ||
|
|
af8822ce08 | ||
|
|
9b02d64cff | ||
|
|
165036ddba | ||
|
|
aeb2bdd0de | ||
|
|
3affe7a6c6 | ||
|
|
e15eebd202 | ||
|
|
1d634542cf | ||
|
|
558813314d | ||
|
|
f39397e515 | ||
|
|
aa9675a61d | ||
|
|
36967b32fd | ||
|
|
624b6eaf20 | ||
|
|
021bda5671 | ||
|
|
7b22117c4e | ||
|
|
241572794f | ||
|
|
c0f8823ee4 | ||
|
|
0aae4809fd | ||
|
|
f923571ec1 | ||
|
|
e5abf7af08 | ||
|
|
cc673e746a | ||
|
|
56acb0943e | ||
|
|
829ac868b7 | ||
|
|
ed5918771f | ||
|
|
11107bab7e | ||
|
|
3d1cde8a2f | ||
|
|
e3c37d8ebf | ||
|
|
451c2e3536 | ||
|
|
53b29e4845 | ||
|
|
9a5c553f79 | ||
|
|
793dcc540d | ||
|
|
1623619119 | ||
|
|
d1103587cf | ||
|
|
79e8db9a21 | ||
|
|
8de2f44ac6 | ||
|
|
8d56622944 | ||
|
|
41fab3eac8 | ||
|
|
7d6997015d | ||
|
|
32a23ac615 | ||
|
|
4ac97f4761 | ||
|
|
32f335f75c | ||
|
|
7517ffdbb5 | ||
|
|
c4ce36d486 | ||
|
|
bc4c505166 | ||
|
|
cdd70f09a5 | ||
|
|
be7529e889 | ||
|
|
c771908681 | ||
|
|
16c6232cad | ||
|
|
b96a32ef1a | ||
|
|
7ac616cb0a | ||
|
|
c9edd6b582 | ||
|
|
66e0014ba6 | ||
|
|
418f1df547 | ||
|
|
fd77748df2 | ||
|
|
ba60cc45e7 | ||
|
|
6d91bcb4d2 | ||
|
|
c3d6e8a46a | ||
|
|
db199216e8 | ||
|
|
17a836cbee | ||
|
|
ed677f5587 | ||
|
|
7c5ad34878 | ||
|
|
a177344dc0 | ||
|
|
575f24b3f3 | ||
|
|
040f975fc1 | ||
|
|
035d6e91bd | ||
|
|
097148e849 | ||
|
|
4301a729ea | ||
|
|
f7c4d83609 | ||
|
|
59eccb92e3 | ||
|
|
8294d49937 | ||
|
|
efb6482949 | ||
|
|
3e06a1e2a8 | ||
|
|
6f8f7337c1 | ||
|
|
bf61fdd008 | ||
|
|
94f4ffa770 | ||
|
|
6e4cfffe80 | ||
|
|
a9a47d157a | ||
|
|
7f7a888869 | ||
|
|
1e91eafc2e | ||
|
|
64d662d5fc | ||
|
|
127542bceb | ||
|
|
a1b9b0cc01 | ||
|
|
a7cc9e697b | ||
|
|
b3ca982407 | ||
|
|
3896a105eb | ||
|
|
94f6c06ac5 | ||
|
|
62a232506d | ||
|
|
730b248339 | ||
|
|
efa94447e8 | ||
|
|
daa2f36573 | ||
|
|
4a6d1b660f | ||
|
|
5a849da57c | ||
|
|
98b4f145eb | ||
|
|
2dd0a2c39a | ||
|
|
b7f4fa5177 | ||
|
|
bf8feb5aeb | ||
|
|
fa211f3c6d | ||
|
|
1c199f9c70 | ||
|
|
74d95b5b58 | ||
|
|
dd29f1b056 | ||
|
|
e7b1ea0276 | ||
|
|
95dd9f2571 | ||
|
|
994b89d28d | ||
|
|
de6804d871 | ||
|
|
8ce4b7ed85 | ||
|
|
9470a4d88a | ||
|
|
8e1986e389 | ||
|
|
56b8dc331d | ||
|
|
3d945cc925 | ||
|
|
ae95a3946b | ||
|
|
bbd3e3c357 | ||
|
|
b8d732e93e | ||
|
|
803af686e2 | ||
|
|
c5da1fb7ea | ||
|
|
a71e263320 | ||
|
|
f9b2b49663 | ||
|
|
fdac71c507 | ||
|
|
3c1c9fd94b | ||
|
|
c753478b82 | ||
|
|
14ddd226da | ||
|
|
ff1cd39cfe | ||
|
|
b4caa163ff | ||
|
|
a6296200bd | ||
|
|
bb1b5e24ec | ||
|
|
282f9c64e5 | ||
|
|
e46a2ed0d8 | ||
|
|
ecd34bf55d | ||
|
|
6a25026262 | ||
|
|
f96e9dec63 | ||
|
|
8314454648 | ||
|
|
434d72cbf2 | ||
|
|
658217276f | ||
|
|
7226e5b19b | ||
|
|
c2ee44cc38 | ||
|
|
aa970abd0a | ||
|
|
8b89614e69 | ||
|
|
ad486a0f0d | ||
|
|
bcbf41395f | ||
|
|
b9a2cac3ef | ||
|
|
eef2102e20 | ||
|
|
e4218b9416 | ||
|
|
909443028b | ||
|
|
491799be50 | ||
|
|
f8992d47cd | ||
|
|
2c79e9d14d | ||
|
|
333894b195 | ||
|
|
f5a48010ef | ||
|
|
2ec208172c | ||
|
|
b86abadf87 | ||
|
|
2caa1594e7 | ||
|
|
8e4c8c853e | ||
|
|
586268721d | ||
|
|
af50e899e7 | ||
|
|
4e1d8bd79b | ||
|
|
b53da7918c | ||
|
|
af8edbb8dc | ||
|
|
ce6583568f | ||
|
|
badd8486f7 |
@@ -11,6 +11,9 @@ freebsd_12_task:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC}
|
||||
- src/vim --version
|
||||
test_script:
|
||||
- make test
|
||||
- src/vim --version
|
||||
# run tests as user "cirrus" instead of root
|
||||
- pw useradd cirrus -m
|
||||
- chown -R cirrus:cirrus .
|
||||
- sudo -u cirrus make test
|
||||
|
||||
92
.github/CODEOWNERS
vendored
Normal file
92
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
# Lines starting with '#' are comments.
|
||||
# Each line is a file pattern followed by one or more owners.
|
||||
# You can use github users with @user or email addresses
|
||||
|
||||
# These owners will be the default owners for everything in the repo.
|
||||
* @brammool
|
||||
|
||||
# Order is important. The last matching pattern has the most precedence.
|
||||
# So if a pull request only touches javascript files, only these owners
|
||||
# will be requested to review.
|
||||
|
||||
src/libvterm/* @leonerd
|
||||
|
||||
runtime/autoload/getscript.vim @cecamp
|
||||
runtime/autoload/netrw.vim @cecamp
|
||||
runtime/autoload/netrwFileHandlers.vim @cecamp
|
||||
runtime/autoload/netrwSettings.vim @cecamp
|
||||
runtime/autoload/tar.vim @cecamp
|
||||
runtime/autoload/vimball.vim @cecamp
|
||||
runtime/autoload/zip.vim @cecamp
|
||||
runtime/compiler/checkstyle.vim @dkearns
|
||||
runtime/compiler/dart.vim @dkearns
|
||||
runtime/compiler/dart2js.vim @dkearns
|
||||
runtime/compiler/dart2native.vim @dkearns
|
||||
runtime/compiler/dartanalyser.vim @dkearns
|
||||
runtime/compiler/dartdevc.vim @dkearns
|
||||
runtime/compiler/dartdoc.vim @dkearns
|
||||
runtime/compiler/dartfmt.vim @dkearns
|
||||
runtime/compiler/eruby.vim @dkearns
|
||||
runtime/compiler/gawk.vim @dkearns
|
||||
runtime/compiler/gjs.vim @dkearns
|
||||
runtime/compiler/javac.vim @dkearns
|
||||
runtime/compiler/jest.vim @dkearns
|
||||
runtime/compiler/jjs.vim @dkearns
|
||||
runtime/compiler/jshint.vim @dkearns
|
||||
runtime/compiler/jsonlint.vim @dkearns
|
||||
runtime/compiler/php.vim @dkearns
|
||||
runtime/compiler/rhino.vim @dkearns
|
||||
runtime/compiler/rubocop.vim @dkearns
|
||||
runtime/compiler/rubyunit.vim @dkearns
|
||||
runtime/compiler/se.vim @dkearns
|
||||
runtime/compiler/stylelint.vim @dkearns
|
||||
runtime/compiler/tcl.vim @dkearns
|
||||
runtime/compiler/tidy.vim @dkearns
|
||||
runtime/compiler/ts-node.vim @dkearns
|
||||
runtime/compiler/tsc.vim @dkearns
|
||||
runtime/compiler/typedoc.vim @dkearns
|
||||
runtime/compiler/xmllint.vim @dkearns
|
||||
runtime/compiler/xo.vim @dkearns
|
||||
runtime/doc/pi_getscript.txt @cecamp
|
||||
runtime/doc/pi_logipat.txt @cecamp
|
||||
runtime/doc/pi_netrw.txt @cecamp
|
||||
runtime/doc/pi_tar.txt @cecamp
|
||||
runtime/doc/pi_vimball.txt @cecamp
|
||||
runtime/doc/pi_zip.txt @cecamp
|
||||
runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/typescript.vim @dkearns
|
||||
runtime/ftplugin/typescriptreact.vim @dkearns
|
||||
runtime/plugin/amiga.vim @cecamp
|
||||
runtime/plugin/csh.vim @cecamp
|
||||
runtime/plugin/dcl.vim @cecamp
|
||||
runtime/plugin/exports.vim @cecamp
|
||||
runtime/plugin/getscriptPlugin.vim @cecamp
|
||||
runtime/plugin/lex.vim @cecamp
|
||||
runtime/plugin/lisp.vim @cecamp
|
||||
runtime/plugin/logiPat.vim @cecamp
|
||||
runtime/plugin/maple.vim @cecamp
|
||||
runtime/plugin/netrw.vim @cecamp
|
||||
runtime/plugin/netrwPlugin.vim @cecamp
|
||||
runtime/plugin/rpcgen.vim @cecamp
|
||||
runtime/plugin/sh.vim @cecamp
|
||||
runtime/plugin/sm.vim @cecamp
|
||||
runtime/plugin/tags.vim @cecamp
|
||||
runtime/plugin/tarPlugin.vim @cecamp
|
||||
runtime/plugin/tex.vim @cecamp
|
||||
runtime/plugin/vim.vim @cecamp
|
||||
runtime/plugin/vimballPlugin.vim @cecamp
|
||||
runtime/plugin/wlmfilt.vim @cecamp
|
||||
runtime/plugin/xmath.vim @cecamp
|
||||
runtime/plugin/xxd.vim @cecamp
|
||||
runtime/plugin/yacc.vim @cecamp
|
||||
runtime/plugin/zipPlugin.vim @cecamp
|
||||
runtime/syntax/lynx.vim @dkearns
|
||||
runtime/syntax/mailcap.vim @dkearns
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
runtime/syntax/ruby.vim @dkearns
|
||||
runtime/syntax/tidy.vim @dkearns
|
||||
runtime/syntax/wget.vim @dkearns
|
||||
runtime/syntax/xbl.vim @dkearns
|
||||
19
.github/workflows/ci-windows.yaml
vendored
19
.github/workflows/ci-windows.yaml
vendored
@@ -127,6 +127,11 @@ jobs:
|
||||
)
|
||||
goto :eof
|
||||
|
||||
- name: Copy src directory to src2
|
||||
shell: cmd
|
||||
run: |
|
||||
xcopy src src2\ /E > nul
|
||||
|
||||
- name: Build (MSVC)
|
||||
if: matrix.toolchain == 'msvc'
|
||||
shell: cmd
|
||||
@@ -196,10 +201,6 @@ jobs:
|
||||
echo %COL_GREEN%vim version:%COL_RESET%
|
||||
.\vim --version || exit 1
|
||||
|
||||
mkdir ..\src2
|
||||
xcopy testdir ..\src2\testdir\ /E > nul || exit 1
|
||||
copy evalfunc.c ..\src2 > nul
|
||||
|
||||
echo %COL_GREEN%Start testing vim in background.%COL_RESET%
|
||||
start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak VIMPROG=..\..\src\vim > nul & echo done>done.txt"
|
||||
|
||||
@@ -210,14 +211,18 @@ jobs:
|
||||
|
||||
echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
|
||||
cd ..\src2\testdir
|
||||
:: Wait about 5 minutes.
|
||||
for /L %%i in (1,1,300) do (
|
||||
:: Wait about 10 minutes.
|
||||
for /L %%i in (1,1,600) do (
|
||||
if exist done.txt goto exitloop
|
||||
ping -n 2 localhost > nul
|
||||
)
|
||||
echo %COL_RED%Timed out.%COL_RESET%
|
||||
set timeout=1
|
||||
:exitloop
|
||||
|
||||
echo %COL_GREEN%Test results of vim:%COL_RESET%
|
||||
if exist messages type messages
|
||||
nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1
|
||||
if "%timeout%"=="1" (
|
||||
echo %COL_RED%Timed out.%COL_RESET%
|
||||
exit 1
|
||||
)
|
||||
|
||||
86
.travis.yml
86
.travis.yml
@@ -1,26 +1,32 @@
|
||||
language: c
|
||||
|
||||
env:
|
||||
global:
|
||||
- BUILD=yes TEST=test CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no LOG_DIR="$TRAVIS_BUILD_DIR/logs"
|
||||
|
||||
_anchors:
|
||||
envs:
|
||||
- &tiny-nogui
|
||||
BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=tiny TEST=testtiny CONFOPT="--disable-gui"
|
||||
- &tiny
|
||||
BUILD=yes TEST=test FEATURES=tiny CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=tiny TEST=testtiny
|
||||
- &small
|
||||
BUILD=yes TEST=test FEATURES=small CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=small TEST=testtiny
|
||||
- &normal
|
||||
BUILD=yes TEST=test FEATURES=normal CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=normal
|
||||
- &linux-huge
|
||||
BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=huge TEST="scripttests test_libvterm"
|
||||
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
- &osx-huge # macOS build
|
||||
BUILD=yes TEST=test FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
FEATURES=huge
|
||||
CONFOPT="--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
- &unittests
|
||||
BUILD=no TEST=unittests CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
BUILD=no TEST=unittests FEATURES=huge CHECK_AUTOCONF=yes
|
||||
- &coverage
|
||||
CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage
|
||||
- &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"
|
||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize-recover=all -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer"
|
||||
ASAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/asan" UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
- &shadowopt
|
||||
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
|
||||
|
||||
@@ -29,7 +35,7 @@ _anchors:
|
||||
dist: bionic
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
packages: &apt-packages
|
||||
- autoconf
|
||||
- clang
|
||||
- lcov
|
||||
@@ -63,7 +69,11 @@ _anchors:
|
||||
fi
|
||||
before_script:
|
||||
- sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
- sudo bash ci/load-snd-dummy.sh || true
|
||||
# It appears we can load "snd-dummy" on only amd64.
|
||||
- |
|
||||
if [[ "${TRAVIS_CPU_ARCH}" = amd64 ]]; then
|
||||
sudo bash ci/load-snd-dummy.sh || true
|
||||
fi
|
||||
- sudo usermod -a -G audio $USER
|
||||
- do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||
|
||||
@@ -87,7 +97,7 @@ _anchors:
|
||||
# Lua is not installed on macOS
|
||||
- export LUA_PREFIX=/usr/local
|
||||
|
||||
coverage: &coverage
|
||||
coverage: &eval-coverage
|
||||
# needed for https support for coveralls building cffi only works with gcc,
|
||||
# not with clang
|
||||
- CC=gcc pip install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
|
||||
@@ -98,13 +108,14 @@ _anchors:
|
||||
# Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
|
||||
# https://github.com/pyenv/pyenv/issues/580
|
||||
- (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
|
||||
- find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
|
||||
- for f in $(grep -l '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "$LOG_DIR"/*); do asan_symbolize-11 -l "$f"; done
|
||||
|
||||
branches:
|
||||
except:
|
||||
- /^v[0-9]/
|
||||
|
||||
script:
|
||||
- mkdir -p "$LOG_DIR"
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- set -o errexit
|
||||
- echo -e "\\033[33;1mConfiguring Vim\\033[0m" && echo -en "travis_fold:start:configure\\r\\033[0K"
|
||||
@@ -125,7 +136,7 @@ script:
|
||||
# Append various warning flags to CFLAGS.
|
||||
# BSD sed needs backup extension specified.
|
||||
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||
if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
|
||||
if [[ "${TRAVIS_OS_NAME}" = "osx" ]] || [[ "${CC}" = "clang-11" ]]; then
|
||||
# On macOS, the entity of gcc is clang.
|
||||
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
|
||||
else
|
||||
@@ -145,6 +156,15 @@ script:
|
||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
|
||||
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
|
||||
- |
|
||||
# Not all sanitizers will cause the tests to fail. This helps since we can
|
||||
# see all the failures instead of just the first one, but we still want the
|
||||
# test phase to fail if any sanitizer issues are detected.
|
||||
if [[ -n "${ASAN_OPTIONS}" ]]; then
|
||||
if grep -q '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "$LOG_DIR"/*; then
|
||||
false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Instead of using all environments with both compilers on both systems,
|
||||
# exclude some builds on mac os x and linux.
|
||||
@@ -208,22 +228,39 @@ jobs:
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
services: []
|
||||
- <<: *linux
|
||||
arch: arm64
|
||||
name: huge/gcc-arm64
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
services: []
|
||||
- <<: *linux
|
||||
name: huge+coverage/clang
|
||||
compiler: clang
|
||||
env:
|
||||
- *linux-huge
|
||||
- *coverage
|
||||
# Clang cannot compile test_libvterm with "--coverage" flag.
|
||||
- TEST=scripttests
|
||||
after_success: *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux
|
||||
name: huge+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
after_success: *coverage
|
||||
env:
|
||||
- *linux-huge
|
||||
- *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux # ASAN
|
||||
name: huge+asan/gcc
|
||||
compiler: gcc
|
||||
name: huge+asan/clang
|
||||
compiler: clang-11
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main'
|
||||
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
||||
packages:
|
||||
- *apt-packages
|
||||
- clang-11
|
||||
env:
|
||||
- *linux-huge
|
||||
- *asan
|
||||
@@ -233,13 +270,16 @@ jobs:
|
||||
compiler: gcc
|
||||
env:
|
||||
- *linux-huge
|
||||
- *coverage
|
||||
- TEST="-C src testgui"
|
||||
after_success: *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux
|
||||
name: unittests+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *unittests
|
||||
after_success: *coverage
|
||||
env:
|
||||
- *unittests
|
||||
- *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux
|
||||
name: vimtags/gcc
|
||||
compiler: gcc
|
||||
|
||||
16
Filelist
16
Filelist
@@ -10,6 +10,7 @@ SRC_ALL = \
|
||||
.travis.yml \
|
||||
.cirrus.yml \
|
||||
.github/workflows/ci-windows.yaml \
|
||||
.github/CODEOWNERS \
|
||||
appveyor.yml \
|
||||
ci/appveyor.bat \
|
||||
ci/if_ver*.vim \
|
||||
@@ -45,6 +46,7 @@ SRC_ALL = \
|
||||
src/drawline.c \
|
||||
src/drawscreen.c \
|
||||
src/edit.c \
|
||||
src/errors.h \
|
||||
src/eval.c \
|
||||
src/evalbuffer.c \
|
||||
src/evalfunc.c \
|
||||
@@ -73,6 +75,7 @@ SRC_ALL = \
|
||||
src/highlight.c \
|
||||
src/indent.c \
|
||||
src/insexpand.c \
|
||||
src/job.c \
|
||||
src/json.c \
|
||||
src/json_test.c \
|
||||
src/kword_test.c \
|
||||
@@ -149,6 +152,7 @@ SRC_ALL = \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
src/vim9script.c \
|
||||
src/vim9type.c \
|
||||
src/viminfo.c \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
@@ -172,12 +176,12 @@ SRC_ALL = \
|
||||
src/testdir/setup_gui.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/vim9.vim \
|
||||
src/testdir/script_util.vim \
|
||||
src/testdir/summarize.vim \
|
||||
src/testdir/term_util.vim \
|
||||
src/testdir/view_util.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test[0-9]*a.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test77a.ok \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
@@ -247,6 +251,7 @@ SRC_ALL = \
|
||||
src/proto/highlight.pro \
|
||||
src/proto/indent.pro \
|
||||
src/proto/insexpand.pro \
|
||||
src/proto/job.pro \
|
||||
src/proto/json.pro \
|
||||
src/proto/list.pro \
|
||||
src/proto/locale.pro \
|
||||
@@ -303,6 +308,7 @@ SRC_ALL = \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
src/proto/vim9script.pro \
|
||||
src/proto/vim9type.pro \
|
||||
src/proto/viminfo.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
@@ -617,7 +623,7 @@ SRC_AMI = \
|
||||
README_amisrc.txt.info \
|
||||
src.info \
|
||||
src/INSTALLami.txt \
|
||||
src/Make_morph.mak \
|
||||
src/Make_ami.mak \
|
||||
src/os_amiga.c \
|
||||
src/os_amiga.h \
|
||||
src/proto/os_amiga.pro \
|
||||
@@ -638,13 +644,11 @@ SRC_HAIKU = \
|
||||
SRC_MAC = \
|
||||
src/INSTALLmac.txt \
|
||||
src/dehqx.py \
|
||||
src/gui_mac.c \
|
||||
src/os_mac_rsrc/*.icns \
|
||||
src/os_mac.h \
|
||||
src/os_mac.rsr.hqx \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.m \
|
||||
src/proto/gui_mac.pro \
|
||||
src/proto/os_mac_conv.pro \
|
||||
|
||||
# source files for VMS (in the extra archive)
|
||||
@@ -1027,6 +1031,8 @@ LANG_SRC = \
|
||||
src/po/README_mvc.txt \
|
||||
src/po/check.vim \
|
||||
src/po/cleanup.vim \
|
||||
src/po/tojavascript.vim \
|
||||
src/po/fixfilenames.vim \
|
||||
src/po/Makefile \
|
||||
src/po/Make_all.mak \
|
||||
src/po/Make_cyg.mak \
|
||||
|
||||
2
Makefile
2
Makefile
@@ -32,7 +32,7 @@ first:
|
||||
|
||||
# Some make programs use the last target for the $@ default; put the other
|
||||
# targets separately to always let $@ expand to "first" by default.
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test scripttests test_libvterm unittests testclean clean distclean:
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test scripttests testtiny test_libvterm unittests testclean clean distclean:
|
||||
@if test ! -f src/auto/config.mk; then \
|
||||
cp src/config.mk.dist src/auto/config.mk; \
|
||||
fi
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
This is an experimental side of [Vim](https://github.com/vim/vim).
|
||||
It explores ways of making Vim script faster and better.
|
||||
|
||||
WARNING: The Vim9 script features are in the early stages of development,
|
||||
anything can break!
|
||||
WARNING: The Vim9 script features are still under development, anything can
|
||||
break!
|
||||
|
||||
# Why Vim9?
|
||||
|
||||
@@ -52,7 +52,7 @@ we can gain, and also that Vim script can be faster than builtin
|
||||
interfaces.
|
||||
|
||||
In practice the script would not do something useless as counting but change
|
||||
the text. For example, re-indent all the lines:
|
||||
the text. For example, reindent all the lines:
|
||||
|
||||
``` vim
|
||||
let totallen = 0
|
||||
@@ -91,14 +91,14 @@ Instead of using script language support in Vim:
|
||||
with them. The job and channel support already makes this possible.
|
||||
Really any language can be used, also Java and Go, which are not
|
||||
available built-in.
|
||||
* Phase out the built-in language interfaces, make maintenance a bit easier
|
||||
and executables easier to build. They will be kept for backwards
|
||||
compatibility, no new features.
|
||||
* No priority for the built-in language interfaces. They will have to be kept
|
||||
for backwards compatibility, but many users won't need a Vim build with these
|
||||
interfaces.
|
||||
* Improve the Vim script language, it is used to communicate with the external
|
||||
tool and implements the Vim side of the interface. Also, it can be used when
|
||||
an external tool is undesired.
|
||||
|
||||
All together this creates a clear situation: Vim with the +eval feature
|
||||
Altogether this creates a clear situation: Vim with the +eval feature
|
||||
will be sufficient for most plugins, while some plugins require
|
||||
installing a tool that can be written in any language. No confusion
|
||||
about having Vim but the plugin not working because some specific
|
||||
@@ -140,6 +140,9 @@ Taking this one step further is also dropping "s:" for script-local variables;
|
||||
everything at the script level is script-local by default. Since this is not
|
||||
backwards compatible it requires a new script style: Vim9 script!
|
||||
|
||||
To avoid having more variations, the syntax inside a compiled function is the
|
||||
same as in Vim9 script. Thus you have legacy syntax and Vim9 syntax.
|
||||
|
||||
It should be possible to convert code from other languages to Vim
|
||||
script. We can add functionality to make this easier. This still needs
|
||||
to be discussed, but we can consider adding type checking and a simple
|
||||
|
||||
@@ -16,7 +16,6 @@ src/os_amiga.* Files for the Amiga port.
|
||||
src/os_msdos.*
|
||||
src/os_dos.* Files for the MS-DOS port.
|
||||
|
||||
src/gui_mac.*
|
||||
src/os_mac.* Files for the Mac port.
|
||||
|
||||
src/os_vms* Files for the VMS port.
|
||||
|
||||
@@ -3,6 +3,6 @@ set -e
|
||||
|
||||
if ! modprobe snd-dummy; then
|
||||
# snd-dummy is contained in linux-modules-extra (if exists)
|
||||
apt install -y "linux-modules-extra-$(uname -r)"
|
||||
apt-get install -yq --no-install-suggests --no-install-recommends "linux-modules-extra-$(uname -r)"
|
||||
modprobe snd-dummy
|
||||
fi
|
||||
|
||||
4
runtime/autoload/dist/ft.vim
vendored
4
runtime/autoload/dist/ft.vim
vendored
@@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Mar 30
|
||||
" Last Change: 2020 Aug 17
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
@@ -575,7 +575,7 @@ endfunc
|
||||
let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
|
||||
func dist#ft#FTRules()
|
||||
let path = expand('<amatch>:p')
|
||||
if path =~ '^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
|
||||
if path =~ '/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|\%(usr/\)\=lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
|
||||
setf udevrules
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
" Vim completion script
|
||||
" Language: Java Script
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2017 Mar 04
|
||||
" Maintainer: Jay Sitter (jay@jaysitter.com)
|
||||
" URL: https://github.com/jsit/javascriptcomplete.vim/
|
||||
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2020 Jul 30
|
||||
|
||||
function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
if a:findstart
|
||||
@@ -154,12 +156,30 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
\ 'text', 'vLink']
|
||||
let bodys = bodyprop
|
||||
" Document - document.
|
||||
let docuprop = ['anchors', 'applets', 'childNodes', 'embeds', 'forms', 'images', 'links', 'stylesheets',
|
||||
\ 'body', 'cookie', 'documentElement', 'domain', 'lastModified', 'referrer', 'title', 'URL']
|
||||
let documeth = ['close', 'createAttribute', 'createElement', 'createTextNode', 'focus', 'getElementById',
|
||||
\ 'getElementsByName', 'getElementsByTagName', 'open', 'write', 'writeln',
|
||||
\ 'onClick', 'onDblClick', 'onFocus', 'onKeyDown', 'onKeyPress', 'onKeyUp',
|
||||
\ 'onMouseDown', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onResize']
|
||||
let docuprop = ['anchors', 'body', 'characterSet', 'doctype',
|
||||
\ 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms',
|
||||
\ 'head', 'hidden', 'images', 'implementation', 'lastStyleSheetSet',
|
||||
\ 'links', 'plugins', 'preferredStyleSheetSet', 'scripts',
|
||||
\ 'scrollingElement', 'selectedStyleSheetSet', 'styleSheetSets',
|
||||
\ 'timeline', 'visibilityState', 'cookie', 'defaultView',
|
||||
\ 'designMode', 'dir', 'domain', 'lastModified', 'location',
|
||||
\ 'readyState', 'referrer', 'title', 'URL', 'activeElement',
|
||||
\ 'fullscreenElement', 'styleSheets']
|
||||
let documeth = ['adoptNode', 'close', 'createAttribute',
|
||||
\ 'createAttributeNS', 'createCDATASection', 'createComment',
|
||||
\ 'createDocumentFragment', 'createElement', 'createElementNS',
|
||||
\ 'createEvent', 'createExpression', 'createNSResolver',
|
||||
\ 'createNodeIterator', 'createProcessingInstruction', 'createRange',
|
||||
\ 'createTextNode', 'createTouchList', 'createTreeWalker',
|
||||
\ 'enableStyleSheetsForSet', 'evaluate', 'focus', 'getElementById',
|
||||
\ 'getElementById', 'getElementsByClassName', 'getElementsByName',
|
||||
\ 'getElementsByTagName', 'getElementsByTagNameNS',
|
||||
\ 'hasStorageAccess', 'importNode', 'onClick', 'onDblClick',
|
||||
\ 'onFocus', 'onKeyDown', 'onKeyPress', 'onKeyUp', 'onMouseDown',
|
||||
\ 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp',
|
||||
\ 'onResize', 'open', 'querySelector', 'querySelectorAll',
|
||||
\ 'requestStorageAccess', 'write', 'writeln']
|
||||
|
||||
call map(documeth, 'v:val."("')
|
||||
let docuxprop = ['attributes', 'childNodes', 'doctype', 'documentElement', 'firstChild',
|
||||
\ 'implementation', 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType',
|
||||
@@ -368,9 +388,11 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
let xdomelemprop = ['attributes', 'childNodes', 'firstChild', 'lastChild',
|
||||
\ 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue',
|
||||
\ 'ownerDocument', 'parentNode', 'prefix', 'previousSibling', 'tagName']
|
||||
let xdomelemmeth = ['appendChild', 'cloneNode', 'getAttribute', 'getAttributeNode',
|
||||
\ 'getElementsByTagName', 'hasChildNodes', 'insertBefore', 'normalize',
|
||||
\ 'removeAttribute', 'removeAttributeNode', 'removeChild', 'replaceChild',
|
||||
let xdomelemmeth = ['appendChild', 'addEventListener', 'cloneNode',
|
||||
\ 'dispatchEvent', 'getAttribute', 'getAttributeNode',
|
||||
\ 'getElementsByTagName', 'hasChildNodes', 'insertBefore',
|
||||
\ 'normalize', 'removeAttribute', 'removeAttributeNode',
|
||||
\ 'removeChild', 'removeEventListener', 'replaceChild',
|
||||
\ 'setAttribute', 'setAttributeNode']
|
||||
call map(xdomelemmeth, 'v:val."("')
|
||||
let xdomelems = xdomelemprop + xdomelemmeth
|
||||
|
||||
@@ -185,7 +185,7 @@ func! Test_check_colors()
|
||||
|
||||
" 9) Normal should be defined first, not use reverse, fg or bg
|
||||
call cursor(1,1)
|
||||
let pat = 'hi\%[light] \+\%(link\|clear\)\@!\w\+\>'
|
||||
let pat = 'hi\%[ghlight] \+\%(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'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Checkstyle
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jun 26
|
||||
" Last Change: 2020 Aug 2
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -12,8 +12,18 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" sample error: WebTable.java:282: '+=' is not preceeded with whitespace.
|
||||
" WebTable.java:201:1: '{' should be on the previous line.
|
||||
CompilerSet errorformat=%f:%l:%v:\ %m,%f:%l:\ %m,%-G%.%#
|
||||
" CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain\ -c\ /sun_checks.xml
|
||||
" CompilerSet makeprg=java\ -jar\ checkstyle-X.XX-all.jar\ -f\ plain\ -c\ /sun_checks.xml
|
||||
|
||||
CompilerSet makeprg=checkstyle\ -f\ plain
|
||||
CompilerSet errorformat=[%tRROR]\ %f:%l:%v:\ %m,
|
||||
\[%tARN]\ %f:%l:%v:\ %m,
|
||||
\[%tRROR]\ %f:%l:\ %m,
|
||||
\[%tARN]\ %f:%l:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
26
runtime/compiler/dart.vim
Normal file
26
runtime/compiler/dart.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart VM
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dart"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dart
|
||||
CompilerSet errorformat=%E%f:%l:%c:\ Error:\ %m,
|
||||
\%CTry\ %.%#,
|
||||
\%Z\ %#^%\\+,
|
||||
\%C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
28
runtime/compiler/dart2js.vim
Normal file
28
runtime/compiler/dart2js.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart to JavaScript Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dart2js"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dart2js
|
||||
CompilerSet errorformat=%E%f:%l:%c:,
|
||||
\%-GError:\ Compilation\ failed.,
|
||||
\%CError:\ %m,
|
||||
\%Z\ %#^%\\+,
|
||||
\%C%.%#,
|
||||
\%trror:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
28
runtime/compiler/dart2native.vim
Normal file
28
runtime/compiler/dart2native.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart to Native Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dart2native"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dart2native
|
||||
CompilerSet errorformat=%E%f:%l:%c:\ Error:\ %m,
|
||||
\%CTry\ %.%#,
|
||||
\%Z\ %#^%\\+,
|
||||
\%Z%$,
|
||||
\%C%.%#,
|
||||
\%E%f:\ %trror:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
23
runtime/compiler/dartanalyser.vim
Normal file
23
runtime/compiler/dartanalyser.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Analyzer
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartanalyzer"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartanalyzer\ --format\ machine
|
||||
CompilerSet errorformat=%t%\\w%\\+\|%\\w%\\+\|%\\w%\\+\|%f\|%l\|%c\|%\\d%\\+\|%m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
28
runtime/compiler/dartdevc.vim
Normal file
28
runtime/compiler/dartdevc.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Development Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartdevc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartdevc
|
||||
CompilerSet errorformat=%E%f:%l:%c:\ Error:\ %m,
|
||||
\%CTry\ %.%#,
|
||||
\%Z\ %#^%\\+,
|
||||
\%Z%$,
|
||||
\%C%.%#,
|
||||
\%E%f:\ %trror:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
26
runtime/compiler/dartdoc.vim
Normal file
26
runtime/compiler/dartdoc.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Documentation Generator
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartdoc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartdoc
|
||||
CompilerSet errorformat=\ \ %tarning:\ %m,
|
||||
\\ \ %trror:\ %m,
|
||||
\%+EGeneration\ failed:\ %m,
|
||||
\%+ISuccess!\ Docs\ generated\ into\ %f,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
25
runtime/compiler/dartfmt.vim
Normal file
25
runtime/compiler/dartfmt.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Formatter
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartfmt"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartfmt
|
||||
CompilerSet errorformat=%Eline\ %l\\,\ column\ %c\ of\ %f:\ %m,
|
||||
\%Z\ %\\{3}│\ %\\+^%\\+,
|
||||
\%C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: ESLint for JavaScript
|
||||
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
|
||||
" Last Change: 2020 May 17
|
||||
" Last Change: 2020 August 20
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -12,5 +12,5 @@ if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=eslint\ --format\ compact
|
||||
CompilerSet makeprg=npx\ eslint\ --format\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#
|
||||
|
||||
34
runtime/compiler/gawk.vim
Normal file
34
runtime/compiler/gawk.vim
Normal file
@@ -0,0 +1,34 @@
|
||||
" Vim compiler file
|
||||
" Compiler: GNU Awk
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "gawk"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=gawk
|
||||
CompilerSet errorformat=%Z%.awk:\ %f:%l:\ %p^\ %m,
|
||||
\%Eg%\\=awk:\ %f:%l:\ fatal:\ %m,
|
||||
\%Egawk:\ %f:%l:\ error:\ %m,
|
||||
\%Wgawk:\ %f:%l:\ warning:\ %m,
|
||||
\%Egawk:\ %f:%l:\ %.%#,
|
||||
\gawk:\ %f:%l:\ %tatal:\ %m,
|
||||
\gawk:\ %f:%l:\ %trror:\ %m,
|
||||
\gawk:\ %f:%l:\ %tarning:\ %m,
|
||||
\gawk:\ %tatal:\ %m,
|
||||
\gawk:\ %trror:\ %m,
|
||||
\gawk:\ %tarning:\ %m,
|
||||
\%+C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
25
runtime/compiler/gjs.vim
Normal file
25
runtime/compiler/gjs.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: GJS (Gnome JavaScript Bindings)
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "gjs"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=gjs
|
||||
CompilerSet errorformat=%.%#JS\ %tRROR:\ %m\ @\ %f:%c,
|
||||
\%E%.%#JS\ ERROR:\ %m,
|
||||
\%Z@%f:%l:%c,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: javac
|
||||
" Compiler: Java Development Kit Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2004 Nov 27
|
||||
" Last Change: 2019 Oct 21
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -12,6 +12,15 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=javac
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet errorformat=%E%f:%l:\ %m,%-Z%p^,%-C%.%#,%-G%.%#
|
||||
CompilerSet makeprg=javac
|
||||
CompilerSet errorformat=%E%f:%l:\ error:\ %m,
|
||||
\%W%f:%l:\ warning:\ %m,
|
||||
\%-Z%p^,
|
||||
\%-C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
30
runtime/compiler/jest.vim
Normal file
30
runtime/compiler/jest.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Jest
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2018 May 15
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jest"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ jest\ --no-colors
|
||||
|
||||
CompilerSet makeprg=jest\ --no-colors
|
||||
CompilerSet errorformat=%E\ \ ●\ %m,
|
||||
\%Z\ %\\{4}%.%#Error:\ %f:\ %m\ (%l:%c):%\\=,
|
||||
\%Z\ %\\{6}at\ %\\S%#\ (%f:%l:%c),
|
||||
\%+C\ %\\{4}%\\w%.%#,
|
||||
\%+C\ %\\{4}%[-+]%.%#,
|
||||
\%-C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
24
runtime/compiler/jjs.vim
Normal file
24
runtime/compiler/jjs.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Nashorn Shell
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2018 Jan 9
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jjs"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=jjs
|
||||
CompilerSet errorformat=%f:%l:%c\ %m,
|
||||
\%f:%l\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
25
runtime/compiler/jshint.vim
Normal file
25
runtime/compiler/jshint.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: JSHint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jshint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ jshint\ --verbose
|
||||
|
||||
CompilerSet makeprg=jshint\ --verbose
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m\ (%t%n),
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
25
runtime/compiler/jsonlint.vim
Normal file
25
runtime/compiler/jsonlint.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: JSON Lint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jsonlint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ jsonlint\ --compact\ --quiet
|
||||
|
||||
CompilerSet makeprg=jsonlint\ --compact\ --quiet
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ found:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
30
runtime/compiler/rhino.vim
Normal file
30
runtime/compiler/rhino.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Rhino Shell (JavaScript in Java)
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "rhino"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=java\ -jar\ lib/rhino-X.X.XX.jar\ -w\ -strict
|
||||
|
||||
CompilerSet makeprg=rhino
|
||||
CompilerSet errorformat=%-Gjs:\ %.%#Compilation\ produced%.%#,
|
||||
\%Ejs:\ \"%f\"\\,\ line\ %l:\ %m,
|
||||
\%Ejs:\ uncaught\ JavaScript\ runtime\ exception:\ %m,
|
||||
\%Wjs:\ warning:\ \"%f\"\\,\ line\ %l:\ %m,
|
||||
\%Zjs:\ %p^,
|
||||
\%Cjs:\ %.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
23
runtime/compiler/rubocop.vim
Normal file
23
runtime/compiler/rubocop.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
" Vim compiler file
|
||||
" Compiler: RuboCop
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "rubocop"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=rubocop\ --format\ emacs
|
||||
CompilerSet errorformat=%f:%l:%c:\ %t:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Standard for JavaScript
|
||||
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
|
||||
" Last Change: 2020 May 17
|
||||
" Last Change: 2020 August 20
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -12,5 +12,5 @@ if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=standard
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#
|
||||
CompilerSet makeprg=npx\ standard
|
||||
CompilerSet errorformat=%f:%l:%c:\ %m,%-G%.%#
|
||||
|
||||
26
runtime/compiler/stylelint.vim
Normal file
26
runtime/compiler/stylelint.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Stylelint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Jun 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "stylelint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ stylelint\ --formatter\ compact
|
||||
|
||||
CompilerSet makeprg=stylelint\ --formatter\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,
|
||||
\%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
29
runtime/compiler/ts-node.vim
Normal file
29
runtime/compiler/ts-node.vim
Normal file
@@ -0,0 +1,29 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TypeScript Runner
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "node"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ ts-node
|
||||
|
||||
CompilerSet makeprg=ts-node
|
||||
CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m,
|
||||
\%E%f:%l,
|
||||
\%+Z%\\w%\\+Error:\ %.%#,
|
||||
\%C%p^%\\+,
|
||||
\%C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
26
runtime/compiler/tsc.vim
Normal file
26
runtime/compiler/tsc.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TypeScript Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "tsc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ tsc
|
||||
|
||||
CompilerSet makeprg=tsc
|
||||
CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m,
|
||||
\%trror\ TS%n:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
28
runtime/compiler/typedoc.vim
Normal file
28
runtime/compiler/typedoc.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TypeDoc
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "typedoc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ typedoc
|
||||
|
||||
CompilerSet makeprg=typedoc
|
||||
CompilerSet errorformat=%EError:\ %f(%l),
|
||||
\%WWarning:\ %f(%l),
|
||||
\%+IDocumentation\ generated\ at\ %f,
|
||||
\%Z\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: xmllint
|
||||
" Compiler: Libxml2 Command-Line Tool
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jul 8
|
||||
" Last Change: 2020 Jul 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -13,14 +13,16 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=xmllint\ --valid\ --noout
|
||||
|
||||
CompilerSet errorformat=%+E%f:%l:\ %.%#\ error\ :\ %m,
|
||||
\%+W%f:%l:\ %.%#\ warning\ :\ %m,
|
||||
\%-Z%p^,
|
||||
\%-G%.%#
|
||||
CompilerSet errorformat=%E%f:%l:\ %.%#\ error\ :\ %m,
|
||||
\%W%f:%l:\ %.%#\ warning\ :\ %m,
|
||||
\%-Z%p^,
|
||||
\%C%.%#,
|
||||
\%terror:\ %m,
|
||||
\%tarning:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
26
runtime/compiler/xo.vim
Normal file
26
runtime/compiler/xo.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: XO
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "xo"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ xo\ --reporter\ compact
|
||||
|
||||
CompilerSet makeprg=xo\ --reporter\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ %m,
|
||||
\%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Aug 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1425,8 +1425,8 @@ name!
|
||||
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
|
||||
this if there is still an autocommand using
|
||||
this group! You will get a warning if doing
|
||||
it anyway. when the group is the current group
|
||||
you will get error E936.
|
||||
it anyway. When the group is the current
|
||||
group you will get error E936.
|
||||
|
||||
To enter autocommands for a specific group, use this method:
|
||||
1. Select the group with ":augroup {name}".
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.2. Last change: 2020 Jun 04
|
||||
*change.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -153,7 +153,7 @@ the 'joinspaces' option is on, these commands insert two spaces after a '.',
|
||||
'!' or '?' (but if 'cpoptions' includes the 'j' flag, they insert two spaces
|
||||
only after a '.').
|
||||
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
|
||||
spaces before and after a multi-byte character |fo-table|.
|
||||
spaces before and after a multibyte character |fo-table|.
|
||||
|
||||
The '[ mark is set at the end of the first line that was joined, '] at the end
|
||||
of the resulting line.
|
||||
@@ -1680,11 +1680,11 @@ b Like 'v', but only auto-wrap if you enter a blank at or before
|
||||
l Long lines are not broken in insert mode: When a line was longer than
|
||||
'textwidth' when the insert command started, Vim does not
|
||||
automatically format it.
|
||||
m Also break at a multi-byte character above 255. This is useful for
|
||||
m Also break at a multibyte character above 255. This is useful for
|
||||
Asian text where every character is a word on its own.
|
||||
M When joining lines, don't insert a space before or after a multi-byte
|
||||
M When joining lines, don't insert a space before or after a multibyte
|
||||
character. Overrules the 'B' flag.
|
||||
B When joining lines, don't insert a space between two multi-byte
|
||||
B When joining lines, don't insert a space between two multibyte
|
||||
characters. Overruled by the 'M' flag.
|
||||
1 Don't break a line after a one-letter word. It's broken before it
|
||||
instead (if possible).
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*channel.txt* For Vim version 8.2. Last change: 2020 Sep 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -608,6 +608,10 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
|
||||
after every message, on Unix you can use "tail -f" to see what
|
||||
is going on in real time.
|
||||
|
||||
To enable the log very early, to see what is received from a
|
||||
terminal during startup, use |--cmd|: >
|
||||
vim --cmd "call ch_logfile('logfile', 'w')"
|
||||
<
|
||||
This function is not available in the |sandbox|.
|
||||
NOTE: the channel communication is stored in the file, be
|
||||
aware that this may contain confidential and privacy sensitive
|
||||
@@ -1256,7 +1260,9 @@ After setting 'buftype' to "prompt" Vim does not automatically start Insert
|
||||
mode, use `:startinsert` if you want to enter Insert mode, so that the user
|
||||
can start typing a line.
|
||||
|
||||
The text of the prompt can be set with the |prompt_setprompt()| function.
|
||||
The text of the prompt can be set with the |prompt_setprompt()| function. If
|
||||
no prompt is set with |prompt_setprompt()|, "% " is used. You can get the
|
||||
effective prompt text for a buffer, with |prompt_getprompt()|.
|
||||
|
||||
The user can go to Normal mode and navigate through the buffer. This can be
|
||||
useful to see older output or copy text.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2020 Jul 26
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2020 Aug 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1130,7 +1130,8 @@ CTRL-C Continue in Command-line mode. The command-line under the
|
||||
in Normal mode. There is no redraw, thus the window will
|
||||
remain visible.
|
||||
:quit Discard the command line and go back to Normal mode.
|
||||
":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
|
||||
":close", CTRL-W c, ":exit", ":xit" and CTRL-\ CTRL-N also
|
||||
work.
|
||||
:qall Quit Vim, unless there are changes in some buffer.
|
||||
:qall! Quit Vim, discarding changes to any buffer.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 8.2. Last change: 2020 Apr 13
|
||||
*develop.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,8 +34,8 @@ balance must be found between them.
|
||||
VIM IS... VI COMPATIBLE *design-compatible*
|
||||
|
||||
First of all, it should be possible to use Vim as a drop-in replacement for
|
||||
Vi. When the user wants to, he can use Vim in compatible mode and hardly
|
||||
notice any difference with the original Vi.
|
||||
Vi. When the user wants to, Vim can be used in compatible mode and hardly
|
||||
any differences with the original Vi will be noticed.
|
||||
|
||||
Exceptions:
|
||||
- We don't reproduce obvious Vi bugs in Vim.
|
||||
@@ -473,7 +473,7 @@ available spell checking libraries and programs. Unfortunately, the result
|
||||
was that none of them provided sufficient capabilities to be used as the spell
|
||||
checking engine in Vim, for various reasons:
|
||||
|
||||
- Missing support for multi-byte encodings. At least UTF-8 must be supported,
|
||||
- Missing support for multibyte encodings. At least UTF-8 must be supported,
|
||||
so that more than one language can be used in the same file.
|
||||
Doing on-the-fly conversion is not always possible (would require iconv
|
||||
support).
|
||||
|
||||
@@ -921,6 +921,7 @@ char digraph hex dec official name ~
|
||||
‟ 9" 201F 8223 DOUBLE HIGH-REVERSED-9 QUOTATION MARK
|
||||
† /- 2020 8224 DAGGER
|
||||
‡ /= 2021 8225 DOUBLE DAGGER
|
||||
• oo 2022 8226 BULLET
|
||||
‥ .. 2025 8229 TWO DOT LEADER
|
||||
… ,. 2026 8230 HORIZONTAL ELLIPSIS
|
||||
‰ %0 2030 8240 PER MILLE SIGN
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.2. Last change: 2020 Jul 05
|
||||
*editing.txt* For Vim version 8.2. Last change: 2020 Aug 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -652,7 +652,7 @@ list of the current window.
|
||||
:args ## x
|
||||
< This will add the "x" item and sort the new list.
|
||||
|
||||
:argd[elete] {pattern} .. *:argd* *:argdelete* *E480*
|
||||
:argd[elete] {pattern} .. *:argd* *:argdelete* *E480* *E610*
|
||||
Delete files from the argument list that match the
|
||||
{pattern}s. {pattern} is used like a file pattern,
|
||||
see |file-pattern|. "%" can be used to delete the
|
||||
@@ -662,7 +662,7 @@ list of the current window.
|
||||
Example: >
|
||||
:argdel *.obj
|
||||
|
||||
:[range]argd[elete] Delete the {range} files from the argument list.
|
||||
:[range]argd[elete] Delete the [range] files from the argument list.
|
||||
Example: >
|
||||
:10,$argdel
|
||||
< Deletes arguments 10 and further, keeping 1-9. >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.2. Last change: 2020 Jul 21
|
||||
*eval.txt* For Vim version 8.2. Last change: 2020 Sep 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -120,8 +120,9 @@ base, use |str2nr()|.
|
||||
|
||||
*TRUE* *FALSE* *Boolean*
|
||||
For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE.
|
||||
You can also use |v:false| and |v:true|. When TRUE is returned from a
|
||||
function it is the Number one, FALSE is the number zero.
|
||||
You can also use |v:false| and |v:true|. In Vim9 script |false| and |true|.
|
||||
When TRUE is returned from a function it is the Number one, FALSE is the
|
||||
number zero.
|
||||
|
||||
Note that in the command: >
|
||||
:if "foo"
|
||||
@@ -1131,19 +1132,25 @@ Evaluation is always from left to right.
|
||||
|
||||
expr8[expr1] item of String or |List| *expr-[]* *E111*
|
||||
*E909* *subscript*
|
||||
In legacy Vim script:
|
||||
If expr8 is a Number or String this results in a String that contains the
|
||||
expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
|
||||
Number. This doesn't recognize multi-byte encodings, see `byteidx()` for
|
||||
an alternative, or use `split()` to turn the string into a list of characters.
|
||||
|
||||
Index zero gives the first byte. This is like it works in C. Careful:
|
||||
text column numbers start with one! Example, to get the byte under the
|
||||
cursor: >
|
||||
expr1'th single byte from expr8. expr8 is used as a String (a number is
|
||||
automatically converted to a String), expr1 as a Number. This doesn't
|
||||
recognize multibyte encodings, see `byteidx()` for an alternative, or use
|
||||
`split()` to turn the string into a list of characters. Example, to get the
|
||||
byte under the cursor: >
|
||||
:let c = getline(".")[col(".") - 1]
|
||||
|
||||
In Vim9 script:
|
||||
If expr8 is a String this results in a String that contains the expr1'th
|
||||
single character from expr8. To use byte indexes use |strpart()|.
|
||||
|
||||
Index zero gives the first byte or character. Careful: text column numbers
|
||||
start with one!
|
||||
|
||||
If the length of the String is less than the index, the result is an empty
|
||||
String. A negative index always results in an empty string (reason: backward
|
||||
compatibility). Use [-1:] to get the last byte.
|
||||
compatibility). Use [-1:] to get the last byte or character.
|
||||
|
||||
If expr8 is a |List| then it results the item at index expr1. See |list-index|
|
||||
for possible index values. If the index is out of range this results in an
|
||||
@@ -1157,10 +1164,16 @@ error.
|
||||
|
||||
expr8[expr1a : expr1b] substring or sublist *expr-[:]*
|
||||
|
||||
If expr8 is a Number or String this results in the substring with the bytes
|
||||
from expr1a to and including expr1b. expr8 is used as a String, expr1a and
|
||||
expr1b are used as a Number. This doesn't recognize multi-byte encodings, see
|
||||
|byteidx()| for computing the indexes.
|
||||
If expr8 is a String this results in the substring with the bytes or
|
||||
characters from expr1a to and including expr1b. expr8 is used as a String,
|
||||
expr1a and expr1b are used as a Number.
|
||||
|
||||
In legacy Vim script the indexes are byte indexes. This doesn't recognize
|
||||
multibyte encodings, see |byteidx()| for computing the indexes. If expr8 is
|
||||
a Number it is first converted to a String.
|
||||
|
||||
In Vim9 script the indexes are character indexes. To use byte indexes use
|
||||
|strpart()|.
|
||||
|
||||
If expr1a is omitted zero is used. If expr1b is omitted the length of the
|
||||
string minus one is used.
|
||||
@@ -1173,6 +1186,7 @@ expr1b is smaller than expr1a the result is an empty string.
|
||||
|
||||
Examples: >
|
||||
:let c = name[-1:] " last byte of a string
|
||||
:let c = name[0:-1] " the whole string
|
||||
:let c = name[-2:-2] " last but one byte of a string
|
||||
:let s = line(".")[4:] " from the fifth byte to the end
|
||||
:let s = s[:-3] " remove last two bytes
|
||||
@@ -2347,7 +2361,7 @@ assert_equalfile({fname-one}, {fname-two} [, {msg}])
|
||||
Number assert file contents are equal
|
||||
assert_exception({error} [, {msg}])
|
||||
Number assert {error} is in v:exception
|
||||
assert_fails({cmd} [, {error} [, {msg}]])
|
||||
assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
||||
Number assert {cmd} fails
|
||||
assert_false({actual} [, {msg}])
|
||||
Number assert {actual} is false
|
||||
@@ -2413,6 +2427,7 @@ ch_status({handle} [, {options}])
|
||||
String status of channel {handle}
|
||||
changenr() Number current change number
|
||||
char2nr({expr} [, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
|
||||
charclass({string}) Number character class of {string}
|
||||
chdir({dir}) String change current working directory
|
||||
cindent({lnum}) Number C indent for line {lnum}
|
||||
clearmatches([{win}]) none clear all matches
|
||||
@@ -2533,6 +2548,7 @@ gettabvar({nr}, {varname} [, {def}])
|
||||
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
|
||||
any {name} in {winnr} in tab page {tabnr}
|
||||
gettagstack([{nr}]) Dict get the tag stack of window {nr}
|
||||
gettext({text}) String lookup translation of {text}
|
||||
getwininfo([{winid}]) List list of info about each window
|
||||
getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window
|
||||
getwinposx() Number X coord in pixels of the Vim window
|
||||
@@ -2669,6 +2685,7 @@ popup_show({id}) none unhide popup window {id}
|
||||
pow({x}, {y}) Float {x} to the power of {y}
|
||||
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
|
||||
printf({fmt}, {expr1}...) String format text
|
||||
prompt_getprompt({buf}) String get prompt text
|
||||
prompt_setcallback({buf}, {expr}) none set prompt callback function
|
||||
prompt_setinterrupt({buf}, {text}) none set prompt interrupt function
|
||||
prompt_setprompt({buf}, {text}) none set prompt text
|
||||
@@ -2756,6 +2773,7 @@ setbufline({expr}, {lnum}, {text})
|
||||
{expr}
|
||||
setbufvar({expr}, {varname}, {val})
|
||||
none set {varname} in buffer {expr} to {val}
|
||||
setcellwidths({list}) none set character cell width overrides
|
||||
setcharsearch({dict}) Dict set character search from {dict}
|
||||
setcmdpos({pos}) Number set cursor position in command-line
|
||||
setenv({name}, {val}) none set environment variable
|
||||
@@ -2824,7 +2842,8 @@ str2list({expr} [, {utf8}]) List convert each character of {expr} to
|
||||
str2nr({expr} [, {base} [, {quoted}]])
|
||||
Number convert String to Number
|
||||
strcharpart({str}, {start} [, {len}])
|
||||
String {len} characters of {str} at {start}
|
||||
String {len} characters of {str} at
|
||||
character {start}
|
||||
strchars({expr} [, {skipcc}]) Number character length of the String {expr}
|
||||
strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
|
||||
strftime({format} [, {time}]) String format time with a specified format
|
||||
@@ -2833,8 +2852,9 @@ stridx({haystack}, {needle} [, {start}])
|
||||
Number index of {needle} in {haystack}
|
||||
string({expr}) String String representation of {expr} value
|
||||
strlen({expr}) Number length of the String {expr}
|
||||
strpart({str}, {start} [, {len}])
|
||||
String {len} bytes of {str} at byte {start}
|
||||
strpart({str}, {start} [, {len} [, {chars}]])
|
||||
String {len} bytes/chars of {str} at
|
||||
byte {start}
|
||||
strptime({format}, {timestring})
|
||||
Number Convert {timestring} to unix timestamp
|
||||
strridx({haystack}, {needle} [, {start}])
|
||||
@@ -3343,7 +3363,7 @@ bufnr([{expr} [, {create}]])
|
||||
above.
|
||||
|
||||
If the buffer doesn't exist, -1 is returned. Or, if the
|
||||
{create} argument is present and not zero, a new, unlisted,
|
||||
{create} argument is present and TRUE, a new, unlisted,
|
||||
buffer is created and its number is returned. Example: >
|
||||
let newbuf = bufnr('Scratch001', 1)
|
||||
< Using an empty name uses the current buffer. To create a new
|
||||
@@ -3406,7 +3426,8 @@ byte2line({byte}) *byte2line()*
|
||||
|
||||
byteidx({expr}, {nr}) *byteidx()*
|
||||
Return byte index of the {nr}'th character in the string
|
||||
{expr}. Use zero for the first character, it returns zero.
|
||||
{expr}. Use zero for the first character, it then returns
|
||||
zero.
|
||||
This function is only useful when there are multibyte
|
||||
characters, otherwise the returned value is equal to {nr}.
|
||||
Composing characters are not counted separately, their byte
|
||||
@@ -3493,7 +3514,7 @@ char2nr({expr} [, {utf8}]) *char2nr()*
|
||||
Example for "utf-8": >
|
||||
char2nr("á") returns 225
|
||||
char2nr("á"[0]) returns 195
|
||||
< With {utf8} set to 1, always treat as utf-8 characters.
|
||||
< With {utf8} set to TRUE, always treat as utf-8 characters.
|
||||
A combining character is a separate character.
|
||||
|nr2char()| does the opposite.
|
||||
To turn a string into a list of character numbers: >
|
||||
@@ -3504,6 +3525,18 @@ char2nr({expr} [, {utf8}]) *char2nr()*
|
||||
Can also be used as a |method|: >
|
||||
GetChar()->char2nr()
|
||||
|
||||
|
||||
charclass({string}) *charclass()*
|
||||
Return the character class of the first character in {string}.
|
||||
The character class is one of:
|
||||
0 blank
|
||||
1 punctuation
|
||||
2 word character
|
||||
3 emoji
|
||||
other specific Unicode class
|
||||
The class is used in patterns and word motions.
|
||||
|
||||
|
||||
chdir({dir}) *chdir()*
|
||||
Change the current working directory to {dir}. The scope of
|
||||
the directory change depends on the directory of the current
|
||||
@@ -4273,6 +4306,8 @@ expand({expr} [, {nosuf} [, {list}]]) *expand()*
|
||||
line number
|
||||
<sflnum> script file line number, also when in
|
||||
a function
|
||||
<SID> "<SNR>123_" where "123" is the
|
||||
current script ID |<SID>|
|
||||
<cword> word under the cursor
|
||||
<cWORD> WORD under the cursor
|
||||
<client> the {clientid} of the last received
|
||||
@@ -4893,31 +4928,32 @@ getbufinfo([{dict}])
|
||||
|
||||
Each returned List item is a dictionary with the following
|
||||
entries:
|
||||
bufnr buffer number.
|
||||
bufnr Buffer number.
|
||||
changed TRUE if the buffer is modified.
|
||||
changedtick number of changes made to the buffer.
|
||||
changedtick Number of changes made to the buffer.
|
||||
hidden TRUE if the buffer is hidden.
|
||||
lastused timestamp in seconds, like
|
||||
lastused Timestamp in seconds, like
|
||||
|localtime()|, when the buffer was
|
||||
last used.
|
||||
{only with the |+viminfo| feature}
|
||||
listed TRUE if the buffer is listed.
|
||||
lnum current line number in buffer.
|
||||
linecount number of lines in the buffer (only
|
||||
lnum Line number used for the buffer when
|
||||
opened in the current window.
|
||||
linecount Number of lines in the buffer (only
|
||||
valid when loaded)
|
||||
loaded TRUE if the buffer is loaded.
|
||||
name full path to the file in the buffer.
|
||||
signs list of signs placed in the buffer.
|
||||
name Full path to the file in the buffer.
|
||||
signs List of signs placed in the buffer.
|
||||
Each list item is a dictionary with
|
||||
the following fields:
|
||||
id sign identifier
|
||||
lnum line number
|
||||
name sign name
|
||||
variables a reference to the dictionary with
|
||||
variables A reference to the dictionary with
|
||||
buffer-local variables.
|
||||
windows list of |window-ID|s that display this
|
||||
windows List of |window-ID|s that display this
|
||||
buffer
|
||||
popups list of popup |window-ID|s that
|
||||
popups List of popup |window-ID|s that
|
||||
display this buffer
|
||||
|
||||
Examples: >
|
||||
@@ -5444,7 +5480,7 @@ getloclist({nr} [, {what}]) *getloclist()*
|
||||
:echo getloclist(5, {'filewinid': 0})
|
||||
|
||||
|
||||
getmarklist([{expr}] *getmarklist()*
|
||||
getmarklist([{expr}]) *getmarklist()*
|
||||
Without the {expr} argument returns a |List| with information
|
||||
about all the global marks. |mark|
|
||||
|
||||
@@ -5689,6 +5725,7 @@ getreginfo([{regname}]) *getreginfo()*
|
||||
If {regname} is invalid or not set, an empty Dictionary
|
||||
will be returned.
|
||||
If {regname} is not specified, |v:register| is used.
|
||||
The returned Dictionary can be passed to |setreg()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetRegname()->getreginfo()
|
||||
@@ -5795,6 +5832,19 @@ gettagstack([{nr}]) *gettagstack()*
|
||||
Can also be used as a |method|: >
|
||||
GetWinnr()->gettagstack()
|
||||
|
||||
|
||||
gettext({text}) *gettext()*
|
||||
Translate {text} if possible.
|
||||
This is mainly for use in the distributed Vim scripts. When
|
||||
generating message translations the {text} is extracted by
|
||||
xgettext, the translator can add the translated message in the
|
||||
.po file and Vim will lookup the translation when gettext() is
|
||||
called.
|
||||
For {text} double quoted strings are preferred, because
|
||||
xgettext does not understand escaping in single quoted
|
||||
strings.
|
||||
|
||||
|
||||
getwininfo([{winid}]) *getwininfo()*
|
||||
Returns information about windows as a |List| with Dictionaries.
|
||||
|
||||
@@ -5983,7 +6033,7 @@ has({feature} [, {check}])
|
||||
zero otherwise. This is useful to check for a typo in
|
||||
{feature} and to detect dead code. Keep in mind that an older
|
||||
Vim version will not know about a feature added later and
|
||||
features that have been abandoned will not be know by the
|
||||
features that have been abandoned will not be known by the
|
||||
current Vim version.
|
||||
|
||||
Also see |exists()|.
|
||||
@@ -7559,7 +7609,7 @@ perleval({expr}) *perleval()*
|
||||
< {only available when compiled with the |+perl| feature}
|
||||
|
||||
|
||||
popup_ functions are documented here: |popup-functions|.
|
||||
popup_ functions are documented here: |popup-functions|
|
||||
|
||||
|
||||
pow({x}, {y}) *pow()*
|
||||
@@ -7787,6 +7837,17 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
arguments an error is given. Up to 18 arguments can be used.
|
||||
|
||||
|
||||
prompt_getprompt({buf}) *prompt_getprompt()*
|
||||
Returns the effective prompt text for buffer {buf}. {buf} can
|
||||
be a buffer name or number. |prompt-buffer|.
|
||||
|
||||
If the buffer doesn't exist or isn't a prompt buffer, an empty
|
||||
string is returned.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_getprompt()
|
||||
|
||||
|
||||
prompt_setcallback({buf}, {expr}) *prompt_setcallback()*
|
||||
Set prompt callback for buffer {buf} to {expr}. When {expr}
|
||||
is an empty string the callback is removed. This has only
|
||||
@@ -7842,7 +7903,7 @@ prompt_setprompt({buf}, {text}) *prompt_setprompt()*
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_setprompt('command: ')
|
||||
|
||||
prop_ functions are documented here: |text-prop-functions|.
|
||||
prop_ functions are documented here: |text-prop-functions|
|
||||
|
||||
pum_getpos() *pum_getpos()*
|
||||
If the popup menu (see |ins-completion-menu|) is not visible,
|
||||
@@ -8707,7 +8768,8 @@ searchcount([{options}]) *searchcount()*
|
||||
pos |List| `[lnum, col, off]` value
|
||||
when recomputing the result.
|
||||
this changes "current" result
|
||||
value. see |cursor()|, |getpos()
|
||||
value. see |cursor()|,
|
||||
|getpos()|
|
||||
(default: cursor's position)
|
||||
|
||||
|
||||
@@ -8918,6 +8980,31 @@ setbufvar({expr}, {varname}, {val}) *setbufvar()*
|
||||
third argument: >
|
||||
GetValue()->setbufvar(buf, varname)
|
||||
|
||||
|
||||
setcellwidths({list}) *setcellwidths()*
|
||||
Specify overrides for cell widths of character ranges. This
|
||||
tells Vim how wide characters are, counted in screen cells.
|
||||
This overrides 'ambiwidth'. Example: >
|
||||
setcellwidths([[0xad, 0xad, 1],
|
||||
\ [0x2194, 0x2199, 2]])
|
||||
|
||||
< *E1109* *E1110* *E1111* *E1112* *E1113*
|
||||
The {list} argument is a list of lists with each three
|
||||
numbers. These three numbers are [low, high, width]. "low"
|
||||
and "high" can be the same, in which case this refers to one
|
||||
character. Otherwise it is the range of characters from "low"
|
||||
to "high" (inclusive). "width" is either 1 or 2, indicating
|
||||
the character width in screen cells.
|
||||
An error is given if the argument is invalid, also when a
|
||||
range overlaps with another.
|
||||
Only characters with value 0x100 and higher can be used.
|
||||
|
||||
To clear the overrides pass an empty list: >
|
||||
setcellwidths([]);
|
||||
< You can use the script $VIMRUNTIME/tools/emoji_list.vim to see
|
||||
the effect for known emoji characters.
|
||||
|
||||
|
||||
setcharsearch({dict}) *setcharsearch()*
|
||||
Set the current character search information to {dict},
|
||||
which contains one or more of the following entries:
|
||||
@@ -9109,7 +9196,7 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
||||
argument is ignored. See below for the supported items in
|
||||
{what}.
|
||||
*setqflist-what*
|
||||
When {what} is not present, the items in {list} or used. Each
|
||||
When {what} is not present, the items in {list} are used. Each
|
||||
item must be a dictionary. Non-dictionary items in {list} are
|
||||
ignored. Each dictionary item can contain the following
|
||||
entries:
|
||||
@@ -9330,7 +9417,7 @@ settagstack({nr}, {dict} [, {action}]) *settagstack()*
|
||||
|
||||
Returns zero for success, -1 for failure.
|
||||
|
||||
Examples (for more examples see |tagstack-examples||):
|
||||
Examples (for more examples see |tagstack-examples|):
|
||||
Empty the tag stack of window 3: >
|
||||
call settagstack(3, {'items' : []})
|
||||
|
||||
@@ -9932,17 +10019,22 @@ strlen({expr}) The result is a Number, which is the length of the String
|
||||
{expr} in bytes.
|
||||
If the argument is a Number it is first converted to a String.
|
||||
For other types an error is given.
|
||||
If you want to count the number of multi-byte characters use
|
||||
If you want to count the number of multibyte characters use
|
||||
|strchars()|.
|
||||
Also see |len()|, |strdisplaywidth()| and |strwidth()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetString()->strlen()
|
||||
|
||||
strpart({src}, {start} [, {len}]) *strpart()*
|
||||
strpart({src}, {start} [, {len} [, {chars}]]) *strpart()*
|
||||
The result is a String, which is part of {src}, starting from
|
||||
byte {start}, with the byte length {len}.
|
||||
To count characters instead of bytes use |strcharpart()|.
|
||||
When {chars} is present and TRUE then {len} is the number of
|
||||
characters positions (composing characters are not counted
|
||||
separately, thus "1" means one base character and any
|
||||
following composing characters).
|
||||
To count {start} as characters instead of bytes use
|
||||
|strcharpart()|.
|
||||
|
||||
When bytes are selected which do not exist, this doesn't
|
||||
result in an error, the bytes are simply omitted.
|
||||
@@ -9954,8 +10046,8 @@ strpart({src}, {start} [, {len}]) *strpart()*
|
||||
strpart("abcdefg", 3) == "defg"
|
||||
|
||||
< Note: To get the first character, {start} must be 0. For
|
||||
example, to get three bytes under and after the cursor: >
|
||||
strpart(getline("."), col(".") - 1, 3)
|
||||
example, to get the character under the cursor: >
|
||||
strpart(getline("."), col(".") - 1, 1, v:true)
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetText()->strpart(5)
|
||||
@@ -10130,7 +10222,7 @@ swapname({expr}) *swapname()*
|
||||
The result is the swap file path of the buffer {expr}.
|
||||
For the use of {expr}, see |bufname()| above.
|
||||
If buffer {expr} is the current buffer, the result is equal to
|
||||
|:swapname| (unless no swap file).
|
||||
|:swapname| (unless there is no swap file).
|
||||
If buffer {expr} has no swap file, returns an empty string.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@@ -10353,8 +10445,13 @@ tabpagebuflist([{arg}]) *tabpagebuflist()*
|
||||
tabpagenr([{arg}]) *tabpagenr()*
|
||||
The result is a Number, which is the number of the current
|
||||
tab page. The first tab page has number 1.
|
||||
When the optional argument is "$", the number of the last tab
|
||||
page is returned (the tab page count).
|
||||
|
||||
The optional argument {arg} supports the following values:
|
||||
$ the number of the last tab page (the tab page
|
||||
count).
|
||||
# the number of the last accessed tab page
|
||||
(where |g<Tab>| goes to). if there is no
|
||||
previous tab page 0 is returned.
|
||||
The number can be used with the |:tab| command.
|
||||
|
||||
|
||||
@@ -10944,7 +11041,8 @@ win_screenpos({nr}) *win_screenpos()*
|
||||
Return the screen position of window {nr} as a list with two
|
||||
numbers: [row, col]. The first window always has position
|
||||
[1, 1], unless there is a tabline, then it is [2, 1].
|
||||
{nr} can be the window number or the |window-ID|.
|
||||
{nr} can be the window number or the |window-ID|. Use zero
|
||||
for the current window.
|
||||
Return [0, 0] if the window cannot be found in the current
|
||||
tabpage.
|
||||
|
||||
@@ -11363,7 +11461,7 @@ mouse_urxvt Compiled with support for urxvt mouse.
|
||||
mouse_xterm Compiled with support for xterm mouse.
|
||||
mouseshape Compiled with support for 'mouseshape'.
|
||||
multi_byte Compiled with support for 'encoding' (always true)
|
||||
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
|
||||
multi_byte_encoding 'encoding' is set to a multibyte encoding.
|
||||
multi_byte_ime Compiled with support for IME input method.
|
||||
multi_lang Compiled with support for multiple languages.
|
||||
mzscheme Compiled with MzScheme interface |mzscheme|.
|
||||
@@ -12129,7 +12227,8 @@ text...
|
||||
{endmarker}
|
||||
Set internal variable {var-name} to a |List|
|
||||
containing the lines of text bounded by the string
|
||||
{endmarker}.
|
||||
{endmarker}. The lines of text is used as a
|
||||
|literal-string|.
|
||||
{endmarker} must not contain white space.
|
||||
{endmarker} cannot start with a lower case character.
|
||||
The last line should end only with the {endmarker}
|
||||
@@ -12240,10 +12339,18 @@ text...
|
||||
:const x = 1
|
||||
< is equivalent to: >
|
||||
:let x = 1
|
||||
:lockvar 1 x
|
||||
:lockvar! x
|
||||
< This is useful if you want to make sure the variable
|
||||
is not modified.
|
||||
*E995*
|
||||
is not modified. If the value is a List or Dictionary
|
||||
literal then the items also cannot be changed: >
|
||||
const ll = [1, 2, 3]
|
||||
let ll[1] = 5 " Error!
|
||||
< Nested references are not locked: >
|
||||
let lvar = ['a']
|
||||
const lconst = [0, lvar]
|
||||
let lconst[0] = 2 " Error!
|
||||
let lconst[1][0] = 'b' " OK
|
||||
< *E995*
|
||||
|:const| does not allow to for changing a variable: >
|
||||
:let x = 1
|
||||
:const x = 2 " Error!
|
||||
|
||||
@@ -163,8 +163,8 @@ file. It will be overwritten when installing a new version of Vim.
|
||||
|
||||
A. If you want to overrule all default file type checks.
|
||||
This works by writing one file for each filetype. The disadvantage is that
|
||||
means there can be many files. The advantage is that you can simply drop
|
||||
this file in the right directory to make it work.
|
||||
there can be many files. The advantage is that you can simply drop this
|
||||
file in the right directory to make it work.
|
||||
*ftdetect*
|
||||
1. Create your user runtime directory. You would normally use the first
|
||||
item of the 'runtimepath' option. Then create the directory "ftdetect"
|
||||
|
||||
@@ -1096,8 +1096,9 @@ That's all. XLFDs are not used. For Chinese this is reported to work well: >
|
||||
|
||||
For Mac OSX you can use something like this: >
|
||||
:set guifont=Monaco:h10
|
||||
Also see 'macatsui', it can help fix display problems.
|
||||
*E236*
|
||||
|
||||
Mono-spaced fonts *E236*
|
||||
|
||||
Note that the fonts must be mono-spaced (all characters have the same width).
|
||||
An exception is GTK: all fonts are accepted, but mono-spaced fonts look best.
|
||||
|
||||
|
||||
@@ -451,7 +451,7 @@ with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.
|
||||
|
||||
XPM support *w32-xpm-support*
|
||||
|
||||
GVim can be build on MS-Windows with support for XPM files. |+xpm_w32|
|
||||
GVim can be built on MS-Windows with support for XPM files. |+xpm_w32|
|
||||
See the Make_mvc.mak file for instructions, search for XPM.
|
||||
|
||||
To try out if XPM support works do this: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 8.2. Last change: 2020 Apr 05
|
||||
*help.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -158,7 +158,7 @@ Programming language support ~
|
||||
|
||||
Language support ~
|
||||
|digraph.txt| list of available digraphs
|
||||
|mbyte.txt| multi-byte text support
|
||||
|mbyte.txt| multibyte text support
|
||||
|mlang.txt| non-English language support
|
||||
|rileft.txt| right-to-left editing mode
|
||||
|arabic.txt| Arabic language support and editing
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2020 Mar 01
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2020 Jul 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -369,14 +369,16 @@ highlighting. So do these:
|
||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
|
||||
*inclusion*
|
||||
Some people make a big deal about using "his" when referring to the user,
|
||||
thinking it means we assume the user is male. That is of course not the case,
|
||||
it's just a habit of writing help text, which quite often is many years old.
|
||||
Also, a lot of the text is written by contributors for who English is not
|
||||
their first language. We do not make any assumptions about the gender of the
|
||||
user, no matter how the text is phrased. And we do not want to waste time on
|
||||
this discussion. The goal is that the reader understands how Vim works, the
|
||||
exact wording is secondary.
|
||||
Vim is for everybody, no matter race, gender or anything. Some people make a
|
||||
big deal about using "he" or "his" when referring to the user, thinking it
|
||||
means we assume the user is male. That is not the case, it's just a habit of
|
||||
writing help text, which quite often is many years old. Also, a lot of the
|
||||
text is written by contributors for whom English is not their first language.
|
||||
We do not make any assumptions about the gender of the user, no matter how the
|
||||
text is phrased. Some people have suggested using "they", but that is not
|
||||
regular English. We do not want to spend much time on this discussion. The
|
||||
goal is that the reader understands how Vim works, the exact wording is
|
||||
secondary.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -199,8 +199,8 @@ Vim evaluation and command execution, and others.
|
||||
returns it. Note that the buffer is not set as
|
||||
current.
|
||||
|
||||
vim.call({name} [,{args}])
|
||||
Proxy to call Vim function named {name} with
|
||||
vim.call({name} [, {args}])
|
||||
Proxy to call Vim function named {name} with
|
||||
arguments {args}. Example: >
|
||||
:lua print(vim.call('has', 'timers'))
|
||||
<
|
||||
|
||||
@@ -275,7 +275,7 @@ Options:
|
||||
$win delcmd {cmd} *tcl-window-delcmd*
|
||||
Registers the Tcl command {cmd} as a deletion callback for the window.
|
||||
This command is executed (in the global scope) just before the window
|
||||
is closed. Complex commands should be build with "list": >
|
||||
is closed. Complex commands should be built with "list": >
|
||||
$win delcmd [list puts vimerr "window deleted"]
|
||||
< See also |tcl-buffer-delcmd|.
|
||||
|
||||
@@ -357,7 +357,7 @@ Options:
|
||||
$buf delcmd {cmd} *tcl-buffer-delcmd*
|
||||
Registers the Tcl command {cmd} as a deletion callback for the buffer.
|
||||
This command is executed (in the global scope) just before the buffer
|
||||
is deleted. Complex commands should be build with "list": >
|
||||
is deleted. Complex commands should be built with "list": >
|
||||
$buf delcmd [list puts vimerr "buffer [$buf number] gone"]
|
||||
< See also |tcl-window-delcmd|.
|
||||
|
||||
|
||||
@@ -414,11 +414,11 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-(*
|
||||
(N When in unclosed parentheses, indent N characters from the line
|
||||
with the unclosed parentheses. Add a 'shiftwidth' for every
|
||||
with the unclosed parenthesis. Add a 'shiftwidth' for every
|
||||
extra unclosed parentheses. When N is 0 or the unclosed
|
||||
parentheses is the first non-white character in its line, line
|
||||
parenthesis is the first non-white character in its line, line
|
||||
up with the next non-white character after the unclosed
|
||||
parentheses. (default 'shiftwidth' * 2).
|
||||
parenthesis. (default 'shiftwidth' * 2).
|
||||
|
||||
cino= cino=(0 >
|
||||
if (c1 && (c2 || if (c1 && (c2 ||
|
||||
@@ -439,7 +439,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-U*
|
||||
UN When N is non-zero, do not ignore the indenting specified by
|
||||
( or u in case that the unclosed parentheses is the first
|
||||
( or u in case that the unclosed parenthesis is the first
|
||||
non-white character in its line. (default 0).
|
||||
|
||||
cino= or cino=(s cino=(s,U1 >
|
||||
@@ -452,8 +452,8 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
*cino-w*
|
||||
wN When in unclosed parentheses and N is non-zero and either
|
||||
using "(0" or "u0", respectively, or using "U0" and the unclosed
|
||||
parentheses is the first non-white character in its line, line
|
||||
up with the character immediately after the unclosed parentheses
|
||||
parenthesis is the first non-white character in its line, line
|
||||
up with the character immediately after the unclosed parenthesis
|
||||
rather than the first non-white character. (default 0).
|
||||
|
||||
cino=(0 cino=(0,w1 >
|
||||
@@ -464,11 +464,11 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-W*
|
||||
WN When in unclosed parentheses and N is non-zero and either
|
||||
using "(0" or "u0", respectively and the unclosed parentheses is
|
||||
using "(0" or "u0", respectively and the unclosed parenthesis is
|
||||
the last non-white character in its line and it is not the
|
||||
closing parentheses, indent the following line N characters
|
||||
closing parenthesis, indent the following line N characters
|
||||
relative to the outer context (i.e. start of the line or the
|
||||
next unclosed parentheses). (default: 0).
|
||||
next unclosed parenthesis). (default: 0).
|
||||
|
||||
cino=(0 cino=(0,W4 >
|
||||
a_long_line( a_long_line(
|
||||
@@ -495,8 +495,8 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-m*
|
||||
mN When N is non-zero, line up a line starting with a closing
|
||||
parentheses with the first character of the line with the
|
||||
matching opening parentheses. (default 0).
|
||||
parenthesis with the first character of the line with the
|
||||
matching opening parenthesis. (default 0).
|
||||
|
||||
cino=(s cino=(s,m1 >
|
||||
c = c1 && ( c = c1 && (
|
||||
@@ -510,7 +510,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-M*
|
||||
MN When N is non-zero, line up a line starting with a closing
|
||||
parentheses with the first character of the previous line.
|
||||
parenthesis with the first character of the previous line.
|
||||
(default 0).
|
||||
|
||||
cino= cino=M1 >
|
||||
@@ -569,7 +569,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
recognize preprocessor lines; right-shifting lines that start
|
||||
with "#" does not work.
|
||||
|
||||
|
||||
*cino-P*
|
||||
PN When N is non-zero recognize C pragmas, and indent them like any
|
||||
other code; does not concern other preprocessor directives.
|
||||
When N is zero (default): don't recognize C pragmas, treating
|
||||
@@ -996,7 +996,7 @@ Indent after a nested paren: >
|
||||
Indent for a continuation line: >
|
||||
let g:pyindent_continue = 'shiftwidth() * 2'
|
||||
|
||||
The method uses |searchpair()| to look back for unclosed parenthesis. This
|
||||
The method uses |searchpair()| to look back for unclosed parentheses. This
|
||||
can sometimes be slow, thus it timeouts after 150 msec. If you notice the
|
||||
indenting isn't correct, you can set a larger timeout in msec: >
|
||||
let g:pyindent_searchpair_timeout = 500
|
||||
|
||||
@@ -440,6 +440,7 @@ tag char note action in Normal mode ~
|
||||
|<C-LeftMouse>| <C-LeftMouse> ":ta" to the keyword at the mouse click
|
||||
|<C-Right>| <C-Right> 1 same as "w"
|
||||
|<C-RightMouse>| <C-RightMouse> same as "CTRL-T"
|
||||
|<C-Tab>| <C-Tab> same as "g<Tab>"
|
||||
|<Del>| ["x]<Del> 2 same as "x"
|
||||
|N<Del>| {count}<Del> remove the last digit from {count}
|
||||
|<Down>| <Down> 1 same as "j"
|
||||
@@ -587,6 +588,8 @@ tag command action in Normal mode ~
|
||||
following the file name.
|
||||
|CTRL-W_gt| CTRL-W g t same as `gt`: go to next tab page
|
||||
|CTRL-W_gT| CTRL-W g T same as `gT`: go to previous tab page
|
||||
|CTRL-W_g<Tab>| CTRL-W g <Tab> same as |g<Tab>|: go to last accessed tab
|
||||
page.
|
||||
|CTRL-W_h| CTRL-W h go to Nth left window (stop at first window)
|
||||
|CTRL-W_i| CTRL-W i split window and jump to declaration of
|
||||
identifier under the cursor
|
||||
@@ -805,6 +808,7 @@ tag char note action in Normal mode ~
|
||||
|g<LeftMouse>| g<LeftMouse> same as <C-LeftMouse>
|
||||
g<MiddleMouse> same as <C-MiddleMouse>
|
||||
|g<RightMouse>| g<RightMouse> same as <C-RightMouse>
|
||||
|g<Tab>| g<Tab> go to the last accessed tab page.
|
||||
|g<Up>| g<Up> 1 same as "gk"
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.2. Last change: 2020 May 30
|
||||
*intro.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -232,8 +232,8 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Flemming Madsen X11 client-server, various features and patches
|
||||
Tony Mechelynck answers many user questions
|
||||
Paul Moore Python interface extensions, many patches
|
||||
Katsuhito Nagano Work on multi-byte versions
|
||||
Sung-Hyun Nam Work on multi-byte versions
|
||||
Katsuhito Nagano Work on multibyte versions
|
||||
Sung-Hyun Nam Work on multibyte versions
|
||||
Vince Negri Win32 GUI and generic console enhancements
|
||||
Steve Oualline Author of the first Vim book |frombook|
|
||||
Dominique Pelle Valgrind reports and many fixes
|
||||
@@ -510,7 +510,7 @@ the ":map" command. The rules are:
|
||||
<M-a> Meta- a ('a' with bit 8 set)
|
||||
<M-A> Meta- A ('A' with bit 8 set)
|
||||
<t_kd> "kd" termcap entry (cursor down key)
|
||||
Although you can specify <M-{char}> with {char} being a multi-byte
|
||||
Although you can specify <M-{char}> with {char} being a multibyte
|
||||
character, Vim may not be able to know what byte sequence that is and then
|
||||
it won't work.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.2. Last change: 2020 Apr 23
|
||||
*map.txt* For Vim version 8.2. Last change: 2020 Sep 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -191,6 +191,12 @@ whether to use the "," mapping or the longer one. To avoid this add the
|
||||
<nowait> argument. Then the mapping will be used when it matches, Vim does
|
||||
not wait for more characters to be typed. However, if the characters were
|
||||
already typed they are used.
|
||||
Note that this works when the <nowait> mapping fully matches and is found
|
||||
before any partial matches. This works when:
|
||||
- There is only one matching buffer-local mapping, since these are always
|
||||
found before global mappings.
|
||||
- There is another buffer-local mapping that partly matches, but it is
|
||||
defined earlier (last defined mapping is found first).
|
||||
|
||||
*:map-<silent>* *:map-silent*
|
||||
To define a mapping which will not be echoed on the command line, add
|
||||
@@ -283,15 +289,8 @@ Here is an example that inserts a list number that increases: >
|
||||
CTRL-L inserts the next number, CTRL-R resets the count. CTRL-R returns an
|
||||
empty string, so that nothing is inserted.
|
||||
|
||||
Note that there are some tricks to make special keys work and escape CSI bytes
|
||||
in the text. The |:map| command also does this, thus you must avoid that it
|
||||
is done twice. This does not work: >
|
||||
:imap <expr> <F3> "<Char-0x611B>"
|
||||
Because the <Char- sequence is escaped for being a |:imap| argument and then
|
||||
again for using <expr>. This does work: >
|
||||
:imap <expr> <F3> "\u611B"
|
||||
Using 0x80 as a single byte before other text does not work, it will be seen
|
||||
as a special key.
|
||||
Note that using 0x80 as a single byte before other text does not work, it will
|
||||
be seen as a special key.
|
||||
|
||||
|
||||
1.3 MAPPING AND MODES *:map-modes*
|
||||
@@ -595,7 +594,7 @@ construct can be used:
|
||||
<Char-033> character 27
|
||||
<Char-0x7f> character 127
|
||||
<S-Char-114> character 114 ('r') shifted ('R')
|
||||
This is useful to specify a (multi-byte) character in a 'keymap' file.
|
||||
This is useful to specify a (multibyte) character in a 'keymap' file.
|
||||
Upper and lowercase differences are ignored.
|
||||
|
||||
*map-comments*
|
||||
@@ -875,35 +874,47 @@ g@{motion} Call the function set by the 'operatorfunc' option.
|
||||
|
||||
Here is an example that counts the number of spaces with <F4>: >
|
||||
|
||||
nmap <silent> <F4> :set opfunc=CountSpaces<CR>g@
|
||||
vmap <silent> <F4> :<C-U>call CountSpaces(visualmode(), 1)<CR>
|
||||
nnoremap <expr> <F4> CountSpaces()
|
||||
xnoremap <expr> <F4> CountSpaces()
|
||||
" doubling <F4> works on a line
|
||||
nnoremap <expr> <F4><F4> CountSpaces() .. '_'
|
||||
|
||||
function CountSpaces(type = '') abort
|
||||
if a:type == ''
|
||||
set opfunc=CountSpaces
|
||||
return 'g@'
|
||||
endif
|
||||
|
||||
function! CountSpaces(type, ...)
|
||||
let sel_save = &selection
|
||||
let &selection = "inclusive"
|
||||
let reg_save = @@
|
||||
let reg_save = getreginfo('"')
|
||||
let cb_save = &clipboard
|
||||
let visual_marks_save = [getpos("'<"), getpos("'>")]
|
||||
|
||||
if a:0 " Invoked from Visual mode, use gv command.
|
||||
silent exe "normal! gvy"
|
||||
elseif a:type == 'line'
|
||||
silent exe "normal! '[V']y"
|
||||
else
|
||||
silent exe "normal! `[v`]y"
|
||||
endif
|
||||
|
||||
echomsg strlen(substitute(@@, '[^ ]', '', 'g'))
|
||||
|
||||
let &selection = sel_save
|
||||
let @@ = reg_save
|
||||
try
|
||||
set clipboard= selection=inclusive
|
||||
let commands = #{line: "'[V']y", char: "`[v`]y", block: "`[\<c-v>`]y"}
|
||||
silent exe 'noautocmd keepjumps normal! ' .. get(commands, a:type, '')
|
||||
echom getreg('"')->count(' ')
|
||||
finally
|
||||
call setreg('"', reg_save)
|
||||
call setpos("'<", visual_marks_save[0])
|
||||
call setpos("'>", visual_marks_save[1])
|
||||
let &clipboard = cb_save
|
||||
let &selection = sel_save
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
An <expr> mapping is used to be able to fetch any prefixed count and register.
|
||||
This also avoids using a command line, which would trigger CmdlineEnter and
|
||||
CmdlineLeave autocommands.
|
||||
|
||||
Note that the 'selection' option is temporarily set to "inclusive" to be able
|
||||
to yank exactly the right text by using Visual mode from the '[ to the ']
|
||||
mark.
|
||||
|
||||
Also note that there is a separate mapping for Visual mode. It removes the
|
||||
"'<,'>" range that ":" inserts in Visual mode and invokes the function with
|
||||
visualmode() and an extra argument.
|
||||
Also note that the 'clipboard' option is temporarily emptied to avoid
|
||||
clobbering the `"*` or `"+` registers, if its value contains the item `unnamed`
|
||||
or `unnamedplus`.
|
||||
|
||||
==============================================================================
|
||||
2. Abbreviations *abbreviations* *Abbreviations*
|
||||
@@ -1167,6 +1178,10 @@ When executing an autocommand or a user command, it will run in the context of
|
||||
the script it was defined in. This makes it possible that the command calls a
|
||||
local function or uses a local mapping.
|
||||
|
||||
In case the value is used in a context where <SID> cannot be correctly
|
||||
expanded, use the expand() function: >
|
||||
let &includexpr = expand('<SID>') .. 'My_includeexpr()'
|
||||
|
||||
Otherwise, using "<SID>" outside of a script context is an error.
|
||||
|
||||
If you need to get the script number to use in a complicated script, you can
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.2. Last change: 2019 Jul 04
|
||||
*mbyte.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -36,7 +36,7 @@ characters or boxes when using another encoding.
|
||||
This is a summary of the multibyte features in Vim. If you are lucky it works
|
||||
as described and you can start using Vim without much trouble. If something
|
||||
doesn't work you will have to read the rest. Don't be surprised if it takes
|
||||
quite a bit of work and experimenting to make Vim use all the multi-byte
|
||||
quite a bit of work and experimenting to make Vim use all the multibyte
|
||||
features. Unfortunately, every system has its own way to deal with multibyte
|
||||
languages and it is quite complicated.
|
||||
|
||||
@@ -123,7 +123,7 @@ You can also set 'guifont' alone, Vim will try to find a matching
|
||||
|
||||
INPUT
|
||||
|
||||
There are several ways to enter multi-byte characters:
|
||||
There are several ways to enter multibyte characters:
|
||||
- For X11 XIM can be used. See |XIM|.
|
||||
- For MS-Windows IME can be used. See |IME|.
|
||||
- For all systems keymaps can be used. See |mbyte-keymap|.
|
||||
@@ -237,11 +237,11 @@ encoded with one byte, we call this a single-byte encoding. The most often
|
||||
used one is called "latin1". This limits the number of characters to 256.
|
||||
Some of these are control characters, thus even fewer can be used for text.
|
||||
|
||||
When some characters use two or more bytes, we call this a multi-byte
|
||||
When some characters use two or more bytes, we call this a multibyte
|
||||
encoding. This allows using much more than 256 characters, which is required
|
||||
for most East Asian languages.
|
||||
|
||||
Most multi-byte encodings use one byte for the first 127 characters. These
|
||||
Most multibyte encodings use one byte for the first 127 characters. These
|
||||
are equal to ASCII, which makes it easy to exchange plain-ASCII text, no
|
||||
matter what language is used. Thus you might see the right text even when the
|
||||
encoding was set wrong.
|
||||
@@ -488,11 +488,11 @@ possible.
|
||||
==============================================================================
|
||||
4. Using a terminal *mbyte-terminal*
|
||||
|
||||
The GUI fully supports multi-byte characters. It is also possible in a
|
||||
The GUI fully supports multibyte characters. It is also possible in a
|
||||
terminal, if the terminal supports the same encoding that Vim uses. Thus this
|
||||
is less flexible.
|
||||
|
||||
For example, you can run Vim in a xterm with added multi-byte support and/or
|
||||
For example, you can run Vim in a xterm with added multibyte support and/or
|
||||
|XIM|. Examples are kterm (Kanji term) and hanterm (for Korean), Eterm
|
||||
(Enlightened terminal) and rxvt.
|
||||
|
||||
@@ -544,7 +544,7 @@ For Vim you may need to set 'encoding' to "utf-8".
|
||||
5. Fonts on X11 *mbyte-fonts-X11*
|
||||
|
||||
Unfortunately, using fonts in X11 is complicated. The name of a single-byte
|
||||
font is a long string. For multi-byte fonts we need several of these...
|
||||
font is a long string. For multibyte fonts we need several of these...
|
||||
|
||||
Note: Most of this is no longer relevant for GTK+ 2. Selecting a font via
|
||||
its XLFD is not supported; see 'guifont' for an example of how to
|
||||
@@ -610,7 +610,7 @@ written like:
|
||||
|
||||
X FONTSET
|
||||
*fontset* *xfontset*
|
||||
A single-byte charset is typically associated with one font. For multi-byte
|
||||
A single-byte charset is typically associated with one font. For multibyte
|
||||
charsets a combination of fonts is often used. This means that one group of
|
||||
characters are used from one font and another group from another font (which
|
||||
might be double wide). This collection of fonts is called a fontset.
|
||||
@@ -1436,7 +1436,7 @@ not everybody is able to type a composing character.
|
||||
==============================================================================
|
||||
12. Overview of options *mbyte-options*
|
||||
|
||||
These options are relevant for editing multi-byte files. Check the help in
|
||||
These options are relevant for editing multibyte files. Check the help in
|
||||
options.txt for detailed information.
|
||||
|
||||
'encoding' Encoding used for the keyboard and display. It is also the
|
||||
@@ -1456,14 +1456,14 @@ options.txt for detailed information.
|
||||
languages where a sequence of characters can be broken
|
||||
anywhere.
|
||||
|
||||
'guifontset' The list of font names used for a multi-byte encoding. When
|
||||
'guifontset' The list of font names used for a multibyte encoding. When
|
||||
this option is not empty, it replaces 'guifont'.
|
||||
|
||||
'keymap' Specify the name of a keyboard mapping.
|
||||
|
||||
==============================================================================
|
||||
|
||||
Contributions specifically for the multi-byte features by:
|
||||
Contributions specifically for the multibyte features by:
|
||||
Chi-Deok Hwang <hwang@mizi.co.kr>
|
||||
SungHyun Nam <goweol@gmail.com>
|
||||
K.Nagano <nagano@atese.advantest.co.jp>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.2. Last change: 2020 Jan 01
|
||||
*message.txt* For Vim version 8.2. Last change: 2020 Sep 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -19,13 +19,14 @@ The ":messages" command can be used to view previously given messages. This
|
||||
is especially useful when messages have been overwritten or truncated. This
|
||||
depends on the 'shortmess' option.
|
||||
|
||||
:messages Show all messages.
|
||||
:mes[sages] Show all messages.
|
||||
|
||||
:{count}messages Show the {count} most recent messages.
|
||||
:{count}mes[sages] Show the {count} most recent messages.
|
||||
|
||||
:messages clear Clear all messages.
|
||||
:mes[sages] clear Clear all messages.
|
||||
|
||||
:{count}messages clear Clear messages, keeping only the {count} most
|
||||
:{count}mes[sages] clear
|
||||
Clear messages, keeping only the {count} most
|
||||
recent ones.
|
||||
|
||||
The number of remembered messages is fixed at 20 for the tiny version and 200
|
||||
@@ -74,7 +75,7 @@ See `:messages` above.
|
||||
|
||||
|
||||
LIST OF MESSAGES
|
||||
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
|
||||
*E222* *E228* *E232* *E293* *E298* *E304* *E317*
|
||||
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
|
||||
*E323* *E341* *E473* *E570* *E685* *E292* >
|
||||
Add to read buffer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mlang.txt* For Vim version 8.2. Last change: 2020 Jun 16
|
||||
*mlang.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -7,7 +7,7 @@
|
||||
Multi-language features *multilang* *multi-lang*
|
||||
|
||||
This is about using messages and menus in various languages. For editing
|
||||
multi-byte text see |multibyte|.
|
||||
multibyte text see |multibyte|.
|
||||
|
||||
The basics are explained in the user manual: |usr_45.txt|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.2. Last change: 2019 Nov 16
|
||||
*motion.txt* For Vim version 8.2. Last change: 2020 Aug 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -495,10 +495,11 @@ a set of section macros, specified by the pairs of characters in the
|
||||
'sections' option. The default is "SHNHH HUnhsh", which defines a section to
|
||||
start at the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh".
|
||||
|
||||
The "]" and "[" commands stop at the '{' or '}' in the first column. This is
|
||||
useful to find the start or end of a function in a C program. Note that the
|
||||
first character of the command determines the search direction and the
|
||||
second character the type of brace found.
|
||||
The "]]" and "[[" commands stop at the '{' in the first column. This is
|
||||
useful to find the start of a function in a C program. To search for a '}' in
|
||||
the first column, the end of a C function, use "][" (forward) or "[]"
|
||||
(backward). Note that the first character of the command determines the
|
||||
search direction.
|
||||
|
||||
If your '{' or '}' are not in the first column, and you would like to use "[["
|
||||
and "]]" anyway, try these mappings: >
|
||||
@@ -1142,7 +1143,7 @@ sequence of small changes in a line, for example "xxxxx", adds many positions
|
||||
to the change list. When 'textwidth' is zero 'wrapmargin' is used. When that
|
||||
also isn't set a fixed number of 79 is used. Detail: For the computations
|
||||
bytes are used, not characters, to avoid a speed penalty (this only matters
|
||||
for multi-byte encodings).
|
||||
for multibyte encodings).
|
||||
|
||||
Note that when text has been inserted or deleted the cursor position might be
|
||||
a bit different from the position of the change. Especially when lines have
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 8.2. Last change: 2020 Apr 19
|
||||
*netbeans.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
@@ -362,12 +362,12 @@ color Argument with either a decimal number, "none" (without the
|
||||
offset A number argument that indicates a byte position in a buffer.
|
||||
The first byte has offset zero. Line breaks are counted for
|
||||
how they appear in the file (CR/LF counts for two bytes).
|
||||
Note that a multi-byte character is counted for the number of
|
||||
Note that a multibyte character is counted for the number of
|
||||
bytes it takes.
|
||||
|
||||
lnum/col Argument with a line number and column number position. The
|
||||
line number starts with one, the column is the byte position,
|
||||
starting with zero. Note that a multi-byte character counts
|
||||
starting with zero. Note that a multibyte character counts
|
||||
for several columns.
|
||||
|
||||
pathname String argument: file name with full path.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2020 Jul 18
|
||||
*options.txt* For Vim version 8.2. Last change: 2020 Sep 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -703,6 +703,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The value "double" cannot be used if 'listchars' or 'fillchars'
|
||||
contains a character that would be double width.
|
||||
|
||||
The values are overruled for characters specified with
|
||||
|setcellwidths()|.
|
||||
|
||||
There are a number of CJK fonts for which the width of glyphs for
|
||||
those characters are solely based on how many octets they take in
|
||||
legacy/traditional CJK encodings. In those encodings, Euro,
|
||||
@@ -727,8 +730,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'antialias' 'anti' boolean (default: off)
|
||||
global
|
||||
{only available when compiled with GUI enabled
|
||||
on Mac OS X}
|
||||
This option only has an effect in the GUI version of Vim on Mac OS X
|
||||
on macOS}
|
||||
This option only has an effect in the GUI version of Vim on macOS
|
||||
v10.2 or later. When on, Vim will use smooth ("antialiased") fonts,
|
||||
which can be easier to read at certain sizes on certain displays.
|
||||
Setting this option can sometimes cause problems if 'guifont' is set
|
||||
@@ -2715,6 +2718,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
for Unix: ".,~/tmp,/var/tmp,/tmp")
|
||||
global
|
||||
List of directory names for the swap file, separated with commas.
|
||||
Recommended value: ".,~/vimswap//" - this will put the swap file next
|
||||
to the edited file if possible, and in your personal swap directory
|
||||
otherwise. Make sure "~/vimswap//" is only readable for you.
|
||||
|
||||
Possible items:
|
||||
- The swap file will be created in the first directory where this is
|
||||
possible.
|
||||
- Empty means that no swap file will be used (recovery is
|
||||
@@ -2728,8 +2736,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
is replaced with the path name of the edited file.
|
||||
- For Unix and Win32, if a directory ends in two path separators "//",
|
||||
the swap file name will be built from the complete path to the file
|
||||
with all path separators substituted to percent '%' signs. This will
|
||||
ensure file name uniqueness in the preserve directory.
|
||||
with all path separators replaced by percent '%' signs (including
|
||||
the colon following the drive letter on Win32). This will ensure
|
||||
file name uniqueness in the preserve directory.
|
||||
On Win32, it is also possible to end with "\\". However, When a
|
||||
separating comma is following, you must use "//", since "\\" will
|
||||
include the comma in the file name. Therefore it is recommended to
|
||||
@@ -2749,9 +2758,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
the same file twice will result in a warning. Using "/tmp" on Unix is
|
||||
discouraged: When the system crashes you lose the swap file.
|
||||
"/var/tmp" is often not cleared when rebooting, thus is a better
|
||||
choice than "/tmp". But it can contain a lot of files, your swap
|
||||
files get lost in the crowd. That is why a "tmp" directory in your
|
||||
home directory is tried first.
|
||||
choice than "/tmp". But others on the computer may be able to see the
|
||||
files, and it can contain a lot of files, your swap files get lost in
|
||||
the crowd. That is why a "tmp" directory in your home directory is
|
||||
tried first.
|
||||
The use of |:set+=| and |:set-=| is preferred when adding or removing
|
||||
directories from the list. This avoids problems when a future version
|
||||
uses another default.
|
||||
@@ -2826,7 +2836,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This is specified with 'fileencoding'. The conversion is done with
|
||||
iconv() or as specified with 'charconvert'.
|
||||
|
||||
If you need to know whether 'encoding' is a multi-byte encoding, you
|
||||
If you need to know whether 'encoding' is a multibyte encoding, you
|
||||
can use: >
|
||||
if has("multi_byte_encoding")
|
||||
<
|
||||
@@ -4540,7 +4550,7 @@ 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.
|
||||
|
||||
*'isprint'* *'isp'*
|
||||
'isprint' 'isp' string (default for Win32 and Macintosh:
|
||||
'isprint' 'isp' string (default for Win32 and macOS:
|
||||
"@,~-255"; otherwise: "@,161-255")
|
||||
global
|
||||
The characters given by this option are displayed directly on the
|
||||
@@ -4917,18 +4927,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'macatsui'* *'nomacatsui'*
|
||||
'macatsui' boolean (default on)
|
||||
global
|
||||
{only available in Mac GUI version}
|
||||
This is a workaround for when drawing doesn't work properly. When set
|
||||
and compiled with multi-byte support ATSUI text drawing is used. When
|
||||
not set ATSUI text drawing is not used. Switch this option off when
|
||||
you experience drawing problems. In a future version the problems may
|
||||
be solved and this option becomes obsolete. Therefore use this method
|
||||
to unset it: >
|
||||
if exists('&macatsui')
|
||||
set nomacatsui
|
||||
endif
|
||||
< Another option to check if you have drawing problems is
|
||||
'termencoding'.
|
||||
{not supported}
|
||||
No longer supported, as the Mac OS X GUI code was removed.
|
||||
|
||||
*'magic'* *'nomagic'*
|
||||
'magic' boolean (default on)
|
||||
@@ -6191,7 +6191,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
screen. If the statusline is given by 'statusline' (i.e. not empty),
|
||||
this option takes precedence over 'ruler' and 'rulerformat'
|
||||
If the number of characters displayed is different from the number of
|
||||
bytes in the text (e.g., for a TAB or a multi-byte character), both
|
||||
bytes in the text (e.g., for a TAB or a multibyte character), both
|
||||
the text column (byte number) and the screen column are shown,
|
||||
separated with a dash.
|
||||
For an empty line "0-1" is shown.
|
||||
@@ -6234,7 +6234,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
$VIMRUNTIME,
|
||||
$VIM/vimfiles/after,
|
||||
$HOME/vimfiles/after"
|
||||
Macintosh: "$VIM:vimfiles,
|
||||
macOS: "$VIM:vimfiles,
|
||||
$VIMRUNTIME,
|
||||
$VIM:vimfiles:after"
|
||||
Haiku: "$BE_USER_SETTINGS/vim,
|
||||
@@ -6564,7 +6564,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
For the Amiga the default is ">". For MS-Windows the default is
|
||||
">%s 2>&1". The output is directly saved in a file and not echoed to
|
||||
the screen.
|
||||
For Unix the default it "| tee". The stdout of the compiler is saved
|
||||
For Unix the default is "| tee". The stdout of the compiler is saved
|
||||
in a file and echoed to the screen. If the 'shell' option is "csh" or
|
||||
"tcsh" after initializations, the default becomes "|& tee". If the
|
||||
'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta",
|
||||
@@ -7738,14 +7738,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
For further details see |arabic.txt|.
|
||||
|
||||
*'termencoding'* *'tenc'*
|
||||
'termencoding' 'tenc' string (default ""; with GTK+ GUI: "utf-8"; with
|
||||
Macintosh GUI: "macroman")
|
||||
'termencoding' 'tenc' string (default ""; with GTK+ GUI: "utf-8")
|
||||
global
|
||||
Encoding used for the terminal. This specifies what character
|
||||
encoding the keyboard produces and the display will understand. For
|
||||
the GUI it only applies to the keyboard ('encoding' is used for the
|
||||
display). Except for the Mac when 'macatsui' is off, then
|
||||
'termencoding' should be "macroman".
|
||||
display).
|
||||
*E617* *E950*
|
||||
Note: This does not apply to the GTK+ GUI. After the GUI has been
|
||||
successfully initialized, 'termencoding' is forcibly set to "utf-8".
|
||||
@@ -7810,8 +7808,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'termwinsize'* *'tws'*
|
||||
'termwinsize' 'tws' string (default "")
|
||||
local to window
|
||||
Size of the |terminal| window. Format: {rows}x{columns} or
|
||||
{rows}*{columns}.
|
||||
Size used when opening the |terminal| window. Format:
|
||||
{rows}x{columns} or {rows}*{columns}.
|
||||
- When empty the terminal gets the size from the window.
|
||||
- When set with a "x" (e.g., "24x80") the terminal size is not
|
||||
adjusted to the window size. If the window is smaller only the
|
||||
@@ -7822,6 +7820,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
- When rows is zero then use the height of the window.
|
||||
- When columns is zero then use the width of the window.
|
||||
- Using "0x0" or "0*0" is the same as empty.
|
||||
- Can be overruled in the |term_start()| options with "term_rows" and
|
||||
"term_cols".
|
||||
|
||||
Examples:
|
||||
"30x0" uses 30 rows and the current window width.
|
||||
@@ -8368,7 +8368,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
>= 14 Anything pending in a ":finally" clause.
|
||||
>= 15 Every executed Ex command from a script (truncated at 200
|
||||
characters).
|
||||
>= 16 Every executed Ex command
|
||||
>= 16 Every executed Ex command.
|
||||
|
||||
This option can also be set with the "-V" argument. See |-V|.
|
||||
This option is also set by the |:verbose| command.
|
||||
@@ -8391,7 +8391,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'viewdir' 'vdir' string (default for Amiga and Win32:
|
||||
"$VIM/vimfiles/view",
|
||||
for Unix: "~/.vim/view",
|
||||
for Macintosh: "$VIM:vimfiles:view"
|
||||
for macOS: "$VIM:vimfiles:view"
|
||||
for VMS: "sys$login:vimfiles/view")
|
||||
global
|
||||
{not available when compiled without the |+mksession|
|
||||
@@ -8907,7 +8907,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{only available when compiled with the |terminal|
|
||||
feature on MS-Windows}
|
||||
Specifies the name of the winpty shared library, used for the
|
||||
|:terminal| command. The default depends on whether was build as a
|
||||
|:terminal| command. The default depends on whether Vim was built as a
|
||||
32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
|
||||
a fallback.
|
||||
Environment variables are expanded |:set_env|.
|
||||
|
||||
@@ -88,7 +88,7 @@ VAX C compiler is not fully ANSI C compatible in pre-processor directives
|
||||
semantics, therefore you have to use a converter program that will do the lion
|
||||
part of the job. For detailed instructions read file INSTALLvms.txt
|
||||
|
||||
MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
|
||||
MMS_VIM.EXE is built together with VIM.EXE, but for XXD.EXE you should
|
||||
change to a subdirectory and build it separately.
|
||||
|
||||
CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*pattern.txt* For Vim version 8.2. Last change: 2020 Sep 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -797,11 +797,12 @@ An ordinary atom can be:
|
||||
^beep( the start of the C function "beep" (probably).
|
||||
|
||||
*/\^*
|
||||
\^ Matches literal '^'. Can be used at any position in the pattern.
|
||||
\^ Matches literal '^'. Can be used at any position in the pattern, but
|
||||
not inside [].
|
||||
|
||||
*/\_^*
|
||||
\_^ Matches start-of-line. |/zero-width| Can be used at any position in
|
||||
the pattern.
|
||||
the pattern, but not inside [].
|
||||
Example matches ~
|
||||
\_s*\_^foo white space and blank lines and then "foo" at
|
||||
start-of-line
|
||||
@@ -812,12 +813,13 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
|/zero-width|
|
||||
|
||||
*/\$*
|
||||
\$ Matches literal '$'. Can be used at any position in the pattern.
|
||||
\$ Matches literal '$'. Can be used at any position in the pattern, but
|
||||
not inside [].
|
||||
|
||||
*/\_$*
|
||||
\_$ Matches end-of-line. |/zero-width| Can be used at any position in the
|
||||
pattern. Note that "a\_$b" never matches, since "b" cannot match an
|
||||
end-of-line. Use "a\nb" instead |/\n|.
|
||||
pattern, but not inside []. Note that "a\_$b" never matches, since
|
||||
"b" cannot match an end-of-line. Use "a\nb" instead |/\n|.
|
||||
Example matches ~
|
||||
foo\_$\_s* "foo" at end-of-line and following white space and
|
||||
blank lines
|
||||
@@ -840,8 +842,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
|/zero-width|
|
||||
|
||||
*/\zs*
|
||||
\zs Matches at any position, and sets the start of the match there: The
|
||||
next char is the first char of the whole match. |/zero-width|
|
||||
\zs Matches at any position, but not inside [], and sets the start of the
|
||||
match there: The next char is the first char of the whole match.
|
||||
|/zero-width|
|
||||
Example: >
|
||||
/^\s*\zsif
|
||||
< matches an "if" at the start of a line, ignoring white space.
|
||||
@@ -852,8 +855,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
This cannot be followed by a multi. *E888*
|
||||
{not available when compiled without the |+syntax| feature}
|
||||
*/\ze*
|
||||
\ze Matches at any position, and sets the end of the match there: The
|
||||
previous char is the last char of the whole match. |/zero-width|
|
||||
\ze Matches at any position, but not inside [], and sets the end of the
|
||||
match there: The previous char is the last char of the whole match.
|
||||
|/zero-width|
|
||||
Can be used multiple times, the last one encountered in a matching
|
||||
branch is used.
|
||||
Example: "end\ze\(if\|for\)" matches the "end" in "endif" and
|
||||
@@ -939,7 +943,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
These three can be used to match specific columns in a buffer or
|
||||
string. The "23" can be any column number. The first column is 1.
|
||||
Actually, the column is the byte number (thus it's not exactly right
|
||||
for multi-byte characters).
|
||||
for multibyte characters).
|
||||
WARNING: When inserting or deleting text Vim does not automatically
|
||||
update the matches. This means Syntax highlighting quickly becomes
|
||||
wrong.
|
||||
@@ -994,7 +998,7 @@ Character classes:
|
||||
\p printable character (see 'isprint' option) */\p*
|
||||
\P like "\p", but excluding digits */\P*
|
||||
|
||||
NOTE: the above also work for multi-byte characters. The ones below only
|
||||
NOTE: the above also work for multibyte characters. The ones below only
|
||||
match ASCII characters, as indicated by the range.
|
||||
|
||||
*whitespace* *white-space*
|
||||
@@ -1131,9 +1135,9 @@ x A single character, with no special meaning, matches itself
|
||||
a list of at least one character, each of which is either '-', '.',
|
||||
'/', alphabetic, numeric, '_' or '~'.
|
||||
These items only work for 8-bit characters, except [:lower:] and
|
||||
[:upper:] also work for multi-byte characters when using the new
|
||||
[:upper:] also work for multibyte characters when using the new
|
||||
regexp engine. See |two-engines|. In the future these items may
|
||||
work for multi-byte characters. For now, to get all "alpha"
|
||||
work for multibyte characters. For now, to get all "alpha"
|
||||
characters you can use: [[:lower:][:upper:]].
|
||||
|
||||
The "Func" column shows what library function is used. The
|
||||
@@ -1257,8 +1261,8 @@ When working with expression evaluation, a <NL> character in the pattern
|
||||
matches a <NL> in the string. The use of "\n" (backslash n) to match a <NL>
|
||||
doesn't work there, it only works to match text in the buffer.
|
||||
|
||||
*pattern-multi-byte*
|
||||
Patterns will also work with multi-byte characters, mostly as you would
|
||||
*pattern-multi-byte* *pattern-multibyte*
|
||||
Patterns will also work with multibyte characters, mostly as you would
|
||||
expect. But invalid bytes may cause trouble, a pattern with an invalid byte
|
||||
will probably never match.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 8.2. Last change: 2020 Jan 14
|
||||
*pi_netrw.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@@ -3054,7 +3054,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
(see |netrw-c-tab|).
|
||||
|
||||
*g:netrw_xstrlen* Controls how netrw computes string lengths,
|
||||
including multi-byte characters' string
|
||||
including multibyte characters' string
|
||||
length. (thanks to N Weibull, T Mechelynck)
|
||||
=0: uses Vim's built-in strlen()
|
||||
=1: number of codepoints (Latin a + combining
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 8.2. Last change: 2020 May 18
|
||||
*popup.txt* For Vim version 8.2. Last change: 2020 Jul 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -74,9 +74,9 @@ 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.
|
||||
The width of the window is normally equal to the longest visible 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*print.txt* For Vim version 8.2. Last change: 2019 Dec 17
|
||||
*print.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -114,7 +114,7 @@ If 'printencoding' is empty or Vim cannot find the file then it will use
|
||||
encoding file. If Vim is unable to find a character encoding file then it
|
||||
will use the "latin1" print character encoding file.
|
||||
|
||||
When 'encoding' is set to a multi-byte encoding, Vim will try to convert
|
||||
When 'encoding' is set to a multibyte encoding, Vim will try to convert
|
||||
characters to the printing encoding for printing (if 'printencoding' is empty
|
||||
then the conversion will be to latin1). Conversion to a printing encoding
|
||||
other than latin1 will require Vim to be compiled with the |+iconv| feature.
|
||||
@@ -269,7 +269,7 @@ Japanese text you would do the following; >
|
||||
:set printmbcharset=JIS_X_1983
|
||||
|
||||
If 'printmbcharset' is not one of the above values then it is assumed to
|
||||
specify a custom multi-byte character set and no check will be made that it is
|
||||
specify a custom multibyte character set and no check will be made that it is
|
||||
compatible with the value for 'printencoding'. Vim will look for a file
|
||||
defining the character set in the "print" directory in 'runtimepath'.
|
||||
|
||||
@@ -304,7 +304,7 @@ printing of characters in the ASCII code range.
|
||||
a:yes Use ASCII character set for codes in the ASCII
|
||||
a:no (default) code range.
|
||||
|
||||
The following is an example of specifying two multi-byte fonts, one for normal
|
||||
The following is an example of specifying two multibyte fonts, one for normal
|
||||
and italic printing and one for bold and bold-italic printing, and using
|
||||
Courier to print codes in the ASCII code range but using the national
|
||||
character set: >
|
||||
@@ -420,10 +420,10 @@ There are currently a number of limitations with PostScript printing:
|
||||
possible to get all the characters in an encoding to print by installing a
|
||||
new version of the Courier font family.
|
||||
|
||||
- Multi-byte support - Currently Vim will try to convert multi-byte characters
|
||||
- Multi-byte support - Currently Vim will try to convert multibyte characters
|
||||
to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
|
||||
empty). Any characters that are not successfully converted are shown as
|
||||
unknown characters. Printing will fail if Vim cannot convert the multi-byte
|
||||
unknown characters. Printing will fail if Vim cannot convert the multibyte
|
||||
to the 8-bit encoding.
|
||||
|
||||
==============================================================================
|
||||
@@ -508,7 +508,7 @@ print ASCII text using the national character set you may see some unexpected
|
||||
characters. If you want true ASCII code printing then you need to configure
|
||||
Vim to output ASCII characters for the ASCII code range with 'printmbfont'.
|
||||
|
||||
It is possible to define your own multi-byte character set although this
|
||||
It is possible to define your own multibyte character set although this
|
||||
should not be attempted lightly. A discussion on the process if beyond the
|
||||
scope of these help files. You can find details on CMap (character map) files
|
||||
in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
|
||||
|
||||
@@ -1705,7 +1705,7 @@ special problem here is that it doesn't print information on leaving the
|
||||
directory and that it doesn't print the absolute path.
|
||||
|
||||
To solve the problem with relative paths and missing "leave directory"
|
||||
messages Vim uses following algorithm:
|
||||
messages Vim uses the following algorithm:
|
||||
|
||||
1) Check if the given directory is a subdirectory of the current directory.
|
||||
If this is true, store it as the current directory.
|
||||
@@ -1938,7 +1938,7 @@ list window is:
|
||||
The values displayed in each line correspond to the "bufnr", "lnum", "col" and
|
||||
"text" fields returned by the |getqflist()| function.
|
||||
|
||||
For some quickfix/location lists, the displayed text need to be customized.
|
||||
For some quickfix/location lists, the displayed text needs to be customized.
|
||||
For example, if only the filename is present for a quickfix entry, then the
|
||||
two "|" field separator characters after the filename are not needed. Another
|
||||
use case is to customize the path displayed for a filename. By default, the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -696,7 +696,7 @@ Short explanation of each option: *option-list*
|
||||
'eventignore' 'ei' autocommand events that are ignored
|
||||
'expandtab' 'et' use spaces when <Tab> is inserted
|
||||
'exrc' 'ex' read .vimrc and .exrc in the current directory
|
||||
'fileencoding' 'fenc' file encoding for multi-byte text
|
||||
'fileencoding' 'fenc' file encoding for multibyte text
|
||||
'fileencodings' 'fencs' automatically detected character encodings
|
||||
'fileformat' 'ff' file format used for file I/O
|
||||
'fileformats' 'ffs' automatically detected values for 'fileformat'
|
||||
@@ -728,7 +728,7 @@ Short explanation of each option: *option-list*
|
||||
'grepprg' 'gp' program to use for ":grep"
|
||||
'guicursor' 'gcr' GUI: settings for cursor shape and blinking
|
||||
'guifont' 'gfn' GUI: Name(s) of font(s) to be used
|
||||
'guifontset' 'gfs' GUI: Names of multi-byte fonts to be used
|
||||
'guifontset' 'gfs' GUI: Names of multibyte fonts to be used
|
||||
'guifontwide' 'gfw' list of font names for double-wide characters
|
||||
'guiheadroom' 'ghr' GUI: pixels room for window decorations
|
||||
'guioptions' 'go' GUI: Which components and options are used
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*recover.txt* For Vim version 8.2. Last change: 2020 May 09
|
||||
*recover.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -64,8 +64,8 @@ Disadvantages:
|
||||
directories (although Vim tries to avoid that by comparing the path name).
|
||||
This will result in bogus ATTENTION warning messages.
|
||||
- When you use your home directory, and somebody else tries to edit the same
|
||||
file, he will not see your swap file and will not get the ATTENTION warning
|
||||
message.
|
||||
file, that user will not see your swap file and will not get the ATTENTION
|
||||
warning message.
|
||||
On the Amiga you can also use a recoverable ram disk, but there is no 100%
|
||||
guarantee that this works. Putting swap files in a normal ram disk (like RAM:
|
||||
on the Amiga) or in a place that is cleared when rebooting (like /tmp on Unix)
|
||||
|
||||
@@ -179,7 +179,7 @@ name on the 'VimRegistry' property on the root window.
|
||||
|
||||
A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
|
||||
also act as a command server if a server name is explicitly given with the
|
||||
--servername argument, or when Vim was build with the |+autoservername|
|
||||
--servername argument, or when Vim was built with the |+autoservername|
|
||||
feature.
|
||||
|
||||
An empty --servername argument will cause the command server to be disabled.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2020 May 14
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -643,7 +643,7 @@ This assumes you write one or more plugins that you distribute as a package.
|
||||
|
||||
If you have two unrelated plugins you would use two packages, so that Vim
|
||||
users can choose what they include or not. Or you can decide to use one
|
||||
package with optional plugins, and tell the user to add the ones he wants with
|
||||
package with optional plugins, and tell the user to add the preferred ones with
|
||||
`:packadd`.
|
||||
|
||||
Decide how you want to distribute the package. You can create an archive or
|
||||
@@ -679,7 +679,7 @@ You could add this packadd command in one of your plugins, to be executed when
|
||||
the optional plugin is needed.
|
||||
|
||||
Run the `:helptags` command to generate the doc/tags file. Including this
|
||||
generated file in the package means that the user can drop the package in his
|
||||
generated file in the package means that the user can drop the package in the
|
||||
pack directory and the help command works right away. Don't forget to re-run
|
||||
the command after changing the plugin help: >
|
||||
:helptags path/start/foobar/doc
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 8.2. Last change: 2019 Nov 30
|
||||
*sign.txt* For Vim version 8.2. Last change: 2020 Aug 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -85,6 +85,10 @@ When the line on which the sign is placed is deleted, the sign is moved to the
|
||||
next line (or the last line of the buffer, if there is no next line). When
|
||||
the delete is undone the sign does not move back.
|
||||
|
||||
When a sign with line highlighting and 'cursorline' highlighting are both
|
||||
present, if the priority is 100 or more then the sign highlighting takes
|
||||
precedence, otherwise the 'cursorline' highlighting.
|
||||
|
||||
==============================================================================
|
||||
2. Commands *sign-commands* *:sig* *:sign*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*spell.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -887,7 +887,7 @@ time ":mkspell" is used. Vim will then convert everything to 'encoding' and
|
||||
generate a spell file for 'encoding'. If some of the used characters to not
|
||||
fit in 'encoding' you will get an error message.
|
||||
*spell-affix-mbyte*
|
||||
When using a multi-byte encoding it's possible to use more different affix
|
||||
When using a multibyte encoding it's possible to use more different affix
|
||||
flags. But Myspell doesn't support that, thus you may not want to use it
|
||||
anyway. For compatibility use an 8-bit encoding.
|
||||
|
||||
@@ -1445,7 +1445,7 @@ are spelling mistakes this may not be quite right.
|
||||
Common words can be specified with the COMMON item. This will give better
|
||||
suggestions when editing a short file. Example:
|
||||
|
||||
COMMON the of to and a in is it you that he was for on are ~
|
||||
COMMON the of to and a in is it you that he she was for on are ~
|
||||
|
||||
The words must be separated by white space, up to 25 per line.
|
||||
When multiple regions are specified in a ":mkspell" command the common words
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2020 Jul 08
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -3648,7 +3648,7 @@ DEFINING FOLDLEVEL *:syn-foldlevel*
|
||||
start: Use level of item containing start of line.
|
||||
minimum: Use lowest local-minimum level of items on line.
|
||||
|
||||
The default is 'start'. Use 'minimum' to search a line horizontally
|
||||
The default is "start". Use "minimum" to search a line horizontally
|
||||
for the lowest level contained on the line that is followed by a
|
||||
higher level. This produces more natural folds when syntax items
|
||||
may close and open horizontally within a line.
|
||||
@@ -3795,9 +3795,9 @@ DEFINING REGIONS *:syn-region* *:syn-start* *:syn-skip* *:syn-end*
|
||||
[keepend]
|
||||
[extend]
|
||||
[excludenl]
|
||||
start={start_pattern} ..
|
||||
[skip={skip_pattern}]
|
||||
end={end_pattern} ..
|
||||
start={start-pattern} ..
|
||||
[skip={skip-pattern}]
|
||||
end={end-pattern} ..
|
||||
[{options}]
|
||||
|
||||
This defines one region. It may span several lines.
|
||||
@@ -3819,12 +3819,12 @@ DEFINING REGIONS *:syn-region* *:syn-start* *:syn-skip* *:syn-end*
|
||||
extend a containing match or item. Only
|
||||
useful for end patterns. Must be given before
|
||||
the patterns it applies to. |:syn-excludenl|
|
||||
start={start_pattern} The search pattern that defines the start of
|
||||
start={start-pattern} The search pattern that defines the start of
|
||||
the region. See |:syn-pattern| below.
|
||||
skip={skip_pattern} The search pattern that defines text inside
|
||||
skip={skip-pattern} The search pattern that defines text inside
|
||||
the region where not to look for the end
|
||||
pattern. See |:syn-pattern| below.
|
||||
end={end_pattern} The search pattern that defines the end of
|
||||
end={end-pattern} The search pattern that defines the end of
|
||||
the region. See |:syn-pattern| below.
|
||||
|
||||
Example: >
|
||||
@@ -4348,7 +4348,7 @@ Notes:
|
||||
- A negative offset for an end pattern may not always work, because the end
|
||||
pattern may be detected when the highlighting should already have stopped.
|
||||
- Before Vim 7.2 the offsets were counted in bytes instead of characters.
|
||||
This didn't work well for multi-byte characters, so it was changed with the
|
||||
This didn't work well for multibyte characters, so it was changed with the
|
||||
Vim 7.2 release.
|
||||
- The start of a match cannot be in a line other than where the pattern
|
||||
matched. This doesn't work: "a\nb"ms=e. You can make the highlighting
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tabpage.txt* For Vim version 8.2. Last change: 2020 Feb 06
|
||||
*tabpage.txt* For Vim version 8.2. Last change: 2020 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -142,6 +142,7 @@ something else.
|
||||
:tabclose + " close the next tab page
|
||||
:tabclose 3 " close the third tab page
|
||||
:tabclose $ " close the last tab page
|
||||
:tabclose # " close the last accessed tab page
|
||||
<
|
||||
*:tabo* *:tabonly*
|
||||
:tabo[nly][!] Close all other tab pages.
|
||||
@@ -170,6 +171,8 @@ something else.
|
||||
" one
|
||||
:tabonly 1 " close all tab pages except the first one
|
||||
:tabonly $ " close all tab pages except the last one
|
||||
:tabonly # " close all tab pages except the last
|
||||
" accessed one
|
||||
|
||||
|
||||
SWITCHING TO ANOTHER TAB PAGE:
|
||||
@@ -192,6 +195,7 @@ gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
|
||||
:+2tabnext " go to the two next tab page
|
||||
:1tabnext " go to the first tab page
|
||||
:$tabnext " go to the last tab page
|
||||
:tabnext # " go to the last accessed tab page
|
||||
:tabnext $ " as above
|
||||
:tabnext - " go to the previous tab page
|
||||
:tabnext -1 " as above
|
||||
@@ -221,6 +225,8 @@ gT Go to the previous tab page. Wraps around from the first one
|
||||
*:tabl* *:tablast*
|
||||
:tabl[ast] Go to the last tab page.
|
||||
|
||||
*g<Tab>* *CTRL-W_g<Tab>* *<C-Tab>*
|
||||
g<Tab> Go to the last accessed tab page.
|
||||
|
||||
Other commands:
|
||||
*:tabs*
|
||||
@@ -253,6 +259,8 @@ REORDERING TAB PAGES:
|
||||
:tabmove " move the tab page to the last
|
||||
:$tabmove " as above
|
||||
:tabmove $ " as above
|
||||
:tabmove # " move the tab page after the last accessed
|
||||
" tab page
|
||||
|
||||
:tabm[ove] +[N]
|
||||
:tabm[ove] -[N]
|
||||
|
||||
@@ -3497,6 +3497,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<C-ScrollWheelLeft> scroll.txt /*<C-ScrollWheelLeft>*
|
||||
<C-ScrollWheelRight> scroll.txt /*<C-ScrollWheelRight>*
|
||||
<C-ScrollWheelUp> scroll.txt /*<C-ScrollWheelUp>*
|
||||
<C-Tab> tabpage.txt /*<C-Tab>*
|
||||
<CR> motion.txt /*<CR>*
|
||||
<CSI> intro.txt /*<CSI>*
|
||||
<Char-> map.txt /*<Char->*
|
||||
@@ -3816,6 +3817,7 @@ CTRL-W_bar windows.txt /*CTRL-W_bar*
|
||||
CTRL-W_c windows.txt /*CTRL-W_c*
|
||||
CTRL-W_d tagsrch.txt /*CTRL-W_d*
|
||||
CTRL-W_f windows.txt /*CTRL-W_f*
|
||||
CTRL-W_g<Tab> tabpage.txt /*CTRL-W_g<Tab>*
|
||||
CTRL-W_gF windows.txt /*CTRL-W_gF*
|
||||
CTRL-W_gT windows.txt /*CTRL-W_gT*
|
||||
CTRL-W_g] windows.txt /*CTRL-W_g]*
|
||||
@@ -3892,6 +3894,8 @@ E10 message.txt /*E10*
|
||||
E100 diff.txt /*E100*
|
||||
E101 diff.txt /*E101*
|
||||
E102 diff.txt /*E102*
|
||||
E1023 vim9.txt /*E1023*
|
||||
E1024 vim9.txt /*E1024*
|
||||
E103 diff.txt /*E103*
|
||||
E104 digraph.txt /*E104*
|
||||
E1042 vim9.txt /*E1042*
|
||||
@@ -3904,7 +3908,12 @@ E1092 vim9.txt /*E1092*
|
||||
E1094 vim9.txt /*E1094*
|
||||
E11 cmdline.txt /*E11*
|
||||
E110 eval.txt /*E110*
|
||||
E1109 eval.txt /*E1109*
|
||||
E111 eval.txt /*E111*
|
||||
E1110 eval.txt /*E1110*
|
||||
E1111 eval.txt /*E1111*
|
||||
E1112 eval.txt /*E1112*
|
||||
E1113 eval.txt /*E1113*
|
||||
E112 eval.txt /*E112*
|
||||
E113 eval.txt /*E113*
|
||||
E114 eval.txt /*E114*
|
||||
@@ -4062,7 +4071,6 @@ E252 options.txt /*E252*
|
||||
E253 mbyte.txt /*E253*
|
||||
E254 message.txt /*E254*
|
||||
E255 sign.txt /*E255*
|
||||
E256 message.txt /*E256*
|
||||
E257 if_cscop.txt /*E257*
|
||||
E258 remote.txt /*E258*
|
||||
E259 if_cscop.txt /*E259*
|
||||
@@ -4435,6 +4443,7 @@ E607 eval.txt /*E607*
|
||||
E608 eval.txt /*E608*
|
||||
E609 if_cscop.txt /*E609*
|
||||
E61 pattern.txt /*E61*
|
||||
E610 editing.txt /*E610*
|
||||
E612 sign.txt /*E612*
|
||||
E613 print.txt /*E613*
|
||||
E614 editing.txt /*E614*
|
||||
@@ -5720,6 +5729,7 @@ char2nr() eval.txt /*char2nr()*
|
||||
characterwise motion.txt /*characterwise*
|
||||
characterwise-register change.txt /*characterwise-register*
|
||||
characterwise-visual visual.txt /*characterwise-visual*
|
||||
charclass() eval.txt /*charclass()*
|
||||
charconvert_from-variable eval.txt /*charconvert_from-variable*
|
||||
charconvert_to-variable eval.txt /*charconvert_to-variable*
|
||||
charity uganda.txt /*charity*
|
||||
@@ -5744,6 +5754,7 @@ cino-J indent.txt /*cino-J*
|
||||
cino-L indent.txt /*cino-L*
|
||||
cino-M indent.txt /*cino-M*
|
||||
cino-N indent.txt /*cino-N*
|
||||
cino-P indent.txt /*cino-P*
|
||||
cino-U indent.txt /*cino-U*
|
||||
cino-W indent.txt /*cino-W*
|
||||
cino-^ indent.txt /*cino-^*
|
||||
@@ -6311,6 +6322,7 @@ extend() eval.txt /*extend()*
|
||||
extension-removal cmdline.txt /*extension-removal*
|
||||
extensions-improvements todo.txt /*extensions-improvements*
|
||||
f motion.txt /*f*
|
||||
false vim9.txt /*false*
|
||||
false-variable eval.txt /*false-variable*
|
||||
faq intro.txt /*faq*
|
||||
farsi farsi.txt /*farsi*
|
||||
@@ -6862,6 +6874,7 @@ g<End> motion.txt /*g<End>*
|
||||
g<Home> motion.txt /*g<Home>*
|
||||
g<LeftMouse> tagsrch.txt /*g<LeftMouse>*
|
||||
g<RightMouse> tagsrch.txt /*g<RightMouse>*
|
||||
g<Tab> tabpage.txt /*g<Tab>*
|
||||
g<Up> motion.txt /*g<Up>*
|
||||
g? change.txt /*g?*
|
||||
g?? change.txt /*g??*
|
||||
@@ -6945,6 +6958,7 @@ gettabinfo() eval.txt /*gettabinfo()*
|
||||
gettabvar() eval.txt /*gettabvar()*
|
||||
gettabwinvar() eval.txt /*gettabwinvar()*
|
||||
gettagstack() eval.txt /*gettagstack()*
|
||||
gettext() eval.txt /*gettext()*
|
||||
getwininfo() eval.txt /*getwininfo()*
|
||||
getwinpos() eval.txt /*getwinpos()*
|
||||
getwinposx() eval.txt /*getwinposx()*
|
||||
@@ -8150,6 +8164,7 @@ new-more-highlighting version7.txt /*new-more-highlighting*
|
||||
new-more-unicode version7.txt /*new-more-unicode*
|
||||
new-multi-byte version5.txt /*new-multi-byte*
|
||||
new-multi-lang version6.txt /*new-multi-lang*
|
||||
new-multibyte version5.txt /*new-multibyte*
|
||||
new-netrw-explore version7.txt /*new-netrw-explore*
|
||||
new-network-files version6.txt /*new-network-files*
|
||||
new-omni-completion version7.txt /*new-omni-completion*
|
||||
@@ -8163,7 +8178,7 @@ new-persistent-undo version7.txt /*new-persistent-undo*
|
||||
new-plugins version6.txt /*new-plugins*
|
||||
new-popup-window version8.txt /*new-popup-window*
|
||||
new-posix version7.txt /*new-posix*
|
||||
new-print-multi-byte version7.txt /*new-print-multi-byte*
|
||||
new-print-multibyte version7.txt /*new-print-multibyte*
|
||||
new-printing version6.txt /*new-printing*
|
||||
new-python3 version7.txt /*new-python3*
|
||||
new-regexp-engine version7.txt /*new-regexp-engine*
|
||||
@@ -8299,12 +8314,14 @@ 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*
|
||||
patches-after-8.2 version8.txt /*patches-after-8.2*
|
||||
pathshorten() eval.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
pattern-atoms pattern.txt /*pattern-atoms*
|
||||
pattern-delimiter change.txt /*pattern-delimiter*
|
||||
pattern-multi-byte pattern.txt /*pattern-multi-byte*
|
||||
pattern-multi-items pattern.txt /*pattern-multi-items*
|
||||
pattern-multibyte pattern.txt /*pattern-multibyte*
|
||||
pattern-overview pattern.txt /*pattern-overview*
|
||||
pattern-searches pattern.txt /*pattern-searches*
|
||||
pattern.txt pattern.txt /*pattern.txt*
|
||||
@@ -8468,6 +8485,7 @@ progname-variable eval.txt /*progname-variable*
|
||||
progpath-variable eval.txt /*progpath-variable*
|
||||
progress.vim syntax.txt /*progress.vim*
|
||||
prompt-buffer channel.txt /*prompt-buffer*
|
||||
prompt_getprompt() eval.txt /*prompt_getprompt()*
|
||||
prompt_setcallback() eval.txt /*prompt_setcallback()*
|
||||
prompt_setinterrupt() eval.txt /*prompt_setinterrupt()*
|
||||
prompt_setprompt() eval.txt /*prompt_setprompt()*
|
||||
@@ -8816,6 +8834,7 @@ set-option options.txt /*set-option*
|
||||
set-spc-auto spell.txt /*set-spc-auto*
|
||||
setbufline() eval.txt /*setbufline()*
|
||||
setbufvar() eval.txt /*setbufvar()*
|
||||
setcellwidths() eval.txt /*setcellwidths()*
|
||||
setcharsearch() eval.txt /*setcharsearch()*
|
||||
setcmdpos() eval.txt /*setcmdpos()*
|
||||
setenv() eval.txt /*setenv()*
|
||||
@@ -9626,6 +9645,7 @@ toupper() eval.txt /*toupper()*
|
||||
tr() eval.txt /*tr()*
|
||||
trim() eval.txt /*trim()*
|
||||
trojan-horse starting.txt /*trojan-horse*
|
||||
true vim9.txt /*true*
|
||||
true-variable eval.txt /*true-variable*
|
||||
trunc() eval.txt /*trunc()*
|
||||
try-conditionals eval.txt /*try-conditionals*
|
||||
@@ -9637,6 +9657,8 @@ tutor usr_01.txt /*tutor*
|
||||
twice if_cscop.txt /*twice*
|
||||
two-engines pattern.txt /*two-engines*
|
||||
type() eval.txt /*type()*
|
||||
type-casting vim9.txt /*type-casting*
|
||||
type-checking vim9.txt /*type-checking*
|
||||
type-inference vim9.txt /*type-inference*
|
||||
type-mistakes tips.txt /*type-mistakes*
|
||||
typecorr-settings usr_41.txt /*typecorr-settings*
|
||||
@@ -9933,6 +9955,7 @@ valgrind debug.txt /*valgrind*
|
||||
values() eval.txt /*values()*
|
||||
var-functions usr_41.txt /*var-functions*
|
||||
variable-scope eval.txt /*variable-scope*
|
||||
variable-types vim9.txt /*variable-types*
|
||||
variables eval.txt /*variables*
|
||||
various various.txt /*various*
|
||||
various-cmds various.txt /*various-cmds*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2020 Jun 06
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2020 Sep 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -476,9 +476,11 @@ term_dumpdiff({filename}, {filename} [, {options}])
|
||||
"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'
|
||||
instead of using 'termwinsize', but
|
||||
respecting the minimal size
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
instead of using 'termwinsize', but
|
||||
respecting the minimal size
|
||||
"vertical" split the window vertically
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 8.2. Last change: 2020 Jul 11
|
||||
*testing.txt* For Vim version 8.2. Last change: 2020 Sep 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -20,18 +20,17 @@ and for testing plugins.
|
||||
Vim can be tested after building it, usually with "make test".
|
||||
The tests are located in the directory "src/testdir".
|
||||
|
||||
There are several types of tests added over time:
|
||||
test33.in oldest, don't add any of these
|
||||
test_something.in old style tests
|
||||
There are two types of tests added over time:
|
||||
test20.in oldest, only for tiny and small builds
|
||||
test_something.vim new style tests
|
||||
|
||||
*new-style-testing*
|
||||
New tests should be added as new style tests. These use functions such as
|
||||
|assert_equal()| to keep the test commands and the expected result in one
|
||||
place.
|
||||
New tests should be added as new style tests. The test scripts are named
|
||||
test_<feature>.vim (replace <feature> with the feature under test). These use
|
||||
functions such as |assert_equal()| to keep the test commands and the expected
|
||||
result in one place.
|
||||
*old-style-testing*
|
||||
In some cases an old style test needs to be used. E.g. when testing Vim
|
||||
without the |+eval| feature.
|
||||
These tests are used only for testing Vim without the |+eval| feature.
|
||||
|
||||
Find more information in the file src/testdir/README.txt.
|
||||
|
||||
@@ -292,8 +291,9 @@ assert_exception({error} [, {msg}]) *assert_exception()*
|
||||
catch
|
||||
call assert_exception('E492:')
|
||||
endtry
|
||||
|
||||
assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
|
||||
<
|
||||
*assert_fails()*
|
||||
assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
||||
Run {cmd} and add an error message to |v:errors| if it does
|
||||
NOT produce an error or when {error} is not found in the
|
||||
error message. Also see |assert-return|.
|
||||
@@ -312,13 +312,25 @@ assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
|
||||
string for the first error: >
|
||||
assert_fails('cmd', ['', 'E987:'])
|
||||
<
|
||||
If {msg} is empty then it is not used. Do this to get the
|
||||
default message when passing the {lnum} argument.
|
||||
|
||||
When {lnum} is present and not negative, and the {error}
|
||||
argument is present and matches, then this is compared with
|
||||
the line number at which the error was reported. That can be
|
||||
the line number in a function or in a script.
|
||||
|
||||
When {context} is present it is used as a pattern and matched
|
||||
against the context (script name or function name) where
|
||||
{lnum} is located in.
|
||||
|
||||
Note that beeping is not considered an error, and some failing
|
||||
commands only beep. Use |assert_beeps()| for those.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetCmd()->assert_fails('E99:')
|
||||
|
||||
assert_false({actual} [, {msg}]) *assert_false()*
|
||||
assert_false({actual} [, {msg}]) *assert_false()*
|
||||
When {actual} is not false an error message is added to
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
Also see |assert-return|.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Jul 26
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Sep 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,25 +38,65 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Why does Test_invalid_sid() not work in the GUI?
|
||||
|
||||
Making everything work:
|
||||
- more items in https://github.com/vim/vim/issues/6507
|
||||
- More "goto failed" with check for trylevel.
|
||||
- memory leak in test_vim9_script
|
||||
- Check that when sourcing a Vim9 script, only the global items can be used.
|
||||
- Should :const work the same as in legacy script?
|
||||
Or should it work like in Typescript: only the variable is fixed, not the
|
||||
value itself.
|
||||
Then use ":const!" to also fix/lock the value?
|
||||
Typescript uses "as const", which is weird.
|
||||
Alternative: const var = <const>value
|
||||
looks quite strange quite verbose
|
||||
But can be used in several places:
|
||||
SomeFunc(<const>[1, 2, 3])
|
||||
In Vim this basically means "lock this value".
|
||||
How about:
|
||||
SomeFunc(<const>[[1], [2], [3]]) # are sub-lists immutable?
|
||||
SomeFunc(<const>myList) # is myList mutable afterwards?
|
||||
|
||||
- Run the same tests in :def and Vim9 script, like in Test_expr7_not()
|
||||
- :put with a "=" register argument doesn't work, need to find the expression
|
||||
and compile it. (#6397)
|
||||
- At the script level, keep script variables local to the block they are
|
||||
declared in? Need to remember what variables were declared and delete them
|
||||
when leaving the block.
|
||||
- Implement { } block at the script level.
|
||||
- At the Vim9 script level, keep script variables local to the block they are
|
||||
declared in, like in Javascript (using :let).
|
||||
-> Need to remember what variables were declared and delete them when
|
||||
leaving the block.
|
||||
-> if a function is defined it may need to keep the block-locals
|
||||
Then Implement { } block at the script level.
|
||||
- Recognize call to assert_fails() and execute it in the function context?
|
||||
Won't work if the command itself fails, not an expression failure:
|
||||
assert_fails("unknown", "E99:")
|
||||
Use try/catch is complicated:
|
||||
let did_catch = false
|
||||
try
|
||||
unknown
|
||||
catch
|
||||
assert_caught('E99:')
|
||||
did_catch = true
|
||||
endtry
|
||||
assert_true('did_catch')
|
||||
Add a new command,
|
||||
assertfail
|
||||
unknown
|
||||
endassertfail E99:.*unknown
|
||||
- In autocmd: use legacy syntax, not whatever the current script uses?
|
||||
- need to check type when a declaration specifies a type: #6507
|
||||
let nr: number = 'asdf'
|
||||
- Make sure that in vim9script a function call without namespace only finds
|
||||
the script-local function, not a global one.
|
||||
- Make sure that where a callback is expected a function can be used (without
|
||||
quotes). E.g. sort() and map(). Also at the script level.
|
||||
- Make map() give an error if the resulting type is wrong.
|
||||
Add mapnew() to create a new List/Dict for the result, which can have a
|
||||
different value type.
|
||||
- When defining an :autocmd or :command, how to specify using Vim9 syntax?
|
||||
- always do this when defined in a Vim9 script
|
||||
- add some command modifier.
|
||||
- For an :autocmd and :command argument, if a following line starts with "|"
|
||||
append it. It's like line continuation. (#6702)
|
||||
- Implement "export {one, two three}".
|
||||
- ISN_CHECKTYPE could use check_argtype()
|
||||
- Slice of list: [1, 2, 3][1:2].
|
||||
- give error for variable name:
|
||||
let p = function('NoSuchFunc')
|
||||
- Give runtime error if function argument is wrong.
|
||||
@@ -78,6 +118,7 @@ Making everything work:
|
||||
ret[i] = string(i)
|
||||
- Appending to dict item doesn't work:
|
||||
let d[i] ..= value
|
||||
- Using ".." at script level doesn't convert arguments to a string.
|
||||
- Compile replacement of :s command: s/pat/\=expr/
|
||||
- Compile redir to local variable: var_redir_start().
|
||||
- Compile builtin functions that access local variables:
|
||||
@@ -102,8 +143,6 @@ Making everything work:
|
||||
New syntax and functionality:
|
||||
Improve error checking:
|
||||
- "echo Func()" is an error if Func() does not return anything.
|
||||
Test:
|
||||
- Using a Vim9 autoload script (functions must be global).
|
||||
Also:
|
||||
- For range: make table of first ASCII character with flag to quickly check if
|
||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||
@@ -116,8 +155,6 @@ Also:
|
||||
- Test each level of expressions properly, with type checking
|
||||
- Test try/catch and throw better, also nested.
|
||||
Test return inside try/finally jumps to finally and then returns.
|
||||
- call autoload function.
|
||||
- Implement more expressions, e.g. [a:b]
|
||||
- can use func as reference:
|
||||
def SomeFunc() ...
|
||||
map(list, SomeFunc)
|
||||
@@ -154,6 +191,8 @@ Popup windows:
|
||||
positioned? PopupNew? Could be used to set some options or move it out of
|
||||
the way. (#5737)
|
||||
However, it may also cause trouble, changing the popup of another plugin.
|
||||
- Width is not computed correctly when minwidth and maxwidth are &columns
|
||||
and padding and a scrollbar are used. (#6676)
|
||||
- Add a way to use popup_menu() synchronously: instead of invoking the
|
||||
callback, return the choice. (Ben Jackson, #6534)
|
||||
- Use popup (or popup menu) for command line completion
|
||||
@@ -169,13 +208,11 @@ Popup windows:
|
||||
- Figure out the size and position better if wrapping inserts indent
|
||||
|
||||
Text properties:
|
||||
- :goto does not go to the right place when test properties are present.
|
||||
- :goto does not go to the right place when text properties are present.
|
||||
(#5930)
|
||||
- "cc" does not call inserted_bytes(). (Axel Forsman, #5763)
|
||||
- Get E685 with a sequence of commands. (#5674)
|
||||
- Combining text property with 'cursorline' does not always work (Billie
|
||||
Cleek, #5533)
|
||||
- Text properties spanning more than one line. #5683
|
||||
- See remarks at top of src/textprop.c
|
||||
|
||||
'incsearch' with :s:
|
||||
@@ -200,7 +237,7 @@ Terminal debugger:
|
||||
an already running program. (M. Kelly)
|
||||
- When only gdb window exists, on "quit" edit another buffer.
|
||||
- Use a sign group
|
||||
- Termdebug does not work when Vim was build with mzscheme: gdb hangs just
|
||||
- Termdebug does not work when Vim was built with mzscheme: gdb hangs just
|
||||
after "run". Everything else works, including communication channel. Not
|
||||
initializing mzscheme avoid the problem, thus it's not some #ifdef.
|
||||
- Add support for lldb? issue #3565
|
||||
@@ -252,18 +289,25 @@ Terminal emulator window:
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
Error numbers available:
|
||||
E610, E611, E653
|
||||
Error numbers available: E653
|
||||
|
||||
Patch to implement the vimtutor with a plugin: #6414
|
||||
Was originally writtten by Felipe Morales.
|
||||
|
||||
Remove SPACE_IN_FILENAME ? It is only used for completion.
|
||||
|
||||
Patch to use collaction based sorting. (Christian Brabandt, #6229)
|
||||
Patch to use collation based sorting. (Christian Brabandt, #6229)
|
||||
|
||||
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
|
||||
with 'termguicolors'. #1740
|
||||
|
||||
Patch for blockwise paste reporting changes: #6660.
|
||||
|
||||
Can we detect true color support? https://gist.github.com/XVilka/8346728
|
||||
Try setting a color then request the current color, like using t_u7.
|
||||
|
||||
Check out PR #543 (Roland Puntaier).
|
||||
Patch for multi-byte characters in langmap and applying a mapping on them.
|
||||
Patch for multibyte characters in langmap and applying a mapping on them.
|
||||
(Christian Brabandt, 2015 Jun 12, update July 25)
|
||||
Is this the right solution? Need to cleanup langmap behavior:
|
||||
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
|
||||
@@ -333,6 +377,9 @@ character. (#6154)
|
||||
|
||||
undo result wrong: Masato Nishihata, #4798
|
||||
|
||||
After recovering from a swap file the undofile should not be used, it causes
|
||||
corruption. (#6631)
|
||||
|
||||
When 'lazyredraw' is set sometimes the title is not updated.
|
||||
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
||||
|
||||
@@ -354,9 +401,6 @@ When changing the crypt key the buffer should be considered modified.
|
||||
Like when changing 'fileformat'. Save the old key in save_file_ff().
|
||||
(Ninu-Ciprian Marginean)
|
||||
|
||||
Patch to implement the vimtutor with a plugin: #6414
|
||||
Was originally writtten by Felipe Morales.
|
||||
|
||||
Strange sequence of BufWipeout and BufNew events while doing omni-complete.
|
||||
(Paul Jolly, #5656)
|
||||
Get BufDelete without preceding BufNew. (Paul Jolly, #5694)
|
||||
@@ -379,6 +423,7 @@ Undo puts cursor in wrong line after "cG<Esc>" undo.
|
||||
Implement completion for "breakadd". Should expand the second argument, e.g.
|
||||
"func", and then function names after ":breakadd func". Including
|
||||
script-local functions.
|
||||
Also for ":profile".
|
||||
|
||||
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
|
||||
Dec 19)
|
||||
@@ -393,6 +438,9 @@ remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.
|
||||
Also #4994: window-local options not always restored, related to using :badd.
|
||||
Also #5326: netrw buffers are not restored.
|
||||
|
||||
Alternate file is not set in the session file. Use setwintabvar("@#") ?
|
||||
(#6714)
|
||||
|
||||
When 'backupdir' has a path ending in double slash (meaning: use full path of
|
||||
the file) combined with 'patchmode' the file name is wrong. (#5791)
|
||||
|
||||
@@ -404,6 +452,7 @@ Should do current file first and not split it up when more results are found.
|
||||
|
||||
Undo history wrong when ":next file" re-uses a buffer. (#5426)
|
||||
ex_next() should pass flag to do_argfile(), then to do_ecmd().
|
||||
Is there a test for this?
|
||||
|
||||
Help for ":argadd fname" says that if "fname" is already in the argument list
|
||||
that entry is used. But instead it's always added. (#6210)
|
||||
@@ -1200,8 +1249,6 @@ Suggestion to improve pt-br spell checking. (Marcelo D Montu, 2016 Dec 15,
|
||||
|
||||
Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
|
||||
|
||||
Completion for :!cmd shows each match twice. #1435
|
||||
|
||||
GTK: When adding a timer from 'balloonexpr' it won't fire, because
|
||||
g_main_context_iteration() doesn't return. Need to trigger an event when the
|
||||
timer expires.
|
||||
@@ -1211,7 +1258,7 @@ Screen update bug related to matchparen. (Chris Heath, 2017 Mar 4, #1532)
|
||||
Rule to use "^" for statusline does not work if a space is defined with
|
||||
highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)
|
||||
|
||||
8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
|
||||
8 "stl" and "stlnc" in 'fillchars' don't work for multibyte characters.
|
||||
Patch by Christian Wellenbrock, 2013 Jul 5.
|
||||
|
||||
Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca
|
||||
@@ -1362,7 +1409,7 @@ Regexp problems:
|
||||
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
|
||||
(Lech Lorens, 2014 Feb 3)
|
||||
- Issue 164: freeze on regexp search.
|
||||
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
|
||||
- Ignorecase not handled properly for multibyte characters. (Axel Bender,
|
||||
2013 Dec 11)
|
||||
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
|
||||
Szamotulski; Remark from Brett 2014 Jan 6 and 7.
|
||||
@@ -1400,9 +1447,6 @@ Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
|
||||
3. Doesn't work properly according to Yukihiro Nakadaira.
|
||||
Also see #1635.
|
||||
|
||||
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
||||
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
||||
|
||||
Idea from Sven: record sequence of keys. Useful to show others what they are
|
||||
doing (look over the shoulder), and also to see what happened.
|
||||
Probably list of keystrokes, with some annotations for mode changes.
|
||||
@@ -1471,7 +1515,7 @@ Zero-out krypt key information when no longer in use. (Ben Fritz, 2017 May 15)
|
||||
|
||||
Add stronger encryption. Could use libsodium (NaCl).
|
||||
https://github.com/jedisct1/libsodium/
|
||||
Possibly include the needed code so that it can be build everywhere.
|
||||
Possibly include the needed code so that it can be built everywhere.
|
||||
|
||||
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
|
||||
but the reference remains valid.
|
||||
@@ -1577,7 +1621,7 @@ Patch to add :mapgroup, put mappings in a group like augroup.
|
||||
Value returned by virtcol() changes depending on how lines wrap. This is
|
||||
inconsistent with the documentation.
|
||||
|
||||
Value of virtcol() for '[ and '] depend on multi-byte character.
|
||||
Value of virtcol() for '[ and '] depend on multibyte character.
|
||||
(Luchr, #277)
|
||||
|
||||
Can we cache the syntax attributes, so that updates for 'relativenumber' and
|
||||
@@ -2109,7 +2153,7 @@ Also for another example (ZyX, 2011 Jan 24)
|
||||
|
||||
Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
|
||||
|
||||
"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
|
||||
"0g@$" puts '] on last byte of multibyte. (ZyX, 2011 Jan 22)
|
||||
|
||||
Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
|
||||
|
||||
@@ -2616,7 +2660,7 @@ work, the backslash is removed, assuming that it escapes the (. (Valery
|
||||
Kondakoff, 2009 May 13)
|
||||
|
||||
Win32: Using "gvim --remote-tab-silent elŝuti.txt" doesn't work, the
|
||||
multi-byte character isn't passed and edits elsuti.txt.
|
||||
multibyte character isn't passed and edits elsuti.txt.
|
||||
(Raúl Núñez de Arenas Coronado, 2015 Dec 18)
|
||||
|
||||
Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
|
||||
@@ -2854,9 +2898,6 @@ Jun 18)
|
||||
|
||||
If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
|
||||
|
||||
Feature request: Command to go to previous tab, like what CTRL-W p does for
|
||||
windows. (Adam George)
|
||||
|
||||
In debug mode, using CTRL-R = to evaluate a function causes stepping through
|
||||
the function. (Hari Krishna Dara, 2006 Jun 28)
|
||||
|
||||
@@ -3180,7 +3221,7 @@ Awaiting updated patches:
|
||||
7 ATTENTION dialog choices are more logical when "Delete it" appears
|
||||
before "Quit". Patch by Robert Webb, 2004 May 3.
|
||||
- Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work
|
||||
for multi-byte characters.
|
||||
for multibyte characters.
|
||||
- Win32: add options to print dialog. Patch from Vipin Aravind.
|
||||
- Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
|
||||
use the patch that keeps using HLF_8 if HLF_WS has not
|
||||
@@ -3676,8 +3717,8 @@ Macintosh:
|
||||
8 'hkmap' should probably be global-local.
|
||||
8 Using ":s" in a function changes the previous replacement string. Save
|
||||
"old_sub" in save_search_patterns()?
|
||||
8 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
|
||||
is a multi-byte character.
|
||||
8 Should allow multibyte characters for the delimiter: ":s+a+b+" where "+"
|
||||
is a multibyte character.
|
||||
8 When appending to a file and 'patchmode' isn't empty, a backup file is
|
||||
always written, even when the original file already exists.
|
||||
9 When getting focus while writing a large file, could warn for this file
|
||||
@@ -3832,9 +3873,7 @@ Macintosh:
|
||||
two lines at a time. "k" doesn't do this. (Cory T. Echols)
|
||||
8 When write_viminfo() is used while there are many orphaned viminfo
|
||||
tempfiles writing the viminfo file fails. Give a clear error message so
|
||||
that the user knows he has to delete the files.
|
||||
7 It's possible to redefine a script-local function with ":func
|
||||
<SNR>123_Test()". (Krishna) Disallow this.
|
||||
that the user knows the files have to be deleted.
|
||||
|
||||
|
||||
I can't reproduce these (if you can, let me know how!):
|
||||
@@ -3982,7 +4021,7 @@ Documentation:
|
||||
- change to cursor position and curswant
|
||||
- if it can be undone (u/CTRL-R) and redone (.)
|
||||
- how it works for folded lines
|
||||
- how it works with multi-byte characters
|
||||
- how it works with multibyte characters
|
||||
9 In change.txt, remark about Javadoc isn't right. Right alignment would
|
||||
work too.
|
||||
8 Spread the windows commands over the other files. For example, ":stag"
|
||||
@@ -4005,7 +4044,7 @@ Help:
|
||||
- Support a way to view (and edit) .info files.
|
||||
- Implement a "sticky" help window, some help text lines that are always
|
||||
displayed in a window with fixed height. (Guckes) Use "~/.vimhelp" file,
|
||||
user can edit it to insert his favorite commands, new account can contain a
|
||||
user can edit it to insert favorite commands, new account can contain a
|
||||
default contents.
|
||||
- Make 'winminheight' a local option, so that the user can set a minimal
|
||||
height for the help window (and other windows).
|
||||
@@ -4218,8 +4257,8 @@ Multi-byte characters:
|
||||
8 Add configure option to be able to disable using the iconv library. (Udo
|
||||
Schweigert)
|
||||
9 'aleph' should be set to 1488 for Unicode. (Zvi Har'El)
|
||||
8 Should add test for using various commands with multi-byte characters.
|
||||
8 'infercase' doesn't work with multi-byte characters.
|
||||
8 Should add test for using various commands with multibyte characters.
|
||||
8 'infercase' doesn't work with multibyte characters.
|
||||
8 toupper() function doesn't handle byte count changes.
|
||||
7 Searching and composing characters:
|
||||
When searching, should order of composing characters be ignored?
|
||||
@@ -4227,7 +4266,7 @@ Multi-byte characters:
|
||||
characters can be manipulated.
|
||||
8 Should implement 'delcombine' for command line editing.
|
||||
8 Detect overlong UTF-8 sequences and handle them like illegal bytes.
|
||||
8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte
|
||||
8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multibyte
|
||||
characters.
|
||||
8 UTF-8: "r" in Visual mode doesn't take composing characters.
|
||||
8 UTF-8: When there is a precomposed character in the font, use it instead
|
||||
@@ -4251,14 +4290,14 @@ Multi-byte characters:
|
||||
convert_input() for Mac GUI.
|
||||
- Add mnemonics from RFC1345 longer than two characters.
|
||||
Support CTRL-K _{mnemonic}_
|
||||
- Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
|
||||
- Make 'breakat' accept multibyte characters. Problem: can't use a lookup
|
||||
table anymore (breakat_flags[]).
|
||||
Simplistic solution: when 'formatoptions' contains "m" also break a line
|
||||
at a multi-byte character >= 0x100.
|
||||
at a multibyte character >= 0x100.
|
||||
- Add the possibility to enter mappings which are used whenever normal text
|
||||
could be entered. E.g., for "f" command. But not in Normal mode. Sort
|
||||
of opposite of 'langmap'. Use ":amap" command?
|
||||
- When breaking a line, take properties of multi-byte characters into
|
||||
- When breaking a line, take properties of multibyte characters into
|
||||
account. The "linebreak" program from Bruno Haible can do it:
|
||||
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
||||
But it's very complicated...
|
||||
@@ -5323,11 +5362,11 @@ Text objects:
|
||||
8 Add test script for text object commands "aw", "iW", etc.
|
||||
8 Add text object for part of a CamelHumpedWord and under_scored_word.
|
||||
(Scott Graham) "ac" and "au"?
|
||||
8 Add a text object for any kind of quoting, also with multi-byte
|
||||
8 Add a text object for any kind of quoting, also with multibyte
|
||||
characters. Option to specify what quotes are recognized (default: all)
|
||||
use "aq" and "iq". Use 'quotepairs' to define pairs of quotes, like
|
||||
'matchpairs'?
|
||||
8 Add text object for any kind of parens, also multi-byte ones.
|
||||
8 Add text object for any kind of parens, also multibyte ones.
|
||||
8 Add a way to make an ":omap" for a user-defined text object. Requires
|
||||
changing the starting position in oap->start.
|
||||
8 Add "gp" and "gP" commands: insert text and make sure there is a single
|
||||
@@ -5673,7 +5712,7 @@ Buffer list:
|
||||
Also for other windows: ":inwin {winnr} {cmd}". How to make sure that
|
||||
this works properly for all commands, and still be able to return to the
|
||||
current buffer/window? E.g.: ":inbuf xxx only".
|
||||
8 Add File.{recent_files} menu entries: Recently edited files.
|
||||
8 Add File.{recent-files} menu entries: Recently edited files.
|
||||
Ron Aaron has a plugin for this: mru.vim.
|
||||
8 Unix: Check all uses of fnamecmp() and fnamencmp() if they should check
|
||||
inode too.
|
||||
@@ -5772,7 +5811,7 @@ Modelines:
|
||||
.cpp files.
|
||||
- Support the "abbreviate" command in modelines (Kearns). Careful for
|
||||
characters after <Esc>, that is a security leak.
|
||||
- Add option setting to ask user if he wants to have the modelines executed
|
||||
- Add an option setting to ask the user if the modelines are to be executed
|
||||
or not. Same for .exrc in local dir.
|
||||
|
||||
|
||||
@@ -6103,7 +6142,7 @@ Various improvements:
|
||||
regexp which triggers auto-formatting (for one line).
|
||||
":set autoformat=\\s$".
|
||||
- Be able to redefine where a sentence stops. Use a regexp pattern?
|
||||
- Support multi-byte characters for sentences. Example from Ben Peterson.
|
||||
- Support multibyte characters for sentences. Example from Ben Peterson.
|
||||
7 Add command "g)" to go to the end of a sentence, "g(" to go back to the
|
||||
end of a sentence. (Servatius Brandt)
|
||||
- Be able to redefine where a paragraph starts. For "[[" where the '{' is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_03.txt* For Vim version 8.2. Last change: 2020 Feb 29
|
||||
*usr_03.txt* For Vim version 8.2. Last change: 2020 Sep 03
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -30,10 +30,11 @@ Table of contents: |usr_toc.txt|
|
||||
|
||||
To move the cursor forward one word, use the "w" command. Like most Vim
|
||||
commands, you can use a numeric prefix to move past multiple words. For
|
||||
example, "3w" moves three words. This figure shows how it works:
|
||||
example, "3w" moves three words. This figure shows how it works (starting at
|
||||
the position marked with "x"):
|
||||
|
||||
This is a line with example text ~
|
||||
--->-->->----------------->
|
||||
x-->-->->----------------->
|
||||
w w w 3w
|
||||
|
||||
Notice that "w" moves to the start of the next word if it already is at the
|
||||
@@ -41,15 +42,15 @@ start of a word.
|
||||
The "b" command moves backward to the start of the previous word:
|
||||
|
||||
This is a line with example text ~
|
||||
<----<--<-<---------<---
|
||||
<----<--<-<---------<--x
|
||||
b b b 2b b
|
||||
|
||||
There is also the "e" command that moves to the next end of a word and "ge",
|
||||
which moves to the previous end of a word:
|
||||
|
||||
This is a line with example text ~
|
||||
<- <--- -----> ---->
|
||||
ge ge e e
|
||||
<----<----x---->------------>
|
||||
2ge ge e we
|
||||
|
||||
If you are at the last word of a line, the "w" command will take you to the
|
||||
first word in the next line. Thus you can use this to move through a
|
||||
@@ -82,12 +83,12 @@ an <End> key it will do the same thing.
|
||||
|
||||
The "^" command moves to the first non-blank character of the line. The "0"
|
||||
command (zero) moves to the very first character of the line, and the <Home>
|
||||
key does the same thing. In a picture:
|
||||
key does the same thing. In a picture ("." indicates a space):
|
||||
|
||||
^
|
||||
<------------
|
||||
<-----------x
|
||||
.....This is a line with example text ~
|
||||
<----------------- --------------->
|
||||
<----------------x x-------------->
|
||||
0 $
|
||||
|
||||
(the "....." indicates blanks here)
|
||||
|
||||
@@ -161,7 +161,7 @@ line break.
|
||||
==============================================================================
|
||||
*04.3* Repeating a change
|
||||
|
||||
The "." command is one of the most simple yet powerful commands in Vim. It
|
||||
The "." command is one of the simplest yet powerful commands in Vim. It
|
||||
repeats the last change. For instance, suppose you are editing an HTML file
|
||||
and want to delete all the <B> tags. You position the cursor on the first <
|
||||
and delete the <B> with the command "df>". You then go to the < of the next
|
||||
|
||||
@@ -58,8 +58,8 @@ This initializes Vim for new users (as opposed to traditional Vi users). See
|
||||
|defaults.vim| for the details.
|
||||
|
||||
The vimrc file can contain all the commands that you type after a colon. The
|
||||
most simple ones are for setting options. For example, if you want Vim to
|
||||
always start with the 'incsearch' option on, add this line your vimrc file: >
|
||||
simplest ones are for setting options. For example, if you want Vim to always
|
||||
start with the 'incsearch' option on, add this line your vimrc file: >
|
||||
|
||||
set incsearch
|
||||
|
||||
|
||||
@@ -327,10 +327,10 @@ for next.
|
||||
==============================================================================
|
||||
*20.5* Command line window
|
||||
|
||||
Typing the text in the command line works different from typing text in Insert
|
||||
mode. It doesn't allow many commands to change the text. For most commands
|
||||
that's OK, but sometimes you have to type a complicated command. That's where
|
||||
the command line window is useful.
|
||||
Typing the text in the command line works differently from typing text in
|
||||
Insert mode. It doesn't allow many commands to change the text. For most
|
||||
commands that's OK, but sometimes you have to type a complicated command.
|
||||
That's where the command line window is useful.
|
||||
|
||||
Open the command line window with this command: >
|
||||
|
||||
|
||||
@@ -336,7 +336,7 @@ How to do that is explained here: |indent-expression|.
|
||||
==============================================================================
|
||||
*30.4* Other indenting
|
||||
|
||||
The most simple form of automatic indenting is with the 'autoindent' option.
|
||||
The simplest form of automatic indenting is with the 'autoindent' option.
|
||||
It uses the indent from the previous line. A bit smarter is the 'smartindent'
|
||||
option. This is useful for languages where no indent file is available.
|
||||
'smartindent' is not as smart as 'cindent', but smarter than 'autoindent'.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_31.txt* For Vim version 8.2. Last change: 2007 May 08
|
||||
*usr_31.txt* For Vim version 8.2. Last change: 2020 Jul 28
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -198,9 +198,9 @@ is not possible in most terminals.
|
||||
You can start the X-Windows version of gvim with an argument to specify the
|
||||
size and position of the window: >
|
||||
|
||||
gvim -geometry {width}x{height}+{x_offset}+{y_offset}
|
||||
gvim -geometry {width}x{height}+{x-offset}+{y-offset}
|
||||
|
||||
{width} and {height} are in characters, {x_offset} and {y_offset} are in
|
||||
{width} and {height} are in characters, {x-offset} and {y-offset} are in
|
||||
pixels. Example: >
|
||||
|
||||
gvim -geometry 80x25+100+300
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_40.txt* For Vim version 8.2. Last change: 2013 Aug 05
|
||||
*usr_40.txt* For Vim version 8.2. Last change: 2020 Sep 02
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -453,15 +453,15 @@ matching BufWritePre autocommands and executes them, and then it
|
||||
performs the ":write".
|
||||
The general form of the :autocmd command is as follows: >
|
||||
|
||||
:autocmd [group] {events} {file_pattern} [nested] {command}
|
||||
:autocmd [group] {events} {file-pattern} [++nested] {command}
|
||||
|
||||
The [group] name is optional. It is used in managing and calling the commands
|
||||
(more on this later). The {events} parameter is a list of events (comma
|
||||
separated) that trigger the command.
|
||||
{file_pattern} is a filename, usually with wildcards. For example, using
|
||||
{file-pattern} is a filename, usually with wildcards. For example, using
|
||||
"*.txt" makes the autocommand be used for all files whose name end in ".txt".
|
||||
The optional [nested] flag allows for nesting of autocommands (see below), and
|
||||
finally, {command} is the command to be executed.
|
||||
The optional [++nested] flag allows for nesting of autocommands (see below),
|
||||
and finally, {command} is the command to be executed.
|
||||
|
||||
|
||||
EVENTS
|
||||
@@ -489,7 +489,7 @@ See |autocmd-events| for a complete list of events.
|
||||
|
||||
PATTERNS
|
||||
|
||||
The {file_pattern} argument can actually be a comma-separated list of file
|
||||
The {file-pattern} argument can actually be a comma-separated list of file
|
||||
patterns. For example: "*.c,*.h" matches files ending in ".c" and ".h".
|
||||
The usual file wildcards can be used. Here is a summary of the most often
|
||||
used ones:
|
||||
@@ -578,7 +578,7 @@ trigger any new events. If you read a file in response to a FileChangedShell
|
||||
event, it will not trigger the autocommands that would set the syntax, for
|
||||
example. To make the events triggered, add the "nested" argument: >
|
||||
|
||||
:autocmd FileChangedShell * nested edit
|
||||
:autocmd FileChangedShell * ++nested edit
|
||||
|
||||
|
||||
EXECUTING AUTOCOMMANDS
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.2. Last change: 2020 Jun 13
|
||||
*usr_41.txt* For Vim version 8.2. Last change: 2020 Aug 30
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -44,7 +44,7 @@ script file. You can think of other uses yourself.
|
||||
If you are familiar with Python, you can find a comparison between
|
||||
Python and Vim script here, with pointers to other documents:
|
||||
https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
|
||||
And if you are familiar with Javascript:
|
||||
And if you are familiar with JavaScript:
|
||||
https://w0rp.com/blog/post/vim-script-for-the-javascripter/
|
||||
|
||||
Let's start with a simple example: >
|
||||
@@ -327,9 +327,9 @@ Grouping is done with parentheses. No surprises here. Example: >
|
||||
:echo (10 + 5) * 2
|
||||
< 30 ~
|
||||
|
||||
Strings can be concatenated with ".". Example: >
|
||||
Strings can be concatenated with ".." (see |expr6|). Example: >
|
||||
|
||||
:echo "foo" . "bar"
|
||||
:echo "foo" .. "bar"
|
||||
< foobar ~
|
||||
|
||||
When the ":echo" command gets multiple arguments, it separates them with a
|
||||
@@ -496,9 +496,9 @@ So far the commands in the script were executed by Vim directly. The
|
||||
very powerful way to build commands and execute them.
|
||||
An example is to jump to a tag, which is contained in a variable: >
|
||||
|
||||
:execute "tag " . tag_name
|
||||
:execute "tag " .. tag_name
|
||||
|
||||
The "." is used to concatenate the string "tag " with the value of variable
|
||||
The ".." is used to concatenate the string "tag " with the value of variable
|
||||
"tag_name". Suppose "tag_name" has the value "get_cmd", then the command that
|
||||
will be executed is: >
|
||||
|
||||
@@ -514,7 +514,7 @@ This jumps to the first line and formats all lines with the "=" operator.
|
||||
To make ":normal" work with an expression, combine ":execute" with it.
|
||||
Example: >
|
||||
|
||||
:execute "normal " . normal_commands
|
||||
:execute "normal " .. normal_commands
|
||||
|
||||
The variable "normal_commands" must contain the Normal mode commands.
|
||||
Make sure that the argument for ":normal" is a complete command. Otherwise
|
||||
@@ -531,12 +531,12 @@ If you don't want to execute a string but evaluate it to get its expression
|
||||
value, you can use the eval() function: >
|
||||
|
||||
:let optname = "path"
|
||||
:let optval = eval('&' . optname)
|
||||
:let optval = eval('&' .. optname)
|
||||
|
||||
A "&" character is prepended to "path", thus the argument to eval() is
|
||||
"&path". The result will then be the value of the 'path' option.
|
||||
The same thing can be done with: >
|
||||
:exe 'let optval = &' . optname
|
||||
:exe 'let optval = &' .. optname
|
||||
|
||||
==============================================================================
|
||||
*41.6* Using functions
|
||||
@@ -600,6 +600,7 @@ String manipulation: *string-functions*
|
||||
strtrans() translate a string to make it printable
|
||||
tolower() turn a string to lowercase
|
||||
toupper() turn a string to uppercase
|
||||
charclass() class of a character
|
||||
match() position where a pattern matches in a string
|
||||
matchend() position where a pattern match ends in a string
|
||||
matchstr() match of a pattern in a string
|
||||
@@ -611,6 +612,7 @@ String manipulation: *string-functions*
|
||||
strchars() length of a string in characters
|
||||
strwidth() size of string when displayed
|
||||
strdisplaywidth() size of string when displayed, deals with tabs
|
||||
setcellwidths() set character cell width overrides
|
||||
substitute() substitute a pattern match with a string
|
||||
submatch() get a specific match in ":s" and substitute()
|
||||
strpart() get part of a string using byte index
|
||||
@@ -626,6 +628,7 @@ String manipulation: *string-functions*
|
||||
execute() execute an Ex command and get the output
|
||||
win_execute() like execute() but in a specified window
|
||||
trim() trim characters from a string
|
||||
gettext() lookup message translation
|
||||
|
||||
List manipulation: *list-functions*
|
||||
get() get an item without error for wrong index
|
||||
@@ -1115,6 +1118,7 @@ Tags: *tag-functions*
|
||||
settagstack() modify the tag stack of a window
|
||||
|
||||
Prompt Buffer: *promptbuffer-functions*
|
||||
prompt_getprompt() get the effective prompt text for a buffer
|
||||
prompt_setcallback() set prompt callback for a buffer
|
||||
prompt_setinterrupt() set interrupt callback for a buffer
|
||||
prompt_setprompt() set the prompt text for a buffer
|
||||
@@ -1284,7 +1288,7 @@ Example: >
|
||||
: let n = n + len(split(getline(lnum)))
|
||||
: let lnum = lnum + 1
|
||||
: endwhile
|
||||
: echo "found " . n . " words"
|
||||
: echo "found " .. n .. " words"
|
||||
:endfunction
|
||||
|
||||
You can call this function with: >
|
||||
@@ -1297,7 +1301,7 @@ It will be executed once and echo the number of words.
|
||||
range, with the cursor in that line. Example: >
|
||||
|
||||
:function Number()
|
||||
: echo "line " . line(".") . " contains: " . getline(".")
|
||||
: echo "line " .. line(".") .. " contains: " .. getline(".")
|
||||
:endfunction
|
||||
|
||||
If you call this function with: >
|
||||
@@ -1321,11 +1325,11 @@ so on. The variable "a:0" contains the number of extra arguments.
|
||||
|
||||
:function Show(start, ...)
|
||||
: echohl Title
|
||||
: echo "start is " . a:start
|
||||
: echo "start is " .. a:start
|
||||
: echohl None
|
||||
: let index = 1
|
||||
: while index <= a:0
|
||||
: echo " Arg " . index . " is " . a:{index}
|
||||
: echo " Arg " .. index .. " is " .. a:{index}
|
||||
: let index = index + 1
|
||||
: endwhile
|
||||
: echo ""
|
||||
@@ -1733,10 +1737,10 @@ Another useful mechanism is the ":finally" command: >
|
||||
|
||||
:let tmp = tempname()
|
||||
:try
|
||||
: exe ".,$write " . tmp
|
||||
: exe "!filter " . tmp
|
||||
: exe ".,$write " .. tmp
|
||||
: exe "!filter " .. tmp
|
||||
: .,$delete
|
||||
: exe "$read " . tmp
|
||||
: exe "$read " .. tmp
|
||||
:finally
|
||||
: call delete(tmp)
|
||||
:endtry
|
||||
@@ -2044,9 +2048,9 @@ for this mapping, but the user might already use it for something else. To
|
||||
allow the user to define which keys a mapping in a plugin uses, the <Leader>
|
||||
item can be used: >
|
||||
|
||||
22 map <unique> <Leader>a <Plug>TypecorrAdd
|
||||
22 map <unique> <Leader>a <Plug>TypecorrAdd;
|
||||
|
||||
The "<Plug>TypecorrAdd" thing will do the work, more about that further on.
|
||||
The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
|
||||
|
||||
The user can set the "mapleader" variable to the key sequence that he wants
|
||||
this mapping to start with. Thus if the user has done: >
|
||||
@@ -2062,15 +2066,15 @@ already happened to exist. |:map-<unique>|
|
||||
But what if the user wants to define his own key sequence? We can allow that
|
||||
with this mechanism: >
|
||||
|
||||
21 if !hasmapto('<Plug>TypecorrAdd')
|
||||
22 map <unique> <Leader>a <Plug>TypecorrAdd
|
||||
21 if !hasmapto('<Plug>TypecorrAdd;')
|
||||
22 map <unique> <Leader>a <Plug>TypecorrAdd;
|
||||
23 endif
|
||||
|
||||
This checks if a mapping to "<Plug>TypecorrAdd" already exists, and only
|
||||
This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
|
||||
defines the mapping from "<Leader>a" if it doesn't. The user then has a
|
||||
chance of putting this in his vimrc file: >
|
||||
|
||||
map ,c <Plug>TypecorrAdd
|
||||
map ,c <Plug>TypecorrAdd;
|
||||
|
||||
Then the mapped key sequence will be ",c" instead of "_a" or "\a".
|
||||
|
||||
@@ -2087,8 +2091,8 @@ prepending it with "s:".
|
||||
We will define a function that adds a new typing correction: >
|
||||
|
||||
30 function s:Add(from, correct)
|
||||
31 let to = input("type the correction for " . a:from . ": ")
|
||||
32 exe ":iabbrev " . a:from . " " . to
|
||||
31 let to = input("type the correction for " .. a:from .. ": ")
|
||||
32 exe ":iabbrev " .. a:from .. " " .. to
|
||||
..
|
||||
36 endfunction
|
||||
|
||||
@@ -2100,15 +2104,15 @@ function (without the "s:"), which is again another function.
|
||||
<SID> can be used with mappings. It generates a script ID, which identifies
|
||||
the current script. In our typing correction plugin we use it like this: >
|
||||
|
||||
24 noremap <unique> <script> <Plug>TypecorrAdd <SID>Add
|
||||
24 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
|
||||
..
|
||||
28 noremap <SID>Add :call <SID>Add(expand("<cword>"), 1)<CR>
|
||||
|
||||
Thus when a user types "\a", this sequence is invoked: >
|
||||
|
||||
\a -> <Plug>TypecorrAdd -> <SID>Add -> :call <SID>Add()
|
||||
\a -> <Plug>TypecorrAdd; -> <SID>Add -> :call <SID>Add()
|
||||
|
||||
If another script would also map <SID>Add, it would get another script ID and
|
||||
If another script also maps <SID>Add, it will get another script ID and
|
||||
thus define another mapping.
|
||||
|
||||
Note that instead of s:Add() we use <SID>Add() here. That is because the
|
||||
@@ -2149,9 +2153,9 @@ difference between using <SID> and <Plug>:
|
||||
To make it very unlikely that other plugins use the same sequence of
|
||||
characters, use this structure: <Plug> scriptname mapname
|
||||
In our example the scriptname is "Typecorr" and the mapname is "Add".
|
||||
This results in "<Plug>TypecorrAdd". Only the first character of
|
||||
scriptname and mapname is uppercase, so that we can see where mapname
|
||||
starts.
|
||||
We add a semicolon as the terminator. This results in
|
||||
"<Plug>TypecorrAdd;". Only the first character of scriptname and
|
||||
mapname is uppercase, so that we can see where mapname starts.
|
||||
|
||||
<SID> is the script ID, a unique identifier for a script.
|
||||
Internally Vim translates <SID> to "<SNR>123_", where "123" can be any
|
||||
@@ -2193,7 +2197,7 @@ a few lines to count the number of corrections: >
|
||||
30 function s:Add(from, correct)
|
||||
..
|
||||
34 let s:count = s:count + 1
|
||||
35 echo s:count . " corrections now"
|
||||
35 echo s:count .. " corrections now"
|
||||
36 endfunction
|
||||
|
||||
First s:count is initialized to 4 in the script itself. When later the
|
||||
@@ -2226,21 +2230,21 @@ Here is the resulting complete example: >
|
||||
18 \ synchronization
|
||||
19 let s:count = 4
|
||||
20
|
||||
21 if !hasmapto('<Plug>TypecorrAdd')
|
||||
22 map <unique> <Leader>a <Plug>TypecorrAdd
|
||||
21 if !hasmapto('<Plug>TypecorrAdd;')
|
||||
22 map <unique> <Leader>a <Plug>TypecorrAdd;
|
||||
23 endif
|
||||
24 noremap <unique> <script> <Plug>TypecorrAdd <SID>Add
|
||||
24 noremap <unique> <script> <Plug>TypecorrAdd; <SID>Add
|
||||
25
|
||||
26 noremenu <script> Plugin.Add\ Correction <SID>Add
|
||||
27
|
||||
28 noremap <SID>Add :call <SID>Add(expand("<cword>"), 1)<CR>
|
||||
29
|
||||
30 function s:Add(from, correct)
|
||||
31 let to = input("type the correction for " . a:from . ": ")
|
||||
32 exe ":iabbrev " . a:from . " " . to
|
||||
31 let to = input("type the correction for " .. a:from .. ": ")
|
||||
32 exe ":iabbrev " .. a:from .. " " .. to
|
||||
33 if a:correct | exe "normal viws\<C-R>\" \b\e" | endif
|
||||
34 let s:count = s:count + 1
|
||||
35 echo s:count . " corrections now"
|
||||
35 echo s:count .. " corrections now"
|
||||
36 endfunction
|
||||
37
|
||||
38 if !exists(":Correct")
|
||||
@@ -2279,7 +2283,7 @@ Here is a simple example for a plugin help file, called "typecorr.txt": >
|
||||
6 There are currently only a few corrections. Add your own if you like.
|
||||
7
|
||||
8 Mappings:
|
||||
9 <Leader>a or <Plug>TypecorrAdd
|
||||
9 <Leader>a or <Plug>TypecorrAdd;
|
||||
10 Add a correction for the word under the cursor.
|
||||
11
|
||||
12 Commands:
|
||||
@@ -2417,13 +2421,13 @@ To make sure mappings will only work in the current buffer use the >
|
||||
command. This needs to be combined with the two-step mapping explained above.
|
||||
An example of how to define functionality in a filetype plugin: >
|
||||
|
||||
if !hasmapto('<Plug>JavaImport')
|
||||
map <buffer> <unique> <LocalLeader>i <Plug>JavaImport
|
||||
if !hasmapto('<Plug>JavaImport;')
|
||||
map <buffer> <unique> <LocalLeader>i <Plug>JavaImport;
|
||||
endif
|
||||
noremap <buffer> <unique> <Plug>JavaImport oimport ""<Left><Esc>
|
||||
noremap <buffer> <unique> <Plug>JavaImport; oimport ""<Left><Esc>
|
||||
|
||||
|hasmapto()| is used to check if the user has already defined a map to
|
||||
<Plug>JavaImport. If not, then the filetype plugin defines the default
|
||||
<Plug>JavaImport;. If not, then the filetype plugin defines the default
|
||||
mapping. This starts with |<LocalLeader>|, which allows the user to select
|
||||
the key(s) he wants filetype plugin mappings to start with. The default is a
|
||||
backslash.
|
||||
@@ -2440,12 +2444,12 @@ plugin for the mail filetype: >
|
||||
" Add mappings, unless the user didn't want this.
|
||||
if !exists("no_plugin_maps") && !exists("no_mail_maps")
|
||||
" Quote text by inserting "> "
|
||||
if !hasmapto('<Plug>MailQuote')
|
||||
vmap <buffer> <LocalLeader>q <Plug>MailQuote
|
||||
nmap <buffer> <LocalLeader>q <Plug>MailQuote
|
||||
if !hasmapto('<Plug>MailQuote;')
|
||||
vmap <buffer> <LocalLeader>q <Plug>MailQuote;
|
||||
nmap <buffer> <LocalLeader>q <Plug>MailQuote;
|
||||
endif
|
||||
vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>
|
||||
nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>
|
||||
vnoremap <buffer> <Plug>MailQuote; :s/^/> /<CR>
|
||||
nnoremap <buffer> <Plug>MailQuote; :.,$s/^/> /<CR>
|
||||
endif
|
||||
|
||||
Two global variables are used:
|
||||
@@ -2488,7 +2492,7 @@ should be undone. Set the b:undo_ftplugin variable to the commands that will
|
||||
undo the settings in your filetype plugin. Example: >
|
||||
|
||||
let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
|
||||
\ . "| unlet b:match_ignorecase b:match_words b:match_skip"
|
||||
\ .. "| unlet b:match_ignorecase b:match_words b:match_skip"
|
||||
|
||||
Using ":setlocal" with "<" after the option name resets the option to its
|
||||
global value. That is mostly the best way to reset the option value.
|
||||
@@ -2609,17 +2613,17 @@ The following example shows how it's done: >
|
||||
map <F19> :call BufNetWrite('something')<CR>
|
||||
|
||||
let s:did_load = 1
|
||||
exe 'au FuncUndefined BufNet* source ' . expand('<sfile>')
|
||||
exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
|
||||
finish
|
||||
endif
|
||||
|
||||
function BufNetRead(...)
|
||||
echo 'BufNetRead(' . string(a:000) . ')'
|
||||
echo 'BufNetRead(' .. string(a:000) .. ')'
|
||||
" read functionality here
|
||||
endfunction
|
||||
|
||||
function BufNetWrite(...)
|
||||
echo 'BufNetWrite(' . string(a:000) . ')'
|
||||
echo 'BufNetWrite(' .. string(a:000) .. ')'
|
||||
" write functionality here
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -210,8 +210,8 @@ argument: >
|
||||
:amenu <silent> Mine.Next\ File :call <SID>NextFile()<CR>
|
||||
|
||||
Don't use "<silent>" too often. It is not needed for short commands. If you
|
||||
make a menu for someone else, being able the see the executed command will
|
||||
give him a hint about what he could have typed, instead of using the mouse.
|
||||
make a menu for someone else, being able to see the executed command will give
|
||||
him a hint about what he could have typed, instead of using the mouse.
|
||||
|
||||
|
||||
LISTING MENUS
|
||||
|
||||
@@ -34,7 +34,7 @@ That makes very clear what is defined where.
|
||||
Let's start with an example, a script that exports one function and has one
|
||||
private function: >
|
||||
|
||||
vim9script " This indicates a Vim9 script file,
|
||||
vim9script " This indicates a Vim9 script file.
|
||||
|
||||
export def GetMessage(): string
|
||||
let result = ''
|
||||
|
||||
@@ -333,7 +333,7 @@ Make Vim work as you like it.
|
||||
|44.11| Installing a syntax file
|
||||
|44.12| Portable syntax file layout
|
||||
|
||||
|usr_45.txt| Select your language
|
||||
|usr_45.txt| Select your language (locale)
|
||||
|45.1| Language for Messages
|
||||
|45.2| Language for Menus
|
||||
|45.3| Using another encoding
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*various.txt* For Vim version 8.2. Last change: 2020 Aug 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -92,7 +92,7 @@ g8 Print the hex values of the bytes used in the
|
||||
encoding because it contains illegal bytes.
|
||||
Does not wrap around the end of the file.
|
||||
Note that when the cursor is on an illegal byte or the
|
||||
cursor is halfway a multi-byte character the command
|
||||
cursor is halfway a multibyte character the command
|
||||
won't move the cursor.
|
||||
|
||||
*:p* *:pr* *:print* *E749*
|
||||
@@ -145,16 +145,16 @@ g8 Print the hex values of the bytes used in the
|
||||
:{range}z[+-^.=]{count} Display several lines of text surrounding the line
|
||||
specified with {range}, or around the current line
|
||||
if there is no {range}. If there is a {count}, that's
|
||||
how many lines you'll see; if there is only one window
|
||||
then twice the value of the 'scroll' option is used,
|
||||
otherwise the current window height minus 3 is used.
|
||||
how many lines you'll see; if there is no {count} and
|
||||
only one window then twice the value of the 'scroll'
|
||||
option is used, otherwise the current window height
|
||||
minus 3 is used.
|
||||
|
||||
If there is a {count} the 'window' option is set to
|
||||
its value.
|
||||
|
||||
:z can be used either alone or followed by any of
|
||||
several punctuation marks. These have the following
|
||||
effect:
|
||||
several marks. These have the following effect:
|
||||
|
||||
mark first line last line new cursor line ~
|
||||
---- ---------- --------- ------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version5.txt* For Vim version 8.2. Last change: 2016 Feb 27
|
||||
*version5.txt* For Vim version 8.2. Last change: 2020 Sep 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2133,12 +2133,12 @@ it is invoked.
|
||||
Deleted the "os_archie" files, they were not working anyway.
|
||||
|
||||
|
||||
Multi-byte support *new-multi-byte*
|
||||
Multi-byte support *new-multi-byte* *new-multibyte*
|
||||
------------------
|
||||
|
||||
MultiByte support for Win32 GUI. (Baek)
|
||||
The 'fileencoding' option decides how the text in the file is encoded.
|
||||
":ascii" works for multi-byte characters. Multi-byte characters work on
|
||||
":ascii" works for multibyte characters. Multi-byte characters work on
|
||||
Windows 95, even when using the US version. (Aaron)
|
||||
Needs to be enabled in feature.h.
|
||||
This has not been tested much yet!
|
||||
@@ -3671,10 +3671,10 @@ For the ":clist" command, you can scroll backwards with "b" (one screenful),
|
||||
"u" (half a screenful) and "k" (one line).
|
||||
|
||||
Multi-byte support:
|
||||
- X-input method for multi-byte characters. And various fixes for multi-byte
|
||||
- X-input method for multibyte characters. And various fixes for multibyte
|
||||
support. (Nam)
|
||||
- Hangul input method feature: |hangul|. (Nam)
|
||||
- Cleaned up configuration of multi-byte support, XIM, fontset and Hangul
|
||||
- Cleaned up configuration of multibyte support, XIM, fontset and Hangul
|
||||
input. Each is now configurable separately.
|
||||
- Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam)
|
||||
- Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam)
|
||||
@@ -3682,10 +3682,10 @@ Multi-byte support:
|
||||
- First attempt to include support for SJIS encoding. (Nagano)
|
||||
- When a double-byte character doesn't fit at the end of the line, put a "~"
|
||||
there and print it on the next line.
|
||||
- Optimize output of multi-byte text. (Park)
|
||||
- Optimize output of multibyte text. (Park)
|
||||
- Win32 IME: preedit style is like over-the-spot. (Nagano)
|
||||
- Win32 IME: IME mode change now done with ImmSetOpenStatus. (Nagano)
|
||||
- GUI Athena: file selection dialog can display multi-byte characters.
|
||||
- GUI Athena: file selection dialog can display multibyte characters.
|
||||
(Nagano)
|
||||
- Selection reply for XA_TEXT as XA_STRING. (Nagano)
|
||||
|
||||
@@ -3720,7 +3720,7 @@ X11:
|
||||
with the VisualNOS group to show this. (Madsen)
|
||||
- Support for requesting the type of clipboard support. Used for AIX and
|
||||
dtterm. (Wittig)
|
||||
- Support compound_text selection (even when compiled without multi-byte).
|
||||
- Support compound_text selection (even when compiled without multibyte).
|
||||
|
||||
Swap file:
|
||||
- New variation for naming swap files: Replace path separators into %, place
|
||||
@@ -4063,7 +4063,7 @@ compiling pathdef.c. Replaced it with "tr".
|
||||
|
||||
Perl: DO_JOIN was redefined by Perl. Undefined it in the perl files.
|
||||
|
||||
Various XIM and multi-byte fixes:
|
||||
Various XIM and multibyte fixes:
|
||||
- Fix user cannot see his language while he is typing his language with
|
||||
off-the-spot method. (Nagano)
|
||||
- Fix preedit position using text/edit area (using gui.wid). (Nagano)
|
||||
@@ -4080,7 +4080,7 @@ Various XIM and multi-byte fixes:
|
||||
- XIM: Composed strings were sometimes ignored. Vim crashed when compose
|
||||
string was longer than 256 bytes. IM's geometry control is fixed. (Nam,
|
||||
Nagano)
|
||||
- Win32 multi-byte: hollowed cursor width on a double byte char was wrong.
|
||||
- Win32 multibyte: hollowed cursor width on a double byte char was wrong.
|
||||
(Nagano)
|
||||
- When there is no GUI, selecting XIM caused compilation problems.
|
||||
Automatically disable XIM when there is no GUI in configure.
|
||||
@@ -4417,7 +4417,7 @@ Now map <xF4> to <F4>, so that the user can override this.
|
||||
When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be
|
||||
used. (Aaron)
|
||||
|
||||
This autocommand looped forever: ":au FileChangedShell * nested e <afile>"
|
||||
This autocommand looped forever: ":au FileChangedShell * ++nested e <afile>"
|
||||
Now FileChangeShell never nests. (Roemer)
|
||||
|
||||
When evaluating an ":elseif" that was not going to matter anyway, ignore
|
||||
@@ -5496,7 +5496,7 @@ Solution: When there is a comment leader for the new line, but 'autoindent'
|
||||
Files: src/misc1.c
|
||||
|
||||
Patch 5.4.26
|
||||
Problem: Multi-byte: a multi-byte character is never recognized in a file
|
||||
Problem: Multi-byte: a multibyte character is never recognized in a file
|
||||
name, causing a backslash before it to be removed on Windows.
|
||||
Solution: Assume that a leading-byte character is a file name character in
|
||||
vim_isfilec().
|
||||
@@ -5945,7 +5945,7 @@ __TIME__. (John Card II)
|
||||
BeOS: Adjust computing the char_height and char_ascent. Round them up
|
||||
separately, avoids redrawing artifacts. (Mike Steed)
|
||||
|
||||
Fix a few multi-byte problems in menu_name_skip(), set_reg_ic(), searchc() and
|
||||
Fix a few multibyte problems in menu_name_skip(), set_reg_ic(), searchc() and
|
||||
findmatchlimit(). (Taro Muraoka)
|
||||
|
||||
GTK GUI:
|
||||
@@ -6631,9 +6631,9 @@ Solution: Use a shell extension dll. (Tianmiao Hu)
|
||||
Files: src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt
|
||||
|
||||
Patch 5.6a.028 (extra)
|
||||
Problem: Win32 GUI: Dialogs and tear-off menus can't handle multi-byte
|
||||
Problem: Win32 GUI: Dialogs and tear-off menus can't handle multibyte
|
||||
characters.
|
||||
Solution: Adjust nCopyAnsiToWideChar() to handle multi-byte characters
|
||||
Solution: Adjust nCopyAnsiToWideChar() to handle multibyte characters
|
||||
correctly.
|
||||
Files: src/gui_w32.c
|
||||
|
||||
@@ -6727,9 +6727,9 @@ Many fixes to Macintosh specific parts: (mostly by Dany StAmant)
|
||||
- Add digraphs table. (Axel Kielhorn)
|
||||
- Multi-byte support: (Kenichi Asai)
|
||||
Switch keyscript when going in/out of Insert mode.
|
||||
Draw multi-byte character correctly.
|
||||
Don't use mblen() but highest bit of char to detect multi-byte char.
|
||||
Display value of multi-byte in statusline (also for other systems).
|
||||
Draw multibyte character correctly.
|
||||
Don't use mblen() but highest bit of char to detect multibyte char.
|
||||
Display value of multibyte in statusline (also for other systems).
|
||||
- mouse button was not initialized properly to MOUSE_LEFT when
|
||||
USE_CTRLCLICKMENU not defined.
|
||||
- With Japanese SJIS characters: Make "w", "b", and "e" work
|
||||
@@ -6981,7 +6981,7 @@ Solution: Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang)
|
||||
Files: src/gui_gtk_x11.c
|
||||
|
||||
Patch 5.6.037
|
||||
Problem: Multi-byte: Can't use "f" command with multi-byte character in GUI.
|
||||
Problem: Multi-byte: Can't use "f" command with multibyte character in GUI.
|
||||
Solution: Enable XIM in Normal mode for the GUI. (Sung-Hyun Nam)
|
||||
Files: src/gui_gtk_x11.c, src/multbyte.c
|
||||
|
||||
@@ -7094,7 +7094,7 @@ Files: src/fileio.c, src/tag.c
|
||||
Patch 5.6.052
|
||||
Problem: Multi-byte: When an Ex command has a '|' or '"' as a second byte,
|
||||
it terminates the command.
|
||||
Solution: Skip second byte of multi-byte char when checking for '|' and '"'.
|
||||
Solution: Skip second byte of multibyte char when checking for '|' and '"'.
|
||||
(Asai Kenichi)
|
||||
Files: src/ex_docmd.c
|
||||
|
||||
@@ -7246,7 +7246,7 @@ Files: src/Makefile.bor, src/dosinst.c
|
||||
|
||||
Patch 5.6.074 (extra)
|
||||
Problem: Entering CSI directly doesn't always work, because it's recognized
|
||||
as the start of a special key. Mostly a problem with multi-byte
|
||||
as the start of a special key. Mostly a problem with multibyte
|
||||
in the GUI.
|
||||
Solution: Use K_CSI for a typed CSI character. Use <CSI> for a normal CSI,
|
||||
<xCSI> for a CSI typed in the GUI.
|
||||
@@ -7337,7 +7337,7 @@ Solution: Use IsBadStringPtr() to check if the pointer is valid.
|
||||
Files: src/os_win32.c
|
||||
|
||||
Patch 5.6.087
|
||||
Problem: Multi-byte: Commands and messages with multi-byte characters are
|
||||
Problem: Multi-byte: Commands and messages with multibyte characters are
|
||||
displayed wrong.
|
||||
Solution: Detect double-byte characters. (Yasuhiro Matsumoto)
|
||||
Files: src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c
|
||||
@@ -7384,9 +7384,9 @@ Solution: Don't write a message about the file read from stdin until the GUI
|
||||
Files: src/fileio.c
|
||||
|
||||
Patch 5.6.094
|
||||
Problem: Problem with multi-byte string for ":echo var".
|
||||
Problem: Problem with multibyte string for ":echo var".
|
||||
Solution: Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam)
|
||||
Also make do_echo() aware of multi-byte characters.
|
||||
Also make do_echo() aware of multibyte characters.
|
||||
Files: src/eval.c, src/message.c
|
||||
|
||||
Patch 5.6.095
|
||||
@@ -7417,9 +7417,9 @@ Files: src/misc1.c
|
||||
|
||||
Patch 5.7a.003
|
||||
Problem: Multi-byte: After using CTRL-O in Insert mode with the cursor at
|
||||
the end of the line on a multi-byte character the cursor moves to
|
||||
the end of the line on a multibyte character the cursor moves to
|
||||
the left.
|
||||
Solution: Check for multi-byte character at end-of-line. (Taro Muraoka)
|
||||
Solution: Check for multibyte character at end-of-line. (Taro Muraoka)
|
||||
Also: fix cls() to detect a double-byte character. (Chong-Dae Park)
|
||||
Files: src/edit.c, src/search.c
|
||||
|
||||
@@ -7736,7 +7736,7 @@ Solution: Disallow executing a shell command in get_cmd_output() and
|
||||
Files: src/misc1.c, src/os_unix.c
|
||||
|
||||
Patch 5.7.019
|
||||
Problem: Multibyte: In a substitute string, a multi-byte character isn't
|
||||
Problem: Multibyte: In a substitute string, a multibyte character isn't
|
||||
skipped properly, can be a problem when the second byte is a
|
||||
backslash.
|
||||
Solution: Skip an extra byte for a double-byte character. (Muraoka Taro)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version6.txt* For Vim version 8.2. Last change: 2019 Jan 17
|
||||
*version6.txt* For Vim version 8.2. Last change: 2020 Aug 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -449,7 +449,7 @@ The help window is opened at the top, like ":topleft" was used, if the current
|
||||
window is fewer than 80 characters wide.
|
||||
|
||||
A few options can be used to set the preferences for vertically split windows.
|
||||
They work similar to their existing horizontal equivalents:
|
||||
They work similarly to their existing horizontal equivalents:
|
||||
horizontal vertical ~
|
||||
'splitbelow' 'splitright'
|
||||
'winheight' 'winwidth'
|
||||
@@ -623,7 +623,7 @@ For syntax items:
|
||||
|
||||
Removed limit of matching only up to 32767 times with *, \+, etc.
|
||||
|
||||
Added support to match multi-byte characters. (partly by Muraoka Taro)
|
||||
Added support to match multibyte characters. (partly by Muraoka Taro)
|
||||
Made "\<" and "\>" work for UTF-8. (Muraoka Taro)
|
||||
|
||||
|
||||
@@ -664,10 +664,10 @@ Many new items for Multi-byte support:
|
||||
- Added 'guifontwide' to specify a font for double-wide characters.
|
||||
- Added Korean support for character class detection. Also fix cls() in
|
||||
search.c. (Chong-Dae Park)
|
||||
- Win32: Typing multi-byte characters without IME. (Alexander Smishlajev)
|
||||
- Win32: Typing multibyte characters without IME. (Alexander Smishlajev)
|
||||
- Win32 with Mingw: compile with iconv library. (Ron Aaron)
|
||||
- Win32 with MSVC: dynamically load iconv.dll library. (Muraoka Taro)
|
||||
- Make it possible to build a version with multi-byte and iconv support with
|
||||
- Make it possible to build a version with multibyte and iconv support with
|
||||
Borland 5.5. (Yasuhiro Matsumoto)
|
||||
- Added 'delcombine' option: Delete combining character separately. (Ron
|
||||
Aaron)
|
||||
@@ -680,19 +680,19 @@ Many new items for Multi-byte support:
|
||||
- Support "CursorIM" for XIM. (Nam SungHyun)
|
||||
- Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at
|
||||
each multibyte character, not only at a space.
|
||||
- Made ":syntax keyword" work with multi-byte characters.
|
||||
- Made ":syntax keyword" work with multibyte characters.
|
||||
- Added support for Unicode upper/lowercase flipping and comparing. (based on
|
||||
patch by Raphael Finkel)
|
||||
Let "~" on multi-byte characters that have a third case ("title case")
|
||||
Let "~" on multibyte characters that have a third case ("title case")
|
||||
switch between the three cases. (Raphael Finkel)
|
||||
|
||||
Allow defining digraphs for multi-byte characters.
|
||||
Allow defining digraphs for multibyte characters.
|
||||
Added RFC1345 digraphs for Unicode.
|
||||
Most Normal mode commands that accept a character argument, like "r", "t" and
|
||||
"f" now accept a digraph. The 'D' flag in 'cpoptions' disables this to remain
|
||||
Vi compatible.
|
||||
|
||||
Added Language mapping and 'keymap' to be able to type multi-byte characters:
|
||||
Added Language mapping and 'keymap' to be able to type multibyte characters:
|
||||
- Added the ":lmap" command and friends: Define mappings that are used when
|
||||
typing characters in the language of the text. Also for "r", "t", etc. In
|
||||
Insert and Command-line mode CTRL-^ switches the use of the mappings on/off.
|
||||
@@ -715,7 +715,7 @@ Added Language mapping and 'keymap' to be able to type multi-byte characters:
|
||||
- When typing a mapping that's not finished yet, display the last character
|
||||
under the cursor in Insert mode and Command-line mode. Looks good for dead
|
||||
characters.
|
||||
- Made the 'langmap' option recognize multi-byte characters. But mapping only
|
||||
- Made the 'langmap' option recognize multibyte characters. But mapping only
|
||||
works for 8-bit characters. Helps when using UTF-8.
|
||||
- Use a different cursor for when ":lmap" mappings are active. Can specify
|
||||
two highlight groups for an item in 'guicursor'. By default "lCursor" and
|
||||
@@ -726,7 +726,7 @@ Added Language mapping and 'keymap' to be able to type multi-byte characters:
|
||||
Also works for "f", which now works to find a character that includes a
|
||||
composing character.
|
||||
|
||||
Other multi-byte character additions:
|
||||
Other multibyte character additions:
|
||||
- Support double-byte single-width characters for euc-jp: Characters starting
|
||||
with 0x8E. Added ScreenLines2[] to store the second byte.
|
||||
|
||||
@@ -1004,7 +1004,7 @@ systems a PostScript file is generated, which can be printed with the
|
||||
(MS-Windows part by Vince Negri, Vipin Aravind, PostScript by Vince Negri and
|
||||
Mike Williams)
|
||||
|
||||
Made ":hardcopy" work with multi-byte characters. (Muraoka Taro, Yasuhiro
|
||||
Made ":hardcopy" work with multibyte characters. (Muraoka Taro, Yasuhiro
|
||||
Matsumoto)
|
||||
|
||||
Added options to tune the way printing works: (Vince Negri)
|
||||
@@ -1703,7 +1703,7 @@ GUI:
|
||||
- Win32: Added "c" flag to 'guifont' to be able to specify the charset. (Artem
|
||||
Khodush)
|
||||
- When no --enable-xim argument is given, automatically enable it when a X GUI
|
||||
is used. Required for dead key support (and multi-byte input).
|
||||
is used. Required for dead key support (and multibyte input).
|
||||
- After a file selection dialog, check that the edited files were not changed
|
||||
or deleted. The Win32 dialog allows deleting and renaming files.
|
||||
- Motif and Athena: Added support for "editres". (Marcin Dalecki)
|
||||
@@ -2025,8 +2025,8 @@ Timestamps:
|
||||
file that steadily grows.
|
||||
|
||||
Mapping <M-A> when 'encoding' is "latin1" and then setting 'encoding' to
|
||||
"utf-8" causes the first byte of a multi-byte to be mapped. Can cause very
|
||||
hard to find problems. Disallow mapping part of a multi-byte character.
|
||||
"utf-8" causes the first byte of a multibyte to be mapped. Can cause very
|
||||
hard to find problems. Disallow mapping part of a multibyte character.
|
||||
|
||||
For ":python" and ":tcl" accept an in-line script. (Johannes Zellner)
|
||||
Also for ":ruby" and ":perl". (Benoit Cerrina)
|
||||
@@ -2467,7 +2467,7 @@ Motif: When adding many menu items, the "Help" menu disappeared but the
|
||||
menubar didn't wrap. Now manually set the menubar height.
|
||||
|
||||
When using <BS> in Insert mode to remove a line break, or using "J" to join
|
||||
lines, the cursor could end up halfway a multi-byte character. (Muraoka Taro)
|
||||
lines, the cursor could end up halfway a multibyte character. (Muraoka Taro)
|
||||
|
||||
Removed defining SVR4 in configure. It causes problems for some X header
|
||||
files and doesn't appear to be used anywhere.
|
||||
@@ -2617,12 +2617,12 @@ column. Can't encode a larger number in a character. Now limit the number to
|
||||
222, don't jump back to the first column.
|
||||
|
||||
GUI: In some versions CSI would cause trouble, either when typed directly or
|
||||
when part of a multi-byte sequence.
|
||||
when part of a multibyte sequence.
|
||||
|
||||
When using multibyte characters in a ":normal" command, a trailing byte that
|
||||
is CSI or K_SPECIAL caused problems.
|
||||
|
||||
Wildmenu didn't handle multi-byte characters.
|
||||
Wildmenu didn't handle multibyte characters.
|
||||
|
||||
":sleep 10" could not be interrupted on Windows, while "gs" could. Made them
|
||||
both work the same.
|
||||
@@ -2673,7 +2673,7 @@ path.
|
||||
Multi-byte:
|
||||
- Using an any-but character range [^x] in a regexp didn't work for UTF-8.
|
||||
(Muraoka Taro)
|
||||
- When backspacing over inserted characters in Replace mode multi-byte
|
||||
- When backspacing over inserted characters in Replace mode multibyte
|
||||
characters were not handled correctly. (Muraoka Taro)
|
||||
- Search commands "#" and "*" didn't work with multibyte characters. (Muraoka
|
||||
Taro)
|
||||
@@ -2690,9 +2690,9 @@ Multi-byte:
|
||||
wrong error number. (Muraoka Taro)
|
||||
- Using Alt-x in the GUI while 'encoding' was set to "utf-8" didn't produce
|
||||
the right character.
|
||||
- When using Visual block selection and only the left halve of a double-wide
|
||||
- When using Visual block selection and only the left half of a double-wide
|
||||
character is selected, the highlighting continued to the end of the line.
|
||||
- Visual-block delete didn't work properly when deleting the right halve of a
|
||||
- Visual-block delete didn't work properly when deleting the right half of a
|
||||
double-wide character.
|
||||
- Overstrike mode for the cmdline replaced only the first byte of a multibyte
|
||||
character.
|
||||
@@ -2701,8 +2701,8 @@ Multi-byte:
|
||||
- When a multibyte character contained a 0x80 byte, it didn't work (was using
|
||||
a CSI byte instead). (Muraoka Taro)
|
||||
- Wordwise selection with the mouse didn't work.
|
||||
- Yanking a modeless selection of multi-byte characters didn't work.
|
||||
- When 'selection' is "exclusive", selecting a word that ends in a multi-byte
|
||||
- Yanking a modeless selection of multibyte characters didn't work.
|
||||
- When 'selection' is "exclusive", selecting a word that ends in a multibyte
|
||||
character used wrong highlighting for the following character.
|
||||
|
||||
Win32 with Make_mvc.mak: Didn't compile for debugging. (Craig Barkhouse)
|
||||
@@ -2795,13 +2795,13 @@ GTK: Crash when 'shell' doesn't exist and doing":!ls". Use _exit() instead of
|
||||
exit() when the child couldn't execute the shell.
|
||||
|
||||
Multi-byte:
|
||||
- GUI with double-byte encoding: a mouse click in left halve of double-wide
|
||||
- GUI with double-byte encoding: a mouse click in left half of double-wide
|
||||
character put the cursor in previous char.
|
||||
- Using double-byte encoding and 'selection' is "exclusive": "vey" and "^Vey"
|
||||
included the character after the word.
|
||||
- When using a double-byte encoding and there is a lead byte at the end of the
|
||||
line, the preceding line would be displayed. "ga" also showed wrong info.
|
||||
- "gf" didn't include multi-byte characters before the cursor properly.
|
||||
- "gf" didn't include multibyte characters before the cursor properly.
|
||||
(Muraoka Taro)
|
||||
|
||||
GUI: The cursor was sometimes not removed when scrolling. Changed the policy
|
||||
@@ -2919,7 +2919,7 @@ The message remembered for displaying later (keep_msg) was sometimes pointing
|
||||
into a generic buffer, which might be changed by the time the message is
|
||||
displayed. Now make a copy of the message.
|
||||
|
||||
When using multi-byte characters in a menu and a trailing byte is a backslash,
|
||||
When using multibyte characters in a menu and a trailing byte is a backslash,
|
||||
the menu would not be created correctly. (Muraoka Taro)
|
||||
Using a multibyte character in the substitute string where a trail byte is a
|
||||
backslash didn't work. (Muraoka Taro)
|
||||
@@ -2958,7 +2958,7 @@ the output.
|
||||
Don't define the <NetMouse> termcode in an xterm, reduces the problem when
|
||||
someone types <Esc> } in Insert mode.
|
||||
|
||||
Made slash_adjust() work correctly for multi-byte characters. (Yasuhiro
|
||||
Made slash_adjust() work correctly for multibyte characters. (Yasuhiro
|
||||
Matsumoto)
|
||||
Using a filename in Big5 encoding for autocommands didn't work (backslash in
|
||||
trailbyte). (Yasuhiro Matsumoto)
|
||||
@@ -3147,7 +3147,7 @@ available space correctly. Was counting the menu height twice.
|
||||
Conversion of the docs to HTML didn't handle the line with the +quickfix tag
|
||||
correctly. (Antonio Colombo)
|
||||
|
||||
Win32: fname_case() didn't handle multi-byte characters correctly. (Yasuhiro
|
||||
Win32: fname_case() didn't handle multibyte characters correctly. (Yasuhiro
|
||||
Matsumoto)
|
||||
|
||||
The Cygwin version had trouble with fchdir(). Don't use that function for
|
||||
@@ -3164,10 +3164,10 @@ the terminal it was started in.
|
||||
|
||||
When using ESC in Insert mode, an autoindent that wraps to the next line
|
||||
caused the cursor to move to the end of the line temporarily. When the
|
||||
character before the cursor was a double-wide multi-byte character the cursor
|
||||
would be on the right halve, which causes problems with some terminals.
|
||||
character before the cursor was a double-wide multibyte character the cursor
|
||||
would be on the right half, which causes problems with some terminals.
|
||||
|
||||
Didn't handle multi-byte characters correctly when expanding a file name.
|
||||
Didn't handle multibyte characters correctly when expanding a file name.
|
||||
(Yasuhiro Matsumoto)
|
||||
|
||||
Win32 GUI: Errors generated before the GUI is decided to start were not
|
||||
@@ -3307,7 +3307,7 @@ started from the desktop (no place to display messages) it would hang. Now
|
||||
open the GUI window early to be able to display the messages and pop up the
|
||||
dialog.
|
||||
|
||||
"r<CR>" on a multi-byte character deleted only the first byte of the
|
||||
"r<CR>" on a multibyte character deleted only the first byte of the
|
||||
character. "3r<CR>" deleted three bytes instead of three characters.
|
||||
|
||||
When interrupting reading a file, Vi considers the buffer modified. Added the
|
||||
@@ -3431,7 +3431,7 @@ Solution: Change slashes to backslashes in the directory passed to the file
|
||||
Files: src/gui_w48.c
|
||||
|
||||
Athena file browser: On some systems wcstombs() can't be used to get the
|
||||
length of a multi-byte string. Use the maximum length then. (Yasuhiro
|
||||
length of a multibyte string. Use the maximum length then. (Yasuhiro
|
||||
Matsumoto)
|
||||
|
||||
Patch 6.0ax.001
|
||||
@@ -3784,7 +3784,7 @@ Solution: Check for a NULL pointer.
|
||||
Files: src/mbyte.c
|
||||
|
||||
Patch 6.0.019
|
||||
Problem: Converting a string with multi-byte characters to a printable
|
||||
Problem: Converting a string with multibyte characters to a printable
|
||||
string, e.g., with strtrans(), may cause a crash. (Tomas Zellerin)
|
||||
Solution: Correctly compute the length of the result in transstr().
|
||||
Files: src/charset.c
|
||||
@@ -4148,9 +4148,9 @@ Solution: Position the system cursor before starting the shell.
|
||||
Files: src/os_msdos.c
|
||||
|
||||
Patch 6.0.074
|
||||
Problem: When using "&" in a substitute string a multi-byte character with
|
||||
Problem: When using "&" in a substitute string a multibyte character with
|
||||
a trailbyte 0x5c is not handled correctly.
|
||||
Solution: Recognize multi-byte characters inside the "&" part. (Muraoka Taro)
|
||||
Solution: Recognize multibyte characters inside the "&" part. (Muraoka Taro)
|
||||
Files: src/regexp.c
|
||||
|
||||
Patch 6.0.075
|
||||
@@ -4311,7 +4311,7 @@ Files: src/ex_cmds.c
|
||||
|
||||
Patch 6.0.097
|
||||
Problem: Re-indenting in Insert mode with CTRL-F may cause a crash with a
|
||||
multi-byte encoding.
|
||||
multibyte encoding.
|
||||
Solution: Avoid using a character before the start of a line. (Sergey
|
||||
Vlasov)
|
||||
Files: src/edit.c
|
||||
@@ -4356,7 +4356,7 @@ Files: src/normal.c
|
||||
|
||||
Patch 6.0.104
|
||||
Problem: Multi-byte: When '$' is in 'cpoptions', typing a double-wide
|
||||
character that overwrites the left halve of an old double-wide
|
||||
character that overwrites the left half of an old double-wide
|
||||
character causes a redraw problem and the cursor stops blinking.
|
||||
Solution: Clear the right half of the old character. (Yasuhiro Matsumoto)
|
||||
Files: src/edit.c, src/screen.c
|
||||
@@ -4669,14 +4669,14 @@ Solution: Correctly report "operand could be empty" when using "\{-}".
|
||||
Files: src/regexp.c
|
||||
|
||||
Patch 6.0.150
|
||||
Problem: When using a multi-byte encoding, patch 6.0.148 causes "p" to work
|
||||
Problem: When using a multibyte encoding, patch 6.0.148 causes "p" to work
|
||||
like "P". (Sung-Hyun Nam)
|
||||
Solution: Compute the byte length of a multi-byte character.
|
||||
Solution: Compute the byte length of a multibyte character.
|
||||
Files: src/ops.c
|
||||
|
||||
Patch 6.0.151
|
||||
Problem: Redrawing the status line and ruler can be wrong when it contains
|
||||
multi-byte characters.
|
||||
multibyte characters.
|
||||
Solution: Use character width and byte length correctly. (Yasuhiro Matsumoto)
|
||||
Files: src/screen.c
|
||||
|
||||
@@ -4878,7 +4878,7 @@ Solution: Free the allocated memory. Also avoid an uninitialized memory
|
||||
Files: src/misc2.c
|
||||
|
||||
Patch 6.0.182
|
||||
Problem: When using a regexp on multi-byte characters, could try to read a
|
||||
Problem: When using a regexp on multibyte characters, could try to read a
|
||||
character before the start of the line.
|
||||
Solution: Don't decrement a pointer to before the start of the line.
|
||||
Files: src/regexp.c
|
||||
@@ -5060,7 +5060,7 @@ Files: src/edit.c
|
||||
|
||||
Patch 6.0.209
|
||||
Problem: GUI GTK: After selecting a 'guifont' with the font dialog there
|
||||
are redraw problems for multi-byte characters.
|
||||
are redraw problems for multibyte characters.
|
||||
Solution: Separate the font dialog from setting the new font name to avoid
|
||||
that "*" is used to find wide and bold fonts.
|
||||
When redrawing extra characters for the bold trick, take care of
|
||||
@@ -5203,14 +5203,14 @@ Files: src/ex_docmd.c, src/globals.h, src/normal.c, src/ops.c,
|
||||
|
||||
Patch 6.0.229
|
||||
Problem: Multi-byte: With 'm' in 'formatoptions', formatting doesn't break
|
||||
at a multi-byte char followed by an ASCII char, and the other way
|
||||
at a multibyte char followed by an ASCII char, and the other way
|
||||
around. (Muraoka Taro)
|
||||
When joining lines a space is inserted between multi-byte
|
||||
When joining lines a space is inserted between multibyte
|
||||
characters, which is not always wanted.
|
||||
Solution: Check for multi-byte character before and after the breakpoint.
|
||||
Don't insert a space before or after a multi-byte character when
|
||||
Solution: Check for multibyte character before and after the breakpoint.
|
||||
Don't insert a space before or after a multibyte character when
|
||||
joining lines and the 'M' flag is in 'formatoptions'. Don't
|
||||
insert a space between multi-byte characters when the 'B' flag is
|
||||
insert a space between multibyte characters when the 'B' flag is
|
||||
in 'formatoptions'.
|
||||
Files: src/edit.c, src/ops.c, src/option.h
|
||||
|
||||
@@ -5290,7 +5290,7 @@ Patch 6.0.241
|
||||
Problem: Win32: Expanding the old value of an option that is a path that
|
||||
starts with a backslash, an extra backslash is inserted.
|
||||
Solution: Only insert backslashes where needed.
|
||||
Also handle multi-byte characters properly when removing
|
||||
Also handle multibyte characters properly when removing
|
||||
backslashes.
|
||||
Files: src/option.c
|
||||
|
||||
@@ -5312,7 +5312,7 @@ Problem: Multi-byte: Problems with (illegal) UTF-8 characters in menu and
|
||||
file name (e.g., icon text, status line).
|
||||
Solution: Correctly handle unprintable characters. Catch illegal UTF-8
|
||||
characters and replace them with <xx>. Truncating the status line
|
||||
wasn't done correctly at a multi-byte character. (Yasuhiro
|
||||
wasn't done correctly at a multibyte character. (Yasuhiro
|
||||
Matsumoto)
|
||||
Added correct_cmdspos() and transchar_byte().
|
||||
Files: src/buffer.c, src/charset.c, src/ex_getln.c, src/gui.c,
|
||||
@@ -5424,7 +5424,7 @@ Solution: Don't call gui_write() when still starting up. Don't give error
|
||||
Files: src/fileio.c, src/gui.c, src/misc1.c, src/ui.c
|
||||
|
||||
Patch 6.0.261
|
||||
Problem: nr2char() and char2nr() don't work with multi-byte characters.
|
||||
Problem: nr2char() and char2nr() don't work with multibyte characters.
|
||||
Solution: Use 'encoding' for these functions. (Yasuhiro Matsumoto)
|
||||
Files: runtime/doc/eval.txt, src/eval.c
|
||||
|
||||
@@ -5517,7 +5517,7 @@ Solution: Don't keep the driver context when using ":hardcopy!". (Vince
|
||||
Files: src/os_mswin.c
|
||||
|
||||
Patch 6.1a.006
|
||||
Problem: multi-byte: after setting 'encoding' the window title might be
|
||||
Problem: multibyte: after setting 'encoding' the window title might be
|
||||
wrong.
|
||||
Solution: Force resetting the title. (Yasuhiro Matsumoto)
|
||||
Files: src/option.c
|
||||
@@ -5654,7 +5654,7 @@ Files: src/globals.h, src/mbyte.c, src/screen.c
|
||||
|
||||
Patch 6.1a.029
|
||||
Problem: After patch 6.1a.028 can't compile GTK version with XIM but
|
||||
without multi-byte chars.
|
||||
without multibyte chars.
|
||||
Solution: Add an #ifdef. (Aschwin Marsman)
|
||||
Files: src/mbyte.c
|
||||
|
||||
@@ -5701,9 +5701,9 @@ Solution: Remove the ACL checks, go back to how it worked in Vim 6.0.
|
||||
Files: src/os_win32.c
|
||||
|
||||
Patch 6.1a.035
|
||||
Problem: multi-byte: When using ":sh" in the GUI, typed and displayed
|
||||
multi-byte characters are not handled correctly.
|
||||
Solution: Deal with multi-byte characters to and from the shell. (Yasuhiro
|
||||
Problem: multibyte: When using ":sh" in the GUI, typed and displayed
|
||||
multibyte characters are not handled correctly.
|
||||
Solution: Deal with multibyte characters to and from the shell. (Yasuhiro
|
||||
Matsumoto) Also handle UTF-8 composing characters.
|
||||
Files: src/os_unix.c
|
||||
|
||||
@@ -5748,9 +5748,9 @@ Files: runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro
|
||||
|
||||
|
||||
Patch 6.1b.001 (extra)
|
||||
Problem: Checking for wildcards in a path does not handle multi-byte
|
||||
Problem: Checking for wildcards in a path does not handle multibyte
|
||||
characters with a trail byte which is a wildcard.
|
||||
Solution: Handle multi-byte characters correctly. (Muraoka Taro)
|
||||
Solution: Handle multibyte characters correctly. (Muraoka Taro)
|
||||
Files: src/os_amiga.c, src/os_mac.c, src/os_msdos.c, src/os_mswin.c,
|
||||
src/os_unix.c
|
||||
|
||||
@@ -6393,7 +6393,7 @@ wrong (back)slashes.
|
||||
|
||||
Win32: printer dialog texts were not translated. (Yasuhiro Matsumoto)
|
||||
|
||||
When using a multi-byte character with a K_SPECIAL byte or a special key code
|
||||
When using a multibyte character with a K_SPECIAL byte or a special key code
|
||||
with "--remote-send" the received byte sequence was mangled. Put it in the
|
||||
typeahead buffer instead of the input buffer.
|
||||
|
||||
@@ -6438,7 +6438,7 @@ library version of fgets() to work correctly for Metrowerks 2.2. (Axel
|
||||
Kielhorn)
|
||||
|
||||
When typing a password a "*" was shown for each byte instead of for each
|
||||
character. Added multi-byte handling to displaying the stars. (Yasuhiro
|
||||
character. Added multibyte handling to displaying the stars. (Yasuhiro
|
||||
Matsumoto)
|
||||
|
||||
When using Perl 5.6 accessing $curbuf doesn't work. Add an #ifdef to use
|
||||
@@ -6690,9 +6690,9 @@ Solution: Overrule 'lazyredraw' when do_redraw is set.
|
||||
Files: src/main.c, src/screen.c
|
||||
|
||||
Patch 6.1.038
|
||||
Problem: Multi-byte: When a ":s" command contains a multi-byte character
|
||||
Problem: Multi-byte: When a ":s" command contains a multibyte character
|
||||
where the trail byte is '~' the text is messed up.
|
||||
Solution: Properly skip multi-byte characters in regtilde() (Muraoka Taro)
|
||||
Solution: Properly skip multibyte characters in regtilde() (Muraoka Taro)
|
||||
Files: src/regexp.c
|
||||
|
||||
Patch 6.1.039
|
||||
@@ -7069,7 +7069,7 @@ Solution: Don't free the item on the stack. Use NULL instead of "none" for
|
||||
Files: src/gui_x11.c
|
||||
|
||||
Patch 6.1.096
|
||||
Problem: When erasing the right halve of a double-byte character, it may
|
||||
Problem: When erasing the right half of a double-byte character, it may
|
||||
cause further characters to be erased. (Yasuhiro Matsumoto)
|
||||
Solution: Make sure only one character is erased.
|
||||
Files: src/screen.c
|
||||
@@ -7105,7 +7105,7 @@ Solution: Use ":setlocal" instead of ":set". Change "aw" to "awa".
|
||||
Files: runtime/optwin.vim
|
||||
|
||||
Patch 6.1.102
|
||||
Problem: Unprintable and multi-byte characters in a statusline item are not
|
||||
Problem: Unprintable and multibyte characters in a statusline item are not
|
||||
truncated correctly. (Yasuhiro Matsumoto)
|
||||
Solution: Count the width of characters instead of the number of bytes.
|
||||
Files: src/buffer.c
|
||||
@@ -7480,7 +7480,7 @@ Solution: Take 'siso' into account when computing the horizontal scroll
|
||||
Files: src/normal.c
|
||||
|
||||
Patch 6.1.159
|
||||
Problem: When expanding an abbreviation that includes a multi-byte
|
||||
Problem: When expanding an abbreviation that includes a multibyte
|
||||
character too many characters are deleted. (Andrey Urazov)
|
||||
Solution: Delete the abbreviation counting characters instead of bytes.
|
||||
Files: src/getchar.c
|
||||
@@ -7964,10 +7964,10 @@ Files: src/gui_w48.c
|
||||
|
||||
Patch 6.1.231
|
||||
Problem: Double clicking with the mouse to select a word does not work for
|
||||
multi-byte characters.
|
||||
multibyte characters.
|
||||
Solution: Use vim_iswordc() instead of vim_isIDc(). This means 'iskeyword'
|
||||
is used instead of 'isident'. Also fix that mixing ASCII with
|
||||
multi-byte word characters doesn't work, the mouse class for
|
||||
multibyte word characters doesn't work, the mouse class for
|
||||
punctuation and word characters was mixed up.
|
||||
Files: src/normal.c
|
||||
|
||||
@@ -8056,7 +8056,7 @@ Files: src/vim.h
|
||||
Patch 6.1.245
|
||||
Problem: Comparing with ignored case does not work properly for Unicode
|
||||
with a locale where case folding an ASCII character results in a
|
||||
multi-byte character. (Glenn Maynard)
|
||||
multibyte character. (Glenn Maynard)
|
||||
Solution: Handle ignore-case compare for Unicode differently.
|
||||
Files: src/mbyte.c
|
||||
|
||||
@@ -8081,8 +8081,8 @@ Files: src/eval.c
|
||||
|
||||
Patch 6.1.249
|
||||
Problem: Can't expand a path on the command line if it includes a "|" as a
|
||||
trail byte of a multi-byte character.
|
||||
Solution: Check for multi-byte characters. (Yasuhiro Matsumoto)
|
||||
trail byte of a multibyte character.
|
||||
Solution: Check for multibyte characters. (Yasuhiro Matsumoto)
|
||||
Files: src/ex_docmd.c
|
||||
|
||||
Patch 6.1.250
|
||||
@@ -8177,9 +8177,9 @@ Solution: Set the previous context mark before jumping.
|
||||
Files: src/fold.c
|
||||
|
||||
Patch 6.1.263
|
||||
Problem: When typing a multi-byte character that triggers an abbreviation
|
||||
Problem: When typing a multibyte character that triggers an abbreviation
|
||||
it is not inserted properly.
|
||||
Solution: Handle adding the typed multi-byte character. (Yasuhiro Matsumoto)
|
||||
Solution: Handle adding the typed multibyte character. (Yasuhiro Matsumoto)
|
||||
Files: src/getchar.c
|
||||
|
||||
Patch 6.1.264 (depends on patch 6.1.254)
|
||||
@@ -8207,7 +8207,7 @@ Solution: Allocate enough memory for saving the register contents. (Muraoka
|
||||
Files: src/ops.c
|
||||
|
||||
Patch 6.1.268
|
||||
Problem: When triggering an abbreviation with a multi-byte character, this
|
||||
Problem: When triggering an abbreviation with a multibyte character, this
|
||||
character is not correctly inserted after expanding the
|
||||
abbreviation. (Taro Muraoka)
|
||||
Solution: Add ABBR_OFF to all characters above 0xff.
|
||||
@@ -8321,7 +8321,7 @@ Files: runtime/doc/options.txt, src/buffer.c, src/option.c,
|
||||
src/quickfix.c
|
||||
|
||||
Patch 6.1.286
|
||||
Problem: 'showbreak' cannot contain multi-byte characters.
|
||||
Problem: 'showbreak' cannot contain multibyte characters.
|
||||
Solution: Allow using all printable characters for 'showbreak'.
|
||||
Files: src/charset.c, src/move.c, src/option.c
|
||||
|
||||
@@ -8343,9 +8343,9 @@ Solution: Add a typecast for " ".
|
||||
Files: src/screen.c
|
||||
|
||||
Patch 6.1.290 (extra)
|
||||
Problem: Truncating long text for message box may break multi-byte
|
||||
Problem: Truncating long text for message box may break multibyte
|
||||
character.
|
||||
Solution: Adjust to start of multi-byte character. (Yasuhiro Matsumoto)
|
||||
Solution: Adjust to start of multibyte character. (Yasuhiro Matsumoto)
|
||||
Files: src/os_mswin.c
|
||||
|
||||
Patch 6.1.291 (extra)
|
||||
@@ -8368,7 +8368,7 @@ Solution: Change ">=" to ">" in ml_find_line_or_offset(). (Bradford C Smith)
|
||||
Files: src/memline.c
|
||||
|
||||
Patch 6.1.294
|
||||
Problem: Can't include a multi-byte character in a string by its hex value.
|
||||
Problem: Can't include a multibyte character in a string by its hex value.
|
||||
(Benji Fisher)
|
||||
Solution: Add "\u....": a character specified with up to four hex numbers
|
||||
and stored according to the value of 'encoding'.
|
||||
@@ -8791,7 +8791,7 @@ Solution: Set Vim as the frontprocess. Fix scrolling. (Peter Cucka)
|
||||
Files: src/gui_mac.c
|
||||
|
||||
Patch 6.1.360 (depends on 6.1.341)
|
||||
Problem: In Insert mode CTRL-K ESC messes up a multi-byte character.
|
||||
Problem: In Insert mode CTRL-K ESC messes up a multibyte character.
|
||||
(Anders Helmersson)
|
||||
Solution: Save all bytes of a character when displaying a character
|
||||
temporarily.
|
||||
@@ -8962,7 +8962,7 @@ Files: src/gui_w32.c
|
||||
|
||||
Patch 6.1.383
|
||||
Problem: The filling of the status line doesn't work properly for
|
||||
multi-byte characters. (Nam SungHyun)
|
||||
multibyte characters. (Nam SungHyun)
|
||||
There is no check for going past the end of the buffer.
|
||||
Solution: Properly distinguish characters and bytes. Properly check for
|
||||
running out of buffer space.
|
||||
@@ -8976,13 +8976,13 @@ Files: runtime/doc/eval.txt, src/eval.c, src/proto/version.pro,
|
||||
src/version.c
|
||||
|
||||
Patch 6.1.385 (depends on 6.1.383)
|
||||
Problem: Can't compile without the multi-byte feature.
|
||||
Problem: Can't compile without the multibyte feature.
|
||||
Solution: Move an #ifdef. (Christian J. Robinson)
|
||||
Files: src/buffer.c
|
||||
|
||||
Patch 6.1.386
|
||||
Problem: Get duplicate tags when running ":helptags".
|
||||
Solution: Do the other halve of moving a section to another help file.
|
||||
Solution: Do the other half of moving a section to another help file.
|
||||
Files: runtime/tagsrch.txt
|
||||
|
||||
Patch 6.1.387 (depends on 6.1.373)
|
||||
@@ -9201,10 +9201,10 @@ Solution: Respect the GUARDEDOFFSET for sign IDs when checking for a guarded
|
||||
Files: src/netbeans.c
|
||||
|
||||
Patch 6.1.417
|
||||
Problem: Unprintable multi-byte characters are not handled correctly.
|
||||
Problem: Unprintable multibyte characters are not handled correctly.
|
||||
Multi-byte characters above 0xffff are displayed as another
|
||||
character.
|
||||
Solution: Handle unprintable multi-byte characters. Display multi-byte
|
||||
Solution: Handle unprintable multibyte characters. Display multibyte
|
||||
characters above 0xffff with a marker. Recognize UTF-16 words and
|
||||
BOM words as unprintable. (Daniel Elstner)
|
||||
Files: src/charset.c, src/mbyte.c, src/screen.c
|
||||
@@ -9326,7 +9326,7 @@ Solution: Add the line number to the error message.
|
||||
Files: src/fileio.c
|
||||
|
||||
Patch 6.1.437 (extra, depends on 6.1.421)
|
||||
Problem: Using multi-byte functions when they are not available.
|
||||
Problem: Using multibyte functions when they are not available.
|
||||
Solution: Put the clipboard conversion inside an #ifdef. (Vince Negri)
|
||||
Also fix a pointer type mistake. (Walter Briscoe)
|
||||
Files: src/os_mswin.c
|
||||
@@ -9526,8 +9526,8 @@ Solution: Only store folds for a buffer with 'buftype' empty and help files.
|
||||
Files: src/ex_docmd.c
|
||||
|
||||
Patch 6.1.469
|
||||
Problem: 'listchars' cannot contain multi-byte characters.
|
||||
Solution: Handle multi-byte UTF-8 list characters. (Matthew Samsonoff)
|
||||
Problem: 'listchars' cannot contain multibyte characters.
|
||||
Solution: Handle multibyte UTF-8 list characters. (Matthew Samsonoff)
|
||||
Files: src/message.c, src/option.c, src/screen.c
|
||||
|
||||
Patch 6.1.470 (lang)
|
||||
@@ -10009,7 +10009,7 @@ Files: nsis/gvim.nsi
|
||||
|
||||
Patch 6.2.010
|
||||
Problem: When 'virtualedit' is effective and a line starts with a
|
||||
multi-byte character, moving the cursor right doesn't work.
|
||||
multibyte character, moving the cursor right doesn't work.
|
||||
Solution: Obtain the right character to compute the column offset. (Taro
|
||||
Muraoka)
|
||||
Files: src/charset.c
|
||||
@@ -10109,7 +10109,7 @@ Files: src/fileio.c
|
||||
|
||||
Patch 6.2.027
|
||||
Problem: Warning for uninitialized variable.
|
||||
Solution: Set mb_l to one when not using multi-byte characters.
|
||||
Solution: Set mb_l to one when not using multibyte characters.
|
||||
Files: src/message.c
|
||||
|
||||
Patch 6.2.028
|
||||
@@ -10271,15 +10271,15 @@ Files: src/osdef1.h.in
|
||||
Patch 6.2.054
|
||||
Problem: A double-byte character with a second byte that is a backslash
|
||||
causes problems inside a string.
|
||||
Solution: Skip over multi-byte characters in a string properly. (Yasuhiro
|
||||
Solution: Skip over multibyte characters in a string properly. (Yasuhiro
|
||||
Matsumoto)
|
||||
Files: src/eval.c
|
||||
|
||||
Patch 6.2.055
|
||||
Problem: Using col('.') from CTRL-O in Insert mode does not return the
|
||||
correct value for multi-byte characters.
|
||||
correct value for multibyte characters.
|
||||
Solution: Correct the cursor position when it is necessary, move to the
|
||||
first byte of a multi-byte character. (Yasuhiro Matsumoto)
|
||||
first byte of a multibyte character. (Yasuhiro Matsumoto)
|
||||
Files: src/edit.c
|
||||
|
||||
Patch 6.2.056 (extra)
|
||||
@@ -10851,7 +10851,7 @@ Files: Makefile, src/Makefile, src/auto/configure, src/configure.in,
|
||||
|
||||
Patch 6.2.143
|
||||
Problem: Using "K" on Visually selected text doesn't work if it ends in
|
||||
a multi-byte character.
|
||||
a multibyte character.
|
||||
Solution: Include all the bytes of the last character. (Taro Muraoka)
|
||||
Files: src/normal.c
|
||||
|
||||
@@ -11269,12 +11269,12 @@ Files: src/gui_w32.c, src/gui_w48.c
|
||||
Patch 6.2.206
|
||||
Problem: Multi-byte characters cannot be used as hotkeys in a console
|
||||
dialog. (Mattias Erkisson)
|
||||
Solution: Handle multi-byte characters properly. Also put () or [] around
|
||||
Solution: Handle multibyte characters properly. Also put () or [] around
|
||||
default hotkeys.
|
||||
Files: src/message.c, src/macros.h
|
||||
|
||||
Patch 6.2.207
|
||||
Problem: When 'encoding' is a multi-byte encoding, expanding an
|
||||
Problem: When 'encoding' is a multibyte encoding, expanding an
|
||||
abbreviation that starts where insertion started results in
|
||||
characters before the insertion to be deleted. (Xiangjiang Ma)
|
||||
Solution: Stop searching leftwards for the start of the word at the position
|
||||
@@ -11344,7 +11344,7 @@ Files: src/fileio.c, src/netbeans.c, src/proto/netbeans.pro,
|
||||
Patch 6.2.216 (after 6.2.206)
|
||||
Problem: Multi-byte characters still cannot be used as hotkeys in a console
|
||||
dialog. (Mattias Erkisson)
|
||||
Solution: Make get_keystroke() handle multi-byte characters.
|
||||
Solution: Make get_keystroke() handle multibyte characters.
|
||||
Files: src/misc1.c
|
||||
|
||||
Patch 6.2.217
|
||||
@@ -11710,7 +11710,7 @@ Files: src/gui.c
|
||||
Patch 6.2.269
|
||||
Problem: Diff mode does not highlight a change in a combining character.
|
||||
(Raphael Finkel)
|
||||
Solution: Make diff_find_change() multi-byte aware: find the start byte of
|
||||
Solution: Make diff_find_change() multibyte aware: find the start byte of
|
||||
a character that contains a change.
|
||||
Files: src/diff.c
|
||||
|
||||
@@ -12505,7 +12505,7 @@ Solution: Don't redraw the bottom line if no rows were inserted or deleted.
|
||||
Files: src/screen.c
|
||||
|
||||
Patch 6.2.390
|
||||
Problem: Using "r*" in Visual mode on multi-byte characters only replaces
|
||||
Problem: Using "r*" in Visual mode on multibyte characters only replaces
|
||||
every other character. (Tyson Roberts)
|
||||
Solution: Correct the cursor position after replacing each character.
|
||||
Files: src/ops.c
|
||||
@@ -12745,7 +12745,7 @@ Solution: Also use the line number of the position where the region
|
||||
Files: src/syntax.c
|
||||
|
||||
Patch 6.2.427 (extra)
|
||||
Problem: When pasting a lot of text in a multi-byte encoding, conversion
|
||||
Problem: When pasting a lot of text in a multibyte encoding, conversion
|
||||
from 'termencoding' to 'encoding' may fail for some characters.
|
||||
(Kuang-che Wu)
|
||||
Solution: When there is an incomplete byte sequence at the end of the read
|
||||
@@ -12984,7 +12984,7 @@ Files: src/normal.c
|
||||
Patch 6.2.462
|
||||
Problem: Finding a matching parenthesis does not correctly handle a
|
||||
backslash in a trailing byte.
|
||||
Solution: Handle multi-byte characters correctly. (Taro Muraoka)
|
||||
Solution: Handle multibyte characters correctly. (Taro Muraoka)
|
||||
Files: src/search.c
|
||||
|
||||
Patch 6.2.463 (extra)
|
||||
@@ -13015,7 +13015,7 @@ Solution: Redefine wcsicmp() to wcscmpi() and add type casts. (Yasuhiro
|
||||
Files: src/os_win32.c
|
||||
|
||||
Patch 6.2.467 (extra, after 6.2.463)
|
||||
Problem: Win32: can't compile without multi-byte feature. (Ajit Thakkar)
|
||||
Problem: Win32: can't compile without multibyte feature. (Ajit Thakkar)
|
||||
Solution: Add #ifdefs around the info stream code.
|
||||
Files: src/os_win32.c
|
||||
|
||||
@@ -13183,8 +13183,8 @@ Solution: Allow using " " (two spaces) in 'paragraph' to match ".$" or
|
||||
Files: src/search.c
|
||||
|
||||
Patch 6.2.491
|
||||
Problem: Decrementing a position doesn't take care of multi-byte chars.
|
||||
Solution: Adjust the column for multi-byte characters. Remove mb_dec().
|
||||
Problem: Decrementing a position doesn't take care of multibyte chars.
|
||||
Solution: Adjust the column for multibyte characters. Remove mb_dec().
|
||||
(Yasuhiro Matsumoto)
|
||||
Files: src/mbyte.c, src/misc2.c, src/proto/mbyte.pro
|
||||
|
||||
@@ -13354,12 +13354,12 @@ Files: runtime/doc/options.txt, runtime/doc/sign.txt, src/option.c,
|
||||
src/screen.c, src/syntax.c, src/vim.h
|
||||
|
||||
Patch 6.2.517
|
||||
Problem: Using "r*" in Visual mode on multi-byte characters replaces
|
||||
Problem: Using "r*" in Visual mode on multibyte characters replaces
|
||||
too many characters. In Visual Block mode replacing with a
|
||||
multi-byte character doesn't work.
|
||||
multibyte character doesn't work.
|
||||
Solution: Adjust the operator end for the difference in byte length of the
|
||||
original and the replaced character. Insert all bytes of a
|
||||
multi-byte character, take care of double-wide characters.
|
||||
multibyte character, take care of double-wide characters.
|
||||
Files: src/ops.c
|
||||
|
||||
Patch 6.2.518
|
||||
@@ -13438,7 +13438,7 @@ Problem: NetBeans: Changes of the "~" command are not reported.
|
||||
Solution: Call netbeans_inserted() after performing "~". (Gordon Prieur)
|
||||
Also change NetBeans debugging to append to the log file.
|
||||
Also fix that "~" in Visual block mode changes too much if there
|
||||
are multi-byte characters.
|
||||
are multibyte characters.
|
||||
Files: src/nbdebug.c, src/normal.c, src/ops.c
|
||||
|
||||
Patch 6.2.529 (extra)
|
||||
@@ -13552,7 +13552,7 @@ Solution: Convert menu strings from 'encoding' to the active codepage.
|
||||
Files: src/gui_w32.c, src/gui_w48.c
|
||||
|
||||
Patch 6.3a.014
|
||||
Problem: Using multi-byte text and highlighting in a statusline causes gaps
|
||||
Problem: Using multibyte text and highlighting in a statusline causes gaps
|
||||
to appear. (Helmut Stiegler)
|
||||
Solution: Advance the column by text width instead of number of bytes. Add
|
||||
the vim_strnsize() function.
|
||||
@@ -14040,19 +14040,19 @@ Solution: Correctly check that one character is being deleted.
|
||||
Files: src/misc1.c
|
||||
|
||||
Patch 6.3.021
|
||||
Problem: When the last character of a file name is a multi-byte character
|
||||
Problem: When the last character of a file name is a multibyte character
|
||||
and the last byte is a path separator, the file cannot be edited.
|
||||
Solution: Check for the last byte to be part of a multi-byte character.
|
||||
Solution: Check for the last byte to be part of a multibyte character.
|
||||
(Taro Muraoka)
|
||||
Files: src/fileio.c
|
||||
|
||||
Patch 6.3.022 (extra)
|
||||
Problem: Win32: When the last character of a file name is a multi-byte
|
||||
Problem: Win32: When the last character of a file name is a multibyte
|
||||
character and the last byte is a path separator, the file cannot
|
||||
be written. A trail byte that is a space makes that a file cannot
|
||||
be opened from the command line.
|
||||
Solution: Recognize double-byte characters when parsing the command line.
|
||||
In mch_stat() check for the last byte to be part of a multi-byte
|
||||
In mch_stat() check for the last byte to be part of a multibyte
|
||||
character. (Taro Muraoka)
|
||||
Files: src/gui_w48.c, src/os_mswin.c
|
||||
|
||||
@@ -14222,7 +14222,7 @@ Solution: Don't allow setting termcap options or 'printdevice' in a
|
||||
Files: src/option.c, runtime/doc/options.txt
|
||||
|
||||
Patch 6.3.046
|
||||
Problem: ":registers" doesn't show multi-byte characters properly.
|
||||
Problem: ":registers" doesn't show multibyte characters properly.
|
||||
(Valery Kondakoff)
|
||||
Solution: Get the length of each character before displaying it.
|
||||
Files: src/ops.c
|
||||
@@ -14250,9 +14250,9 @@ Solution: Ignore SIGHUP when exiting because of an error. (Scott Anderson)
|
||||
Files: src/misc1.c, src/main.c
|
||||
|
||||
Patch 6.3.051
|
||||
Problem: When 'wildmenu' is set and completed file names contain multi-byte
|
||||
Problem: When 'wildmenu' is set and completed file names contain multibyte
|
||||
characters Vim may crash.
|
||||
Solution: Reserve room for multi-byte characters. (Yasuhiro Matsumoto)
|
||||
Solution: Reserve room for multibyte characters. (Yasuhiro Matsumoto)
|
||||
Files: src/screen.c
|
||||
|
||||
Patch 6.3.052 (extra)
|
||||
@@ -14286,9 +14286,9 @@ Solution: When moving ccline out of the way for recursive use, make it
|
||||
Files: src/ex_getln.c
|
||||
|
||||
Patch 6.3.056
|
||||
Problem: The last characters of a multi-byte file name may not be displayed
|
||||
Problem: The last characters of a multibyte file name may not be displayed
|
||||
in the window title.
|
||||
Solution: Avoid to remove a multi-byte character where the last byte looks
|
||||
Solution: Avoid to remove a multibyte character where the last byte looks
|
||||
like a path separator character. (Yasuhiro Matsumoto)
|
||||
Files: src/buffer.c, src/ex_getln.c
|
||||
|
||||
@@ -14319,9 +14319,9 @@ Files: src/edit.c
|
||||
|
||||
Patch 6.3.061
|
||||
Problem: When editing a utf-8 file in an utf-8 xterm and there is a
|
||||
multi-byte character in the last column, displaying is messed up.
|
||||
multibyte character in the last column, displaying is messed up.
|
||||
(Joël Rio)
|
||||
Solution: Check for a multi-byte character, not a multi-column character.
|
||||
Solution: Check for a multibyte character, not a multi-column character.
|
||||
Files: src/screen.c
|
||||
|
||||
Patch 6.3.062
|
||||
@@ -14384,7 +14384,7 @@ Files: src/edit.c
|
||||
Patch 6.3.072
|
||||
Problem: Crash in giving substitute message when language is Chinese and
|
||||
encoding is utf-8. (Yongwei)
|
||||
Solution: Make the msg_buf size larger when using multi-byte.
|
||||
Solution: Make the msg_buf size larger when using multibyte.
|
||||
Files: src/vim.h
|
||||
|
||||
Patch 6.3.073
|
||||
@@ -14508,7 +14508,7 @@ Solution: Change "a" to "b". (Tony Mechelynck)
|
||||
Files: src/version.h
|
||||
|
||||
Patch 6.4b.002
|
||||
Problem: In Insert mode, pasting a multi-byte character after the end of
|
||||
Problem: In Insert mode, pasting a multibyte character after the end of
|
||||
the line leaves the cursor just before that character.
|
||||
Solution: Make sure "gP" leaves the cursor in the right place when
|
||||
'virtualedit' is set.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 8.2. Last change: 2016 Jul 17
|
||||
*version7.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -22,7 +22,7 @@ Vim script enhancements |new-vim-script|
|
||||
Spell checking |new-spell|
|
||||
Omni completion |new-omni-completion|
|
||||
MzScheme interface |new-MzScheme|
|
||||
Printing multi-byte text |new-print-multi-byte|
|
||||
Printing multibyte text |new-print-multibyte|
|
||||
Tab pages |new-tab-pages|
|
||||
Undo branches |new-undo-branches|
|
||||
Extended Unicode support |new-more-unicode|
|
||||
@@ -302,10 +302,10 @@ The |:mzfile| command can be used to execute an MzScheme script file
|
||||
This depends on Vim being compiled with the |+mzscheme| feature.
|
||||
|
||||
|
||||
Printing multi-byte text *new-print-multi-byte*
|
||||
Printing multibyte text *new-print-multibyte*
|
||||
------------------------
|
||||
|
||||
The |:hardcopy| command now supports printing multi-byte characters when using
|
||||
The |:hardcopy| command now supports printing multibyte characters when using
|
||||
PostScript.
|
||||
|
||||
The 'printmbcharset' and 'printmbfont' options are used for this.
|
||||
@@ -1211,7 +1211,7 @@ Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
|
||||
|
||||
Mac: GUI font selector. (Peter Cucka)
|
||||
|
||||
Mac: support for multi-byte characters. (Da Woon Jung)
|
||||
Mac: support for multibyte characters. (Da Woon Jung)
|
||||
This doesn't always work properly. If you see text drawing problems try
|
||||
switching the 'macatsui' option off.
|
||||
|
||||
@@ -1361,7 +1361,7 @@ When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
|
||||
Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
|
||||
filetype or syntax.
|
||||
|
||||
The ":registers" command now displays multi-byte characters properly.
|
||||
The ":registers" command now displays multibyte characters properly.
|
||||
|
||||
VMS: In the usage message mention that a slash can be used to make a flag
|
||||
upper case. Add color support to the builtin vt320 terminal codes.
|
||||
@@ -1460,7 +1460,7 @@ To count items (pattern matches) without changing the buffer the 'n' flag has
|
||||
been added to |:substitute|. See |count-items|.
|
||||
|
||||
In a |:substitute| command the \u, \U, \l and \L items now also work for
|
||||
multi-byte characters.
|
||||
multibyte characters.
|
||||
|
||||
The "screen.linux" $TERM name is recognized to set the default for
|
||||
'background' to "dark". (Ciaran McCreesh) Also for "cygwin" and "putty".
|
||||
@@ -1736,7 +1736,7 @@ variables like for a regular command with a file argument.
|
||||
'cindent': When the argument of a #define looks like a C++ class the next line
|
||||
is indented too much.
|
||||
|
||||
When 'comments' includes multi-byte characters inserting the middle part and
|
||||
When 'comments' includes multibyte characters inserting the middle part and
|
||||
alignment may go wrong. 'cindent' also suffers from this for right-aligned
|
||||
items.
|
||||
|
||||
@@ -2309,7 +2309,7 @@ characters in v:this_session.
|
||||
|
||||
":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
|
||||
|
||||
In a multi-byte file the foldmarker could be recognized in the trail byte.
|
||||
In a multibyte file the foldmarker could be recognized in the trail byte.
|
||||
(Taro Muraoka)
|
||||
|
||||
Pasting with CTRL-V and menu didn't work properly when some commands are
|
||||
@@ -2504,7 +2504,7 @@ a crash.
|
||||
|
||||
For a new tab page the 'scroll' option wasn't set to a good default.
|
||||
|
||||
Using an end offset for a search "/pat/e" didn't work properly for multi-byte
|
||||
Using an end offset for a search "/pat/e" didn't work properly for multibyte
|
||||
text. (Yukihiro Nakadaira)
|
||||
|
||||
":s/\n/,/" doubled the text when used on the last line.
|
||||
@@ -2604,7 +2604,7 @@ recursively. But after a ":normal" command the protection was reset.
|
||||
|
||||
":s/a/b/n" didn't work when 'modifiable' was off.
|
||||
|
||||
When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
|
||||
When $VIMRUNTIME includes a multibyte character then rgb.txt could not be
|
||||
found. (Yukihiro Nakadaira)
|
||||
|
||||
":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
|
||||
@@ -2670,7 +2670,7 @@ keep them in the original order.
|
||||
Fixed a crash when editing a directory in diff mode. Don't trigger
|
||||
autocommands when executing the diff command.
|
||||
|
||||
Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
|
||||
Getting a keystroke could get stuck if 'encoding' is a multibyte encoding and
|
||||
typing a special key.
|
||||
|
||||
When 'foldignore' is set the folds were not updated right away.
|
||||
@@ -2711,7 +2711,7 @@ When using ":vsp" or ":sp" the available space wasn't used equally between
|
||||
windows. (Servatius Brandt)
|
||||
|
||||
Expanding <cWORD> on a trailing blank resulted in the first word in the line
|
||||
if 'encoding' is a multi-byte encoding.
|
||||
if 'encoding' is a multibyte encoding.
|
||||
|
||||
Spell checking: spellbadword() didn't see a missing capital in the first word
|
||||
of a line. Popup menu now only suggest the capitalized word when appropriate.
|
||||
@@ -2734,7 +2734,7 @@ background, which made magenta text disappear. Now use reverse in this
|
||||
specific situation.
|
||||
|
||||
After completing the longest match "." didn't insert the same text. Repeating
|
||||
also didn't work correctly for multi-byte text.
|
||||
also didn't work correctly for multibyte text.
|
||||
|
||||
When using Insert mode completion and BS the whole word that was completed
|
||||
would result in all possible matches. Now stop completion. Also fixes that
|
||||
@@ -2751,7 +2751,7 @@ non-ASCII characters looked wrong. (Yegappan Lakshmanan)
|
||||
Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure
|
||||
check, disable GUI tabline when it's missing.
|
||||
|
||||
Mac: When compiled without multi-byte feature the clipboard didn't work.
|
||||
Mac: When compiled without multibyte feature the clipboard didn't work.
|
||||
|
||||
It was possible to switch to another tab page when the cmdline window is open.
|
||||
|
||||
@@ -2762,7 +2762,7 @@ number following the file name.
|
||||
Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan).
|
||||
|
||||
Added "throw" to 'debug' option: throw an exception for error messages even
|
||||
whey they would otherwise be ignored.
|
||||
when they would otherwise be ignored.
|
||||
|
||||
When 'keymap' is set and a line contains an invalid entry could get a "No
|
||||
mapping found" warning instead of a proper error message.
|
||||
@@ -2867,7 +2867,7 @@ a crash.
|
||||
|
||||
GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
|
||||
|
||||
Typing a multi-byte character or a special key at the hit-enter prompt did not
|
||||
Typing a multibyte character or a special key at the hit-enter prompt did not
|
||||
work.
|
||||
|
||||
When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
|
||||
@@ -3387,7 +3387,7 @@ Solution: When running Vim as root don't become a Vim server without an
|
||||
Files: src/main.c
|
||||
|
||||
Patch 7.0.053
|
||||
Problem: Shortening a directory name may fail when there are multi-byte
|
||||
Problem: Shortening a directory name may fail when there are multibyte
|
||||
characters.
|
||||
Solution: Copy the correct bytes. (Titov Anatoly)
|
||||
Files: src/misc1.c
|
||||
@@ -3621,7 +3621,7 @@ Solution: Remove the "-pipe" argument from PERL_CFLAGS.
|
||||
Files: src/auto/configure, src/configure.in
|
||||
|
||||
Patch 7.0.089
|
||||
Problem: "ga" does not work properly for a non-Unicode multi-byte encoding.
|
||||
Problem: "ga" does not work properly for a non-Unicode multibyte encoding.
|
||||
Solution: Only check for composing chars for utf-8. (Taro Muraoka)
|
||||
Files: src/ex_cmds.c
|
||||
|
||||
@@ -3859,7 +3859,7 @@ Solution: Set ins_need_undo after using 'formatexpr'.
|
||||
Files: src/edit.c
|
||||
|
||||
Patch 7.0.127
|
||||
Problem: Crash when swap files has invalid timestamp.
|
||||
Problem: Crash when swap file has invalid timestamp.
|
||||
Solution: Check return value of ctime() for being NULL.
|
||||
Files: src/memline.c
|
||||
|
||||
@@ -4224,7 +4224,7 @@ Files: src/if_cscope.c
|
||||
Patch 7.0.185
|
||||
Problem: Multi-byte characters in a message are displayed with attributes
|
||||
from what comes before it.
|
||||
Solution: Don't use the attributes for a multi-byte character. Do use
|
||||
Solution: Don't use the attributes for a multibyte character. Do use
|
||||
attributes for special characters. (Yukihiro Nakadaira)
|
||||
Files: src/message.c
|
||||
|
||||
@@ -4307,7 +4307,7 @@ Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly)
|
||||
Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c
|
||||
|
||||
Patch 7.0.199
|
||||
Problem: When using multi-byte characters the combination of completion and
|
||||
Problem: When using multibyte characters the combination of completion and
|
||||
formatting may result in a wrong cursor position.
|
||||
Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro
|
||||
Nakadaira) Also check for the column to be zero.
|
||||
@@ -5902,10 +5902,10 @@ Solution: Don't advance the cursor when it's already on the NUL after a
|
||||
Files: src/normal.c
|
||||
|
||||
Patch 7.1.185
|
||||
Problem: Using "gR" with a multi-byte encoding and typing a CR pushes
|
||||
Problem: Using "gR" with a multibyte encoding and typing a CR pushes
|
||||
characters onto the replace stack incorrectly, resulting in BS
|
||||
putting back the wrong characters. (Paul B. Mahol)
|
||||
Solution: Push multi-byte characters onto the replace stack in reverse byte
|
||||
Solution: Push multibyte characters onto the replace stack in reverse byte
|
||||
order. Add replace_push_mb().
|
||||
Files: src/edit.c, src/misc1.c, src/proto/edit.pro
|
||||
|
||||
@@ -6112,7 +6112,7 @@ Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
|
||||
|
||||
Patch 7.1.220
|
||||
Problem: When a ")" or word movement command moves the cursor back from the
|
||||
end of the line it may end up on the trail byte of a multi-byte
|
||||
end of the line it may end up on the trail byte of a multibyte
|
||||
character. It's also moved back when it isn't needed.
|
||||
Solution: Add the adjust_cursor() function.
|
||||
Files: src/normal.c
|
||||
@@ -6241,7 +6241,7 @@ Problem: When "gUe" turns a German sharp s into SS the operation stops
|
||||
before the end of the word. Latin2 has the same sharp s but it's
|
||||
not changed to SS there.
|
||||
Solution: Make sure all the characters are operated upon. Detect the sharp
|
||||
s in latin2. Also fixes that changing case of a multi-byte
|
||||
s in latin2. Also fixes that changing case of a multibyte
|
||||
character that changes the byte count doesn't always work.
|
||||
Files: src/ops.c
|
||||
|
||||
@@ -6757,9 +6757,9 @@ Solution: Use separate buffer for posix path. (Ben Schmidt)
|
||||
Files: src/os_unix.c
|
||||
|
||||
Patch 7.1.329
|
||||
Problem: When the popup menu is removed a column of cells, the right halve
|
||||
Problem: When the popup menu is removed a column of cells, the right half
|
||||
of double-wide characters, may not be redrawn.
|
||||
Solution: Check if the right halve of a character needs to be redrawn.
|
||||
Solution: Check if the right half of a character needs to be redrawn.
|
||||
(Yukihiro Nakadaira)
|
||||
Files: src/screen.c
|
||||
|
||||
@@ -6771,7 +6771,7 @@ Files: src/misc1.c
|
||||
|
||||
Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle)
|
||||
|
||||
A search offset from the end of a match didn't work properly for multi-byte
|
||||
A search offset from the end of a match didn't work properly for multibyte
|
||||
characters. (Yukihiro Nakadaira)
|
||||
|
||||
When displaying the value of 'key' don't show "*****" when the value is empty.
|
||||
@@ -6965,7 +6965,7 @@ The #ifdef for including "vimio.h" was inconsistent. In a few files it
|
||||
depended on MSWIN, which isn't defined until later.
|
||||
|
||||
Patch 7.2b.001
|
||||
Problem: Compilation problem: mb_fix_col() missing with multi-byte feature
|
||||
Problem: Compilation problem: mb_fix_col() missing with multibyte feature
|
||||
but without GUI or clipboard.
|
||||
Solution: Remove #ifdef.
|
||||
Files: src/mbyte.c
|
||||
@@ -7804,7 +7804,7 @@ Solution: Don't change "Columns" back to an old value at a wrong moment.
|
||||
Files: src/gui.c
|
||||
|
||||
Patch 7.2.066
|
||||
Problem: It's not easy to see whether 'encoding' is a multi-byte encoding.
|
||||
Problem: It's not easy to see whether 'encoding' is a multibyte encoding.
|
||||
Solution: Add has('multi_byte_encoding').
|
||||
Files: runtime/doc/eval.txt, src/eval.c
|
||||
|
||||
@@ -7949,7 +7949,7 @@ Solution: Don't use a WM_OLE message of zero size. (Ray Megal)
|
||||
Files: src/if_ole.cpp, src/gui_w48.c
|
||||
|
||||
Patch 7.2.090
|
||||
Problem: User command containing 0x80 in multi-byte character does not work
|
||||
Problem: User command containing 0x80 in multibyte character does not work
|
||||
properly. (Yasuhiro Matsumoto)
|
||||
Solution: Undo replacement of K_SPECIAL and CSI characters when executing
|
||||
the command.
|
||||
@@ -7967,7 +7967,7 @@ Files: src/eval.c
|
||||
|
||||
Patch 7.2.093 (extra)
|
||||
Problem: Win32: inputdialog() and find/replace dialogs can't handle
|
||||
multi-byte text.
|
||||
multibyte text.
|
||||
Solution: Use the wide version of dialog functions when available. (Yanwei
|
||||
Jia)
|
||||
Files: src/gui_w32.c, src/gui_w48.c
|
||||
@@ -8062,8 +8062,8 @@ Solution: Add #ifdef.
|
||||
Files: src/option.c
|
||||
|
||||
Patch 7.2.109
|
||||
Problem: 'langmap' does not work for multi-byte characters.
|
||||
Solution: Add a list of mapped multi-byte characters. (based on work by
|
||||
Problem: 'langmap' does not work for multibyte characters.
|
||||
Solution: Add a list of mapped multibyte characters. (based on work by
|
||||
Konstantin Korikov, Agathoklis Hatzimanikas)
|
||||
Files: runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h,
|
||||
src/normal.c, src/option.c, src/proto/option.pro, src/window.c
|
||||
@@ -8908,7 +8908,7 @@ Solution: Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle)
|
||||
Files: src/auto/configure, src/configure.in
|
||||
|
||||
Patch 7.2.252
|
||||
Problem: When using a multi-byte 'enc' the 'iskeyword' option cannot
|
||||
Problem: When using a multibyte 'enc' the 'iskeyword' option cannot
|
||||
contain characters above 128.
|
||||
Solution: Use mb_ptr2char_adv().
|
||||
Files: src/charset.c
|
||||
@@ -9053,7 +9053,7 @@ Files: src/memline.c
|
||||
Patch 7.2.276
|
||||
Problem: Crash when setting 'isprint' to a small bullet. (Raul Coronado)
|
||||
Solution: Check for the character to be < 256. Also make it possible to
|
||||
specify a range of multi-byte characters. (Lech Lorens)
|
||||
specify a range of multibyte characters. (Lech Lorens)
|
||||
Files: src/charset.c
|
||||
|
||||
Patch 7.2.277
|
||||
@@ -9144,7 +9144,7 @@ Solution: Use utfc_ptr2char_len() rather than utfc_ptr2char(). (Dominique
|
||||
Files: src/screen.c
|
||||
|
||||
Patch 7.2.292
|
||||
Problem: Block right-shift doesn't work properly with multi-byte encoding
|
||||
Problem: Block right-shift doesn't work properly with multibyte encoding
|
||||
and 'list' set.
|
||||
Solution: Add the missing "else". (Lech Lorens)
|
||||
Files: src/ops.c
|
||||
@@ -9430,7 +9430,7 @@ Files: src/screen.c
|
||||
|
||||
Patch 7.2.342
|
||||
Problem: Popup menu displayed wrong in 'rightleft' mode when there are
|
||||
multi-byte characters.
|
||||
multibyte characters.
|
||||
Solution: Adjust the column computations. (Dominique Pelle)
|
||||
Files: src/popupmnu.c
|
||||
|
||||
@@ -10111,7 +10111,7 @@ Fix compile warnings, esp. for 64-bit systems. (Mike Williams)
|
||||
Fix: :redir to a dictionary that is changed before ":redir END" causes a
|
||||
memory access error.
|
||||
|
||||
Fix: terminal title not properly restored when there are multi-byte
|
||||
Fix: terminal title not properly restored when there are multibyte
|
||||
characters. (partly by James Vega)
|
||||
|
||||
Set 'wrapscan' when checking the .po files. (Mike Williams)
|
||||
@@ -10132,7 +10132,7 @@ Changed readfile() to ignore byte order marks, unless in binary mode.
|
||||
|
||||
On MS-Windows completion of shell commands didn't work.
|
||||
|
||||
An unprintable multi-byte character at the start of the screen line caused the
|
||||
An unprintable multibyte character at the start of the screen line caused the
|
||||
following text to be drawn at the wrong position.
|
||||
|
||||
Got ml_get errors when using undo with 'virtualedit'.
|
||||
@@ -10391,7 +10391,7 @@ Solution: Increase the list reference count. Add a test for undotree()
|
||||
Files: src/eval.c, src/testdir/Makefile, src/testdir/test61.in
|
||||
|
||||
Patch 7.3.006
|
||||
Problem: Can't build some multi-byte code with C89.
|
||||
Problem: Can't build some multibyte code with C89.
|
||||
Solution: Move code to after declarations. (Joachim Schmitz)
|
||||
Files: src/mbyte.c, src/spell.c
|
||||
|
||||
@@ -11161,7 +11161,7 @@ Solution: Call update_screen() before waiting for input.
|
||||
Files: src/misc1.c, src/getchar.c
|
||||
|
||||
Patch 7.3.138
|
||||
Problem: ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
|
||||
Problem: ":com" changes the multibyte text of :echo. (Dimitar Dimitrov)
|
||||
Solution: Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
|
||||
Files: src/ex_docmd.c
|
||||
|
||||
@@ -11486,7 +11486,7 @@ Files: README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile,
|
||||
src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist
|
||||
|
||||
Patch 7.3.192
|
||||
Problem: Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
|
||||
Problem: Ex command ":s/ \?/ /g" splits multibyte characters into bytes.
|
||||
(Dominique Pelle)
|
||||
Solution: Advance over whole character instead of one byte.
|
||||
Files: src/ex_cmds.c
|
||||
@@ -12016,15 +12016,15 @@ Solution: Only restore the cursor position when there is a command line.
|
||||
Files: src/ex_getln.c
|
||||
|
||||
Patch 7.3.283
|
||||
Problem: An expression mapping with a multi-byte character containing a
|
||||
Problem: An expression mapping with a multibyte character containing a
|
||||
0x80 byte gets messed up. (ZyX)
|
||||
Solution: Unescape the expression before evaluating it (Yukihiro Nakadaira)
|
||||
Files: src/getchar.c
|
||||
|
||||
Patch 7.3.284
|
||||
Problem: The str2special() function doesn't handle multi-byte characters
|
||||
Problem: The str2special() function doesn't handle multibyte characters
|
||||
properly.
|
||||
Solution: Recognize multi-byte characters. (partly by Vladimir Vichniakov)
|
||||
Solution: Recognize multibyte characters. (partly by Vladimir Vichniakov)
|
||||
Files: src/getchar.c, src/message.c, src/misc2.c
|
||||
|
||||
Patch 7.3.285 (after 7.3.284)
|
||||
@@ -12112,7 +12112,7 @@ Solution: Adjust the style. (Elias Diem)
|
||||
Files: src/gui_photon.c
|
||||
|
||||
Patch 7.3.300
|
||||
Problem: Python doesn't parse multi-byte argument correctly.
|
||||
Problem: Python doesn't parse multibyte argument correctly.
|
||||
Solution: Use "t" instead of "s". (lilydjwg)
|
||||
Files: src/if_py_both.h
|
||||
|
||||
@@ -12270,7 +12270,7 @@ Files: src/ex_cmds.c
|
||||
|
||||
Patch 7.3.328
|
||||
Problem: When command line wraps the cursor may be displayed wrong when
|
||||
there are multi-byte characters.
|
||||
there are multibyte characters.
|
||||
Solution: Position the cursor before drawing the text. (Yasuhiro Matsumoto)
|
||||
Files: src/ex_getln.c
|
||||
|
||||
@@ -13377,7 +13377,7 @@ Solution: Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
|
||||
Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
|
||||
|
||||
Patch 7.3.521
|
||||
Problem: Using "z=" on a multi-byte character may cause a crash.
|
||||
Problem: Using "z=" on a multibyte character may cause a crash.
|
||||
Solution: Don't use strlen() on an int pointer.
|
||||
Files: src/spell.c
|
||||
|
||||
@@ -13475,7 +13475,7 @@ Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
|
||||
|
||||
Patch 7.3.539
|
||||
Problem: Redrawing a character on the command line does not work properly
|
||||
for multi-byte characters.
|
||||
for multibyte characters.
|
||||
Solution: Count the number of bytes in a character. (Yukihiro Nakadaira)
|
||||
Files: src/ex_getln.c
|
||||
|
||||
@@ -13854,7 +13854,7 @@ Solution: Add #ifdef for MEMORYSTATUSEX.
|
||||
Files: src/os_win32.c
|
||||
|
||||
Patch 7.3.606
|
||||
Problem: CTRL-P completion has a problem with multi-byte characters.
|
||||
Problem: CTRL-P completion has a problem with multibyte characters.
|
||||
Solution: Check for next character being NUL properly. (Yasuhiro Matsumoto)
|
||||
Files: src/search.c, src/macros.h
|
||||
|
||||
@@ -14190,7 +14190,7 @@ Files: src/ex_docmd.c
|
||||
|
||||
Patch 7.3.664
|
||||
Problem: Buffer overflow in unescaping text. (Raymond Ko)
|
||||
Solution: Limit check for multi-byte character to 4 bytes.
|
||||
Solution: Limit check for multibyte character to 4 bytes.
|
||||
Files: src/mbyte.c
|
||||
|
||||
Patch 7.3.665
|
||||
@@ -14357,8 +14357,8 @@ Solution: Add the shiftwidth() function. (so8res)
|
||||
Files: runtime/doc/eval.txt, src/eval.c
|
||||
|
||||
Patch 7.3.695
|
||||
Problem: Balloon cannot show multi-byte text.
|
||||
Solution: Properly deal with multi-byte characters. (Dominique Pelle)
|
||||
Problem: Balloon cannot show multibyte text.
|
||||
Solution: Properly deal with multibyte characters. (Dominique Pelle)
|
||||
Files: src/gui_beval.c, src/ui.c
|
||||
|
||||
Patch 7.3.696
|
||||
@@ -14656,7 +14656,7 @@ Files: runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro,
|
||||
src/testdir/test88.ok,
|
||||
|
||||
Patch 7.3.749
|
||||
Problem: Python interface doesn't build without the multi-byte feature.
|
||||
Problem: Python interface doesn't build without the multibyte feature.
|
||||
Solution: Add #ifdef. (Ken Takata)
|
||||
Files: src/if_py_both.h
|
||||
|
||||
@@ -14762,7 +14762,7 @@ Solution: Save and restore the cursor position when appropriate. (idea by
|
||||
Files: src/edit.c
|
||||
|
||||
Patch 7.3.769
|
||||
Problem: 'matchpairs' does not work with multi-byte characters.
|
||||
Problem: 'matchpairs' does not work with multibyte characters.
|
||||
Solution: Make it work. (Christian Brabandt)
|
||||
Files: src/misc1.c, src/option.c, src/proto/option.pro, src/search.c,
|
||||
src/testdir/test69.in, src/testdir/test69.ok
|
||||
@@ -15182,9 +15182,9 @@ Solution: Add lines for new files.
|
||||
Files: Filelist
|
||||
|
||||
Patch 7.3.840
|
||||
Problem: "\@<!" in regexp does not work correctly with multi-byte
|
||||
Problem: "\@<!" in regexp does not work correctly with multibyte
|
||||
characters, especially cp932.
|
||||
Solution: Move column to start of multi-byte character. (Yasuhiro Matsumoto)
|
||||
Solution: Move column to start of multibyte character. (Yasuhiro Matsumoto)
|
||||
Files: src/regexp.c
|
||||
|
||||
Patch 7.3.841
|
||||
@@ -15254,7 +15254,7 @@ Solution: Use Xutf8TextPropertyToTextList(). (Christian Brabandt)
|
||||
Files: src/ui.c, src/ops.c
|
||||
|
||||
Patch 7.3.853
|
||||
Problem: Using "ra" in multiple lines on multi-byte characters leaves a few
|
||||
Problem: Using "ra" in multiple lines on multibyte characters leaves a few
|
||||
characters not replaced.
|
||||
Solution: Adjust the end column only in the last line. (Yasuhiro Matsumoto)
|
||||
Files: src/testdir/test69.in, src/testdir/test69.ok, src/ops.c
|
||||
@@ -15271,7 +15271,7 @@ Solution: Add type casts. (Mike Williams)
|
||||
Files: src/misc1.c
|
||||
|
||||
Patch 7.3.856
|
||||
Problem: When calling system() multi-byte clipboard contents is garbled.
|
||||
Problem: When calling system() multibyte clipboard contents is garbled.
|
||||
Solution: Save and restore the clipboard contents. (Yukihiro Nakadaira)
|
||||
Files: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/ops.c,
|
||||
src/proto/ops.pro, src/os_unix.c, src/proto/ui.pro, src/ui.c
|
||||
@@ -15379,9 +15379,9 @@ Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
|
||||
src/testdir/test80.in, src/testdir/test80.ok
|
||||
|
||||
Patch 7.3.874
|
||||
Problem: Comparing file names does not handle multi-byte characters
|
||||
Problem: Comparing file names does not handle multibyte characters
|
||||
properly.
|
||||
Solution: Implement multi-byte handling.
|
||||
Solution: Implement multibyte handling.
|
||||
Files: src/misc1.c, src/misc2.c
|
||||
|
||||
Patch 7.3.875 (after 7.3.866)
|
||||
@@ -15443,7 +15443,7 @@ Solution: Do not unref list and dict. (Yasuhiro Matsumoto)
|
||||
Files: src/if_lua.c
|
||||
|
||||
Patch 7.3.886
|
||||
Problem: Can't build with multi-byte on Solaris 10.
|
||||
Problem: Can't build with multibyte on Solaris 10.
|
||||
Solution: Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume)
|
||||
Files: src/ui.c
|
||||
|
||||
@@ -15457,7 +15457,7 @@ Files: src/testdir/test94.in, src/testdir/test94.ok,
|
||||
|
||||
Patch 7.3.888
|
||||
Problem: Filename completion with 'fileignorecase' does not work for
|
||||
multi-byte characters.
|
||||
multibyte characters.
|
||||
Solution: Make 'fileignorecase' work properly. (Hirohito Higashi)
|
||||
Files: src/misc2.c
|
||||
|
||||
@@ -15933,7 +15933,7 @@ Files: src/if_py_both.h
|
||||
Patch 7.3.968
|
||||
Problem: Multi-byte support is only available when compiled with "big"
|
||||
features.
|
||||
Solution: Include multi-byte by default, with "normal" features.
|
||||
Solution: Include multibyte by default, with "normal" features.
|
||||
Files: src/feature.h
|
||||
|
||||
Patch 7.3.969
|
||||
@@ -16009,19 +16009,19 @@ Files: src/regexp_nfa.c
|
||||
|
||||
Patch 7.3.980
|
||||
Problem: Regexp logs may contain garbage. Character classes don't work
|
||||
correctly for multi-byte characters.
|
||||
correctly for multibyte characters.
|
||||
Solution: Check for end of post list. Only use "is" functions for
|
||||
characters up to 255. (Ken Takata)
|
||||
Files: src/regexp_nfa.c
|
||||
|
||||
Patch 7.3.981
|
||||
Problem: In the old regexp engine \i, \I, \f and \F don't work on
|
||||
multi-byte characters.
|
||||
multibyte characters.
|
||||
Solution: Dereference pointer properly.
|
||||
Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||
|
||||
Patch 7.3.982
|
||||
Problem: In the new regexp engine \p does not work on multi-byte
|
||||
Problem: In the new regexp engine \p does not work on multibyte
|
||||
characters.
|
||||
Solution: Don't point to an integer but the characters.
|
||||
Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
|
||||
@@ -16169,7 +16169,7 @@ Files: src/memfile.c
|
||||
|
||||
Patch 7.3.1008
|
||||
Problem: Test 95 fails on MS-Windows.
|
||||
Solution: Set 'nomore'. Change \i to \f. Change multi-byte character to
|
||||
Solution: Set 'nomore'. Change \i to \f. Change multibyte character to
|
||||
something that is not matching \i. (Ken Takata)
|
||||
Files: src/testdir/test95.in, src/testdir/test95.ok
|
||||
|
||||
@@ -16185,7 +16185,7 @@ Solution: Only apply ireg_icombine for composing characters.
|
||||
Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
|
||||
|
||||
Patch 7.3.1011
|
||||
Problem: New regexp engine is inefficient with multi-byte characters.
|
||||
Problem: New regexp engine is inefficient with multibyte characters.
|
||||
Solution: Handle a character at a time instead of a byte at a time. Also
|
||||
make \Z partly work.
|
||||
Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
|
||||
@@ -16313,7 +16313,7 @@ Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
|
||||
src/regexp.h
|
||||
|
||||
Patch 7.3.1034
|
||||
Problem: New regexp code using strange multi-byte code.
|
||||
Problem: New regexp code using strange multibyte code.
|
||||
Solution: Use the normal code to advance and backup pointers.
|
||||
Files: src/regexp_nfa.c
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 8.2. Last change: 2020 Jun 07
|
||||
*vi_diff.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -467,7 +467,7 @@ Editing binary files. |edit-binary|
|
||||
last line in the file.
|
||||
|
||||
Multi-language support. |multi-lang|
|
||||
Files in double-byte or multi-byte encodings can be edited. There is
|
||||
Files in double-byte or multibyte encodings can be edited. There is
|
||||
UTF-8 support to be able to edit various languages at the same time,
|
||||
without switching fonts. |UTF-8|
|
||||
Messages and menus are available in different languages.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2020 Jul 25
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2020 Sep 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -14,7 +14,7 @@ features in Vim9 script.
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
|
||||
1 What is Vim9 script? |vim9-script|
|
||||
1. What is Vim9 script? |vim9-script|
|
||||
2. Differences |vim9-differences|
|
||||
3. New style functions |fast-functions|
|
||||
4. Types |vim9-types|
|
||||
@@ -49,6 +49,7 @@ errors are handled.
|
||||
The Vim9 script syntax and semantics are used in:
|
||||
- a function defined with the `:def` command
|
||||
- a script file where the first command is `vim9script`
|
||||
- an autocommand defined in the context of these
|
||||
|
||||
When using `:function` in a Vim9 script file the legacy syntax is used.
|
||||
However, this can be confusing and is therefore discouraged.
|
||||
@@ -70,10 +71,10 @@ comments start with #. >
|
||||
let count = 0 # number of occurrences
|
||||
|
||||
The reason is that a double quote can also be the start of a string. In many
|
||||
places, especially halfway an expression with a line break, it's hard to tell
|
||||
what the meaning is, since both a string and a comment can be followed by
|
||||
arbitrary text. To avoid confusion only # comments are recognized. This is
|
||||
the same as in shell scripts and Python programs.
|
||||
places, especially halfway through an expression with a line break, it's hard
|
||||
to tell what the meaning is, since both a string and a comment can be followed
|
||||
by arbitrary text. To avoid confusion only # comments are recognized. This
|
||||
is the same as in shell scripts and Python programs.
|
||||
|
||||
In Vi # is a command to list text with numbers. In Vim9 script you can use
|
||||
`:number` for that. >
|
||||
@@ -92,9 +93,13 @@ often 10x to 100x times.
|
||||
Many errors are already found when compiling, before the function is executed.
|
||||
The syntax is strict, to enforce code that is easy to read and understand.
|
||||
|
||||
Compilation is done when the function is first called, or when the
|
||||
`:defcompile` command is encountered in the script where the function was
|
||||
defined. `:disassemble` also compiles the function.
|
||||
Compilation is done when:
|
||||
- the function is first called
|
||||
- when the `:defcompile` command is encountered in the script where the
|
||||
function was defined
|
||||
- `:disassemble` is used for the function.
|
||||
- a function that is compiled calls the function or uses it as a function
|
||||
reference
|
||||
|
||||
`:def` has no options like `:function` does: "range", "abort", "dict" or
|
||||
"closure". A `:def` function always aborts on an error, does not get a range
|
||||
@@ -104,12 +109,12 @@ The argument types and return type need to be specified. The "any" type can
|
||||
be used, type checking will then be done at runtime, like with legacy
|
||||
functions.
|
||||
|
||||
Arguments are accessed by name, without "a:". There is no "a:" dictionary or
|
||||
"a:000" list. Just like any other language.
|
||||
Arguments are accessed by name, without "a:", just like any other language.
|
||||
There is no "a:" dictionary or "a:000" list.
|
||||
|
||||
Variable arguments are defined as the last argument, with a name and have a
|
||||
list type, similar to Typescript. For example, a list of numbers: >
|
||||
def MyFunc(...itemlist: list<number>)
|
||||
list type, similar to TypeScript. For example, a list of numbers: >
|
||||
def MyFunc(...itemlist: list<number>)
|
||||
for item in itemlist
|
||||
...
|
||||
|
||||
@@ -119,11 +124,12 @@ Functions and variables are script-local by default ~
|
||||
When using `:function` or `:def` to specify a new function at the script level
|
||||
in a Vim9 script, the function is local to the script, as if "s:" was
|
||||
prefixed. Using the "s:" prefix is optional. To define or use a global
|
||||
function or variable the "g:" prefix must be used. For functions in an
|
||||
function or variable the "g:" prefix should be used. For functions in an
|
||||
autoload script the "name#" prefix is sufficient. >
|
||||
def ThisFunction() # script-local
|
||||
def s:ThisFunction() # script-local
|
||||
def g:ThatFunction() # global
|
||||
def g:ThatFunction() # global
|
||||
def ThatFunction() # global if no local ThatFunction()
|
||||
def scriptname#function() # autoload
|
||||
|
||||
When using `:function` or `:def` to specify a new function inside a function,
|
||||
@@ -132,18 +138,16 @@ script-local function inside a function. It is possible to define a global
|
||||
function, using the "g:" prefix.
|
||||
|
||||
When referring to a function and no "s:" or "g:" prefix is used, Vim will
|
||||
search for the function in this order:
|
||||
- Local to the current scope and outer scopes up to the function scope.
|
||||
- Local to the current script file.
|
||||
- Imported functions, see `:import`.
|
||||
prefer using a local function (in the function scope, script scope or
|
||||
imported) before looking for a global function.
|
||||
In all cases the function must be defined before used. That is when it is
|
||||
first called or when `:defcompile` causes the call to be compiled.
|
||||
|
||||
The result is that functions and variables without a namespace can always be
|
||||
The result is that functions and variables without a namespace can usually be
|
||||
found in the script, either defined there or imported. Global functions and
|
||||
variables could be defined anywhere (good luck finding where!).
|
||||
variables could be defined anywhere (good luck finding out where!).
|
||||
|
||||
Global functions can be still be defined and deleted at nearly any time. In
|
||||
Global functions can still be defined and deleted at nearly any time. In
|
||||
Vim9 script script-local functions are defined once when the script is sourced
|
||||
and cannot be deleted or replaced.
|
||||
|
||||
@@ -169,7 +173,7 @@ blocks. Once the block ends the variable is no longer accessible: >
|
||||
else
|
||||
let inner = 0
|
||||
endif
|
||||
echo inner " Error!
|
||||
echo inner # Error!
|
||||
|
||||
The declaration must be done earlier: >
|
||||
let inner: number
|
||||
@@ -186,14 +190,15 @@ To intentionally avoid a variable being available later, a block can be used:
|
||||
let temp = 'temp'
|
||||
...
|
||||
}
|
||||
echo temp " Error!
|
||||
echo temp # Error!
|
||||
|
||||
An existing variable cannot be assigned to with `:let`, since that implies a
|
||||
declaration. Global, window, tab, buffer and Vim variables can only be used
|
||||
without `:let`, because they are are not really declared, they can also be
|
||||
deleted with `:unlet`.
|
||||
without `:let`, because they are not really declared, they can also be deleted
|
||||
with `:unlet`.
|
||||
|
||||
Variables cannot shadow previously defined variables.
|
||||
Variables and functions cannot shadow previously defined or imported variables
|
||||
and functions.
|
||||
Variables may shadow Ex commands, rename the variable if needed.
|
||||
|
||||
Global variables and user defined functions must be prefixed with "g:", also
|
||||
@@ -217,7 +222,7 @@ isn't that easy.
|
||||
Omitting :call and :eval ~
|
||||
|
||||
Functions can be called without `:call`: >
|
||||
writefile(lines, 'file')
|
||||
writefile(lines, 'file')
|
||||
Using `:call` is still possible, but this is discouraged.
|
||||
|
||||
A method call without `eval` is possible, so long as the start is an
|
||||
@@ -232,16 +237,16 @@ identifier or can't be an Ex command. Examples: >
|
||||
'foobar'->Process()
|
||||
('foobar')->Process()
|
||||
|
||||
In rare case there is ambiguity between a function name and an Ex command, use
|
||||
":" to make clear you want to use the Ex command. For example, there is both
|
||||
the `:substitute` command and the `substitute()` function. When the line
|
||||
starts with `substitute(` this will use the function. Prepend a colon to use
|
||||
the command instead: >
|
||||
In the rare case there is ambiguity between a function name and an Ex command,
|
||||
prepend ":" to make clear you want to use the Ex command. For example, there
|
||||
is both the `:substitute` command and the `substitute()` function. When the
|
||||
line starts with `substitute(` this will use the function. Prepend a colon to
|
||||
use the command instead: >
|
||||
:substitute(pattern (replacement (
|
||||
|
||||
Note that while variables need to be defined before they can be used,
|
||||
functions can be called before being defined. This is required to be able
|
||||
have cyclic dependencies between functions. It is slightly less efficient,
|
||||
functions can be called before being defined. This is required to allow
|
||||
for cyclic dependencies between functions. It is slightly less efficient,
|
||||
since the function has to be looked up by name. And a typo in the function
|
||||
name will only be found when the function is called.
|
||||
|
||||
@@ -261,8 +266,8 @@ number of arguments and any return type. The function can be defined later.
|
||||
Automatic line continuation ~
|
||||
|
||||
In many cases it is obvious that an expression continues on the next line. In
|
||||
those cases there is no need to prefix the line with a backslash. For
|
||||
example, when a list spans multiple lines: >
|
||||
those cases there is no need to prefix the line with a backslash
|
||||
|line-continuation|. For example, when a list spans multiple lines: >
|
||||
let mylist = [
|
||||
'one',
|
||||
'two',
|
||||
@@ -324,26 +329,26 @@ Notes:
|
||||
current function.
|
||||
- No line break is allowed in the LHS of an assignment. Specifically when
|
||||
unpacking a list |:let-unpack|. This is OK: >
|
||||
[var1, var2] =
|
||||
[var1, var2] =
|
||||
Func()
|
||||
< This does not work: >
|
||||
[var1,
|
||||
[var1,
|
||||
var2] =
|
||||
Func()
|
||||
- No line break is allowed in between arguments of an `:echo`, `:execute` and
|
||||
similar commands. This is OK: >
|
||||
echo [1,
|
||||
echo [1,
|
||||
2] [3,
|
||||
4]
|
||||
< This does not work: >
|
||||
echo [1, 2]
|
||||
echo [1, 2]
|
||||
[3, 4]
|
||||
- No line break is allowed in the arguments of a lambda, between the "{" and
|
||||
"->". This is OK: >
|
||||
filter(list, {k, v ->
|
||||
filter(list, {k, v ->
|
||||
v > 0})
|
||||
< This does not work: >
|
||||
filter(list, {k,
|
||||
filter(list, {k,
|
||||
v -> v > 0})
|
||||
|
||||
|
||||
@@ -352,10 +357,11 @@ No curly braces expansion ~
|
||||
|curly-braces-names| cannot be used.
|
||||
|
||||
|
||||
No :xit, :append, :change or :insert ~
|
||||
No :xit, :t, :append, :change or :insert ~
|
||||
|
||||
These commands are too easily confused with local variable names. Instead of
|
||||
`:x` or `:xit` you can use `:exit`.
|
||||
These commands are too easily confused with local variable names.
|
||||
Instead of `:x` or `:xit` you can use `:exit`.
|
||||
Instead of `:t` you can use `:copy`.
|
||||
|
||||
|
||||
Comparators ~
|
||||
@@ -366,11 +372,11 @@ The 'ignorecase' option is not used for comparators that use strings.
|
||||
White space ~
|
||||
|
||||
Vim9 script enforces proper use of white space. This is no longer allowed: >
|
||||
let var=234 " Error!
|
||||
let var= 234 " Error!
|
||||
let var =234 " Error!
|
||||
let var=234 # Error!
|
||||
let var= 234 # Error!
|
||||
let var =234 # Error!
|
||||
There must be white space before and after the "=": >
|
||||
let var = 234 " OK
|
||||
let var = 234 # OK
|
||||
White space must also be put before the # that starts a comment after a
|
||||
command: >
|
||||
let var = 234# Error!
|
||||
@@ -380,20 +386,20 @@ White space is required around most operators.
|
||||
|
||||
White space is not allowed:
|
||||
- Between a function name and the "(": >
|
||||
call Func (arg) " Error!
|
||||
call Func
|
||||
\ (arg) " Error!
|
||||
call Func(arg) " OK
|
||||
call Func(
|
||||
\ arg) " OK
|
||||
call Func(
|
||||
\ arg " OK
|
||||
call Func (arg) # Error!
|
||||
call Func
|
||||
\ (arg) # Error!
|
||||
call Func(arg) # OK
|
||||
call Func(
|
||||
\ arg) # OK
|
||||
call Func(
|
||||
\ arg # OK
|
||||
\ )
|
||||
|
||||
|
||||
Conditions and expressions ~
|
||||
|
||||
Conditions and expression are mostly working like they do in JavaScript. A
|
||||
Conditions and expressions are mostly working like they do in JavaScript. A
|
||||
difference is made where JavaScript does not work like most people expect.
|
||||
Specifically, an empty list is falsey.
|
||||
|
||||
@@ -425,13 +431,22 @@ The boolean operators "||" and "&&" do not change the value: >
|
||||
2 && 0 == 0
|
||||
[] && 2 == []
|
||||
|
||||
When using `..` for string concatenation the arguments are always converted to
|
||||
string. >
|
||||
When using `..` for string concatenation arguments of simple types are always
|
||||
converted to string. >
|
||||
'hello ' .. 123 == 'hello 123'
|
||||
'hello ' .. v:true == 'hello true'
|
||||
'hello ' .. v:true == 'hello v:true'
|
||||
|
||||
Simple types are string, float, special and bool. For other types |string()|
|
||||
can be used.
|
||||
*false* *true*
|
||||
In Vim9 script one can use "true" for v:true and "false" for v:false.
|
||||
|
||||
Indexing a string with [idx] or [idx, idx] uses character indexes instead of
|
||||
byte indexes. Example: >
|
||||
echo 'bár'[1]
|
||||
In legacy script this results in the character 0xc3 (an illegal byte), in Vim9
|
||||
script this results in the string 'á'.
|
||||
|
||||
|
||||
What to watch out for ~
|
||||
*vim9-gotchas*
|
||||
@@ -440,16 +455,21 @@ same time tries to support the legacy Vim commands. Some compromises had to
|
||||
be made. Here is a summary of what might be unexpected.
|
||||
|
||||
Ex command ranges need to be prefixed with a colon. >
|
||||
-> " legacy Vim: shifts the previous line to the right
|
||||
->func() " Vim9: method call in continuation line
|
||||
:-> " Vim9: shifts the previous line to the right
|
||||
-> # legacy Vim: shifts the previous line to the right
|
||||
->func() # Vim9: method call in continuation line
|
||||
:-> # Vim9: shifts the previous line to the right
|
||||
|
||||
%s/a/b " legacy Vim: substitute on all lines
|
||||
%s/a/b # legacy Vim: substitute on all lines
|
||||
x = alongname
|
||||
% another " Vim9: line continuation without a backslash
|
||||
:%s/a/b " Vim9: substitute on all lines
|
||||
'text'->func() " Vim9: method call
|
||||
:'t " legacy Vim: jump to mark m
|
||||
% another # Vim9: line continuation without a backslash
|
||||
:%s/a/b # Vim9: substitute on all lines
|
||||
'text'->func() # Vim9: method call
|
||||
:'t # legacy Vim: jump to mark m
|
||||
|
||||
Some Ex commands can be confused with assignments in Vim9 script: >
|
||||
g:name = value # assignment
|
||||
g:pattern:cmd # invalid command - ERROR
|
||||
:g:pattern:cmd # :global command
|
||||
|
||||
Functions defined with `:def` compile the whole function. Legacy functions
|
||||
can bail out, and the following lines are not parsed: >
|
||||
@@ -464,7 +484,7 @@ Vim9 functions are compiled as a whole: >
|
||||
if !has('feature')
|
||||
return
|
||||
endif
|
||||
use-feature " May give compilation error
|
||||
use-feature # May give compilation error
|
||||
enddef
|
||||
For a workaround, split it in two functions: >
|
||||
func Maybe()
|
||||
@@ -477,6 +497,18 @@ For a workaround, split it in two functions: >
|
||||
use-feature
|
||||
enddef
|
||||
endif
|
||||
Or put the unsupported code inside an `if` with a constant expression that
|
||||
evaluates to false: >
|
||||
def Maybe()
|
||||
if has('feature')
|
||||
use-feature
|
||||
endif
|
||||
enddef
|
||||
Note that for unrecognized commands there is no check for "|" and a following
|
||||
command. This will give an error for missing `endif`: >
|
||||
def Maybe()
|
||||
if has('feature') | use-feature | endif
|
||||
enddef
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -485,7 +517,7 @@ For a workaround, split it in two functions: >
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
*:def*
|
||||
:def[!] {name}([arguments])[: {return-type}
|
||||
:def[!] {name}([arguments])[: {return-type}]
|
||||
Define a new function by the name {name}. The body of
|
||||
the function follows in the next lines, until the
|
||||
matching `:enddef`.
|
||||
@@ -524,7 +556,7 @@ If the script the function is defined in is Vim9 script, then script-local
|
||||
variables can be accessed without the "s:" prefix. They must be defined
|
||||
before the function is compiled. If the script the function is defined in is
|
||||
legacy script, then script-local variables must be accessed with the "s:"
|
||||
prefix.
|
||||
prefix and they do not need to exist (they can be deleted any time).
|
||||
|
||||
*:defc* *:defcompile*
|
||||
:defc[ompile] Compile functions defined in the current script that
|
||||
@@ -613,6 +645,8 @@ called in the same way the declaration is the same.
|
||||
|
||||
Custom types can be defined with `:type`: >
|
||||
:type MyList list<string>
|
||||
Custom types must start with a capital letter, to avoid name clashes with
|
||||
builtin types added later, similarly to user functions.
|
||||
{not implemented yet}
|
||||
|
||||
And classes and interfaces can be used as types: >
|
||||
@@ -632,13 +666,64 @@ And classes and interfaces can be used as types: >
|
||||
{not implemented yet}
|
||||
|
||||
|
||||
Variable types and type casting *variable-types*
|
||||
|
||||
Variables declared in Vim9 script or in a `:def` function have a type, either
|
||||
specified explicitly or inferred from the initialization.
|
||||
|
||||
Global, buffer, window and tab page variables do not have a specific type, the
|
||||
value can be changed at any time, possibly changing the type. Therefore, in
|
||||
compiled code the "any" type is assumed.
|
||||
|
||||
This can be a problem when the "any" type is undesired and the actual type is
|
||||
expected to always be the same. For example, when declaring a list: >
|
||||
let l: list<number> = [1, g:two]
|
||||
This will give an error, because "g:two" has type "any". To avoid this, use a
|
||||
type cast: >
|
||||
let l: list<number> = [1, <number>g:two]
|
||||
< *type-casting*
|
||||
The compiled code will then check that "g:two" is a number at runtime and give
|
||||
an error if it isn't. This is called type casting.
|
||||
|
||||
The syntax of a type cast is: "<" {type} ">". There cannot be white space
|
||||
after the "<" or before the ">" (to avoid them being confused with
|
||||
smaller-than and bigger-than operators).
|
||||
|
||||
The semantics is that, if needed, a runtime type check is performed. The
|
||||
value is not actually changed. If you need to change the type, e.g. to change
|
||||
it to a string, use the |string()| function. Or use |str2nr()| to convert a
|
||||
string to a number.
|
||||
|
||||
|
||||
Type inference *type-inference*
|
||||
|
||||
In general: Whenever the type is clear it can be omitted. For example, when
|
||||
declaring a variable and giving it a value: >
|
||||
let var = 0 " infers number type
|
||||
let var = 'hello' " infers string type
|
||||
let var = 0 # infers number type
|
||||
let var = 'hello' # infers string type
|
||||
|
||||
The type of a list and dictionary comes from the common type of the values.
|
||||
If the values all have the same type, that type is used for the list or
|
||||
dictionary. If there is a mix of types, the "any" type is used. >
|
||||
[1, 2, 3] list<number>
|
||||
['a', 'b', 'c'] list<string>
|
||||
[1, 'x', 3] list<any>
|
||||
|
||||
|
||||
Stricter type checking *type-checking*
|
||||
|
||||
In legacy Vim script, where a number was expected, a string would be
|
||||
automatically converted to a number. This was convenient for an actual number
|
||||
such as "123", but leads to unexpected problems (but no error message) if the
|
||||
string doesn't start with a number. Quite often this leads to hard-to-find
|
||||
bugs.
|
||||
|
||||
In Vim9 script this has been made stricter. In most places it works just as
|
||||
before, if the value used matches the expected type. There will sometimes be
|
||||
an error, thus breaking backwards compatibility. For example:
|
||||
- Using a number other than 0 or 1 where a boolean is expected. *E1023*
|
||||
- Using a string value when setting a number options.
|
||||
- Using a number where a string is expected. *E1024*
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -651,6 +736,9 @@ A Vim9 script can be written to be imported. This means that everything in
|
||||
the script is local, unless exported. Those exported items, and only those
|
||||
items, can then be imported in another script.
|
||||
|
||||
You can cheat by using the global namespace explicitly. We will assume here
|
||||
that you don't do that.
|
||||
|
||||
|
||||
Namespace ~
|
||||
*:vim9script* *:vim9*
|
||||
@@ -713,6 +801,9 @@ Then you can use "That.EXPORTED_CONST", "That.someValue", etc. You are free
|
||||
to choose the name "That", but it is highly recommended to use the name of the
|
||||
script file to avoid confusion.
|
||||
|
||||
`:import` can also be used in legacy Vim script. The imported items still
|
||||
become script-local, even when the "s:" prefix is not given.
|
||||
|
||||
The script name after `import` can be:
|
||||
- A relative path, starting "." or "..". This finds a file relative to the
|
||||
location of the script file itself. This is useful to split up a large
|
||||
@@ -743,7 +834,7 @@ actually needed. A recommended mechanism:
|
||||
|
||||
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen.
|
||||
|
||||
2. In the autocommand script do the actual work. You can import items from
|
||||
2. In the autoload script do the actual work. You can import items from
|
||||
other files to split up functionality in appropriate pieces. >
|
||||
vim9script
|
||||
import FilterFunc from "../import/someother.vim"
|
||||
@@ -758,10 +849,13 @@ actually needed. A recommended mechanism:
|
||||
items and any private items. >
|
||||
vim9script
|
||||
let localVar = 'local'
|
||||
export def FilterFunc(arg: string): string
|
||||
export def FilterFunc(arg: string): string
|
||||
...
|
||||
< This goes in .../import/someother.vim.
|
||||
|
||||
When compiling a `:def` function and a function in an autoload script is
|
||||
encountered, the script is not loaded until the `:def` function is called.
|
||||
|
||||
|
||||
Import in legacy Vim script ~
|
||||
|
||||
@@ -775,7 +869,7 @@ namespace will be used for the imported item, even when "s:" is not specified.
|
||||
|
||||
The :def command ~
|
||||
|
||||
Plugin writers have asked for a much faster Vim script. Investigation have
|
||||
Plugin writers have asked for a much faster Vim script. Investigations have
|
||||
shown that keeping the existing semantics of function calls make this close to
|
||||
impossible, because of the overhead involved with calling a function, setting
|
||||
up the local function scope and executing lines. There are many details that
|
||||
@@ -805,7 +899,7 @@ an "add number" instruction can be used, which is faster. The error can be
|
||||
given at compile time, no error handling is needed at runtime.
|
||||
|
||||
The syntax for types is similar to Java, since it is easy to understand and
|
||||
widely used. The type names are what was used in Vim before, with some
|
||||
widely used. The type names are what were used in Vim before, with some
|
||||
additions such as "void" and "bool".
|
||||
|
||||
|
||||
@@ -843,8 +937,8 @@ the well-known parts of legacy Vim script.
|
||||
|
||||
Since Vim already uses `:let` and `:const` and optional type checking is
|
||||
desirable, the JavaScript/TypeScript syntax fits best for variable
|
||||
declarations. >
|
||||
const greeting = 'hello' " string type is inferred
|
||||
declarations: >
|
||||
const greeting = 'hello' # string type is inferred
|
||||
let name: string
|
||||
...
|
||||
name = 'John'
|
||||
@@ -854,32 +948,40 @@ are doing. Some details are unexpected and can be fixed. For example how the
|
||||
|| and && operators work. Legacy Vim script: >
|
||||
let result = 44
|
||||
...
|
||||
return result || 0 " returns 1
|
||||
return result || 0 # returns 1
|
||||
|
||||
Vim9 script works like JavaScript/Typescript, keep the value: >
|
||||
Vim9 script works like JavaScript/TypeScript, keep the value: >
|
||||
let result = 44
|
||||
...
|
||||
return result || 0 " returns 44
|
||||
return result || 0 # returns 44
|
||||
|
||||
On the other hand, overloading "+" to use both for addition and string
|
||||
concatenation goes against legacy Vim script and often leads to mistakes.
|
||||
For that reason we will keep using ".." for string concatenation. Lua also
|
||||
uses ".." this way.
|
||||
|
||||
There is no intention to completely match TypeScript syntax and semantics. We
|
||||
just want to take those parts that we can use for Vim and we expect Vim users
|
||||
are happy with. TypeScript is a complex language with its own advantages and
|
||||
disadvantages. People used to other languages (Java, Python, etc.) will also
|
||||
find things in TypeScript that they do not like or do not understand. We'll
|
||||
try to avoid those things.
|
||||
|
||||
|
||||
Import and Export ~
|
||||
|
||||
A problem of legacy Vim script is that by default all functions and variables
|
||||
are global. It is possible to make them script-local, but then they are not
|
||||
available in other scripts.
|
||||
available in other scripts. This defies the concept of a package that only
|
||||
exports selected items and keeps the rest local.
|
||||
|
||||
In Vim9 script a mechanism very similar to the Javascript import and export
|
||||
In Vim9 script a mechanism very similar to the JavaScript import and export
|
||||
mechanism is supported. It is a variant to the existing `:source` command
|
||||
that works like one would expect:
|
||||
- Instead of making everything global by default, everything is script-local,
|
||||
unless exported.
|
||||
- When importing a script the symbols that are imported are listed, avoiding
|
||||
name conflicts and failures if later functionality is added.
|
||||
- When importing a script the symbols that are imported are explicitly listed,
|
||||
avoiding name conflicts and failures if functionality is added later.
|
||||
- The mechanism allows for writing a big, long script with a very clear API:
|
||||
the exported function(s) and class(es).
|
||||
- By using relative paths loading can be much faster for an import inside of a
|
||||
@@ -891,27 +993,28 @@ that works like one would expect:
|
||||
When sourcing a Vim9 script from a legacy script, only the items defined
|
||||
globally can be used, not the exported items. Alternatives considered:
|
||||
- All the exported items become available as script-local items. This makes
|
||||
it uncontrollable what items get defined.
|
||||
it uncontrollable what items get defined and likely soon leads to trouble.
|
||||
- Use the exported items and make them global. Disadvantage is that it's then
|
||||
not possible to avoid name clashes in the global namespace.
|
||||
- Completely disallow sourcing a Vim9 script, require using `:import`. That
|
||||
makes it difficult to use scripts for testing, or sourcing them from the
|
||||
command line to try them out.
|
||||
Note that you can also use `:import` in legacy Vim script, see above.
|
||||
|
||||
|
||||
Classes ~
|
||||
|
||||
Vim supports interfaces to Perl, Python, Lua, Tcl and a few others. But
|
||||
these have never become widespread. When Vim 9 was designed a decision was
|
||||
made to phase out these interfaces and concentrate on Vim script, while
|
||||
encouraging plugin authors to write code in any language and run it as an
|
||||
external tool, using jobs and channels.
|
||||
these interfaces have never become widespread. When Vim 9 was designed a
|
||||
decision was made to phase out these interfaces and concentrate on Vim script,
|
||||
while encouraging plugin authors to write code in any language and run it as
|
||||
an external tool, using jobs and channels.
|
||||
|
||||
Still, using an external tool has disadvantages. An alternative is to convert
|
||||
the tool into Vim script. For that to be possible without too much
|
||||
translation, and keeping the code fast at the same time, the constructs of the
|
||||
tool need to be supported. Since most languages support classes the lack of
|
||||
class support in Vim is then a problem.
|
||||
support for classes in Vim is then a problem.
|
||||
|
||||
Previously Vim supported a kind-of object oriented programming by adding
|
||||
methods to a dictionary. With some care this could be made to work, but it
|
||||
@@ -919,7 +1022,7 @@ does not look like real classes. On top of that, it's very slow, because of
|
||||
the use of dictionaries.
|
||||
|
||||
The support of classes in Vim9 script is a "minimal common functionality" of
|
||||
class support in most languages. It works mostly like Java, which is the most
|
||||
class support in most languages. It works much like Java, which is the most
|
||||
popular programming language.
|
||||
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ gN Like |gn| but searches backward, like with `N`.
|
||||
|
||||
*<LeftMouse>*
|
||||
<LeftMouse> Set the current cursor position. If Visual mode is
|
||||
active it is stopped. Only when 'mouse' option is
|
||||
active it is stopped. Only when 'mouse' option
|
||||
contains 'n' or 'a'. If the position is within 'so'
|
||||
lines from the last line on the screen the text is
|
||||
scrolled up. If the position is within 'so' lines from
|
||||
@@ -136,7 +136,7 @@ gN Like |gn| but searches backward, like with `N`.
|
||||
<RightMouse> Start Visual mode if it is not active. The text from
|
||||
the cursor position to the position of the click is
|
||||
highlighted. If Visual mode was already active move
|
||||
the start or end of the highlighted text, which ever
|
||||
the start or end of the highlighted text, whichever
|
||||
is closest, to the position of the click. Only when
|
||||
'mouse' option contains 'n' or 'a'.
|
||||
|
||||
@@ -236,7 +236,7 @@ The objects that can be used are:
|
||||
is inner sentence |v_is|
|
||||
ap a paragraph (with white space) |v_ap|
|
||||
ip inner paragraph |v_ip|
|
||||
ab a () block (with parenthesis) |v_ab|
|
||||
ab a () block (with parentheses) |v_ab|
|
||||
ib inner () block |v_ib|
|
||||
aB a {} block (with braces) |v_aB|
|
||||
iB inner {} block |v_iB|
|
||||
@@ -347,7 +347,7 @@ Visual-block Shift *v_b_>*
|
||||
The block is shifted by 'shiftwidth'. The RHS of the block is irrelevant. The
|
||||
LHS of the block determines the point from which to apply a right shift, and
|
||||
padding includes TABs optimally according to 'ts' and 'et'. The LHS of the
|
||||
block determines the point upto which to shift left.
|
||||
block determines the point up to which to shift left.
|
||||
See |v_b_>_example|.
|
||||
See |v_b_<_example|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.2. Last change: 2020 May 10
|
||||
*windows.txt* For Vim version 8.2. Last change: 2020 Sep 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -955,12 +955,12 @@ CTRL-W g } *CTRL-W_g}*
|
||||
cursor. This is less clever than using |:ptag|, but you don't
|
||||
need a tags file and it will also find matches in system
|
||||
include files. Example: >
|
||||
:au! CursorHold *.[ch] nested exe "silent! psearch " . expand("<cword>")
|
||||
:au! CursorHold *.[ch] ++nested exe "silent! psearch " . expand("<cword>")
|
||||
< Warning: This can be slow.
|
||||
|
||||
Example *CursorHold-example* >
|
||||
|
||||
:au! CursorHold *.[ch] nested exe "silent! ptag " . expand("<cword>")
|
||||
:au! CursorHold *.[ch] ++nested exe "silent! ptag " . expand("<cword>")
|
||||
|
||||
This will cause a ":ptag" to be executed for the keyword under the cursor,
|
||||
when the cursor hasn't moved for the time set with 'updatetime'. The "nested"
|
||||
@@ -973,7 +973,7 @@ be found. Also see |CursorHold|. To disable this again: >
|
||||
A nice addition is to highlight the found tag, avoid the ":ptag" when there
|
||||
is no word under the cursor, and a few other things: >
|
||||
|
||||
:au! CursorHold *.[ch] nested call PreviewWord()
|
||||
:au! CursorHold *.[ch] ++nested call PreviewWord()
|
||||
:func PreviewWord()
|
||||
: if &previewwindow " don't do this in the preview window
|
||||
: return
|
||||
@@ -1112,7 +1112,9 @@ list of buffers. |unlisted-buffer|
|
||||
<
|
||||
*:bad* *:badd*
|
||||
:bad[d] [+lnum] {fname}
|
||||
Add file name {fname} to the buffer list, without loading it.
|
||||
Add file name {fname} to the buffer list, without loading it,
|
||||
if it wasn't listed yet. If the buffer was previously
|
||||
deleted, not wiped, it will be made listed again.
|
||||
If "lnum" is specified, the cursor will be positioned at that
|
||||
line when the buffer is first entered. Note that other
|
||||
commands after the + will be ignored.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user