mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00:00
Compare commits
333 Commits
Author | SHA1 | Date | |
---|---|---|---|
ec0557f08b | |||
059fd01021 | |||
a172b63ab8 | |||
ce46d934af | |||
b50773c6df | |||
1274d33493 | |||
0479e910c4 | |||
d6d304298a | |||
40962ec9c0 | |||
84b242c369 | |||
501383236d | |||
d7823d5b7c | |||
95dbcbea6d | |||
2ec364e94d | |||
0cbcd949e1 | |||
4aad53c369 | |||
ede35bbbd0 | |||
200ea8ffaa | |||
de04654ddc | |||
9e3dfc6501 | |||
2095148277 | |||
df980db69b | |||
a47ebdbd22 | |||
fabaf753e2 | |||
45a0000d5c | |||
e6640ad44e | |||
3c09722600 | |||
b73fa629d6 | |||
ae6f865125 | |||
1bd999f982 | |||
8ada6aa929 | |||
4ce46c2a6b | |||
14a4deb064 | |||
aaf6e43b7a | |||
1223744849 | |||
2efb323e87 | |||
338e47fdfd | |||
132f75255e | |||
a0ca7d002d | |||
4af031dbc8 | |||
b254af312d | |||
c9e649ae81 | |||
606d45ccd8 | |||
4fb921e388 | |||
9bca805ec4 | |||
cb89c98c26 | |||
f0b03c4e98 | |||
8ee2d36e21 | |||
ee219b0e9f | |||
9e1d399e63 | |||
890dd05492 | |||
a1d5c154db | |||
200d0e36bc | |||
7e1652c63c | |||
6621605eb9 | |||
8b42328cef | |||
b29d328eb4 | |||
4697399e8c | |||
7f88b65f6c | |||
a6d4849c71 | |||
fae8ed1fc8 | |||
a703aaee4d | |||
8e6a31df81 | |||
59eb016dff | |||
74240d3feb | |||
35c5e8155d | |||
f405c8fe85 | |||
620ca2da37 | |||
05684310a5 | |||
e4b78e2a42 | |||
3388d33457 | |||
6e65d594aa | |||
23c1b2b018 | |||
415a6939a4 | |||
5fe6bdf858 | |||
3767c6e9ee | |||
ac112f01a6 | |||
feeb4d0901 | |||
1eca6f13d6 | |||
92467d3351 | |||
ce6179c799 | |||
461fe50fea | |||
1ad022a9b8 | |||
24820691e6 | |||
22044dc317 | |||
af903e5d49 | |||
a7c54cfcf8 | |||
97ce419201 | |||
76bb7196f5 | |||
2f0584910c | |||
46359e198f | |||
8b9e20afb0 | |||
1a2ab991a6 | |||
c5aa55db7e | |||
a45ff6caba | |||
3660a10c73 | |||
1ed2276fd5 | |||
f38c86eb6b | |||
bdb8139098 | |||
1355aad2b9 | |||
17471e84a7 | |||
c8c75796a6 | |||
e0aa23f7e3 | |||
a3571ebef5 | |||
c41838aa01 | |||
2877d334ad | |||
d7ccc4d81d | |||
fb1db0e355 | |||
be5d998d0e | |||
281c93e714 | |||
83799a7b74 | |||
819edbe078 | |||
50d43153a7 | |||
6315a9ae92 | |||
291a9d15ed | |||
3167c3e701 | |||
2c997d7603 | |||
93a32e2ec4 | |||
3679c17917 | |||
a2a80162de | |||
52dbb5ea7f | |||
5505860152 | |||
ff5467965e | |||
91ffda9852 | |||
6e77df2d85 | |||
5df95ea9ef | |||
bb160a188a | |||
73675fbc48 | |||
5bbef31949 | |||
40e280d949 | |||
7221fce8b3 | |||
669a828cdc | |||
246fe03d15 | |||
e518226713 | |||
44c2bffde7 | |||
e86ee877c1 | |||
4ab9d9e9a4 | |||
d1c28346e1 | |||
c3719bd87b | |||
c7d16dce2f | |||
0f1e643138 | |||
51b0f3701e | |||
234d16286a | |||
ae1e108caa | |||
9e27217c48 | |||
7567d0b115 | |||
d048009717 | |||
9c6ce0e622 | |||
209d3874c1 | |||
7cb769a69f | |||
cd142e3369 | |||
a42ad57e48 | |||
58a8f1706f | |||
2392143236 | |||
1dcada1933 | |||
e42a6d2509 | |||
2f27aab8e6 | |||
60e73f2acc | |||
d327b0c68f | |||
f8c53d3d26 | |||
80eaddd3a0 | |||
7f2e9d7c9c | |||
13e904199c | |||
ae147ab2d7 | |||
aeeb6888ca | |||
5fd8b78214 | |||
d09a206ee9 | |||
462455ee8b | |||
9ed7d34af3 | |||
cef7322d8a | |||
851ee6c3da | |||
de323093e1 | |||
040c1feb21 | |||
8ac441576f | |||
26d205dcd8 | |||
a3f7e58bf8 | |||
c9e9c71409 | |||
0c4dc88a63 | |||
4148be468f | |||
53ec79537a | |||
fb094e14c1 | |||
8fdb35a974 | |||
b0d45e7f53 | |||
aace215813 | |||
3bf8c3c38f | |||
5842a748be | |||
ffe010fa03 | |||
ad7dac85c3 | |||
c363251630 | |||
5a73e0ca54 | |||
7dd88c5133 | |||
1232624ae5 | |||
ab8b1c14a3 | |||
13deab8d08 | |||
52a2f0f1da | |||
2973daafe1 | |||
a88254f704 | |||
01164a6546 | |||
ea84df8041 | |||
4c22a91d20 | |||
430dc5d360 | |||
8889a5c305 | |||
d97fbf171e | |||
f8f8b2eadb | |||
c20e0d5207 | |||
5130f31661 | |||
86b21bb3e7 | |||
b315876efa | |||
3e1c617d49 | |||
b94340c04f | |||
f45938cc20 | |||
ffd99f729b | |||
89c394faca | |||
ba6febd380 | |||
48570488f1 | |||
2e51d9a097 | |||
af2d20c628 | |||
d057301b1f | |||
ef83956e1e | |||
a6ce1ccf5c | |||
b9fce6cbf7 | |||
c3fdf7f80b | |||
c312b8b87a | |||
ce15775026 | |||
9a91c7a1f9 | |||
0e19fc07e7 | |||
dc1c981294 | |||
2a45d64d0a | |||
ee03b94124 | |||
cf1ba35fc2 | |||
9ad89c6c4f | |||
ce11de87e2 | |||
15993ce921 | |||
235dddf1f4 | |||
f204e05ae9 | |||
8d84ff1a3c | |||
d99388ba85 | |||
6ce6504808 | |||
2f40d129bf | |||
4f1982800f | |||
2e4cb3b042 | |||
66857f4104 | |||
ca05aa24af | |||
f8e8c0643b | |||
53f0c96239 | |||
6b89dbb55f | |||
67435d9983 | |||
fafcf0dd59 | |||
ff930cad8a | |||
87ffb5c1a3 | |||
6daeef1933 | |||
059db5c29f | |||
44cc4cf72f | |||
67418d97b4 | |||
8bfe07b708 | |||
00ce63dc23 | |||
81b07b527e | |||
a20f83df1d | |||
9377df3ecd | |||
65e4c4f686 | |||
b2c8750c4e | |||
ac8069bb63 | |||
6199d43f4b | |||
2c33d7bb69 | |||
6047e2c722 | |||
1d68d9b2bd | |||
8065cf2bfb | |||
4a6fcf8047 | |||
9202162c5c | |||
9b69f22e66 | |||
18cfa940e2 | |||
0ab35b279f | |||
4635e11c6b | |||
75f69e5a18 | |||
631820536e | |||
73f4439ca6 | |||
54e5dbf58e | |||
d78f03f860 | |||
c902609f69 | |||
a0a6f2776e | |||
19a3d68b2c | |||
2a6a6c3014 | |||
712549e04e | |||
f33606112a | |||
5ece3e359c | |||
0aa398f55a | |||
3a497e1a41 | |||
c958b31638 | |||
f52c383156 | |||
65ed136844 | |||
c79977a437 | |||
660b85e39a | |||
a5e6621aad | |||
816968defc | |||
d371bbe0ab | |||
db51007108 | |||
24a98a0eb7 | |||
9cf39cc57f | |||
1ec96c9269 | |||
d1bc96ce24 | |||
1b38344e00 | |||
97fbc404fc | |||
2a02745709 | |||
09ca932f8e | |||
6edeaf387c | |||
a8fc0d3817 | |||
22ab547dc2 | |||
7c456a4511 | |||
452030e530 | |||
0c6a32963d | |||
0b05e491b4 | |||
e0de17d84e | |||
378daf87d3 | |||
96e7a6ee45 | |||
bb3e6416f1 | |||
a21a6a9ade | |||
eb163d73b1 | |||
e745d75c3e | |||
0263146b5d | |||
53f8174eae | |||
76301956f0 | |||
f3d769a585 | |||
8b21de33bb | |||
fc7649f8b8 | |||
b00fdf6eed | |||
9cb03716c9 | |||
2e6ab18729 | |||
a5a2be26fe | |||
37c64c78fd | |||
e22bbf6508 | |||
a8e93d63e3 | |||
71b2964066 | |||
d326ad6e93 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -38,6 +38,7 @@ src/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
|
||||
# Borland C++
|
||||
|
@ -67,6 +67,7 @@ addons:
|
||||
apt:
|
||||
packages:
|
||||
- autoconf
|
||||
- clang
|
||||
- lcov
|
||||
- libperl-dev
|
||||
- python-dev
|
||||
@ -87,7 +88,7 @@ before_install:
|
||||
# building cffi only works with gcc, not with clang
|
||||
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
|
||||
# Lua is not installed on Travis OSX
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then export HOMEBREW_NO_AUTO_UPDATE=1; brew update; brew install lua; export LUA_PREFIX=/usr/local; fi
|
||||
# Use llvm-cov instead of gcov when compiler is clang.
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CC" = "clang" ]; then ln -sf $(which llvm-cov) /home/travis/bin/gcov; fi
|
||||
|
||||
@ -102,9 +103,8 @@ script:
|
||||
- (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
|
||||
# Show Vim version and also if_xx versions.
|
||||
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-1.vim -c quit > /dev/null; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-2.vim -c quit > /dev/null; cat if_ver.txt; fi
|
||||
- if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
|
||||
- make $SHADOWOPT $TEST
|
||||
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
|
||||
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do asan_symbolize < "$log"; err=1; done; fi
|
||||
- if [ -n "$err" ]; then exit 1; fi
|
||||
|
||||
after_success:
|
||||
|
12
Filelist
12
Filelist
@ -12,6 +12,8 @@ SRC_ALL = \
|
||||
src/arabic.c \
|
||||
src/arabic.h \
|
||||
src/ascii.h \
|
||||
src/beval.c \
|
||||
src/beval.h \
|
||||
src/blowfish.c \
|
||||
src/buffer.c \
|
||||
src/channel.c \
|
||||
@ -41,7 +43,6 @@ SRC_ALL = \
|
||||
src/gui.c \
|
||||
src/gui.h \
|
||||
src/gui_beval.c \
|
||||
src/gui_beval.h \
|
||||
src/hardcopy.c \
|
||||
src/hashtab.c \
|
||||
src/json.c \
|
||||
@ -118,7 +119,6 @@ SRC_ALL = \
|
||||
src/testdir/test[0-9]*a.ok \
|
||||
src/testdir/test_[a-z]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test60.vim \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
@ -135,9 +135,12 @@ SRC_ALL = \
|
||||
src/testdir/bench*.in \
|
||||
src/testdir/bench*.vim \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/if_ver*.vim \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/proto.h \
|
||||
src/proto/arabic.pro \
|
||||
src/proto/beval.pro \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
src/proto/channel.pro \
|
||||
@ -405,6 +408,7 @@ SRC_DOS = \
|
||||
src/msvcsetup.bat \
|
||||
src/msvc2008.bat \
|
||||
src/msvc2010.bat \
|
||||
src/msvc2015.bat \
|
||||
src/dimm.idl \
|
||||
src/dlldata.c \
|
||||
src/dosinst.c \
|
||||
@ -449,6 +453,7 @@ SRC_DOS = \
|
||||
src/xxd/Make_mvc.mak \
|
||||
nsis/gvim.nsi \
|
||||
nsis/gvim_version.nsh \
|
||||
nsis/vimrc.ini \
|
||||
nsis/README.txt \
|
||||
uninstal.txt \
|
||||
src/VisVim/Commands.cpp \
|
||||
@ -579,6 +584,7 @@ RT_ALL = \
|
||||
runtime/doc/*.txt \
|
||||
runtime/doc/Makefile \
|
||||
runtime/doc/doctags.c \
|
||||
runtime/doc/test_urls.vim \
|
||||
runtime/doc/vim.1 \
|
||||
runtime/doc/evim.1 \
|
||||
runtime/doc/vimdiff.1 \
|
||||
@ -656,9 +662,11 @@ RT_SCRIPTS = \
|
||||
runtime/makemenu.vim \
|
||||
runtime/autoload/*.vim \
|
||||
runtime/autoload/README.txt \
|
||||
runtime/autoload/dist/*.vim \
|
||||
runtime/autoload/xml/*.vim \
|
||||
runtime/colors/*.vim \
|
||||
runtime/colors/README.txt \
|
||||
runtime/colors/tools/*.vim \
|
||||
runtime/compiler/*.vim \
|
||||
runtime/compiler/README.txt \
|
||||
runtime/indent/*.vim \
|
||||
|
53
Makefile
53
Makefile
@ -120,28 +120,28 @@ MINOR = 0
|
||||
#
|
||||
# MS-Windows:
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - Get libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||
# - Get 32 bit libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Use the "shared-32.zip file and extract the archive to get the files.
|
||||
# Put them in the top directory, "make dosrt" uses them.
|
||||
# Put them in the gettext32 directory, "make dosrt" uses them.
|
||||
# - Get 64 bit libintl-8.dll and libiconv-2.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Use the "shared-64.zip file and extract the archive to get the files.
|
||||
# Put them in the gettext64 directory, "make dosrt" uses them.
|
||||
# - > make dossrc
|
||||
# > make dosrt
|
||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||
# This creates the directory vim/vim80 and puts all files in there.
|
||||
# Win32 console version build:
|
||||
# - Set environment for Visual C++ 2008, e.g.:
|
||||
# > src/msvc2008.bat
|
||||
# Or:
|
||||
# > C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
|
||||
# Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
|
||||
# paths when necessary).
|
||||
# For Windows 98/ME the 2003 version is required, but then the executable
|
||||
# won't work on Windows 7 and 64 bit systems.
|
||||
# - > cd src
|
||||
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
||||
# - Set environment for Visual C++ 2015:
|
||||
# > cd src
|
||||
# > msvc2015.bat
|
||||
# - Build the console binary:
|
||||
# > nmake -f Make_mvc.mak
|
||||
# - Run the tests:
|
||||
# - Run the tests and check the ouput:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak test
|
||||
# - check the output.
|
||||
# - Rename (using ../tools/rename.bat):
|
||||
# vim.exe to vimw32.exe
|
||||
# tee/tee.exe to teew32.exe
|
||||
@ -152,19 +152,18 @@ MINOR = 0
|
||||
# Win32 GUI version build:
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak GUI=yes
|
||||
# - Run the tests:
|
||||
# - Run the tests and check the output:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||
# - Move gvim.pdb to here.
|
||||
# - Copy "GvimExt/gvimext.dll" to here.
|
||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
||||
# - Install the interfaces you want, see src/INSTALLpc.txt
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# - Build:
|
||||
# > cd src
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# > bigvim.bat
|
||||
# - Run the tests:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
@ -188,10 +187,11 @@ MINOR = 0
|
||||
# gvimext64.dll in src/GvimExt
|
||||
# VisVim.dll in src/VisVim
|
||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
|
||||
# It is part of vim72.zip as vim72/gvimext.dll.
|
||||
# gvimext64.dll can be obtained from:
|
||||
# https://github.com/vim/vim-win32-installer/releases
|
||||
# It is part of gvim_8.0.*_x64.zip as vim/vim80/GvimExt/gvimext64.dll.
|
||||
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
||||
# version).
|
||||
# version). Also put winpty32.dll and winpty-agent.exe there.
|
||||
# - go to ../nsis and do:
|
||||
# > makensis gvim.nsi (takes a few minutes).
|
||||
# ignore warning for libwinpthread-1.dll
|
||||
@ -467,9 +467,13 @@ dosrt_files: dist prepare no_title.vim
|
||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||
fi \
|
||||
done
|
||||
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/
|
||||
mkdir dist/vim/$(VIMRTDIR)/gettext32
|
||||
cp gettext32/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
cp gettext32/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
cp gettext32/libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
mkdir dist/vim/$(VIMRTDIR)/gettext64
|
||||
cp gettext64/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||
cp gettext64/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||
|
||||
|
||||
# Used before uploading. Don't delete the AAPDIR/sign files!
|
||||
@ -496,7 +500,10 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
|
||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
|
||||
cp gvimext64.dll dist/vim/$(VIMRTDIR)/GvimExt64/gvimext.dll
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
|
||||
cp gvim.pdb dist/gvim$(VERSION).pdb
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
`README.md` for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
[](https://travis-ci.org/vim/vim)
|
||||
[](https://codecov.io/gh/vim/vim?branch=master)
|
||||
[](https://coveralls.io/github/vim/vim?branch=master)
|
||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||
[](https://scan.coverity.com/projects/vim)
|
||||
[](https://buildd.debian.org/vim)
|
||||
|
||||
|
||||
## What is Vim? ##
|
||||
|
@ -16,6 +16,7 @@ matrix:
|
||||
|
||||
before_build:
|
||||
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
|
||||
- 'set INCLUDE=%INCLUDE%C:\Program Files (x86)\Windows Kits\8.1\Include\um'
|
||||
|
||||
build_script:
|
||||
- src/appveyor.bat
|
||||
|
@ -1,5 +1,5 @@
|
||||
This builds a one-click install for Vim for Win32 using the Nullsoft
|
||||
Installation System (NSIS), available at http://www.nullsoft.com/free/nsis/
|
||||
Installation System (NSIS), available at http://nsis.sourceforge.net/
|
||||
|
||||
To build the installable .exe:
|
||||
|
||||
@ -17,8 +17,14 @@ To build the installable .exe:
|
||||
uninstal.exe,
|
||||
xxd/xxd.exe,
|
||||
|
||||
Then execute tools/rename.bat to rename the executables. (mv command is
|
||||
required.)
|
||||
|
||||
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
|
||||
archive).
|
||||
archive). Both 64- and 32-bit versions are needed and should be placed
|
||||
as follows:
|
||||
64-bit: src/GvimExt/gvimext64.dll
|
||||
32-bit: src/GvimExt/gvimext.dll
|
||||
|
||||
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
|
||||
archive).
|
||||
@ -27,13 +33,35 @@ To build the installable .exe:
|
||||
get them from a binary archive).
|
||||
|
||||
6. Get a "diff.exe" program and put it in the "../.." directory (above the
|
||||
"vim61" directory, it's the same for all Vim versions).
|
||||
"vim80" directory, it's the same for all Vim versions).
|
||||
You can find one in previous Vim versions or in this archive:
|
||||
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
||||
Also put winpty32.dll and winpty-agent.exe there.
|
||||
|
||||
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
||||
to do this on Unix. Make sure the file is in DOS file format!
|
||||
|
||||
8. Get gettext and iconv DLLs from the following site:
|
||||
https://github.com/mlocati/gettext-iconv-windows/releases
|
||||
Both 64- and 32-bit versions are needed.
|
||||
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
|
||||
DLLs and place them as follows:
|
||||
|
||||
<GETTEXT directory>
|
||||
|
|
||||
+ gettext32/
|
||||
| libintl-8.dll
|
||||
| libiconv-2.dll
|
||||
| libgcc_s_sjlj-1.dll
|
||||
|
|
||||
` gettext64/
|
||||
libintl-8.dll
|
||||
libiconv-2.dll
|
||||
|
||||
The default <GETTEXT directory> is "..", however, you can change it by
|
||||
passing /DGETTEXT=... option to the makensis command.
|
||||
|
||||
|
||||
Install NSIS if you didn't do that already.
|
||||
Also install UPX, if you want a compressed file.
|
||||
|
||||
|
136
nsis/gvim.nsi
136
nsis/gvim.nsi
@ -20,8 +20,15 @@
|
||||
!define VIMTOOLS ..\..
|
||||
!endif
|
||||
|
||||
# Location of gettext.
|
||||
# It must contain two directories: gettext32 and gettext64.
|
||||
# See README.txt for detail.
|
||||
!ifndef GETTEXT
|
||||
!define GETTEXT ${VIMRT}
|
||||
!endif
|
||||
|
||||
# Comment the next line if you don't have UPX.
|
||||
# Get it at http://upx.sourceforge.net
|
||||
# Get it at https://upx.github.io/
|
||||
!define HAVE_UPX
|
||||
|
||||
# comment the next line if you do not want to add Native Language Support
|
||||
@ -76,6 +83,7 @@ SilentInstall normal
|
||||
# These are the pages we use
|
||||
Page license
|
||||
Page components
|
||||
Page custom SetCustom ValidateCustom ": _vimrc setting"
|
||||
Page directory "" "" CheckInstallDir
|
||||
Page instfiles
|
||||
UninstPage uninstConfirm
|
||||
@ -128,6 +136,10 @@ Function .onInit
|
||||
StrCpy $1 "-register-OLE"
|
||||
StrCpy $2 "gvim evim gview gvimdiff vimtutor"
|
||||
|
||||
# Extract InstallOptions files
|
||||
# $PLUGINSDIR will automatically be removed when the installer closes
|
||||
InitPluginsDir
|
||||
File /oname=$PLUGINSDIR\vimrc.ini "vimrc.ini"
|
||||
FunctionEnd
|
||||
|
||||
Function .onUserAbort
|
||||
@ -256,6 +268,9 @@ Section "Vim executables and runtime files"
|
||||
SetOutPath $0\autoload
|
||||
File ${VIMRT}\autoload\*.*
|
||||
|
||||
SetOutPath $0\autoload\dist
|
||||
File ${VIMRT}\autoload\dist\*.*
|
||||
|
||||
SetOutPath $0\autoload\xml
|
||||
File ${VIMRT}\autoload\xml\*.*
|
||||
|
||||
@ -328,24 +343,67 @@ Section "Add an Edit-with-Vim context menu entry"
|
||||
SetOutPath $0
|
||||
ClearErrors
|
||||
SetOverwrite try
|
||||
|
||||
${If} ${RunningX64}
|
||||
# Install 64-bit gvimext.dll into the GvimExt64 directory.
|
||||
SetOutPath $0\GvimExt64
|
||||
ClearErrors
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
File ${GETTEXT}\gettext64\libintl-8.dll
|
||||
File ${GETTEXT}\gettext64\libiconv-2.dll
|
||||
!endif
|
||||
|
||||
IfErrors 0 GvimExt64Done
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it
|
||||
# on next reboot.
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${GETTEXT}\gettext64\libintl-8.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\libintl-8.dll
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${GETTEXT}\gettext64\libiconv-2.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\libiconv-2.dll
|
||||
!endif
|
||||
${EndIf}
|
||||
IfErrors 0 GvimExtDone
|
||||
|
||||
GvimExt64Done:
|
||||
|
||||
# Install 32-bit gvimext.dll into the GvimExt32 directory.
|
||||
SetOutPath $0\GvimExt32
|
||||
ClearErrors
|
||||
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
File ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
!endif
|
||||
|
||||
IfErrors 0 GvimExt32Done
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||
# next reboot.
|
||||
GetTempFileName $3 $0
|
||||
${If} ${RunningX64}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libintl-8.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libintl-8.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libiconv-2.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libgcc_s_sjlj-1.dll
|
||||
!endif
|
||||
|
||||
GvimExtDone:
|
||||
GvimExt32Done:
|
||||
SetOverwrite lastused
|
||||
|
||||
# We don't have a separate entry for the "Open With..." menu, assume
|
||||
@ -354,7 +412,7 @@ Section "Add an Edit-with-Vim context menu entry"
|
||||
SectionEnd
|
||||
|
||||
##########################################################
|
||||
Section "Create a _vimrc if it doesn't exist"
|
||||
Section "Create a _vimrc if it doesn't exist" sec_vimrc_id
|
||||
SectionIn 1 3
|
||||
|
||||
StrCpy $1 "$1 -create-vimrc"
|
||||
@ -394,10 +452,10 @@ SectionEnd
|
||||
File ${VIMRT}\keymap\README.txt
|
||||
File ${VIMRT}\keymap\*.vim
|
||||
SetOutPath $0
|
||||
File ${VIMRT}\libintl-8.dll
|
||||
File ${VIMRT}\libiconv-2.dll
|
||||
File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
File /nonfatal ${VIMRT}\libgcc_s_sjlj-1.dll
|
||||
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
#File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
File /nonfatal ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
@ -412,6 +470,45 @@ Section -post
|
||||
BringToFront
|
||||
SectionEnd
|
||||
|
||||
##########################################################
|
||||
Function SetCustom
|
||||
# Display the InstallOptions dialog
|
||||
|
||||
# Check if a _vimrc should be created
|
||||
SectionGetFlags ${sec_vimrc_id} $0
|
||||
IntOp $0 $0 & 1
|
||||
StrCmp $0 "1" +2 0
|
||||
Abort
|
||||
|
||||
Push $3
|
||||
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
|
||||
Pop $3
|
||||
Pop $3
|
||||
FunctionEnd
|
||||
|
||||
Function ValidateCustom
|
||||
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 2" "State"
|
||||
StrCmp $3 "1" 0 +3
|
||||
StrCpy $1 "$1 -vimrc-remap no"
|
||||
Goto behave
|
||||
|
||||
StrCpy $1 "$1 -vimrc-remap win"
|
||||
|
||||
behave:
|
||||
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 5" "State"
|
||||
StrCmp $3 "1" 0 +3
|
||||
StrCpy $1 "$1 -vimrc-behave unix"
|
||||
Goto done
|
||||
|
||||
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 6" "State"
|
||||
StrCmp $3 "1" 0 +3
|
||||
StrCpy $1 "$1 -vimrc-behave mswin"
|
||||
Goto done
|
||||
|
||||
StrCpy $1 "$1 -vimrc-behave default"
|
||||
done:
|
||||
FunctionEnd
|
||||
|
||||
##########################################################
|
||||
Section Uninstall
|
||||
# Apparently $INSTDIR is set to the directory where the uninstaller is
|
||||
@ -437,6 +534,11 @@ Section Uninstall
|
||||
$\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
|
||||
|
||||
Delete /REBOOTOK $0\*.dll
|
||||
Delete /REBOOTOK $0\GvimExt32\*.dll
|
||||
${If} ${RunningX64}
|
||||
Delete /REBOOTOK $0\GvimExt64\*.dll
|
||||
${EndIf}
|
||||
|
||||
ClearErrors
|
||||
# Remove everything but *.dll files. Avoids that
|
||||
# a lot remains when gvimext.dll cannot be deleted.
|
||||
|
68
nsis/vimrc.ini
Normal file
68
nsis/vimrc.ini
Normal file
@ -0,0 +1,68 @@
|
||||
[Settings]
|
||||
NumFields=7
|
||||
|
||||
[Field 1]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=0
|
||||
Bottom=53
|
||||
Text=" Key remapping "
|
||||
|
||||
[Field 2]
|
||||
Type=radiobutton
|
||||
Text=Do not remap keys for Windows behavior (Default)
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=17
|
||||
Bottom=25
|
||||
State=1
|
||||
Flags=GROUP
|
||||
|
||||
[Field 3]
|
||||
Type=radiobutton
|
||||
Text=Remap a few keys for Windows behavior (<C-V>, <C-C>, <C-A>, <C-S>, <C-F>, etc)
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=30
|
||||
Bottom=47
|
||||
State=0
|
||||
Flags=NOTABSTOP
|
||||
|
||||
[Field 4]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=55
|
||||
Bottom=-5
|
||||
Text=" Mouse behavior "
|
||||
|
||||
[Field 5]
|
||||
Type=radiobutton
|
||||
Text=Right button extends selection, left button starts visual mode (Unix)
|
||||
Left=10
|
||||
Right=-5
|
||||
Top=72
|
||||
Bottom=80
|
||||
State=0
|
||||
Flags=GROUP
|
||||
|
||||
[Field 6]
|
||||
Type=radiobutton
|
||||
Text=Right button has a popup menu, left button starts select mode (Windows)
|
||||
Left=10
|
||||
Right=-5
|
||||
Top=85
|
||||
Bottom=93
|
||||
State=0
|
||||
Flags=NOTABSTOP
|
||||
|
||||
[Field 7]
|
||||
Type=radiobutton
|
||||
Text=Right button has a popup menu, left button starts visual mode (Default)
|
||||
Left=10
|
||||
Right=-5
|
||||
Top=98
|
||||
Bottom=106
|
||||
State=1
|
||||
Flags=NOTABSTOP
|
@ -591,7 +591,7 @@ function ada#Map_Menu (Text, Keys, Command)
|
||||
\" :" . a:Command
|
||||
execute
|
||||
\ "inoremap <buffer>" .
|
||||
\ " <Learder>a" . a:Keys .
|
||||
\ " <Leader>a" . a:Keys .
|
||||
\" <C-O>:" . a:Command
|
||||
endif
|
||||
return
|
||||
|
745
runtime/autoload/dist/ft.vim
vendored
Normal file
745
runtime/autoload/dist/ft.vim
vendored
Normal file
@ -0,0 +1,745 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Dec 05
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
|
||||
" Line continuation is used here, remove 'C' from 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
func dist#ft#Check_inp()
|
||||
if getline(1) =~ '^\*'
|
||||
setf abaqus
|
||||
else
|
||||
let n = 1
|
||||
if line("$") > 500
|
||||
let nmax = 500
|
||||
else
|
||||
let nmax = line("$")
|
||||
endif
|
||||
while n <= nmax
|
||||
if getline(n) =~? "^header surface data"
|
||||
setf trasys
|
||||
break
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" This function checks for the kind of assembly that is wanted by the user, or
|
||||
" can be detected from the first five lines of the file.
|
||||
func dist#ft#FTasm()
|
||||
" make sure b:asmsyntax exists
|
||||
if !exists("b:asmsyntax")
|
||||
let b:asmsyntax = ""
|
||||
endif
|
||||
|
||||
if b:asmsyntax == ""
|
||||
call dist#ft#FTasmsyntax()
|
||||
endif
|
||||
|
||||
" if b:asmsyntax still isn't set, default to asmsyntax or GNU
|
||||
if b:asmsyntax == ""
|
||||
if exists("g:asmsyntax")
|
||||
let b:asmsyntax = g:asmsyntax
|
||||
else
|
||||
let b:asmsyntax = "asm"
|
||||
endif
|
||||
endif
|
||||
|
||||
exe "setf " . fnameescape(b:asmsyntax)
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTasmsyntax()
|
||||
" see if file contains any asmsyntax=foo overrides. If so, change
|
||||
" b:asmsyntax appropriately
|
||||
let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
|
||||
\" ".getline(5)." "
|
||||
let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
|
||||
if match != ''
|
||||
let b:asmsyntax = match
|
||||
elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
|
||||
let b:asmsyntax = "vmasm"
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Check if one of the first five lines contains "VB_Name". In that case it is
|
||||
" probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype.
|
||||
func dist#ft#FTVB(alt)
|
||||
if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
setf vb
|
||||
else
|
||||
exe "setf " . a:alt
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTbtm()
|
||||
if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
|
||||
setf dosbatch
|
||||
else
|
||||
setf btm
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#BindzoneCheck(default)
|
||||
if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
setf bindzone
|
||||
elseif a:default != ''
|
||||
exe 'setf ' . a:default
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTlpc()
|
||||
if exists("g:lpc_syntax_for_c")
|
||||
let lnum = 1
|
||||
while lnum <= 12
|
||||
if getline(lnum) =~# '^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
|
||||
setf lpc
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
endif
|
||||
setf c
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTheader()
|
||||
if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
|
||||
if exists("g:c_syntax_for_h")
|
||||
setf objc
|
||||
else
|
||||
setf objcpp
|
||||
endif
|
||||
elseif exists("g:c_syntax_for_h")
|
||||
setf c
|
||||
elseif exists("g:ch_syntax_for_h")
|
||||
setf ch
|
||||
else
|
||||
setf cpp
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" This function checks if one of the first ten lines start with a '@'. In
|
||||
" that case it is probably a change file.
|
||||
" If the first line starts with # or ! it's probably a ch file.
|
||||
" If a line has "main", "include", "//" ir "/*" it's probably ch.
|
||||
" Otherwise CHILL is assumed.
|
||||
func dist#ft#FTchange()
|
||||
let lnum = 1
|
||||
while lnum <= 10
|
||||
if getline(lnum)[0] == '@'
|
||||
setf change
|
||||
return
|
||||
endif
|
||||
if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
|
||||
setf ch
|
||||
return
|
||||
endif
|
||||
if getline(lnum) =~ "MODULE"
|
||||
setf chill
|
||||
return
|
||||
endif
|
||||
if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
|
||||
setf ch
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
setf chill
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTent()
|
||||
" This function checks for valid cl syntax in the first five lines.
|
||||
" Look for either an opening comment, '#', or a block start, '{".
|
||||
" If not found, assume SGML.
|
||||
let lnum = 1
|
||||
while lnum < 6
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*[#{]'
|
||||
setf cl
|
||||
return
|
||||
elseif line !~ '^\s*$'
|
||||
" Not a blank line, not a comment, and not a block start,
|
||||
" so doesn't look like valid cl code.
|
||||
break
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endw
|
||||
setf dtd
|
||||
endfunc
|
||||
|
||||
func dist#ft#EuphoriaCheck()
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
else
|
||||
setf euphoria3
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#DtraceCheck()
|
||||
let lines = getline(1, min([line("$"), 100]))
|
||||
if match(lines, '^module\>\|^import\>') > -1
|
||||
" D files often start with a module and/or import statement.
|
||||
setf d
|
||||
elseif match(lines, '^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
|
||||
setf dtrace
|
||||
else
|
||||
setf d
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTe()
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
else
|
||||
let n = 1
|
||||
while n < 100 && n < line("$")
|
||||
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
|
||||
setf specman
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf eiffel
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Distinguish between HTML, XHTML and Django
|
||||
func dist#ft#FThtml()
|
||||
let n = 1
|
||||
while n < 10 && n < line("$")
|
||||
if getline(n) =~ '\<DTD\s\+XHTML\s'
|
||||
setf xhtml
|
||||
return
|
||||
endif
|
||||
if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
|
||||
setf htmldjango
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf html
|
||||
endfunc
|
||||
|
||||
" Distinguish between standard IDL and MS-IDL
|
||||
func dist#ft#FTidl()
|
||||
let n = 1
|
||||
while n < 50 && n < line("$")
|
||||
if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
|
||||
setf msidl
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf idl
|
||||
endfunc
|
||||
|
||||
" Distinguish between "default" and Cproto prototype file. */
|
||||
func dist#ft#ProtoCheck(default)
|
||||
" Cproto files have a comment in the first line and a function prototype in
|
||||
" the second line, it always ends in ";". Indent files may also have
|
||||
" comments, thus we can't match comments to see the difference.
|
||||
" IDL files can have a single ';' in the second line, require at least one
|
||||
" chacter before the ';'.
|
||||
if getline(2) =~ '.;$'
|
||||
setf cpp
|
||||
else
|
||||
exe 'setf ' . a:default
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTm()
|
||||
let n = 1
|
||||
let saw_comment = 0 " Whether we've seen a multiline comment leader.
|
||||
while n < 100
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*/\*'
|
||||
" /* ... */ is a comment in Objective C and Murphi, so we can't conclude
|
||||
" it's either of them yet, but track this as a hint in case we don't see
|
||||
" anything more definitive.
|
||||
let saw_comment = 1
|
||||
endif
|
||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
|
||||
setf objc
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*%'
|
||||
setf matlab
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*(\*'
|
||||
setf mma
|
||||
return
|
||||
endif
|
||||
if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
|
||||
setf murphi
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
|
||||
if saw_comment
|
||||
" We didn't see anything definitive, but this looks like either Objective C
|
||||
" or Murphi based on the comment leader. Assume the former as it is more
|
||||
" common.
|
||||
setf objc
|
||||
elseif exists("g:filetype_m")
|
||||
" Use user specified default filetype for .m
|
||||
exe "setf " . g:filetype_m
|
||||
else
|
||||
" Default is matlab
|
||||
setf matlab
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTmms()
|
||||
let n = 1
|
||||
while n < 10
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
|
||||
setf mmix
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*#'
|
||||
setf make
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf mmix
|
||||
endfunc
|
||||
|
||||
" This function checks if one of the first five lines start with a dot. In
|
||||
" that case it is probably an nroff file: 'filetype' is set and 1 is returned.
|
||||
func dist#ft#FTnroff()
|
||||
if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.'
|
||||
setf nroff
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTmm()
|
||||
let n = 1
|
||||
while n < 10
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
setf objcpp
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf nroff
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTpl()
|
||||
if exists("g:filetype_pl")
|
||||
exe "setf " . g:filetype_pl
|
||||
else
|
||||
" recognize Prolog by specific text in the first non-empty line
|
||||
" require a blank after the '%' because Perl uses "%list" and "%translate"
|
||||
let l = getline(nextnonblank(1))
|
||||
if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
|
||||
setf prolog
|
||||
else
|
||||
setf perl
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTinc()
|
||||
if exists("g:filetype_inc")
|
||||
exe "setf " . g:filetype_inc
|
||||
else
|
||||
let lines = getline(1).getline(2).getline(3)
|
||||
if lines =~? "perlscript"
|
||||
setf aspperl
|
||||
elseif lines =~ "<%"
|
||||
setf aspvbs
|
||||
elseif lines =~ "<?"
|
||||
setf php
|
||||
else
|
||||
call dist#ft#FTasmsyntax()
|
||||
if exists("b:asmsyntax")
|
||||
exe "setf " . fnameescape(b:asmsyntax)
|
||||
else
|
||||
setf pov
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTprogress_cweb()
|
||||
if exists("g:filetype_w")
|
||||
exe "setf " . g:filetype_w
|
||||
return
|
||||
endif
|
||||
if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
|
||||
setf progress
|
||||
else
|
||||
setf cweb
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTprogress_asm()
|
||||
if exists("g:filetype_i")
|
||||
exe "setf " . g:filetype_i
|
||||
return
|
||||
endif
|
||||
" This function checks for an assembly comment the first ten lines.
|
||||
" If not found, assume Progress.
|
||||
let lnum = 1
|
||||
while lnum <= 10 && lnum < line('$')
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*;' || line =~ '^\*'
|
||||
call dist#ft#FTasm()
|
||||
return
|
||||
elseif line !~ '^\s*$' || line =~ '^/\*'
|
||||
" Not an empty line: Doesn't look like valid assembly code.
|
||||
" Or it looks like a Progress /* comment
|
||||
break
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endw
|
||||
setf progress
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTprogress_pascal()
|
||||
if exists("g:filetype_p")
|
||||
exe "setf " . g:filetype_p
|
||||
return
|
||||
endif
|
||||
" This function checks for valid Pascal syntax in the first ten lines.
|
||||
" Look for either an opening comment or a program start.
|
||||
" If not found, assume Progress.
|
||||
let lnum = 1
|
||||
while lnum <= 10 && lnum < line('$')
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
|
||||
\ || line =~ '^\s*{' || line =~ '^\s*(\*'
|
||||
setf pascal
|
||||
return
|
||||
elseif line !~ '^\s*$' || line =~ '^/\*'
|
||||
" Not an empty line: Doesn't look like valid Pascal code.
|
||||
" Or it looks like a Progress /* comment
|
||||
break
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endw
|
||||
setf progress
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTr()
|
||||
let max = line("$") > 50 ? 50 : line("$")
|
||||
|
||||
for n in range(1, max)
|
||||
" Rebol is easy to recognize, check for that first
|
||||
if getline(n) =~? '\<REBOL\>'
|
||||
setf rebol
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
|
||||
for n in range(1, max)
|
||||
" R has # comments
|
||||
if getline(n) =~ '^\s*#'
|
||||
setf r
|
||||
return
|
||||
endif
|
||||
" Rexx has /* comments */
|
||||
if getline(n) =~ '^\s*/\*'
|
||||
setf rexx
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Nothing recognized, use user default or assume Rexx
|
||||
if exists("g:filetype_r")
|
||||
exe "setf " . g:filetype_r
|
||||
else
|
||||
" Rexx used to be the default, but R appears to be much more popular.
|
||||
setf r
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#McSetf()
|
||||
" Rely on the file to start with a comment.
|
||||
" MS message text files use ';', Sendmail files use '#' or 'dnl'
|
||||
for lnum in range(1, min([line("$"), 20]))
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*\(#\|dnl\)'
|
||||
setf m4 " Sendmail .mc file
|
||||
return
|
||||
elseif line =~ '^\s*;'
|
||||
setf msmessages " MS Message text file
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
setf m4 " Default: Sendmail .mc file
|
||||
endfunc
|
||||
|
||||
" Called from filetype.vim and scripts.vim.
|
||||
func dist#ft#SetFileTypeSH(name)
|
||||
if expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return
|
||||
endif
|
||||
if a:name =~ '\<csh\>'
|
||||
" Some .sh scripts contain #!/bin/csh.
|
||||
call dist#ft#SetFileTypeShell("csh")
|
||||
return
|
||||
elseif a:name =~ '\<tcsh\>'
|
||||
" Some .sh scripts contain #!/bin/tcsh.
|
||||
call dist#ft#SetFileTypeShell("tcsh")
|
||||
return
|
||||
elseif a:name =~ '\<zsh\>'
|
||||
" Some .sh scripts contain #!/bin/zsh.
|
||||
call dist#ft#SetFileTypeShell("zsh")
|
||||
return
|
||||
elseif a:name =~ '\<ksh\>'
|
||||
let b:is_kornshell = 1
|
||||
if exists("b:is_bash")
|
||||
unlet b:is_bash
|
||||
endif
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~ '\<bash2\>'
|
||||
let b:is_bash = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
endif
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif a:name =~ '\<sh\>'
|
||||
let b:is_sh = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
endif
|
||||
if exists("b:is_bash")
|
||||
unlet b:is_bash
|
||||
endif
|
||||
endif
|
||||
call dist#ft#SetFileTypeShell("sh")
|
||||
endfunc
|
||||
|
||||
" For shell-like file types, check for an "exec" command hidden in a comment,
|
||||
" as used for Tcl.
|
||||
" Also called from scripts.vim, thus can't be local to this script.
|
||||
func dist#ft#SetFileTypeShell(name)
|
||||
if expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return
|
||||
endif
|
||||
let l = 2
|
||||
while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
|
||||
" Skip empty and comment lines.
|
||||
let l = l + 1
|
||||
endwhile
|
||||
if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
|
||||
" Found an "exec" line after a comment with continuation
|
||||
let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
|
||||
if n =~ '\<tclsh\|\<wish'
|
||||
setf tcl
|
||||
return
|
||||
endif
|
||||
endif
|
||||
exe "setf " . a:name
|
||||
endfunc
|
||||
|
||||
func dist#ft#CSH()
|
||||
if exists("g:filetype_csh")
|
||||
call dist#ft#SetFileTypeShell(g:filetype_csh)
|
||||
elseif &shell =~ "tcsh"
|
||||
call dist#ft#SetFileTypeShell("tcsh")
|
||||
else
|
||||
call dist#ft#SetFileTypeShell("csh")
|
||||
endif
|
||||
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\)$'
|
||||
setf udevrules
|
||||
return
|
||||
endif
|
||||
if path =~ '^/etc/ufw/'
|
||||
setf conf " Better than hog
|
||||
return
|
||||
endif
|
||||
if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
|
||||
setf javascript
|
||||
return
|
||||
endif
|
||||
try
|
||||
let config_lines = readfile('/etc/udev/udev.conf')
|
||||
catch /^Vim\%((\a\+)\)\=:E484/
|
||||
setf hog
|
||||
return
|
||||
endtry
|
||||
let dir = expand('<amatch>:p:h')
|
||||
for line in config_lines
|
||||
if line =~ s:ft_rules_udev_rules_pattern
|
||||
let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
|
||||
if dir == udev_rules
|
||||
setf udevrules
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
setf hog
|
||||
endfunc
|
||||
|
||||
func dist#ft#SQL()
|
||||
if exists("g:filetype_sql")
|
||||
exe "setf " . g:filetype_sql
|
||||
else
|
||||
setf sql
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" If the file has an extension of 't' and is in a directory 't' or 'xt' then
|
||||
" it is almost certainly a Perl test file.
|
||||
" If the first line starts with '#' and contains 'perl' it's probably a Perl
|
||||
" file.
|
||||
" (Slow test) If a file contains a 'use' statement then it is almost certainly
|
||||
" a Perl file.
|
||||
func dist#ft#FTperl()
|
||||
let dirname = expand("%:p:h:t")
|
||||
if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
if getline(1)[0] == '#' && getline(1) =~ 'perl'
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
let save_cursor = getpos('.')
|
||||
call cursor(1,1)
|
||||
let has_use = search('^use\s\s*\k', 'c', 30)
|
||||
call setpos('.', save_cursor)
|
||||
if has_use
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
" Choose context, plaintex, or tex (LaTeX) based on these rules:
|
||||
" 1. Check the first line of the file for "%&<format>".
|
||||
" 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
|
||||
" 3. Default to "latex" or to g:tex_flavor, can be set in user's vimrc.
|
||||
func dist#ft#FTtex()
|
||||
let firstline = getline(1)
|
||||
if firstline =~ '^%&\s*\a\+'
|
||||
let format = tolower(matchstr(firstline, '\a\+'))
|
||||
let format = substitute(format, 'pdf', '', '')
|
||||
if format == 'tex'
|
||||
let format = 'latex'
|
||||
elseif format == 'plaintex'
|
||||
let format = 'plain'
|
||||
endif
|
||||
elseif expand('%') =~ 'tex/context/.*/.*.tex'
|
||||
let format = 'context'
|
||||
else
|
||||
" Default value, may be changed later:
|
||||
let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
|
||||
" Save position, go to the top of the file, find first non-comment line.
|
||||
let save_cursor = getpos('.')
|
||||
call cursor(1,1)
|
||||
let firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
|
||||
if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword.
|
||||
let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
|
||||
let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
|
||||
let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)',
|
||||
\ 'cnp', firstNC + 1000)
|
||||
if kwline == 1 " lpat matched
|
||||
let format = 'latex'
|
||||
elseif kwline == 2 " cpat matched
|
||||
let format = 'context'
|
||||
endif " If neither matched, keep default set above.
|
||||
" let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
|
||||
" let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
|
||||
" if cline > 0
|
||||
" let format = 'context'
|
||||
" endif
|
||||
" if lline > 0 && (cline == 0 || cline > lline)
|
||||
" let format = 'tex'
|
||||
" endif
|
||||
endif " firstNC
|
||||
call setpos('.', save_cursor)
|
||||
endif " firstline =~ '^%&\s*\a\+'
|
||||
|
||||
" Translation from formats to file types. TODO: add AMSTeX, RevTex, others?
|
||||
if format == 'plain'
|
||||
setf plaintex
|
||||
elseif format == 'context'
|
||||
setf context
|
||||
else " probably LaTeX
|
||||
setf tex
|
||||
endif
|
||||
return
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTxml()
|
||||
let n = 1
|
||||
while n < 100 && n < line("$")
|
||||
let line = getline(n)
|
||||
" DocBook 4 or DocBook 5.
|
||||
let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
|
||||
let is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
|
||||
if is_docbook4 || is_docbook5
|
||||
let b:docbk_type = "xml"
|
||||
if is_docbook5
|
||||
let b:docbk_ver = 5
|
||||
else
|
||||
let b:docbk_ver = 4
|
||||
endif
|
||||
setf docbk
|
||||
return
|
||||
endif
|
||||
if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
|
||||
setf xbl
|
||||
return
|
||||
endif
|
||||
let n += 1
|
||||
endwhile
|
||||
setf xml
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTy()
|
||||
let n = 1
|
||||
while n < 100 && n < line("$")
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*%'
|
||||
setf yacc
|
||||
return
|
||||
endif
|
||||
if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
|
||||
setf racc
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf yacc
|
||||
endfunc
|
||||
|
||||
func dist#ft#Redif()
|
||||
let lnum = 1
|
||||
while lnum <= 5 && lnum < line('$')
|
||||
if getline(lnum) =~ "^\ctemplate-type:"
|
||||
setf redif
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
endfunc
|
||||
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -22,8 +22,8 @@
|
||||
if &cp || exists("g:loaded_netrw")
|
||||
finish
|
||||
endif
|
||||
" netrw requires vim having patch 7.4.213; netrw will benefit from vim's having patch#656, too
|
||||
if v:version < 704 || (v:version == 704 && !has("patch213"))
|
||||
" netrw requires vim having patch 213; netrw will benefit from vim's having patch#656, too
|
||||
if v:version < 704 || !has("patch213")
|
||||
if !exists("s:needpatch213")
|
||||
unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213"
|
||||
endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim support file to help with paste mappings and menus
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2006 Jun 23
|
||||
" Last Change: 2017 Aug 30
|
||||
|
||||
" Define the string to use for items that are present both in Edit, Popup and
|
||||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||||
@ -12,7 +12,7 @@
|
||||
if has("virtualedit")
|
||||
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
|
||||
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
|
||||
let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi'
|
||||
let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
|
||||
|
||||
func! paste#Paste()
|
||||
let ove = &ve
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: SQL
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 16.0
|
||||
" Last Change: 2015 Dec 29
|
||||
" Last Change: 2017 Oct 15
|
||||
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
|
||||
" Usage: For detailed help
|
||||
" ":help sql.txt"
|
||||
@ -860,7 +860,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
" Start characterwise visual mode
|
||||
" Advance right one character
|
||||
" Search foward until one of the following:
|
||||
" Search forward until one of the following:
|
||||
" 1. Another select/update/delete statement
|
||||
" 2. A ; at the end of a line (the delimiter)
|
||||
" 3. The end of the file (incase no delimiter)
|
||||
|
@ -64,6 +64,7 @@ Search for "highlight_init".
|
||||
If you think you have a color scheme that is good enough to be used by others,
|
||||
please check the following items:
|
||||
|
||||
- Source the tools/check_colors.vim script to check for common mistakes.
|
||||
- Does it work in a color terminal as well as in the GUI?
|
||||
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do
|
||||
it this way:
|
||||
|
136
runtime/colors/tools/check_colors.vim
Normal file
136
runtime/colors/tools/check_colors.vim
Normal file
@ -0,0 +1,136 @@
|
||||
" This script tests a color scheme for some errors. Load the scheme and source
|
||||
" this script. e.g. :e colors/desert.vim | :so test_colors.vim
|
||||
" Will output possible errors.
|
||||
|
||||
let s:save_cpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
func! Test_check_colors()
|
||||
call cursor(1,1)
|
||||
let err={}
|
||||
|
||||
" 1) Check g:colors_name is existing
|
||||
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
|
||||
let err['colors_name'] = 'g:colors_name not set'
|
||||
else
|
||||
let err['colors_name'] = 'OK'
|
||||
endif
|
||||
|
||||
" 2) Check for some well-defined highlighting groups
|
||||
" Some items, check several groups, e.g. Diff, Spell
|
||||
let hi_groups = ['ColorColumn', 'Diff', 'ErrorMsg', 'Folded',
|
||||
\ 'FoldColumn', 'IncSearch', 'LineNr', 'ModeMsg', 'MoreMsg', 'NonText',
|
||||
\ 'Normal', 'Pmenu', 'Todo', 'Search', 'Spell', 'StatusLine', 'TabLine',
|
||||
\ 'Title', 'Visual', 'WarningMsg', 'WildMenu']
|
||||
let groups={}
|
||||
for group in hi_groups
|
||||
if search('\c@suppress\s\+'.group, 'cnW')
|
||||
" skip check, if the script contains a line like
|
||||
" @suppress Visual:
|
||||
let groups[group] = 'Ignoring '.group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group, 'cnW')
|
||||
let groups[group] = 'No highlight definition for '.group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group. '.*fg=', 'cnW')
|
||||
let groups[group] = 'Missing foreground color for '.group
|
||||
continue
|
||||
endif
|
||||
if search('hi\%[ghlight] \+'.group. '.*guibg=', 'cnW') &&
|
||||
\ !search('hi\%[ghlight] \+'.group. '.*ctermbg=', 'cnW')
|
||||
let groups[group] = 'Missing bg terminal color for '.group
|
||||
continue
|
||||
endif
|
||||
call search('hi\%[ghlight] \+'.group, 'cW')
|
||||
" only check in the current line
|
||||
if !search('guifg', 'cnW', line('.')) || !search('ctermfg', 'cnW', line('.'))
|
||||
" do not check for background colors, they could be intentionally left out
|
||||
let groups[group] = 'Missing fg definition for '.group
|
||||
endif
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
let err['highlight'] = groups
|
||||
|
||||
" 3) Check, that it does not set background highlighting
|
||||
" Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
|
||||
let bg_set='\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
|
||||
let bg_let='let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
|
||||
let bg_pat='\%('.bg_set. '\|'.bg_let.'\)'
|
||||
let line=search(bg_pat, 'cnW')
|
||||
if search(bg_pat, 'cnW')
|
||||
exe line
|
||||
if search('hi \U\w\+\s\+\S', 'cbnW')
|
||||
let err['background'] = 'Should not set background option after :hi statement'
|
||||
endif
|
||||
else
|
||||
let err['background'] = 'OK'
|
||||
endif
|
||||
call cursor(1,1)
|
||||
|
||||
" 4) Check, that t_Co is checked
|
||||
let pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
|
||||
if !search(pat, 'ncW')
|
||||
let err['t_Co'] = 'Does not check terminal for capable colors'
|
||||
endif
|
||||
|
||||
" 5) Initializes correctly, e.g. should have a section like
|
||||
" hi clear
|
||||
" if exists("syntax_on")
|
||||
" syntax reset
|
||||
" endif
|
||||
let pat='hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif'
|
||||
if !search(pat, 'cnW')
|
||||
let err['init'] = 'No initialization'
|
||||
endif
|
||||
|
||||
" 6) Does not use :syn on
|
||||
if search('syn\%[tax]\s\+on', 'cnW')
|
||||
let err['background'] = 'Should not issue :syn on'
|
||||
endif
|
||||
|
||||
" 7) Does not define filetype specfic groups like vimCommand, htmlTag,
|
||||
let hi_groups = ['vim', 'html', 'python', 'sh', 'ruby']
|
||||
for group in hi_groups
|
||||
let pat='\Chi\%[ghlight]\s*\zs'.group.'\w\+\>'
|
||||
if search(pat, 'cnW')
|
||||
let line = search(pat, 'cW')
|
||||
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
|
||||
endif
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
let g:err = err
|
||||
|
||||
" print Result
|
||||
call Result(err)
|
||||
endfu
|
||||
|
||||
fu! Result(err)
|
||||
let do_roups = 0
|
||||
echohl Title|echomsg "---------------"|echohl Normal
|
||||
for key in sort(keys(a:err))
|
||||
if key is# 'highlight'
|
||||
let do_groups = 1
|
||||
continue
|
||||
else
|
||||
if a:err[key] !~ 'OK'
|
||||
echohl Title
|
||||
endif
|
||||
echomsg printf("%15s: %s", key, a:err[key])
|
||||
echohl Normal
|
||||
endif
|
||||
endfor
|
||||
echohl Title|echomsg "---------------"|echohl Normal
|
||||
if do_groups
|
||||
echohl Title | echomsg "Groups" | echohl Normal
|
||||
for v1 in sort(keys(a:err['highlight']))
|
||||
echomsg printf("%25s: %s", v1, a:err['highlight'][v1])
|
||||
endfor
|
||||
endif
|
||||
endfu
|
||||
|
||||
call Test_check_colors()
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
@ -343,7 +343,7 @@ xxd.man: xxd.1
|
||||
nroff -man xxd.1 | sed -e s/.//g > xxd.man
|
||||
|
||||
uganda.nsis.txt: uganda.txt
|
||||
sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78://' \
|
||||
sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78:.*//' \
|
||||
uganda.txt | uniq >uganda.nsis.txt
|
||||
|
||||
# Awk version of .txt to .html conversion.
|
||||
@ -375,6 +375,10 @@ tags.ref tags.html: tags
|
||||
perlhtml: tags $(DOCS)
|
||||
./vim2html.pl tags $(DOCS)
|
||||
|
||||
# Check URLs in the help with "curl".
|
||||
test_urls:
|
||||
vim -S test_urls.vim
|
||||
|
||||
clean:
|
||||
-rm doctags *.html tags.ref
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jul 14
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -68,7 +68,14 @@ Note: The ":autocmd" command can only be followed by another command when the
|
||||
'|' appears before {cmd}. This works: >
|
||||
:augroup mine | au! BufRead | augroup END
|
||||
But this sees "augroup" as part of the defined command: >
|
||||
:augroup mine | au! BufRead * | augroup END
|
||||
:augroup mine | au BufRead * set tw=70 | augroup END
|
||||
Instead you can put the group name into the command: >
|
||||
:au! mine BufRead *
|
||||
:au mine BufRead * set tw=70
|
||||
Or use `:execute`: >
|
||||
:augroup mine | exe "au! BufRead *" | augroup END
|
||||
:augroup mine | exe "au BufRead * set tw=70" | augroup END
|
||||
|
||||
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
|
||||
arguments are not expanded when the autocommand is defined. These will be
|
||||
@ -323,6 +330,7 @@ Name triggered by ~
|
||||
|
||||
|TextChanged| after a change was made to the text in Normal mode
|
||||
|TextChangedI| after a change was made to the text in Insert mode
|
||||
|TextYankPost| after text is yanked or deleted
|
||||
|
||||
|ColorScheme| after loading a color scheme
|
||||
|
||||
@ -492,6 +500,22 @@ CmdUndefined When a user command is used but it isn't
|
||||
command is defined. An alternative is to
|
||||
always define the user command and have it
|
||||
invoke an autoloaded function. See |autoload|.
|
||||
*CmdlineEnter*
|
||||
CmdlineEnter After moving the cursor to the command line,
|
||||
where the user can type a command or search
|
||||
string.
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdlineLeave*
|
||||
CmdlineLeave Before leaving the command line.
|
||||
Also when abandoning the command line, after
|
||||
typing CTRL-C or <Esc>.
|
||||
When the commands result in an error the
|
||||
command line is still executed.
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdwinEnter*
|
||||
CmdwinEnter After entering the command-line window.
|
||||
Useful for setting options specifically for
|
||||
@ -933,6 +957,25 @@ TextChangedI After a change was made to the text in the
|
||||
current buffer in Insert mode.
|
||||
Not triggered when the popup menu is visible.
|
||||
Otherwise the same as TextChanged.
|
||||
*TextYankPost*
|
||||
TextYankPost After text has been yanked or deleted in the
|
||||
current buffer. The following values of
|
||||
|v:event| can be used to determine the operation
|
||||
that triggered this autocmd:
|
||||
operator The operation performed.
|
||||
regcontents Text that was stored in the
|
||||
register, as a list of lines,
|
||||
like with: >
|
||||
getreg(r, 1, 1)
|
||||
< regname Name of the |register| or
|
||||
empty string for the unnamed
|
||||
register.
|
||||
regtype Type of the register, see
|
||||
|getregtype()|.
|
||||
Not triggered when |quote_| is used nor when
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|.
|
||||
*User*
|
||||
User Never executed automatically. To be used for
|
||||
autocommands that are only executed with
|
||||
|
@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2017 Jul 11
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2017 Oct 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -826,6 +826,7 @@ Also see |`=|.
|
||||
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
||||
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
||||
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
||||
*:<cexpr>* *<cexpr>*
|
||||
*<slnum>* *E495* *E496* *E497* *E499* *E500*
|
||||
Note: these are typed literally, they are not special keys!
|
||||
<cword> is replaced with the word under the cursor (like |star|)
|
||||
@ -838,7 +839,8 @@ Note: these are typed literally, they are not special keys!
|
||||
<cfile> is replaced with the path name under the cursor (like what
|
||||
|gf| uses)
|
||||
<afile> When executing autocommands, is replaced with the file name
|
||||
for a file read or write.
|
||||
of the buffer being manipulated, or the file for a read or
|
||||
write.
|
||||
<abuf> When executing autocommands, is replaced with the currently
|
||||
effective buffer number (for ":r file" and ":so file" it is
|
||||
the current buffer, the file being read/sourced is not in a
|
||||
|
@ -1,4 +1,4 @@
|
||||
*debugger.txt* For Vim version 8.0. Last change: 2005 Mar 29
|
||||
*debugger.txt* For Vim version 8.0. Last change: 2017 Nov 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@ -95,10 +95,12 @@ list and colors can be set via X resources (XmNballoonEvalFontList,
|
||||
XmNballoonEvalBackground, and XmNballoonEvalForeground).
|
||||
The 'balloondelay' option sets the delay before an attempt is made to show a
|
||||
balloon.
|
||||
The 'ballooneval' option needs to be set to switch it on.
|
||||
The 'ballooneval' and/or the 'balloonevalterm' option needs to be set to
|
||||
switch it on.
|
||||
|
||||
Balloon evaluation is only available when compiled with the |+balloon_eval|
|
||||
feature.
|
||||
Balloon evaluation is only available in the GUI when compiled with the
|
||||
|+balloon_eval| feature. For the terminal the |+balloon_eval_term| feature
|
||||
matters.
|
||||
|
||||
The Balloon evaluation functions are also used to show a tooltip for the
|
||||
toolbar. The 'ballooneval' option does not need to be set for this. But the
|
||||
|
@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 8.0. Last change: 2017 Feb 03
|
||||
*diff.txt* For Vim version 8.0. Last change: 2017 Oct 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -10,7 +10,7 @@ eight versions of the same file.
|
||||
|
||||
The basics are explained in section |08.7| of the user manual.
|
||||
|
||||
1. Starting diff mode |vimdiff|
|
||||
1. Starting diff mode |start-vimdiff|
|
||||
2. Viewing diffs |view-diffs|
|
||||
3. Jumping to diffs |jumpto-diffs|
|
||||
4. Copying diffs |copy-diffs|
|
||||
@ -19,7 +19,7 @@ The basics are explained in section |08.7| of the user manual.
|
||||
{not in Vi}
|
||||
|
||||
==============================================================================
|
||||
1. Starting diff mode
|
||||
1. Starting diff mode *start-vimdiff*
|
||||
|
||||
The easiest way to start editing in diff mode is with the "vimdiff" command.
|
||||
This starts Vim as usual, and additionally sets up for viewing the differences
|
||||
@ -226,8 +226,8 @@ The diffs are highlighted with these groups:
|
||||
(searching from the end of the line). The
|
||||
text in between is highlighted. This means
|
||||
that parts in the middle that are still the
|
||||
same are highlighted anyway. Only "iwhite" of
|
||||
'diffopt' is used here.
|
||||
same are highlighted anyway. The 'diffopt'
|
||||
flags "iwhite" and "icase" are used here.
|
||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||
because they don't really exist in this
|
||||
buffer.
|
||||
@ -326,7 +326,7 @@ g:diff_translations to zero: >
|
||||
|
||||
let g:diff_translations = 0
|
||||
<
|
||||
After setting this variable, Reload the syntax script: >
|
||||
After setting this variable, reload the syntax script: >
|
||||
|
||||
set syntax=diff
|
||||
<
|
||||
|
@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.0. Last change: 2017 Aug 21
|
||||
*editing.txt* For Vim version 8.0. Last change: 2017 Nov 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -900,7 +900,7 @@ Note: When the 'write' option is off, you are not able to write any file.
|
||||
|
||||
*:w* *:write*
|
||||
*E502* *E503* *E504* *E505*
|
||||
*E512* *E514* *E667* *E796*
|
||||
*E512* *E514* *E667* *E796* *E949*
|
||||
:w[rite] [++opt] Write the whole buffer to the current file. This is
|
||||
the normal way to save changes to a file. It fails
|
||||
when the 'readonly' option is set or when there is
|
||||
@ -956,6 +956,9 @@ used, for example, when the write fails and you want to try again later with
|
||||
":w #". This can be switched off by removing the 'A' flag from the
|
||||
'cpoptions' option.
|
||||
|
||||
Note that the 'fsync' option matters here. If it's set it may make writes
|
||||
slower (but safer).
|
||||
|
||||
*:sav* *:saveas*
|
||||
:sav[eas][!] [++opt] {file}
|
||||
Save the current buffer under the name {file} and set
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Mar 28
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Dec 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -43,7 +43,7 @@ Detail: The ":filetype on" command will load one of these files:
|
||||
BufNewFile and BufRead events. If the file type is not found by the
|
||||
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
|
||||
contents of the file.
|
||||
When the GUI is running or will start soon, the menu.vim script is
|
||||
When the GUI is running or will start soon, the |menu.vim| script is
|
||||
also sourced. See |'go-M'| about avoiding that.
|
||||
|
||||
To add your own file types, see |new-filetype| below. To search for help on a
|
||||
@ -602,11 +602,12 @@ MANPAGER *manpager.vim*
|
||||
The :Man command allows you to turn Vim into a manpager (that syntax highlights
|
||||
manpages and follows linked manpages on hitting CTRL-]).
|
||||
|
||||
Works on:
|
||||
Tested on:
|
||||
|
||||
- Linux
|
||||
- Mac OS
|
||||
- FreeBSD
|
||||
- OpenBSD
|
||||
- Cygwin
|
||||
- Win 10 under Bash
|
||||
|
||||
@ -616,21 +617,36 @@ Untested:
|
||||
- BeOS
|
||||
- OS/2
|
||||
|
||||
For bash,zsh,ksh or dash by adding to the config file (.bashrc,.zshrc, ...)
|
||||
If man sets the $MAN_PN environment variable, like man-db, the most common
|
||||
implementation on Linux, then the "env MAN_PN=1 " part below should NOT be
|
||||
set, that is, the "env MAN_PN=1" should be omitted! Otherwise, the Vim
|
||||
manpager does not correctly recognize manpages whose title contains a capital
|
||||
letter. See the discussion on
|
||||
|
||||
https://groups.google.com/forum/#!topic/vim_dev/pWZmt_7GkxI
|
||||
|
||||
For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
For (t)csh by adding to the config file
|
||||
For (t)csh, add to the config file
|
||||
|
||||
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
For fish by adding to the config file
|
||||
For fish, add to the config file
|
||||
|
||||
set -x MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
If man sets the $MAN_PN environment variable, like man-db, the most common
|
||||
implementation on Linux and Mac OS, then the "env MAN_PN=1 " part above is
|
||||
superfluous.
|
||||
On OpenBSD:
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
|
||||
|
||||
If you experience still issues on manpages whose titles do not contain capital
|
||||
letters, then try adding MANPATH=${MANPATH} after MAN_PN=1. If your manpages do
|
||||
not show up localized, then try adding, LANGUAGE=${LANG} after MAN_PN=1. See
|
||||
|
||||
https://github.com/vim/vim/issues/1002
|
||||
|
||||
|
||||
PDF *ft-pdf-plugin*
|
||||
|
||||
@ -690,4 +706,23 @@ You can change the default by defining the variable g:tex_flavor to the format
|
||||
Currently no other formats are recognized.
|
||||
|
||||
|
||||
VIM *ft-vim-plugin*
|
||||
|
||||
The Vim filetype plugin defines mappings to move to the start and end of
|
||||
functions with [[ and ]]. Move around comments with ]" and [".
|
||||
|
||||
The mappings can be disabled with: >
|
||||
let g:no_vim_maps = 1
|
||||
|
||||
|
||||
ZIMBU *ft-zimbu-plugin*
|
||||
|
||||
The Zimbu filetype plugin defines mappings to move to the start and end of
|
||||
functions with [[ and ]].
|
||||
|
||||
The mappings can be disabled with: >
|
||||
let g:no_zimbu_maps = 1
|
||||
<
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
@ -199,7 +199,7 @@ COMMANDS *rust-commands*
|
||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||
"https://play.rust-lang.org/".
|
||||
|
||||
|g:rust_shortener_url| is the base URL for the shorterner, by
|
||||
|g:rust_shortener_url| is the base URL for the shortener, by
|
||||
default "https://is.gd/"
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 8.0. Last change: 2017 Sep 16
|
||||
*gui.txt* For Vim version 8.0. Last change: 2017 Nov 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -162,7 +162,7 @@ window Vim is running in with these commands: >
|
||||
*gui-IME* *iBus*
|
||||
Input methods for international characters in X that rely on the XIM
|
||||
framework, most notably iBus, have been known to produce undesirable results
|
||||
in gVim. These may include an inability to enter spaces, or long delays
|
||||
in gvim. These may include an inability to enter spaces, or long delays
|
||||
between typing a character and it being recognized by the application.
|
||||
|
||||
One workaround that has been successful, for unknown reasons, is to prevent
|
||||
@ -482,6 +482,7 @@ menus and menu items. They are most useful for things that you can't remember
|
||||
what the key sequence was.
|
||||
|
||||
For creating menus in a different language, see |:menutrans|.
|
||||
If you don't want to use menus at all, see |'go-M'|.
|
||||
|
||||
*menu.vim*
|
||||
The default menus are read from the file "$VIMRUNTIME/menu.vim". See
|
||||
@ -498,7 +499,22 @@ in the menu (which can take a bit of time to load). If you want to have all
|
||||
filetypes already present at startup, add: >
|
||||
:let do_syntax_sel_menu = 1
|
||||
|
||||
<
|
||||
The following menuitems show all available color schemes, keymaps and compiler
|
||||
settings:
|
||||
Edit > Color Scheme ~
|
||||
Edit > Keymap ~
|
||||
Tools > Set Compiler ~
|
||||
However, they can also take a bit of time to load, because they search all
|
||||
related files from the directories in 'runtimepath'. Therefore they are
|
||||
loaded lazily (by the |CursorHold| event), or you can also load them manually.
|
||||
If you want to have all these items already present at startup, add: >
|
||||
:let do_no_lazyload_menus = 1
|
||||
|
||||
Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
|
||||
executed or after your .vimrc file is sourced. This means that the 'encoding'
|
||||
option and the language of messages (`:language messages`) must be set before
|
||||
that (if you want to change them).
|
||||
|
||||
*console-menus*
|
||||
Although this documentation is in the GUI section, you can actually use menus
|
||||
in console mode too. You will have to load |menu.vim| explicitly then, it is
|
||||
@ -784,24 +800,33 @@ In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
|
||||
from the main menu bar. You must then use the |:popup| or |:tearoff| command
|
||||
to display it.
|
||||
|
||||
*window-toolbar*
|
||||
*window-toolbar* *WinBar*
|
||||
Each window can have a local toolbar. This uses the first line of the window,
|
||||
thus reduces the space for the text by one line.
|
||||
thus reduces the space for the text by one line. The items in the toolbar
|
||||
must start with "WinBar".
|
||||
|
||||
Only text can be used. When using Unicode special characters can be used to
|
||||
Only text can be used. When using Unicode, special characters can be used to
|
||||
make the items look like icons.
|
||||
|
||||
If the items do not fit then the last ones cannot be used. The toolbar does
|
||||
not wrap.
|
||||
|
||||
Note that Vim may be in any mode when executing these commands. The menu
|
||||
should be defined for Normal mode and will be executed without changing the
|
||||
current mode. Thus if the current window is in Visual mode and the menu
|
||||
command does not intentionally change the mode, Vim will remain in Visual
|
||||
mode. Best is to use `:nnoremenu` to avoid side effects.
|
||||
|
||||
Example for debugger tools: >
|
||||
amenu 1.10 WinBar.Step :Step<CR>
|
||||
amenu 1.20 WinBar.Next :Next<CR>
|
||||
amenu 1.30 WinBar.Finish :Finish<CR>
|
||||
amenu 1.40 WinBar.Cont :Continue<CR>
|
||||
nnoremenu 1.10 WinBar.Step :Step<CR>
|
||||
nnoremenu 1.20 WinBar.Next :Next<CR>
|
||||
nnoremenu 1.30 WinBar.Finish :Finish<CR>
|
||||
nnoremenu 1.40 WinBar.Cont :Continue<CR>
|
||||
<
|
||||
The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
|
||||
|
||||
When splitting the window the window toolbar is not copied to the new window.
|
||||
|
||||
*popup-menu*
|
||||
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
|
||||
special menu "PopUp". This is the menu that is displayed when the right mouse
|
||||
|
@ -1,4 +1,4 @@
|
||||
*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
|
||||
*gui_w32.txt* For Vim version 8.0. Last change: 2017 Oct 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -382,38 +382,8 @@ Note that a menu that starts with ']' will not be displayed.
|
||||
==============================================================================
|
||||
7. Command line arguments *gui-w32-cmdargs*
|
||||
|
||||
Analysis of a command line into parameters is not standardised in MS Windows.
|
||||
Gvim has to provide logic to analyse a command line. This logic is likely to
|
||||
be different from the default logic provided by a compilation system used to
|
||||
build vim. The differences relate to unusual double quote (") usage.
|
||||
The arguments "C:\My Music\freude.txt" and "+/Sch\"iller" are handled in the
|
||||
same way. The argument "+/Sch""iller" may be handled different by gvim and
|
||||
vim, depending what it was compiled with.
|
||||
|
||||
The rules are:
|
||||
a) A parameter is a sequence of graphic characters.
|
||||
b) Parameters are separated by white space.
|
||||
c) A parameter can be enclosed in double quotes to include white space.
|
||||
d) A sequence of zero or more backslashes (\) and a double quote (")
|
||||
is special. The effective number of backslashes is halved, rounded
|
||||
down. An even number of backslashes reverses the acceptability of
|
||||
spaces and tabs, an odd number of backslashes produces a literal
|
||||
double quote.
|
||||
|
||||
So:
|
||||
" is a special double quote
|
||||
\" is a literal double quote
|
||||
\\" is a literal backslash and a special double quote
|
||||
\\\" is a literal backslash and a literal double quote
|
||||
\\\\" is 2 literal backslashes and a special double quote
|
||||
\\\\\" is 2 literal backslashes and a literal double quote
|
||||
etc.
|
||||
|
||||
Example: >
|
||||
gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
|
||||
|
||||
opens "C:\My Music\freude" and executes the line mode commands: >
|
||||
set ignorecase; /"foo\ and /bar\"
|
||||
Command line arguments behave the same way as with the console application,
|
||||
see |win32-cmdargs|.
|
||||
|
||||
==============================================================================
|
||||
8. Various *gui-w32-various*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 8.0. Last change: 2016 Sep 12
|
||||
*help.txt* For Vim version 8.0. Last change: 2017 Oct 28
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@ -142,6 +142,7 @@ Special issues ~
|
||||
|print.txt| printing
|
||||
|remote.txt| using Vim as a server or client
|
||||
|term.txt| using different terminals and mice
|
||||
|terminal.txt| Terminal window support
|
||||
|digraph.txt| list of available digraphs
|
||||
|mbyte.txt| multi-byte text support
|
||||
|mlang.txt| non-English language support
|
||||
@ -150,6 +151,7 @@ Special issues ~
|
||||
|hebrew.txt| Hebrew language support and editing
|
||||
|russian.txt| Russian language support and editing
|
||||
|ft_ada.txt| Ada (the programming language) support
|
||||
|ft_rust.txt| Filetype plugin for Rust
|
||||
|ft_sql.txt| about the SQL filetype plugin
|
||||
|hangulin.txt| Hangul (Korean) input mode
|
||||
|rileft.txt| right-to-left editing mode
|
||||
@ -202,6 +204,7 @@ Standard plugins ~
|
||||
|pi_logipat.txt| Logical operators on patterns
|
||||
|pi_netrw.txt| Reading and writing files over a network
|
||||
|pi_paren.txt| Highlight matching parens
|
||||
|pi_spec.txt| Filetype plugin to work with rpm spec files
|
||||
|pi_tar.txt| Tar file explorer
|
||||
|pi_vimball.txt| Create a self-installing Vim script
|
||||
|pi_zip.txt| Zip archive explorer
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2017 Jun 14
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Andy Kahn
|
||||
@ -468,36 +468,18 @@ license or OS distribution), then you can download it for free from:
|
||||
http://cscope.sourceforge.net/
|
||||
This is released by SCO under the BSD license.
|
||||
|
||||
If you want a newer version of cscope, you will probably have to buy it.
|
||||
According to the (old) nvi documentation:
|
||||
|
||||
You can buy version 13.3 source with an unrestricted license
|
||||
for $400 from AT&T Software Solutions by calling +1-800-462-8146.
|
||||
|
||||
Also you can download cscope 13.x and mlcscope 14.x (multi-lingual cscope
|
||||
which supports C, C++, Java, lex, yacc, breakpoint listing, Ingres, and SDL)
|
||||
from World-Wide Exptools Open Source packages page:
|
||||
http://www.bell-labs.com/project/wwexptools/packages.html
|
||||
|
||||
In Solaris 2.x, if you have the C compiler license, you will also have
|
||||
cscope. Both are usually located under /opt/SUNWspro/bin
|
||||
|
||||
SGI developers can also get it. Search for Cscope on this page:
|
||||
http://freeware.sgi.com/index-by-alpha.html
|
||||
https://toolbox.sgi.com/toolbox/utilities/cscope/
|
||||
The second one is for those who have a password for the SGI toolbox.
|
||||
|
||||
There is source to an older version of a cscope clone (called "cs") available
|
||||
on the net. Due to various reasons, this is not supported with Vim.
|
||||
|
||||
The cscope interface/support for Vim was originally written by
|
||||
Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny
|
||||
bit of code) was adapted from the cscope interface in nvi. Please report
|
||||
any problems, suggestions, patches, et al., you have for the usage of
|
||||
cscope within Vim to him.
|
||||
bit of code) was adapted from the cscope interface in nvi.
|
||||
*cscope-win32*
|
||||
For a cscope version for Win32 see:
|
||||
http://code.google.com/p/cscope-win32/
|
||||
For a cscope version for Win32 see (seems abandoned):
|
||||
https://code.google.com/archive/p/cscope-win32/
|
||||
|
||||
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
|
||||
him if you have Win32-specific issues.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2017 Oct 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sergey Khorev
|
||||
@ -278,12 +278,15 @@ When you don't use the MzScheme interface you don't need them, thus you can
|
||||
use Vim without these DLL files.
|
||||
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
||||
startup if possible.
|
||||
startup if possible. This may make Vim startup slower.
|
||||
|
||||
To use the MzScheme interface the MzScheme DLLs must be in your search path.
|
||||
In a console window type "path" to see what directories are used.
|
||||
|
||||
The names of the DLLs must match the MzScheme version Vim was compiled with.
|
||||
On MS-Windows the options 'mzschemedll' and 'mzschemegcdll' are used for the
|
||||
name of the library to load. The initial value is specified at build time.
|
||||
|
||||
The version of the DLL must match the MzScheme version Vim was compiled with.
|
||||
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
||||
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
|
||||
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_perl.txt* For Vim version 8.0. Last change: 2015 Oct 16
|
||||
*if_perl.txt* For Vim version 8.0. Last change: 2017 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||
@ -112,7 +112,7 @@ possible.
|
||||
Here is an overview of the functions that are available to Perl: >
|
||||
|
||||
:perl VIM::Msg("Text") # displays a message
|
||||
:perl VIM::Msg("Error", "ErrorMsg") # displays an error message
|
||||
:perl VIM::Msg("Wrong!", "ErrorMsg") # displays an error message
|
||||
:perl VIM::Msg("remark", "Comment") # displays a highlighted message
|
||||
:perl VIM::SetOption("ai") # sets a vim option
|
||||
:perl $nbuf = VIM::Buffers() # returns the number of buffers
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Mar 09
|
||||
*if_pyth.txt* For Vim version 8.0. Last change: 2018 Jan 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@ -715,6 +715,8 @@ To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
|
||||
functions to evaluate Python expressions and pass their values to Vim script.
|
||||
|pyxeval()| is also available.
|
||||
|
||||
The Python value "None" is converted to v:none.
|
||||
|
||||
==============================================================================
|
||||
9. Dynamic loading *python-dynamic*
|
||||
|
||||
@ -734,8 +736,8 @@ or 'pythonthreedll' option can be also used to specify the Python DLL.
|
||||
|
||||
The name of the DLL should match the Python version Vim was compiled with.
|
||||
Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
|
||||
That is the default value for 'pythondll'. For Python 3 it is python35.dll
|
||||
(Python 3.5). To know for sure edit "gvim.exe" and search for
|
||||
That is the default value for 'pythondll'. For Python 3 it is python36.dll
|
||||
(Python 3.6). To know for sure edit "gvim.exe" and search for
|
||||
"python\d*.dll\c".
|
||||
|
||||
|
||||
@ -807,7 +809,8 @@ Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
|
||||
You can test what Python version is available with: >
|
||||
if has('python')
|
||||
echo 'there is Python 2.x'
|
||||
elseif has('python3')
|
||||
endif
|
||||
if has('python3')
|
||||
echo 'there is Python 3.x'
|
||||
endif
|
||||
|
||||
@ -816,6 +819,24 @@ dynamically, these has() calls will try to load them. If only one can be
|
||||
loaded at a time, just checking if Python 2 or 3 are available will prevent
|
||||
the other one from being available.
|
||||
|
||||
To avoid loading the dynamic library, only check if Vim was compiled with
|
||||
python support: >
|
||||
if has('python_compiled')
|
||||
echo 'compiled with Python 2.x support'
|
||||
if has('python_dynamic
|
||||
echo 'Python 2.x dynamically loaded
|
||||
endif
|
||||
endif
|
||||
if has('python3_compiled')
|
||||
echo 'compiled with Python 3.x support'
|
||||
if has('python3_dynamic
|
||||
echo 'Python 3.x dynamically loaded
|
||||
endif
|
||||
endif
|
||||
|
||||
This also tells you whether Python is dynamically loaded, which will fail if
|
||||
the runtime library cannot be found.
|
||||
|
||||
==============================================================================
|
||||
11. Python X *python_x* *pythonx*
|
||||
|
||||
|
@ -1583,13 +1583,17 @@ tag command action ~
|
||||
|:tjump| :tj[ump] like ":tselect", but jump directly when there
|
||||
is only one match
|
||||
|:tlast| :tl[ast] jump to last matching tag
|
||||
|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
|
||||
|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|
||||
|:tmenu| :tm[enu] define menu tooltip
|
||||
|:tnext| :tn[ext] jump to next matching tag
|
||||
|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|
||||
|:topleft| :to[pleft] make split window appear at top or far left
|
||||
|:tprevious| :tp[revious] jump to previous matching tag
|
||||
|:trewind| :tr[ewind] jump to first matching tag
|
||||
|:try| :try execute commands, abort on error or exception
|
||||
|:tselect| :ts[elect] list matching tags and select one
|
||||
|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|
||||
|:tunmenu| :tu[nmenu] remove menu tooltip
|
||||
|:undo| :u[ndo] undo last change(s)
|
||||
|:undojoin| :undoj[oin] join next change with previous undo block
|
||||
|
@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.0. Last change: 2017 May 30
|
||||
*insert.txt* For Vim version 8.0. Last change: 2018 Jan 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -433,7 +433,7 @@ An example for using CTRL-G U: >
|
||||
inoremap ( ()<C-G>U<Left>
|
||||
|
||||
This makes it possible to use the cursor keys in Insert mode, without breaking
|
||||
the undo sequence and therefore using |.| (redo) will work as expected.
|
||||
the undo sequence and therefore using |.| (redo) will work as expected.
|
||||
Also entering a text like (with the "(" mapping from above): >
|
||||
|
||||
Lorem ipsum (dolor
|
||||
@ -1296,7 +1296,8 @@ it here: http://ctags.sourceforge.net/ Version 5.6 or later is recommended.
|
||||
For version 5.5.4 you should add a patch that adds the "typename:" field:
|
||||
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
|
||||
A compiled .exe for MS-Windows can be found at:
|
||||
http://georgevreilly.com/vim/ctags.html
|
||||
http://ctags.sourceforge.net/
|
||||
https://github.com/universal-ctags/ctags-win32
|
||||
|
||||
If you want to complete system functions you can do something like this. Use
|
||||
ctags to generate a tags file for all the system header files: >
|
||||
@ -1472,7 +1473,7 @@ The completions provided by CTRL-X CTRL-O are sensitive to the context:
|
||||
|
||||
Notes:
|
||||
- Vim will load/evaluate code in order to provide completions. This may
|
||||
cause some code execution, which may be a concern. This is no longer
|
||||
cause some code execution, which may be a concern. This is no longer
|
||||
enabled by default, to enable this feature add >
|
||||
let g:rubycomplete_buffer_loading = 1
|
||||
<- In context 1 above, Vim can parse the entire buffer to add a list of
|
||||
@ -1528,15 +1529,15 @@ that begin with the filetype, "php", in this case. For example these syntax
|
||||
groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
||||
phpFunctions.
|
||||
|
||||
If you wish non-filetype syntax items to also be included, you can use a
|
||||
regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim)
|
||||
to add items. Looking at the output from ":syntax list" while editing a PHP file
|
||||
I can see some of these entries: >
|
||||
If you wish non-filetype syntax items to also be included, you can use a
|
||||
regular expression syntax (added in version 13.0 of
|
||||
autoload\syntaxcomplete.vim) to add items. Looking at the output from
|
||||
":syntax list" while editing a PHP file I can see some of these entries: >
|
||||
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
|
||||
|
||||
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
|
||||
file, you can use 3 different regexs, one for each language. Or you can
|
||||
simply restrict the include groups to a particular value, without using
|
||||
file, you can use 3 different regexs, one for each language. Or you can
|
||||
simply restrict the include groups to a particular value, without using
|
||||
a regex string: >
|
||||
let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+'
|
||||
let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods'
|
||||
@ -1549,9 +1550,9 @@ highlight. These items will be available within the omni completion list.
|
||||
|
||||
Some people may find this list unwieldy or are only interested in certain
|
||||
items. There are two ways to prune this list (if necessary). If you find
|
||||
certain syntax groups you do not wish displayed you can use two different
|
||||
methods to identify these groups. The first specifically lists the syntax
|
||||
groups by name. The second uses a regular expression to identify both
|
||||
certain syntax groups you do not wish displayed you can use two different
|
||||
methods to identify these groups. The first specifically lists the syntax
|
||||
groups by name. The second uses a regular expression to identify both
|
||||
syntax groups. Simply add one the following to your vimrc: >
|
||||
let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant'
|
||||
let g:omni_syntax_group_exclude_php = 'php\w*Constant'
|
||||
@ -1574,22 +1575,22 @@ vimrc: >
|
||||
|
||||
For plugin developers, the plugin exposes a public function OmniSyntaxList.
|
||||
This function can be used to request a List of syntax items. When editing a
|
||||
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
||||
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
||||
various groups and syntax items. For example: >
|
||||
syntax list
|
||||
syntax list
|
||||
|
||||
Yields data similar to this: >
|
||||
sqlOperator xxx some prior all like and any escape exists in is not
|
||||
or intersect minus between distinct
|
||||
links to Operator
|
||||
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier
|
||||
date money long tinyint unsigned xml text smalldate
|
||||
double datetime nchar smallint numeric time bit char
|
||||
varbinary binary smallmoney
|
||||
image float integer timestamp real decimal
|
||||
Yields data similar to this:
|
||||
sqlOperator xxx some prior all like and any escape exists in is not ~
|
||||
or intersect minus between distinct ~
|
||||
links to Operator ~
|
||||
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier ~
|
||||
date money long tinyint unsigned xml text smalldate ~
|
||||
double datetime nchar smallint numeric time bit char ~
|
||||
varbinary binary smallmoney ~
|
||||
image float integer timestamp real decimal ~
|
||||
|
||||
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
|
||||
a List of syntax items you can call OmniSyntaxList a number of different
|
||||
a List of syntax items you can call OmniSyntaxList a number of different
|
||||
ways. To retrieve all syntax items regardless of syntax group: >
|
||||
echo OmniSyntaxList( [] )
|
||||
|
||||
@ -1606,7 +1607,6 @@ From within a plugin, you would typically assign the output to a List: >
|
||||
let myKeywords = []
|
||||
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
||||
|
||||
|
||||
|
||||
SQL *ft-sql-omni*
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.0. Last change: 2017 Aug 24
|
||||
*intro.txt* For Vim version 8.0. Last change: 2018 Jan 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -138,7 +138,7 @@ There are two ways to report bugs, both work:
|
||||
see the message. If you don't want that, e.g. because it is a security
|
||||
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
|
||||
(that's Bram).
|
||||
2. Open issue on GitHub: https://github.com/vim/vim/issues
|
||||
2. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||
The text will be forwarded to the vim-dev maillist.
|
||||
|
||||
Please be brief; all the time that is spent on answering mail is subtracted
|
||||
@ -264,6 +264,10 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Juergen Weigert Lattice version, AUX improvements, UNIX and
|
||||
MS-DOS ports, autoconf
|
||||
Stefan 'Sec' Zehl Maintainer of vim.org
|
||||
Yasuhiro Matsumoto many MS-Windows improvements
|
||||
Ken Takata fixes and features
|
||||
Kazunobu Kuriyama GTK 3
|
||||
Christian Brabandt many fixes, features, user support, etc.
|
||||
|
||||
I wish to thank all the people that sent me bug reports and suggestions. The
|
||||
list is too long to mention them all here. Vim would not be the same without
|
||||
|
@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.0. Last change: 2017 May 30
|
||||
*map.txt* For Vim version 8.0. Last change: 2017 Sep 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -29,7 +29,7 @@ manual.
|
||||
1. Key mapping *key-mapping* *mapping* *macro*
|
||||
|
||||
Key mapping is used to change the meaning of typed keys. The most common use
|
||||
is to define a sequence commands for a function key. Example: >
|
||||
is to define a sequence of commands for a function key. Example: >
|
||||
|
||||
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
|
||||
|
||||
@ -55,7 +55,7 @@ modes.
|
||||
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
|
||||
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
|
||||
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
|
||||
:tm[ap] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
|
||||
:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
|
||||
Map the key sequence {lhs} to {rhs} for the modes
|
||||
where the map command applies. The result, including
|
||||
{rhs}, is then further scanned for mappings. This
|
||||
@ -89,7 +89,7 @@ modes.
|
||||
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
|
||||
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
|
||||
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
|
||||
:tu[nmap] {lhs} |mapmode-t| *:tunma* *:tunmap*
|
||||
:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
|
||||
Remove the mapping of {lhs} for the modes where the
|
||||
map command applies. The mapping may remain defined
|
||||
for other modes where it applies.
|
||||
@ -125,7 +125,7 @@ modes.
|
||||
:im[ap] |mapmode-i|
|
||||
:lm[ap] |mapmode-l|
|
||||
:cm[ap] |mapmode-c|
|
||||
:tm[ap] |mapmode-t|
|
||||
:tma[p] |mapmode-t|
|
||||
List all key mappings for the modes where the map
|
||||
command applies. Note that ":map" and ":map!" are
|
||||
used most often, because they include the other modes.
|
||||
@ -140,7 +140,7 @@ modes.
|
||||
:im[ap] {lhs} |mapmode-i| *:imap_l*
|
||||
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
|
||||
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
|
||||
:tm[ap] {lhs} |mapmode-t| *:tmap_l*
|
||||
:tma[p] {lhs} |mapmode-t| *:tmap_l*
|
||||
List the key mappings for the key sequences starting
|
||||
with {lhs} in the modes where the map command applies.
|
||||
{not in Vi}
|
||||
@ -694,7 +694,7 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
|
||||
you type slowly, or your system is slow, reset the 'timeout' option. Then you
|
||||
might want to set the 'ttimeout' option.
|
||||
|
||||
*map-precedence*
|
||||
*map-precedence*
|
||||
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
|
||||
global mappings. When a buffer-local mapping is the same as a global mapping,
|
||||
Vim will use the buffer-local mapping. In addition, Vim will use a complete
|
||||
|
@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.0. Last change: 2016 Jul 21
|
||||
*mbyte.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@ -26,8 +26,9 @@ For changing the language of messages and menus see |mlang.txt|.
|
||||
7. Input on X11 |mbyte-XIM|
|
||||
8. Input on MS-Windows |mbyte-IME|
|
||||
9. Input with a keymap |mbyte-keymap|
|
||||
10. Using UTF-8 |mbyte-utf8|
|
||||
11. Overview of options |mbyte-options|
|
||||
10. Input with imactivatefunc() |mbyte-func|
|
||||
11. Using UTF-8 |mbyte-utf8|
|
||||
12. Overview of options |mbyte-options|
|
||||
|
||||
NOTE: This file contains UTF-8 characters. These may show up as strange
|
||||
characters or boxes when using another encoding.
|
||||
@ -1254,7 +1255,35 @@ Combining forms:
|
||||
ﭏ 0xfb4f Xal alef-lamed
|
||||
|
||||
==============================================================================
|
||||
10. Using UTF-8 *mbyte-utf8* *UTF-8* *utf-8* *utf8*
|
||||
10. Input with imactivatefunc() *mbyte-func*
|
||||
|
||||
Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
|
||||
activate/deactivate the input method from Vim in any way, also with an external
|
||||
command. For example, fcitx provide fcitx-remote command: >
|
||||
|
||||
set iminsert=2
|
||||
set imsearch=2
|
||||
set imcmdline
|
||||
|
||||
set imactivatefunc=ImActivate
|
||||
function! ImActivate(active)
|
||||
if a:active
|
||||
call system('fcitx-remote -o')
|
||||
else
|
||||
call system('fcitx-remote -c')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
set imstatusfunc=ImStatus
|
||||
function! ImStatus()
|
||||
return system('fcitx-remote')[0] is# '2'
|
||||
endfunction
|
||||
|
||||
Using this script, you can activate/deactivate XIM via Vim even when it is not
|
||||
compiled with |+xim|.
|
||||
|
||||
==============================================================================
|
||||
11. Using UTF-8 *mbyte-utf8* *UTF-8* *utf-8* *utf8*
|
||||
*Unicode* *unicode*
|
||||
The Unicode character set was designed to include all characters from other
|
||||
character sets. Therefore it is possible to write text in any language using
|
||||
@ -1402,7 +1431,7 @@ not everybody is able to type a composing character.
|
||||
|
||||
|
||||
==============================================================================
|
||||
11. Overview of options *mbyte-options*
|
||||
12. Overview of options *mbyte-options*
|
||||
|
||||
These options are relevant for editing multi-byte files. Check the help in
|
||||
options.txt for detailed information.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.0. Last change: 2017 Mar 25
|
||||
*message.txt* For Vim version 8.0. Last change: 2017 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -463,12 +463,6 @@ changed. To avoid the message reset the 'warn' option.
|
||||
Something inside Vim went wrong and resulted in a NULL pointer. If you know
|
||||
how to reproduce this problem, please report it. |bugs|
|
||||
|
||||
*E172* >
|
||||
Only one file name allowed
|
||||
|
||||
The ":edit" command only accepts one file name. When you want to specify
|
||||
several files for editing use ":next" |:next|.
|
||||
|
||||
*E41* *E82* *E83* *E342* >
|
||||
Out of memory!
|
||||
Out of memory! (allocating {number} bytes)
|
||||
@ -645,6 +639,9 @@ starts. It can be fixed in one of these ways:
|
||||
- Just write the file again the next day. Or set your clock to the next day,
|
||||
write the file twice and set the clock back.
|
||||
|
||||
If you get W11 all the time, you may need to disable "Acronis Active
|
||||
Protection" or register Vim as a trusted service/application.
|
||||
|
||||
*W12* >
|
||||
Warning: File "{filename}" has changed and the buffer was changed in Vim as well
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.0. Last change: 2017 Mar 12
|
||||
*motion.txt* For Vim version 8.0. Last change: 2017 Oct 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1317,7 +1317,10 @@ the current line is included. You can then use "%" to go to the matching line.
|
||||
H To line [count] from top (Home) of window (default:
|
||||
first line on the window) on the first non-blank
|
||||
character |linewise|. See also 'startofline' option.
|
||||
Cursor is adjusted for 'scrolloff' option.
|
||||
Cursor is adjusted for 'scrolloff' option, unless an
|
||||
operator is pending, in which case the text may
|
||||
scroll. E.g. "yH" yanks from the first visible line
|
||||
until the cursor line (inclusive).
|
||||
|
||||
*M*
|
||||
M To Middle line of window, on the first non-blank
|
||||
@ -1327,7 +1330,10 @@ M To Middle line of window, on the first non-blank
|
||||
L To line [count] from bottom of window (default: Last
|
||||
line on the window) on the first non-blank character
|
||||
|linewise|. See also 'startofline' option.
|
||||
Cursor is adjusted for 'scrolloff' option.
|
||||
Cursor is adjusted for 'scrolloff' option, unless an
|
||||
operator is pending, in which case the text may
|
||||
scroll. E.g. "yL" yanks from the cursor to the last
|
||||
visible line.
|
||||
|
||||
<LeftMouse> Moves to the position on the screen where the mouse
|
||||
click is |exclusive|. See also |<LeftMouse>|. If the
|
||||
|
@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Aug 27
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Dec 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -423,6 +423,16 @@ command, not when assigning a value to an option with ":let".
|
||||
*$HOME-windows*
|
||||
On MS-Windows, if $HOME is not defined as an environment variable, then
|
||||
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
|
||||
If $HOMEDRIVE is not set then $USERPROFILE is used.
|
||||
|
||||
This expanded value is not exported to the environment, this matters when
|
||||
running an external command: >
|
||||
:echo system('set | findstr ^HOME=')
|
||||
and >
|
||||
:echo luaeval('os.getenv("HOME")')
|
||||
should echo nothing (an empty string) despite exists('$HOME') being true.
|
||||
When setting $HOME to a non-empty string it will be exported to the
|
||||
subprocesses.
|
||||
|
||||
|
||||
Note the maximum length of an expanded option is limited. How much depends on
|
||||
@ -722,7 +732,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
Vim may set this option automatically at startup time when Vim is
|
||||
compiled with the |+termresponse| feature and if |t_u7| is set to the
|
||||
escape sequence to request cursor position report.
|
||||
escape sequence to request cursor position report. The response can
|
||||
be found in |v:termu7resp|.
|
||||
|
||||
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
|
||||
'antialias' 'anti' boolean (default: off)
|
||||
@ -870,11 +881,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Vim will guess the value. In the GUI this should work correctly,
|
||||
in other cases Vim might not be able to guess the right value.
|
||||
|
||||
When the t_BG option is set, Vim will use it to request the background
|
||||
When the |t_RB| option is set, Vim will use it to request the background
|
||||
color from the terminal. If the returned RGB value is dark/light and
|
||||
'background' is not dark/light, 'background' will be set and the
|
||||
screen is redrawn. This may have side effects, make t_BG empty in
|
||||
your .vimrc if you suspect this problem.
|
||||
your .vimrc if you suspect this problem. The response to |t_RB| can
|
||||
be found in |v:termrbgresp|.
|
||||
|
||||
When starting the GUI, the default value for 'background' will be
|
||||
"light". When the value is not set in the .gvimrc, and Vim detects
|
||||
@ -1115,7 +1127,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+balloon_eval|
|
||||
feature}
|
||||
Switch on the |balloon-eval| functionality.
|
||||
Switch on the |balloon-eval| functionality for the GUI.
|
||||
|
||||
*'balloonevalterm'* *'bevalterm'* *'noballoonevalterm'*
|
||||
*'nobevalterm'*
|
||||
'balloonevalterm' 'bevalterm' boolean (default off)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the
|
||||
|+balloon_eval_term| feature}
|
||||
Switch on the |balloon-eval| functionality for the terminal.
|
||||
|
||||
*'balloonexpr'* *'bexpr'*
|
||||
'balloonexpr' 'bexpr' string (default "")
|
||||
@ -2613,6 +2634,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
vertical Start diff mode with vertical splits (unless
|
||||
explicitly specified otherwise).
|
||||
|
||||
hiddenoff Do not use diff mode for a buffer when it
|
||||
becomes hidden.
|
||||
|
||||
foldcolumn:{n} Set the 'foldcolumn' option to {n} when
|
||||
starting diff mode. Without this 2 is used.
|
||||
|
||||
@ -3509,6 +3533,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
systems without an fsync() implementation, this variable is always
|
||||
off.
|
||||
Also see 'swapsync' for controlling fsync() on swap files.
|
||||
'fsync' also applies to |writefile()|, unless a flag is used to
|
||||
overrule it.
|
||||
|
||||
*'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
|
||||
'gdefault' 'gd' boolean (default off)
|
||||
@ -3883,7 +3909,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
that this flag must be added in the .vimrc file, before
|
||||
switching on syntax or filetype recognition (when the |gvimrc|
|
||||
file is sourced the system menu has already been loaded; the
|
||||
":syntax on" and ":filetype on" commands load the menu too).
|
||||
`:syntax on` and `:filetype on` commands load the menu too).
|
||||
*'go-g'*
|
||||
'g' Grey menu items: Make menu items that are not active grey. If
|
||||
'g' is not included inactive menu items are not shown at all.
|
||||
@ -3927,7 +3953,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
removing it after the GUI has started has no effect.
|
||||
*'go-F'*
|
||||
'F' Add a footer. Only for Motif. See |gui-footer|.
|
||||
|
||||
*'go-k'*
|
||||
'k' Keep the GUI window size when adding/removing a scrollbar, or
|
||||
toolbar, tabline, etc. Instead, the behavior is similar to
|
||||
when the window is maximized and will adjust 'lines' and
|
||||
'columns' to fit to the window. Without the 'k' flag Vim will
|
||||
try to keep 'lines' and 'columns' the same when adding and
|
||||
removing GUI components.
|
||||
|
||||
*'guipty'* *'noguipty'*
|
||||
'guipty' boolean (default on)
|
||||
@ -4071,7 +4103,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set.
|
||||
|hl-Question| r |hit-enter| prompt and yes/no questions
|
||||
|hl-StatusLine| s status line of current window |status-line|
|
||||
|hl-StatusLineNC| S status lines of not-current windows
|
||||
|hl-StatusLineNC| S status lines of not-current windows
|
||||
|hl-Title| t Titles for output from ":set all", ":autocmd" etc.
|
||||
|hl-VertSplit| c column used to separate vertically split windows
|
||||
|hl-Visual| v Visual mode
|
||||
@ -4227,10 +4259,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'imactivatefunc' 'imaf' string (default "")
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with |+xim| and
|
||||
|+GUI_GTK|}
|
||||
{only available when compiled with |+mbyte|}
|
||||
This option specifies a function that will be called to
|
||||
activate/inactivate Input Method.
|
||||
activate or deactivate the Input Method.
|
||||
It is not used in the GUI.
|
||||
|
||||
Example: >
|
||||
function ImActivateFunc(active)
|
||||
@ -4279,8 +4311,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'imcmdline' 'imc' boolean (default off)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+xim|,
|
||||
|+multi_byte_ime| or |global-ime| features}
|
||||
{only available when compiled with |+mbyte|}
|
||||
When set the Input Method is always on when starting to edit a command
|
||||
line, unless entering a search pattern (see 'imsearch' for that).
|
||||
Setting this option is useful when your input method allows entering
|
||||
@ -4291,8 +4322,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'imdisable' 'imd' boolean (default off, on for some systems (SGI))
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+xim|,
|
||||
|+multi_byte_ime| or |global-ime| features}
|
||||
{only available when compiled with |+mbyte|}
|
||||
When set the Input Method is never used. This is useful to disable
|
||||
the IM when it doesn't work properly.
|
||||
Currently this option is on by default for SGI/IRIX machines. This
|
||||
@ -4307,8 +4337,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
0 :lmap is off and IM is off
|
||||
1 :lmap is ON and IM is off
|
||||
2 :lmap is off and IM is ON
|
||||
2 is available only when compiled with the |+multi_byte_ime|, |+xim|
|
||||
or |global-ime|.
|
||||
To always reset the option to zero when leaving Insert mode with <Esc>
|
||||
this can be used: >
|
||||
:inoremap <ESC> <ESC>:set iminsert=0<CR>
|
||||
@ -4321,6 +4349,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The value 0 may not work correctly with Athena and Motif with some XIM
|
||||
methods. Use 'imdisable' to disable XIM then.
|
||||
|
||||
You can set 'imactivatefunc' and 'imstatusfunc' to handle IME/XIM
|
||||
via external command if vim is not compiled with the |+xim|,
|
||||
|+multi_byte_ime| or |global-ime|.
|
||||
|
||||
*'imsearch'* *'ims'*
|
||||
'imsearch' 'ims' number (default -1)
|
||||
local to buffer
|
||||
@ -4343,10 +4375,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'imstatusfunc' 'imsf' string (default "")
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with |+xim| and
|
||||
|+GUI_GTK|}
|
||||
{only available when compiled with |+mbyte|}
|
||||
This option specifies a function that is called to obtain the status
|
||||
of Input Method. It must return a positive number when IME is active.
|
||||
It is not used in the GUI.
|
||||
|
||||
Example: >
|
||||
function ImStatusFunc()
|
||||
@ -4363,13 +4395,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not in Vi}
|
||||
{only available when compiled with |+xim| and
|
||||
|+GUI_GTK|}
|
||||
This option specifies the input style of Input Method.
|
||||
Set to zero if you want to use on-the-spot style.
|
||||
Set to one if you want to use over-the-spot style.
|
||||
This option specifies the input style of Input Method:
|
||||
0 use on-the-spot style
|
||||
1 over-the-spot style
|
||||
See: |xim-input-style|
|
||||
|
||||
For a long time on-the-spot sytle had been used in GTK version of vim,
|
||||
however, it is known that it causes troubles when using mappings,
|
||||
For a long time on-the-spot style had been used in the GTK version of
|
||||
vim, however, it is known that it causes troubles when using mappings,
|
||||
|single-repeat|, etc. Therefore over-the-spot style becomes the
|
||||
default now. This should work fine for most people, however if you
|
||||
have any problem with it, try using on-the-spot style.
|
||||
@ -4435,7 +4467,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
match may not be found. This is to avoid that Vim hangs while you
|
||||
are typing the pattern.
|
||||
The highlighting can be set with the 'i' flag in 'highlight'.
|
||||
See also: 'hlsearch'.
|
||||
When 'hlsearch' is on, all matched strings are highlighted too while
|
||||
typing a search command. See also: 'hlsearch'.
|
||||
If you don't want turn 'hlsearch' on, but want to highlight all matches
|
||||
while searching, you can turn on and off 'hlsearch' with autocmd.
|
||||
Example: >
|
||||
augroup vimrc-incsearch-highlight
|
||||
autocmd!
|
||||
autocmd CmdlineEnter /,\? :set hlsearch
|
||||
autocmd CmdlineLeave /,\? :set nohlsearch
|
||||
augroup END
|
||||
<
|
||||
CTRL-L can be used to add one character from after the current match
|
||||
to the command line. If 'ignorecase' and 'smartcase' are set and the
|
||||
command line has no uppercase characters, the added character is
|
||||
@ -5105,7 +5147,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:au FileType c,cpp,java set mps+==:;
|
||||
|
||||
< For a more advanced way of using "%", see the matchit.vim plugin in
|
||||
the $VIMRUNTIME/macros directory. |add-local-help|
|
||||
the $VIMRUNTIME/pack/dist/opt/matchit directory. |add-local-help|
|
||||
|
||||
*'matchtime'* *'mat'*
|
||||
'matchtime' 'mat' number (default 5)
|
||||
@ -5308,7 +5350,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
sysmouse and Linux console with gpm). For using the mouse in the
|
||||
GUI, see |gui-mouse|.
|
||||
The mouse can be enabled for different modes:
|
||||
n Normal mode
|
||||
n Normal mode and Terminal modes
|
||||
v Visual mode
|
||||
i Insert mode
|
||||
c Command-line mode
|
||||
@ -5456,6 +5498,33 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
time in msec between two mouse clicks for the second click to be
|
||||
recognized as a multi click.
|
||||
|
||||
*'mzschemedll'*
|
||||
'mzschemedll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+mzscheme/dyn|
|
||||
feature}
|
||||
Specifies the name of the MzScheme shared library. The default is
|
||||
DYNAMIC_MZSCH_DLL which was specified at compile time.
|
||||
Environment variables are expanded |:set_env|.
|
||||
The value must be set in the |vimrc| script or earlier. In the
|
||||
startup, before the |load-plugins| step.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'mzschemegcdll'*
|
||||
'mzschemegcdll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+mzscheme/dyn|
|
||||
feature}
|
||||
Specifies the name of the MzScheme GC shared library. The default is
|
||||
DYNAMIC_MZGC_DLL which was specified at compile time.
|
||||
The value can be equal to 'mzschemedll' if it includes the GC code.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'mzquantum'* *'mzq'*
|
||||
'mzquantum' 'mzq' number (default 100)
|
||||
global
|
||||
@ -5680,11 +5749,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
copy of the original file will be kept. The name of the copy is the
|
||||
name of the original file with the string in the 'patchmode' option
|
||||
appended. This option should start with a dot. Use a string like
|
||||
".org". 'backupdir' must not be empty for this to work (Detail: The
|
||||
backup file is renamed to the patchmode file after the new file has
|
||||
been successfully written, that's why it must be possible to write a
|
||||
backup file). If there was no file to be backed up, an empty file is
|
||||
created.
|
||||
".orig" or ".org". 'backupdir' must not be empty for this to work
|
||||
(Detail: The backup file is renamed to the patchmode file after the
|
||||
new file has been successfully written, that's why it must be possible
|
||||
to write a backup file). If there was no file to be backed up, an
|
||||
empty file is created.
|
||||
When the 'backupskip' pattern matches, a patchmode file is not made.
|
||||
Using 'patchmode' for compressed files appends the extension at the
|
||||
end (e.g., "file.gz.orig"), thus the resulting name isn't always
|
||||
@ -5746,6 +5815,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Replace the ';' with a ':' or whatever separator is used. Note that
|
||||
this doesn't work when $INCL contains a comma or white space.
|
||||
|
||||
*'perldll'*
|
||||
'perldll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+perl/dyn|
|
||||
feature}
|
||||
Specifies the name of the Perl shared library. The default is
|
||||
DYNAMIC_PERL_DLL, which was specified at compile time.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
|
||||
'preserveindent' 'pi' boolean (default off)
|
||||
local to buffer
|
||||
@ -6041,9 +6122,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
geom pixelGeometry int 0 - 2 (see below)
|
||||
renmode renderingMode int 0 - 6 (see below)
|
||||
taamode textAntialiasMode int 0 - 3 (see below)
|
||||
scrlines Scroll Lines int >= 0 (see below)
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368190.aspx
|
||||
See this URL for detail (except for scrlines):
|
||||
https://msdn.microsoft.com/en-us/library/dd368190.aspx
|
||||
|
||||
For geom: structure of a device pixel.
|
||||
0 - DWRITE_PIXEL_GEOMETRY_FLAT
|
||||
@ -6051,7 +6133,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
2 - DWRITE_PIXEL_GEOMETRY_BGR
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368114.aspx
|
||||
https://msdn.microsoft.com/en-us/library/dd368114.aspx
|
||||
|
||||
For renmode: method of rendering glyphs.
|
||||
0 - DWRITE_RENDERING_MODE_DEFAULT
|
||||
@ -6063,7 +6145,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
6 - DWRITE_RENDERING_MODE_OUTLINE
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368118.aspx
|
||||
https://msdn.microsoft.com/en-us/library/dd368118.aspx
|
||||
|
||||
For taamode: antialiasing mode used for drawing text.
|
||||
0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
|
||||
@ -6072,15 +6154,55 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368170.aspx
|
||||
https://msdn.microsoft.com/en-us/library/dd368170.aspx
|
||||
|
||||
For scrlines: threshold for lines to be scrolled.
|
||||
0 - Always use scrolling. (default)
|
||||
1 - Use full page redrawing.
|
||||
> 1 - If the lines to be scrolled is grater or equal to the
|
||||
specified value, use redrawing. Otherwise use
|
||||
scrolling.
|
||||
|
||||
If you feel scrolling a page (CTRL-F) is too slow with DirectX
|
||||
renderer, try this "scrlines" option.
|
||||
When set it "1", Vim uses full page redrawing instead of
|
||||
scrolling. Redrawing a page is faster than scrolling a
|
||||
page in some environments.
|
||||
After that, when you feel scrolling lines (CTRL-Y) becomes
|
||||
slow, please try "2" or greater value for this option.
|
||||
It works threshold line number to switch scrolling to
|
||||
redrawing. Scrolling a few lines might be faster than
|
||||
redrawing a page in some environments.
|
||||
|
||||
Example: >
|
||||
set encoding=utf-8
|
||||
set gfn=Ricty_Diminished:h12:cSHIFTJIS
|
||||
set gfn=Ricty_Diminished:h12
|
||||
set rop=type:directx
|
||||
<
|
||||
If select a raster font (Courier, Terminal or FixedSys) to
|
||||
'guifont', it fallbacks to be drawn by GDI automatically.
|
||||
If select a raster font (Courier, Terminal or FixedSys which
|
||||
have ".fon" extension in file name) to 'guifont', it will be
|
||||
drawn by GDI as a fallback.
|
||||
|
||||
NOTE: It is known that some fonts and options combination
|
||||
causes trouble on drawing glyphs.
|
||||
|
||||
- 'renmode:5' and 'renmode:6' will not work with some
|
||||
special made fonts (True-Type fonts which includes only
|
||||
bitmap glyphs).
|
||||
- 'taamode:3' will not work with some vector fonts.
|
||||
|
||||
NOTE: With this option, you can display colored emoji
|
||||
(emoticon) in Windows 8.1 or later. To display colored emoji,
|
||||
there are some conditions which you should notice.
|
||||
|
||||
- If your font includes non-colored emoji already, it will
|
||||
be used.
|
||||
- If your font doesn't have emoji, the system chooses an
|
||||
alternative symbol font. On Windows 10, "Segoe UI Emoji"
|
||||
will be used.
|
||||
- When this alternative font didn't have fixed width glyph,
|
||||
emoji might be rendered beyond the bounding box of drawing
|
||||
cell.
|
||||
|
||||
Other render types are currently not supported.
|
||||
|
||||
@ -8154,7 +8276,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
number, more intelligent detection process runs.
|
||||
The "xterm2" value will be set if the xterm version is reported to be
|
||||
from 95 to 276. The "sgr" value will be set if the xterm version is
|
||||
277 or highter.
|
||||
277 or higher and when Vim detects Mac Terminal.app or iTerm2.
|
||||
If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
|
||||
automatically, set t_RV to an empty string: >
|
||||
:set t_RV=
|
||||
@ -8235,7 +8357,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Save the whole buffer for undo when reloading it. This applies to the
|
||||
":e!" command and reloading for when the buffer changed outside of
|
||||
Vim. |FileChangedShell|
|
||||
The save only happens when this options is negative or when the number
|
||||
The save only happens when this option is negative or when the number
|
||||
of lines is smaller than the value of this option.
|
||||
Set this option to zero to disable undo for a reload.
|
||||
|
||||
@ -8320,7 +8442,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
security reasons.
|
||||
|
||||
*'viewoptions'* *'vop'*
|
||||
'viewoptions' 'vop' string (default: "folds,options,cursor")
|
||||
'viewoptions' 'vop' string (default: "folds,options,cursor,curdir")
|
||||
global
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+mksession|
|
||||
@ -8338,6 +8460,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
slashes
|
||||
unix with Unix end-of-line format (single <NL>), even when
|
||||
on Windows or DOS
|
||||
curdir the window-local directory, if set with `:lcd`
|
||||
|
||||
"slash" and "unix" are useful on Windows when sharing view files
|
||||
with Unix. The Unix version of Vim cannot source dos format scripts,
|
||||
|
@ -1,4 +1,4 @@
|
||||
*os_mac.txt* For Vim version 8.0. Last change: 2017 Apr 28
|
||||
*os_mac.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@ -164,8 +164,9 @@ If you want to disable it, pass `--disable-darwin` to the configure script: >
|
||||
and then run `make` to build Vim. The order of the options doesn't matter.
|
||||
|
||||
To make sure at runtime whether or not the darwin feature is compiled in, you
|
||||
can use `has('macunix')` which returns 1 if the feature is compiled in; 0
|
||||
otherwise.
|
||||
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
|
||||
otherwise. For backward compatibility, you can still use `macunix` instead of
|
||||
`osxdarwin`.
|
||||
|
||||
Notable use cases where `--disable-darwin` is turned out to be useful are:
|
||||
|
||||
|
@ -81,10 +81,45 @@ The directory of the Vim executable is appended to $PATH. This is mostly to
|
||||
make "!xxd" work, as it is in the Tools menu. And it also means that when
|
||||
executable() returns 1 the executable can actually be executed.
|
||||
|
||||
Quotes in file names *win32-quotes*
|
||||
Command line arguments *win32-cmdargs*
|
||||
|
||||
Quotes inside a file name (or any other command line argument) can be escaped
|
||||
with a backslash. E.g. >
|
||||
Analysis of a command line into parameters is not standardised in MS Windows.
|
||||
Vim and gvim used to use different logic to parse it (before 7.4.432), and the
|
||||
logic was also depended on what it was compiled with. Now Vim and gvim both
|
||||
use the CommandLineToArgvW() Win32 API, so they behave in the same way.
|
||||
|
||||
The basic rules are: *win32-backslashes*
|
||||
a) A parameter is a sequence of graphic characters.
|
||||
b) Parameters are separated by white space.
|
||||
c) A parameter can be enclosed in double quotes to include white space.
|
||||
d) A sequence of zero or more backslashes (\) and a double quote (")
|
||||
is special. The effective number of backslashes is halved, rounded
|
||||
down. An even number of backslashes reverses the acceptability of
|
||||
spaces and tabs, an odd number of backslashes produces a literal
|
||||
double quote.
|
||||
|
||||
So:
|
||||
" is a special double quote
|
||||
\" is a literal double quote
|
||||
\\" is a literal backslash and a special double quote
|
||||
\\\" is a literal backslash and a literal double quote
|
||||
\\\\" is 2 literal backslashes and a special double quote
|
||||
\\\\\" is 2 literal backslashes and a literal double quote
|
||||
etc.
|
||||
|
||||
Example: >
|
||||
vim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
|
||||
|
||||
opens "C:\My Music\freude" and executes the line mode commands: >
|
||||
set ignorecase; /"foo\ and /bar\"
|
||||
|
||||
These rules are also described in the reference of the CommandLineToArgvW API:
|
||||
https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx
|
||||
|
||||
*win32-quotes*
|
||||
There are additional rules for quotes (which are not well documented).
|
||||
As described above, quotes inside a file name (or any other command line
|
||||
argument) can be escaped with a backslash. E.g. >
|
||||
vim -c "echo 'foo\"bar'"
|
||||
|
||||
Alternatively use three quotes to get one: >
|
||||
|
@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 8.0. Last change: 2016 Apr 20
|
||||
*pi_netrw.txt* For Vim version 8.0. Last change: 2017 Nov 03
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@ -6,7 +6,7 @@
|
||||
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
|
||||
(remove NOSPAM from Campbell's email first)
|
||||
|
||||
Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
|
||||
Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
||||
The VIM LICENSE applies to the files in this package, including
|
||||
netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
|
||||
syntax/netrw.vim. Like anything else that's free, netrw.vim and its
|
||||
@ -17,7 +17,6 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
|
||||
holder be liable for any damages resulting from the use of this
|
||||
software. Use at your own risk!
|
||||
|
||||
|
||||
*netrw*
|
||||
*dav* *ftp* *netrw-file* *rcp* *scp*
|
||||
*davs* *http* *netrw.vim* *rsync* *sftp*
|
||||
@ -73,7 +72,7 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
|
||||
Improving Browsing..................................|netrw-ssh-hack|
|
||||
Listing Bookmarks And History.......................|netrw-qb|
|
||||
Making A New Directory..............................|netrw-d|
|
||||
Making The Browsing Directory The Current Directory.|netrw-c|
|
||||
Making The Browsing Directory The Current Directory.|netrw-cd|
|
||||
Marking Files.......................................|netrw-mf|
|
||||
Unmarking Files.....................................|netrw-mF|
|
||||
Marking Files By Location List......................|netrw-qL|
|
||||
@ -83,6 +82,7 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
|
||||
Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
|
||||
Marked Files: Arbitrary Vim Command.................|netrw-mv|
|
||||
Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
|
||||
Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
|
||||
Marked Files: Compression And Decompression.........|netrw-mz|
|
||||
Marked Files: Copying...............................|netrw-mc|
|
||||
Marked Files: Diff..................................|netrw-md|
|
||||
@ -155,7 +155,7 @@ Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
|
||||
|
||||
let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
|
||||
<
|
||||
Netrw will substitute the host's machine name for "MACHINE" from the url it is
|
||||
Netrw will substitute the host's machine name for "MACHINE" from the URL it is
|
||||
attempting to open, and so one may specify >
|
||||
userid
|
||||
password
|
||||
@ -212,7 +212,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
|
||||
http: g:netrw_http_cmd = "fetch" elseif fetch is available
|
||||
http: *g:netrw_http_put_cmd* = "curl -T"
|
||||
rcp: *g:netrw_rcp_cmd* = "rcp"
|
||||
rsync: *g:netrw_rsync_cmd* = "rsync -a"
|
||||
rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
|
||||
scp: *g:netrw_scp_cmd* = "scp -q"
|
||||
sftp: *g:netrw_sftp_cmd* = "sftp"
|
||||
file: *g:netrw_file_cmd* = "elinks" or "links"
|
||||
@ -223,7 +223,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
|
||||
|
||||
elinks : "-source >"
|
||||
links : "-dump >"
|
||||
curl : "-o"
|
||||
curl : "-L -o"
|
||||
wget : "-q -O"
|
||||
fetch : "-o"
|
||||
<
|
||||
@ -238,7 +238,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
|
||||
|
||||
READING *netrw-read* *netrw-nread* {{{2
|
||||
|
||||
Generally, one may just use the url notation with a normal editing
|
||||
Generally, one may just use the URL notation with a normal editing
|
||||
command, such as >
|
||||
|
||||
:e ftp://[user@]machine/path
|
||||
@ -260,7 +260,7 @@ READING *netrw-read* *netrw-nread* {{{2
|
||||
|
||||
WRITING *netrw-write* *netrw-nwrite* {{{2
|
||||
|
||||
One may just use the url notation with a normal file writing
|
||||
One may just use the URL notation with a normal file writing
|
||||
command, such as >
|
||||
|
||||
:w ftp://[user@]machine/path
|
||||
@ -281,7 +281,7 @@ WRITING *netrw-write* *netrw-nwrite* {{{2
|
||||
|
||||
SOURCING *netrw-source* {{{2
|
||||
|
||||
One may just use the url notation with the normal file sourcing
|
||||
One may just use the URL notation with the normal file sourcing
|
||||
command, such as >
|
||||
|
||||
:so ftp://[user@]machine/path
|
||||
@ -479,7 +479,7 @@ file using root-relative paths, use the full path:
|
||||
==============================================================================
|
||||
4. Network-Oriented File Transfer *netrw-xfer* {{{1
|
||||
|
||||
Network-oriented file transfer under Vim is implemented by a VimL-based script
|
||||
Network-oriented file transfer under Vim is implemented by a vim script
|
||||
(<netrw.vim>) using plugin techniques. It currently supports both reading and
|
||||
writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
|
||||
dav/cadaver, rsync, or sftp.
|
||||
@ -532,7 +532,7 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
|
||||
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
|
||||
<
|
||||
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
|
||||
doesn't work, so it's best to leave it off for that system)
|
||||
doesn't work, so its best to leave it off for that system)
|
||||
|
||||
See |netrw-p8| for more about putty, pscp, psftp, etc.
|
||||
|
||||
@ -734,11 +734,11 @@ such as netrw.
|
||||
The usual read/write commands are supported. There are also a few
|
||||
additional commands available. Often you won't need to use Nwrite or
|
||||
Nread as shown in |netrw-transparent| (ie. simply use >
|
||||
:e url
|
||||
:r url
|
||||
:w url
|
||||
:e URL
|
||||
:r URL
|
||||
:w URL
|
||||
instead, as appropriate) -- see |netrw-urls|. In the explanations
|
||||
below, a {netfile} is an url to a remote file.
|
||||
below, a {netfile} is a URL to a remote file.
|
||||
|
||||
*:Nwrite* *:Nw*
|
||||
:[range]Nw[rite] Write the specified lines to the current
|
||||
@ -868,9 +868,11 @@ variables listed below, and may be modified by the user.
|
||||
g:netrw_http_cmd var ="fetch -o" if fetch is available
|
||||
g:netrw_http_cmd var ="wget -O" else if wget is available
|
||||
g:netrw_http_put_cmd var ="curl -T"
|
||||
|g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
|
||||
|g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
|
||||
g:netrw_rcp_cmd var ="rcp"
|
||||
g:netrw_rsync_cmd var ="rsync -a"
|
||||
g:netrw_rsync_cmd var ="rsync"
|
||||
*g:netrw_rsync_sep* var ="/" used to separate the hostname
|
||||
from the file spec
|
||||
g:netrw_scp_cmd var ="scp -q"
|
||||
g:netrw_sftp_cmd var ="sftp" >
|
||||
-------------------------------------------------------------------------
|
||||
@ -1007,7 +1009,7 @@ where [protocol] is typically scp or ftp. As an example, try: >
|
||||
vim ftp://ftp.home.vim.org/pub/vim/
|
||||
<
|
||||
For local directories, the trailing slash is not required. Again, because it's
|
||||
easy to miss: to browse remote directories, the url must terminate with a
|
||||
easy to miss: to browse remote directories, the URL must terminate with a
|
||||
slash!
|
||||
|
||||
If you'd like to avoid entering the password repeatedly for remote directory
|
||||
@ -1077,9 +1079,9 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
<c-r> Browse using a gvim server |netrw-ctrl-r|
|
||||
<c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
|
||||
- Makes Netrw go up one directory |netrw--|
|
||||
a Toggles between normal display, |netrw-a|
|
||||
a Cycles between normal display, |netrw-a|
|
||||
hiding (suppress display of files matching g:netrw_list_hide)
|
||||
showing (display only files which match g:netrw_list_hide)
|
||||
and showing (display only files which match g:netrw_list_hide)
|
||||
c Make browsing directory the current directory |netrw-c|
|
||||
C Setting the editing window |netrw-C|
|
||||
d Make a directory |netrw-d|
|
||||
@ -1090,6 +1092,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
gh Quick hide/unhide of dot-files |netrw-gh|
|
||||
gn Make top of tree the directory below the cursor |netrw-gn|
|
||||
i Cycle between thin, long, wide, and tree listings |netrw-i|
|
||||
I Toggle the displaying of the banner |netrw-I|
|
||||
mb Bookmark current directory |netrw-mb|
|
||||
mc Copy marked files to marked-file target directory |netrw-mc|
|
||||
md Apply diff to marked files (up to 3) |netrw-md|
|
||||
@ -1169,25 +1172,26 @@ QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
|
||||
|
||||
BANNER DISPLAY *netrw-I*
|
||||
|
||||
One may toggle the banner display on and off by pressing "I".
|
||||
One may toggle the displaying of the banner by pressing "I".
|
||||
|
||||
Also See: |g:netrw_banner|
|
||||
|
||||
|
||||
BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
|
||||
BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
|
||||
|
||||
One may easily "bookmark" the currently browsed directory by using >
|
||||
|
||||
mb
|
||||
<
|
||||
*.netrwbook*
|
||||
Bookmarks are retained in between sessions in a $HOME/.netrwbook file, and are
|
||||
kept in sorted order.
|
||||
Bookmarks are retained in between sessions of vim in a file called .netrwbook
|
||||
as a |List|, which is typically stored in the first directory on the user's
|
||||
'|runtimepath|'; entries are kept in sorted order.
|
||||
|
||||
If there are marked files and/or directories, mb will add them to the bookmark
|
||||
list.
|
||||
|
||||
*netrw-:NetrwMB*
|
||||
*netrw-:NetrwMB*
|
||||
Addtionally, one may use :NetrwMB to bookmark files or directories. >
|
||||
|
||||
:NetrwMB[!] [files/directories]
|
||||
@ -1206,7 +1210,7 @@ The :NetrwMB command is available outside of netrw buffers (once netrw has been
|
||||
invoked in the session).
|
||||
|
||||
The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
|
||||
default, it's stored on the first directory on the user's |'runtimepath'|.
|
||||
default, its stored on the first directory on the user's |'runtimepath'|.
|
||||
|
||||
Related Topics:
|
||||
|netrw-gb| how to return (go) to a bookmark
|
||||
@ -1418,20 +1422,20 @@ Related Topics:
|
||||
|
||||
CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
|
||||
|
||||
Every time you change to a new directory (new for the current session),
|
||||
netrw will save the directory in a recently-visited directory history
|
||||
list (unless |g:netrw_dirhistmax| is zero; by default, it's ten). With the
|
||||
"u" map, one can change to an earlier directory (predecessor). To do
|
||||
the opposite, see |netrw-U|.
|
||||
Every time you change to a new directory (new for the current session), netrw
|
||||
will save the directory in a recently-visited directory history list (unless
|
||||
|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
|
||||
map, one can change to an earlier directory (predecessor). To do the
|
||||
opposite, see |netrw-U|.
|
||||
|
||||
The "u" map also accepts counts to go back in the history several slots.
|
||||
For your convenience, qb (see |netrw-qb|) lists the history number which may
|
||||
be used in that count.
|
||||
The "u" map also accepts counts to go back in the history several slots. For
|
||||
your convenience, qb (see |netrw-qb|) lists the history number which may be
|
||||
used in that count.
|
||||
|
||||
*.netrwhist*
|
||||
See |g:netrw_dirhistmax| for how to control the quantity of history stack
|
||||
slots. The file ".netrwhist" holds history when netrw (and vim) is not
|
||||
active. By default, it's stored on the first directory on the user's
|
||||
active. By default, its stored on the first directory on the user's
|
||||
|'runtimepath'|.
|
||||
|
||||
Related Topics:
|
||||
@ -1467,10 +1471,10 @@ changing the top of the tree listing.
|
||||
|
||||
NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
|
||||
|
||||
With NetrwClean one may easily remove netrw from one's home directory;
|
||||
With :NetrwClean one may easily remove netrw from one's home directory;
|
||||
more precisely, from the first directory on your |'runtimepath'|.
|
||||
|
||||
With NetrwClean!, netrw will attempt to remove netrw from all directories on
|
||||
With :NetrwClean!, netrw will attempt to remove netrw from all directories on
|
||||
your |'runtimepath'|. Of course, you have to have write/delete permissions
|
||||
correct to do this.
|
||||
|
||||
@ -1502,7 +1506,7 @@ Netrw determines which special handler by the following method:
|
||||
If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
|
||||
used instead (see |netrw_filehandler|).
|
||||
|
||||
* for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
|
||||
* for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
|
||||
* for Gnome (with gnome-open): gnome-open is used.
|
||||
* for KDE (with kfmclient) : kfmclient is used
|
||||
* for Mac OS X : open is used.
|
||||
@ -1518,9 +1522,10 @@ will apply a special handler to it (like "x" works when in a netrw buffer).
|
||||
One may also use visual mode (see |visual-start|) to select the text that the
|
||||
special handler will use. Normally gx uses expand("<cfile>") to pick up the
|
||||
text under the cursor; one may change what |expand()| uses via the
|
||||
|g:netrw_gx| variable. Alternatively, one may select the text to be used by
|
||||
gx via first making a visual selection (see |visual-block|) or by changing
|
||||
the |'isfname'| option (which is global, so netrw doesn't modify it).
|
||||
|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
|
||||
expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
|
||||
select the text to be used by gx by making a visual selection (see
|
||||
|visual-block|) and then pressing gx.
|
||||
|
||||
Associated setting variables:
|
||||
|g:netrw_gx| control how gx picks up the text under the cursor
|
||||
@ -1612,6 +1617,11 @@ A further approach is to delete files which match a pattern.
|
||||
This will cause the matching files to be marked. Then,
|
||||
press "D".
|
||||
|
||||
If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
|
||||
is used to remove directories; instead, vim's |delete()| is used with
|
||||
the "d" option. Please note that only empty directories may be deleted
|
||||
with the "D" mapping. Regular files are deleted with |delete()|, too.
|
||||
|
||||
The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
|
||||
used to control the attempts to remove remote files and directories. The
|
||||
g:netrw_rm_cmd is used with files, and its default value is:
|
||||
@ -1675,17 +1685,18 @@ DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
|
||||
window.
|
||||
|
||||
Those who like this method often also often like tree style displays;
|
||||
Those who like this method often also like tree style displays;
|
||||
see |g:netrw_liststyle|.
|
||||
|
||||
:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
|
||||
Explorer window will open on the right hand side and an
|
||||
uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
|
||||
preferentially occur in the leftmost window).
|
||||
|
||||
Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
|
||||
|netrw-p| |netrw-P| |g:netrw_chgwin|
|
||||
|netrw-c-tab| |g:netrw_winsize|
|
||||
|
||||
:[N]Lexplore! is like :Lexplore, except that the full-height Explorer window
|
||||
will open on the right hand side and an uninitialized |g:netrw_chgwin|
|
||||
will be set to 1.
|
||||
|
||||
*netrw-:Sexplore*
|
||||
:[N]Sexplore will always split the window before invoking the local-directory
|
||||
browser. As with Explore, the splitting is normally done
|
||||
@ -1847,9 +1858,11 @@ EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
|
||||
|
||||
Pressing X while the cursor is atop an executable file will yield a prompt
|
||||
using the filename asking for any arguments. Upon pressing a [return], netrw
|
||||
will then call |system()| with that command and arguments. The result will
|
||||
be displayed by |:echomsg|, and so |:messages| will repeat display of the
|
||||
result. Ansi escape sequences will be stripped out.
|
||||
will then call |system()| with that command and arguments. The result will be
|
||||
displayed by |:echomsg|, and so |:messages| will repeat display of the result.
|
||||
Ansi escape sequences will be stripped out.
|
||||
|
||||
See |cmdline-window| for directions for more on how to edit the arguments.
|
||||
|
||||
|
||||
FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
|
||||
@ -2072,7 +2085,7 @@ Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|
||||
|g:netrw_remote_mkdir| |netrw-%|
|
||||
|
||||
|
||||
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
|
||||
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
|
||||
|
||||
By default, |g:netrw_keepdir| is 1. This setting means that the current
|
||||
directory will not track the browsing directory. (done for backwards
|
||||
@ -2087,6 +2100,9 @@ the two directories the same, use the "c" map (just type c). That map will
|
||||
set Vim's notion of the current directory to netrw's current browsing
|
||||
directory.
|
||||
|
||||
*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
|
||||
This change was done to allow for |netrw-cb| and |netrw-cB| maps.
|
||||
|
||||
Associated setting variable: |g:netrw_keepdir|
|
||||
|
||||
MARKING FILES *netrw-:MF* *netrw-mf* {{{2
|
||||
@ -2131,6 +2147,7 @@ The following netrw maps make use of marked files:
|
||||
|netrw-mg| Apply vimgrep to marked files
|
||||
|netrw-mm| Move marked files to target
|
||||
|netrw-mp| Print marked files
|
||||
|netrw-ms| Netrw will source marked files
|
||||
|netrw-mt| Set target for |netrw-mm| and |netrw-mc|
|
||||
|netrw-mT| Generate tags using marked files
|
||||
|netrw-mv| Apply vim command to marked files
|
||||
@ -2205,6 +2222,9 @@ converts "*" into ".*" (see |regexp|) and marks files based on that. In the
|
||||
future I may make it possible to use |regexp|s instead of glob()-style
|
||||
expressions (yet-another-option).
|
||||
|
||||
See |cmdline-window| for directions on more on how to edit the regular
|
||||
expression.
|
||||
|
||||
|
||||
MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
|
||||
(See |netrw-mf| and |netrw-mr| for how to mark files)
|
||||
@ -2218,8 +2238,9 @@ the local marked file list, individually:
|
||||
* run vim command
|
||||
* sil! keepalt wq!
|
||||
|
||||
A prompt, "Enter vim command: ", will be issued to elicit the vim command
|
||||
you wish used.
|
||||
A prompt, "Enter vim command: ", will be issued to elicit the vim command you
|
||||
wish used. See |cmdline-window| for directions for more on how to edit the
|
||||
command.
|
||||
|
||||
|
||||
MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
|
||||
@ -2270,7 +2291,17 @@ MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
|
||||
Using ma, one moves filenames from the marked file list to the argument list.
|
||||
Using mA, one moves filenames from the argument list to the marked file list.
|
||||
|
||||
See Also: |netrw-qF| |argument-list| |:args|
|
||||
See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
|
||||
|
||||
|
||||
MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
|
||||
(See |netrw-mf| and |netrw-mr| for how to mark files)
|
||||
(uses the global marked-file list)
|
||||
|
||||
Using cb, one moves filenames from the marked file list to the buffer list.
|
||||
Using cB, one copies filenames from the buffer list to the marked file list.
|
||||
|
||||
See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
|
||||
|
||||
|
||||
MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
|
||||
@ -2306,8 +2337,8 @@ One may also copy directories and their contents (local only) to a target
|
||||
directory.
|
||||
|
||||
Associated setting variables:
|
||||
|g:netrw_localcopycmd|
|
||||
|g:netrw_localcopydircmd|
|
||||
|g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
|
||||
|g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
|
||||
|g:netrw_ssh_cmd|
|
||||
|
||||
MARKED FILES: DIFF *netrw-md* {{{2
|
||||
@ -2452,8 +2483,8 @@ When a remote set of files are tagged, the resulting tags file is "obtained";
|
||||
ie. a copy is transferred to the local system's directory. The now local tags
|
||||
file is then modified so that one may use it through the network. The
|
||||
modification made concerns the names of the files in the tags; each filename is
|
||||
preceded by the netrw-compatible url used to obtain it. When one subsequently
|
||||
uses one of the go to tag actions (|tags|), the url will be used by netrw to
|
||||
preceded by the netrw-compatible URL used to obtain it. When one subsequently
|
||||
uses one of the go to tag actions (|tags|), the URL will be used by netrw to
|
||||
edit the desired file and go to the tag.
|
||||
|
||||
Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
|
||||
@ -2555,8 +2586,8 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
editing. It will also use the specified tab
|
||||
and window numbers to perform editing
|
||||
(see |clientserver|, |netrw-ctrl-r|)
|
||||
This option does not affect |:Lexplore|
|
||||
windows.
|
||||
This option does not affect the production of
|
||||
|:Lexplore| windows.
|
||||
|
||||
Related topics:
|
||||
|g:netrw_alto| |g:netrw_altv|
|
||||
@ -2715,6 +2746,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
*g:netrw_home* The home directory for where bookmarks and
|
||||
history are saved (as .netrwbook and
|
||||
.netrwhist).
|
||||
Netrw uses |expand()|on the string.
|
||||
default: the first directory on the
|
||||
|'runtimepath'|
|
||||
|
||||
@ -2735,7 +2767,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
default: (if ssh is executable)
|
||||
"ssh HOSTNAME ls -FLa"
|
||||
|
||||
*g:netrw_list_cmd_options* If this variable exists, then its contents are
|
||||
*g:netrw_list_cmd_options* If this variable exists, then its contents are
|
||||
appended to the g:netrw_list_cmd. For
|
||||
example, use "2>/dev/null" to get rid of banner
|
||||
messages on unix systems.
|
||||
@ -2761,26 +2793,52 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
|
||||
default: ""
|
||||
|
||||
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
|
||||
="copy" Windows
|
||||
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
|
||||
=expand("$COMSPEC") Windows
|
||||
Copies marked files (|netrw-mf|) to target
|
||||
directory (|netrw-mt|, |netrw-mc|)
|
||||
|
||||
*g:netrw_localcopydircmd* ="cp -R" Linux/Unix/MacOS/Cygwin
|
||||
="xcopy /e /c /h/ /i /k" Windows
|
||||
*g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
|
||||
=' \c copy' Windows
|
||||
Options for the |g:netrw_localcopycmd|
|
||||
|
||||
*g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
|
||||
=expand("$COMSPEC") Windows
|
||||
Copies directories to target directory.
|
||||
(|netrw-mc|, |netrw-mt|)
|
||||
|
||||
*g:netrw_localmkdir* command for making a local directory
|
||||
default: "mkdir"
|
||||
*g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
|
||||
=" /c xcopy /e /c /h/ /i /k" Windows
|
||||
Options for |g:netrw_localcopydircmd|
|
||||
|
||||
*g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
|
||||
="move" Windows
|
||||
*g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
|
||||
=expand("$COMSPEC") Windows
|
||||
command for making a local directory
|
||||
|
||||
*g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
|
||||
=" /c mkdir" Windows
|
||||
Options for |g:netrw_localmkdir|
|
||||
|
||||
*g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
|
||||
=expand("$COMSPEC") Windows
|
||||
Moves marked files (|netrw-mf|) to target
|
||||
directory (|netrw-mt|, |netrw-mm|)
|
||||
|
||||
*g:netrw_localrmdir* remove directory command (rmdir)
|
||||
default: "rmdir"
|
||||
*g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
|
||||
=" /c move" Windows
|
||||
Options for |g:netrw_localmovecmd|
|
||||
|
||||
*g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
|
||||
=expand("$COMSPEC") Windows
|
||||
Remove directory command (rmdir)
|
||||
This variable is only used if your vim is
|
||||
earlier than 7.4 or if your vim doesn't
|
||||
have patch#1107. Otherwise, |delete()|
|
||||
is used with the "d" option.
|
||||
|
||||
*g:netrw_localrmdiropt* ="" Linux/Unix/MacOS/Cygwin
|
||||
=" /c rmdir" Windows
|
||||
Options for |g:netrw_localrmdir|
|
||||
|
||||
*g:netrw_maxfilenamelen* =32 by default, selected so as to make long
|
||||
listings fit on 80 column displays.
|
||||
@ -2893,17 +2951,23 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
netrwTilde : *
|
||||
netrwTmp : tmp* *tmp
|
||||
|
||||
These syntax highlighting groups are linked
|
||||
to Folded or DiffChange by default
|
||||
(see |hl-Folded| and |hl-DiffChange|), but
|
||||
one may put lines like >
|
||||
In addition, those groups mentioned in
|
||||
|'suffixes'| are also added to the special
|
||||
file highlighting group.
|
||||
These syntax highlighting groups are linked
|
||||
to netrwGray or Folded by default
|
||||
(see |hl-Folded|), but one may put lines like >
|
||||
hi link netrwCompress Visual
|
||||
< into one's <.vimrc> to use one's own
|
||||
preferences. Alternatively, one may
|
||||
put such specifications into
|
||||
.vim/after/syntax/netrw.vim.
|
||||
|
||||
As an example, I myself use a dark-background
|
||||
put such specifications into >
|
||||
.vim/after/syntax/netrw.vim.
|
||||
< The netrwGray highlighting is set up by
|
||||
netrw when >
|
||||
* netrwGray has not been previously
|
||||
defined
|
||||
* the gui is running
|
||||
< As an example, I myself use a dark-background
|
||||
colorscheme with the following in
|
||||
.vim/after/syntax/netrw.vim: >
|
||||
|
||||
@ -3138,8 +3202,8 @@ If there are no marked files: (see |netrw-mf|)
|
||||
|
||||
Renaming files and directories involves moving the cursor to the
|
||||
file/directory to be moved (renamed) and pressing "R". You will then be
|
||||
queried for what you want the file/directory to be renamed to You may select
|
||||
a range of lines with the "V" command (visual selection), and then
|
||||
queried for what you want the file/directory to be renamed to. You may
|
||||
select a range of lines with the "V" command (visual selection), and then
|
||||
press "R"; you will be queried for each file as to what you want it
|
||||
renamed to.
|
||||
|
||||
@ -3171,16 +3235,20 @@ If there are marked files: (see |netrw-mf|)
|
||||
|
||||
Note that moving files is a dangerous operation; copies are safer. That's
|
||||
because a "move" for remote files is actually a copy + delete -- and if
|
||||
the copy fails and the delete does not, you may lose the file.
|
||||
the copy fails and the delete succeeds you may lose the file.
|
||||
Use at your own risk.
|
||||
|
||||
The g:netrw_rename_cmd variable is used to implement remote renaming. By
|
||||
default its value is:
|
||||
The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
|
||||
default its value is: >
|
||||
|
||||
ssh HOSTNAME mv
|
||||
|
||||
<
|
||||
One may rename a block of files and directories by selecting them with
|
||||
V (|linewise-visual|) when using thin style
|
||||
V (|linewise-visual|) when using thin style.
|
||||
|
||||
See |cmdline-editing| for more on how to edit the command line; in particular,
|
||||
you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
|
||||
command line under the cursor) useful in conjunction with the R command.
|
||||
|
||||
|
||||
SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
|
||||
@ -3201,8 +3269,8 @@ number. Subsequent selection of a file to edit (|netrw-cr|) will use that
|
||||
window.
|
||||
|
||||
* C : by itself, will select the current window holding a netrw buffer
|
||||
for editing via |netrw-cr|. The C mapping is only available while in
|
||||
netrw buffers.
|
||||
for subsequent editing via |netrw-cr|. The C mapping is only available
|
||||
while in netrw buffers.
|
||||
|
||||
* [count]C : the count will be used as the window number to be used
|
||||
for subsequent editing via |netrw-cr|.
|
||||
@ -3215,7 +3283,7 @@ window.
|
||||
Using >
|
||||
let g:netrw_chgwin= -1
|
||||
will restore the default editing behavior
|
||||
(ie. editing will use the current window).
|
||||
(ie. subsequent editing will use the current window).
|
||||
|
||||
Related topics: |netrw-cr| |g:netrw_browse_split|
|
||||
Associated setting variables: |g:netrw_chgwin|
|
||||
@ -3236,9 +3304,9 @@ only if your terminal supports differentiating <c-tab> from a plain
|
||||
|
||||
* Else bring up a |:Lexplore| window
|
||||
|
||||
If |g:netrw_usetab| exists or is zero, or if there is a pre-existing mapping
|
||||
If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
|
||||
for <c-tab>, then the <c-tab> will not be mapped. One may map something other
|
||||
than a <c-tab>, too: (but you'll still need to have had g:netrw_usetab set) >
|
||||
than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
|
||||
|
||||
nmap <unique> (whatever) <Plug>NetrwShrink
|
||||
<
|
||||
@ -3271,9 +3339,10 @@ The user function is passed one argument; it resembles >
|
||||
|
||||
fun! ExampleUserMapFunc(islocal)
|
||||
<
|
||||
where a:islocal is 1 if it's a local-directory system call or 0 when
|
||||
where a:islocal is 1 if its a local-directory system call or 0 when
|
||||
remote-directory system call.
|
||||
|
||||
*netrw-call* *netrw-expose* *netrw-modify*
|
||||
Use netrw#Expose("varname") to access netrw-internal (script-local)
|
||||
variables.
|
||||
Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
|
||||
@ -3595,7 +3664,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
|
||||
*netrw-p16*
|
||||
P16. When editing remote files (ex. :e ftp://hostname/path/file),
|
||||
under Windows I get an |E303| message complaining that it's unable
|
||||
under Windows I get an |E303| message complaining that its unable
|
||||
to open a swap file.
|
||||
|
||||
(romainl) It looks like you are starting Vim from a protected
|
||||
@ -3649,7 +3718,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
P21. I've made a directory (or file) with an accented character, but
|
||||
netrw isn't letting me enter that directory/read that file:
|
||||
|
||||
It's likely that the shell or o/s is using a different encoding
|
||||
Its likely that the shell or o/s is using a different encoding
|
||||
than you have vim (netrw) using. A patch to vim supporting
|
||||
"systemencoding" may address this issue in the future; for
|
||||
now, just have netrw use the proper encoding. For example: >
|
||||
@ -3765,6 +3834,102 @@ netrw:
|
||||
==============================================================================
|
||||
12. History *netrw-history* {{{1
|
||||
|
||||
v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
|
||||
with a patch; these are now fixed.
|
||||
Oct 26, 2016 * I started using mate-terminal and found that
|
||||
x and gx (|netrw-x| and |netrw-gx|) were no
|
||||
longer working. Fixed (using atril when
|
||||
$DESKTOP_SESSION is "mate").
|
||||
Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
|
||||
being restored with keepregstar rather than
|
||||
keepregplus.
|
||||
Nov 09, 2016 * Broke apart the command from the options,
|
||||
mostly for Windows. Introduced new netrw
|
||||
settings: |g:netrw_localcopycmdopt|
|
||||
|g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
|
||||
|g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
|
||||
Nov 21, 2016 * (mattn) provided a patch for preview; swapped
|
||||
winwidth() with winheight()
|
||||
Nov 22, 2016 * (glacambre) reported that files containing
|
||||
spaces weren't being obtained properly via
|
||||
scp. Fix: apparently using single quotes
|
||||
such as with 'file name' wasn't enough; the
|
||||
spaces inside the quotes also had to be
|
||||
escaped (ie. 'file\ name').
|
||||
* Also fixed obtain (|netrw-O|) to be able to
|
||||
obtain files with spaces in their names
|
||||
Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
|
||||
when atop "Hiding" in the banner also caused
|
||||
the active-banner hiding control to occur
|
||||
Jan 03, 2017 * (Enno Nagel) reported that attempting to
|
||||
apply netrw to a directory that was without
|
||||
read permission caused a syntax error.
|
||||
Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
|
||||
using netrw#Call() better. Now returns
|
||||
value of internal routines return, for example.
|
||||
Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
|
||||
use |:edit| instead of |:read|. I also
|
||||
changed the routine name to netrw#FileUrlEdit.
|
||||
Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
|
||||
could generate a new listing buffer and
|
||||
window instead of toggling the netrw display.
|
||||
Unfortunately, the directions for eliciting
|
||||
the problem weren't complete, so I may or
|
||||
may not have fixed that issue.
|
||||
Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
|
||||
(see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
|
||||
Mar 21, 2017 * previously, netrw would specify (safe) settings
|
||||
even when the setting was already safe for
|
||||
netrw. Netrw now attempts to leave such
|
||||
already-netrw-safe settings alone.
|
||||
(affects s:NetrwOptionRestore() and
|
||||
s:NetrwSafeOptions(); also introduced
|
||||
s:NetrwRestoreSetting())
|
||||
Jun 26, 2017 * (Christian Brabandt) provided a patch to
|
||||
allow curl to follow redirects (ie. -L
|
||||
option)
|
||||
Jun 26, 2017 * (Callum Howard) reported a problem with
|
||||
:Lexpore not removing the Lexplore window
|
||||
after a change-directory
|
||||
Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
|
||||
previously edited file (e.g. with CTRL-^)
|
||||
after editing a file:// URL. Patch to
|
||||
have a "keepalt" included.
|
||||
Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
|
||||
did not work on directories in the current
|
||||
tree
|
||||
v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
|
||||
a function that returned a 0 while silently
|
||||
invoking a shell command. The shell command
|
||||
activated a ShellCmdPost event which in turn
|
||||
called s:LocalBrowseRefresh(). That looks
|
||||
over all netrw buffers for changes needing
|
||||
refreshes. However, inside a |:map-<expr>|,
|
||||
tab and window changes are disallowed. Fixed.
|
||||
(affects netrw's s:LocalBrowseRefresh())
|
||||
* |g:netrw_localrmdir| not used any more, but
|
||||
the relevant patch that causes |delete()| to
|
||||
take over was #1107 (not #1109).
|
||||
* |expand()| is now used on |g:netrw_home|;
|
||||
consequently, g:netrw_home may now use
|
||||
environment variables
|
||||
* s:NetrwLeftmouse and s:NetrwCLeftmouse will
|
||||
return without doing anything if invoked
|
||||
when inside a non-netrw window
|
||||
Jun 15, 2016 * gx now calls netrw#GX() which returns
|
||||
the word under the cursor. The new
|
||||
wrinkle: if one is in a netrw buffer,
|
||||
then netrw's s:NetrwGetWord().
|
||||
Jun 22, 2016 * Netrw was executing all its associated
|
||||
Filetype commands silently; I'm going
|
||||
to try doing that "noisily" and see if
|
||||
folks have a problem with that.
|
||||
Aug 12, 2016 * Changed order of tool selection for
|
||||
handling http://... viewing.
|
||||
(Nikolay Aleksandrovich Pavlov)
|
||||
Aug 21, 2016 * Included hiding/showing/all for tree
|
||||
listings
|
||||
* Fixed refresh (^L) for tree listings
|
||||
v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
|
||||
Feb 23, 2016 * s:ComposePath(base,subdir) now uses
|
||||
fnameescape() on the base portion
|
||||
@ -3796,9 +3961,9 @@ netrw:
|
||||
tell me how they're useful and should be
|
||||
retained?
|
||||
Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
|
||||
Nov 20, 2015 * gx (|netrw-gx|) on an url downloaded the
|
||||
Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
|
||||
file in addition to simply bringing up the
|
||||
url in a browser. Fixed.
|
||||
URL in a browser. Fixed.
|
||||
Nov 23, 2015 * Added |g:netrw_sizestyle| support
|
||||
Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
|
||||
maps.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Jun 13
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Dec 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -47,11 +47,6 @@ compiler (see |errorformat| below).
|
||||
*quickfix-ID*
|
||||
Each quickfix list has a unique identifier called the quickfix ID and this
|
||||
number will not change within a Vim session. The getqflist() function can be
|
||||
used to get the identifier assigned to a list.
|
||||
|
||||
*quickfix-ID*
|
||||
Each quickfix list has a unique identifier called the quickfix ID and this
|
||||
number will not change within a Vim session. The getqflist() function can be
|
||||
used to get the identifier assigned to a list. There is also a quickfix list
|
||||
number which may change whenever more than ten lists are added to a quickfix
|
||||
stack.
|
||||
@ -69,6 +64,14 @@ When a window with a location list is split, the new window gets a copy of the
|
||||
location list. When there are no longer any references to a location list,
|
||||
the location list is destroyed.
|
||||
|
||||
*quickfix-changedtick*
|
||||
Every quickfix and location list has a read-only changedtick variable that
|
||||
tracks the total number of changes made to the list. Every time the quickfix
|
||||
list is modified, this count is incremented. This can be used to perform an
|
||||
action only when the list has changed. The getqflist() and getloclist()
|
||||
functions can be used to query the current value of changedtick. You cannot
|
||||
change the changedtick variable.
|
||||
|
||||
The following quickfix commands can be used. The location list commands are
|
||||
similar to the quickfix commands, replacing the 'c' prefix in the quickfix
|
||||
command with 'l'.
|
||||
@ -346,6 +349,50 @@ use this code: >
|
||||
au QuickfixCmdPost make call QfMakeConv()
|
||||
Another option is using 'makeencoding'.
|
||||
|
||||
*quickfix-title*
|
||||
Every quickfix and location list has a title. By default the title is set to
|
||||
the command that created the list. The |getqflist()| and |getloclist()|
|
||||
functions can be used to get the title of a quickfix and a location list
|
||||
respectively. The |setqflist()| and |setloclist()| functions can be used to
|
||||
modify the title of a quickfix and location list respectively. Examples: >
|
||||
call setqflist([], 'a', {'title' : 'Cmd output'})
|
||||
echo getqflist({'title' : 1})
|
||||
call setloclist(3, [], 'a', {'title' : 'Cmd output'})
|
||||
echo getloclist(3, {'title' : 1})
|
||||
<
|
||||
*quickfix-size*
|
||||
You can get the number of entries (size) in a quickfix and a location list
|
||||
using the |getqflist()| and |getloclist()| functions respectively. Examples: >
|
||||
echo getqflist({'size' : 1})
|
||||
echo getloclist(5, {'size' : 1})
|
||||
<
|
||||
*quickfix-context*
|
||||
Any Vim type can be associated as a context with a quickfix or location list.
|
||||
The |setqflist()| and the |setloclist()| functions can be used to associate a
|
||||
context with a quickfix and a location list respectively. The |getqflist()|
|
||||
and the |getloclist()| functions can be used to retrieve the context of a
|
||||
quickfix and a location list respectively. This is useful for a Vim plugin
|
||||
dealing with multiple quickfix/location lists.
|
||||
Examples: >
|
||||
|
||||
let somectx = {'name' : 'Vim', 'type' : 'Editor'}
|
||||
call setqflist([], 'a', {'context' : somectx})
|
||||
echo getqflist({'context' : 1})
|
||||
|
||||
let newctx = ['red', 'green', 'blue']
|
||||
call setloclist(2, [], 'a', {'id' : qfid, 'context' : newctx})
|
||||
echo getloclist(2, {'id' : qfid, 'context' : 1})
|
||||
<
|
||||
*quickfix-parse*
|
||||
You can parse a list of lines using 'errorformat' without creating or
|
||||
modifying a quickfix list using the |getqflist()| function. Examples: >
|
||||
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
|
||||
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
|
||||
This returns a dictionary where the 'items' key contains the list of quickfix
|
||||
entries parsed from lines. The following shows how to use a custom
|
||||
'errorformat' to parse the lines without modifying the 'errorformat' option: >
|
||||
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
|
||||
<
|
||||
|
||||
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
||||
*:cdo*
|
||||
@ -547,6 +594,13 @@ In all of the above cases, if the location list for the selected window is not
|
||||
yet set, then it is set to the location list displayed in the location list
|
||||
window.
|
||||
|
||||
*quickfix-window-ID*
|
||||
You can use the |getqflist()| and |getloclist()| functions to obtain the
|
||||
window ID of the quickfix window and location list window respectively (if
|
||||
present). Examples: >
|
||||
echo getqflist({'winid' : 1}).winid
|
||||
echo getloclist(2, {'winid' : 1}).winid
|
||||
<
|
||||
=============================================================================
|
||||
3. Using more than one list of errors *quickfix-error-lists*
|
||||
|
||||
@ -591,6 +645,14 @@ list, one newer list is overwritten. This is especially useful if you are
|
||||
browsing with ":grep" |grep|. If you want to keep the more recent error
|
||||
lists, use ":cnewer 99" first.
|
||||
|
||||
To get the number of lists in the quickfix and location list stack, you can
|
||||
use the |getqflist()| and |getloclist()| functions respectively with the list
|
||||
number set to the special value '$'. Examples: >
|
||||
echo getqflist({'nr' : '$'}).nr
|
||||
echo getloclist(3, {'nr' : '$'}).nr
|
||||
To get the number of the current list in the stack: >
|
||||
echo getqflist({'nr' : 0}).nr
|
||||
<
|
||||
=============================================================================
|
||||
4. Using :make *:make_makeprg*
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Aug 19
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Nov 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -618,7 +618,8 @@ Short explanation of each option: *option-list*
|
||||
'backupext' 'bex' extension used for the backup file
|
||||
'backupskip' 'bsk' no backup for files that match these patterns
|
||||
'balloondelay' 'bdlay' delay in mS before a balloon may pop up
|
||||
'ballooneval' 'beval' switch on balloon evaluation
|
||||
'ballooneval' 'beval' switch on balloon evaluation in the GUI
|
||||
'balloonevalterm' 'bevalterm' switch on balloon evaluation in the terminal
|
||||
'balloonexpr' 'bexpr' expression to show in balloon
|
||||
'belloff' 'bo' do not ring the bell for these reasons
|
||||
'binary' 'bin' read/write/edit file in binary mode
|
||||
@ -749,6 +750,7 @@ Short explanation of each option: *option-list*
|
||||
'iminsert' 'imi' use :lmap or IM in Insert mode
|
||||
'imsearch' 'ims' use :lmap or IM when typing a search pattern
|
||||
'imstatusfunc' 'imsf' function to obtain X input method status
|
||||
'imstyle' 'imst' specifies the input style of the input method
|
||||
'include' 'inc' pattern to be used to find an include file
|
||||
'includeexpr' 'inex' expression used to process an include line
|
||||
'incsearch' 'is' highlight match while typing search pattern
|
||||
@ -779,6 +781,8 @@ Short explanation of each option: *option-list*
|
||||
'listchars' 'lcs' characters for displaying in list mode
|
||||
'loadplugins' 'lpl' load plugin scripts when starting up
|
||||
'luadll' name of the Lua dynamic library
|
||||
'mzschemedll' name of the MzScheme dynamic library
|
||||
'mzschemegcdll' name of the MzScheme dynamic library for GC
|
||||
'macatsui' Mac GUI: use ATSUI text drawing
|
||||
'magic' changes special characters in search patterns
|
||||
'makeef' 'mef' name of the errorfile for ":make"
|
||||
|
@ -1,4 +1,4 @@
|
||||
*remote.txt* For Vim version 8.0. Last change: 2017 Aug 01
|
||||
*remote.txt* For Vim version 8.0. Last change: 2017 Nov 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -181,7 +181,8 @@ 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.
|
||||
--servername argument, or when Vim was build 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.0. Last change: 2017 Jun 10
|
||||
*repeat.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -242,6 +242,10 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
If the directory pack/*/opt/{name}/after exists it is
|
||||
added at the end of 'runtimepath'.
|
||||
|
||||
If loading packages from "pack/*/start" was skipped,
|
||||
then this directory is searched first:
|
||||
pack/*/start/{name} ~
|
||||
|
||||
Note that {name} is the directory name, not the name
|
||||
of the .vim file. All the files matching the pattern
|
||||
pack/*/opt/{name}/plugin/**/*.vim ~
|
||||
|
@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 8.0. Last change: 2016 Jan 08
|
||||
*spell.txt* For Vim version 8.0. Last change: 2017 Oct 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -723,7 +723,7 @@ Additionally the following items are recognized:
|
||||
= Case must match exactly.
|
||||
? Rare word.
|
||||
! Bad (wrong) word.
|
||||
digit A region in which the word is valid. If no regions are
|
||||
1 to 9 A region in which the word is valid. If no regions are
|
||||
specified the word is valid in all regions.
|
||||
|
||||
Example:
|
||||
|
@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||
*starting.txt* For Vim version 8.0. Last change: 2018 Jan 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -58,9 +58,9 @@ filename One or more file names. The first one will be the current
|
||||
that is read from stdin. The commands that would normally be
|
||||
read from stdin will now be read from stderr. Example: >
|
||||
find . -name "*.c" -print | vim -
|
||||
< The buffer will be marked modified, because it contains text
|
||||
that needs to be saved. Except when in readonly mode, then
|
||||
the buffer is not marked modified. Example: >
|
||||
< The buffer will not be marked as modified, so that it's easy
|
||||
to exit. Be careful to mark it as modified if you don't want
|
||||
to accidentally lose it. Example: >
|
||||
ls | view -
|
||||
<
|
||||
Starting in Ex mode: >
|
||||
@ -421,7 +421,9 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
*--not-a-term*
|
||||
--not-a-term Tells Vim that the user knows that the input and/or output is
|
||||
not connected to a terminal. This will avoid the warning and
|
||||
the two second delay that would happen. {not in Vi}
|
||||
the two second delay that would happen.
|
||||
Also avoids the "Reading from stdin..." message.
|
||||
{not in Vi}
|
||||
|
||||
*--ttyfail*
|
||||
--ttyfail When the stdin or stdout is not a terminal (tty) then exit
|
||||
@ -873,6 +875,9 @@ accordingly. Vim proceeds in this order:
|
||||
(*) Using this file or environment variable will cause 'compatible' to be
|
||||
off by default. See |compatible-default|.
|
||||
|
||||
Note: When using the |mzscheme| interface, it is initialized after loading
|
||||
the vimrc file. Changing 'mzschemedll' later has no effect.
|
||||
|
||||
4. Load the plugin scripts. *load-plugins*
|
||||
This does the same as the command: >
|
||||
:runtime! plugin/**/*.vim
|
||||
@ -1038,13 +1043,13 @@ giving the mapping.
|
||||
Defaults without a .vimrc file ~
|
||||
*defaults.vim*
|
||||
If Vim is started normally and no user vimrc file is found, the
|
||||
$VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
||||
$VIMRUNTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
||||
switch on syntax highlighting and a few more things. See the script for
|
||||
details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
|
||||
patch 7.4.2111 to be exact).
|
||||
|
||||
This should work well for new Vim users. If you create your own .vimrc, it is
|
||||
recommended to add this line somewhere near the top: >
|
||||
recommended to add these lines somewhere near the top: >
|
||||
unlet! skip_defaults_vim
|
||||
source $VIMRUNTIME/defaults.vim
|
||||
Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
|
||||
@ -1415,7 +1420,7 @@ The output of ":mkview" contains these items:
|
||||
5. The scroll position and the cursor position in the file. Doesn't work very
|
||||
well when there are closed folds.
|
||||
6. The local current directory, if it is different from the global current
|
||||
directory.
|
||||
directory and 'viewoptions' contains "curdir".
|
||||
|
||||
Note that Views and Sessions are not perfect:
|
||||
- They don't restore everything. For example, defined functions, autocommands
|
||||
@ -1527,7 +1532,7 @@ Notes for Unix:
|
||||
you have worked with.
|
||||
- If you want to share the viminfo file with other users (e.g. when you "su"
|
||||
to another user), you can make the file writable for the group or everybody.
|
||||
Vim will preserve this when writing new viminfo files. Be careful, don't
|
||||
Vim will preserve this when replacing the viminfo file. Be careful, don't
|
||||
allow just anybody to read and write your viminfo file!
|
||||
- Vim will not overwrite a viminfo file that is not writable by the current
|
||||
"real" user. This helps for when you did "su" to become root, but your
|
||||
|
@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Aug 12
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2018 Jan 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -61,10 +61,12 @@ fine. If it doesn't, try setting the VIM environment variable to the
|
||||
directory where the Vim stuff is located. For example, if your syntax files
|
||||
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
|
||||
"/usr/vim/vim50". You must do this in the shell, before starting Vim.
|
||||
This command also sources the |menu.vim| script when the GUI is running or
|
||||
will start soon. See |'go-M'| about avoiding that.
|
||||
|
||||
*:syn-on* *:syntax-on*
|
||||
The ":syntax enable" command will keep your current color settings. This
|
||||
allows using ":highlight" commands to set your preferred colors before or
|
||||
The `:syntax enable` command will keep your current color settings. This
|
||||
allows using `:highlight` commands to set your preferred colors before or
|
||||
after using this command. If you want Vim to overrule your settings with the
|
||||
defaults, use: >
|
||||
:syntax on
|
||||
@ -810,12 +812,9 @@ See |mysyntaxfile-add| for installing script languages permanently.
|
||||
|
||||
APACHE *apache.vim* *ft-apache-syntax*
|
||||
|
||||
The apache syntax file provides syntax highlighting depending on Apache HTTP
|
||||
server version, by default for 1.3.x. Set "apache_version" to Apache version
|
||||
(as a string) to get highlighting for another version. Example: >
|
||||
The apache syntax file provides syntax highlighting for Apache HTTP server
|
||||
version 2.2.3.
|
||||
|
||||
:let apache_version = "2.0"
|
||||
<
|
||||
|
||||
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
|
||||
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
|
||||
@ -5026,12 +5025,19 @@ StatusLine status line of current window
|
||||
StatusLineNC status lines of not-current windows
|
||||
Note: if this is equal to "StatusLine" Vim will use "^^^" in
|
||||
the status line of the current window.
|
||||
*hl-StatusLineTerm*
|
||||
StatusLineTerm status line of current window, if it is a |terminal| window.
|
||||
*hl-StatusLineTermNC*
|
||||
StatusLineTermNC status lines of not-current windows that is a |terminal|
|
||||
window.
|
||||
*hl-TabLine*
|
||||
TabLine tab pages line, not active tab page label
|
||||
*hl-TabLineFill*
|
||||
TabLineFill tab pages line, where there are no labels
|
||||
*hl-TabLineSel*
|
||||
TabLineSel tab pages line, active tab page label
|
||||
*hl-Terminal*
|
||||
Terminal |terminal| window (see |terminal-size-color|)
|
||||
*hl-Title*
|
||||
Title titles for output from ":set all", ":autocmd" etc.
|
||||
*hl-Visual*
|
||||
|
105
runtime/doc/tags
105
runtime/doc/tags
@ -4,6 +4,7 @@
|
||||
$ motion.txt /*$*
|
||||
$HOME options.txt /*$HOME*
|
||||
$HOME-use version5.txt /*$HOME-use*
|
||||
$HOME-windows options.txt /*$HOME-windows*
|
||||
$MYGVIMRC gui.txt /*$MYGVIMRC*
|
||||
$MYVIMRC starting.txt /*$MYVIMRC*
|
||||
$VIM starting.txt /*$VIM*
|
||||
@ -73,12 +74,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'backupskip' options.txt /*'backupskip'*
|
||||
'balloondelay' options.txt /*'balloondelay'*
|
||||
'ballooneval' options.txt /*'ballooneval'*
|
||||
'balloonevalterm' options.txt /*'balloonevalterm'*
|
||||
'balloonexpr' options.txt /*'balloonexpr'*
|
||||
'bdir' options.txt /*'bdir'*
|
||||
'bdlay' options.txt /*'bdlay'*
|
||||
'beautify' vi_diff.txt /*'beautify'*
|
||||
'belloff' options.txt /*'belloff'*
|
||||
'beval' options.txt /*'beval'*
|
||||
'bevalterm' options.txt /*'bevalterm'*
|
||||
'bex' options.txt /*'bex'*
|
||||
'bexpr' options.txt /*'bexpr'*
|
||||
'bf' vi_diff.txt /*'bf'*
|
||||
@ -306,6 +309,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'go-g' options.txt /*'go-g'*
|
||||
'go-h' options.txt /*'go-h'*
|
||||
'go-i' options.txt /*'go-i'*
|
||||
'go-k' options.txt /*'go-k'*
|
||||
'go-l' options.txt /*'go-l'*
|
||||
'go-m' options.txt /*'go-m'*
|
||||
'go-p' options.txt /*'go-p'*
|
||||
@ -366,7 +370,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'ims' options.txt /*'ims'*
|
||||
'imsearch' options.txt /*'imsearch'*
|
||||
'imsf' options.txt /*'imsf'*
|
||||
'imst' options.txt /*'imst'*
|
||||
'imstatusfunc' options.txt /*'imstatusfunc'*
|
||||
'imstyle' options.txt /*'imstyle'*
|
||||
'inc' options.txt /*'inc'*
|
||||
'include' options.txt /*'include'*
|
||||
'includeexpr' options.txt /*'includeexpr'*
|
||||
@ -474,6 +480,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'msm' options.txt /*'msm'*
|
||||
'mzq' options.txt /*'mzq'*
|
||||
'mzquantum' options.txt /*'mzquantum'*
|
||||
'mzschemedll' options.txt /*'mzschemedll'*
|
||||
'mzschemegcdll' options.txt /*'mzschemegcdll'*
|
||||
'nf' options.txt /*'nf'*
|
||||
'noacd' options.txt /*'noacd'*
|
||||
'noai' options.txt /*'noai'*
|
||||
@ -499,7 +507,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'noawa' options.txt /*'noawa'*
|
||||
'nobackup' options.txt /*'nobackup'*
|
||||
'noballooneval' options.txt /*'noballooneval'*
|
||||
'noballoonevalterm' options.txt /*'noballoonevalterm'*
|
||||
'nobeval' options.txt /*'nobeval'*
|
||||
'nobevalterm' options.txt /*'nobevalterm'*
|
||||
'nobin' options.txt /*'nobin'*
|
||||
'nobinary' options.txt /*'nobinary'*
|
||||
'nobiosk' options.txt /*'nobiosk'*
|
||||
@ -746,6 +756,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'path' options.txt /*'path'*
|
||||
'pdev' options.txt /*'pdev'*
|
||||
'penc' options.txt /*'penc'*
|
||||
'perldll' options.txt /*'perldll'*
|
||||
'pex' options.txt /*'pex'*
|
||||
'pexpr' options.txt /*'pexpr'*
|
||||
'pfn' options.txt /*'pfn'*
|
||||
@ -971,6 +982,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
't_PE' term.txt /*'t_PE'*
|
||||
't_PS' term.txt /*'t_PS'*
|
||||
't_RB' term.txt /*'t_RB'*
|
||||
't_RC' term.txt /*'t_RC'*
|
||||
't_RF' term.txt /*'t_RF'*
|
||||
't_RI' term.txt /*'t_RI'*
|
||||
't_RS' term.txt /*'t_RS'*
|
||||
't_RV' term.txt /*'t_RV'*
|
||||
@ -980,6 +993,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
't_SR' term.txt /*'t_SR'*
|
||||
't_Sb' term.txt /*'t_Sb'*
|
||||
't_Sf' term.txt /*'t_Sf'*
|
||||
't_Te' term.txt /*'t_Te'*
|
||||
't_Ts' term.txt /*'t_Ts'*
|
||||
't_VS' term.txt /*'t_VS'*
|
||||
't_WP' term.txt /*'t_WP'*
|
||||
't_WS' term.txt /*'t_WS'*
|
||||
@ -1212,7 +1227,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+acl various.txt /*+acl*
|
||||
+arabic various.txt /*+arabic*
|
||||
+autocmd various.txt /*+autocmd*
|
||||
+autoservername various.txt /*+autoservername*
|
||||
+balloon_eval various.txt /*+balloon_eval*
|
||||
+balloon_eval_term various.txt /*+balloon_eval_term*
|
||||
+browse various.txt /*+browse*
|
||||
+builtin_terms various.txt /*+builtin_terms*
|
||||
+byte_offset various.txt /*+byte_offset*
|
||||
@ -1328,6 +1345,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+timers various.txt /*+timers*
|
||||
+title various.txt /*+title*
|
||||
+toolbar various.txt /*+toolbar*
|
||||
+unix eval.txt /*+unix*
|
||||
+user_commands various.txt /*+user_commands*
|
||||
+vertsplit various.txt /*+vertsplit*
|
||||
+viminfo various.txt /*+viminfo*
|
||||
@ -1892,6 +1910,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:<afile> cmdline.txt /*:<afile>*
|
||||
:<amatch> cmdline.txt /*:<amatch>*
|
||||
:<cWORD> cmdline.txt /*:<cWORD>*
|
||||
:<cexpr> cmdline.txt /*:<cexpr>*
|
||||
:<cfile> cmdline.txt /*:<cfile>*
|
||||
:<cword> cmdline.txt /*:<cword>*
|
||||
:<sfile> cmdline.txt /*:<sfile>*
|
||||
@ -1951,6 +1970,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:Sexplore pi_netrw.txt /*:Sexplore*
|
||||
:TOhtml syntax.txt /*:TOhtml*
|
||||
:TarDiff pi_tar.txt /*:TarDiff*
|
||||
:Termdebug terminal.txt /*:Termdebug*
|
||||
:Texplore pi_netrw.txt /*:Texplore*
|
||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||
:Vexplore pi_netrw.txt /*:Vexplore*
|
||||
@ -3122,9 +3142,16 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:tl tagsrch.txt /*:tl*
|
||||
:tlast tagsrch.txt /*:tlast*
|
||||
:tm gui.txt /*:tm*
|
||||
:tma map.txt /*:tma*
|
||||
:tmap map.txt /*:tmap*
|
||||
:tmap_l map.txt /*:tmap_l*
|
||||
:tmapc map.txt /*:tmapc*
|
||||
:tmapclear map.txt /*:tmapclear*
|
||||
:tmenu gui.txt /*:tmenu*
|
||||
:tn tagsrch.txt /*:tn*
|
||||
:tnext tagsrch.txt /*:tnext*
|
||||
:tno map.txt /*:tno*
|
||||
:tnoremap map.txt /*:tnoremap*
|
||||
:topleft windows.txt /*:topleft*
|
||||
:tp tagsrch.txt /*:tp*
|
||||
:tprevious tagsrch.txt /*:tprevious*
|
||||
@ -3134,6 +3161,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:ts tagsrch.txt /*:ts*
|
||||
:tselect tagsrch.txt /*:tselect*
|
||||
:tu gui.txt /*:tu*
|
||||
:tunma map.txt /*:tunma*
|
||||
:tunmap map.txt /*:tunmap*
|
||||
:tunmenu gui.txt /*:tunmenu*
|
||||
:u undo.txt /*:u*
|
||||
:un undo.txt /*:un*
|
||||
@ -3398,6 +3427,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<bang> map.txt /*<bang>*
|
||||
<buffer=N> autocmd.txt /*<buffer=N>*
|
||||
<buffer=abuf> autocmd.txt /*<buffer=abuf>*
|
||||
<cexpr> cmdline.txt /*<cexpr>*
|
||||
<cfile> cmdline.txt /*<cfile>*
|
||||
<character> intro.txt /*<character>*
|
||||
<count> map.txt /*<count>*
|
||||
@ -3428,6 +3458,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<mods> map.txt /*<mods>*
|
||||
<nomodeline> autocmd.txt /*<nomodeline>*
|
||||
<q-args> map.txt /*<q-args>*
|
||||
<range> map.txt /*<range>*
|
||||
<reg> map.txt /*<reg>*
|
||||
<register> map.txt /*<register>*
|
||||
<sfile> cmdline.txt /*<sfile>*
|
||||
@ -3633,6 +3664,8 @@ Cmd-event autocmd.txt /*Cmd-event*
|
||||
CmdUndefined autocmd.txt /*CmdUndefined*
|
||||
Cmdline cmdline.txt /*Cmdline*
|
||||
Cmdline-mode cmdline.txt /*Cmdline-mode*
|
||||
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
||||
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
CmdwinLeave autocmd.txt /*CmdwinLeave*
|
||||
ColorScheme autocmd.txt /*ColorScheme*
|
||||
@ -3735,7 +3768,6 @@ E169 message.txt /*E169*
|
||||
E17 message.txt /*E17*
|
||||
E170 eval.txt /*E170*
|
||||
E171 eval.txt /*E171*
|
||||
E172 message.txt /*E172*
|
||||
E173 message.txt /*E173*
|
||||
E174 map.txt /*E174*
|
||||
E175 map.txt /*E175*
|
||||
@ -4543,6 +4575,7 @@ E945 pattern.txt /*E945*
|
||||
E946 terminal.txt /*E946*
|
||||
E947 terminal.txt /*E947*
|
||||
E948 terminal.txt /*E948*
|
||||
E949 editing.txt /*E949*
|
||||
E95 message.txt /*E95*
|
||||
E96 diff.txt /*E96*
|
||||
E97 diff.txt /*E97*
|
||||
@ -4787,6 +4820,7 @@ TermResponse autocmd.txt /*TermResponse*
|
||||
Terminal-mode terminal.txt /*Terminal-mode*
|
||||
TextChanged autocmd.txt /*TextChanged*
|
||||
TextChangedI autocmd.txt /*TextChangedI*
|
||||
TextYankPost autocmd.txt /*TextYankPost*
|
||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||
U undo.txt /*U*
|
||||
UTF-8 mbyte.txt /*UTF-8*
|
||||
@ -4829,6 +4863,7 @@ W22 eval.txt /*W22*
|
||||
WORD motion.txt /*WORD*
|
||||
WWW intro.txt /*WWW*
|
||||
Win32 os_win32.txt /*Win32*
|
||||
WinBar gui.txt /*WinBar*
|
||||
WinEnter autocmd.txt /*WinEnter*
|
||||
WinLeave autocmd.txt /*WinLeave*
|
||||
WinNew autocmd.txt /*WinNew*
|
||||
@ -5118,6 +5153,7 @@ backup-extension version4.txt /*backup-extension*
|
||||
backup-table editing.txt /*backup-table*
|
||||
balloon-eval debugger.txt /*balloon-eval*
|
||||
balloon_show() eval.txt /*balloon_show()*
|
||||
balloon_split() eval.txt /*balloon_split()*
|
||||
bar motion.txt /*bar*
|
||||
bars help.txt /*bars*
|
||||
base_font_name_list mbyte.txt /*base_font_name_list*
|
||||
@ -5834,6 +5870,7 @@ eval() eval.txt /*eval()*
|
||||
eval-examples eval.txt /*eval-examples*
|
||||
eval-sandbox eval.txt /*eval-sandbox*
|
||||
eval.txt eval.txt /*eval.txt*
|
||||
event-variable eval.txt /*event-variable*
|
||||
eventhandler() eval.txt /*eventhandler()*
|
||||
eview starting.txt /*eview*
|
||||
evim starting.txt /*evim*
|
||||
@ -6195,6 +6232,7 @@ ft-vb-syntax syntax.txt /*ft-vb-syntax*
|
||||
ft-verilog-indent indent.txt /*ft-verilog-indent*
|
||||
ft-vhdl-indent indent.txt /*ft-vhdl-indent*
|
||||
ft-vim-indent indent.txt /*ft-vim-indent*
|
||||
ft-vim-plugin filetype.txt /*ft-vim-plugin*
|
||||
ft-vim-syntax syntax.txt /*ft-vim-syntax*
|
||||
ft-xf86conf-syntax syntax.txt /*ft-xf86conf-syntax*
|
||||
ft-xhtml-omni insert.txt /*ft-xhtml-omni*
|
||||
@ -6202,6 +6240,7 @@ ft-xml-omni insert.txt /*ft-xml-omni*
|
||||
ft-xml-syntax syntax.txt /*ft-xml-syntax*
|
||||
ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
|
||||
ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
|
||||
ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin*
|
||||
ft-zsh-syntax syntax.txt /*ft-zsh-syntax*
|
||||
ft_ada.txt ft_ada.txt /*ft_ada.txt*
|
||||
ft_rust.txt ft_rust.txt /*ft_rust.txt*
|
||||
@ -6367,10 +6406,15 @@ g:netrw_list_cmd_options pi_netrw.txt /*g:netrw_list_cmd_options*
|
||||
g:netrw_list_hide pi_netrw.txt /*g:netrw_list_hide*
|
||||
g:netrw_liststyle pi_netrw.txt /*g:netrw_liststyle*
|
||||
g:netrw_localcopycmd pi_netrw.txt /*g:netrw_localcopycmd*
|
||||
g:netrw_localcopycmdopt pi_netrw.txt /*g:netrw_localcopycmdopt*
|
||||
g:netrw_localcopydircmd pi_netrw.txt /*g:netrw_localcopydircmd*
|
||||
g:netrw_localcopydircmdopt pi_netrw.txt /*g:netrw_localcopydircmdopt*
|
||||
g:netrw_localmkdir pi_netrw.txt /*g:netrw_localmkdir*
|
||||
g:netrw_localmkdiropt pi_netrw.txt /*g:netrw_localmkdiropt*
|
||||
g:netrw_localmovecmd pi_netrw.txt /*g:netrw_localmovecmd*
|
||||
g:netrw_localmovecmdopt pi_netrw.txt /*g:netrw_localmovecmdopt*
|
||||
g:netrw_localrmdir pi_netrw.txt /*g:netrw_localrmdir*
|
||||
g:netrw_localrmdiropt pi_netrw.txt /*g:netrw_localrmdiropt*
|
||||
g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
|
||||
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
|
||||
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
|
||||
@ -6380,11 +6424,13 @@ g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
|
||||
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
|
||||
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
|
||||
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
|
||||
g:netrw_rename_cmd pi_netrw.txt /*g:netrw_rename_cmd*
|
||||
g:netrw_retmap pi_netrw.txt /*g:netrw_retmap*
|
||||
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
|
||||
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
|
||||
g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd*
|
||||
g:netrw_rsync_cmd pi_netrw.txt /*g:netrw_rsync_cmd*
|
||||
g:netrw_rsync_sep pi_netrw.txt /*g:netrw_rsync_sep*
|
||||
g:netrw_scp_cmd pi_netrw.txt /*g:netrw_scp_cmd*
|
||||
g:netrw_scpport pi_netrw.txt /*g:netrw_scpport*
|
||||
g:netrw_sepchr pi_netrw.txt /*g:netrw_sepchr*
|
||||
@ -6502,6 +6548,7 @@ ga various.txt /*ga*
|
||||
garbagecollect() eval.txt /*garbagecollect()*
|
||||
gd pattern.txt /*gd*
|
||||
gdb debug.txt /*gdb*
|
||||
gdb-version terminal.txt /*gdb-version*
|
||||
ge motion.txt /*ge*
|
||||
get() eval.txt /*get()*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
@ -6778,9 +6825,12 @@ hl-SpellLocal syntax.txt /*hl-SpellLocal*
|
||||
hl-SpellRare syntax.txt /*hl-SpellRare*
|
||||
hl-StatusLine syntax.txt /*hl-StatusLine*
|
||||
hl-StatusLineNC syntax.txt /*hl-StatusLineNC*
|
||||
hl-StatusLineTerm syntax.txt /*hl-StatusLineTerm*
|
||||
hl-StatusLineTermNC syntax.txt /*hl-StatusLineTermNC*
|
||||
hl-TabLine syntax.txt /*hl-TabLine*
|
||||
hl-TabLineFill syntax.txt /*hl-TabLineFill*
|
||||
hl-TabLineSel syntax.txt /*hl-TabLineSel*
|
||||
hl-Terminal syntax.txt /*hl-Terminal*
|
||||
hl-Title syntax.txt /*hl-Title*
|
||||
hl-Tooltip syntax.txt /*hl-Tooltip*
|
||||
hl-User1 syntax.txt /*hl-User1*
|
||||
@ -6791,6 +6841,8 @@ hl-Visual syntax.txt /*hl-Visual*
|
||||
hl-VisualNOS syntax.txt /*hl-VisualNOS*
|
||||
hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
||||
hl-WildMenu syntax.txt /*hl-WildMenu*
|
||||
hl-debugBreakpoint terminal.txt /*hl-debugBreakpoint*
|
||||
hl-debugPC terminal.txt /*hl-debugPC*
|
||||
hlID() eval.txt /*hlID()*
|
||||
hlexists() eval.txt /*hlexists()*
|
||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||
@ -7270,6 +7322,7 @@ mapmode-n map.txt /*mapmode-n*
|
||||
mapmode-nvo map.txt /*mapmode-nvo*
|
||||
mapmode-o map.txt /*mapmode-o*
|
||||
mapmode-s map.txt /*mapmode-s*
|
||||
mapmode-t map.txt /*mapmode-t*
|
||||
mapmode-v map.txt /*mapmode-v*
|
||||
mapmode-x map.txt /*mapmode-x*
|
||||
mapping map.txt /*mapping*
|
||||
@ -7302,6 +7355,7 @@ mbyte-encoding mbyte.txt /*mbyte-encoding*
|
||||
mbyte-first mbyte.txt /*mbyte-first*
|
||||
mbyte-fonts-MSwin mbyte.txt /*mbyte-fonts-MSwin*
|
||||
mbyte-fonts-X11 mbyte.txt /*mbyte-fonts-X11*
|
||||
mbyte-func mbyte.txt /*mbyte-func*
|
||||
mbyte-keymap mbyte.txt /*mbyte-keymap*
|
||||
mbyte-locale mbyte.txt /*mbyte-locale*
|
||||
mbyte-options mbyte.txt /*mbyte-options*
|
||||
@ -7457,7 +7511,11 @@ netrw-browser-var pi_netrw.txt /*netrw-browser-var*
|
||||
netrw-browsing pi_netrw.txt /*netrw-browsing*
|
||||
netrw-c pi_netrw.txt /*netrw-c*
|
||||
netrw-c-tab pi_netrw.txt /*netrw-c-tab*
|
||||
netrw-cB pi_netrw.txt /*netrw-cB*
|
||||
netrw-cadaver pi_netrw.txt /*netrw-cadaver*
|
||||
netrw-call pi_netrw.txt /*netrw-call*
|
||||
netrw-cb pi_netrw.txt /*netrw-cb*
|
||||
netrw-cd pi_netrw.txt /*netrw-cd*
|
||||
netrw-chgup pi_netrw.txt /*netrw-chgup*
|
||||
netrw-clean pi_netrw.txt /*netrw-clean*
|
||||
netrw-contents pi_netrw.txt /*netrw-contents*
|
||||
@ -7483,6 +7541,7 @@ netrw-enter pi_netrw.txt /*netrw-enter*
|
||||
netrw-ex pi_netrw.txt /*netrw-ex*
|
||||
netrw-explore pi_netrw.txt /*netrw-explore*
|
||||
netrw-explore-cmds pi_netrw.txt /*netrw-explore-cmds*
|
||||
netrw-expose pi_netrw.txt /*netrw-expose*
|
||||
netrw-externapp pi_netrw.txt /*netrw-externapp*
|
||||
netrw-file pi_netrw.txt /*netrw-file*
|
||||
netrw-filigree pi_netrw.txt /*netrw-filigree*
|
||||
@ -7532,6 +7591,7 @@ netrw-mh pi_netrw.txt /*netrw-mh*
|
||||
netrw-middlemouse pi_netrw.txt /*netrw-middlemouse*
|
||||
netrw-ml_get pi_netrw.txt /*netrw-ml_get*
|
||||
netrw-mm pi_netrw.txt /*netrw-mm*
|
||||
netrw-modify pi_netrw.txt /*netrw-modify*
|
||||
netrw-mouse pi_netrw.txt /*netrw-mouse*
|
||||
netrw-move pi_netrw.txt /*netrw-move*
|
||||
netrw-mp pi_netrw.txt /*netrw-mp*
|
||||
@ -7775,8 +7835,11 @@ option-backslash options.txt /*option-backslash*
|
||||
option-list quickref.txt /*option-list*
|
||||
option-summary options.txt /*option-summary*
|
||||
option-window options.txt /*option-window*
|
||||
option_restore() eval.txt /*option_restore()*
|
||||
option_save() eval.txt /*option_save()*
|
||||
options options.txt /*options*
|
||||
options-changed version5.txt /*options-changed*
|
||||
options-in-terminal terminal.txt /*options-in-terminal*
|
||||
options.txt options.txt /*options.txt*
|
||||
optwin options.txt /*optwin*
|
||||
or() eval.txt /*or()*
|
||||
@ -8005,14 +8068,21 @@ qnx-terminal os_qnx.txt /*qnx-terminal*
|
||||
quake.vim syntax.txt /*quake.vim*
|
||||
quickfix quickfix.txt /*quickfix*
|
||||
quickfix-6 version6.txt /*quickfix-6*
|
||||
quickfix-ID quickfix.txt /*quickfix-ID*
|
||||
quickfix-changedtick quickfix.txt /*quickfix-changedtick*
|
||||
quickfix-context quickfix.txt /*quickfix-context*
|
||||
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
||||
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
||||
quickfix-functions usr_41.txt /*quickfix-functions*
|
||||
quickfix-gcc quickfix.txt /*quickfix-gcc*
|
||||
quickfix-manx quickfix.txt /*quickfix-manx*
|
||||
quickfix-parse quickfix.txt /*quickfix-parse*
|
||||
quickfix-perl quickfix.txt /*quickfix-perl*
|
||||
quickfix-size quickfix.txt /*quickfix-size*
|
||||
quickfix-title quickfix.txt /*quickfix-title*
|
||||
quickfix-valid quickfix.txt /*quickfix-valid*
|
||||
quickfix-window quickfix.txt /*quickfix-window*
|
||||
quickfix-window-ID quickfix.txt /*quickfix-window-ID*
|
||||
quickfix.txt quickfix.txt /*quickfix.txt*
|
||||
quickref quickref.txt /*quickref*
|
||||
quickref.txt quickref.txt /*quickref.txt*
|
||||
@ -8234,6 +8304,7 @@ servername-variable eval.txt /*servername-variable*
|
||||
session-file starting.txt /*session-file*
|
||||
set-option options.txt /*set-option*
|
||||
set-spc-auto spell.txt /*set-spc-auto*
|
||||
setbufline() eval.txt /*setbufline()*
|
||||
setbufvar() eval.txt /*setbufvar()*
|
||||
setcharsearch() eval.txt /*setcharsearch()*
|
||||
setcmdpos() eval.txt /*setcmdpos()*
|
||||
@ -8440,6 +8511,7 @@ star pattern.txt /*star*
|
||||
starstar editing.txt /*starstar*
|
||||
starstar-wildcard editing.txt /*starstar-wildcard*
|
||||
start-of-file pattern.txt /*start-of-file*
|
||||
start-vimdiff diff.txt /*start-vimdiff*
|
||||
starting starting.txt /*starting*
|
||||
starting-amiga starting.txt /*starting-amiga*
|
||||
starting.txt starting.txt /*starting.txt*
|
||||
@ -8460,6 +8532,7 @@ strdisplaywidth() eval.txt /*strdisplaywidth()*
|
||||
strftime() eval.txt /*strftime()*
|
||||
strgetchar() eval.txt /*strgetchar()*
|
||||
stridx() eval.txt /*stridx()*
|
||||
strikethrough syntax.txt /*strikethrough*
|
||||
string eval.txt /*string*
|
||||
string() eval.txt /*string()*
|
||||
string-functions usr_41.txt /*string-functions*
|
||||
@ -8590,6 +8663,8 @@ t_KL term.txt /*t_KL*
|
||||
t_PE term.txt /*t_PE*
|
||||
t_PS term.txt /*t_PS*
|
||||
t_RB term.txt /*t_RB*
|
||||
t_RC term.txt /*t_RC*
|
||||
t_RF term.txt /*t_RF*
|
||||
t_RI term.txt /*t_RI*
|
||||
t_RS term.txt /*t_RS*
|
||||
t_RV term.txt /*t_RV*
|
||||
@ -8599,6 +8674,8 @@ t_SI term.txt /*t_SI*
|
||||
t_SR term.txt /*t_SR*
|
||||
t_Sb term.txt /*t_Sb*
|
||||
t_Sf term.txt /*t_Sf*
|
||||
t_Te term.txt /*t_Te*
|
||||
t_Ts term.txt /*t_Ts*
|
||||
t_VS term.txt /*t_VS*
|
||||
t_WP term.txt /*t_WP*
|
||||
t_WS term.txt /*t_WS*
|
||||
@ -8830,6 +8907,7 @@ term_gettty() eval.txt /*term_gettty()*
|
||||
term_list() eval.txt /*term_list()*
|
||||
term_scrape() eval.txt /*term_scrape()*
|
||||
term_sendkeys() eval.txt /*term_sendkeys()*
|
||||
term_setsize() eval.txt /*term_setsize()*
|
||||
term_start() eval.txt /*term_start()*
|
||||
term_wait() eval.txt /*term_wait()*
|
||||
termcap term.txt /*termcap*
|
||||
@ -8839,15 +8917,29 @@ termcap-cursor-color term.txt /*termcap-cursor-color*
|
||||
termcap-cursor-shape term.txt /*termcap-cursor-shape*
|
||||
termcap-options term.txt /*termcap-options*
|
||||
termcap-title term.txt /*termcap-title*
|
||||
termdebug-commands terminal.txt /*termdebug-commands*
|
||||
termdebug-communication terminal.txt /*termdebug-communication*
|
||||
termdebug-customizing terminal.txt /*termdebug-customizing*
|
||||
termdebug-example terminal.txt /*termdebug-example*
|
||||
termdebug-starting terminal.txt /*termdebug-starting*
|
||||
termdebug-stepping terminal.txt /*termdebug-stepping*
|
||||
termdebug-variables terminal.txt /*termdebug-variables*
|
||||
terminal terminal.txt /*terminal*
|
||||
terminal-colors os_unix.txt /*terminal-colors*
|
||||
terminal-cursor-style terminal.txt /*terminal-cursor-style*
|
||||
terminal-debug terminal.txt /*terminal-debug*
|
||||
terminal-functions usr_41.txt /*terminal-functions*
|
||||
terminal-info term.txt /*terminal-info*
|
||||
terminal-key-codes term.txt /*terminal-key-codes*
|
||||
terminal-ms-windows terminal.txt /*terminal-ms-windows*
|
||||
terminal-options term.txt /*terminal-options*
|
||||
terminal-output-codes term.txt /*terminal-output-codes*
|
||||
terminal-resizing terminal.txt /*terminal-resizing*
|
||||
terminal-size-color terminal.txt /*terminal-size-color*
|
||||
terminal-special-keys terminal.txt /*terminal-special-keys*
|
||||
terminal-testing terminal.txt /*terminal-testing*
|
||||
terminal-typing terminal.txt /*terminal-typing*
|
||||
terminal-unix terminal.txt /*terminal-unix*
|
||||
terminal-use terminal.txt /*terminal-use*
|
||||
terminal.txt terminal.txt /*terminal.txt*
|
||||
terminfo term.txt /*terminfo*
|
||||
@ -8855,6 +8947,7 @@ termresponse-variable eval.txt /*termresponse-variable*
|
||||
test-functions usr_41.txt /*test-functions*
|
||||
test_alloc_fail() eval.txt /*test_alloc_fail()*
|
||||
test_autochdir() eval.txt /*test_autochdir()*
|
||||
test_feedinput() eval.txt /*test_feedinput()*
|
||||
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
|
||||
test_ignore_error() eval.txt /*test_ignore_error()*
|
||||
test_null_channel() eval.txt /*test_null_channel()*
|
||||
@ -9028,6 +9121,7 @@ v:ctype eval.txt /*v:ctype*
|
||||
v:dying eval.txt /*v:dying*
|
||||
v:errmsg eval.txt /*v:errmsg*
|
||||
v:errors eval.txt /*v:errors*
|
||||
v:event eval.txt /*v:event*
|
||||
v:exception eval.txt /*v:exception*
|
||||
v:false eval.txt /*v:false*
|
||||
v:fcs_choice eval.txt /*v:fcs_choice*
|
||||
@ -9081,7 +9175,12 @@ v:t_list eval.txt /*v:t_list*
|
||||
v:t_none eval.txt /*v:t_none*
|
||||
v:t_number eval.txt /*v:t_number*
|
||||
v:t_string eval.txt /*v:t_string*
|
||||
v:termblinkresp eval.txt /*v:termblinkresp*
|
||||
v:termrbgresp eval.txt /*v:termrbgresp*
|
||||
v:termresponse eval.txt /*v:termresponse*
|
||||
v:termrfgresp eval.txt /*v:termrfgresp*
|
||||
v:termstyleresp eval.txt /*v:termstyleresp*
|
||||
v:termu7resp eval.txt /*v:termu7resp*
|
||||
v:testing eval.txt /*v:testing*
|
||||
v:this_session eval.txt /*v:this_session*
|
||||
v:throwpoint eval.txt /*v:throwpoint*
|
||||
@ -9364,6 +9463,8 @@ wildmenumode() eval.txt /*wildmenumode()*
|
||||
win32 os_win32.txt /*win32*
|
||||
win32-!start gui_w32.txt /*win32-!start*
|
||||
win32-PATH os_win32.txt /*win32-PATH*
|
||||
win32-backslashes os_win32.txt /*win32-backslashes*
|
||||
win32-cmdargs os_win32.txt /*win32-cmdargs*
|
||||
win32-colors gui_w32.txt /*win32-colors*
|
||||
win32-compiling os_win32.txt /*win32-compiling*
|
||||
win32-curdir os_win32.txt /*win32-curdir*
|
||||
@ -9388,6 +9489,7 @@ win_getid() eval.txt /*win_getid()*
|
||||
win_gotoid() eval.txt /*win_gotoid()*
|
||||
win_id2tabwin() eval.txt /*win_id2tabwin()*
|
||||
win_id2win() eval.txt /*win_id2win()*
|
||||
win_screenpos() eval.txt /*win_screenpos()*
|
||||
winbufnr() eval.txt /*winbufnr()*
|
||||
wincol() eval.txt /*wincol()*
|
||||
window windows.txt /*window*
|
||||
@ -9401,6 +9503,7 @@ window-resize windows.txt /*window-resize*
|
||||
window-size term.txt /*window-size*
|
||||
window-size-functions usr_41.txt /*window-size-functions*
|
||||
window-tag windows.txt /*window-tag*
|
||||
window-toolbar gui.txt /*window-toolbar*
|
||||
window-variable eval.txt /*window-variable*
|
||||
windowid windows.txt /*windowid*
|
||||
windowid-variable eval.txt /*windowid-variable*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 8.0. Last change: 2016 Sep 20
|
||||
*tagsrch.txt* For Vim version 8.0. Last change: 2017 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -195,6 +195,7 @@ the same entry.
|
||||
information in the tags file(s).
|
||||
When [ident] is not given, the last tag name from the
|
||||
tag stack is used.
|
||||
See |tag-!| for [!].
|
||||
With a '>' in the first column is indicated which is
|
||||
the current position in the list (if there is one).
|
||||
[ident] can be a regexp pattern, see |tag-regexp|.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 8.0. Last change: 2017 Aug 26
|
||||
*term.txt* For Vim version 8.0. Last change: 2017 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -295,8 +295,6 @@ OUTPUT CODES *terminal-output-codes*
|
||||
t_ts set window title start (to status line) *t_ts* *'t_ts'*
|
||||
t_ue underline end *t_ue* *'t_ue'*
|
||||
t_us underline mode *t_us* *'t_us'*
|
||||
t_Ce undercurl end *t_Ce* *'t_Ce'*
|
||||
t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
||||
t_ut clearing uses the current background color *t_ut* *'t_ut'*
|
||||
t_vb visual bell *t_vb* *'t_vb'*
|
||||
t_ve cursor visible *t_ve* *'t_ve'*
|
||||
@ -311,6 +309,10 @@ OUTPUT CODES *terminal-output-codes*
|
||||
t_ZR italics end *t_ZR* *'t_ZR'*
|
||||
|
||||
Added by Vim (there are no standard codes for these):
|
||||
t_Ce undercurl end *t_Ce* *'t_Ce'*
|
||||
t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
||||
t_Te strikethrough end *t_Te* *'t_Te'*
|
||||
t_Ts strikethrough mode *t_Ts* *'t_Ts'*
|
||||
t_IS set icon text start *t_IS* *'t_IS'*
|
||||
t_IE set icon text end *t_IE* *'t_IE'*
|
||||
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
|
||||
@ -325,6 +327,7 @@ Added by Vim (there are no standard codes for these):
|
||||
|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
|
||||
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
|
||||
see |'ambiwidth'|
|
||||
t_RF request terminal foreground color *t_RF* *'t_RF'*
|
||||
t_RB request terminal background color *t_RB* *'t_RB'*
|
||||
t_8f set foreground color (R, G, B) *t_8f* *'t_8f'*
|
||||
|xterm-true-color|
|
||||
@ -337,6 +340,7 @@ Added by Vim (there are no standard codes for these):
|
||||
t_SC set cursor color start *t_SC* *'t_SC'*
|
||||
t_EC set cursor color end *t_EC* *'t_EC'*
|
||||
t_SH set cursor shape *t_SH* *'t_SH'*
|
||||
t_RC request terminal cursor blinking *t_RC* *'t_RC'*
|
||||
t_RS request terminal cursor style *t_RS* *'t_RS'*
|
||||
|
||||
Some codes have a start, middle and end part. The start and end are defined
|
||||
|
@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2018 Jan 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -14,9 +14,25 @@ The terminal feature is optional, use this to check if your Vim has it: >
|
||||
If the result is "1" you have it.
|
||||
|
||||
|
||||
1. Basic use |terminal-use|
|
||||
2. Remote testing |terminal-testing|
|
||||
3. Debugging |terminal-debug|
|
||||
1. Basic use |terminal-use|
|
||||
Typing |terminal-typing|
|
||||
Size and color |terminal-size-color|
|
||||
Syntax |:terminal|
|
||||
Resizing |terminal-resizing|
|
||||
Terminal Modes |Terminal-mode|
|
||||
Cursor style |terminal-cursor-style|
|
||||
Special keys |terminal-special-keys|
|
||||
Unix |terminal-unix|
|
||||
MS-Windows |terminal-ms-windows|
|
||||
2. Remote testing |terminal-testing|
|
||||
3. Debugging |terminal-debug|
|
||||
Starting |termdebug-starting|
|
||||
Example session |termdebug-example|
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Other commands |termdebug-commands|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
@ -44,7 +60,7 @@ the job. This uses a pty when possible. You can click outside of the
|
||||
terminal window to move keyboard focus elsewhere.
|
||||
|
||||
CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.:
|
||||
CTRL-W CTRL-W move focus to the next window
|
||||
CTRL-W CTRL-W move focus to the next window
|
||||
CTRL-W : enter an Ex command
|
||||
See |CTRL-W| for more commands.
|
||||
|
||||
@ -64,7 +80,7 @@ the job. For example:
|
||||
'termkey' : enter an Ex command
|
||||
'termkey' 'termkey' send 'termkey' to the job in the terminal
|
||||
'termkey' . send a CTRL-W to the job in the terminal
|
||||
'termkey' N go to terminal Normal mode, see below
|
||||
'termkey' N go to terminal Normal mode, see below
|
||||
'termkey' CTRL-N same as CTRL-W N
|
||||
'termkey' CTRL-C same as |t_CTRL-W_CTRL-C|
|
||||
*t_CTRL-\_CTRL-N*
|
||||
@ -81,11 +97,22 @@ themselves (like Vim does).
|
||||
|
||||
To change the keys you type use terminal mode mappings, see |:tmap|.
|
||||
These are defined like any mapping, but apply only when typing keys that are
|
||||
sent to the job running in the terminal.
|
||||
sent to the job running in the terminal. For example, to make Escape switch
|
||||
to Terminal-Normal mode: >
|
||||
tnoremap <Esc> <C-W>N
|
||||
< *options-in-terminal*
|
||||
After opening the terminal window and setting 'buftype' to "terminal" the
|
||||
BufWinEnter autocommand event is triggered. This makes it possible to set
|
||||
options specifically for the window and buffer. Example: >
|
||||
au BufWinEnter * if &buftype == 'terminal' | setlocal bufhidden=hide | endif
|
||||
|
||||
Mouse events (click and drag) are passed to the terminal. Mouse move events
|
||||
are only passed when Vim itself is receiving them. For a terminal that is
|
||||
when 'balloonevalterm' is enabled.
|
||||
|
||||
|
||||
Size and color ~
|
||||
|
||||
*terminal-size-color*
|
||||
See option 'termsize' for controlling the size of the terminal window.
|
||||
(TODO: scrolling when the terminal is larger than the window)
|
||||
|
||||
@ -95,7 +122,8 @@ and background colors are taken from Vim, the Normal highlight group.
|
||||
For a color terminal the 'background' option is used to decide whether the
|
||||
terminal window will start with a white or black background.
|
||||
|
||||
To use a different color the Terminal highlight group can be used: >
|
||||
To use a different color the Terminal highlight group can be used, for
|
||||
example: >
|
||||
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
|
||||
|
||||
|
||||
@ -121,11 +149,6 @@ Syntax ~
|
||||
keys in the terminal window. For MS-Windows see the
|
||||
++eof argument below.
|
||||
|
||||
Two comma separated numbers are used as "rows,cols".
|
||||
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
|
||||
columns. However, if the terminal window spans the
|
||||
Vim window with, there is no vertical split, the Vim
|
||||
window width is used.
|
||||
*term++close* *term++open*
|
||||
Supported [options] are:
|
||||
++close The terminal window will close
|
||||
@ -140,9 +163,15 @@ Syntax ~
|
||||
++hidden Open the terminal in a hidden buffer,
|
||||
no window will be used.
|
||||
++rows={height} Use {height} for the terminal window
|
||||
height.
|
||||
height. If the terminal uses the full
|
||||
Vim height (no window above or below
|
||||
th terminal window) the command line
|
||||
height will be reduced as needed.
|
||||
++cols={width} Use {width} for the terminal window
|
||||
width.
|
||||
width. If the terminal uses the full
|
||||
Vim width (no window left or right of
|
||||
the terminal window) this value is
|
||||
ignored.
|
||||
++eof={text} when using [range]: text to send after
|
||||
the last line was written. Cannot
|
||||
contain white space. A CR is
|
||||
@ -194,7 +223,7 @@ the buffer name will still be set to the command.
|
||||
|
||||
|
||||
Resizing ~
|
||||
|
||||
*terminal-resizing*
|
||||
The size of the terminal can be in one of three modes:
|
||||
|
||||
1. The 'termsize' option is empty: The terminal size follows the window size.
|
||||
@ -244,7 +273,7 @@ It is not possible to enter Insert mode from Terminal-Job mode.
|
||||
|
||||
|
||||
Cursor style ~
|
||||
|
||||
*terminal-cursor-style*
|
||||
By default the cursor in the terminal window uses a not blinking block. The
|
||||
normal xterm escape sequences can be used to change the blinking state and the
|
||||
shape. Once focus leaves the terminal window Vim will restore the original
|
||||
@ -256,8 +285,21 @@ is inverted. Since Vim cannot detect this, the terminal window cursor
|
||||
blinking will also be inverted.
|
||||
|
||||
|
||||
Unix ~
|
||||
Special keys ~
|
||||
*terminal-special-keys*
|
||||
Since the terminal emulator simulates an xterm, only escape sequences that
|
||||
both Vim and xterm recognize will be available in the terminal window. If you
|
||||
want to pass on other escape sequences to the job running in the terminal you
|
||||
need to set up forwarding. Example: >
|
||||
tmap <expr> <Esc>]b SendToTerm("\<Esc>]b")
|
||||
func SendToTerm(what)
|
||||
call term_sendkeys('', a:what)
|
||||
return ''
|
||||
endfunc
|
||||
|
||||
|
||||
Unix ~
|
||||
*terminal-unix*
|
||||
On Unix a pty is used to make it possible to run all kinds of commands. You
|
||||
can even run Vim in the terminal! That's used for debugging, see below.
|
||||
|
||||
@ -280,7 +322,7 @@ This will open the file "some_file.c" and put the cursor on line 123.
|
||||
|
||||
|
||||
MS-Windows ~
|
||||
|
||||
*terminal-ms-windows*
|
||||
On MS-Windows winpty is used to make it possible to run all kind of commands.
|
||||
Obviously, they must be commands that run in a terminal, not open their own
|
||||
window.
|
||||
@ -299,6 +341,9 @@ to point to the right file, if needed. If you have both the 32-bit and 64-bit
|
||||
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
|
||||
build.
|
||||
|
||||
Environment variables are used to pass information to the running job:
|
||||
VIM_SERVERNAME v:servername
|
||||
|
||||
==============================================================================
|
||||
2. Remote testing *terminal-testing*
|
||||
|
||||
@ -323,16 +368,18 @@ Vim this also works remotely over an ssh connection.
|
||||
|
||||
|
||||
Starting ~
|
||||
|
||||
*termdebug-starting*
|
||||
Load the plugin with this command: >
|
||||
packadd termdebug
|
||||
< *:Termdebug*
|
||||
To start debugging use `:TermDebug` folowed by the command name, for example: >
|
||||
:TermDebug vim
|
||||
To start debugging use `:Termdebug` followed by the command name, for example: >
|
||||
:Termdebug vim
|
||||
|
||||
This opens two windows:
|
||||
|
||||
gdb window A terminal window in which "gdb vim" is executed. Here you
|
||||
can directly interact with gdb. The buffer name is "!gdb".
|
||||
|
||||
program window A terminal window for the executed program. When "run" is
|
||||
used in gdb the program I/O will happen in this window, so
|
||||
that it does not interfere with controlling gdb. The buffer
|
||||
@ -352,37 +399,100 @@ When the debugger ends, typically by typing "quit" in the gdb window, the two
|
||||
opened windows are closed.
|
||||
|
||||
|
||||
Example session ~
|
||||
*termdebug-example*
|
||||
Start in the Vim "src" directory and build Vim: >
|
||||
% make
|
||||
Start Vim: >
|
||||
% ./vim
|
||||
Load the termdebug plugin and start debugging Vim: >
|
||||
:packadd termdebug
|
||||
:Termdebug vim
|
||||
You should now have three windows:
|
||||
source - where you started, has a window toolbar with buttons
|
||||
gdb - you can type gdb commands here
|
||||
program - the executed program will use this window
|
||||
You can use CTRL-W CTRL-W or the mouse to move focus between windows.
|
||||
Put focus on the gdb window and type: >
|
||||
break ex_help
|
||||
run
|
||||
Vim will start running in the program window. Put focus there and type: >
|
||||
:help gui
|
||||
Gdb will run into the ex_help breakpoint. The source window now shows the
|
||||
ex_cmds.c file. A ">>" marker will appear where the breakpoint was set. The
|
||||
line where the debugger stopped is highlighted. You can now step through the
|
||||
program. Let's use the mouse: click on the "Next" button in the window
|
||||
toolbar. You will see the highlighting move as the debugger executes a line
|
||||
of source code.
|
||||
|
||||
Click "Next" a few times until the for loop is highlighted. Put the cursor on
|
||||
the end of "eap->arg", then click "Eval" in the toolbar. You will see this
|
||||
displayed:
|
||||
"eap->arg": 0x555555e68855 "gui" ~
|
||||
This way you can inspect the value of local variables. You can also focus the
|
||||
gdb window and use a "print" command, e.g.: >
|
||||
print *eap
|
||||
|
||||
Now go back to the source window and put the cursor on the first line after
|
||||
the for loop, then type: >
|
||||
:Break
|
||||
You will see a ">>" marker appear, this indicates the new breakpoint. Now
|
||||
click "Cont" in the toolbar and the code until the breakpoint will be
|
||||
executed.
|
||||
|
||||
You can type more advanced commands in the gdb window. For example, type: >
|
||||
watch curbuf
|
||||
Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution
|
||||
will now continue until the value of "curbuf" changes, which is in do_ecmd().
|
||||
To remove this watchpoint again type in the gdb window: >
|
||||
delete 3
|
||||
|
||||
You can see the stack by typing in the gdb window: >
|
||||
where
|
||||
Move through the stack frames, e.g. with: >
|
||||
frame 3
|
||||
The source window will show the code, at the point where the call was made to
|
||||
a deeper level.
|
||||
|
||||
|
||||
Stepping through code ~
|
||||
|
||||
*termdebug-stepping*
|
||||
Put focus on the gdb window to type commands there. Some common ones are:
|
||||
- CTRL-C interrupt the program
|
||||
- next execute the current line and stop at the next line
|
||||
- step execute the current line and stop at the next statement, entering
|
||||
functions
|
||||
- finish execute until leaving the current function
|
||||
- where show the stack
|
||||
- frame N go to the Nth stack frame
|
||||
- continue continue execution
|
||||
- CTRL-C interrupt the program
|
||||
- next execute the current line and stop at the next line
|
||||
- step execute the current line and stop at the next statement,
|
||||
entering functions
|
||||
- finish execute until leaving the current function
|
||||
- where show the stack
|
||||
- frame N go to the Nth stack frame
|
||||
- continue continue execution
|
||||
|
||||
In the window showing the source code some commands can used to control gdb:
|
||||
:Break set a breakpoint at the current line; a sign will be displayed
|
||||
:Delete delete a breakpoint at the current line
|
||||
:Step execute the gdb "step" command
|
||||
:Over execute the gdb "next" command (:Next is a Vim command)
|
||||
:Finish execute the gdb "finish" command
|
||||
:Continue execute the gdb "continue" command
|
||||
In the window showing the source code these commands can used to control gdb:
|
||||
:Run [args] run the program with [args] or the previous arguments
|
||||
:Arguments {args} set arguments for the next :Run
|
||||
|
||||
The plugin adds a window toolbar with these entries:
|
||||
Step :Step
|
||||
Next :Over
|
||||
Finish :Finish
|
||||
Cont :Continue
|
||||
Eval :Evaluate
|
||||
This way you can use the mouse to perform the most common commands.
|
||||
:Break set a breakpoint at the current line; a sign will be displayed
|
||||
:Delete delete a breakpoint at the current line
|
||||
|
||||
:Step execute the gdb "step" command
|
||||
:Over execute the gdb "next" command (:Next is a Vim command)
|
||||
:Finish execute the gdb "finish" command
|
||||
:Continue execute the gdb "continue" command
|
||||
:Stop interrupt the program
|
||||
|
||||
If 'mouse' is set the plugin adds a window toolbar with these entries:
|
||||
Step :Step
|
||||
Next :Over
|
||||
Finish :Finish
|
||||
Cont :Continue
|
||||
Stop :Stop
|
||||
Eval :Evaluate
|
||||
This way you can use the mouse to perform the most common commands. You need
|
||||
to have the 'mouse' option set to enable mouse clicks.
|
||||
|
||||
|
||||
Inspecting variables ~
|
||||
|
||||
*termdebug-variables*
|
||||
:Evaluate evaluate the expression under the cursor
|
||||
K same
|
||||
:Evaluate {expr} evaluate {expr}
|
||||
@ -392,26 +502,30 @@ This is similar to using "print" in the gdb window.
|
||||
|
||||
|
||||
Other commands ~
|
||||
|
||||
*termdebug-commands*
|
||||
:Gdb jump to the gdb window
|
||||
:Program jump to the window with the running program
|
||||
|
||||
|
||||
Communication ~
|
||||
|
||||
*termdebug-communication*
|
||||
There is another, hidden, buffer, which is used for Vim to communicate with
|
||||
gdb. The buffer name is "gdb communication". Do not delete this buffer, it
|
||||
will break the debugger.
|
||||
|
||||
|
||||
Customizing ~
|
||||
|
||||
*termdebug-customizing*
|
||||
To change the name of the gdb command, set the "termdebugger" variable before
|
||||
invoking `:Termdebug`: >
|
||||
let termdebugger = "mygdb"
|
||||
< *gdb-version*
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface.
|
||||
interface. This probably requires gdb version 7.12. if you get this error:
|
||||
Undefined command: "new-ui". Try "help".~
|
||||
Then your gdb is too old.
|
||||
|
||||
*hl-debugPC* *hl-debugBreakpoint*
|
||||
The color of the signs can be adjusted with these highlight groups:
|
||||
- debugPC the current position
|
||||
- debugBreakpoint a breakpoint
|
||||
@ -429,6 +543,10 @@ vertical split: >
|
||||
let g:termdebug_wide = 163
|
||||
This will set &columns to 163 when :Termdebug is used. The value is restored
|
||||
when quitting the debugger.
|
||||
If g:termdebug_wide is set and &Columns is already larger than
|
||||
g:termdebug_wide then a vertical split will be used without changing &columns.
|
||||
Set it to 1 to get a vertical split without every changing &columns (useful
|
||||
for when the terminal can't be resized by Vim).
|
||||
|
||||
|
||||
|
||||
|
68
runtime/doc/test_urls.vim
Normal file
68
runtime/doc/test_urls.vim
Normal file
@ -0,0 +1,68 @@
|
||||
" Test for URLs in help documents.
|
||||
"
|
||||
" Opens a new window with all found URLS followed by return code from curl
|
||||
" (anything other than 0 means unreachable)
|
||||
"
|
||||
" Written by Christian Brabandt.
|
||||
|
||||
func Test_check_URLs()
|
||||
if has("win32")
|
||||
echoerr "Doesn't work on MS-Windows"
|
||||
return
|
||||
endif
|
||||
if executable('curl')
|
||||
" Note: does not follow redirects!
|
||||
let s:command = 'curl --silent --fail --output /dev/null --head '
|
||||
elseif executable('wget')
|
||||
" Note: only allow a couple of redirects
|
||||
let s:command = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O /dev/null '
|
||||
else
|
||||
echoerr 'Only works when "curl" or "wget" is available'
|
||||
return
|
||||
endif
|
||||
|
||||
let pat='\(https\?\|ftp\)://[^\t* ]\+'
|
||||
exe 'helpgrep' pat
|
||||
helpclose
|
||||
|
||||
let urls = map(getqflist(), 'v:val.text')
|
||||
" do not use submatch(1)!
|
||||
let urls = map(urls, {key, val -> matchstr(val, pat)})
|
||||
" remove examples like user@host (invalid urls)
|
||||
let urls = filter(urls, 'v:val !~ "@"')
|
||||
" Remove example URLs which are invalid
|
||||
let urls = filter(urls, {key, val -> val !~ '\<\(\(my\|some\)\?host\|machine\|hostname\|file\)\>'})
|
||||
new
|
||||
put =urls
|
||||
" remove some more invalid items
|
||||
" empty lines
|
||||
v/./d
|
||||
" remove # anchors
|
||||
%s/#.*$//e
|
||||
" remove trailing stuff (parenthesis, dot, comma, quotes), but only for HTTP
|
||||
" links
|
||||
g/^h/s#[.,)'"/>][:.]\?$##
|
||||
g#^[hf]t\?tp:/\(/\?\.*\)$#d
|
||||
silent! g/ftp://,$/d
|
||||
silent! g/=$/d
|
||||
let a = getline(1,'$')
|
||||
let a = uniq(sort(a))
|
||||
%d
|
||||
call setline(1, a)
|
||||
|
||||
" Do the testing.
|
||||
set nomore
|
||||
%s/.*/\=TestURL(submatch(0))/
|
||||
|
||||
" highlight the failures
|
||||
/.* \([0-9]*[1-9]\|[0-9]\{2,}\)$
|
||||
endfunc
|
||||
|
||||
func TestURL(url)
|
||||
" Relies on the return code to determine whether a page is valid
|
||||
echom printf("Testing URL: %d/%d %s", line('.'), line('$'), a:url)
|
||||
call system(s:command . shellescape(a:url))
|
||||
return printf("%s %d", a:url, v:shell_error)
|
||||
endfunc
|
||||
|
||||
call Test_check_URLs()
|
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.0. Last change: 2017 Aug 27
|
||||
*todo.txt* For Vim version 8.0. Last change: 2018 Jan 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -7,9 +7,9 @@
|
||||
TODO list for Vim *todo*
|
||||
|
||||
This is a veeeery long list of known bugs, current work and desired
|
||||
improvements. To make it a little bit accessible, the items are grouped by
|
||||
subject. In the first column of the line a classification is used to be able
|
||||
to look for "the next thing to do":
|
||||
improvements. To make it a little bit accessible, the older items are grouped
|
||||
by subject. In the first column of the line a classification is used to be
|
||||
able to look for "the next thing to do":
|
||||
|
||||
Priority classification:
|
||||
9 next point release
|
||||
@ -38,24 +38,24 @@ entered there will not be repeated below, unless there is extra information.
|
||||
No maintainer for Vietnamese translations.
|
||||
No maintainer for Simplified Chinese translations.
|
||||
|
||||
|
||||
Terminal emulator window:
|
||||
- Lots of stuff to implement, see src/terminal.c
|
||||
- Add debugger interface. Implementation for gdb by Xavier de Gaye. Should
|
||||
work like an IDE. Try to keep it generic. Now found here:
|
||||
http://clewn.sf.net.
|
||||
Can this replace Agide? http://www.a-a-p.org/images/debugfull.png
|
||||
- make showballoon() work in a terminal. Requires getting mouse-move
|
||||
events.
|
||||
- send 'balloonText' events for the cursor position (using CursorHold ?)
|
||||
in terminal mode.
|
||||
- Improve debugger interface:
|
||||
Include all debug features of Agide.
|
||||
- Implement the right-click popup menu for the terminal. Can use the
|
||||
completion popup menu code and mouse dragging.
|
||||
- Look into the idevim plugin/script.
|
||||
- Related wishes for NetBeans commands:
|
||||
- make it possible to have 'defineAnnoType' also handle terminal colors.
|
||||
Use it for "set breakpoint", "remove breakpoint", etc.
|
||||
- get ideas from http://clewn.sf.net
|
||||
- Look into the idevim plugin/script.
|
||||
- Improve testing:
|
||||
Make a screenshot of a terminal, store in a file.
|
||||
Display a stored screenshot, display diff with another one.
|
||||
Make a test that puts Vim in a specific state, make a screenshot and compare
|
||||
with the expected screenshot. Set t_Co to 256.
|
||||
|
||||
+channel:
|
||||
- Add a separate timeout for opening a socket. Currently it's fixed at 50
|
||||
msec, which is too small for a remote connection. (tverniquet, #2130)
|
||||
- Try out background make plugin:
|
||||
https://github.com/AndrewVos/vim-make-background
|
||||
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
||||
@ -80,6 +80,10 @@ Terminal emulator window:
|
||||
Although user could use "xterm -e 'cmd arg'".
|
||||
|
||||
Regexp problems:
|
||||
- When search pattern has the base character both with and without combining
|
||||
character, search fails. E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
|
||||
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
|
||||
characters, esp. including 0xa0. Use character class zero.
|
||||
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
||||
(Manuel Ortega, 2016 Apr 24)
|
||||
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
|
||||
@ -123,37 +127,168 @@ Regexp problems:
|
||||
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
||||
(2017 May 15, #1252)
|
||||
|
||||
Patch to turn test80 into a new style test. (Yegappan Lakshmanan, 2017 Aug 20)
|
||||
|
||||
Include a few color schemes, based on popularity:
|
||||
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
|
||||
http://vimawesome.com/?q=tag:color-scheme
|
||||
Use names that indicate their appearnce (Christian Brabandt, 2017 Aug 3)
|
||||
- monokai - Xia Crusoe (2017 Aug 4)
|
||||
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
|
||||
- monokai - Xia Crusoe (2017 Aug 4)
|
||||
- seoul256 - Christian Brabandt (2017 Aug 3)
|
||||
- gruvbox - Christian Brabandt (2017 Aug 3)
|
||||
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
|
||||
Lifepillar, 2018 Jan 22, #2573)
|
||||
- janah - Marco Hinz (2017 Aug 4)
|
||||
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
|
||||
Suggested by Hiroki Kokubun:
|
||||
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
|
||||
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
||||
Include solarized color scheme?, it does not support termguicolors.
|
||||
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
|
||||
|
||||
When starting with --clean packages under "start" are not loaded. Make this
|
||||
work: :packadd START {name} similar to :runtime START name
|
||||
Reproducible:
|
||||
invalid memory access in regexp with zero-width.
|
||||
reproduced by Dominique, 2017 Dec 23
|
||||
heap-use-after-free in win_equal_rec (#2467)
|
||||
au* 0 vs¡
|
||||
ar0
|
||||
arga
|
||||
al
|
||||
al
|
||||
Patch to fix using freed memory. (Christian Brabandt, 2018 Jan 6, #2467)
|
||||
|
||||
Patch for nsis runtime files. (Ken Takata, 2018 Jan 25)
|
||||
|
||||
Patch for scheme runtime files (new version) (Evan Hanson, 2018 Jan 26)
|
||||
|
||||
Patch to turn tests into new style. (Yegappan, 2017 Dec 29, #2509)
|
||||
|
||||
Patch to fix crash in rubyf. (W, #2512) fixes #2511
|
||||
|
||||
Updates for Debian runtime files. (James McCoy, 2018 Jan 7)
|
||||
|
||||
Crash when calling term_start() with empty command on windows. (Wang Shidong,
|
||||
2018 Dec 27, #2501)
|
||||
|
||||
Patch to improve DirectX rendering. (Ken Takata, 2018 Jan 18, #2560 fixes
|
||||
#2401)
|
||||
|
||||
Endless loop invovlving gui_mch_stop_blink(). (zdohnal, 2018 Jan 11)
|
||||
|
||||
Patch to add 'pythonhome' and 'pythonthreehome' options. (Kazuki Sakamoto,
|
||||
2016 Nov 21, #1266)
|
||||
|
||||
"silent! try" doesn't restore emsg_silent when an exception is thrown.
|
||||
(Ben Reilly, 2018 Jan 5, #2531) Possible solution by Christian Brabandt, 2018
|
||||
Jan 6.
|
||||
|
||||
Patch to fix ex mode buffering output. (Brian M. Carlson, 2018 Jan 8, #2537)
|
||||
|
||||
Patch for config.vim syntax file. (James McCoy, 2018 Jan 28, maintainer didn't
|
||||
respond).
|
||||
|
||||
Patch to add support for clojure script filetype detection. (David Burgin,
|
||||
2018 Jan 20, #257)
|
||||
|
||||
Patch to implement the DirChanged autocmd event. (Andy Massimino, 2018 Jan 9,
|
||||
replaces #888)
|
||||
|
||||
Patch to fix not adding a slash after :find completion. (Genki Sky, 2018 Jan
|
||||
10)
|
||||
|
||||
Patch for man.vim, fix for Mac. (SungHyun Nam, 2018 Jan 8, #2488)
|
||||
Update Jan 10.
|
||||
|
||||
Patch to fix illegal memory access in del_bytes(). (Christian Brabandt, 2018
|
||||
Jan 2, #2466)
|
||||
|
||||
Recursive use of alist_add() (Christian Brabandt, 2018 Jan 6, #2472)
|
||||
|
||||
patch 1218 breaks etags. (zdohnal, 2018 Jan 5)
|
||||
|
||||
Errors found with random data:
|
||||
heap-buffer-overflow in alist_add (#2472)
|
||||
heap-buffer-overflow in del_bytes (#2466)
|
||||
|
||||
Compiler warnings (geeknik, 2017 Oct 26):
|
||||
- signed integer overflow in do_sub() (#2249)
|
||||
- signed integer overflow in get_address() (#2248)
|
||||
- signed integer overflow in getdecchrs() (#2254)
|
||||
- signed integer overflow in nfa_regatom() (#2251)
|
||||
patch by Christian Brabandt, 2018 Jan 8
|
||||
- undefined left shift in get_string_tv() (#2250)
|
||||
|
||||
Patch to fix CursorIM highlighting on Windows. (Ken Takata, 2018 Jan 18)
|
||||
|
||||
Cursor in wrong screen line with WinBar. (#2362)
|
||||
Fix by Christian Brabandt (2018 Jan 2)
|
||||
|
||||
balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
|
||||
20, #2481)
|
||||
Also see #2352, want better control over balloon, perhaps set the position.
|
||||
|
||||
Patch to make installer faster. (Ken Takata, 2018 Jan 3, #2522)
|
||||
|
||||
Patch to support hunspell. (Matej Cepl, Jan 2018, #2500)
|
||||
|
||||
Cursor in status line after search. (#2530)
|
||||
|
||||
Cursor in wrong position when line wraps. (#2540)
|
||||
|
||||
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
|
||||
|
||||
Patch for minimum width of completion popup menu. (Christian Brabandt, 2018
|
||||
Jan 3, #2314)
|
||||
|
||||
When using :packadd files under "later" are not used, which is inconsistent
|
||||
with packages under "start". (xtal8, #1994)
|
||||
|
||||
After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
|
||||
2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
|
||||
Patch to make D&D work between 32 bit app and 64 bit Vim. (Ken Takata, #2504)
|
||||
|
||||
Patch to add quickfix list identifier. (Yegappan, 2017 Aug 15)
|
||||
Patch to fix invalid return value with backwards searchpair. (Daniel Hahler,
|
||||
2018 Jan 15, #2552)
|
||||
|
||||
Mac Terminal.app: ctermbg=15 gives light grey instead of white.
|
||||
ctermbg=256 breaks clearing till end of the line. Both work fine in xterm.
|
||||
Column number is wrong whsn using 'linebreak' and 'wrap'. (Keith Smiley, 2018
|
||||
Jan 15, #2555)
|
||||
|
||||
Patch to avoid editing a file in the session file twice. (Christian Brabandt,
|
||||
2017 Aug 21) #1958
|
||||
Patch to remove redundant "if". (Dominique Pelle, 2018 Jan 14)
|
||||
|
||||
Serbian translations. (Peseic, 2018 Jan 17)
|
||||
|
||||
Check argument of systemlist(). (Pavlov)
|
||||
|
||||
Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
|
||||
#2546)
|
||||
|
||||
Patch to fix illegal memory access. (Christian Brabandt, 2018 Jan 6, #2523)
|
||||
|
||||
When 'inchsearch' and 'hlsearch' are set /\v highlights everything.
|
||||
Also see #2337
|
||||
|
||||
Starting job with cwd option, when the directory does not exist, gives a
|
||||
confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
|
||||
|
||||
7 Add a watchpoint in the debug mode: An expression that breaks execution
|
||||
when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
||||
the value of the expression changes. ":watchdel" deletes an item,
|
||||
":watchlist" lists the items. (Charles Campbell)
|
||||
Patch by Christian Brabandt, 2016 Jun 10, #859
|
||||
|
||||
7 Make "ga" show the digraph for a character, if it exists.
|
||||
Patch from Christian Brabandt, 2011 Aug 19.
|
||||
|
||||
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
|
||||
8, #1757) Now part of #2322. Or #2327? #1757 was re-opened, include that
|
||||
first.
|
||||
|
||||
ch_sendraw() with long string does not try to read inbetween, which may cause
|
||||
a deadlock if the reading side is waiting for the write to finish. (Nate
|
||||
Bosch, 2018 Jan 13, #2548)
|
||||
|
||||
Problem with mouse scroll in tmux. (fcying, #2419) Might be caused by patch
|
||||
8.0.1309.
|
||||
|
||||
Des setting 'cursorline' cause syntax highlighting to slow down? Perhaps is
|
||||
mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539)
|
||||
|
||||
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
|
||||
|
||||
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||
(Marcin Szewczyk, 2017 Apr 26)
|
||||
@ -161,42 +296,101 @@ With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||
Using 'wildignore' also applies to literally entered file name. Also with
|
||||
:drop (remote commands).
|
||||
|
||||
"gvim --remote" from a directory with non-word characters changes the current
|
||||
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
|
||||
Also see #1689.
|
||||
|
||||
Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro
|
||||
Takasaki, Ken Takata, 2017 Oct 1, #2060).
|
||||
|
||||
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
||||
Lemonboy can reproduce (2017 Jun 5)
|
||||
|
||||
When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
|
||||
highlighted. (van-debugger, 2018 Jan 23, #2576)
|
||||
|
||||
Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)
|
||||
|
||||
No profile information for function that executes ":quit". (Daniel Hahler,
|
||||
2017 Dec 26, #2501)
|
||||
|
||||
Get a "No Name" buffer when 'hidden' is set and opening a new window from the
|
||||
quickfix list. (bfrg, 2018 Jan 22, #2574)
|
||||
|
||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||
|
||||
Patch to fix E806. (Dominique, 2017 Nov 22, #2368)
|
||||
Kazunobu Kuriyama: caused by XtSetLanguageProc().
|
||||
|
||||
Patch to fix GUI find/replace dialog. (kiloliter, 2017 Dec 11, report in
|
||||
#2418, fix in #2435)
|
||||
|
||||
Invalid range error when using BufWinLeave for closing terminal.
|
||||
(Gabriel Barta, 2017 Nov 15, #2339)
|
||||
|
||||
ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Patch to avoid clearing the intro message on Win32 console.
|
||||
(Ken Takata, 2017 Nov 14)
|
||||
|
||||
Patch to fix encoding in print document name (Yasuhiro Matsumoto, 2017 Dec 20,
|
||||
#2478)
|
||||
|
||||
Patch to copy buffer-local options before buffer leaves the window. (Bjorn
|
||||
Linse, 2017 Nov 14, #2336)
|
||||
|
||||
Join truncates xml comment. (Dmitrii Tcyganok, 2017 Dec 24, #2494)
|
||||
Requires 'formatoptions' to include "j". (Gary Johnson, 2017 Dec 24)
|
||||
|
||||
When a timer is running and typing CTRL-R on the command line, it is not
|
||||
redrawn properly. (xtal8, 2017 Oct 23, #2241)
|
||||
|
||||
Universal solution to detect if t_RS is working, using cursor position.
|
||||
Koichi Iwamoto, #2126
|
||||
|
||||
Patch to fix cmdline abbreviation after '<,'>. (Christian Brabandt, 2017 Nov
|
||||
13, on issue #2320)
|
||||
|
||||
Patch for Neovim concerning restoring when closing help window. (glacambre
|
||||
neovim #7431)
|
||||
|
||||
Default install on MS-Windows should source defaults.vim.
|
||||
Ask whether to use Windows or Vim key behavior?
|
||||
|
||||
Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
|
||||
Nov 21)
|
||||
|
||||
Add a ModeChanged autocommand that has an argument indicating the old and new
|
||||
mode. Also used for switching Terminal mode.
|
||||
|
||||
When using command line window, CmdlineLeave is triggered without
|
||||
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
|
||||
Add some way to get the nested state. Although CmdwinEnter is obviously
|
||||
always nested.
|
||||
|
||||
matchit hasn't been maintained for a long time. #955.
|
||||
|
||||
Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
|
||||
|
||||
MS-Windows: buffer completion doesn't work when using backslash (or slash)
|
||||
for a path separator. (xtal8, #2201)
|
||||
|
||||
Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
|
||||
#2357)
|
||||
|
||||
Test runtime files.
|
||||
Start with filetype detection: testdir/test_filetype.vim
|
||||
|
||||
Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
|
||||
Feb 14). Also see #1215.
|
||||
|
||||
Patch to ignore case when 'diffopt' has "icase" for finding the difference
|
||||
inside a line. (Rick Howe, 2017 Aug 21, 22 with test)
|
||||
|
||||
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
|
||||
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
|
||||
Update mentioned by Christian, 2016 Apr 25.
|
||||
Update from Ken Takata, 2017 Aug 23.
|
||||
|
||||
Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
|
||||
Kiichi, 2016 Feb 28)
|
||||
Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
|
||||
Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
|
||||
Update Aug 2017: #1953
|
||||
|
||||
Patch to fix indenting for raw C++ string. (Christian Brabandt, 2017 Aug 24,
|
||||
#2019)
|
||||
Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
|
||||
|
||||
Add options_default() / options_restore() to set several options to Vim
|
||||
defaults for a plugin. Comments from Zyx, 2017 May 10.
|
||||
Perhaps use a vimcontext / endvimcontext command block.
|
||||
|
||||
Patch to fix bogus characters inserted in visual-block append. (Christian
|
||||
Brabandt, 2017 Aug 23)
|
||||
After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
|
||||
13, #2084). Set old position after the command.
|
||||
|
||||
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
|
||||
Still happens (2017 Jul 9)
|
||||
@ -204,23 +398,34 @@ Still happens (2017 Jul 9)
|
||||
When bracketed paste is used, pasting at the ":append" prompt does not get the
|
||||
line breaks. (Ken Takata, 2017 Aug 22)
|
||||
|
||||
This example in the help does not work (Andy Wokula, 2017 Aug 20):
|
||||
augroup mine | au! BufRead | augroup END
|
||||
The ":move" command does not honor closed folds. (Ryan Lue, #2351)
|
||||
|
||||
Memory leak in test_arabic.
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
Using uninitialized value in test_crypt.
|
||||
Memory leaks in test_escaped_glob
|
||||
|
||||
Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
Patch to clear background when "guibg=NONE" is used and 'termguicolors' is
|
||||
set. (Nick Jensen, 2017 Nov 13, #2332, based on #981 by Kazunobu Kuriyama)
|
||||
|
||||
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
||||
|
||||
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
|
||||
|
||||
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
It can replace the BeOS code, which is likely not used anymore.
|
||||
Now on github: #1856. Is now up-to-date?
|
||||
Now on github: #1856. Updated Oct 2017
|
||||
Got permission to include this under the Vim license.
|
||||
|
||||
Patch to include hunspell support. (Matej Cepl, 2017 Dec 26, #845)
|
||||
Doesn't work on Windows yet.
|
||||
|
||||
Refactored HTML indent file. (Michael Lee, #1821)
|
||||
|
||||
Using uninitialized value in test_crypt.
|
||||
|
||||
Test_writefile_fails_conversion failure on Solaris because if different iconv
|
||||
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
|
||||
|
||||
'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)
|
||||
|
||||
All functions are global, which makes functions like get() and len() awkward.
|
||||
For the future use the ~get() and ~len() syntax, e.g.:
|
||||
mylist~get(idx)
|
||||
@ -235,6 +440,15 @@ Alternatives for ~:
|
||||
|
||||
The ++ options for the :edit command are also useful on the Vim command line.
|
||||
|
||||
When recovering a file, put the swap file name in b:recovered_swapfile. Then
|
||||
a command can delete it.
|
||||
|
||||
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
|
||||
#2089) Patch with possible solution by Björn Linse.
|
||||
|
||||
The change list index is local to a buffer, but it doesn't make sense using it
|
||||
for another buffer. (lacygoll) Copy w_changelistidx to wininfo_S and back.
|
||||
|
||||
X11: Putting more than about 262040 characters of text on the clipboard and
|
||||
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
|
||||
clip_x11_request_selection_cb() is called with zero value and length.
|
||||
@ -249,15 +463,30 @@ Creating a partial with an autoload function is confused about the "self"
|
||||
attribute of the function. For an unknown function assume "self" and make
|
||||
that optiona? (Bjorn Linse, 2017 Aug 5)
|
||||
|
||||
Cindent: returning a structure has more indent for the second item.
|
||||
(Sam Pagenkopf, 2017 Sep 14, #2090)
|
||||
|
||||
Completion mixes results from the current buffer with tags and other files.
|
||||
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
|
||||
terminal.c and then CTRL-N twice.
|
||||
Should do current file first and not split it up when more results are found.
|
||||
(Also #1890)
|
||||
|
||||
Patch from Christian Brabandt to preserve upper case marks when wiping out a
|
||||
buffer. (2013 Dec 9)
|
||||
Also fixes #2166?
|
||||
|
||||
Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
|
||||
|
||||
Python: After "import vim" error messages only show the first line of the
|
||||
stack trace. (Yggdroot, 2017 Jul 28, #1887)
|
||||
|
||||
Profile of a dict function is lost when the dict is deleted. Would it be
|
||||
possible to collect this? (Daniel Hahler, #2350)
|
||||
|
||||
Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
|
||||
#2322) Now in #2327?
|
||||
|
||||
When checking if a bufref is valid, also check the buffer number, to catch the
|
||||
case of :bwipe followed by :new.
|
||||
|
||||
@ -293,8 +522,6 @@ Use gvimext.dll from the nightly build? (Issue #249)
|
||||
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
||||
8, #1690)
|
||||
|
||||
Include solarized color scheme?
|
||||
|
||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||
manager. Problem with Motif?
|
||||
|
||||
@ -334,7 +561,7 @@ Perhaps simpler: actually delete the mappings. Use maplist() to list matching
|
||||
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
||||
maprestore() to restore (using the output of maplist()).
|
||||
|
||||
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
||||
Add an argument to :mkvimrc (or add another command) to skip mappings from
|
||||
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
||||
be defined when the plugin is loaded.
|
||||
|
||||
@ -371,10 +598,6 @@ Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
|
||||
|
||||
Completion for :!cmd shows each match twice. #1435
|
||||
|
||||
Patch to change GUI behavior: instead of changing the window size change the
|
||||
lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
|
||||
#703)
|
||||
|
||||
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.
|
||||
@ -467,8 +690,6 @@ Patch for wrong cursor position on wrapped line, involving breakindent.
|
||||
(Ozaki Kiichi, 2016 Nov 25)
|
||||
Does this also fix #1408 ?
|
||||
|
||||
Patch to add "module" to quickfix entries. (Coot, 2017 Jun 8, #1757)
|
||||
|
||||
'cursorline' and match interfere. (Ozaki Kiichi, 2017 Jun 23, #1792)
|
||||
|
||||
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
||||
@ -555,7 +776,7 @@ Probably list of keystrokes, with some annotations for mode changes.
|
||||
Could store in logfile to be able to analyse it with an external command.
|
||||
E.g. to see when's the last time a plugin command was used.
|
||||
|
||||
execute() cannot be used with command completeion. (Daniel Hahler, 2016 Oct 1,
|
||||
execute() cannot be used with command completion. (Daniel Hahler, 2016 Oct 1,
|
||||
#1141)
|
||||
|
||||
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
|
||||
@ -587,9 +808,6 @@ Patch to add ":syn foldlevel" to use fold level further down the line.
|
||||
Completion for input() does not expand environment variables. (chdiza, 2016
|
||||
Jul 25, #948)
|
||||
|
||||
Patch to fix wrong encoding of error message on Cygwin/MSYS terminal.
|
||||
(Ken Takata, 2016 Oct 4)
|
||||
|
||||
Patch to add 'systemencoding', convert between 'encoding' and this for file
|
||||
names, shell commands and the like. (Kikuchan, 2010 Oct 14)
|
||||
Assume the system converts between the actual encoding of the filesystem to
|
||||
@ -612,9 +830,6 @@ Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
|
||||
Have a way to get the call stack, in a function and from an exception.
|
||||
#1125
|
||||
|
||||
Patch to add 'pythonhome' and 'pythonthreehome' options. (Kazuki Sakamoto,
|
||||
2016 Nov 21, #1266)
|
||||
|
||||
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
|
||||
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
|
||||
|
||||
@ -629,11 +844,6 @@ Patch to improve map documentation. Issue #799.
|
||||
|
||||
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
|
||||
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
||||
Update 2016 Aug 10.
|
||||
|
||||
We can use '. to go to the last change in the current buffer, but how about
|
||||
the last change in any buffer? Can we use ', (, is next to .)?
|
||||
|
||||
@ -734,12 +944,6 @@ directory exists. (Sergio Gallelli, 2013 Dec 29)
|
||||
In debug mode one can inspect variables, but not the function parameters
|
||||
(starting with a:). (Luc Hermitte, 2017 Jan 4, #1352)
|
||||
|
||||
7 Add a watchpoint in the debug mode: An expression that breaks execution
|
||||
when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
||||
the value of the expression changes. ":watchdel" deletes an item,
|
||||
":watchlist" lists the items. (Charles Campbell)
|
||||
Patch by Christian Brabandt, 2016 Jun 10, #859
|
||||
|
||||
If ":bd" also closes a Tab page then the " mark is not set. (Harm te Hennepe,
|
||||
2016 Apr 25, #780)
|
||||
|
||||
@ -869,7 +1073,8 @@ When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
|
||||
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
|
||||
|
||||
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
|
||||
Sep 10)
|
||||
Sep 10) Update 2018 Jan 4 #2575
|
||||
Alternate change by Ken Takata.
|
||||
|
||||
Example in editing.txt uses $HOME with the expectation that it ends in a
|
||||
slash. For me it does, but perhaps not for everybody. Add a function that
|
||||
@ -976,8 +1181,6 @@ Patch to open folds for 'incsearch'. (Christian Brabandt, 2015 Jan 6)
|
||||
Patch for building a 32bit Vim with 64bit MingW compiler.
|
||||
(Michael Soyka, 2014 Oct 15)
|
||||
|
||||
Delete old code in os_msdos.c, mch_FullName().
|
||||
|
||||
Patch: On MS-Windows shellescape() may have to triple double quotes.
|
||||
(Ingo Karkat, 2015 Jan 16)
|
||||
|
||||
@ -1005,8 +1208,6 @@ Jun 8)
|
||||
Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
|
||||
insert a space. (Micha Mos, 2014 Nov 7)
|
||||
|
||||
Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
|
||||
|
||||
No error for missing endwhile. (ZyX, 2014 Mar 20)
|
||||
|
||||
Patch to make extend() fail early when it might fail at some point.
|
||||
@ -1152,9 +1353,6 @@ When evaluating expression in backticks, autoload doesn't work.
|
||||
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
|
||||
Dec 13.
|
||||
|
||||
Patch from Christian Brabandt to preserve upper case marks when wiping out a
|
||||
buffer. (2013 Dec 9)
|
||||
|
||||
GTK: problem with 'L' in 'guioptions' changing the window width.
|
||||
(Aaron Cornelius, 2012 Feb 6)
|
||||
|
||||
@ -1175,13 +1373,6 @@ Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
|
||||
Doesn't work for string in list. Other way to pass all types of variables
|
||||
reliably?
|
||||
|
||||
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
|
||||
That is, calling a dictionary function on an autoloaded dict.
|
||||
Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
|
||||
17)
|
||||
Patch by Christian Brabandt, 2013 Mar 23.
|
||||
Not 100% sure this is the right solution.
|
||||
|
||||
Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
|
||||
(Christian Brabandt, 2013 Dec 9)
|
||||
|
||||
@ -1428,8 +1619,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
|
||||
BT regexp engine: After trying a \@> match and failing, submatches are not
|
||||
cleared. See test64.
|
||||
|
||||
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
|
||||
|
||||
Patch to make "z=" work when 'spell' is off. Does this have nasty side
|
||||
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
|
||||
Would also need to do this for spellbadword() and spellsuggest().
|
||||
@ -1452,9 +1641,6 @@ doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
|
||||
|
||||
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
|
||||
|
||||
7 Make "ga" show the digraph for a character, if it exists.
|
||||
Patch from Christian Brabandt, 2011 Aug 19.
|
||||
|
||||
maparg() does not show the <script> flag. When temporarily changing a
|
||||
mapping, how to restore the script ID?
|
||||
|
||||
@ -1472,9 +1658,6 @@ 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)
|
||||
|
||||
Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
|
||||
May 24) Update May 26.
|
||||
|
||||
Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
|
||||
|
||||
Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)
|
||||
@ -1519,6 +1702,9 @@ GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
|
||||
Win32: tear-off menu does not work when menu language is German. (Markus
|
||||
Bossler, 2011 Mar 2) Fixed by 7.3.095?
|
||||
|
||||
Wish for NetBeans commands:
|
||||
- make it possible to have 'defineAnnoType' also handle terminal colors.
|
||||
|
||||
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
|
||||
|
||||
7.3.014 changed how backslash at end of line works, but still get a NUL when
|
||||
@ -1851,8 +2037,6 @@ Haskell, 2010 Aug 24)
|
||||
|
||||
This does not work yet: "a\(%C\)" (get composing characters into a submatch).
|
||||
|
||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||
|
||||
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
|
||||
messages, even though locale is not supported. But ":lang messages
|
||||
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
|
||||
@ -2202,9 +2386,6 @@ with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then
|
||||
go to Insert mode and add a few lines. Then backspacing every other time
|
||||
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
|
||||
|
||||
Windows installer should install 32-bit version of right-click handler also on
|
||||
64-bit systems. (Brian Cunningham, 2011 Dec 28)
|
||||
|
||||
Windows installer could add a "open in new tab of existing Vim" menu entry.
|
||||
Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
|
||||
Just have two choices, always using one Vim and selecting between using an
|
||||
@ -3709,7 +3890,7 @@ Multi-byte characters:
|
||||
at a multi-byte character >= 0x100.
|
||||
- Add the possibility to enter mappings which are used whenever normal text
|
||||
could be entered. E.g., for "f" command. But not in Normal mode. Sort
|
||||
of opposite of 'langmap'. Use ":tmap" command?
|
||||
of opposite of 'langmap'. Use ":amap" command?
|
||||
- When breaking a line, take properties of multi-byte characters into
|
||||
account. The "linebreak" program from Bruno Haible can do it:
|
||||
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
||||
@ -4641,7 +4822,7 @@ Command line history:
|
||||
- Add "KeyWasTyped" flag: It's reset before each command and set when a
|
||||
character from the keyboard is consumed. Value is used to decide to put a
|
||||
command line in history or not. Put line in history if it didn't
|
||||
completely resulted from one mapping.
|
||||
completely result from one mapping.
|
||||
- When using ":browse", also put the resulting edit command in the history,
|
||||
so that it can be repeated. (Demirel)
|
||||
|
||||
@ -5189,7 +5370,7 @@ Swap (.swp) files:
|
||||
- Add an option to create a swap file only when making the first change to
|
||||
the buffer. (Liang) Or only when the buffer is not read-only.
|
||||
- Add option to set "umask" for backup files and swap files (Antwerpen).
|
||||
'backupumask' and 'swapumask'? Or 'umaskback' and 'umaskswap'?
|
||||
'backupumask' and 'swapumask'? Or 'umaskbackup' and 'umaskswap'?
|
||||
- When editing a readonly file, don't use a swap file but read parts from the
|
||||
original file. Also do this when the file is huge (>'maxmem'). We do
|
||||
need to load the file once to count the number of lines? Perhaps keep a
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_07.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||
*usr_07.txt* For Vim version 8.0. Last change: 2017 Sep 18
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -215,14 +215,14 @@ change: >
|
||||
|
||||
`.
|
||||
|
||||
Suppose you are editing the file "one.txt". Somewhere halfway the file you
|
||||
use "x" to delete a character. Then you go to the last line with "G" and
|
||||
write the file with ":w". You edit several other files, and then use ":edit
|
||||
one.txt" to come back to "one.txt". If you now use `" Vim jumps to the last
|
||||
line of the file. Using `. takes you to the position where you deleted the
|
||||
character. Even when you move around in the file `" and `. will take you to
|
||||
the remembered position. At least until you make another change or leave the
|
||||
file.
|
||||
Suppose you are editing the file "one.txt". Somewhere halfway through the
|
||||
file you use "x" to delete a character. Then you go to the last line with "G"
|
||||
and write the file with ":w". You edit several other files, and then use
|
||||
":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
|
||||
last line of the file. Using `. takes you to the position where you deleted
|
||||
the character. Even when you move around in the file `" and `. will take you
|
||||
to the remembered position. At least until you make another change or leave
|
||||
the file.
|
||||
|
||||
|
||||
FILE MARKS
|
||||
@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
|
||||
each file has its own set of marks, they are local to the file.
|
||||
So far we were using marks with a lowercase letter. There are also marks
|
||||
with an uppercase letter. These are global, they can be used from any file.
|
||||
For example suppose that we are editing the file "foo.txt". Go to halfway the
|
||||
file ("50%") and place the F mark there (F for foo): >
|
||||
For example suppose that we are editing the file "foo.txt". Go to halfway
|
||||
down the file ("50%") and place the F mark there (F for foo): >
|
||||
|
||||
50%mF
|
||||
|
||||
|
@ -21,7 +21,7 @@ Table of contents: |usr_toc.txt|
|
||||
==============================================================================
|
||||
*09.1* Parts of the GUI
|
||||
|
||||
You might have an icon on your desktop that starts gVim. Otherwise, one of
|
||||
You might have an icon on your desktop that starts gvim. Otherwise, one of
|
||||
these commands should do it: >
|
||||
|
||||
gvim file.txt
|
||||
@ -184,12 +184,12 @@ currently highlighted. In Vim this is the Visual area (this assumes you are
|
||||
using the default option settings). You can paste this selection in another
|
||||
application without any further action.
|
||||
For example, in this text select a few words with the mouse. Vim will
|
||||
switch to Visual mode and highlight the text. Now start another gVim, without
|
||||
switch to Visual mode and highlight the text. Now start another gvim, without
|
||||
a file name argument, so that it displays an empty window. Click the middle
|
||||
mouse button. The selected text will be inserted.
|
||||
|
||||
The "current selection" will only remain valid until some other text is
|
||||
selected. After doing the paste in the other gVim, now select some characters
|
||||
selected. After doing the paste in the other gvim, now select some characters
|
||||
in that window. You will notice that the words that were previously selected
|
||||
in the other gvim window are displayed differently. This means that it no
|
||||
longer is the current selection.
|
||||
@ -204,10 +204,10 @@ Now for the other place with which text can be exchanged. We call this the
|
||||
"real clipboard", to avoid confusion. Often both the "current selection" and
|
||||
the "real clipboard" are called clipboard, you'll have to get used to that.
|
||||
To put text on the real clipboard, select a few different words in one of
|
||||
the gVims you have running. Then use the Edit/Copy menu entry. Now the text
|
||||
the gvims you have running. Then use the Edit/Copy menu entry. Now the text
|
||||
has been copied to the real clipboard. You can't see this, unless you have
|
||||
some application that shows the clipboard contents (e.g., KDE's Klipper).
|
||||
Now select the other gVim, position the cursor somewhere and use the
|
||||
Now select the other gvim, position the cursor somewhere and use the
|
||||
Edit/Paste menu. You will see the text from the real clipboard is inserted.
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_27.txt* For Vim version 8.0. Last change: 2010 Mar 28
|
||||
*usr_27.txt* For Vim version 8.0. Last change: 2018 Jan 26
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -225,9 +225,9 @@ specify a line offset, this can cause trouble. For example: >
|
||||
/const/-2
|
||||
|
||||
This finds the next word "const" and then moves two lines up. If you
|
||||
use "n" to search again, Vim could start at the current position and find the same
|
||||
"const" match. Then using the offset again, you would be back where you started.
|
||||
You would be stuck!
|
||||
use "n" to search again, Vim could start at the current position and find the
|
||||
same "const" match. Then using the offset again, you would be back where you
|
||||
started. You would be stuck!
|
||||
It could be worse: Suppose there is another match with "const" in the next
|
||||
line. Then repeating the forward search would find this match and move two
|
||||
lines up. Thus you would actually move the cursor back!
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Aug 22
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Dec 02
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -886,10 +886,11 @@ GUI: *gui-functions*
|
||||
getwinposx() X position of the GUI Vim window
|
||||
getwinposy() Y position of the GUI Vim window
|
||||
balloon_show() set the balloon content
|
||||
balloon_split() split a message for a balloon
|
||||
|
||||
Vim server: *server-functions*
|
||||
serverlist() return the list of server names
|
||||
remote_startserve() run a server
|
||||
remote_startserver() run a server
|
||||
remote_send() send command characters to a Vim server
|
||||
remote_expr() evaluate an expression in a Vim server
|
||||
server2client() send a reply to a client of a Vim server
|
||||
@ -901,6 +902,7 @@ Vim server: *server-functions*
|
||||
Window size and position: *window-size-functions*
|
||||
winheight() get height of a specific window
|
||||
winwidth() get width of a specific window
|
||||
win_screenpos() get screen position of a window
|
||||
winrestcmd() return command to restore window sizes
|
||||
winsaveview() get view of current window
|
||||
winrestview() restore saved view of current window
|
||||
|
@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.0. Last change: 2017 Feb 24
|
||||
*various.txt* For Vim version 8.0. Last change: 2017 Nov 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -309,9 +309,13 @@ g8 Print the hex values of the bytes used in the
|
||||
*+ARP* Amiga only: ARP support included
|
||||
B *+arabic* |Arabic| language support
|
||||
N *+autocmd* |:autocmd|, automatic commands
|
||||
m *+balloon_eval* |balloon-eval| support. Included when compiling with
|
||||
supported GUI (Motif, GTK, GUI) and either
|
||||
Netbeans/Sun Workshop integration or |+eval| feature.
|
||||
H *+autoservername* Automatically enable |clientserver|
|
||||
m *+balloon_eval* |balloon-eval| support in the GUI. Included when
|
||||
compiling with supported GUI (Motif, GTK, GUI) and
|
||||
either Netbeans/Sun Workshop integration or |+eval|
|
||||
feature.
|
||||
H *+balloon_eval_term* |balloon-eval| support in the terminal,
|
||||
'balloonevalterm'
|
||||
N *+browse* |:browse| command
|
||||
N *+builtin_terms* some terminals builtin |builtin-terms|
|
||||
B *++builtin_terms* maximal terminals builtin |builtin-terms|
|
||||
@ -322,7 +326,7 @@ N *+cindent* |'cindent'|, C indenting
|
||||
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
|
||||
*+clipboard* |clipboard| support
|
||||
N *+cmdline_compl* command line completion |cmdline-completion|
|
||||
N *+cmdline_hist* command line history |cmdline-history|
|
||||
S *+cmdline_hist* command line history |cmdline-history|
|
||||
N *+cmdline_info* |'showcmd'| and |'ruler'|
|
||||
N *+comments* |'comments'| support
|
||||
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
|
||||
@ -361,7 +365,7 @@ m *+hangul_input* Hangul input support |hangul|
|
||||
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
|
||||
N *+insert_expand* |insert_expand| Insert mode completion
|
||||
m *+job* starting and stopping jobs |job|
|
||||
N *+jumplist* |jumplist|
|
||||
S *+jumplist* |jumplist|
|
||||
B *+keymap* |'keymap'|
|
||||
N *+lambda* |lambda| and |closure|
|
||||
B *+langmap* |'langmap'|
|
||||
@ -438,14 +442,16 @@ N *+title* Setting the window 'title' and 'icon'
|
||||
N *+toolbar* |gui-toolbar|
|
||||
N *+user_commands* User-defined commands. |user-commands|
|
||||
N *+viminfo* |'viminfo'|
|
||||
N *+vertsplit* Vertically split windows |:vsplit|
|
||||
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||
since 8.0.1118.
|
||||
in sync with the |+windows| feature
|
||||
N *+virtualedit* |'virtualedit'|
|
||||
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
||||
N *+visualextra* extra Visual mode commands |blockwise-operators|
|
||||
N *+vreplace* |gR| and |gr|
|
||||
N *+wildignore* |'wildignore'|
|
||||
N *+wildmenu* |'wildmenu'|
|
||||
S *+windows* more than one window
|
||||
*+windows* more than one window; Always enabled since 8.0.1118.
|
||||
m *+writebackup* |'writebackup'| is default on
|
||||
m *+xim* X input method |xim|
|
||||
*+xfontset* X fontset support |xfontset|
|
||||
|
@ -1,4 +1,4 @@
|
||||
*version8.txt* For Vim version 8.0. Last change: 2017 Apr 23
|
||||
*version8.txt* For Vim version 8.0. Last change: 2017 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -11778,7 +11778,7 @@ Files: src/os_unix.c
|
||||
Patch 7.4.1915
|
||||
Problem: The effect of the PopupMenu autocommand isn't directly visible.
|
||||
Solution: Call gui_update_menus() before displaying the popup menu. (Shane
|
||||
Harper, closs #855)
|
||||
Harper, closes #855)
|
||||
Files: src/menu.c
|
||||
|
||||
Patch 7.4.1916 (after 7.4.1906)
|
||||
@ -15398,7 +15398,7 @@ Files: src/testdir/test_undo.vim, src/undo.c
|
||||
Patch 8.0.0150
|
||||
Problem: When the pattern of :filter does not have a separator then
|
||||
completion of the command fails.
|
||||
Solution: Skip over the pattern. (Ozaki Kiichi, clodes #1299)
|
||||
Solution: Skip over the pattern. (Ozaki Kiichi, closes #1299)
|
||||
Files: src/ex_docmd.c, src/testdir/test_filter_cmd.vim
|
||||
|
||||
Patch 8.0.0151
|
||||
@ -15582,7 +15582,7 @@ Files: src/json.c, src/testdir/test_json.vim
|
||||
|
||||
Patch 8.0.0181
|
||||
Problem: When 'cursorbind' and 'cursorcolumn' are both on, the column
|
||||
highlignt in non-current windows is wrong.
|
||||
highlight in non-current windows is wrong.
|
||||
Solution: Add validate_cursor(). (Masanori Misono, closes #1372)
|
||||
Files: src/move.c
|
||||
|
||||
|
@ -325,7 +325,7 @@ You can still edit the buffer, but will be prevented from accidentally
|
||||
overwriting a file.
|
||||
If you do want to overwrite a file, add an exclamation mark to the Ex command,
|
||||
as in ":w!".
|
||||
The \-R option also implies the \-n option (see below).
|
||||
The \-R option also implies the \-n option (see above).
|
||||
The 'readonly' option can be reset with ":set noro".
|
||||
See ":help 'readonly'".
|
||||
.TP
|
||||
|
@ -225,7 +225,7 @@ OPTIONS
|
||||
dentally overwriting a file. If you do want to overwrite a
|
||||
file, add an exclamation mark to the Ex command, as in
|
||||
":w!". The -R option also implies the -n option (see
|
||||
below). The 'readonly' option can be reset with ":set
|
||||
above). The 'readonly' option can be reset with ":set
|
||||
noro". See ":help 'readonly'".
|
||||
|
||||
-r List swap files, with information about using them for
|
||||
|
@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 8.0. Last change: 2014 Mar 23
|
||||
*visual.txt* For Vim version 8.0. Last change: 2017 Sep 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.0. Last change: 2017 Aug 21
|
||||
*windows.txt* For Vim version 8.0. Last change: 2017 Sep 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -619,7 +619,8 @@ The minimal height and width of a window is set with 'winminheight' and
|
||||
41. :buffers list of buffers
|
||||
|
||||
The meaning of [N] depends on the command:
|
||||
[N] is number of buffers to go forward/backward on ?2, ?3, and ?4
|
||||
[N] is the number of buffers to go forward/backward on 2/12/22/32,
|
||||
3/13/23/33, and 4/14/24/34
|
||||
[N] is an argument number, defaulting to current argument, for 1 and 21
|
||||
[N] is a buffer number, defaulting to current buffer, for 11 and 31
|
||||
[N] is a count for 19 and 39
|
||||
@ -1034,6 +1035,7 @@ list of buffers. |unlisted-buffer|
|
||||
= a readonly buffer
|
||||
R a terminal buffer with a running job
|
||||
F a terminal buffer with a finished job
|
||||
? a terminal buffer without a job: `:terminal NONE`
|
||||
+ a modified buffer
|
||||
x a buffer with read errors
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim script for Evim key bindings
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Jul 24
|
||||
" Last Change: 2017 Sep 20
|
||||
|
||||
" Don't use Vi-compatible mode.
|
||||
set nocompatible
|
||||
@ -67,8 +67,10 @@ endif " has("autocmd")
|
||||
"
|
||||
" The matchit plugin makes the % command work better, but it is not backwards
|
||||
" compatible.
|
||||
" The ! means the package won't be loaded right away but when plugins are
|
||||
" loaded during initialization.
|
||||
if has('syntax') && has('eval')
|
||||
packadd matchit
|
||||
packadd! matchit
|
||||
endif
|
||||
|
||||
" vim: set sw=2 :
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Jun 12
|
||||
" Last Change: 2017 Sep 28
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@ -35,8 +35,8 @@ if has("vms")
|
||||
endif
|
||||
|
||||
" When the matchit plugin is loaded, this makes the % command skip parens and
|
||||
" braces in comments.
|
||||
let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
|
||||
" braces in comments properly.
|
||||
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
|
||||
let b:match_skip = 's:comment\|string\|character\|special'
|
||||
|
||||
" Win32 can filter files in the browse dialog
|
||||
|
16
runtime/ftplugin/cmake.vim
Normal file
16
runtime/ftplugin/cmake.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin
|
||||
" Language: CMake
|
||||
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
|
||||
" Last Change: 2017 Dec 24
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
12
runtime/ftplugin/gdb.vim
Normal file
12
runtime/ftplugin/gdb.vim
Normal file
@ -0,0 +1,12 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: gdb
|
||||
" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org>
|
||||
" Last Changed: 26 Oct 2017
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=#%s
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "setlocal cms<"
|
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: man
|
||||
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||
" Last Change: 2017 Jan 18
|
||||
" Last Change: 2018 Jan 15
|
||||
|
||||
" To make the ":Man" command available before editing a manual page, source
|
||||
" this script from your startup vimrc file.
|
||||
@ -15,12 +15,6 @@ if &filetype == "man"
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Ensure Vim is not recursively invoked (man-db does this)
|
||||
" when doing ctrl-[ on a man page reference.
|
||||
if exists("$MANPAGER")
|
||||
let $MANPAGER = ""
|
||||
endif
|
||||
|
||||
" allow dot and dash in manual page name.
|
||||
setlocal iskeyword+=\.,-
|
||||
|
||||
@ -45,7 +39,7 @@ if &filetype == "man"
|
||||
endif
|
||||
|
||||
if exists(":Man") != 2
|
||||
com -nargs=+ Man call s:GetPage(<f-args>)
|
||||
com -nargs=+ -complete=shellcmd Man call s:GetPage(<f-args>)
|
||||
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
|
||||
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
|
||||
endif
|
||||
@ -176,7 +170,19 @@ func <SID>GetPage(...)
|
||||
let $MANWIDTH = winwidth(0)
|
||||
let unsetwidth = 1
|
||||
endif
|
||||
silent exec "r !man ".s:GetCmdArg(sect, page)." | col -b"
|
||||
|
||||
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
|
||||
" on a man page reference by unsetting MANPAGER.
|
||||
" Some versions of env(1) do not support the '-u' option, and in such case
|
||||
" we set MANPAGER=cat.
|
||||
if !exists('s:env_has_u')
|
||||
call system('env -u x true')
|
||||
let s:env_has_u = (v:shell_error == 0)
|
||||
endif
|
||||
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
|
||||
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
|
||||
silent exec "r !" . man_cmd
|
||||
|
||||
if unsetwidth
|
||||
let $MANWIDTH = ''
|
||||
endif
|
||||
|
23
runtime/ftplugin/neomuttrc.vim
Normal file
23
runtime/ftplugin/neomuttrc.vim
Normal file
@ -0,0 +1,23 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: NeoMutt RC File
|
||||
" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
|
||||
" Latest Revision: 2017-09-17
|
||||
" Original version copied from ftplugin/muttrc.vim
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< inc< fo<"
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &l:include = '^\s*source\>'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,22 +1,43 @@
|
||||
" Vim ftplugin file
|
||||
" Language: NSIS script
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
" Language: NSIS script
|
||||
" Maintainer: Ken Takata
|
||||
" URL: https://github.com/k-takata/vim-nsis
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Last Change: 2018-01-26
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
|
||||
\ " | unlet! b:match_ignorecase b:match_words"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
|
||||
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 1
|
||||
let b:match_words =
|
||||
\ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' .
|
||||
\ '\${Select}:\${EndSelect},' .
|
||||
\ '\${Switch}:\${EndSwitch},' .
|
||||
\ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' .
|
||||
\ '\${\%(For\|ForEach\)}:\${Next},' .
|
||||
\ '\<Function\>:\<FunctionEnd\>,' .
|
||||
\ '\<Section\>:\<SectionEnd\>,' .
|
||||
\ '\<SectionGroup\>:\<SectionGroupEnd\>,' .
|
||||
\ '\<PageEx\>:\<PageExEnd\>,' .
|
||||
\ '\${MementoSection}:\${MementoSectionEnd},' .
|
||||
\ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
|
||||
\ '!macro\>:!macroend\>'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@ -3,7 +3,7 @@
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2013-07-21
|
||||
" Last Change: 2015-02-09
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
@ -33,14 +33,14 @@ endif
|
||||
setlocal include=\\<\\(use\\\|require\\)\\>
|
||||
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
|
||||
setlocal define=[^A-Za-z_]
|
||||
setlocal iskeyword+=:
|
||||
|
||||
" The following line changes a global variable but is necessary to make
|
||||
" gf and similar commands work. The change to iskeyword was incorrect.
|
||||
" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
|
||||
" problem for you, add an after/ftplugin/perl.vim file that contains
|
||||
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
|
||||
" out the problem. If this causes a problem for you, add an
|
||||
" after/ftplugin/perl.vim file that contains
|
||||
" set isfname-=:
|
||||
set isfname+=:
|
||||
set iskeyword+=:
|
||||
|
||||
" Set this once, globally.
|
||||
if !exists("perlpath")
|
||||
@ -77,11 +77,12 @@ endif
|
||||
"---------------------------------------------
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
" proper matching for matchit plugin
|
||||
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
|
||||
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
|
@ -1,9 +1,10 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: python
|
||||
" Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Maintainer: Tom Picton <tom@tompicton.co.uk>
|
||||
" Previous Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Tue, 09 October 2016
|
||||
" https://github.com/sullyj3/vim-ftplugin-python
|
||||
" Last Change: Wed, 20 December 2017
|
||||
" https://github.com/tpict/vim-ftplugin-python
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
@ -19,36 +20,59 @@ setlocal comments=b:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal omnifunc=pythoncomplete#Complete
|
||||
if has('python3')
|
||||
setlocal omnifunc=python3complete#Complete
|
||||
endif
|
||||
|
||||
set wildignore+=*.pyc
|
||||
|
||||
let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
|
||||
let b:prev_toplevel='\v^(class\|def\|async def)>'
|
||||
let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
|
||||
let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
|
||||
let b:next='\v%$\|^\s*(class\|def\|async def)>'
|
||||
let b:prev='\v^\s*(class\|def\|async def)>'
|
||||
let b:next_end='\v\S\n*(%$\|^(\s*\n*)*(class\|def\|async def)\|^\S)'
|
||||
let b:prev_end='\v\S\n*(^(\s*\n*)*(class\|def\|async def)\|^\S)'
|
||||
|
||||
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
|
||||
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0)<cr>"
|
||||
|
||||
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
|
||||
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
|
||||
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0)<cr>"
|
||||
|
||||
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
|
||||
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0)<cr>"
|
||||
|
||||
if !exists('*<SID>Python_jump')
|
||||
fun! <SID>Python_jump(mode, motion, flags) range
|
||||
fun! <SID>Python_jump(mode, motion, flags, ...) range
|
||||
let l:startofline = (a:0 >= 1) ? a:1 : 1
|
||||
|
||||
if a:mode == 'x'
|
||||
normal! gv
|
||||
endif
|
||||
|
||||
normal! 0
|
||||
if l:startofline == 1
|
||||
normal! 0
|
||||
endif
|
||||
|
||||
let cnt = v:count1
|
||||
mark '
|
||||
@ -57,7 +81,9 @@ if !exists('*<SID>Python_jump')
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
|
||||
normal! ^
|
||||
if l:startofline == 1
|
||||
normal! ^
|
||||
endif
|
||||
endfun
|
||||
endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Vim
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2014 Sep 07
|
||||
" Last Change: 2017 Dec 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@ -25,6 +25,9 @@ setlocal fo-=t fo+=croql
|
||||
" keyword character. E.g., for netrw#Nread().
|
||||
setlocal isk+=#
|
||||
|
||||
" Use :help to lookup the keyword under the cursor with K.
|
||||
setlocal keywordprg=:help
|
||||
|
||||
" Set 'comments' to format dashed lists in comments
|
||||
setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"
|
||||
|
||||
@ -36,21 +39,23 @@ endif
|
||||
" Comments start with a double quote
|
||||
setlocal commentstring=\"%s
|
||||
|
||||
" Move around functions.
|
||||
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
if !exists("no_plugin_maps") && !exists("no_vim_maps")
|
||||
" Move around functions.
|
||||
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
|
||||
" Move around comments
|
||||
nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
" Move around comments
|
||||
nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
endif
|
||||
|
||||
" Let the matchit plugin know what items can be matched.
|
||||
if exists("loaded_matchit")
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Zimbu
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Sep 08
|
||||
" Last Change: 2017 Dec 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@ -135,8 +135,10 @@ iabbr <buffer> <expr> until GCUpperSpace("until")
|
||||
iabbr <buffer> <expr> while GCUpperSpace("while")
|
||||
iabbr <buffer> <expr> repeat GCUpper("repeat")
|
||||
|
||||
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
|
||||
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
|
||||
if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
|
||||
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
|
||||
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
|
||||
endif
|
||||
|
||||
" Using a function makes sure the search pattern is restored
|
||||
func! ZimbuGoStartBlock()
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: Zsh shell script
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2015-05-29
|
||||
" Latest Revision: 2017-11-22
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-zsh
|
||||
|
||||
@ -18,9 +18,7 @@ let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:match_words =
|
||||
\ &matchpairs
|
||||
\ . ',\<if\>:\<elif\>:\<else\>:\<fi\>'
|
||||
let b:match_words = ',\<if\>:\<elif\>:\<else\>:\<fi\>'
|
||||
\ . ',\<case\>:^\s*([^)]*):\<esac\>'
|
||||
\ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>'
|
||||
let b:match_skip = 's:comment\|string\|heredoc\|subst'
|
||||
|
@ -1,14 +1,12 @@
|
||||
" Vim indent file
|
||||
" Program: CMake - Cross-Platform Makefile Generator
|
||||
" Module: $RCSfile: cmake-indent.vim,v $
|
||||
" Language: CMake (ft=cmake)
|
||||
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
|
||||
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: $Date: 2008-01-16 16:53:53 $
|
||||
" Version: $Revision: 1.9 $
|
||||
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
|
||||
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: 2017 Sep 24
|
||||
"
|
||||
" Licence: The CMake license applies to this file. See
|
||||
" http://www.cmake.org/HTML/Copyright.html
|
||||
" https://cmake.org/licensing
|
||||
" This implies that distribution with Vim is allowed
|
||||
|
||||
if exists("b:did_indent")
|
||||
|
@ -1,8 +1,10 @@
|
||||
" Vim indent file
|
||||
" Language: gitolite configuration
|
||||
" URL: https://github.com/tmatilai/gitolite.vim
|
||||
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
||||
" Last Change: 2017 Jun 13
|
||||
" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/indent/gitolite.vim
|
||||
" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
|
||||
" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
|
||||
" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
|
||||
" Last Change: 2017 Oct 05
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@ -30,6 +32,8 @@ function! GetGitoliteIndent()
|
||||
return shiftwidth()
|
||||
elseif cline =~ '^\s*config\s'
|
||||
return shiftwidth()
|
||||
elseif cline =~ '^\s*option\s'
|
||||
return shiftwidth()
|
||||
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
|
||||
return shiftwidth()
|
||||
elseif cline =~ '^\s*#'
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: Javascript
|
||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Last Change: March 21, 2017
|
||||
" Last Change: December 4, 2017
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
@ -29,6 +29,23 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" indent correctly if inside <script>
|
||||
" vim/vim@690afe1 for the switch from cindent
|
||||
" overridden with b:html_indent_script1
|
||||
call extend(g:,{'html_indent_script1': 'inc'},'keep')
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let s:bvars = {
|
||||
\ 'syng_strcom': 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!',
|
||||
\ 'syng_str': 'string\|template\|special' }
|
||||
" template strings may want to be excluded when editing graphql:
|
||||
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
|
||||
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
|
||||
|
||||
function s:GetVars()
|
||||
call extend(b:,extend(s:bvars,{'js_cache': [0,0,0]}),'keep')
|
||||
endfunction
|
||||
|
||||
" Get shiftwidth value
|
||||
if exists('*shiftwidth')
|
||||
function s:sw()
|
||||
@ -36,7 +53,7 @@ if exists('*shiftwidth')
|
||||
endfunction
|
||||
else
|
||||
function s:sw()
|
||||
return &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth
|
||||
return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
|
||||
endfunction
|
||||
endif
|
||||
|
||||
@ -44,272 +61,325 @@ endif
|
||||
" matches before pos.
|
||||
let s:z = has('patch-7.4.984') ? 'z' : ''
|
||||
|
||||
" Expression used to check whether we should skip a match with searchpair().
|
||||
let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
|
||||
let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"
|
||||
|
||||
let s:rel = has('reltime')
|
||||
" searchpair() wrapper
|
||||
if has('reltime')
|
||||
function s:GetPair(start,end,flags,skip,time,...)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
|
||||
if s:rel
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
|
||||
endfunction
|
||||
else
|
||||
function s:GetPair(start,end,flags,skip,...)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
|
||||
endfunction
|
||||
endif
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!'
|
||||
let s:syng_str = 'string\|template\|special'
|
||||
let s:syng_com = 'comment\|doc'
|
||||
" Expression used to check whether we should skip a match with searchpair().
|
||||
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
|
||||
|
||||
function s:parse_cino(f) abort
|
||||
return float2nr(eval(substitute(substitute(join(split(
|
||||
\ matchstr(&cino,'.*'.a:f.'\zs[^,]*'), 's',1), '*'.s:W)
|
||||
\ , '^-\=\zs\*','',''), '^-\=\zs\.','0.','')))
|
||||
endfunction
|
||||
|
||||
function s:skip_func()
|
||||
if getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
||||
return eval(s:skip_expr)
|
||||
elseif s:checkIn || search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
|
||||
let s:checkIn = eval(s:skip_expr)
|
||||
function s:SynAt(l,c)
|
||||
let byte = line2byte(a:l) + a:c - 1
|
||||
let pos = index(s:synid_cache[0], byte)
|
||||
if pos == -1
|
||||
let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
|
||||
endif
|
||||
let s:looksyn = line('.')
|
||||
return s:checkIn
|
||||
return s:synid_cache[1][pos]
|
||||
endfunction
|
||||
|
||||
function s:alternatePair(stop)
|
||||
let pos = getpos('.')[1:2]
|
||||
let pat = '[][(){};]'
|
||||
while search('\m'.pat,'bW',a:stop)
|
||||
if s:skip_func() | continue | endif
|
||||
let idx = stridx('])};',s:looking_at())
|
||||
if idx is 3 | let pat = '[{}()]' | continue | endif
|
||||
if idx + 1
|
||||
if s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop) <= 0
|
||||
function s:ParseCino(f)
|
||||
let [divider, n, cstr] = [0] + matchlist(&cino,
|
||||
\ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
|
||||
for c in split(cstr,'\zs')
|
||||
if c == '.' && !divider
|
||||
let divider = 1
|
||||
elseif c ==# 's'
|
||||
if n !~ '\d'
|
||||
return n . s:sw() + 0
|
||||
endif
|
||||
let n = str2nr(n) * s:sw()
|
||||
break
|
||||
else
|
||||
let [n, divider] .= [c, 0]
|
||||
endif
|
||||
endfor
|
||||
return str2nr(n) / max([str2nr(divider),1])
|
||||
endfunction
|
||||
|
||||
" Optimized {skip} expr, only callable from the search loop which
|
||||
" GetJavascriptIndent does to find the containing [[{(] (side-effects)
|
||||
function s:SkipFunc()
|
||||
if s:top_col == 1
|
||||
throw 'out of bounds'
|
||||
elseif s:check_in
|
||||
if eval(s:skip_expr)
|
||||
return 1
|
||||
endif
|
||||
let s:check_in = 0
|
||||
elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
||||
if eval(s:skip_expr)
|
||||
return 1
|
||||
endif
|
||||
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
|
||||
if eval(s:skip_expr)
|
||||
let s:check_in = 1
|
||||
return 1
|
||||
endif
|
||||
else
|
||||
let s:synid_cache[:] += [[line2byte('.') + col('.') - 1], ['']]
|
||||
endif
|
||||
let [s:looksyn, s:top_col] = getpos('.')[1:2]
|
||||
endfunction
|
||||
|
||||
function s:AlternatePair()
|
||||
let [pat, l:for] = ['[][(){};]', 2]
|
||||
while s:SearchLoop(pat,'bW','s:SkipFunc()')
|
||||
if s:LookingAt() == ';'
|
||||
if !l:for
|
||||
if s:GetPair('{','}','bW','s:SkipFunc()')
|
||||
return
|
||||
endif
|
||||
break
|
||||
else
|
||||
let [pat, l:for] = ['[{}();]', l:for - 1]
|
||||
endif
|
||||
else
|
||||
return
|
||||
let idx = stridx('])}',s:LookingAt())
|
||||
if idx == -1
|
||||
return
|
||||
elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
|
||||
break
|
||||
endif
|
||||
endif
|
||||
endwhile
|
||||
call call('cursor',pos)
|
||||
throw 'out of bounds'
|
||||
endfunction
|
||||
|
||||
function s:save_pos(f,...)
|
||||
let l:pos = getpos('.')[1:2]
|
||||
let ret = call(a:f,a:000)
|
||||
call call('cursor',l:pos)
|
||||
return ret
|
||||
function s:Nat(int)
|
||||
return a:int * (a:int > 0)
|
||||
endfunction
|
||||
|
||||
function s:syn_at(l,c)
|
||||
return synIDattr(synID(a:l,a:c,0),'name')
|
||||
endfunction
|
||||
|
||||
function s:looking_at()
|
||||
function s:LookingAt()
|
||||
return getline('.')[col('.')-1]
|
||||
endfunction
|
||||
|
||||
function s:token()
|
||||
return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
|
||||
function s:Token()
|
||||
return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
|
||||
endfunction
|
||||
|
||||
function s:previous_token()
|
||||
let l:pos = getpos('.')[1:2]
|
||||
if search('\m\k\{1,}\zs\k\|\S','bW')
|
||||
if (getline('.')[col('.')-2:col('.')-1] == '*/' || line('.') != l:pos[0] &&
|
||||
\ getline('.') =~ '\%<'.col('.').'c\/\/') && s:syn_at(line('.'),col('.')) =~? s:syng_com
|
||||
while search('\m\S\ze\_s*\/[/*]','bW')
|
||||
if s:syn_at(line('.'),col('.')) !~? s:syng_com
|
||||
return s:token()
|
||||
endif
|
||||
endwhile
|
||||
function s:PreviousToken(...)
|
||||
let [l:pos, tok] = [getpos('.'), '']
|
||||
if search('\m\k\{1,}\|\S','ebW')
|
||||
if getline('.')[col('.')-2:col('.')-1] == '*/'
|
||||
if eval(s:in_comm) && !s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
|
||||
call setpos('.',l:pos)
|
||||
else
|
||||
let tok = s:Token()
|
||||
endif
|
||||
else
|
||||
return s:token()
|
||||
let two = a:0 || line('.') != l:pos[1] ? strridx(getline('.')[:col('.')],'//') + 1 : 0
|
||||
if two && eval(s:in_comm)
|
||||
call cursor(0,two)
|
||||
let tok = s:PreviousToken(1)
|
||||
if tok is ''
|
||||
call setpos('.',l:pos)
|
||||
endif
|
||||
else
|
||||
let tok = s:Token()
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
call call('cursor',l:pos)
|
||||
return ''
|
||||
return tok
|
||||
endfunction
|
||||
|
||||
function s:expr_col()
|
||||
function s:Pure(f,...)
|
||||
return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
|
||||
endfunction
|
||||
|
||||
function s:SearchLoop(pat,flags,expr)
|
||||
return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
|
||||
endfunction
|
||||
|
||||
function s:ExprCol()
|
||||
if getline('.')[col('.')-2] == ':'
|
||||
return 1
|
||||
endif
|
||||
let bal = 0
|
||||
while search('\m[{}?:;]','bW')
|
||||
if eval(s:skip_expr) | continue | endif
|
||||
" switch (looking_at())
|
||||
exe { '}': "if s:GetPair('{','}','bW',s:skip_expr,200) <= 0 | return | endif",
|
||||
\ ';': "return",
|
||||
\ '{': "return getpos('.')[1:2] != b:js_cache[1:] && !s:IsBlock()",
|
||||
\ ':': "let bal -= getline('.')[max([col('.')-2,0]):col('.')] !~ '::'",
|
||||
\ '?': "let bal += 1 | if bal > 0 | return 1 | endif" }[s:looking_at()]
|
||||
while s:SearchLoop('[{}?:]','bW',s:skip_expr)
|
||||
if s:LookingAt() == ':'
|
||||
if getline('.')[col('.')-2] == ':'
|
||||
call cursor(0,col('.')-1)
|
||||
continue
|
||||
endif
|
||||
let bal -= 1
|
||||
elseif s:LookingAt() == '?'
|
||||
if getline('.')[col('.'):col('.')+1] =~ '^\.\d\@!'
|
||||
continue
|
||||
elseif !bal
|
||||
return 1
|
||||
endif
|
||||
let bal += 1
|
||||
elseif s:LookingAt() == '{'
|
||||
return !s:IsBlock()
|
||||
elseif !s:GetPair('{','}','bW',s:skip_expr)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
" configurable regexes that define continuation lines, not including (, {, or [.
|
||||
let s:opfirst = '^' . get(g:,'javascript_opfirst',
|
||||
\ '\C\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
|
||||
\ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
|
||||
let s:continuation = get(g:,'javascript_continuation',
|
||||
\ '\C\%([-+<>=,.~!?/*^%|&:]\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
||||
\ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
||||
|
||||
function s:continues(ln,con)
|
||||
if !cursor(a:ln, match(' '.a:con,s:continuation))
|
||||
let teol = s:looking_at()
|
||||
if teol == '/'
|
||||
return s:syn_at(line('.'),col('.')) !~? 'regex'
|
||||
elseif teol =~ '[-+>]'
|
||||
return getline('.')[col('.')-2] != tr(teol,'>','=')
|
||||
elseif teol =~ '\l'
|
||||
return s:previous_token() != '.'
|
||||
elseif teol == ':'
|
||||
return s:expr_col()
|
||||
function s:Continues()
|
||||
let tok = matchstr(strpart(getline('.'),col('.')-15,15),s:continuation)
|
||||
if tok =~ '[a-z:]'
|
||||
return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
|
||||
elseif tok !~ '[/>]'
|
||||
return tok isnot ''
|
||||
endif
|
||||
return s:SynAt(line('.'),col('.')) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
|
||||
endfunction
|
||||
|
||||
" Check if line 'lnum' has a balanced amount of parentheses.
|
||||
function s:Balanced(lnum,line)
|
||||
let l:open = 0
|
||||
let pos = match(a:line, '[][(){}]')
|
||||
while pos != -1
|
||||
if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
|
||||
let l:open += match(' ' . a:line[pos],'[[({]')
|
||||
if l:open < 0
|
||||
return
|
||||
endif
|
||||
endif
|
||||
let pos = match(a:line, !l:open ? '[][(){}]' : '()' =~ a:line[pos] ?
|
||||
\ '[()]' : '{}' =~ a:line[pos] ? '[{}]' : '[][]', pos + 1)
|
||||
endwhile
|
||||
return !l:open
|
||||
endfunction
|
||||
|
||||
function s:OneScope()
|
||||
if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
|
||||
let tok = s:PreviousToken()
|
||||
return (count(split('for if let while with'),tok) ||
|
||||
\ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
|
||||
\ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
|
||||
elseif s:Token() =~# '^else$\|^do$'
|
||||
return s:Pure('s:PreviousToken') != '.'
|
||||
elseif strpart(getline('.'),col('.')-2,2) == '=>'
|
||||
call cursor(0,col('.')-1)
|
||||
if s:PreviousToken() == ')'
|
||||
return s:GetPair('(', ')', 'bW', s:skip_expr)
|
||||
endif
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" get the line of code stripped of comments and move cursor to the last
|
||||
" non-comment char.
|
||||
function s:Trim(ln)
|
||||
let pline = substitute(getline(a:ln),'\s*$','','')
|
||||
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
|
||||
while l:max != -1 && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
|
||||
let pline = pline[: l:max]
|
||||
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
|
||||
let pline = substitute(pline[:-2],'\s*$','','')
|
||||
endwhile
|
||||
return pline is '' || cursor(a:ln,strlen(pline)) ? pline : pline
|
||||
endfunction
|
||||
|
||||
" Find line above 'lnum' that isn't empty or in a comment
|
||||
function s:PrevCodeLine(lnum)
|
||||
let [l:pos, l:n] = [getpos('.')[1:2], prevnonblank(a:lnum)]
|
||||
while l:n
|
||||
if getline(l:n) =~ '^\s*\/[/*]'
|
||||
let l:n = prevnonblank(l:n-1)
|
||||
elseif stridx(getline(l:n), '*/') + 1 && s:syn_at(l:n,1) =~? s:syng_com
|
||||
call cursor(l:n,1)
|
||||
keepjumps norm! [*
|
||||
let l:n = search('\m\S','nbW')
|
||||
else
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
call call('cursor',l:pos)
|
||||
return l:n
|
||||
endfunction
|
||||
|
||||
" Check if line 'lnum' has a balanced amount of parentheses.
|
||||
function s:Balanced(lnum)
|
||||
let l:open = 0
|
||||
let l:line = getline(a:lnum)
|
||||
let pos = match(l:line, '[][(){}]', 0)
|
||||
while pos != -1
|
||||
if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
|
||||
let l:open += match(' ' . l:line[pos],'[[({]')
|
||||
if l:open < 0
|
||||
return
|
||||
function s:DoWhile()
|
||||
let cpos = searchpos('\m\<','cbW')
|
||||
while s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
|
||||
if s:LookingAt() =~ '\a'
|
||||
if s:Pure('s:IsBlock')
|
||||
if s:LookingAt() ==# 'd'
|
||||
return 1
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endif
|
||||
let pos = match(l:line, (l:open ?
|
||||
\ '['.escape(tr(l:line[pos],'({[]})',')}][{(').l:line[pos],']').']' :
|
||||
\ '[][(){}]'), pos + 1)
|
||||
endwhile
|
||||
return !l:open
|
||||
endfunction
|
||||
|
||||
function s:OneScope(lnum)
|
||||
let pline = s:Trim(a:lnum)
|
||||
let kw = 'else do'
|
||||
if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
|
||||
if s:previous_token() =~# '^\%(await\|each\)$'
|
||||
call s:previous_token()
|
||||
let kw = 'for'
|
||||
else
|
||||
let kw = 'for if let while with'
|
||||
endif
|
||||
endif
|
||||
return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
|
||||
\ s:save_pos('s:previous_token') != '.'
|
||||
endfunction
|
||||
|
||||
" returns braceless levels started by 'i' and above lines * shiftwidth().
|
||||
" 'num' is the lineNr which encloses the entire context, 'cont' if whether
|
||||
" line 'i' + 1 is a continued expression, which could have started in a
|
||||
" braceless context
|
||||
function s:iscontOne(i,num,cont)
|
||||
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
|
||||
let pind = a:num ? indent(l:num) + s:W : 0
|
||||
let ind = indent(l:i) + (a:cont ? 0 : s:W)
|
||||
while l:i >= l:num && (ind > pind || l:i == l:num)
|
||||
if indent(l:i) < ind && s:OneScope(l:i)
|
||||
let bL += s:W
|
||||
let l:i = line('.')
|
||||
elseif !a:cont || bL || ind < indent(a:i)
|
||||
elseif s:LookingAt() != '}' || !s:GetPair('{','}','bW',s:skip_expr)
|
||||
break
|
||||
endif
|
||||
let ind = min([ind, indent(l:i)])
|
||||
let l:i = s:PrevCodeLine(l:i - 1)
|
||||
endwhile
|
||||
return bL
|
||||
call call('cursor',cpos)
|
||||
endfunction
|
||||
|
||||
" returns total offset from braceless contexts. 'num' is the lineNr which
|
||||
" encloses the entire context, 'cont' if whether a:firstline is a continued
|
||||
" expression, which could have started in a braceless context
|
||||
function s:IsContOne(cont)
|
||||
let [l:num, b_l] = [b:js_cache[1] + !b:js_cache[1], 0]
|
||||
let pind = b:js_cache[1] ? indent(b:js_cache[1]) + s:sw() : 0
|
||||
let ind = indent('.') + !a:cont
|
||||
while line('.') > l:num && ind > pind || line('.') == l:num
|
||||
if indent('.') < ind && s:OneScope()
|
||||
let b_l += 1
|
||||
elseif !a:cont || b_l || ind < indent(a:firstline)
|
||||
break
|
||||
else
|
||||
call cursor(0,1)
|
||||
endif
|
||||
let ind = min([ind, indent('.')])
|
||||
if s:PreviousToken() is ''
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
return b_l
|
||||
endfunction
|
||||
|
||||
function s:IsSwitch()
|
||||
call call('cursor',b:js_cache[1:])
|
||||
return search('\m\C\%#.\_s*\%(\%(\/\/.*\_$\|\/\*\_.\{-}\*\/\)\@>\_s*\)*\%(case\|default\)\>','nWc'.s:z)
|
||||
endfunction
|
||||
|
||||
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
|
||||
function s:IsBlock()
|
||||
if s:looking_at() == '{'
|
||||
let l:n = line('.')
|
||||
let char = s:previous_token()
|
||||
if match(s:stack,'\cxml\|jsx') + 1 && s:syn_at(line('.'),col('.')-1) =~? 'xml\|jsx'
|
||||
return char != '{'
|
||||
elseif char =~ '\k'
|
||||
if char ==# 'type'
|
||||
return s:previous_token() !~# '^\%(im\|ex\)port$'
|
||||
endif
|
||||
return index(split('return const let import export extends yield default delete var await void typeof throw case new of in instanceof')
|
||||
\ ,char) < (line('.') != l:n) || s:save_pos('s:previous_token') == '.'
|
||||
elseif char == '>'
|
||||
return getline('.')[col('.')-2] == '=' || s:syn_at(line('.'),col('.')) =~? '^jsflow'
|
||||
elseif char == ':'
|
||||
return !s:save_pos('s:expr_col')
|
||||
elseif char == '/'
|
||||
return s:syn_at(line('.'),col('.')) =~? 'regex'
|
||||
let tok = s:PreviousToken()
|
||||
if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
|
||||
let s:in_jsx = 1
|
||||
return tok != '{'
|
||||
elseif tok =~ '\k'
|
||||
if tok ==# 'type'
|
||||
return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
|
||||
elseif tok ==# 'of'
|
||||
return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
|
||||
\ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
|
||||
endif
|
||||
return char !~ '[=~!<*,?^%|&([]' &&
|
||||
\ (char !~ '[-+]' || l:n != line('.') && getline('.')[col('.')-2] == char)
|
||||
return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
|
||||
\ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
|
||||
elseif tok == '>'
|
||||
return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
|
||||
elseif tok == '*'
|
||||
return s:Pure('s:PreviousToken') == ':'
|
||||
elseif tok == ':'
|
||||
return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
|
||||
elseif tok == '/'
|
||||
return s:SynAt(line('.'),col('.')) =~? 'regex'
|
||||
elseif tok !~ '[=~!<,.?^%|&([]'
|
||||
return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function GetJavascriptIndent()
|
||||
let b:js_cache = get(b:,'js_cache',[0,0,0])
|
||||
" Get the current line.
|
||||
call cursor(v:lnum,1)
|
||||
let l:line = getline('.')
|
||||
call s:GetVars()
|
||||
let s:synid_cache = [[],[]]
|
||||
let l:line = getline(v:lnum)
|
||||
" use synstack as it validates syn state and works in an empty line
|
||||
let s:stack = map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
|
||||
let syns = get(s:stack,-1,'')
|
||||
let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
|
||||
|
||||
" start with strings,comments,etc.
|
||||
if syns =~? s:syng_com
|
||||
if s:stack[-1] =~? 'comment\|doc'
|
||||
if l:line =~ '^\s*\*'
|
||||
return cindent(v:lnum)
|
||||
elseif l:line !~ '^\s*\/[/*]'
|
||||
return -1
|
||||
endif
|
||||
elseif syns =~? s:syng_str
|
||||
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
|
||||
elseif s:stack[-1] =~? b:syng_str
|
||||
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1,getline(v:lnum-1))
|
||||
let b:js_cache[0] = v:lnum
|
||||
endif
|
||||
return -1
|
||||
endif
|
||||
let l:lnum = s:PrevCodeLine(v:lnum - 1)
|
||||
if !l:lnum
|
||||
|
||||
let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
|
||||
\ get(get(b:,'hi_indent',{}),'blocklnr')])
|
||||
call cursor(v:lnum,1)
|
||||
if s:PreviousToken() is ''
|
||||
return
|
||||
endif
|
||||
let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]
|
||||
|
||||
let l:line = substitute(l:line,'^\s*','','')
|
||||
let l:line_raw = l:line
|
||||
if l:line[:1] == '/*'
|
||||
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
|
||||
endif
|
||||
@ -318,60 +388,92 @@ function GetJavascriptIndent()
|
||||
endif
|
||||
|
||||
" the containing paren, bracket, or curly. Many hacks for performance
|
||||
call cursor(v:lnum,1)
|
||||
let idx = index([']',')','}'],l:line[0])
|
||||
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
|
||||
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
|
||||
if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
|
||||
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum,pline)
|
||||
call call('cursor',b:js_cache[1:])
|
||||
else
|
||||
let [s:looksyn, s:checkIn, top] = [v:lnum - 1, 0, (!indent(l:lnum) &&
|
||||
\ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
|
||||
if idx + 1
|
||||
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:skip_func()',2000,top)
|
||||
elseif getline(v:lnum) !~ '^\S' && syns =~? 'block'
|
||||
call s:GetPair('{','}','bW','s:skip_func()',2000,top)
|
||||
else
|
||||
call s:alternatePair(top)
|
||||
endif
|
||||
let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
|
||||
\ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
|
||||
try
|
||||
if idx != -1
|
||||
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
|
||||
elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
|
||||
call s:GetPair('{','}','bW','s:SkipFunc()')
|
||||
else
|
||||
call s:AlternatePair()
|
||||
endif
|
||||
catch /^\Cout of bounds$/
|
||||
call cursor(v:lnum,1)
|
||||
endtry
|
||||
let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
|
||||
endif
|
||||
|
||||
let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
|
||||
let num = b:js_cache[1]
|
||||
let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
|
||||
|
||||
let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
|
||||
if !num || s:IsBlock()
|
||||
let [num_ind, is_op, b_l, l:switch_offset, s:in_jsx] = [s:Nat(indent(num)),0,0,0,0]
|
||||
if !num || s:LookingAt() == '{' && s:IsBlock()
|
||||
let ilnum = line('.')
|
||||
let pline = s:save_pos('s:Trim',l:lnum)
|
||||
if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
|
||||
let num = ilnum == num ? line('.') : num
|
||||
if idx < 0 && s:previous_token() ==# 'switch' && s:previous_token() != '.'
|
||||
if &cino !~ ':'
|
||||
let switch_offset = s:W
|
||||
else
|
||||
let switch_offset = max([-indent(num),s:parse_cino(':')])
|
||||
endif
|
||||
if num && !s:in_jsx && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
|
||||
if ilnum == num
|
||||
let [num, num_ind] = [line('.'), indent('.')]
|
||||
endif
|
||||
if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
|
||||
let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
|
||||
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
|
||||
return indent(num) + switch_offset
|
||||
return s:Nat(num_ind + l:switch_offset)
|
||||
elseif &cino =~ '='
|
||||
let l:case_offset = s:ParseCino('=')
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if idx < 0 && pline[-1:] !~ '[{;]'
|
||||
let isOp = (l:line =~# s:opfirst || s:continues(l:lnum,pline)) * s:W
|
||||
let bL = s:iscontOne(l:lnum,b:js_cache[1],isOp)
|
||||
let bL -= (bL && l:line[0] == '{') * s:W
|
||||
if idx == -1 && pline[-1:] !~ '[{;]'
|
||||
call cursor(l:lnum, len(pline))
|
||||
let sol = matchstr(l:line,s:opfirst)
|
||||
if sol is '' || sol == '/' && s:SynAt(v:lnum,
|
||||
\ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
|
||||
if s:Continues()
|
||||
let is_op = s:sw()
|
||||
endif
|
||||
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' &&
|
||||
\ s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) &&
|
||||
\ s:PreviousToken() == ')' && s:GetPair('(',')','bW',s:skip_expr) &&
|
||||
\ (s:PreviousToken() == ']' || s:LookingAt() =~ '\k' &&
|
||||
\ s:{s:PreviousToken() == '*' ? 'Previous' : ''}Token() !=# 'function')
|
||||
return num_ind + s:sw()
|
||||
else
|
||||
let is_op = s:sw()
|
||||
endif
|
||||
call cursor(l:lnum, len(pline))
|
||||
let b_l = s:Nat(s:IsContOne(is_op) - (!is_op && l:line =~ '^{')) * s:sw()
|
||||
endif
|
||||
elseif idx < 0 && getline(b:js_cache[1])[b:js_cache[2]-1] == '(' && &cino =~ '('
|
||||
let pval = s:parse_cino('(')
|
||||
return !pval ? (s:parse_cino('w') ? 0 : -(!!search('\m\S','W'.s:z,num))) + virtcol('.') :
|
||||
\ max([indent('.') + pval + (s:GetPair('(',')','nbrmW',s:skip_expr,100,num) * s:W),0])
|
||||
elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
|
||||
let pval = s:ParseCino('(')
|
||||
if !pval
|
||||
let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
|
||||
if search('\m\S','W',num)
|
||||
return s:ParseCino('w') ? vcol : virtcol('.')-1
|
||||
endif
|
||||
return Wval ? s:Nat(num_ind + Wval) : vcol
|
||||
endif
|
||||
return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
|
||||
endif
|
||||
|
||||
" main return
|
||||
if l:line =~ '^\%([])}]\||}\)'
|
||||
return max([indent(num),0])
|
||||
if l:line =~ '^[])}]\|^|}'
|
||||
if l:line_raw[0] == ')'
|
||||
if s:ParseCino('M')
|
||||
return indent(l:lnum)
|
||||
elseif num && &cino =~# 'm' && !s:ParseCino('m')
|
||||
return virtcol('.') - 1
|
||||
endif
|
||||
endif
|
||||
return num_ind
|
||||
elseif num
|
||||
return indent(num) + s:W + switch_offset + bL + isOp
|
||||
return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
|
||||
endif
|
||||
return bL + isOp
|
||||
return b_l + is_op
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
91
runtime/indent/nsis.vim
Normal file
91
runtime/indent/nsis.vim
Normal file
@ -0,0 +1,91 @@
|
||||
" Vim indent file
|
||||
" Language: NSIS script
|
||||
" Maintainer: Ken Takata
|
||||
" URL: https://github.com/k-takata/vim-nsis
|
||||
" Last Change: 2018-01-21
|
||||
" Filenames: *.nsi
|
||||
" License: VIM License
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nosmartindent
|
||||
setlocal noautoindent
|
||||
setlocal indentexpr=GetNsisIndent(v:lnum)
|
||||
setlocal indentkeys=!^F,o,O
|
||||
setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif
|
||||
|
||||
if exists("*GetNsisIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! GetNsisIndent(lnum)
|
||||
" If this line is explicitly joined: If the previous line was also joined,
|
||||
" line it up with that one, otherwise add two 'shiftwidth'
|
||||
if getline(a:lnum - 1) =~ '\\$'
|
||||
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
|
||||
return indent(a:lnum - 1)
|
||||
endif
|
||||
return indent(a:lnum - 1) + shiftwidth() * 2
|
||||
endif
|
||||
|
||||
" Grab the current line, stripping comments.
|
||||
let l:thisl = substitute(getline(a:lnum), '[;#].*$', '', '')
|
||||
" Check if this line is a conditional preprocessor line.
|
||||
let l:preproc = l:thisl =~? '^\s*!\%(if\|else\|endif\)'
|
||||
|
||||
" Grab the previous line, stripping comments.
|
||||
" Skip preprocessor lines and continued lines.
|
||||
let l:prevlnum = a:lnum
|
||||
while 1
|
||||
let l:prevlnum = prevnonblank(l:prevlnum - 1)
|
||||
if l:prevlnum == 0
|
||||
" top of file
|
||||
return 0
|
||||
endif
|
||||
let l:prevl = substitute(getline(l:prevlnum), '[;#].*$', '', '')
|
||||
let l:prevpreproc = l:prevl =~? '^\s*!\%(if\|else\|endif\)'
|
||||
if l:preproc == l:prevpreproc && getline(l:prevlnum - 1) !~? '\\$'
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
let l:previ = indent(l:prevlnum)
|
||||
let l:ind = l:previ
|
||||
|
||||
if l:preproc
|
||||
" conditional preprocessor
|
||||
if l:prevl =~? '^\s*!\%(if\%(\%(macro\)\?n\?def\)\?\|else\)\>'
|
||||
let l:ind += shiftwidth()
|
||||
endif
|
||||
if l:thisl =~? '^\s*!\%(else\|endif\)\?\>'
|
||||
let l:ind -= shiftwidth()
|
||||
endif
|
||||
return l:ind
|
||||
endif
|
||||
|
||||
if l:prevl =~? '^\s*\%(\${\%(If\|IfNot\|Unless\|ElseIf\|ElseIfNot\|ElseUnless\|Else\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Select\|Case\|Case[2-5]\|CaseElse\|Default\|Switch\|Do\|DoWhile\|DoUntil\|For\|ForEach\|MementoSection\)}\|Function\>\|Section\>\|SectionGroup\|PageEx\>\|!macro\>\)'
|
||||
" previous line opened a block
|
||||
let l:ind += shiftwidth()
|
||||
endif
|
||||
if l:thisl =~? '^\s*\%(\${\%(ElseIf\|ElseIfNot\|ElseUnless\|Else\|EndIf\|EndUnless\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Loop\|LoopWhile\|LoopUntil\|Next\|MementoSectionEnd\)\>}\?\|FunctionEnd\>\|SectionEnd\>\|SectionGroupEnd\|PageExEnd\>\|!macroend\>\)'
|
||||
" this line closed a block
|
||||
let l:ind -= shiftwidth()
|
||||
elseif l:thisl =~? '^\s*\${\%(Case\|Case[2-5]\|CaseElse\|Default\)\>}\?'
|
||||
if l:prevl !~? '^\s*\${\%(Select\|Switch\)}'
|
||||
let l:ind -= shiftwidth()
|
||||
endif
|
||||
elseif l:thisl =~? '^\s*\${\%(EndSelect\|EndSwitch\)\>}\?'
|
||||
" this line closed a block
|
||||
if l:prevl =~? '^\s*\${\%(Select\|Switch\)}'
|
||||
let l:ind -= shiftwidth()
|
||||
else
|
||||
let l:ind -= shiftwidth() * 2
|
||||
endif
|
||||
endif
|
||||
|
||||
return l:ind
|
||||
endfunction
|
||||
|
||||
" vim: ts=8 sw=2 sts=2
|
@ -3,7 +3,7 @@
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
" Homepage: http://github.com/vim-perl/vim-perl
|
||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||
" Last Change: 2017 Jun 13
|
||||
" Last Change: 2017-01-04
|
||||
|
||||
" Suggestions and improvements by :
|
||||
" Aaron J. Sherman (use syntax for hints)
|
||||
@ -48,11 +48,6 @@ function! GetPerlIndent()
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Don't reindent comments on first column
|
||||
if cline =~ '^#.'
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Get current syntax item at the line's first char
|
||||
let csynid = ''
|
||||
if b:indent_use_syntax
|
||||
@ -134,6 +129,7 @@ function! GetPerlIndent()
|
||||
\ || synid == "perlMatchStartEnd"
|
||||
\ || synid == "perlHereDoc"
|
||||
\ || synid == "perlBraces"
|
||||
\ || synid == "perlStatementIndirObj"
|
||||
\ || synid =~ "^perlFiledescStatement"
|
||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||
let brace = strpart(line, bracepos, 1)
|
||||
@ -151,6 +147,7 @@ function! GetPerlIndent()
|
||||
if synid == ""
|
||||
\ || synid == "perlMatchStartEnd"
|
||||
\ || synid == "perlBraces"
|
||||
\ || synid == "perlStatementIndirObj"
|
||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
|
@ -1,8 +1,8 @@
|
||||
" VHDL indent ('93 syntax)
|
||||
" Language: VHDL
|
||||
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
|
||||
" Version: 1.60
|
||||
" Last Change: 2017 Jun 13
|
||||
" Version: 1.62
|
||||
" Last Change: 2017 Oct 17
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=1450
|
||||
|
||||
" only load this indent file when no other was loaded
|
||||
@ -412,11 +412,12 @@ function GetVHDLindent()
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
|
||||
return ind2
|
||||
endif
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement, corner case which
|
||||
" does not end in ;, but is part of a mapping
|
||||
@ -424,10 +425,10 @@ function GetVHDLindent()
|
||||
" prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
|
||||
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
return ind2
|
||||
endif
|
||||
endif
|
||||
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
return ind2
|
||||
endif
|
||||
endif
|
||||
|
||||
" return leftover filtered indent
|
||||
return ind
|
||||
|
153
runtime/menu.vim
153
runtime/menu.vim
@ -2,7 +2,7 @@
|
||||
" You can also use this as a start for your own set of menus.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Mar 04
|
||||
" Last Change: 2017 Nov 09
|
||||
|
||||
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
|
||||
" in all modes and avoid side effects from mappings defined by the user.
|
||||
@ -159,7 +159,7 @@ nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
|
||||
inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
|
||||
nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
|
||||
inoremenu &Edit.Put\ &After<Tab>]p <C-O>]p
|
||||
if has("win32") || has("win16")
|
||||
if has("win32")
|
||||
vnoremenu 20.390 &Edit.&Delete<Tab>x x
|
||||
endif
|
||||
noremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG :<C-U>call <SID>SelectAll()<CR>
|
||||
@ -167,7 +167,7 @@ inoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-O>:call <SID>S
|
||||
cnoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-U>call <SID>SelectAll()<CR>
|
||||
|
||||
an 20.405 &Edit.-SEP2- <Nop>
|
||||
if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
|
||||
if has("win32") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
|
||||
an 20.410 &Edit.&Find\.\.\. :promptfind<CR>
|
||||
vunmenu &Edit.&Find\.\.\.
|
||||
vnoremenu <silent> &Edit.&Find\.\.\. y:promptfind <C-R>=<SID>FixFText()<CR><CR>
|
||||
@ -339,51 +339,65 @@ fun! s:FileFormat()
|
||||
endif
|
||||
endfun
|
||||
|
||||
let s:did_setup_color_schemes = 0
|
||||
|
||||
" Setup the Edit.Color Scheme submenu
|
||||
func! s:SetupColorSchemes() abort
|
||||
if s:did_setup_color_schemes
|
||||
return
|
||||
endif
|
||||
let s:did_setup_color_schemes = 1
|
||||
|
||||
" get NL separated string with file names
|
||||
let s:n = globpath(&runtimepath, "colors/*.vim")
|
||||
let n = globpath(&runtimepath, "colors/*.vim", 1, 1)
|
||||
|
||||
" split at NL, Ignore case for VMS and windows, sort on name
|
||||
let s:names = sort(map(split(s:n, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
|
||||
" Ignore case for VMS and windows, sort on name
|
||||
let names = sort(map(n, 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
|
||||
|
||||
" define all the submenu entries
|
||||
let s:idx = 100
|
||||
for s:name in s:names
|
||||
exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
|
||||
let s:idx = s:idx + 10
|
||||
endfor
|
||||
unlet s:name s:names s:n s:idx
|
||||
" define all the submenu entries
|
||||
let idx = 100
|
||||
for name in names
|
||||
exe "an 20.450." . idx . ' &Edit.C&olor\ Scheme.' . name . " :colors " . name . "<CR>"
|
||||
let idx = idx + 10
|
||||
endfor
|
||||
silent! aunmenu &Edit.Show\ C&olor\ Schemes\ in\ Menu
|
||||
endfun
|
||||
if exists("do_no_lazyload_menus")
|
||||
call s:SetupColorSchemes()
|
||||
else
|
||||
an <silent> 20.450 &Edit.Show\ C&olor\ Schemes\ in\ Menu :call <SID>SetupColorSchemes()<CR>
|
||||
endif
|
||||
|
||||
|
||||
" Setup the Edit.Keymap submenu
|
||||
if has("keymap")
|
||||
let s:n = globpath(&runtimepath, "keymap/*.vim")
|
||||
if s:n != ""
|
||||
let s:idx = 100
|
||||
an 20.460.90 &Edit.&Keymap.None :set keymap=<CR>
|
||||
while strlen(s:n) > 0
|
||||
let s:i = stridx(s:n, "\n")
|
||||
if s:i < 0
|
||||
let s:name = s:n
|
||||
let s:n = ""
|
||||
else
|
||||
let s:name = strpart(s:n, 0, s:i)
|
||||
let s:n = strpart(s:n, s:i + 1, 19999)
|
||||
endif
|
||||
" Ignore case for VMS and windows
|
||||
let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '')
|
||||
exe "an 20.460." . s:idx . ' &Edit.&Keymap.' . s:name . " :set keymap=" . s:name . "<CR>"
|
||||
unlet s:name
|
||||
unlet s:i
|
||||
let s:idx = s:idx + 10
|
||||
endwhile
|
||||
unlet s:idx
|
||||
let s:did_setup_keymaps = 0
|
||||
|
||||
func! s:SetupKeymaps() abort
|
||||
if s:did_setup_keymaps
|
||||
return
|
||||
endif
|
||||
let s:did_setup_keymaps = 1
|
||||
|
||||
let n = globpath(&runtimepath, "keymap/*.vim", 1, 1)
|
||||
if !empty(n)
|
||||
let idx = 100
|
||||
an 20.460.90 &Edit.&Keymap.None :set keymap=<CR>
|
||||
for name in n
|
||||
" Ignore case for VMS and windows
|
||||
let name = substitute(name, '\c.*[/\\:\]]\([^/\\:_]*\)\(_[0-9a-zA-Z-]*\)\=\.vim', '\1', '')
|
||||
exe "an 20.460." . idx . ' &Edit.&Keymap.' . name . " :set keymap=" . name . "<CR>"
|
||||
let idx = idx + 10
|
||||
endfor
|
||||
endif
|
||||
silent! aunmenu &Edit.Show\ &Keymaps\ in\ Menu
|
||||
endfun
|
||||
if exists("do_no_lazyload_menus")
|
||||
call s:SetupKeymaps()
|
||||
else
|
||||
an <silent> 20.460 &Edit.Show\ &Keymaps\ in\ Menu :call <SID>SetupKeymaps()<CR>
|
||||
endif
|
||||
unlet s:n
|
||||
endif
|
||||
if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
|
||||
if has("win32") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
|
||||
an 20.470 &Edit.Select\ Fo&nt\.\.\. :set guifont=*<CR>
|
||||
endif
|
||||
|
||||
@ -441,10 +455,10 @@ if has("spell")
|
||||
endif
|
||||
|
||||
let found = 0
|
||||
let s = globpath(&rtp, "spell/*." . enc . ".spl")
|
||||
if s != ""
|
||||
let s = globpath(&runtimepath, "spell/*." . enc . ".spl", 1, 1)
|
||||
if !empty(s)
|
||||
let n = 300
|
||||
for f in split(s, "\n")
|
||||
for f in s
|
||||
let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
|
||||
if nm != "en" && nm !~ '/'
|
||||
let _nm = nm
|
||||
@ -574,27 +588,46 @@ func! s:XxdFind()
|
||||
endif
|
||||
endfun
|
||||
|
||||
let s:did_setup_compilers = 0
|
||||
|
||||
" Setup the Tools.Compiler submenu
|
||||
let s:n = globpath(&runtimepath, "compiler/*.vim")
|
||||
let s:idx = 100
|
||||
while strlen(s:n) > 0
|
||||
let s:i = stridx(s:n, "\n")
|
||||
if s:i < 0
|
||||
let s:name = s:n
|
||||
let s:n = ""
|
||||
else
|
||||
let s:name = strpart(s:n, 0, s:i)
|
||||
let s:n = strpart(s:n, s:i + 1, 19999)
|
||||
func! s:SetupCompilers() abort
|
||||
if s:did_setup_compilers
|
||||
return
|
||||
endif
|
||||
" Ignore case for VMS and windows
|
||||
let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
|
||||
exe "an 30.440." . s:idx . ' &Tools.Se&t\ Compiler.' . s:name . " :compiler " . s:name . "<CR>"
|
||||
unlet s:name
|
||||
unlet s:i
|
||||
let s:idx = s:idx + 10
|
||||
endwhile
|
||||
unlet s:n
|
||||
unlet s:idx
|
||||
let s:did_setup_compilers = 1
|
||||
|
||||
let n = globpath(&runtimepath, "compiler/*.vim", 1, 1)
|
||||
let idx = 100
|
||||
for name in n
|
||||
" Ignore case for VMS and windows
|
||||
let name = substitute(name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
|
||||
exe "an 30.440." . idx . ' &Tools.Se&t\ Compiler.' . name . " :compiler " . name . "<CR>"
|
||||
let idx = idx + 10
|
||||
endfor
|
||||
silent! aunmenu &Tools.Show\ Compiler\ Se&ttings\ in\ Menu
|
||||
endfun
|
||||
if exists("do_no_lazyload_menus")
|
||||
call s:SetupCompilers()
|
||||
else
|
||||
an <silent> 30.440 &Tools.Show\ Compiler\ Se&ttings\ in\ Menu :call <SID>SetupCompilers()<CR>
|
||||
endif
|
||||
|
||||
" Load ColorScheme, Compiler Setting and Keymap menus when idle.
|
||||
if !exists("do_no_lazyload_menus")
|
||||
func! s:SetupLazyloadMenus()
|
||||
call s:SetupColorSchemes()
|
||||
call s:SetupCompilers()
|
||||
if has("keymap")
|
||||
call s:SetupKeymaps()
|
||||
endif
|
||||
endfunc
|
||||
augroup SetupLazyloadMenus
|
||||
au!
|
||||
au CursorHold,CursorHoldI * call <SID>SetupLazyloadMenus() | au! SetupLazyloadMenus
|
||||
augroup END
|
||||
endif
|
||||
|
||||
|
||||
if !exists("no_buffers_menu")
|
||||
|
||||
@ -1095,7 +1128,7 @@ if (exists("did_load_filetypes") || exists("syntax_on"))
|
||||
if exists("do_syntax_sel_menu")
|
||||
runtime! synmenu.vim
|
||||
else
|
||||
an 50.10 &Syntax.&Show\ File\ Types\ in\ Menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ File\ Types\ in\ Menu<CR>
|
||||
an <silent> 50.10 &Syntax.&Show\ File\ Types\ in\ Menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ File\ Types\ in\ Menu<CR>
|
||||
an 50.195 &Syntax.-SEP1- <Nop>
|
||||
endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Set options and add mapping such that Vim behaves a lot like MS-Windows
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2017 Feb 09
|
||||
" Last change: 2017 Oct 28
|
||||
|
||||
" bail out if this isn't wanted (mrsvim.vim uses this).
|
||||
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
|
||||
@ -105,14 +105,15 @@ onoremap <C-F4> <C-C><C-W>c
|
||||
|
||||
if has("gui")
|
||||
" CTRL-F is the search dialog
|
||||
noremap <C-F> :promptfind<CR>
|
||||
inoremap <C-F> <C-\><C-O>:promptfind<CR>
|
||||
cnoremap <C-F> <C-\><C-C>:promptfind<CR>
|
||||
noremap <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
|
||||
inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
|
||||
cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"
|
||||
|
||||
" CTRL-H is the replace dialog
|
||||
noremap <C-H> :promptrepl<CR>
|
||||
inoremap <C-H> <C-\><C-O>:promptrepl<CR>
|
||||
cnoremap <C-H> <C-\><C-C>:promptrepl<CR>
|
||||
" CTRL-H is the replace dialog,
|
||||
" but in console, it might be backspace, so don't map it there
|
||||
nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
|
||||
inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
|
||||
cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
|
||||
endif
|
||||
|
||||
" restore 'cpoptions'
|
||||
|
@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Aug 19
|
||||
" Last Change: 2017 Nov 21
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
let buf = bufnr('option-window')
|
||||
@ -647,11 +647,17 @@ if has("gui")
|
||||
endif
|
||||
call append("$", "linespace\tnumber of pixel lines to use between characters")
|
||||
call append("$", " \tset lsp=" . &lsp)
|
||||
if has("balloon_eval")
|
||||
if has("balloon_eval") || has("balloon_eval_term")
|
||||
call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up")
|
||||
call append("$", " \tset bdlay=" . &bdlay)
|
||||
call append("$", "ballooneval\twhether the balloon evaluation is to be used")
|
||||
call <SID>BinOptionG("beval", &beval)
|
||||
if has("balloon_eval")
|
||||
call append("$", "ballooneval\tuse balloon evaluation in the GUI")
|
||||
call <SID>BinOptionG("beval", &beval)
|
||||
endif
|
||||
if has("balloon_eval_term")
|
||||
call append("$", "balloonevalterm\tuse balloon evaluation in the terminal")
|
||||
call <SID>BinOptionG("bevalterm", &beval)
|
||||
endif
|
||||
if has("eval")
|
||||
call append("$", "balloonexpr\texpression to show in balloon eval")
|
||||
call append("$", " \tset bexpr=" . &bexpr)
|
||||
@ -1225,6 +1231,8 @@ endif
|
||||
call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("imi")
|
||||
call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot")
|
||||
call <SID>OptionG("imst", &imst)
|
||||
call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither")
|
||||
call append("$", "\t(local to window)")
|
||||
call <SID>OptionL("ims")
|
||||
@ -1358,6 +1366,12 @@ if exists("&tcldll")
|
||||
call append("$", "tcldll\tname of the Tcl dynamic library")
|
||||
call <SID>OptionG("tcldll", &tcldll)
|
||||
endif
|
||||
if exists("&mzschemedll")
|
||||
call append("$", "mzschemedll\tname of the Tcl dynamic library")
|
||||
call <SID>OptionG("mzschemedll", &mzschemedll)
|
||||
call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
|
||||
call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
|
||||
endif
|
||||
|
||||
set cpo&vim
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
" matchit.vim: (global plugin) Extended "%" matching
|
||||
" Last Change: 2017 March 26
|
||||
" Last Change: 2017 Sep 15
|
||||
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
|
||||
" Version: 1.13.3, for Vim 6.3+
|
||||
" Fix from Fernando Torres included.
|
||||
@ -704,9 +704,8 @@ fun! s:MultiMatch(spflag, mode)
|
||||
let skip = 's:comment\|string'
|
||||
endif
|
||||
let skip = s:ParseSkip(skip)
|
||||
" let restore_cursor = line(".") . "G" . virtcol(".") . "|"
|
||||
" normal! H
|
||||
" let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
|
||||
" save v:count1 variable, might be reset from the restore_cursor command
|
||||
let level = v:count1
|
||||
let restore_cursor = virtcol(".") . "|"
|
||||
normal! g0
|
||||
let restore_cursor = line(".") . "G" . virtcol(".") . "|zs" . restore_cursor
|
||||
@ -726,7 +725,6 @@ fun! s:MultiMatch(spflag, mode)
|
||||
execute "if " . skip . "| let skip = '0' | endif"
|
||||
endif
|
||||
mark '
|
||||
let level = v:count1
|
||||
while level
|
||||
if searchpair(openpat, '', closepat, a:spflag, skip) < 1
|
||||
call s:CleanUp(restore_options, a:mode, startline, startcol)
|
||||
|
160
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
vendored
160
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
vendored
@ -15,6 +15,14 @@
|
||||
" Author: Bram Moolenaar
|
||||
" Copyright: Vim license applies, see ":help license"
|
||||
|
||||
" In case this gets loaded twice.
|
||||
if exists(':Termdebug')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Uncomment this line to write logging in "debuglog".
|
||||
" call ch_logfile('debuglog', 'w')
|
||||
|
||||
" The command that starts debugging, e.g. ":Termdebug vim".
|
||||
" To end type "quit" in the gdb window.
|
||||
command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>)
|
||||
@ -26,6 +34,7 @@ endif
|
||||
|
||||
let s:pc_id = 12
|
||||
let s:break_id = 13
|
||||
let s:stopped = 1
|
||||
|
||||
if &background == 'light'
|
||||
hi default debugPC term=reverse ctermbg=lightblue guibg=lightblue
|
||||
@ -38,12 +47,14 @@ func s:StartDebug(cmd)
|
||||
let s:startwin = win_getid(winnr())
|
||||
let s:startsigncolumn = &signcolumn
|
||||
|
||||
if exists('g:termdebug_wide') && &columns < g:termdebug_wide
|
||||
let s:save_columns = &columns
|
||||
let &columns = g:termdebug_wide
|
||||
let s:save_columns = 0
|
||||
if exists('g:termdebug_wide')
|
||||
if &columns < g:termdebug_wide
|
||||
let s:save_columns = &columns
|
||||
let &columns = g:termdebug_wide
|
||||
endif
|
||||
let vertical = 1
|
||||
else
|
||||
let s:save_columns = 0
|
||||
let vertical = 0
|
||||
endif
|
||||
|
||||
@ -58,6 +69,11 @@ func s:StartDebug(cmd)
|
||||
endif
|
||||
let pty = job_info(term_getjob(s:ptybuf))['tty_out']
|
||||
let s:ptywin = win_getid(winnr())
|
||||
if vertical
|
||||
" Assuming the source code window will get a signcolumn, use two more
|
||||
" columns for that, thus one less for the terminal window.
|
||||
exe (&columns / 2 - 1) . "wincmd |"
|
||||
endif
|
||||
|
||||
" Create a hidden terminal window to communicate with gdb
|
||||
let s:commbuf = term_start('NONE', {
|
||||
@ -73,13 +89,14 @@ func s:StartDebug(cmd)
|
||||
let commpty = job_info(term_getjob(s:commbuf))['tty_out']
|
||||
|
||||
" Open a terminal window to run the debugger.
|
||||
let cmd = [g:termdebugger, '-tty', pty, a:cmd]
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let cmd = [g:termdebugger, '-quiet', '-tty', pty, a:cmd]
|
||||
echomsg 'executing "' . join(cmd) . '"'
|
||||
let gdbbuf = term_start(cmd, {
|
||||
let s:gdbbuf = term_start(cmd, {
|
||||
\ 'exit_cb': function('s:EndDebug'),
|
||||
\ 'term_finish': 'close',
|
||||
\ })
|
||||
if gdbbuf == 0
|
||||
if s:gdbbuf == 0
|
||||
echoerr 'Failed to open the gdb terminal window'
|
||||
exe 'bwipe! ' . s:ptybuf
|
||||
exe 'bwipe! ' . s:commbuf
|
||||
@ -88,7 +105,13 @@ func s:StartDebug(cmd)
|
||||
let s:gdbwin = win_getid(winnr())
|
||||
|
||||
" Connect gdb to the communication pty, using the GDB/MI interface
|
||||
call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
|
||||
" If you get an error "undefined command" your GDB is too old.
|
||||
call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r")
|
||||
|
||||
" Interpret commands while the target is running. This should usualy only be
|
||||
" exec-interrupt, since many commands don't work properly while the target is
|
||||
" running.
|
||||
call s:SendCommand('-gdb-set mi-async on')
|
||||
|
||||
" Sign used to highlight the line where the program has stopped.
|
||||
" There can be only one.
|
||||
@ -103,6 +126,17 @@ func s:StartDebug(cmd)
|
||||
call s:InstallCommands()
|
||||
call win_gotoid(s:gdbwin)
|
||||
|
||||
" Enable showing a balloon with eval info
|
||||
if has("balloon_eval") || has("balloon_eval_term")
|
||||
set balloonexpr=TermDebugBalloonExpr()
|
||||
if has("balloon_eval")
|
||||
set ballooneval
|
||||
endif
|
||||
if has("balloon_eval_term")
|
||||
set balloonevalterm
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:breakpoints = {}
|
||||
|
||||
augroup TermDebug
|
||||
@ -126,6 +160,16 @@ func s:EndDebug(job, status)
|
||||
let &columns = s:save_columns
|
||||
endif
|
||||
|
||||
if has("balloon_eval") || has("balloon_eval_term")
|
||||
set balloonexpr=
|
||||
if has("balloon_eval")
|
||||
set noballooneval
|
||||
endif
|
||||
if has("balloon_eval_term")
|
||||
set noballoonevalterm
|
||||
endif
|
||||
endif
|
||||
|
||||
au! TermDebug
|
||||
endfunc
|
||||
|
||||
@ -161,6 +205,9 @@ func s:InstallCommands()
|
||||
command Step call s:SendCommand('-exec-step')
|
||||
command Over call s:SendCommand('-exec-next')
|
||||
command Finish call s:SendCommand('-exec-finish')
|
||||
command -nargs=* Run call s:Run(<q-args>)
|
||||
command -nargs=* Arguments call s:SendCommand('-exec-arguments ' . <q-args>)
|
||||
command Stop call s:SendCommand('-exec-interrupt')
|
||||
command Continue call s:SendCommand('-exec-continue')
|
||||
command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
|
||||
command Gdb call win_gotoid(s:gdbwin)
|
||||
@ -169,12 +216,13 @@ func s:InstallCommands()
|
||||
" TODO: can the K mapping be restored?
|
||||
nnoremap K :Evaluate<CR>
|
||||
|
||||
if has('menu')
|
||||
amenu WinBar.Step :Step<CR>
|
||||
amenu WinBar.Next :Over<CR>
|
||||
amenu WinBar.Finish :Finish<CR>
|
||||
amenu WinBar.Cont :Continue<CR>
|
||||
amenu WinBar.Eval :Evaluate<CR>
|
||||
if has('menu') && &mouse != ''
|
||||
nnoremenu WinBar.Step :Step<CR>
|
||||
nnoremenu WinBar.Next :Over<CR>
|
||||
nnoremenu WinBar.Finish :Finish<CR>
|
||||
nnoremenu WinBar.Cont :Continue<CR>
|
||||
nnoremenu WinBar.Stop :Stop<CR>
|
||||
nnoremenu WinBar.Eval :Evaluate<CR>
|
||||
endif
|
||||
endfunc
|
||||
|
||||
@ -185,6 +233,9 @@ func s:DeleteCommands()
|
||||
delcommand Step
|
||||
delcommand Over
|
||||
delcommand Finish
|
||||
delcommand Run
|
||||
delcommand Arguments
|
||||
delcommand Stop
|
||||
delcommand Continue
|
||||
delcommand Evaluate
|
||||
delcommand Gdb
|
||||
@ -197,6 +248,7 @@ func s:DeleteCommands()
|
||||
aunmenu WinBar.Next
|
||||
aunmenu WinBar.Finish
|
||||
aunmenu WinBar.Cont
|
||||
aunmenu WinBar.Stop
|
||||
aunmenu WinBar.Eval
|
||||
endif
|
||||
|
||||
@ -211,8 +263,19 @@ endfunc
|
||||
|
||||
" :Break - Set a breakpoint at the cursor position.
|
||||
func s:SetBreakpoint()
|
||||
call term_sendkeys(s:commbuf, '-break-insert --source '
|
||||
\ . fnameescape(expand('%:p')) . ' --line ' . line('.') . "\r")
|
||||
" Setting a breakpoint may not work while the program is running.
|
||||
" Interrupt to make it work.
|
||||
let do_continue = 0
|
||||
if !s:stopped
|
||||
let do_continue = 1
|
||||
call s:SendCommand('-exec-interrupt')
|
||||
sleep 10m
|
||||
endif
|
||||
call s:SendCommand('-break-insert --source '
|
||||
\ . fnameescape(expand('%:p')) . ' --line ' . line('.'))
|
||||
if do_continue
|
||||
call s:SendCommand('-exec-continue')
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" :Delete - Delete a breakpoint at the cursor position.
|
||||
@ -235,6 +298,18 @@ func s:SendCommand(cmd)
|
||||
call term_sendkeys(s:commbuf, a:cmd . "\r")
|
||||
endfunc
|
||||
|
||||
func s:Run(args)
|
||||
if a:args != ''
|
||||
call s:SendCommand('-exec-arguments ' . a:args)
|
||||
endif
|
||||
call s:SendCommand('-exec-run')
|
||||
endfunc
|
||||
|
||||
func s:SendEval(expr)
|
||||
call s:SendCommand('-data-evaluate-expression "' . a:expr . '"')
|
||||
let s:evalexpr = a:expr
|
||||
endfunc
|
||||
|
||||
" :Evaluate - evaluate what is under the cursor
|
||||
func s:Evaluate(range, arg)
|
||||
if a:arg != ''
|
||||
@ -250,25 +325,55 @@ func s:Evaluate(range, arg)
|
||||
else
|
||||
let expr = expand('<cexpr>')
|
||||
endif
|
||||
call term_sendkeys(s:commbuf, '-data-evaluate-expression "' . expr . "\"\r")
|
||||
let s:evalexpr = expr
|
||||
call s:SendEval(expr)
|
||||
endfunc
|
||||
|
||||
let s:evalFromBalloonExpr = 0
|
||||
|
||||
" Handle the result of data-evaluate-expression
|
||||
func s:HandleEvaluate(msg)
|
||||
let value = substitute(a:msg, '.*value="\(.*\)"', '\1', '')
|
||||
let value = substitute(value, '\\"', '"', 'g')
|
||||
echomsg '"' . s:evalexpr . '": ' . value
|
||||
|
||||
if s:evalexpr[0] != '*' && value =~ '^0x' && value !~ '"$'
|
||||
" Looks like a pointer, also display what it points to.
|
||||
let s:evalexpr = '*' . s:evalexpr
|
||||
call term_sendkeys(s:commbuf, '-data-evaluate-expression "' . s:evalexpr . "\"\r")
|
||||
if s:evalFromBalloonExpr
|
||||
if s:evalFromBalloonExprResult == ''
|
||||
let s:evalFromBalloonExprResult = s:evalexpr . ': ' . value
|
||||
else
|
||||
let s:evalFromBalloonExprResult .= ' = ' . value
|
||||
endif
|
||||
call balloon_show(s:evalFromBalloonExprResult)
|
||||
else
|
||||
echomsg '"' . s:evalexpr . '": ' . value
|
||||
endif
|
||||
|
||||
if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$'
|
||||
" Looks like a pointer, also display what it points to.
|
||||
call s:SendEval('*' . s:evalexpr)
|
||||
else
|
||||
let s:evalFromBalloonExpr = 0
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Show a balloon with information of the variable under the mouse pointer,
|
||||
" if there is any.
|
||||
func TermDebugBalloonExpr()
|
||||
if v:beval_winid != s:startwin
|
||||
return
|
||||
endif
|
||||
call s:SendEval(v:beval_text)
|
||||
let s:evalFromBalloonExpr = 1
|
||||
let s:evalFromBalloonExprResult = ''
|
||||
return ''
|
||||
endfunc
|
||||
|
||||
" Handle an error.
|
||||
func s:HandleError(msg)
|
||||
if a:msg =~ 'No symbol .* in current context'
|
||||
\ || a:msg =~ 'Cannot access memory at address '
|
||||
\ || a:msg =~ 'Attempt to use a type name as an expression'
|
||||
\ || a:msg =~ 'A syntax error in expression,'
|
||||
" Result of s:SendEval() failed, ignore.
|
||||
return
|
||||
endif
|
||||
echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
|
||||
endfunc
|
||||
|
||||
@ -277,6 +382,12 @@ endfunc
|
||||
func s:HandleCursor(msg)
|
||||
let wid = win_getid(winnr())
|
||||
|
||||
if a:msg =~ '^\*stopped'
|
||||
let s:stopped = 1
|
||||
elseif a:msg =~ '^\*running'
|
||||
let s:stopped = 0
|
||||
endif
|
||||
|
||||
if win_gotoid(s:startwin)
|
||||
let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
|
||||
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
|
||||
@ -292,6 +403,7 @@ func s:HandleCursor(msg)
|
||||
endif
|
||||
endif
|
||||
exe lnum
|
||||
exe 'sign unplace ' . s:pc_id
|
||||
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
|
||||
setlocal signcolumn=yes
|
||||
endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim plugin for using Vim as manpager.
|
||||
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
|
||||
" Last Change: 2016 May 20
|
||||
" Last Change: 2017 November 07
|
||||
|
||||
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim".
|
||||
if empty($MAN_PN)
|
||||
@ -10,17 +10,17 @@ endif
|
||||
command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER
|
||||
|
||||
function! s:MANPAGER()
|
||||
let page_pattern = '\v\w+%([-_.]\w+)*'
|
||||
let page_pattern = '\v\w[-_.:0-9A-Za-z]*'
|
||||
let sec_pattern = '\v\w+%(\+\w+)*'
|
||||
let pagesec_pattern = '\v(' . page_pattern . ')\((' . sec_pattern . ')\)'
|
||||
|
||||
if $MAN_PN is '1'
|
||||
let manpage = matchstr( getline(1), '^' . pagesec_pattern )
|
||||
let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern ))
|
||||
else
|
||||
let manpage = expand('$MAN_PN')
|
||||
let manpage = expand($MAN_PN)
|
||||
endif
|
||||
|
||||
let page_sec = matchlist(tolower(manpage), '^' . pagesec_pattern . '$')
|
||||
let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$')
|
||||
|
||||
bwipe!
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim plugin for showing matching parens
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Feb 16
|
||||
" Last Change: 2017 Sep 30
|
||||
|
||||
" Exit quickly when:
|
||||
" - this plugin was already loaded (or disabled)
|
||||
@ -186,9 +186,23 @@ function! s:Highlight_Matching_Pair()
|
||||
endfunction
|
||||
|
||||
" Define commands that will disable and enable the plugin.
|
||||
command! NoMatchParen windo silent! call matchdelete(3) | unlet! g:loaded_matchparen |
|
||||
\ au! matchparen
|
||||
command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
|
||||
command! DoMatchParen call s:DoMatchParen()
|
||||
command! NoMatchParen call s:NoMatchParen()
|
||||
|
||||
func! s:NoMatchParen()
|
||||
let w = winnr()
|
||||
noau windo silent! call matchdelete(3)
|
||||
unlet! g:loaded_matchparen
|
||||
exe "noau ". w . "wincmd w"
|
||||
au! matchparen
|
||||
endfunc
|
||||
|
||||
func! s:DoMatchParen()
|
||||
runtime plugin/matchparen.vim
|
||||
let w = winnr()
|
||||
silent windo doau CursorMoved
|
||||
exe "noau ". w . "wincmd w"
|
||||
endfunc
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types in scripts
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2017 Aug 27
|
||||
" Last change: 2017 Nov 11
|
||||
|
||||
" This file is called by an autocommand for every file that has just been
|
||||
" loaded into a buffer. It checks if the type of file can be recognized by
|
||||
@ -66,19 +66,19 @@ if s:line1 =~# "^#!"
|
||||
|
||||
" Bourne-like shell scripts: bash bash2 ksh ksh93 sh
|
||||
if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
|
||||
call SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||
|
||||
" csh scripts
|
||||
elseif s:name =~# '^csh\>'
|
||||
if exists("g:filetype_csh")
|
||||
call SetFileTypeShell(g:filetype_csh)
|
||||
call dist#ft#SetFileTypeShell(g:filetype_csh)
|
||||
else
|
||||
call SetFileTypeShell("csh")
|
||||
call dist#ft#SetFileTypeShell("csh")
|
||||
endif
|
||||
|
||||
" tcsh scripts
|
||||
elseif s:name =~# '^tcsh\>'
|
||||
call SetFileTypeShell("tcsh")
|
||||
call dist#ft#SetFileTypeShell("tcsh")
|
||||
|
||||
" Z shell scripts
|
||||
elseif s:name =~# '^zsh\>'
|
||||
@ -100,6 +100,10 @@ if s:line1 =~# "^#!"
|
||||
elseif s:name =~# 'make\>'
|
||||
set ft=make
|
||||
|
||||
" Pike
|
||||
elseif s:name =~# '^pike\%(\>\|[0-9]\)'
|
||||
set ft=pike
|
||||
|
||||
" Lua
|
||||
elseif s:name =~# 'lua'
|
||||
set ft=lua
|
||||
@ -185,7 +189,7 @@ else
|
||||
|
||||
" Bourne-like shell scripts: sh ksh bash bash2
|
||||
if s:line1 =~# '^:$'
|
||||
call SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||
|
||||
" Z shell scripts
|
||||
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
|
||||
@ -324,7 +328,7 @@ else
|
||||
set ft=sindacmp
|
||||
|
||||
" DNS zone files
|
||||
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
set ft=bindzone
|
||||
|
||||
" BAAN
|
||||
|
@ -2,7 +2,7 @@
|
||||
" This file is normally sourced from menu.vim.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2014 Aug 13
|
||||
" Last Change: 2017 Oct 28
|
||||
|
||||
" Define the SetSyn function, used for the Syntax menu entries.
|
||||
" Set 'filetype' and also 'syntax' if it is manually selected.
|
||||
@ -351,12 +351,13 @@ an 50.70.510 &Syntax.M.Muttrc :cal SetSyn("muttrc")<CR>
|
||||
an 50.80.100 &Syntax.NO.Nanorc :cal SetSyn("nanorc")<CR>
|
||||
an 50.80.110 &Syntax.NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
|
||||
an 50.80.120 &Syntax.NO.Natural :cal SetSyn("natural")<CR>
|
||||
an 50.80.130 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
|
||||
an 50.80.140 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
|
||||
an 50.80.150 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
|
||||
an 50.80.160 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
|
||||
an 50.80.170 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
|
||||
an 50.80.180 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
|
||||
an 50.80.130 &Syntax.NO.Neomuttrc :cal SetSyn("neomuttrc")<CR>
|
||||
an 50.80.140 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
|
||||
an 50.80.150 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
|
||||
an 50.80.160 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
|
||||
an 50.80.170 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
|
||||
an 50.80.180 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
|
||||
an 50.80.190 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
|
||||
an 50.80.200 &Syntax.NO.Obj\ 3D\ wavefront :cal SetSyn("obj")<CR>
|
||||
an 50.80.210 &Syntax.NO.Objective\ C :cal SetSyn("objc")<CR>
|
||||
an 50.80.220 &Syntax.NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
|
||||
|
@ -1,8 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: Apache-Style configuration files (proftpd.conf/apache.conf/..)
|
||||
" Maintainer: Christian Hammers <ch@westend.com>
|
||||
" URL: none
|
||||
" Maintainer: Ben RUBSON <ben.rubson@gmail.com>
|
||||
" Former Maintainer: Christian Hammers <ch@westend.com>
|
||||
" ChangeLog:
|
||||
" 2017-12-17,ch
|
||||
" correctly detect comments
|
||||
" 2001-05-04,ch
|
||||
" adopted Vim 6.0 syntax style
|
||||
" 1999-10-28,ch
|
||||
@ -27,8 +29,8 @@ endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn match apComment /^\s*#.*$/
|
||||
syn match apOption /^\s*[^ \t#<=]*/
|
||||
syn match apComment /^\s*#.*$/
|
||||
"syn match apLastValue /[^ \t<=#]*$/ contains=apComment ugly
|
||||
|
||||
" tags
|
||||
|
101
runtime/syntax/autodoc.vim
Normal file
101
runtime/syntax/autodoc.vim
Normal file
@ -0,0 +1,101 @@
|
||||
" Vim syntax file
|
||||
" Language: Autodoc
|
||||
" Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||
" Last Change: 2018 Jan 23
|
||||
" Version: 2.9
|
||||
" Remark: Included by pike.vim, cmod.vim and optionally c.vim
|
||||
" Remark: In order to make c.vim use it, set: c_autodoc
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case match
|
||||
|
||||
" A bunch of useful autodoc keywords
|
||||
syn keyword autodocStatement contained appears belongs global
|
||||
syn keyword autodocStatement contained decl directive inherit
|
||||
syn keyword autodocStatement contained deprecated obsolete bugs
|
||||
syn keyword autodocStatement contained copyright example fixme note param returns
|
||||
syn keyword autodocStatement contained seealso thanks throws constant
|
||||
syn keyword autodocStatement contained member index elem
|
||||
syn keyword autodocStatement contained value type item
|
||||
|
||||
syn keyword autodocRegion contained enum mapping code multiset array
|
||||
syn keyword autodocRegion contained int string section mixed ol ul dl
|
||||
syn keyword autodocRegion contained class module namespace
|
||||
syn keyword autodocRegion contained endenum endmapping endcode endmultiset
|
||||
syn keyword autodocRegion contained endarray endint endstring endsection
|
||||
syn keyword autodocRegion contained endmixed endol endul enddl
|
||||
syn keyword autodocRegion contained endclass endmodule endnamespace
|
||||
|
||||
syn keyword autodocIgnore contained ignore endignore
|
||||
|
||||
syn keyword autodocStatAcc contained b i u tt url pre sub sup
|
||||
syn keyword autodocStatAcc contained ref rfc xml dl expr image
|
||||
|
||||
syn keyword autodocTodo contained TODO FIXME XXX
|
||||
|
||||
syn match autodocLineStart display "\(//\|/\?\*\)\@2<=!"
|
||||
syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell
|
||||
|
||||
syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
|
||||
syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion
|
||||
|
||||
" Due to limitations of the matching algorithm, we cannot highlight
|
||||
" nested autodocNStmtAcc structures correctly
|
||||
syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend
|
||||
|
||||
syn match autodocUrl contained display ".\+"
|
||||
syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
|
||||
syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent
|
||||
|
||||
syn match autodocSpecial "@@" display
|
||||
syn match autodocLead "@" display contained
|
||||
|
||||
"when wanted, highlight trailing white space
|
||||
if exists("c_space_errors")
|
||||
if !exists("c_no_trail_space_error")
|
||||
syn match autodocSpaceError display excludenl "\s\+$"
|
||||
endif
|
||||
if !exists("c_no_tab_space_error")
|
||||
syn match autodocSpaceError display " \+\t"me=e-1
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("c_minlines")
|
||||
let b:c_minlines = c_minlines
|
||||
else
|
||||
if !exists("c_no_if0")
|
||||
let b:c_minlines = 50 " #if 0 constructs can be long
|
||||
else
|
||||
let b:c_minlines = 15 " mostly for () constructs
|
||||
endif
|
||||
endif
|
||||
exec "syn sync ccomment autodocComment minlines=" . b:c_minlines
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link autodocStatement Statement
|
||||
hi def link autodocStatAcc Statement
|
||||
hi def link autodocRegion Structure
|
||||
hi def link autodocAtStmt Error
|
||||
hi def link autodocNStmtAcc Identifier
|
||||
hi def link autodocLink Type
|
||||
hi def link autodocTodo Todo
|
||||
hi def link autodocSpaceError Error
|
||||
hi def link autodocLineStart SpecialComment
|
||||
hi def link autodocSpecial SpecialChar
|
||||
hi def link autodocUrl Underlined
|
||||
hi def link autodocLead Statement
|
||||
hi def link autodocIgnore Delimiter
|
||||
|
||||
let b:current_syntax = "autodoc"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
@ -2,7 +2,7 @@
|
||||
" Language: BibTeX (bibliographic database format for (La)TeX)
|
||||
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
|
||||
" Filenames: *.bib
|
||||
" Last Change: 2016 Sep 12
|
||||
" Last Change: 2017 Sep 29
|
||||
|
||||
" Thanks to those who pointed out problems with this file or supplied fixes!
|
||||
|
||||
@ -81,16 +81,18 @@ syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1
|
||||
syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField
|
||||
syn match bibVariable contained /[^{}," \t=]/
|
||||
syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
|
||||
syn region bibMath contained start=/\$/ end=/\$/ skip=/\(\\\$\)/
|
||||
syn region bibMath contained start=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/
|
||||
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
|
||||
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
|
||||
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
|
||||
syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable
|
||||
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField
|
||||
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3
|
||||
" Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce
|
||||
" an error, so we explicitly distinguish versions with and without folding functionality:
|
||||
syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
|
||||
syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
|
||||
" biblatex style comments inside a bibEntry
|
||||
syn match bibComment3 "%.*"
|
||||
|
||||
" Synchronization
|
||||
" ===============
|
||||
@ -111,6 +113,7 @@ hi def link bibVariable Constant
|
||||
hi def link bibUnescapedSpecial Error
|
||||
hi def link bibComment Comment
|
||||
hi def link bibComment2 Comment
|
||||
hi def link bibComment3 Comment
|
||||
|
||||
let b:current_syntax = "bib"
|
||||
|
||||
|
@ -13,6 +13,14 @@ set cpo&vim
|
||||
|
||||
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
||||
|
||||
" Optional embedded Autodoc parsing
|
||||
" To enable it add: let g:c_autodoc = 1
|
||||
" to your .vimrc
|
||||
if exists("c_autodoc")
|
||||
syn include @cAutodoc <sfile>:p:h/autodoc.vim
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
" A bunch of useful C keywords
|
||||
syn keyword cStatement goto break return continue asm
|
||||
syn keyword cLabel case default
|
||||
@ -377,6 +385,13 @@ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInP
|
||||
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
|
||||
" Optional embedded Autodoc parsing
|
||||
if exists("c_autodoc")
|
||||
syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL
|
||||
syn cluster cCommentGroup add=cAutodocReal
|
||||
syn cluster cPreProcGroup add=cAutodocReal
|
||||
endif
|
||||
|
||||
" Highlight User Labels
|
||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -136,7 +136,7 @@ syntax match clojureRegexpBoundary "[$^]" contained display
|
||||
syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display
|
||||
syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display
|
||||
syntax match clojureRegexpOr "|" contained display
|
||||
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-z]+\>)" contained display
|
||||
syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-Z]+\>)" contained display
|
||||
|
||||
" Mode modifiers, mode-modified spans, lookaround, regular and atomic
|
||||
" grouping, and named-capturing.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user