Compare commits
223 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a53925a6e | ||
|
|
ce3b0136c6 | ||
|
|
2f54c13292 | ||
|
|
33c1da7ff4 | ||
|
|
deba02ddd4 | ||
|
|
2b358adde0 | ||
|
|
ef9e3f8924 | ||
|
|
1858e2b22a | ||
|
|
1b1c9f272d | ||
|
|
2b89afd5eb | ||
|
|
43cb8e1c3b | ||
|
|
1bf1bf569b | ||
|
|
a390e984db | ||
|
|
171c50e0b0 | ||
|
|
8ebdbc9e6d | ||
|
|
c1c177a47b | ||
|
|
feaccd2395 | ||
|
|
87ca5e86fa | ||
|
|
ec3cebbd2b | ||
|
|
4bca4897a1 | ||
|
|
daef8c7437 | ||
|
|
650dcfc8d1 | ||
|
|
b0221819f3 | ||
|
|
7b7cda67a1 | ||
|
|
c229a6ac07 | ||
|
|
10407df7a9 | ||
|
|
6b89dd6a72 | ||
|
|
67ec655383 | ||
|
|
9198c1f2b1 | ||
|
|
5f5131d775 | ||
|
|
a56f02d824 | ||
|
|
c4a4038603 | ||
|
|
1c14030aff | ||
|
|
3932072ab4 | ||
|
|
b731800522 | ||
|
|
5985879e3c | ||
|
|
50f3ec2898 | ||
|
|
7d254dbc2d | ||
|
|
c038427d2a | ||
|
|
ae9021a840 | ||
|
|
84394f2be4 | ||
|
|
a5a1534753 | ||
|
|
fea96c00e5 | ||
|
|
0ab500dede | ||
|
|
a36acb7ac4 | ||
|
|
3ec6c1fe3b | ||
|
|
d3e277f279 | ||
|
|
47416d1a74 | ||
|
|
d4802ec485 | ||
|
|
ac709e2fc0 | ||
|
|
d5dc58aeed | ||
|
|
a8c664a042 | ||
|
|
c6944913f0 | ||
|
|
00b55370b3 | ||
|
|
e08bfef88b | ||
|
|
198734897e | ||
|
|
ba75507c62 | ||
|
|
c59c1e0d88 | ||
|
|
d7b616d0ad | ||
|
|
982ef16059 | ||
|
|
2b126a6892 | ||
|
|
436f39390f | ||
|
|
a0e1f06f04 | ||
|
|
0672595fd5 | ||
|
|
5036e69852 | ||
|
|
96952b2e98 | ||
|
|
c290009e99 | ||
|
|
8079917447 | ||
|
|
5a33ce2a66 | ||
|
|
6e6386716f | ||
|
|
2e3cd52fa0 | ||
|
|
f3eac695bf | ||
|
|
209ec90b9b | ||
|
|
396058acd0 | ||
|
|
8f4fb007e4 | ||
|
|
5a679b2263 | ||
|
|
215c3261a2 | ||
|
|
dbf749bd5a | ||
|
|
f5a94d5165 | ||
|
|
3c81f47a05 | ||
|
|
d7ae263af8 | ||
|
|
47510f3d65 | ||
|
|
1ace49fb98 | ||
|
|
5d03525cde | ||
|
|
de3295dd0c | ||
|
|
ae3cfa47d3 | ||
|
|
989426be6e | ||
|
|
bd734c3bea | ||
|
|
ba9aed4497 | ||
|
|
b583eda703 | ||
|
|
cd6ee69358 | ||
|
|
5ae6f9985e | ||
|
|
7687238e1b | ||
|
|
0f058d1320 | ||
|
|
2bbd0d30ee | ||
|
|
29bb67f1be | ||
|
|
69fb5afb3b | ||
|
|
dd75fcfbdf | ||
|
|
1ea428883f | ||
|
|
4c8da025ef | ||
|
|
c97b3febc8 | ||
|
|
a634b92b96 | ||
|
|
f8da324619 | ||
|
|
4a82bdfaa8 | ||
|
|
41e6f7d6ba | ||
|
|
54844857fd | ||
|
|
b07b9dc4da | ||
|
|
e467189022 | ||
|
|
f4ee1cb74b | ||
|
|
b56cef0be0 | ||
|
|
d4afbdd071 | ||
|
|
7879bc5c13 | ||
|
|
1e33cd72b6 | ||
|
|
b852305dbf | ||
|
|
75b277d35c | ||
|
|
9771b2a67f | ||
|
|
1087b8c29a | ||
|
|
2a281ccca0 | ||
|
|
e6c9aa5e6a | ||
|
|
85f4521808 | ||
|
|
580c1fcb4a | ||
|
|
27e12c7669 | ||
|
|
fa145f2009 | ||
|
|
26e8f7b0ab | ||
|
|
a991ce9c08 | ||
|
|
ac9c6d5c78 | ||
|
|
9960ebcace | ||
|
|
20d161ace3 | ||
|
|
290b887e8c | ||
|
|
ea746f9e86 | ||
|
|
0e95841004 | ||
|
|
f449825ae2 | ||
|
|
9b259f520e | ||
|
|
d615a3122a | ||
|
|
d2f4800099 | ||
|
|
da5da654de | ||
|
|
c661e11e9c | ||
|
|
b5a0719cb7 | ||
|
|
b6d01f131c | ||
|
|
9a00e7c7cf | ||
|
|
85ff0c1912 | ||
|
|
8e5f26ec6a | ||
|
|
4dbb2669e9 | ||
|
|
64885645e7 | ||
|
|
0583491277 | ||
|
|
119fdd9293 | ||
|
|
317468aace | ||
|
|
3d90f71b76 | ||
|
|
fe7b20a1a3 | ||
|
|
b9a974df9e | ||
|
|
b74ebfc6bf | ||
|
|
b043ff34c1 | ||
|
|
2dfc22908e | ||
|
|
3f168ec8ae | ||
|
|
993b17569b | ||
|
|
12a0d999b1 | ||
|
|
cd39b69b02 | ||
|
|
20f48d5b2d | ||
|
|
ba77bbb5c7 | ||
|
|
b32064fedb | ||
|
|
6d11347260 | ||
|
|
4a1ad55564 | ||
|
|
f59cbefd0a | ||
|
|
7086b3e76a | ||
|
|
3bd7fa12e1 | ||
|
|
6ee7b521fa | ||
|
|
7ece036d72 | ||
|
|
e379e21ddc | ||
|
|
8c358e024f | ||
|
|
a4dfbfed89 | ||
|
|
6de4e58cf2 | ||
|
|
e085dfda5d | ||
|
|
1f025b01e2 | ||
|
|
f7f746b167 | ||
|
|
f3b68d4759 | ||
|
|
900894b09a | ||
|
|
3695d0e41b | ||
|
|
28a23602e8 | ||
|
|
ee865f37ac | ||
|
|
112431f217 | ||
|
|
789b8854d2 | ||
|
|
5a05d374d3 | ||
|
|
02902b547b | ||
|
|
b90e3bc491 | ||
|
|
413f83990f | ||
|
|
f057aca1cc | ||
|
|
db38552dcd | ||
|
|
03ca4002c1 | ||
|
|
e845b38dab | ||
|
|
9eb1ce5315 | ||
|
|
2dede3dbfa | ||
|
|
5277cfaf8a | ||
|
|
54f70cf078 | ||
|
|
02774f99ce | ||
|
|
3474594239 | ||
|
|
a76fbe6e00 | ||
|
|
91adcbdcc1 | ||
|
|
f109bf93c9 | ||
|
|
c1946267f2 | ||
|
|
54e1f56cf2 | ||
|
|
3aa114463f | ||
|
|
e1b95f5252 | ||
|
|
ec8deb092c | ||
|
|
b80ae6cec3 | ||
|
|
ceffca683b | ||
|
|
c3b315f496 | ||
|
|
abc808112e | ||
|
|
46a0582ffa | ||
|
|
e6fca0e822 | ||
|
|
7fe8f43f49 | ||
|
|
46bdae036a | ||
|
|
edcba96c00 | ||
|
|
7398f367d5 | ||
|
|
960822a11f | ||
|
|
7c948644fb | ||
|
|
790f9a890c | ||
|
|
ca0ffc0d63 | ||
|
|
8ffcb47a43 | ||
|
|
4927bc7d27 | ||
|
|
99c3849a92 | ||
|
|
b895b0fabc | ||
|
|
ceee7a808c | ||
|
|
696270bcae |
@@ -29,7 +29,6 @@ environment:
|
||||
# disabled
|
||||
# - FEATURE: TINY
|
||||
# - FEATURE: NORMAL
|
||||
# - FEATURE: BIG
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
46
.cirrus.yml
46
.cirrus.yml
@@ -1,23 +1,23 @@
|
||||
#env:
|
||||
# CIRRUS_CLONE_DEPTH: 3
|
||||
# FEATURES: huge
|
||||
#
|
||||
#freebsd_task:
|
||||
# name: FreeBSD
|
||||
# matrix:
|
||||
# - name: FreeBSD 14.0
|
||||
# freebsd_instance:
|
||||
# image_family: freebsd-14-0
|
||||
# timeout_in: 20m
|
||||
# install_script:
|
||||
# - pkg install -y gettext
|
||||
# build_script:
|
||||
# - NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
# - ./configure --with-features=${FEATURES}
|
||||
# - make -j${NPROC}
|
||||
# test_script:
|
||||
# - src/vim --version
|
||||
# # run tests as user "cirrus" instead of root
|
||||
# - pw useradd cirrus -m
|
||||
# - chown -R cirrus:cirrus .
|
||||
# - sudo -u cirrus make test
|
||||
env:
|
||||
CIRRUS_CLONE_DEPTH: 3
|
||||
FEATURES: huge
|
||||
|
||||
freebsd_task:
|
||||
name: FreeBSD
|
||||
matrix:
|
||||
- name: FreeBSD 14.0
|
||||
freebsd_instance:
|
||||
image_family: freebsd-14-0
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- pkg install -y gettext
|
||||
build_script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC}
|
||||
test_script:
|
||||
- src/vim --version
|
||||
# run tests as user "cirrus" instead of root
|
||||
- pw useradd cirrus -m
|
||||
- chown -R cirrus:cirrus .
|
||||
- sudo -u cirrus make test
|
||||
|
||||
@@ -5,6 +5,8 @@ coverage:
|
||||
default:
|
||||
threshold: 0.05%
|
||||
|
||||
comment: false
|
||||
|
||||
# Files not run by tests
|
||||
ignore:
|
||||
- "src/dosinst.c"
|
||||
|
||||
12
.github/CODEOWNERS
vendored
12
.github/CODEOWNERS
vendored
@@ -124,6 +124,9 @@ runtime/ftplugin/cs.vim @nickspoons
|
||||
runtime/ftplugin/csh.vim @dkearns
|
||||
runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/debchangelog.vim @jamessan
|
||||
runtime/ftplugin/debcontrol.vim @jamessan
|
||||
runtime/ftplugin/debsources.vim @jamessan
|
||||
runtime/ftplugin/desktop.vim @e-kwsm
|
||||
runtime/ftplugin/dosbatch.vim @mrdubya
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
@@ -163,6 +166,8 @@ runtime/ftplugin/ishd.vim @dkearns
|
||||
runtime/ftplugin/j.vim @glts
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/json.vim @dbarnett
|
||||
runtime/ftplugin/json5.vim @dkearns
|
||||
runtime/ftplugin/jsonc.vim @izhakjakov
|
||||
runtime/ftplugin/julia.vim @carlobaldassi
|
||||
runtime/ftplugin/kconfig.vim @chrisbra
|
||||
@@ -355,6 +360,12 @@ runtime/syntax/d.vim @JesseKPhillips
|
||||
runtime/syntax/dart.vim @pr3d4t0r
|
||||
runtime/syntax/datascript.vim @dpelle
|
||||
runtime/syntax/dcl.vim @cecamp
|
||||
runtime/syntax/deb822sources.vim @jamessan
|
||||
runtime/syntax/debchangelog.vim @jamessan
|
||||
runtime/syntax/debcontrol.vim @jamessan
|
||||
runtime/syntax/debcopyright.vim @jamessan
|
||||
runtime/syntax/debsources.vim @jamessan
|
||||
runtime/syntax/dep3patch.vim @jamessan
|
||||
runtime/syntax/desktop.vim @e-kwsm
|
||||
runtime/syntax/dosbatch.vim @mrdubya
|
||||
runtime/syntax/dosini.vim @xuhdev
|
||||
@@ -477,6 +488,7 @@ runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sdoc.vim @gpanders
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/sh.vim @cecamp
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/sm.vim @cecamp
|
||||
runtime/syntax/solidity.vim @cothi
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
8
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -9,10 +9,10 @@ body:
|
||||
value: |
|
||||
Thanks for reporting issues of Vim!
|
||||
|
||||
If you want to report a security issue, instead of reporting it here
|
||||
you can alternatively disclose it on
|
||||
[huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=vim%2Fvim&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim).
|
||||
They have rewards in the form of money, swag and CVEs.
|
||||
If you want to report a security issue, instead of reporting it here publicly,
|
||||
please disclose it privately via mail to vim-security@googlegroups.com.
|
||||
(It's a private list read only by the maintainers,
|
||||
but anybody can post, after moderation.)
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
- type: textarea
|
||||
|
||||
2
.github/labeler.yml
vendored
2
.github/labeler.yml
vendored
@@ -55,6 +55,6 @@ runtime:
|
||||
|
||||
termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
|
||||
|
||||
netrw:
|
||||
plugin-netrw:
|
||||
- any: ['runtime/plugin/netrwPlugin.vim']
|
||||
- any: ['runtime/autoload/netrw*']
|
||||
|
||||
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
GCC_VER: 13
|
||||
CLANG_VER: 16
|
||||
CLANG_VER: 17
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
@@ -110,6 +110,8 @@ jobs:
|
||||
tcl-dev \
|
||||
cscope \
|
||||
libsodium-dev \
|
||||
attr \
|
||||
libattr1-dev
|
||||
)
|
||||
fi
|
||||
sudo apt-get update && sudo apt-get install -y "${PKGS[@]}"
|
||||
|
||||
2
Makefile
2
Makefile
@@ -40,7 +40,7 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
@echo "If there are problems, cd to the src directory and run make there"
|
||||
cd src && $(MAKE) $@
|
||||
@# When the target is "test" also run the indent and syntax tests.
|
||||
@if test "$@" = "test"; then \
|
||||
@if test "$@" = "test" -o "$@" = "testtiny"; then \
|
||||
$(MAKE) indenttest; \
|
||||
$(MAKE) syntaxtest; \
|
||||
fi
|
||||
|
||||
@@ -46,7 +46,7 @@ Change to the vim directory and do:
|
||||
|
||||
$ export CC=cc
|
||||
$ export _CC_CCMODE=1
|
||||
$./configure --with-features=big --without-x --enable-gui=no
|
||||
$./configure --with-features=normal --without-x --enable-gui=no
|
||||
$ cd src
|
||||
$ make
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
If you want to report a security issue, please use [huntr.dev](https://huntr.dev/bounties/disclose?target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim) to privately disclose the issue to us.
|
||||
They also have rewards in the form of money, swag and CVEs.
|
||||
If you want to report a security issue, please privately disclose the issue to the vim-security mailing list
|
||||
vim-security@googlegroups.com
|
||||
|
||||
This is a private list, read only by the maintainers, but anybody can post, after moderation.
|
||||
|
||||
**Please don't publicly disclose the issue until it has been addressed by us.**
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Clang 12 (or Apple clang 13) and later makes a warning '-Wcompound-token-split-by-macro' enable by default.
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro -Wno-compound-token-split-by-macro/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror -Wno-deprecated-declarations/
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Werror -Wno-deprecated-declarations/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-shadow/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter -Wno-strict-prototypes/
|
||||
|
||||
10
runtime/autoload/dist/script.vim
vendored
10
runtime/autoload/dist/script.vim
vendored
@@ -217,6 +217,14 @@ export def Exe2filetype(name: string, line1: string): string
|
||||
elseif name =~ '^\%(rexx\|regina\)\>'
|
||||
return 'rexx'
|
||||
|
||||
# Janet
|
||||
elseif name =~ '^janet\>'
|
||||
return 'janet'
|
||||
|
||||
# Dart
|
||||
elseif name =~ '^dart\>'
|
||||
return 'dart'
|
||||
|
||||
endif
|
||||
|
||||
return ''
|
||||
@@ -361,7 +369,7 @@ def DetectFromText(line1: string)
|
||||
|
||||
# Strace
|
||||
# inaccurate fast match first, then use accurate slow match
|
||||
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:.]* *execve(')
|
||||
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:. ]*execve(')
|
||||
|| line1 =~ '^__libc_start_main'
|
||||
setl ft=strace
|
||||
|
||||
|
||||
@@ -1166,7 +1166,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
2match none
|
||||
if exists("s:explore_match") | unlet s:explore_match | endif
|
||||
if exists("s:explore_prvdir") | unlet s:explore_prvdir | endif
|
||||
echo " "
|
||||
" call Decho("cleared explore match list",'~'.expand("<slnum>"))
|
||||
endif
|
||||
|
||||
@@ -1961,7 +1960,7 @@ endfun
|
||||
" Doing this means that netrw will not come up as having changed a
|
||||
" setting last when it really didn't actually change it.
|
||||
"
|
||||
" Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
|
||||
" Used by s:NetrwOptionsRestore() to restore each netrw-sensitive setting
|
||||
" keepvars are set up by s:NetrwOptionsSave
|
||||
fun! s:NetrwRestoreSetting(keepvar,setting)
|
||||
""" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
|
||||
@@ -3516,6 +3515,11 @@ fun! s:NetrwBookHistHandler(chg,curdir)
|
||||
echo "bookmarked the current directory"
|
||||
endif
|
||||
|
||||
try
|
||||
call s:NetrwBookHistSave()
|
||||
catch
|
||||
endtry
|
||||
|
||||
elseif a:chg == 1
|
||||
" change to the bookmarked directory
|
||||
" call Decho("(user: <".v:count."gb>) change to the bookmarked directory",'~'.expand("<slnum>"))
|
||||
@@ -3660,6 +3664,11 @@ fun! s:NetrwBookHistHandler(chg,curdir)
|
||||
" call Decho("g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
|
||||
endif
|
||||
" call Decho("resulting g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
|
||||
|
||||
try
|
||||
call s:NetrwBookHistSave()
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
call s:NetrwBookmarkMenu()
|
||||
call s:NetrwTgtMenu()
|
||||
@@ -5552,7 +5561,7 @@ fun! netrw#BrowseX(fname,remote)
|
||||
" cleanup: remove temporary file,
|
||||
" delete current buffer if success with handler,
|
||||
" return to prior buffer (directory listing)
|
||||
" Feb 12, 2008: had to de-activiate removal of
|
||||
" Feb 12, 2008: had to de-activate removal of
|
||||
" temporary file because it wasn't getting seen.
|
||||
" if remote == 1 && fname != a:fname
|
||||
"" call Decho("deleting temporary file<".fname.">",'~'.expand("<slnum>"))
|
||||
@@ -5720,8 +5729,6 @@ fun! s:NetrwClearExplore()
|
||||
if exists("w:netrw_explore_list") |unlet w:netrw_explore_list |endif
|
||||
if exists("w:netrw_explore_bufnr") |unlet w:netrw_explore_bufnr |endif
|
||||
" redraw!
|
||||
echo " "
|
||||
echo " "
|
||||
" call Dret("s:NetrwClearExplore")
|
||||
endfun
|
||||
|
||||
@@ -7382,8 +7389,7 @@ fun! s:NetrwMarkFileDiff(islocal)
|
||||
exe "NetrwKeepj e ".fnameescape(fname)
|
||||
diffthis
|
||||
elseif cnt == 2 || cnt == 3
|
||||
vsplit
|
||||
wincmd l
|
||||
below vsplit
|
||||
" call Decho("diffthis: ".fname,'~'.expand("<slnum>"))
|
||||
exe "NetrwKeepj e ".fnameescape(fname)
|
||||
diffthis
|
||||
@@ -12044,9 +12050,9 @@ fun! s:NetrwBufRemover(bufid)
|
||||
" call Decho("buf#".a:bufid." has name <".bufname(a:bufid).">","~".expand("<slnum>"))
|
||||
" call Decho("buf#".a:bufid." has winid#".bufwinid(a:bufid),"~".expand("<slnum>"))
|
||||
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufloaded(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
" call Decho("(s:NetrwBufRemover) removing buffer#".a:bufid,"~".expand("<slnum>"))
|
||||
exe "bd! ".a:bufid
|
||||
exe "sil! bd! ".a:bufid
|
||||
endif
|
||||
|
||||
" call Dret("s:NetrwBufRemover")
|
||||
|
||||
@@ -2907,7 +2907,7 @@ endfor
|
||||
" builtin class information
|
||||
let g:php_builtin_object_functions = {}
|
||||
|
||||
" When completing for 'everyting imaginable' (no class context, not a
|
||||
" When completing for 'everything imaginable' (no class context, not a
|
||||
" variable) we need a list of built-in classes in a format of {'classname':''}
|
||||
" for performance reasons we precompile this too
|
||||
let g:php_builtin_classnames = {}
|
||||
|
||||
@@ -25,7 +25,7 @@ function! rustfmt#DetectVersion()
|
||||
silent let s:rustfmt_help = system(g:rustfmt_command . " --help")
|
||||
let s:rustfmt_unstable_features = s:rustfmt_help =~# "--unstable-features"
|
||||
|
||||
" Build a comparable rustfmt version varible out of its `--version` output:
|
||||
" Build a comparable rustfmt version variable out of its `--version` output:
|
||||
silent let l:rustfmt_version_full = system(g:rustfmt_command . " --version")
|
||||
let l:rustfmt_version_list = matchlist(l:rustfmt_version_full,
|
||||
\ '\vrustfmt ([0-9]+[.][0-9]+[.][0-9]+)')
|
||||
|
||||
@@ -97,7 +97,7 @@ enddef
|
||||
|
||||
# Public interface {{{
|
||||
# When a TeX document is split into several source files, each source file
|
||||
# may contain a "magic line" specifiying the "root" file, e.g.:
|
||||
# may contain a "magic line" specifying the "root" file, e.g.:
|
||||
#
|
||||
# % !TEX root = main.tex
|
||||
#
|
||||
|
||||
@@ -111,11 +111,11 @@ please check the following items:
|
||||
- Do not use hard coded escape sequences, these will not work in other
|
||||
terminals. Always use #RRGGBB for the GUI.
|
||||
|
||||
- When targetting 8-16 colors terminals, don't count on "darkblue" to be blue
|
||||
- When targeting 8-16 colors terminals, don't count on "darkblue" to be blue
|
||||
and dark, or on "2" to be even vaguely reddish. Names are more portable
|
||||
than numbers, though.
|
||||
|
||||
- When targetting 256 colors terminals, prefer colors 16-255 to colors 0-15
|
||||
- When targeting 256 colors terminals, prefer colors 16-255 to colors 0-15
|
||||
for the same reason.
|
||||
|
||||
- Typographic attributes (bold, italic, underline, reverse, etc.) are not
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2023 Aug 09
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2023 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1855,7 +1855,7 @@ cosh({expr}) *cosh()*
|
||||
Compute()->cosh()
|
||||
|
||||
|
||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()* *E706*
|
||||
Return the number of times an item with value {expr} appears
|
||||
in |String|, |List| or |Dictionary| {comp}.
|
||||
|
||||
@@ -3928,6 +3928,8 @@ getmousepos() *getmousepos()*
|
||||
wincol column inside "winid"
|
||||
line text line inside "winid"
|
||||
column text column inside "winid"
|
||||
coladd offset (in screen columns) from the
|
||||
start of the clicked char
|
||||
All numbers are 1-based.
|
||||
|
||||
If not over a window, e.g. when in the command line, then only
|
||||
@@ -4199,7 +4201,7 @@ getscriptinfo([{opts}]) *getscriptinfo()*
|
||||
Note that this is a copy, the value of
|
||||
script-local variables cannot be changed using
|
||||
this dictionary.
|
||||
version Vimscript version (|scriptversion|)
|
||||
version Vim script version (|scriptversion|)
|
||||
|
||||
Examples: >
|
||||
:echo getscriptinfo({'name': 'myscript'})
|
||||
@@ -5052,12 +5054,14 @@ insert({object}, {item} [, {idx}]) *insert()*
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->insert(item)
|
||||
|
||||
instanceof({object}, {class}) *instanceof()*
|
||||
The result is a Number, which is |TRUE| when the {object} argument is a
|
||||
direct or indirect instance of a |Class| specified by {class}.
|
||||
When {class} is a |List| the function returns |TRUE| when {object} is an
|
||||
instance of any of the specified classes.
|
||||
<
|
||||
*instanceof()* *E614* *E616* *E693*
|
||||
instanceof({object}, {class})
|
||||
The result is a Number, which is |TRUE| when the {object}
|
||||
argument is a direct or indirect instance of a |Class|
|
||||
specified by {class}.
|
||||
When {class} is a |List| the function returns |TRUE| when
|
||||
{object} is an instance of any of the specified classes.
|
||||
Example: >
|
||||
instanceof(animal, [Dog, Cat])
|
||||
|
||||
@@ -6688,7 +6692,6 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
precision, the argument(s) to be used must also be specified
|
||||
using a {n$} positional argument specifier. See |printf-$|.
|
||||
|
||||
|
||||
The conversion specifiers and their meanings are:
|
||||
|
||||
*printf-d* *printf-b* *printf-B* *printf-o*
|
||||
@@ -6830,57 +6833,65 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
|
||||
< 1.41
|
||||
|
||||
*E1400*
|
||||
*E1500*
|
||||
You cannot mix positional and non-positional arguments: >
|
||||
echo printf("%s%1$s", "One", "Two")
|
||||
< E1400: Cannot mix positional and non-positional
|
||||
< E1500: Cannot mix positional and non-positional
|
||||
arguments: %s%1$s
|
||||
|
||||
*E1401*
|
||||
*E1501*
|
||||
You cannot skip a positional argument in a format string: >
|
||||
echo printf("%3$s%1$s", "One", "Two", "Three")
|
||||
< E1401: format argument 2 unused in $-style
|
||||
< E1501: format argument 2 unused in $-style
|
||||
format: %3$s%1$s
|
||||
|
||||
*E1402*
|
||||
*E1502*
|
||||
You can re-use a [field-width] (or [precision]) argument: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
|
||||
< 1 at width 2 is: 01
|
||||
|
||||
However, you can't use it as a different type: >
|
||||
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
|
||||
< E1402: Positional argument 2 used as field
|
||||
< E1502: Positional argument 2 used as field
|
||||
width reused as different type: long int/int
|
||||
|
||||
*E1403*
|
||||
*E1503*
|
||||
When a positional argument is used, but not the correct number
|
||||
or arguments is given, an error is raised: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
< E1503: Positional argument 3 out of bounds:
|
||||
%1$d at width %2$d is: %01$*2$.*3$d
|
||||
|
||||
Only the first error is reported: >
|
||||
echo printf("%01$*2$.*3$d %4$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
< E1503: Positional argument 3 out of bounds:
|
||||
%01$*2$.*3$d %4$d
|
||||
|
||||
*E1404*
|
||||
*E1504*
|
||||
A positional argument can be used more than once: >
|
||||
echo printf("%1$s %2$s %1$s", "One", "Two")
|
||||
< One Two One
|
||||
|
||||
However, you can't use a different type the second time: >
|
||||
echo printf("%1$s %2$s %1$d", "One", "Two")
|
||||
< E1404: Positional argument 1 type used
|
||||
< E1504: Positional argument 1 type used
|
||||
inconsistently: int/string
|
||||
|
||||
*E1405*
|
||||
*E1505*
|
||||
Various other errors that lead to a format string being
|
||||
wrongly formatted lead to: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
|
||||
< E1405: Invalid format specifier:
|
||||
< E1505: Invalid format specifier:
|
||||
%1$d at width %2$d is: %01$*2$.3$d
|
||||
|
||||
*E1507*
|
||||
This internal error indicates that the logic to parse a
|
||||
positional format argument ran into a problem that couldn't be
|
||||
otherwise reported. Please file a bug against Vim if you run
|
||||
into this, copying the exact format string and parameters that
|
||||
were used.
|
||||
|
||||
|
||||
prompt_getprompt({buf}) *prompt_getprompt()*
|
||||
Returns the effective prompt text for buffer {buf}. {buf} can
|
||||
be a buffer name or number. See |prompt-buffer|.
|
||||
@@ -9443,7 +9454,7 @@ strutf16len({string} [, {countcc}]) *strutf16len()*
|
||||
echo strutf16len('😊') returns 2
|
||||
echo strutf16len('ą́') returns 1
|
||||
echo strutf16len('ą́', v:true) returns 3
|
||||
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetText()->strutf16len()
|
||||
<
|
||||
@@ -10108,9 +10119,9 @@ trim({text} [, {mask} [, {dir}]]) *trim()*
|
||||
Return {text} as a String where any character in {mask} is
|
||||
removed from the beginning and/or end of {text}.
|
||||
|
||||
If {mask} is not given, {mask} is all characters up to 0x20,
|
||||
which includes Tab, space, NL and CR, plus the non-breaking
|
||||
space character 0xa0.
|
||||
If {mask} is not given, or is an empty string, {mask} is all
|
||||
characters up to 0x20, which includes Tab, space, NL and CR,
|
||||
plus the non-breaking space character 0xa0.
|
||||
|
||||
The optional {dir} argument specifies where to remove the
|
||||
characters:
|
||||
@@ -10367,6 +10378,8 @@ virtcol2col({winid}, {lnum}, {col}) *virtcol2col()*
|
||||
character in window {winid} at buffer line {lnum} and virtual
|
||||
column {col}.
|
||||
|
||||
If buffer line {lnum} is an empty line, 0 is returned.
|
||||
|
||||
If {col} is greater than the last virtual column in line
|
||||
{lnum}, then the byte index of the character at the last
|
||||
virtual column is returned.
|
||||
@@ -11082,6 +11095,8 @@ winaltkeys Compiled with 'winaltkeys' option.
|
||||
windows Compiled with support for more than one window.
|
||||
(always true)
|
||||
writebackup Compiled with 'writebackup' default on.
|
||||
xattr Compiled with extended attributes support |xattr|
|
||||
(currently only supported on Linux).
|
||||
xfontset Compiled with X fontset support |xfontset|.
|
||||
xim Compiled with X input method support |xim|.
|
||||
xpm Compiled with pixmap support.
|
||||
|
||||
@@ -90,9 +90,11 @@ CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||
In the GUI the |key-notation| is inserted without simplifying.
|
||||
|
||||
*c_<Left>* *c_Left*
|
||||
<Left> cursor left
|
||||
<Left> cursor left. See 'wildmenu' for behavior during wildmenu
|
||||
completion mode.
|
||||
*c_<Right>* *c_Right*
|
||||
<Right> cursor right
|
||||
<Right> cursor right. See 'wildmenu' for behavior during wildmenu
|
||||
completion mode.
|
||||
*c_<S-Left>*
|
||||
<S-Left> or <C-Left> *c_<C-Left>*
|
||||
cursor one WORD left
|
||||
@@ -102,7 +104,8 @@ CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||
CTRL-B or <Home> *c_CTRL-B* *c_<Home>* *c_Home*
|
||||
cursor to beginning of command-line
|
||||
CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
|
||||
cursor to end of command-line
|
||||
cursor to end of command-line. See 'wildmenu' for behavior
|
||||
during wildmenu completion mode.
|
||||
|
||||
*c_<LeftMouse>*
|
||||
<LeftMouse> Move the cursor to the position of the mouse click.
|
||||
@@ -237,6 +240,7 @@ CTRL-\ e {expr} *c_CTRL-\_e*
|
||||
CTRL-Y When there is a modeless selection, copy the selection into
|
||||
the clipboard. |modeless-selection|
|
||||
If there is no selection CTRL-Y is inserted as a character.
|
||||
See 'wildmenu' for behavior during wildmenu completion mode.
|
||||
|
||||
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||
<CR> or <NL> start entered command
|
||||
@@ -252,12 +256,14 @@ CTRL-C quit command-line without executing
|
||||
|
||||
*c_<Up>* *c_Up*
|
||||
<Up> recall older command-line from history, whose beginning
|
||||
matches the current command-line (see below).
|
||||
matches the current command-line (see below). See 'wildmenu'
|
||||
for behavior during wildmenu completion mode.
|
||||
{not available when compiled without the |+cmdline_hist|
|
||||
feature}
|
||||
*c_<Down>* *c_Down*
|
||||
<Down> recall more recent command-line from history, whose beginning
|
||||
matches the current command-line (see below).
|
||||
matches the current command-line (see below). See 'wildmenu'
|
||||
for behavior during wildmenu completion mode.
|
||||
{not available when compiled without the |+cmdline_hist|
|
||||
feature}
|
||||
|
||||
@@ -381,6 +387,7 @@ When editing the command-line, a few commands can be used to complete the
|
||||
word before the cursor. This is available for:
|
||||
|
||||
- Command names: At the start of the command-line.
|
||||
- |++opt| values.
|
||||
- Tags: Only after the ":tag" command.
|
||||
- File names: Only after a command that accepts a file name or a setting for
|
||||
an option that can be set to a file name. This is called file name
|
||||
@@ -463,11 +470,16 @@ When repeating 'wildchar' or CTRL-N you cycle through the matches, eventually
|
||||
ending up back to what was typed. If the first match is not what you wanted,
|
||||
you can use <S-Tab> or CTRL-P to go straight back to what you typed.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||
|
||||
The 'wildmenu' option can be set to show the matches just above the command
|
||||
line.
|
||||
|
||||
The 'wildoptions' option provides additional configuration to use a popup menu
|
||||
for 'wildmenu', and to use fuzzy matching.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames. For
|
||||
completing other texts (e.g. command names), the 'ignorecase' option is used
|
||||
instead (fuzzy matching always ignores case, however).
|
||||
|
||||
If you like tcsh's autolist completion, you can use this mapping:
|
||||
:cnoremap X <C-L><C-D>
|
||||
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
|
||||
@@ -517,16 +529,26 @@ example, to match only files that end in ".c": >
|
||||
:e *.c$
|
||||
This will not match a file ending in ".cpp". Without the "$" it does match.
|
||||
|
||||
The old value of an option can be obtained by hitting 'wildchar' just after
|
||||
the '='. For example, typing 'wildchar' after ":set dir=" will insert the
|
||||
current value of 'dir'. This overrules file name completion for the options
|
||||
that take a file name.
|
||||
|
||||
If you would like using <S-Tab> for CTRL-P in an xterm, put this command in
|
||||
your .cshrc: >
|
||||
xmodmap -e "keysym Tab = Tab Find"
|
||||
And this in your .vimrc: >
|
||||
:cmap <Esc>[1~ <C-P>
|
||||
< *complete-set-option*
|
||||
When setting an option using |:set=|, the old value of an option can be
|
||||
obtained by hitting 'wildchar' just after the '='. For example, typing
|
||||
'wildchar' after ":set dir=" will insert the current value of 'dir'. This
|
||||
overrules file name completion for the options that take a file name.
|
||||
|
||||
When using |:set=|, |:set+=|, or |:set^=|, string options that have
|
||||
pre-defined names or syntax (e.g. 'diffopt', 'listchars') or are a list of
|
||||
single-character flags (e.g. 'shortmess') will also present a list of possible
|
||||
values for completion when using 'wildchar'.
|
||||
|
||||
When using |:set-=|, comma-separated options like 'diffopt' or 'backupdir'
|
||||
will show each item separately. Flag list options like 'shortmess' will show
|
||||
both the entire old value and the individual flags. Otherwise completion will
|
||||
just fill in with the entire old value.
|
||||
|
||||
==============================================================================
|
||||
3. Ex command-lines *cmdline-lines*
|
||||
@@ -778,7 +800,7 @@ An example for subtracting (which isn't very useful): >
|
||||
On this text:
|
||||
1 one ~
|
||||
2 two ~
|
||||
3 three FOLDED~
|
||||
3 three FOLDED ~
|
||||
4 four FOLDED ~
|
||||
5 five FOLDED ~
|
||||
6 six FOLDED ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 9.0. Last change: 2023 Mar 21
|
||||
*digraph.txt* For Vim version 9.0. Last change: 2023 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -174,6 +174,13 @@ ROUBLE
|
||||
The rouble sign was added in 2014 as 0x20bd. Vim supports the digraphs =R and
|
||||
=P for this. Note that R= and P= are other characters.
|
||||
|
||||
QUADRUPLE PRIME
|
||||
|
||||
The quadruple prime using the digraph 4' was added in 2023. Although it is
|
||||
not part of RFC 1345, it supplements the existing digraph implementation as
|
||||
there already exist digraphs for PRIME, DOUBLE PRIME and TRIPLE PRIME using
|
||||
the 1', 2' and 3' digraphs.
|
||||
|
||||
*digraph-table*
|
||||
char digraph hex dec official name ~
|
||||
^@ NU 0x00 0 NULL (NUL)
|
||||
@@ -931,6 +938,7 @@ char digraph hex dec official name ~
|
||||
′ 1' 2032 8242 PRIME
|
||||
″ 2' 2033 8243 DOUBLE PRIME
|
||||
‴ 3' 2034 8244 TRIPLE PRIME
|
||||
⁗ 4' 2057 8279 QUADRUPLE PRIME
|
||||
‵ 1" 2035 8245 REVERSED PRIME
|
||||
‶ 2" 2036 8246 REVERSED DOUBLE PRIME
|
||||
‷ 3" 2037 8247 REVERSED TRIPLE PRIME
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 9.0. Last change: 2023 Apr 23
|
||||
*editing.txt* For Vim version 9.0. Last change: 2023 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -385,7 +385,9 @@ as a wildcard when "[" is in the 'isfname' option. A simple way to avoid this
|
||||
is to use "path\[[]abc]", this matches the file "path\[abc]".
|
||||
|
||||
*starstar-wildcard*
|
||||
Expanding "**" is possible on Unix, Win32, macOS and a few other systems.
|
||||
Expanding "**" is possible on Unix, Win32, macOS and a few other systems (but
|
||||
it may depend on your 'shell' setting on Unix and macOS. It's known to work
|
||||
correctly for zsh; for bash this requires at least bash version >= 4.X).
|
||||
This allows searching a directory tree. This goes up to 100 directories deep.
|
||||
Note there are some commands where this works slightly differently, see
|
||||
|file-searching|.
|
||||
@@ -1095,6 +1097,13 @@ will get the ACL info of the original file.
|
||||
The ACL info is also used to check if a file is read-only (when opening the
|
||||
file).
|
||||
|
||||
*xattr* *E1506* *E1508* *E1509*
|
||||
xattr stands for Extended Attributes. It is an advanced way to save metadata
|
||||
alongside the file in the filesystem. It depends on the actual filesystem
|
||||
being used and Vim supports it only on a Linux system.
|
||||
Vim attempts to preserve the extended attribute info when writing a file.
|
||||
The backup file will get the extended attribute of the original file.
|
||||
|
||||
*read-only-share*
|
||||
When MS-Windows shares a drive on the network it can be marked as read-only.
|
||||
This means that even if the file read-only attribute is absent, and the ACL
|
||||
|
||||
@@ -2424,7 +2424,7 @@ v:progpath Contains the command with which Vim was invoked, in a form
|
||||
".exe" is not added to v:progpath.
|
||||
Read-only.
|
||||
|
||||
*v:python3_version* *python3-version-variable*
|
||||
*v:python3_version* *python3-version-variable*
|
||||
v:python3_version
|
||||
Version of Python 3 that Vim was built against. When
|
||||
Python is loaded dynamically (|python-dynamic|), this version
|
||||
@@ -3128,6 +3128,10 @@ text...
|
||||
< You may want to make a copy of a list to avoid this.
|
||||
See |deepcopy()|.
|
||||
|
||||
*E1391* *E1392*
|
||||
Locking and unlocking object and class variables is
|
||||
currently NOT supported.
|
||||
|
||||
|
||||
:unlo[ckvar][!] [depth] {name} ... *:unlockvar* *:unlo* *E1246*
|
||||
Unlock the internal variable {name}. Does the
|
||||
|
||||
@@ -433,7 +433,7 @@ So to enable this only for ruby, set the following variable: >
|
||||
:let g:ruby_exec = 1
|
||||
|
||||
If both, the global `plugin_exec` and the `<filetype>_exec` specific variable
|
||||
are set, the filetpe specific variable should have precedent.
|
||||
are set, the filetype specific variable should have precedent.
|
||||
|
||||
AWK *ft-awk-plugin*
|
||||
|
||||
|
||||
@@ -474,8 +474,8 @@ rust.vim Debugging
|
||||
register.
|
||||
|
||||
:RustInfoToFile [filename] *:RustInfoToFile*
|
||||
Saves debugging info of the Vim Rust plugin to the the given
|
||||
file, overwritting it.
|
||||
Saves debugging info of the Vim Rust plugin to the given file,
|
||||
overwriting it.
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *rust-mappings*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 9.0. Last change: 2022 Feb 22
|
||||
*if_pyth.txt* For Vim version 9.0. Last change: 2023 Oct 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -524,7 +524,7 @@ The range object methods are:
|
||||
|
||||
Range object type is available using "Range" attribute of vim module.
|
||||
|
||||
Example (assume r is the current range):
|
||||
Example (assume r is the current range): >
|
||||
# Send all lines in a range to the default printer
|
||||
vim.command("%d,%dhardcopy!" % (r.start+1,r.end+1))
|
||||
|
||||
@@ -754,8 +754,10 @@ you can use Vim without this file.
|
||||
MS-Windows ~
|
||||
|
||||
To use the Python interface the Python DLL must be in your search path. In a
|
||||
console window type "path" to see what directories are used. The 'pythondll'
|
||||
or 'pythonthreedll' option can be also used to specify the Python DLL.
|
||||
console window type "path" to see what directories are used. If the DLL is
|
||||
not found in your search path, Vim will check the registry to find the path
|
||||
where Python is installed. The 'pythondll' 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.
|
||||
@@ -782,6 +784,8 @@ and failures. With Stable ABI, this restriction is relaxed, and any Python 3
|
||||
library with version of at least |v:python3_version| will work. See
|
||||
|has-python| for how to check if Stable ABI is supported, or see if version
|
||||
output includes |+python3/dyn-stable|.
|
||||
On MS-Windows, 'pythonthreedll' will be set to "python3.dll". When searching
|
||||
the DLL from the registry, Vim will search the latest version of Python.
|
||||
|
||||
==============================================================================
|
||||
10. Python 3 *python3*
|
||||
|
||||
@@ -1236,7 +1236,7 @@ variable. It supports 3 keys, `line_continuation`, `more_in_bracket_block`,
|
||||
and `searchpair_timeout`.
|
||||
`line_continuation` expects a number which will be added to the indent level of
|
||||
a continuation line starting with a backslash, and defaults to
|
||||
`shiftwidth() * 3`. It also accepts a string, which is evaluated at runtime.
|
||||
`shiftwidth() * 3` . It also accepts a string, which is evaluated at runtime.
|
||||
`more_in_bracket_block` expects a boolean value; when on, an extra
|
||||
`shiftwidth()` is added inside blocks surrounded with brackets. It defaults to
|
||||
`v:false`.
|
||||
@@ -1244,14 +1244,14 @@ a continuation line starting with a backslash, and defaults to
|
||||
a timeout. Increasing the value might give more accurate results, but also
|
||||
causes the indentation to take more time. It defaults to 100 (milliseconds).
|
||||
|
||||
Example of configuration:
|
||||
Example of configuration: >
|
||||
|
||||
let g:vim_indent = #{
|
||||
\ line_continuation: shiftwidth() * 3,
|
||||
\ more_in_bracket_block: v:false,
|
||||
\ searchpair_timeout: 100,
|
||||
\ }
|
||||
|
||||
<
|
||||
*g:vim_indent_cont*
|
||||
This variable is equivalent to `g:vim_indent.line_continuation`.
|
||||
It's supported for backward compatibility.
|
||||
|
||||
@@ -1112,6 +1112,22 @@ tag command action in Command-line editing mode ~
|
||||
|c_<Insert>| <Insert> toggle insert/overstrike mode
|
||||
|c_<LeftMouse>| <LeftMouse> cursor at mouse click
|
||||
|
||||
commands in wildmenu mode (see 'wildmenu')
|
||||
|
||||
<Up> move up to parent / select the previous match
|
||||
<Down> move down to submenu / select the next match
|
||||
<Left> select the previous match / move up to parent
|
||||
<Right> select the next match / move down to submenu
|
||||
<CR> move into submenu when doing menu completion
|
||||
CTRL-E stop completion and go back to original text
|
||||
CTRL-Y accept selected match and stop completion
|
||||
other stop completion and insert the typed character
|
||||
|
||||
commands in wildmenu mode with 'wildoptions' set to "pum"
|
||||
|
||||
<PageUp> select a match several entries back
|
||||
<PageDown> select a match several entries forward
|
||||
|
||||
==============================================================================
|
||||
5. Terminal-Job mode *terminal-job-index*
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ introduce Y2K problems, but those are not really part of Vim itself.
|
||||
==============================================================================
|
||||
3. Credits *credits* *author*
|
||||
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|.
|
||||
|
||||
Parts of the documentation come from several Vi manuals, written by:
|
||||
W.N. Joy
|
||||
@@ -217,7 +217,8 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Bill Foster Athena GUI port (later removed)
|
||||
Google Let Bram work on Vim one day a week
|
||||
Loic Grenie xvim (ideas for multi windows version)
|
||||
Sven Guckes Vim promoter and previous WWW page maintainer |Sven-Guckes|
|
||||
Sven Guckes Vim promoter and previous WWW page maintainer
|
||||
|Sven-Guckes|
|
||||
Darren Hiebert Exuberant ctags
|
||||
Jason Hildebrand GTK+ 2 port
|
||||
Bruce Hunsaker improvements for VMS port
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.0. Last change: 2023 Sep 18
|
||||
*motion.txt* For Vim version 9.0. Last change: 2023 Sep 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -592,14 +592,16 @@ a] *v_a]* *v_a[* *a]* *a[*
|
||||
a[ "a [] block", select [count] '[' ']' blocks. This
|
||||
goes backwards to the [count] unclosed '[', and finds
|
||||
the matching ']'. The enclosed text is selected,
|
||||
including the '[' and ']'.
|
||||
including the '[' and ']'. The |cpo-M| option flag
|
||||
is used to handle escaped brackets.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i] *v_i]* *v_i[* *i]* *i[*
|
||||
i[ "inner [] block", select [count] '[' ']' blocks. This
|
||||
goes backwards to the [count] unclosed '[', and finds
|
||||
the matching ']'. The enclosed text is selected,
|
||||
excluding the '[' and ']'.
|
||||
excluding the '[' and ']'. The |cpo-M| option flag
|
||||
is used to handle escaped brackets.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a) *v_a)* *a)* *a(*
|
||||
@@ -607,7 +609,8 @@ a( *vab* *v_ab* *v_a(* *ab*
|
||||
ab "a block", select [count] blocks, from "[count] [(" to
|
||||
the matching ')', including the '(' and ')' (see
|
||||
|[(|). Does not include white space outside of the
|
||||
parenthesis.
|
||||
parenthesis. The |cpo-M| option flag is used to
|
||||
handle escaped parenthesis.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i) *v_i)* *i)* *i(*
|
||||
@@ -615,19 +618,22 @@ i( *vib* *v_ib* *v_i(* *ib*
|
||||
ib "inner block", select [count] blocks, from "[count] [("
|
||||
to the matching ')', excluding the '(' and ')' (see
|
||||
|[(|). If the cursor is not inside a () block, then
|
||||
find the next "(".
|
||||
find the next "(". The |cpo-M| option flag
|
||||
is used to handle escaped parenthesis.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a> *v_a>* *v_a<* *a>* *a<*
|
||||
a< "a <> block", select [count] <> blocks, from the
|
||||
[count]'th unmatched '<' backwards to the matching
|
||||
'>', including the '<' and '>'.
|
||||
'>', including the '<' and '>'. The |cpo-M| option flag
|
||||
is used to handle escaped '<' and '>'.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i> *v_i>* *v_i<* *i>* *i<*
|
||||
i< "inner <> block", select [count] <> blocks, from
|
||||
the [count]'th unmatched '<' backwards to the matching
|
||||
'>', excluding the '<' and '>'.
|
||||
'>', excluding the '<' and '>'. The |cpo-M| option flag
|
||||
is used to handle escaped '<' and '>'.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
*v_at* *at*
|
||||
@@ -649,14 +655,16 @@ a} *v_a}* *a}* *a{*
|
||||
a{ *v_aB* *v_a{* *aB*
|
||||
aB "a Block", select [count] Blocks, from "[count] [{" to
|
||||
the matching '}', including the '{' and '}' (see
|
||||
|[{|).
|
||||
|[{|). The |cpo-M| option flag is used to handle
|
||||
escaped braces.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i} *v_i}* *i}* *i{*
|
||||
i{ *v_iB* *v_i{* *iB*
|
||||
iB "inner Block", select [count] Blocks, from "[count] [{"
|
||||
to the matching '}', excluding the '{' and '}' (see
|
||||
|[{|).
|
||||
|[{|). The |cpo-M| option flag is used to handle
|
||||
escaped braces.
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a" *v_aquote* *aquote*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.0. Last change: 2023 Aug 15
|
||||
*options.txt* For Vim version 9.0. Last change: 2023 Oct 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -71,7 +71,7 @@ achieve special effects. These options come in three forms:
|
||||
'ttytype'
|
||||
Warning: This may have a lot of side effects.
|
||||
|
||||
*:set-args* *E487* *E521*
|
||||
*:set-args* *:set=* *E487* *E521*
|
||||
:se[t] {option}={value} or
|
||||
:se[t] {option}:{value}
|
||||
Set string or number option to {value}.
|
||||
@@ -79,7 +79,9 @@ achieve special effects. These options come in three forms:
|
||||
hex (preceded with 0x) or octal (preceded with '0').
|
||||
The old value can be inserted by typing 'wildchar' (by
|
||||
default this is a <Tab> or CTRL-E if 'compatible' is
|
||||
set). See |cmdline-completion|.
|
||||
set). Many string options with fixed syntax and names
|
||||
also support completing known values. See
|
||||
|cmdline-completion| and |complete-set-option|.
|
||||
White space between {option} and '=' is allowed and
|
||||
will be ignored. White space between '=' and {value}
|
||||
is not allowed.
|
||||
@@ -113,6 +115,9 @@ achieve special effects. These options come in three forms:
|
||||
When the option is a list of flags, {value} must be
|
||||
exactly as they appear in the option. Remove flags
|
||||
one by one to avoid problems.
|
||||
The individual values from a comma separated list or
|
||||
list of flags can be inserted by typing 'wildchar'.
|
||||
See |complete-set-option|.
|
||||
Also see |:set-args| above.
|
||||
|
||||
The {option} arguments to ":set" may be repeated. For example: >
|
||||
@@ -187,10 +192,27 @@ To include white space in a string option value it has to be preceded with a
|
||||
backslash. To include a backslash you have to use two. Effectively this
|
||||
means that the number of backslashes in an option value is halved (rounded
|
||||
down).
|
||||
In options 'path', 'cdpath', and 'tags', spaces have to be preceded with three
|
||||
backslashes instead for compatibility with version 3.0 where the options can
|
||||
be separated by either commas or spaces.
|
||||
Comma-separated options like 'backupdir' and 'tags' will also require commas
|
||||
to be escaped with two backslashes, whereas this is not needed for
|
||||
non-comma-separated ones like 'makeprg'.
|
||||
When setting options using |:let| and |literal-string|, you need to use one
|
||||
fewer layer of backslash.
|
||||
A few examples: >
|
||||
:set tags=tags\ /usr/tags results in "tags /usr/tags"
|
||||
:set tags=tags\\,file results in "tags\,file"
|
||||
:set tags=tags\\\ file results in "tags\ file"
|
||||
:set makeprg=make\ file results in "make file"
|
||||
:let &makeprg='make file' (same as above)
|
||||
:set makeprg=make\\\ file results in "make\ file"
|
||||
:set tags=tags\ /usr/tags results in "tags" and "/usr/tags"
|
||||
:set tags=tags\\\ file results in "tags file"
|
||||
:let &tags='tags\ file' (same as above)
|
||||
|
||||
:set makeprg=make,file results in "make,file"
|
||||
:set makeprg=make\\,file results in "make\,file"
|
||||
:set tags=tags,file results in "tags" and "file"
|
||||
:set tags=tags\\,file results in "tags,file"
|
||||
:let &tags='tags\,file' (same as above)
|
||||
|
||||
The "|" character separates a ":set" command from a following command. To
|
||||
include the "|" in the option value, use "\|" instead. This example sets the
|
||||
@@ -430,7 +452,7 @@ Set using a variable with lambda expression: >
|
||||
let &tagfunc = L
|
||||
|
||||
In Vim9 script, in a compiled function, you can use a lambda, but a
|
||||
closured does not work, because the function will be called without the
|
||||
closure does not work, because the function will be called without the
|
||||
context of where it was defined.
|
||||
|
||||
|
||||
@@ -1582,6 +1604,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
current working directory to the |$HOME| directory like in Unix.
|
||||
When off, those commands just print the current directory name.
|
||||
On Unix this option has no effect.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'cdpath'* *'cd'* *E344* *E346*
|
||||
@@ -1949,6 +1973,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'delcombine' + off unicode: delete whole char combination
|
||||
'digraph' + off no digraphs
|
||||
'esckeys' & off no <Esc>-keys in Insert mode
|
||||
this also disables |modifyOtherKeys|
|
||||
and |xterm-bracketed-paste|
|
||||
'expandtab' + off tabs not expanded to spaces
|
||||
'fileformats' & "" no automatic file format detection,
|
||||
"dos,unix" except for MS-Windows
|
||||
@@ -2834,7 +2860,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When omitted a context of six lines is used.
|
||||
When using zero the context is actually one,
|
||||
since folds require a line in between, also
|
||||
for a deleted line.
|
||||
for a deleted line. Set it to a very large
|
||||
value (999999) to disable folding completely.
|
||||
See |fold-diff|.
|
||||
|
||||
iblank Ignore changes where lines are all blank. Adds
|
||||
@@ -3192,9 +3219,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
won't work by default.
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
NOTE: when this option is off then the |modifyOtherKeys| functionality
|
||||
is disabled while in Insert mode to avoid ending Insert mode with any
|
||||
key that has a modifier.
|
||||
NOTE: when this option is off then the |modifyOtherKeys| and
|
||||
|xterm-bracketed-paste| functionality is disabled while in Insert mode
|
||||
to avoid ending Insert mode with any key that has a modifier.
|
||||
|
||||
*'eventignore'* *'ei'*
|
||||
'eventignore' 'ei' string (default "")
|
||||
@@ -4298,8 +4325,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-PmenuSel| = popup menu selected line
|
||||
|hl-PmenuKind| [ popup menu "kind" normal line
|
||||
|hl-PmenuKindSel| ] popup menu "kind" selected line
|
||||
|hl-PmenuExtra| { popup menu "kind" normal line
|
||||
|hl-PmenuExtraSel| } popup menu "kind" selected line
|
||||
|hl-PmenuExtra| { popup menu "extra" normal line
|
||||
|hl-PmenuExtraSel| } popup menu "extra" selected line
|
||||
|hl-PmenuSbar| x popup menu scrollbar
|
||||
|hl-PmenuThumb| X popup menu scrollbar thumb
|
||||
|
||||
@@ -4417,8 +4444,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'ignorecase'* *'ic'* *'noignorecase'* *'noic'*
|
||||
'ignorecase' 'ic' boolean (default off)
|
||||
global
|
||||
Ignore case in search patterns. Also used when searching in the tags
|
||||
file.
|
||||
Ignore case in search patterns, |cmdline-completion|, when
|
||||
searching in the tags file, and non-|Vim9| |expr-==|.
|
||||
Also see 'smartcase' and 'tagcase'.
|
||||
Can be overruled by using "\c" or "\C" in the pattern, see
|
||||
|/ignorecase|.
|
||||
@@ -4923,6 +4950,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"echo &key". This is to avoid showing it to someone who shouldn't
|
||||
know. It also means you cannot see it yourself once you have set it,
|
||||
be careful not to make a typing error!
|
||||
You also cannot use |:set-=|, |:set+=|, |:set^=| on this option to
|
||||
prevent an attacker from guessing substrings in your key.
|
||||
You can use "&key" in an expression to detect whether encryption is
|
||||
enabled. When 'key' is set it returns "*****" (five stars).
|
||||
|
||||
@@ -5460,6 +5489,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Increasing this limit above 200 also changes the maximum for Ex
|
||||
command recursion, see |E169|.
|
||||
See also |:function|.
|
||||
Also used for maximum depth of callback functions.
|
||||
|
||||
*'maxmapdepth'* *'mmd'* *E223*
|
||||
'maxmapdepth' 'mmd' number (default 1000)
|
||||
@@ -5562,7 +5592,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< If you have less than 512 Mbyte |:mkspell| may fail for some
|
||||
languages, no matter what you set 'mkspellmem' to.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'modeline'* *'ml'* *'nomodeline'* *'noml'*
|
||||
'modeline' 'ml' boolean (Vim default: on (off for root),
|
||||
@@ -5721,7 +5752,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
The 'mousemodel' option is set by the |:behave| command.
|
||||
|
||||
*'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*
|
||||
*'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*
|
||||
'mousemoveevent' 'mousemev' boolean (default off)
|
||||
global
|
||||
{only works in the GUI}
|
||||
@@ -5964,6 +5995,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'packpath'* *'pp'*
|
||||
'packpath' 'pp' string (default: see 'runtimepath')
|
||||
Directories used to find packages. See |packages|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
|
||||
*'paragraphs'* *'para'*
|
||||
@@ -6048,6 +6081,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
feature}
|
||||
Expression which is evaluated to apply a patch to a file and generate
|
||||
the resulting new version of the file. See |diff-patchexpr|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'patchmode'* *'pm'* *E205* *E206*
|
||||
'patchmode' 'pm' string (default "")
|
||||
@@ -6757,9 +6792,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'*
|
||||
'scrollbind' 'scb' boolean (default off)
|
||||
local to window
|
||||
See also |scroll-binding|. When this option is set, the current
|
||||
window scrolls as other scrollbind windows (windows that also have
|
||||
this option set) scroll. This option is useful for viewing the
|
||||
See also |scroll-binding|. When this option is set, scrolling the
|
||||
current window also scrolls other scrollbind windows (windows that
|
||||
also have this option set). This option is useful for viewing the
|
||||
differences between two versions of a file, see 'diff'.
|
||||
See |'scrollopt'| for options that determine how this option should be
|
||||
interpreted.
|
||||
@@ -7130,6 +7165,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When 'shellxquote' is set to "(" then the characters listed in this
|
||||
option will be escaped with a '^' character. This makes it possible
|
||||
to execute most external commands with cmd.exe.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'shellxquote'* *'sxq'*
|
||||
'shellxquote' 'sxq' string (default: "";
|
||||
@@ -7970,7 +8007,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option controls the behavior when switching between buffers.
|
||||
This option is checked, when
|
||||
- jumping to errors with the |quickfix| commands (|:cc|, |:cn|, |:cp|,
|
||||
etc.)
|
||||
etc.).
|
||||
- jumping to a tag using the |:stag| command.
|
||||
- opening a file using the |CTRL-W_f| or |CTRL-W_F| command.
|
||||
- jumping to a buffer using a buffer split command (e.g. |:sbuffer|,
|
||||
@@ -8186,6 +8223,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
function and an example. The value can be the name of a function, a
|
||||
|lambda| or a |Funcref|. See |option-value-function| for more
|
||||
information.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'taglength'* *'tl'*
|
||||
'taglength' 'tl' number (default 0)
|
||||
@@ -8205,8 +8244,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|+emacs_tags|: "./tags,./TAGS,tags,TAGS")
|
||||
global or local to buffer |global-local|
|
||||
Filenames for the tag command, separated by spaces or commas. To
|
||||
include a space or comma in a file name, precede it with a backslash
|
||||
(see |option-backslash| about including spaces and backslashes).
|
||||
include a space or comma in a file name, precede it with backslashes
|
||||
(see |option-backslash| about including spaces/commas and backslashes).
|
||||
When a file name starts with "./", the '.' is replaced with the path
|
||||
of the current file. But only when the 'd' flag is not included in
|
||||
'cpoptions'. Environment variables are expanded |:set_env|. Also see
|
||||
@@ -8945,12 +8984,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Setting 'verbosefile' to a new value is like making it empty first.
|
||||
The difference with |:redir| is that verbose messages are not
|
||||
displayed when 'verbosefile' is set.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'viewdir'* *'vdir'*
|
||||
'viewdir' 'vdir' string (default for Amiga "home:vimfiles/view",
|
||||
'viewdir' 'vdir' string (default for Amiga: "home:vimfiles/view",
|
||||
for Win32: "$HOME/vimfiles/view",
|
||||
for Unix: "$HOME/.vim/view",
|
||||
for macOS: "$VIM/vimfiles/view"
|
||||
for macOS: "$VIM/vimfiles/view",
|
||||
for VMS: "sys$login:vimfiles/view")
|
||||
global
|
||||
{not available when compiled without the |+mksession|
|
||||
@@ -9227,6 +9268,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The character is not recognized when used inside a macro. See
|
||||
'wildcharm' for that.
|
||||
Some keys will not work, such as CTRL-C, <CR> and Enter.
|
||||
<Esc> can be used, but hitting it twice in a row will still exit
|
||||
command-line as a failsafe measure.
|
||||
Although 'wc' is a number option, you can set it to a special key: >
|
||||
:set wc=<Tab>
|
||||
< NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
@@ -9289,31 +9332,34 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
as needed.
|
||||
The "wildmenu" mode is abandoned when a key is hit that is not used
|
||||
for selecting a completion.
|
||||
While the "wildmenu" is active, not using the popup menu, the
|
||||
following keys have special meanings:
|
||||
|
||||
<Left> <Right> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<Down> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
While the "wildmenu" is active, the following keys have special
|
||||
meanings:
|
||||
CTRL-P - go to the previous entry
|
||||
CTRL-N - go to the next entry
|
||||
<CR> - in menu completion, when the cursor is just after a
|
||||
dot: move into a submenu.
|
||||
CTRL-E - end completion, go back to what was there before
|
||||
selecting a match.
|
||||
CTRL-Y - accept the currently selected match and stop
|
||||
completion.
|
||||
|
||||
When not using the popup menu for command line completion, the
|
||||
following keys have special meanings:
|
||||
<Left> <Right> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<Up> - in filename/menu name completion: move up into
|
||||
parent directory or parent menu.
|
||||
<Down> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
|
||||
When using the popup menu for command line completion, the following
|
||||
keys have special meanings:
|
||||
<Down> - select next match (like CTRL-N)
|
||||
<Up> <Down> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<PageUp> - select a match several entries back
|
||||
<PageDown> - select a match several entries further
|
||||
<Left> - in filename/menu name completion: move up into
|
||||
parent directory or parent menu.
|
||||
<Right> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
<Up> - select previous match (like CTRL-P)
|
||||
CTRL-E - end completion, go back to what was there before
|
||||
selecting a match.
|
||||
CTRL-N - go to the next entry
|
||||
CTRL-P - go to the previous entry
|
||||
CTRL-Y - accept the currently selected match and stop
|
||||
completion.
|
||||
|
||||
This makes the menus accessible from the console |console-menus|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.0. Last change: 2023 Feb 04
|
||||
*pattern.txt* For Vim version 9.0. Last change: 2023 Oct 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1080,7 +1080,7 @@ match ASCII characters, as indicated by the range.
|
||||
|
||||
\(\) A pattern enclosed by escaped parentheses. */\(* */\(\)* */\)*
|
||||
E.g., "\(^a\)" matches 'a' at the start of a line.
|
||||
There can only be ten of these. You can use "\%(" to add more, but
|
||||
There can only be nine of these. You can use "\%(" to add more, but
|
||||
not counting it as a sub-expression.
|
||||
*E51* *E54* *E55* *E872* *E873*
|
||||
|
||||
@@ -1461,10 +1461,11 @@ Finally, these constructs are unique to Perl:
|
||||
Just like |:match| above, but set a separate match. Thus
|
||||
there can be three matches active at the same time. The match
|
||||
with the lowest number has priority if several match at the
|
||||
same position.
|
||||
The ":3match" command is used by the |matchparen| plugin. You
|
||||
are suggested to use ":match" for manual matching and
|
||||
":2match" for another plugin.
|
||||
same position. It uses the match id 3.
|
||||
The ":3match" command is used by (Vim < 9.0.2054) |matchparen|
|
||||
plugin. You are suggested to use ":match" for manual matching
|
||||
and ":2match" for another plugin or even better make use of
|
||||
the more flexible |matchadd()| (and similar) functions instead.
|
||||
|
||||
==============================================================================
|
||||
11. Fuzzy matching *fuzzy-matching*
|
||||
|
||||
@@ -1422,6 +1422,7 @@ rest is ignored. Items can only be 1023 bytes long.
|
||||
Basic items
|
||||
|
||||
%f file name (finds a string)
|
||||
%b buffer number (finds a number)
|
||||
%o module name (finds a string)
|
||||
%l line number (finds a number)
|
||||
%e end line number (finds a number)
|
||||
@@ -1461,6 +1462,11 @@ On MS-Windows a leading "C:" will be included in "%f", even when using "%f:".
|
||||
This means that a file name which is a single alphabetical letter will not be
|
||||
detected.
|
||||
|
||||
The "%b" conversion is used to parse a buffer number. This is useful for
|
||||
referring to lines in a scratch buffer or a buffer with no name. If a buffer
|
||||
with the matching number doesn't exist, then that line is used as a non-error
|
||||
line.
|
||||
|
||||
The "%p" conversion is normally followed by a "^". It's used for compilers
|
||||
that output a line like: >
|
||||
^
|
||||
|
||||
@@ -1149,8 +1149,8 @@ Profiling should give a good indication of where time is spent, but keep in
|
||||
mind there are various things that may clobber the results:
|
||||
|
||||
- The accuracy of the time measured depends on the gettimeofday(), or
|
||||
clock_gettime if available, system function. The accuracy ranges from 1/100
|
||||
second to nanoseconds. With clock_gettime the times are displayed in
|
||||
clock_gettime() if available, system function. The accuracy ranges from
|
||||
1/100 second to nanoseconds. With clock_gettime() the times are displayed in
|
||||
nanoseconds, otherwise microseconds. You can use `has("prof_nsec")`.
|
||||
|
||||
- Real elapsed time is measured, if other processes are busy they may cause
|
||||
|
||||
@@ -191,16 +191,16 @@ windows can be given this behavior by setting the (window-specific)
|
||||
other 'scrollbind' windows are scrolled the same amount, if possible. The
|
||||
behavior of 'scrollbind' can be modified by the 'scrollopt' option.
|
||||
|
||||
When using the scrollbars, the binding only happens when scrolling the window
|
||||
with focus (where the cursor is). You can use this to avoid scroll-binding
|
||||
for a moment without resetting options.
|
||||
When using the scrollbars or the mouse wheel, the binding only happens when
|
||||
scrolling the window with focus (where the cursor is). You can use this to
|
||||
avoid scroll-binding for a moment without resetting options.
|
||||
|
||||
When a window also has the 'diff' option set, the scroll-binding uses the
|
||||
differences between the two buffers to synchronize the position precisely.
|
||||
Otherwise the following method is used.
|
||||
|
||||
*scrollbind-relative*
|
||||
Each 'scrollbind' window keeps track of its "relative offset," which can be
|
||||
Each 'scrollbind' window keeps track of its "relative offset", which can be
|
||||
thought of as the difference between the current window's vertical scroll
|
||||
position and the other window's vertical scroll position. When one of the
|
||||
'scrollbind' windows is asked to vertically scroll past the beginning or end
|
||||
@@ -224,9 +224,10 @@ option.
|
||||
|
||||
*scrollbind-quickadj*
|
||||
The 'scrollbind' flag is meaningful when using keyboard commands to vertically
|
||||
scroll a window, and also meaningful when using the vertical scrollbar of the
|
||||
window which has the cursor focus. However, when using the vertical scrollbar
|
||||
of a window which doesn't have the cursor focus, 'scrollbind' is ignored.
|
||||
scroll a window, and is also meaningful when using the vertical scrollbar or
|
||||
the mouse wheel in the window which has the cursor focus. However, when using
|
||||
the vertical scrollbar or the mouse wheel in a window which doesn't have the
|
||||
cursor focus, 'scrollbind' is ignored.
|
||||
This allows quick adjustment of the relative offset of 'scrollbind' windows.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.0. Last change: 2023 May 30
|
||||
*starting.txt* For Vim version 9.0. Last change: 2023 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -249,10 +249,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
*-Z* *restricted-mode* *E145* *E981*
|
||||
-Z Restricted mode. All commands that make use of an external
|
||||
shell are disabled. This includes suspending with CTRL-Z,
|
||||
":sh", filtering, the system() function, backtick expansion
|
||||
":sh", filtering, the |system()| function, backtick expansion
|
||||
and libcall().
|
||||
Also disallowed are delete(), rename(), mkdir(), job_start(),
|
||||
etc.
|
||||
Also disallowed are |delete()|, |rename()|, |mkdir()|,
|
||||
|job_start()|, |setenv()| etc.
|
||||
Interfaces, such as Python, Ruby and Lua, are also disabled,
|
||||
since they could be used to execute shell commands. Perl uses
|
||||
the Safe module.
|
||||
@@ -348,7 +348,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
Start logging and write entries to {filename}.
|
||||
This works like calling `ch_logfile({filename}, 'ao')` very
|
||||
early during startup.
|
||||
{only available with the |+eval| feature}
|
||||
{only available with the |+eval| and |+channel| feature}
|
||||
|
||||
*-D*
|
||||
-D Debugging. Go to debugging mode when executing the first
|
||||
@@ -1704,6 +1704,6 @@ most of the information will be restored).
|
||||
If you get the |press-enter| prompt you can press "q"
|
||||
and still get the prompt to enter a file number.
|
||||
Use ! to abandon a modified buffer. |abandon|
|
||||
{not when compiled with tiny or small features}
|
||||
{not when compiled with tiny features}
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -2797,7 +2797,7 @@ The first option implies the second one.
|
||||
For highlighted trailing whitespace and mix of spaces and tabs: >
|
||||
:let python_space_error_highlight = 1
|
||||
|
||||
If you want all possible Python highlighting:
|
||||
If you want all possible Python highlighting: >
|
||||
:let python_highlight_all = 1
|
||||
This has the same effect as setting python_space_error_highlight and
|
||||
unsetting all the other ones.
|
||||
|
||||
@@ -1483,6 +1483,7 @@ $quote eval.txt /*$quote*
|
||||
+wildmenu various.txt /*+wildmenu*
|
||||
+windows various.txt /*+windows*
|
||||
+writebackup various.txt /*+writebackup*
|
||||
+xattr various.txt /*+xattr*
|
||||
+xfontset various.txt /*+xfontset*
|
||||
+xim various.txt /*+xim*
|
||||
+xpm various.txt /*+xpm*
|
||||
@@ -3208,6 +3209,7 @@ $quote eval.txt /*$quote*
|
||||
:set-inv options.txt /*:set-inv*
|
||||
:set-termcap options.txt /*:set-termcap*
|
||||
:set-verbose options.txt /*:set-verbose*
|
||||
:set= options.txt /*:set=*
|
||||
:set^= options.txt /*:set^=*
|
||||
:set_env options.txt /*:set_env*
|
||||
:setf options.txt /*:setf*
|
||||
@@ -4456,7 +4458,7 @@ E136 starting.txt /*E136*
|
||||
E1360 vim9class.txt /*E1360*
|
||||
E1361 syntax.txt /*E1361*
|
||||
E1362 vim9class.txt /*E1362*
|
||||
E1363 vim9class.txt /*E1363*
|
||||
E1363 vim9.txt /*E1363*
|
||||
E1364 recover.txt /*E1364*
|
||||
E1365 vim9class.txt /*E1365*
|
||||
E1366 vim9class.txt /*E1366*
|
||||
@@ -4479,14 +4481,17 @@ E1380 vim9class.txt /*E1380*
|
||||
E1381 vim9class.txt /*E1381*
|
||||
E1382 vim9class.txt /*E1382*
|
||||
E1383 vim9class.txt /*E1383*
|
||||
E1384 vim9class.txt /*E1384*
|
||||
E1385 vim9class.txt /*E1385*
|
||||
E1386 vim9class.txt /*E1386*
|
||||
E1387 vim9class.txt /*E1387*
|
||||
E1388 vim9class.txt /*E1388*
|
||||
E1389 vim9class.txt /*E1389*
|
||||
E139 message.txt /*E139*
|
||||
E1390 vim9class.txt /*E1390*
|
||||
E1391 eval.txt /*E1391*
|
||||
E1392 eval.txt /*E1392*
|
||||
E140 message.txt /*E140*
|
||||
E1400 builtin.txt /*E1400*
|
||||
E1401 builtin.txt /*E1401*
|
||||
E1402 builtin.txt /*E1402*
|
||||
E1403 builtin.txt /*E1403*
|
||||
E1404 builtin.txt /*E1404*
|
||||
E1405 builtin.txt /*E1405*
|
||||
E141 message.txt /*E141*
|
||||
E142 message.txt /*E142*
|
||||
E143 autocmd.txt /*E143*
|
||||
@@ -4498,6 +4503,16 @@ E148 repeat.txt /*E148*
|
||||
E149 helphelp.txt /*E149*
|
||||
E15 eval.txt /*E15*
|
||||
E150 helphelp.txt /*E150*
|
||||
E1500 builtin.txt /*E1500*
|
||||
E1501 builtin.txt /*E1501*
|
||||
E1502 builtin.txt /*E1502*
|
||||
E1503 builtin.txt /*E1503*
|
||||
E1504 builtin.txt /*E1504*
|
||||
E1505 builtin.txt /*E1505*
|
||||
E1506 editing.txt /*E1506*
|
||||
E1507 builtin.txt /*E1507*
|
||||
E1508 editing.txt /*E1508*
|
||||
E1509 editing.txt /*E1509*
|
||||
E151 helphelp.txt /*E151*
|
||||
E152 helphelp.txt /*E152*
|
||||
E153 helphelp.txt /*E153*
|
||||
@@ -4994,6 +5009,8 @@ E610 editing.txt /*E610*
|
||||
E611 eval.txt /*E611*
|
||||
E612 sign.txt /*E612*
|
||||
E613 print.txt /*E613*
|
||||
E614 builtin.txt /*E614*
|
||||
E616 builtin.txt /*E616*
|
||||
E617 options.txt /*E617*
|
||||
E618 print.txt /*E618*
|
||||
E619 print.txt /*E619*
|
||||
@@ -5077,6 +5094,7 @@ E69 pattern.txt /*E69*
|
||||
E690 eval.txt /*E690*
|
||||
E691 eval.txt /*E691*
|
||||
E692 eval.txt /*E692*
|
||||
E693 builtin.txt /*E693*
|
||||
E694 eval.txt /*E694*
|
||||
E695 eval.txt /*E695*
|
||||
E696 eval.txt /*E696*
|
||||
@@ -5090,6 +5108,7 @@ E702 builtin.txt /*E702*
|
||||
E703 eval.txt /*E703*
|
||||
E704 eval.txt /*E704*
|
||||
E705 eval.txt /*E705*
|
||||
E706 builtin.txt /*E706*
|
||||
E707 eval.txt /*E707*
|
||||
E708 eval.txt /*E708*
|
||||
E709 eval.txt /*E709*
|
||||
@@ -5923,6 +5942,7 @@ added-7.3 version7.txt /*added-7.3*
|
||||
added-7.4 version7.txt /*added-7.4*
|
||||
added-8.1 version8.txt /*added-8.1*
|
||||
added-8.2 version8.txt /*added-8.2*
|
||||
added-9.1 version9.txt /*added-9.1*
|
||||
added-BeOS version5.txt /*added-BeOS*
|
||||
added-Mac version5.txt /*added-Mac*
|
||||
added-VMS version5.txt /*added-VMS*
|
||||
@@ -6303,6 +6323,7 @@ changed-7.3 version7.txt /*changed-7.3*
|
||||
changed-7.4 version7.txt /*changed-7.4*
|
||||
changed-8.1 version8.txt /*changed-8.1*
|
||||
changed-8.2 version8.txt /*changed-8.2*
|
||||
changed-9.1 version9.txt /*changed-9.1*
|
||||
changelist motion.txt /*changelist*
|
||||
changelog.vim syntax.txt /*changelog.vim*
|
||||
changenr() builtin.txt /*changenr()*
|
||||
@@ -6475,6 +6496,7 @@ complete-items insert.txt /*complete-items*
|
||||
complete-popup insert.txt /*complete-popup*
|
||||
complete-popuphidden insert.txt /*complete-popuphidden*
|
||||
complete-script-local-functions cmdline.txt /*complete-script-local-functions*
|
||||
complete-set-option cmdline.txt /*complete-set-option*
|
||||
complete_CTRL-E insert.txt /*complete_CTRL-E*
|
||||
complete_CTRL-Y insert.txt /*complete_CTRL-Y*
|
||||
complete_add() builtin.txt /*complete_add()*
|
||||
@@ -6490,6 +6512,7 @@ conceal syntax.txt /*conceal*
|
||||
confirm() builtin.txt /*confirm()*
|
||||
connection-refused message.txt /*connection-refused*
|
||||
console-menus gui.txt /*console-menus*
|
||||
constructor vim9class.txt /*constructor*
|
||||
context.vim ft_context.txt /*context.vim*
|
||||
control intro.txt /*control*
|
||||
conversion-server mbyte.txt /*conversion-server*
|
||||
@@ -6663,6 +6686,7 @@ debugger.txt debugger.txt /*debugger.txt*
|
||||
dec-mouse options.txt /*dec-mouse*
|
||||
decada_members ft_ada.txt /*decada_members*
|
||||
deepcopy() builtin.txt /*deepcopy()*
|
||||
default-constructor vim9class.txt /*default-constructor*
|
||||
defaults.vim starting.txt /*defaults.vim*
|
||||
defaults.vim-explained usr_05.txt /*defaults.vim-explained*
|
||||
define-function userfunc.txt /*define-function*
|
||||
@@ -8914,6 +8938,7 @@ netrw.vim pi_netrw.txt /*netrw.vim*
|
||||
netrw_filehandler pi_netrw.txt /*netrw_filehandler*
|
||||
netterm-mouse options.txt /*netterm-mouse*
|
||||
network pi_netrw.txt /*network*
|
||||
new() vim9class.txt /*new()*
|
||||
new-5 version5.txt /*new-5*
|
||||
new-6 version6.txt /*new-6*
|
||||
new-7 version7.txt /*new-7*
|
||||
@@ -8974,6 +8999,7 @@ new-operator-mod version6.txt /*new-operator-mod*
|
||||
new-options-5.2 version5.txt /*new-options-5.2*
|
||||
new-options-5.4 version5.txt /*new-options-5.4*
|
||||
new-other-8.2 version8.txt /*new-other-8.2*
|
||||
new-other-9.1 version9.txt /*new-other-9.1*
|
||||
new-perl-python version5.txt /*new-perl-python*
|
||||
new-persistent-undo version7.txt /*new-persistent-undo*
|
||||
new-plugins version6.txt /*new-plugins*
|
||||
@@ -9134,6 +9160,7 @@ patches-8 version8.txt /*patches-8*
|
||||
patches-8.1 version8.txt /*patches-8.1*
|
||||
patches-8.2 version8.txt /*patches-8.2*
|
||||
patches-9 version9.txt /*patches-9*
|
||||
patches-9.1 version9.txt /*patches-9.1*
|
||||
patches-after-8.2 version9.txt /*patches-after-8.2*
|
||||
pathshorten() builtin.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
@@ -9303,6 +9330,8 @@ printf-s builtin.txt /*printf-s*
|
||||
printf-x builtin.txt /*printf-x*
|
||||
printing print.txt /*printing*
|
||||
printing-formfeed print.txt /*printing-formfeed*
|
||||
private-method vim9class.txt /*private-method*
|
||||
private-variable vim9class.txt /*private-variable*
|
||||
profile repeat.txt /*profile*
|
||||
profiling repeat.txt /*profiling*
|
||||
profiling-variable eval.txt /*profiling-variable*
|
||||
@@ -10911,6 +10940,7 @@ version-8.0 version8.txt /*version-8.0*
|
||||
version-8.1 version8.txt /*version-8.1*
|
||||
version-8.2 version8.txt /*version-8.2*
|
||||
version-9.0 version9.txt /*version-9.0*
|
||||
version-9.1 version9.txt /*version-9.1*
|
||||
version-variable eval.txt /*version-variable*
|
||||
version4.txt version4.txt /*version4.txt*
|
||||
version5.txt version5.txt /*version5.txt*
|
||||
@@ -10926,6 +10956,7 @@ version8.1 version8.txt /*version8.1*
|
||||
version8.2 version8.txt /*version8.2*
|
||||
version8.txt version8.txt /*version8.txt*
|
||||
version9.0 version9.txt /*version9.0*
|
||||
version9.1 version9.txt /*version9.1*
|
||||
version9.txt version9.txt /*version9.txt*
|
||||
versionlong-variable eval.txt /*versionlong-variable*
|
||||
vi intro.txt /*vi*
|
||||
@@ -10944,6 +10975,7 @@ vim-8.1 version8.txt /*vim-8.1*
|
||||
vim-8.2 version8.txt /*vim-8.2*
|
||||
vim-9 version9.txt /*vim-9*
|
||||
vim-9.0 version9.txt /*vim-9.0*
|
||||
vim-9.1 version9.txt /*vim-9.1*
|
||||
vim-additions vi_diff.txt /*vim-additions*
|
||||
vim-announce intro.txt /*vim-announce*
|
||||
vim-arguments starting.txt /*vim-arguments*
|
||||
@@ -10978,6 +11010,7 @@ vim9-differences vim9.txt /*vim9-differences*
|
||||
vim9-export vim9.txt /*vim9-export*
|
||||
vim9-false-true vim9.txt /*vim9-false-true*
|
||||
vim9-final vim9.txt /*vim9-final*
|
||||
vim9-func-declaration vim9.txt /*vim9-func-declaration*
|
||||
vim9-function-defined-later vim9.txt /*vim9-function-defined-later*
|
||||
vim9-gotchas vim9.txt /*vim9-gotchas*
|
||||
vim9-ignored-argument vim9.txt /*vim9-ignored-argument*
|
||||
@@ -11203,6 +11236,7 @@ x-resources version5.txt /*x-resources*
|
||||
x11-clientserver remote.txt /*x11-clientserver*
|
||||
x11-cut-buffer gui_x11.txt /*x11-cut-buffer*
|
||||
x11-selection gui_x11.txt /*x11-selection*
|
||||
xattr editing.txt /*xattr*
|
||||
xf86conf.vim syntax.txt /*xf86conf.vim*
|
||||
xfontset mbyte.txt /*xfontset*
|
||||
xfree-xterm syntax.txt /*xfree-xterm*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 9.0. Last change: 2023 Jan 15
|
||||
*term.txt* For Vim version 9.0. Last change: 2023 Oct 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -104,6 +104,11 @@ pasted text. This way Vim can separate text that is pasted from characters
|
||||
that are typed. The pasted text is handled like when the middle mouse button
|
||||
is used, it is inserted literally and not interpreted as commands.
|
||||
|
||||
Please note: while bracketed paste is trying to prevent nasty side-effects
|
||||
from pasting (like the CTRL-C or <ESC> key), it's not a guaranteed security
|
||||
measure because different terminals may implement this mode slightly
|
||||
differently. You should still be careful with what you paste into Vim.
|
||||
|
||||
When the cursor is in the first column, the pasted text will be inserted
|
||||
before it. Otherwise the pasted text is appended after the cursor position.
|
||||
This means one cannot paste after the first column. Unfortunately Vim does
|
||||
@@ -122,6 +127,9 @@ If |t_PS| or |t_PE| is not set, then |t_BE| will not be used. This is to make
|
||||
sure that bracketed paste is not enabled when the escape codes surrounding
|
||||
pasted text cannot be recognized.
|
||||
|
||||
Note: bracketed paste mode will be disabled, when the 'esckeys' option is not
|
||||
set (also when the 'compatible' option is set).
|
||||
|
||||
If your terminal supports bracketed paste, but the options are not set
|
||||
automatically, you can try using something like this: >
|
||||
|
||||
|
||||
@@ -1485,8 +1485,9 @@ If there is no g:termdebug_config you can use: >
|
||||
Any value greater than 1 will set the Asm window height to that value.
|
||||
|
||||
*termdebug_variables_window*
|
||||
If you want the Var window shown by default, set the flag to 1.
|
||||
the "variables_window_height" entry can be used to set the window height: >
|
||||
If you want the Var window shown by default, set the "variables_window" flag
|
||||
to 1. The "variables_window_height" entry can be used to set the window
|
||||
height: >
|
||||
let g:termdebug_config['variables_window'] = 1
|
||||
let g:termdebug_config['variables_window_height'] = 15
|
||||
If there is no g:termdebug_config you can use: >
|
||||
@@ -1532,7 +1533,7 @@ The function will be called with the list of arguments so far, and a second
|
||||
argument that is the name of the pty.
|
||||
*gdb-version*
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface. The "new-ui" command requires gdb version 7.12 or later. if you
|
||||
interface. The "new-ui" command requires gdb version 7.12 or later. If you
|
||||
get this error:
|
||||
Undefined command: "new-ui". Try "help".~
|
||||
Then your gdb is too old.
|
||||
|
||||
@@ -21,7 +21,7 @@ Vim can be tested after building it, usually with "make test".
|
||||
The tests are located in the directory "src/testdir".
|
||||
|
||||
There are two types of tests added over time:
|
||||
test20.in oldest, only for tiny and small builds
|
||||
test20.in oldest, only for tiny builds
|
||||
test_something.vim new style tests
|
||||
|
||||
*new-style-testing*
|
||||
|
||||
@@ -120,16 +120,9 @@ Upcoming larger works:
|
||||
- example plugin: https://github.com/uga-rosa/dps-vsctm.vim
|
||||
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
Further Vim9 improvements:
|
||||
- Classes and Interfaces. See |vim9-classes|
|
||||
- Change access: public by default, private by prefixing "_".
|
||||
Check for error: can't have same name twice (ignoring "_" prefix).
|
||||
- Private methods?
|
||||
either: private def Func()
|
||||
or: def _Func()
|
||||
Perhaps use "private" keyword instead of "_" prefix?
|
||||
- "final" object members - can only be set in the constructor.
|
||||
- Support export/import of classes and interfaces.
|
||||
- Cannot use class type of itself in the method (Issue #12369)
|
||||
- Cannot use an object method in a lambda #12417
|
||||
Define all methods before compiling them?
|
||||
@@ -137,13 +130,6 @@ Further Vim9 improvements, possibly after launch:
|
||||
Also #12081 first case.
|
||||
- Using list of functions does not work #12081 (repro in later message).
|
||||
- First argument of call() cannot be "obj.Func". (#11865)
|
||||
- null_object - constant type 17 not supported (Issue #12043)
|
||||
- problem compiling object method call as function call argument (Issue
|
||||
#12081)
|
||||
- Make ":defcompile ClassName" compile all functions and methods in the
|
||||
class.
|
||||
- Forward declaration of a class? E.g. for Clone() function.
|
||||
email lifepillar 2023 Mar 26
|
||||
- Getting member of variable with "any" type should be handled at runtime.
|
||||
Remove temporary solution from #12096 / patch 9.0.1375.
|
||||
- "obj.Method()" does not always work in a compiled function, assumes "obj"
|
||||
@@ -151,18 +137,21 @@ Further Vim9 improvements, possibly after launch:
|
||||
Issue #11822: any.Func() can be a dict or an object call, need to handle
|
||||
this at runtime. Also see #12198 for an example.
|
||||
Possibly issue #11981 can be fixed at the same time (has two examples).
|
||||
- accept line breaks in member initialization. #11957
|
||||
- Support export/import of classes and interfaces.
|
||||
- Make ":defcompile ClassName" compile all functions and methods in the
|
||||
class.
|
||||
- Forward declaration of a class? E.g. for Clone() function.
|
||||
Email lifepillar 2023 Mar 26
|
||||
- object empty(), len() - can class define a method to be used for them?
|
||||
- add to help: when using a default new() method then reordering object
|
||||
members may cause trouble. Can define new() without arguments to avoid.
|
||||
- TODO items: check types for "implements" - members and methods
|
||||
- When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should
|
||||
either work or given an error. possibly give an error now and implement it
|
||||
either work or given an error. Possibly give an error now and implement it
|
||||
later (using a typedef). #12006
|
||||
- how about lock/unlock?
|
||||
- When checking "implements" also check types of members and function args.
|
||||
- For chaining, allow using the class name as type for function return
|
||||
value.
|
||||
- Implement "specifies" interface
|
||||
- Implement generics
|
||||
- Add "assignable" (class or child)?
|
||||
- More efficient way for interface member index than iterating over list?
|
||||
@@ -5956,8 +5945,6 @@ Various improvements:
|
||||
7 Instead of filtering errors with a shell script it should be possible to
|
||||
do this with Vim script. A function that filters the raw text that comes
|
||||
from the 'makeprg'?
|
||||
- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
|
||||
Govindachar)
|
||||
7 Allow a window not to have a statusline. Makes it possible to use a
|
||||
window as a buffer-tab selection.
|
||||
8 Allow non-active windows to have a different statusline. (Yakov Lerner)
|
||||
|
||||
@@ -443,7 +443,8 @@ Any return value of the deferred function is discarded. The function cannot
|
||||
be followed by anything, such as "->func" or ".member". Currently `:defer
|
||||
GetArg()->TheFunc()` does not work, it may work in a later version.
|
||||
|
||||
Errors are reported but do not cause aborting execution of deferred functions.
|
||||
Errors are reported but do not cause aborting execution of deferred functions
|
||||
or altering execution outside of deferred functions.
|
||||
|
||||
No range is accepted. The function can be a partial with extra arguments, but
|
||||
not with a dictionary. *E1300*
|
||||
|
||||
@@ -877,7 +877,8 @@ Other computation: *bitwise-function*
|
||||
srand() initialize seed used by rand()
|
||||
|
||||
Variables: *var-functions*
|
||||
instanceof() check if a variable is an instance of a given class
|
||||
instanceof() check if a variable is an instance of a given
|
||||
class
|
||||
type() type of a variable as a number
|
||||
typename() type of a variable as text
|
||||
islocked() check if a variable is locked
|
||||
|
||||
@@ -173,9 +173,8 @@ enabled from the Makefile.
|
||||
|
||||
--prefix={directory} Top directory where to install Vim.
|
||||
|
||||
--with-features=tiny Compile with many features disabled.
|
||||
--with-features=small Compile with some features disabled.
|
||||
--with-features=big Compile with more features enabled.
|
||||
--with-features=tiny Compile with some features disabled.
|
||||
--with-features=normal Compile with more features enabled.
|
||||
--with-features=huge Compile with most features enabled.
|
||||
See |+feature-list| for which feature
|
||||
is enabled in which case.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.0. Last change: 2022 Dec 13
|
||||
*various.txt* For Vim version 9.0. Last change: 2023 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -320,15 +320,13 @@ g8 Print the hex values of the bytes used in the
|
||||
The first column shows the smallest version in which
|
||||
they are included:
|
||||
T tiny (always)
|
||||
S small
|
||||
N normal
|
||||
B big
|
||||
H huge
|
||||
m manually enabled or depends on other features
|
||||
- never, feature was removed
|
||||
(none) system dependent
|
||||
Thus if a feature is marked with "N", it is included
|
||||
in the normal, big and huge versions of Vim.
|
||||
in the normal and huge versions of Vim.
|
||||
|
||||
*+feature-list*
|
||||
*+acl* |ACL| support included
|
||||
@@ -451,7 +449,8 @@ m *+python/dyn* Python 2 interface |python-dynamic| |/dyn|
|
||||
m *+python3* Python 3 interface |python|
|
||||
m *+python3/dyn* Python 3 interface |python-dynamic| |/dyn|
|
||||
m *+python3/dyn-stable*
|
||||
Python 3 interface |python-dynamic| |python-stable| |/dyn|
|
||||
Python 3 interface |python-dynamic| |python-stable|
|
||||
|/dyn|
|
||||
N *+quickfix* |:make| and |quickfix| commands
|
||||
N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout,
|
||||
'redrawtime' option
|
||||
@@ -503,6 +502,7 @@ T *+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|
|
||||
N *+xattr* compiled with extended attribute support (Linux only)
|
||||
*+xpm* pixmap support
|
||||
m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support|
|
||||
*+xsmp* XSMP (X session management) support
|
||||
|
||||
@@ -1198,7 +1198,7 @@ Solution: Use "curtab" if "tp" is NULL. (closes #5475)
|
||||
Files: src/evalwindow.c, src/testdir/test_getvar.vim
|
||||
|
||||
Patch 8.2.0118
|
||||
Problem: Crash when cycling to buffers involving popup window .
|
||||
Problem: Crash when cycling to buffers involving popup window.
|
||||
Solution: Do not decrement buffer reference count.
|
||||
Files: src/popupwin.c, src/testdir/test_popupwin.vim,
|
||||
src/testdir/dumps/Test_popupwin_infopopup_7.dump
|
||||
@@ -31679,4 +31679,85 @@ Solution: make menu generation script use Vim9 script, fix errors.
|
||||
Files: runtime/makemenu.vim
|
||||
|
||||
|
||||
==============================================================================
|
||||
VERSION 9.1 *version-9.1* *version9.1* *vim-9.1*
|
||||
|
||||
This section is about improvements made between version 9.0 and 9.1.
|
||||
|
||||
This release has hundreds of bug fixes, there are a few new features and there
|
||||
are many minor improvements.
|
||||
|
||||
Vim9 classes
|
||||
------------
|
||||
|
||||
Virtual text
|
||||
------------
|
||||
|
||||
Smooth Scroll
|
||||
-------------
|
||||
|
||||
Other improvements *new-other-9.1*
|
||||
------------------
|
||||
|
||||
Changed *changed-9.1*
|
||||
-------
|
||||
|
||||
Added *added-9.1*
|
||||
-----
|
||||
|
||||
Various syntax, indent and other plugins were added.
|
||||
|
||||
Functions: ~
|
||||
|
||||
|err_teapot()| produce error 418 or 503
|
||||
|getbufoneline()| get a one line from the specified buffer
|
||||
|getcellwidths()| get character cell width overrides
|
||||
|getmouseshape()| get name of the current mouse shape
|
||||
|getscriptinfo()| get list of sourced vim scripts
|
||||
|indexof()| index in a List or Blob of a true expression
|
||||
|instanceof()| check if a variable is an instance of a given class
|
||||
|keytrans()| translate internal key codes to be usable with |:map|
|
||||
|popup_findecho()| get window ID for popup used for |:echowindow|
|
||||
|setcmdline()| set the current command line
|
||||
|strutf16len()| number of UTF-16 code units in a string
|
||||
|swapfilelist()| list of existing swap files in 'directory'
|
||||
|test_mswin_event()| generate an MS-Windows event for testing
|
||||
|utf16idx()| UTF-16 index of a byte in a string
|
||||
|
||||
|
||||
Autocommands: ~
|
||||
|
||||
|TextChangedT| after a change was made to the text in Terminal mode
|
||||
|WinResized| after a window in the current tab page is resized
|
||||
|
||||
|
||||
Commands: ~
|
||||
|
||||
|:abstract| define an Vim9 abstract class
|
||||
|:class| start of a class specification
|
||||
|:defer| call function when current function is done
|
||||
|:echowindow| same as :echomsg, but use a popup window
|
||||
|:endinterface| end of an interface specification
|
||||
|:endclass| end of a class specification
|
||||
|:horizontal| following window command work horizontally
|
||||
|:interface| start of an interface specification
|
||||
|:public| prefix for a class or object member
|
||||
|:static| prefix for a class member or function
|
||||
|:this| prefix for an object member
|
||||
|
||||
|
||||
Options: ~
|
||||
|
||||
'jumpoptions' specifies how jumping is done
|
||||
'keyprotocol' what keyboard protocol to use for what terminal
|
||||
'lispoptions' changes how Lisp indenting is done
|
||||
'showcmdloc' where to show (partial) command
|
||||
'smoothscroll' scroll by screen lines when 'wrap' is set
|
||||
'splitkeep' determines scroll behavior for split windows
|
||||
|
||||
|
||||
Patches *patches-9.1*
|
||||
-------
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.0. Last change: 2023 Jun 10
|
||||
*vim9.txt* For Vim version 9.0. Last change: 2023 Oct 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1468,7 +1468,7 @@ return value) results in error *E1031* *E1186* .
|
||||
There is no array type, use list<{type}> instead. For a list constant an
|
||||
efficient implementation is used that avoids allocating a lot of small pieces
|
||||
of memory.
|
||||
*E1005* *E1007*
|
||||
*vim9-func-declaration* *E1005* *E1007*
|
||||
A partial and function can be declared in more or less specific ways:
|
||||
func any kind of function reference, no type
|
||||
checking for arguments or return value
|
||||
@@ -1487,13 +1487,14 @@ func({type}) function with argument type, does not return
|
||||
func({type}): {type} function with argument type and return type
|
||||
func(?{type}) function with type of optional argument, does
|
||||
not return a value
|
||||
func(...{type}) function with type of variable number of
|
||||
arguments, does not return a value
|
||||
func({type}, ?{type}, ...{type}): {type}
|
||||
func(...list<{type}>) function with type of list for variable number
|
||||
of arguments, does not return a value
|
||||
func({type}, ?{type}, ...list<{type}>): {type}
|
||||
function with:
|
||||
- type of mandatory argument
|
||||
- type of optional argument
|
||||
- type of variable number of arguments
|
||||
- type of list for variable number of
|
||||
arguments
|
||||
- return type
|
||||
|
||||
If the return type is "void" the function does not return a value.
|
||||
@@ -1557,7 +1558,7 @@ string to a number.
|
||||
|
||||
If a type is given where it is not expected you can get *E1272* .
|
||||
|
||||
If a type is incomplete you get *E1363*, e.g. when you have an object for
|
||||
If a type is incomplete you get *E1363* , e.g. when you have an object for
|
||||
which the class is not known (usually that is a null object).
|
||||
|
||||
Type inference ~
|
||||
@@ -1669,6 +1670,26 @@ Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
|
||||
|flattennew()| instead. Since |flatten()| is intended to always change the
|
||||
type, it can not be used in Vim9 script.
|
||||
|
||||
Assigning to a funcref with specified arguments (see |vim9-func-declaration|)
|
||||
does strict type checking of the arguments. For variable number of arguments
|
||||
the type must match: >
|
||||
var FuncRef: func(string, number, bool): number
|
||||
FuncRef = (v1: string, v2: number, v3: bool) => 777 # OK
|
||||
FuncRef = (v1: string, v2: number, v3: number) => 777 # Error!
|
||||
# variable number of arguments must have same type
|
||||
var FuncVA: func(...list<string>): number
|
||||
FuncVA = (...v: list<number>): number => v # Error!
|
||||
FuncVA = (...v: list<any>): number => v # OK, `any` runtime check
|
||||
FuncVA = (v1: string, v: string2): number => 333 # Error!
|
||||
FuncVA = (v: list<string>): number => 3 # Error!
|
||||
|
||||
If the destinataion funcref has no specified arguments, then there is no
|
||||
argument type checking: >
|
||||
var FuncUnknownArgs: func: number
|
||||
FuncUnknownArgs = (v): number => v # OK
|
||||
FuncUnknownArgs = (v1: string, v2: string): number => 3 # OK
|
||||
FuncUnknownArgs = (...v1: list<string>): number => 333 # OK
|
||||
<
|
||||
*E1211* *E1217* *E1218* *E1219* *E1220* *E1221*
|
||||
*E1222* *E1223* *E1224* *E1225* *E1226* *E1227*
|
||||
*E1228* *E1238* *E1250* *E1251* *E1252* *E1256*
|
||||
@@ -1756,7 +1777,7 @@ Exporting an item can be written as: >
|
||||
export interface MyClass ...
|
||||
< *E1043* *E1044*
|
||||
As this suggests, only constants, variables, `:def` functions and classes can
|
||||
be exported. {not implemented yet: class, interface}
|
||||
be exported.
|
||||
|
||||
*E1042*
|
||||
`:export` can only be used in Vim9 script, at the script level.
|
||||
@@ -1789,7 +1810,7 @@ filename. For example: >
|
||||
Then you can use "that.item", etc. You are free to choose the name "that".
|
||||
Use something that will be recognized as referring to the imported script.
|
||||
Avoid command names, command modifiers and builtin function names, because the
|
||||
name will shadow them. Better not start the name starts with a capital
|
||||
name will shadow them. It's better not to start the name with a capital
|
||||
letter, since it can then also shadow global user commands and functions.
|
||||
Also, you cannot use the name for something else in the script, such as a
|
||||
function or variable name.
|
||||
@@ -1862,9 +1883,9 @@ However, the namespace cannot be resolved on its own: >
|
||||
<
|
||||
This also affects the use of |<SID>| in the legacy mapping context. Since
|
||||
|<SID>| is only a valid prefix for a function and NOT for a namespace, you
|
||||
cannot use it
|
||||
to scope a function in a script local namespace. Instead of prefixing the
|
||||
function with |<SID>| you should use|<ScriptCmd>|. For example: >
|
||||
cannot use it to scope a function in a script local namespace. Instead of
|
||||
prefixing the function with |<SID>| you should use|<ScriptCmd>|. For example:
|
||||
>
|
||||
noremap ,a <ScriptCmd>:call s:that.OtherFunc()<CR>
|
||||
<
|
||||
*:import-cycle*
|
||||
|
||||
@@ -28,7 +28,8 @@ Vim9 classes, objects, interfaces, types and enums.
|
||||
The fancy term is "object-oriented programming". You can find lots of study
|
||||
material on this subject. Here we document what |Vim9| script provides,
|
||||
assuming you know the basics already. Added are helpful hints about how to
|
||||
use this functionality effectively.
|
||||
use this functionality effectively. Vim9 classes and objects cannot be used
|
||||
in legacy Vim scripts and legacy functions.
|
||||
|
||||
The basic item is an object:
|
||||
- An object stores state. It contains one or more variables that can each
|
||||
@@ -37,7 +38,7 @@ The basic item is an object:
|
||||
functions are invoked "on the object", which is what sets it apart from the
|
||||
traditional separation of data and code that manipulates the data.
|
||||
- An object has a well defined interface, with typed member variables and
|
||||
member functions.
|
||||
methods.
|
||||
- Objects are created from a class and all objects have the same interface.
|
||||
This does not change at runtime, it is not dynamic.
|
||||
|
||||
@@ -103,7 +104,7 @@ You can create an object from this class with the new() method: >
|
||||
|
||||
var pos = TextPosition.new(1, 1)
|
||||
|
||||
The object members "lnum" and "col" can be accessed directly: >
|
||||
The object variables "lnum" and "col" can be accessed directly: >
|
||||
|
||||
echo $'The text position is ({pos.lnum}, {pos.col})'
|
||||
< *E1317* *E1327*
|
||||
@@ -111,28 +112,30 @@ If you have been using other object-oriented languages you will notice that
|
||||
in Vim the object members are consistently referred to with the "this."
|
||||
prefix. This is different from languages like Java and TypeScript. The
|
||||
naming convention makes the object members easy to spot. Also, when a
|
||||
variable does not have the "this." prefix you know it is not an object member.
|
||||
variable does not have the "this." prefix you know it is not an object
|
||||
variable.
|
||||
|
||||
|
||||
Member write access ~
|
||||
Object variable write access ~
|
||||
|
||||
Now try to change an object member directly: >
|
||||
Now try to change an object variable directly: >
|
||||
|
||||
pos.lnum = 9
|
||||
< *E1335*
|
||||
This will give you an error! That is because by default object members can be
|
||||
read but not set. That's why the TextPosition class provides a method for it: >
|
||||
This will give you an error! That is because by default object variables can
|
||||
be read but not set. That's why the TextPosition class provides a method for
|
||||
it: >
|
||||
|
||||
pos.SetLnum(9)
|
||||
|
||||
Allowing to read but not set an object member is the most common and safest
|
||||
Allowing to read but not set an object variable is the most common and safest
|
||||
way. Most often there is no problem using a value, while setting a value may
|
||||
have side effects that need to be taken care of. In this case, the SetLnum()
|
||||
method could check if the line number is valid and either give an error or use
|
||||
the closest valid value.
|
||||
*:public* *E1331*
|
||||
If you don't care about side effects and want to allow the object member to be
|
||||
changed at any time, you can make it public: >
|
||||
If you don't care about side effects and want to allow the object variable to
|
||||
be changed at any time, you can make it public: >
|
||||
|
||||
public this.lnum: number
|
||||
public this.col: number
|
||||
@@ -140,23 +143,23 @@ changed at any time, you can make it public: >
|
||||
Now you don't need the SetLnum(), SetCol() and SetPosition() methods, setting
|
||||
"pos.lnum" directly above will no longer give an error.
|
||||
*E1326*
|
||||
If you try to set an object member that doesn't exist you get an error: >
|
||||
If you try to set an object variable that doesn't exist you get an error: >
|
||||
pos.other = 9
|
||||
< E1326: Member not found on object "TextPosition": other ~
|
||||
|
||||
*E1376*
|
||||
A object member cannot be accessed using the class name.
|
||||
A object variable cannot be accessed using the class name.
|
||||
|
||||
Private members ~
|
||||
*E1332* *E1333*
|
||||
On the other hand, if you do not want the object members to be read directly,
|
||||
Private variables ~
|
||||
*private-variable* *E1332* *E1333*
|
||||
On the other hand, if you do not want the object variables to be read directly,
|
||||
you can make them private. This is done by prefixing an underscore to the
|
||||
name: >
|
||||
|
||||
this._lnum: number
|
||||
this._col number
|
||||
|
||||
Now you need to provide methods to get the value of the private members.
|
||||
Now you need to provide methods to get the value of the private variables.
|
||||
These are commonly called getters. We recommend using a name that starts with
|
||||
"Get": >
|
||||
|
||||
@@ -168,7 +171,7 @@ These are commonly called getters. We recommend using a name that starts with
|
||||
return this._col
|
||||
enddef
|
||||
|
||||
This example isn't very useful, the members might as well have been public.
|
||||
This example isn't very useful, the variables might as well have been public.
|
||||
It does become useful if you check the value. For example, restrict the line
|
||||
number to the total number of lines: >
|
||||
|
||||
@@ -180,7 +183,7 @@ number to the total number of lines: >
|
||||
enddef
|
||||
<
|
||||
Private methods ~
|
||||
*E1366*
|
||||
*private-method* *E1366*
|
||||
If you want object methods to be accessible only from other methods of the
|
||||
same class and not used from outside the class, then you can make them
|
||||
private. This is done by prefixing the method name with an underscore: >
|
||||
@@ -201,9 +204,9 @@ the above class): >
|
||||
a._Foo()
|
||||
<
|
||||
Simplifying the new() method ~
|
||||
|
||||
Many constructors take values for the object members. Thus you very often see
|
||||
this pattern: >
|
||||
*new()* *constructor*
|
||||
Many constructors take values for the object variables. Thus you very often
|
||||
see this pattern: >
|
||||
|
||||
class SomeClass
|
||||
this.lnum: number
|
||||
@@ -214,20 +217,22 @@ this pattern: >
|
||||
this.col = col
|
||||
enddef
|
||||
endclass
|
||||
|
||||
Not only is this text you need to write, it also has the type of each member
|
||||
twice. Since this is so common a shorter way to write new() is provided: >
|
||||
<
|
||||
*E1390*
|
||||
Not only is this text you need to write, it also has the type of each
|
||||
variables twice. Since this is so common a shorter way to write new() is
|
||||
provided: >
|
||||
|
||||
def new(this.lnum, this.col)
|
||||
enddef
|
||||
|
||||
The semantics are easy to understand: Providing the object member name,
|
||||
The semantics are easy to understand: Providing the object variable name,
|
||||
including "this.", as the argument to new() means the value provided in the
|
||||
new() call is assigned to that object member. This mechanism comes from the
|
||||
new() call is assigned to that object variable. This mechanism comes from the
|
||||
Dart language.
|
||||
|
||||
Putting together this way of using new() and making the members public results
|
||||
in a much shorter class definition than what we started with: >
|
||||
Putting together this way of using new() and making the variables public
|
||||
results in a much shorter class definition than what we started with: >
|
||||
|
||||
class TextPosition
|
||||
public this.lnum: number
|
||||
@@ -244,20 +249,25 @@ in a much shorter class definition than what we started with: >
|
||||
|
||||
The sequence of constructing a new object is:
|
||||
1. Memory is allocated and cleared. All values are zero/false/empty.
|
||||
2. For each declared member that has an initializer, the expression is
|
||||
evaluated and assigned to the member. This happens in the sequence the
|
||||
members are declared in the class.
|
||||
2. For each declared object variable that has an initializer, the expression
|
||||
is evaluated and assigned to the variable. This happens in the sequence
|
||||
the variables are declared in the class.
|
||||
3. Arguments in the new() method in the "this.name" form are assigned.
|
||||
4. The body of the new() method is executed.
|
||||
|
||||
If the class extends a parent class, the same thing happens. In the second
|
||||
step the members of the parent class are done first. There is no need to call
|
||||
"super()" or "new()" on the parent.
|
||||
step the object variables of the parent class are initialized first. There is
|
||||
no need to call "super()" or "new()" on the parent.
|
||||
|
||||
*E1365*
|
||||
*E1365*
|
||||
When defining the new() method the return type should not be specified. It
|
||||
always returns an object of the class.
|
||||
|
||||
*E1386*
|
||||
When invoking an object method, the method name should be preceded by the
|
||||
object variable name. A object method cannot be invoked using the class
|
||||
name.
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. Class Variables and Methods *Vim9-class-member*
|
||||
@@ -275,10 +285,10 @@ prefix in the class where they are defined: >
|
||||
enddef
|
||||
endclass
|
||||
< *E1340* *E1341*
|
||||
Since the name is used as-is, shadowing the name by a function argument name
|
||||
Since the name is used as-is, shadowing the name by a method argument name
|
||||
or local variable name is not allowed.
|
||||
|
||||
*E1374* *E1375*
|
||||
*E1374* *E1375* *E1384* *E1385*
|
||||
To access a class member outside of the class where it is defined, the class
|
||||
name prefix must be used. A class member cannot be accessed using an object.
|
||||
|
||||
@@ -295,7 +305,7 @@ as the first character in the name, and it can be made public by prefixing
|
||||
*class-method*
|
||||
Class methods are also declared with "static". They can use the class
|
||||
variables but they have no access to the object variables, they cannot use the
|
||||
"this" keyword.
|
||||
"this" keyword:
|
||||
>
|
||||
class OtherThing
|
||||
this.size: number
|
||||
@@ -394,17 +404,21 @@ does not have any new() method. *E1359*
|
||||
|
||||
*abstract-method* *E1371* *E1372*
|
||||
An abstract method can be defined in an abstract class by using the "abstract"
|
||||
prefix when defining the function: >
|
||||
prefix when defining the method: >
|
||||
|
||||
abstract class Shape
|
||||
abstract def Draw()
|
||||
abstract static def SetColor()
|
||||
endclass
|
||||
<
|
||||
A static method in an abstract class cannot be an abstract method.
|
||||
|
||||
*E1373*
|
||||
A class extending the abstract class must implement all the abstract methods.
|
||||
The signature (arguments, argument types and return type) must be exactly the
|
||||
same. Class methods in an abstract class can also be abstract methods.
|
||||
same. If the return type of a method is a class, then that class or one of
|
||||
its subclasses can be used in the extended method. Class methods in an
|
||||
abstract class can also be abstract methods.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -461,10 +475,10 @@ The interface name can be used as a type: >
|
||||
echo $'the surface is {shape.Surface()}'
|
||||
endfor
|
||||
<
|
||||
*E1378* *E1379* *E1380*
|
||||
An interface can have only instance variables (read-only and read-write
|
||||
access) and methods. An interface cannot contain private variables, private
|
||||
methods, class variables and class methods.
|
||||
*E1378* *E1379* *E1380* *E1387*
|
||||
An interface can contain only object methods and read-only object variables.
|
||||
An interface cannot contain read-write and private object variables, private
|
||||
object methods, class variables and class methods.
|
||||
|
||||
An interface can extend another interface using "extends". The sub-interface
|
||||
inherits all the instance variables and methods from the super interface.
|
||||
@@ -510,18 +524,21 @@ once. They can appear in any order, although this order is recommended: >
|
||||
implements InterfaceName, OtherInterface
|
||||
specifies SomeInterface
|
||||
< *E1355* *E1369*
|
||||
Each member and function name can be used only once. It is not possible to
|
||||
define a function with the same name and different type of arguments. It is
|
||||
not possible to use a public and private member variable with the same name.
|
||||
A object variable name used in a super class cannot be reused in a child
|
||||
class.
|
||||
Each variable and method name can be used only once. It is not possible to
|
||||
define a method with the same name and different type of arguments. It is not
|
||||
possible to use a public and private member variable with the same name. A
|
||||
object variable name used in a super class cannot be reused in a child class.
|
||||
|
||||
|
||||
Member Initialization ~
|
||||
If the type of a member is not explicitly specified in a class, then it is set
|
||||
to "any" during class definition. When an object is instantiated from the
|
||||
class, then the type of the member is set.
|
||||
Object Variable Initialization ~
|
||||
If the type of a variable is not explicitly specified in a class, then it is
|
||||
set to "any" during class definition. When an object is instantiated from the
|
||||
class, then the type of the variable is set.
|
||||
|
||||
The following reserved keyword names cannot be used as an object or class
|
||||
variable name: "super", "this", "true", "false", "null", "null_blob",
|
||||
"null_dict", "null_function", "null_list", "null_partial", "null_string",
|
||||
"null_channel" and "null_job".
|
||||
|
||||
Extending a class ~
|
||||
*extends*
|
||||
@@ -531,13 +548,15 @@ The basic idea is to build on top of an existing class, add properties to it.
|
||||
The extended class is called the "base class" or "super class". The new class
|
||||
is called the "child class".
|
||||
|
||||
Object members from the base class are all taken over by the child class. It
|
||||
Object variables from the base class are all taken over by the child class. It
|
||||
is not possible to override them (unlike some other languages).
|
||||
|
||||
*E1356* *E1357* *E1358*
|
||||
Object methods of the base class can be overruled. The signature (arguments,
|
||||
argument types and return type) must be exactly the same. The method of the
|
||||
base class can be called by prefixing "super.".
|
||||
argument types and return type) must be exactly the same. If the return type
|
||||
of a method is a class, then that class or one of its subclasses can be used
|
||||
in the extended method. The method of the base class can be called by
|
||||
prefixing "super.".
|
||||
|
||||
*E1377*
|
||||
The access level of a method (public or private) in a child class should be
|
||||
@@ -545,23 +564,23 @@ the same as the super class.
|
||||
|
||||
Other object methods of the base class are taken over by the child class.
|
||||
|
||||
Class functions, including functions starting with "new", can be overruled,
|
||||
like with object methods. The function on the base class can be called by
|
||||
prefixing the name of the class (for class functions) or "super.".
|
||||
Class methods, including methods starting with "new", can be overruled, like
|
||||
with object methods. The method on the base class can be called by prefixing
|
||||
the name of the class (for class methods) or "super.".
|
||||
|
||||
Unlike other languages, the constructor of the base class does not need to be
|
||||
invoked. In fact, it cannot be invoked. If some initialization from the base
|
||||
class also needs to be done in a child class, put it in an object method and
|
||||
call that method from every constructor().
|
||||
|
||||
If the base class did not specify a new() function then one was automatically
|
||||
created. This function will not be taken over by the child class. The child
|
||||
class can define its own new() function, or, if there isn't one, a new()
|
||||
function will be added automatically.
|
||||
If the base class did not specify a new() method then one was automatically
|
||||
created. This method will not be taken over by the child class. The child
|
||||
class can define its own new() method, or, if there isn't one, a new() method
|
||||
will be added automatically.
|
||||
|
||||
|
||||
A class implementing an interface ~
|
||||
*implements* *E1346* *E1347*
|
||||
*implements* *E1346* *E1347* *E1389*
|
||||
A class can implement one or more interfaces. The "implements" keyword can
|
||||
only appear once *E1350* . Multiple interfaces can be specified, separated by
|
||||
commas. Each interface name can appear only once. *E1351*
|
||||
@@ -569,22 +588,22 @@ commas. Each interface name can appear only once. *E1351*
|
||||
|
||||
A class defining an interface ~
|
||||
*specifies*
|
||||
A class can declare its interface, the object members and methods, with a
|
||||
A class can declare its interface, the object variables and methods, with a
|
||||
named interface. This avoids the need for separately specifying the
|
||||
interface, which is often done in many languages, especially Java.
|
||||
|
||||
|
||||
Items in a class ~
|
||||
*E1318* *E1325*
|
||||
*E1318* *E1325* *E1388*
|
||||
Inside a class, in between `:class` and `:endclass`, these items can appear:
|
||||
- An object member declaration: >
|
||||
this._privateMemberName: memberType
|
||||
this.readonlyMemberName: memberType
|
||||
public this.readwriteMemberName: memberType
|
||||
- A class member declaration: >
|
||||
static this._privateMemberName: memberType
|
||||
static this.readonlyMemberName: memberType
|
||||
static public this.readwriteMemberName: memberType
|
||||
- An object variable declaration: >
|
||||
this._privateVariableName: memberType
|
||||
this.readonlyVariableName: memberType
|
||||
public this.readwriteVariableName: memberType
|
||||
- A class variable declaration: >
|
||||
static _privateClassVariableName: memberType
|
||||
static readonlyClassVariableName: memberType
|
||||
static public readwriteClassVariableName: memberType
|
||||
- A constructor method: >
|
||||
def new(arguments)
|
||||
def newName(arguments)
|
||||
@@ -595,10 +614,11 @@ Inside a class, in between `:class` and `:endclass`, these items can appear:
|
||||
def SomeMethod(arguments)
|
||||
def _PrivateMethod(arguments)
|
||||
|
||||
For the object member the type must be specified. The best way is to do this
|
||||
explicitly with ": {type}". For simple types you can also use an initializer,
|
||||
such as "= 123", and Vim will see that the type is a number. Avoid doing this
|
||||
for more complex types and when the type will be incomplete. For example: >
|
||||
For the object variable the type must be specified. The best way is to do
|
||||
this explicitly with ": {type}". For simple types you can also use an
|
||||
initializer, such as "= 123", and Vim will see that the type is a number.
|
||||
Avoid doing this for more complex types and when the type will be incomplete.
|
||||
For example: >
|
||||
this.nameList = []
|
||||
This specifies a list, but the item type is unknown. Better use: >
|
||||
this.nameList: list<string>
|
||||
@@ -618,8 +638,8 @@ prefixed with `:export`: >
|
||||
export interface InterfaceName
|
||||
endinterface
|
||||
< *E1344*
|
||||
An interface can declare object members, just like in a class but without any
|
||||
initializer.
|
||||
An interface can declare object variables, just like in a class but without
|
||||
any initializer.
|
||||
*E1345*
|
||||
An interface can declare methods with `:def`, including the arguments and
|
||||
return type, but without the body and without `:enddef`. Example: >
|
||||
@@ -642,15 +662,15 @@ null object ~
|
||||
When a variable is declared to have the type of an object, but it is not
|
||||
initialized, the value is null. When trying to use this null object Vim often
|
||||
does not know what class was supposed to be used. Vim then cannot check if
|
||||
a member name is correct and you will get an "Using a null object" error,
|
||||
even when the member name is invalid. *E1360* *E1362* *E1363*
|
||||
a variable name is correct and you will get an "Using a null object" error,
|
||||
even when the variable name is invalid. *E1360* *E1362*
|
||||
|
||||
|
||||
Default constructor ~
|
||||
|
||||
*default-constructor*
|
||||
In case you define a class without a new() method, one will be automatically
|
||||
defined. This default constructor will have arguments for all the object
|
||||
members, in the order they were specified. Thus if your class looks like: >
|
||||
variables, in the order they were specified. Thus if your class looks like: >
|
||||
|
||||
class AutoNew
|
||||
this.name: string
|
||||
@@ -658,14 +678,14 @@ members, in the order they were specified. Thus if your class looks like: >
|
||||
this.gender: Gender
|
||||
endclass
|
||||
|
||||
Then The default constructor will be: >
|
||||
Then the default constructor will be: >
|
||||
|
||||
def new(this.name = v:none, this.age = v:none, this.gender = v:none)
|
||||
enddef
|
||||
|
||||
The "= v:none" default values make the arguments optional. Thus you can also
|
||||
call `new()` without any arguments. No assignment will happen and the default
|
||||
value for the object members will be used. This is a more useful example,
|
||||
value for the object variables will be used. This is a more useful example,
|
||||
with default values: >
|
||||
|
||||
class TextPosition
|
||||
@@ -681,13 +701,13 @@ the name, you can define the constructor like this: >
|
||||
enddef
|
||||
< *E1328*
|
||||
Note that you cannot use another default value than "v:none" here. If you
|
||||
want to initialize the object members, do it where they are declared. This
|
||||
want to initialize the object variables, do it where they are declared. This
|
||||
way you only need to look in one place for the default values.
|
||||
|
||||
All object members will be used in the default constructor, also private
|
||||
All object variables will be used in the default constructor, also private
|
||||
access ones.
|
||||
|
||||
If the class extends another one, the object members of that class will come
|
||||
If the class extends another one, the object variables of that class will come
|
||||
first.
|
||||
|
||||
|
||||
@@ -725,17 +745,22 @@ constructor methods.
|
||||
|
||||
7. Type definition *Vim9-type* *:type*
|
||||
|
||||
A type definition is giving a name to a type specification. For Example: >
|
||||
A type definition is giving a name to a type specification. This also known
|
||||
type alias. For Example: >
|
||||
|
||||
:type ListOfStrings list<string>
|
||||
|
||||
TODO: more explanation
|
||||
:type ListOfStrings = list<string>
|
||||
|
||||
The type alias can be used wherever a built-in type can be used. The type
|
||||
alias name must start with an upper case character. A type alias can be
|
||||
created only at the script level and not inside a function. A type alias can
|
||||
be exported and used across scripts.
|
||||
|
||||
==============================================================================
|
||||
|
||||
8. Enum *Vim9-enum* *:enum* *:endenum*
|
||||
|
||||
{not implemented yet}
|
||||
|
||||
An enum is a type that can have one of a list of values. Example: >
|
||||
|
||||
:enum Color
|
||||
@@ -746,8 +771,6 @@ An enum is a type that can have one of a list of values. Example: >
|
||||
Black
|
||||
:endenum
|
||||
|
||||
TODO: more explanation
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -801,7 +824,7 @@ the method being called is obvious.
|
||||
No overloading of the constructor ~
|
||||
|
||||
In Vim script, both legacy and |Vim9| script, there is no overloading of
|
||||
functions. That means it is not possible to use the same function name with
|
||||
methods. That means it is not possible to use the same method name with
|
||||
different types of arguments. Therefore there also is only one new()
|
||||
constructor.
|
||||
|
||||
@@ -844,39 +867,40 @@ class implements an interface just because the methods happen to match is
|
||||
brittle and leads to obscure problems, let's not do that.
|
||||
|
||||
|
||||
Using "this.member" everywhere ~
|
||||
Using "this.variable" everywhere ~
|
||||
|
||||
The object members in various programming languages can often be accessed in
|
||||
The object variables in various programming languages can often be accessed in
|
||||
different ways, depending on the location. Sometimes "this." has to be
|
||||
prepended to avoid ambiguity. They are usually declared without "this.".
|
||||
That is quite inconsistent and sometimes confusing.
|
||||
|
||||
A very common issue is that in the constructor the arguments use the same name
|
||||
as the object member. Then for these members "this." needs to be prefixed in
|
||||
the body, while for other members this is not needed and often omitted. This
|
||||
leads to a mix of members with and without "this.", which is inconsistent.
|
||||
as the object variable. Then for these variables "this." needs to be prefixed
|
||||
in the body, while for other variables this is not needed and often omitted.
|
||||
This leads to a mix of variables with and without "this.", which is
|
||||
inconsistent.
|
||||
|
||||
For |Vim9| classes the "this." prefix is always used. Also for declaring the
|
||||
members. Simple and consistent. When looking at the code inside a class it's
|
||||
also directly clear which variable references are object members and which
|
||||
aren't.
|
||||
variables. Simple and consistent. When looking at the code inside a class
|
||||
it's also directly clear which variable references are object variables and
|
||||
which aren't.
|
||||
|
||||
|
||||
Using class members ~
|
||||
Using class variables ~
|
||||
|
||||
Using "static member" to declare a class member is very common, nothing new
|
||||
here. In |Vim9| script these can be accessed directly by their name. Very
|
||||
much like how a script-local variable can be used in a function. Since object
|
||||
members are always accessed with "this." prepended, it's also quickly clear
|
||||
what kind of member it is.
|
||||
Using "static variable" to declare a class variable is very common, nothing
|
||||
new here. In |Vim9| script these can be accessed directly by their name.
|
||||
Very much like how a script-local variable can be used in a method. Since
|
||||
object variables are always accessed with "this." prepended, it's also quickly
|
||||
clear what kind of variable it is.
|
||||
|
||||
TypeScript prepends the class name before the class member, also inside the
|
||||
class. This has two problems: The class name can be rather long, taking up
|
||||
quite a bit of space, and when the class is renamed all these places need to
|
||||
be changed too.
|
||||
TypeScript prepends the class name before the class variable name, also inside
|
||||
the class. This has two problems: The class name can be rather long, taking
|
||||
up quite a bit of space, and when the class is renamed all these places need
|
||||
to be changed too.
|
||||
|
||||
|
||||
Declaring object and class members ~
|
||||
Declaring object and class variables ~
|
||||
|
||||
The main choice is whether to use "var" as with variable declarations.
|
||||
TypeScript does not use it: >
|
||||
@@ -885,7 +909,7 @@ TypeScript does not use it: >
|
||||
y = 0;
|
||||
}
|
||||
|
||||
Following that Vim object members could be declared like this: >
|
||||
Following that Vim object variables could be declared like this: >
|
||||
class Point
|
||||
this.x: number
|
||||
this.y = 0
|
||||
@@ -898,7 +922,7 @@ declaration. Adding "var" changes that: >
|
||||
var this.y = 0
|
||||
endclass
|
||||
|
||||
We also need to be able to declare class members using the "static" keyword.
|
||||
We also need to be able to declare class variables using the "static" keyword.
|
||||
There we can also choose to leave out "var": >
|
||||
class Point
|
||||
var this.x: number
|
||||
@@ -938,50 +962,50 @@ while there is no ClassName() method, it's a method by another name in the
|
||||
class called ClassName. Quite confusing.
|
||||
|
||||
|
||||
Default read access to object members ~
|
||||
Default read access to object variables ~
|
||||
|
||||
Some users will remark that the access rules for object members are
|
||||
Some users will remark that the access rules for object variables are
|
||||
asymmetric. Well, that is intentional. Changing a value is a very different
|
||||
action than reading a value. The read operation has no side effects, it can
|
||||
be done any number of times without affecting the object. Changing the value
|
||||
can have many side effects, and even have a ripple effect, affecting other
|
||||
objects.
|
||||
|
||||
When adding object members one usually doesn't think much about this, just get
|
||||
the type right. And normally the values are set in the new() method.
|
||||
When adding object variables one usually doesn't think much about this, just
|
||||
get the type right. And normally the values are set in the new() method.
|
||||
Therefore defaulting to read access only "just works" in most cases. And when
|
||||
directly writing you get an error, which makes you wonder if you actually want
|
||||
to allow that. This helps writing code with fewer mistakes.
|
||||
|
||||
|
||||
Making object members private with an underscore ~
|
||||
Making object variables private with an underscore ~
|
||||
|
||||
When an object member is private, it can only be read and changed inside the
|
||||
When an object variable is private, it can only be read and changed inside the
|
||||
class (and in sub-classes), then it cannot be used outside of the class.
|
||||
Prepending an underscore is a simple way to make that visible. Various
|
||||
programming languages have this as a recommendation.
|
||||
|
||||
In case you change your mind and want to make the object member accessible
|
||||
In case you change your mind and want to make the object variable accessible
|
||||
outside of the class, you will have to remove the underscore everywhere.
|
||||
Since the name only appears in the class (and sub-classes) they will be easy
|
||||
to find and change.
|
||||
|
||||
The other way around is much harder: you can easily prepend an underscore to
|
||||
the object member inside the class to make it private, but any usage elsewhere
|
||||
you will have to track down and change. You may have to make it a "set"
|
||||
method call. This reflects the real world problem that taking away access
|
||||
requires work to be done for all places where that access exists.
|
||||
the object variable inside the class to make it private, but any usage
|
||||
elsewhere you will have to track down and change. You may have to make it a
|
||||
"set" method call. This reflects the real world problem that taking away
|
||||
access requires work to be done for all places where that access exists.
|
||||
|
||||
An alternative would have been using the "private" keyword, just like "public"
|
||||
changes the access in the other direction. Well, that's just to reduce the
|
||||
number of keywords.
|
||||
|
||||
|
||||
No protected object members ~
|
||||
No protected object variables ~
|
||||
|
||||
Some languages provide several ways to control access to object members. The
|
||||
most known is "protected", and the meaning varies from language to language.
|
||||
Others are "shared", "private" and even "friend".
|
||||
Some languages provide several ways to control access to object variables.
|
||||
The most known is "protected", and the meaning varies from language to
|
||||
language. Others are "shared", "private" and even "friend".
|
||||
|
||||
These rules make life more difficult. That can be justified in projects where
|
||||
many people work on the same, complex code where it is easy to make mistakes.
|
||||
|
||||
@@ -70,7 +70,7 @@ Convertit en binaires plut
|
||||
Cette option écrit les octets comme une séquence de "1" et de "0" au lieu
|
||||
d'une conversion en hexadécimal traditionnel. Chaque ligne est précédée par un
|
||||
numéro de ligne en hexadécimal et suivie de la représentation ASCII (ou
|
||||
EBCDIC) correspondante. Les options \-r, \-p, \-i ne fonctionnent pas dans ce
|
||||
EBCDIC) correspondante. Les options \-p, \-i ne fonctionnent pas dans ce
|
||||
mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -70,7 +70,7 @@ Convertit en binaires plutôt qu'en hexadécimal.
|
||||
Cette option écrit les octets comme une séquence de "1" et de "0" au lieu
|
||||
d'une conversion en hexadécimal traditionnel. Chaque ligne est précédée par un
|
||||
numéro de ligne en hexadécimal et suivie de la représentation ASCII (ou
|
||||
EBCDIC) correspondante. Les options \-r, \-p, \-i ne fonctionnent pas dans ce
|
||||
EBCDIC) correspondante. Les options \-p, \-i ne fonctionnent pas dans ce
|
||||
mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -53,18 +53,18 @@ Pertanto
|
||||
.B \-c 010
|
||||
e
|
||||
.B \-cols 8
|
||||
sono notazioni equivalenti fra loro.
|
||||
sono tutte notazioni equivalenti fra loro.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Richiesta di omissione: Un singolo '*' rimpiazza righe a zeri binari. Default: off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Richiesta di una immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Richiesta di un'immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Quest'opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni riga è preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni specificabili dalla
|
||||
riga comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni \-p, \-i,
|
||||
specificabili dalla riga comando, non funzionano in questo modo.
|
||||
.TP
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
In ogni riga sono formattate
|
||||
@@ -123,22 +123,30 @@ Aggiunge
|
||||
alla posizione visualizzata dei byte del file.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript. Noto anche come stile esadecimale semplice.
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript.
|
||||
Noto anche come stile esadecimale semplice.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
Ricostruisce: converte (o mette una patch) da immagine esadecimale, a file binario.
|
||||
Se non scrive sullo `standard output', xxd scrive nel file di output in maniera
|
||||
continua, senza interruzioni. Usare la combinazione
|
||||
.I \-r \-p
|
||||
per leggere dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote possono
|
||||
essere presenti [e vengono ignorati].
|
||||
per leggere un dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote
|
||||
possono essere presenti dappertutto [e vengono ignorati]. Usare la combinazione
|
||||
.I \-r \-b
|
||||
per leggere un dump binario, invece che un dump esadecimale.
|
||||
.TP
|
||||
.IR \-R " "[quando]
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a distinguere i caratteri stampabili da quello non stampabili.
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi
|
||||
lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a
|
||||
distinguere i caratteri stampabili da quelli non stampabili.
|
||||
.I quando
|
||||
può assumere i valori
|
||||
.BR never ", " always ", o " auto .
|
||||
Quando la variabile d'ambiente
|
||||
.BR $NO_COLOR
|
||||
è impostata, la colorazione viene disabilitata.
|
||||
.TP
|
||||
.I \-seek distanza
|
||||
Usato con l'opzione
|
||||
@@ -218,8 +226,7 @@ L'autore preferisce monitorare il comportamento di xxd con strace(1) o truss(1),
|
||||
.PP
|
||||
.br
|
||||
Stampa tutto tranne le prime tre righe (0x30 byte in esadecimale) di
|
||||
.BR file
|
||||
\.
|
||||
.BR file .
|
||||
.br
|
||||
\fI% xxd \-s 0x30 file\fR
|
||||
.PP
|
||||
|
||||
@@ -53,18 +53,18 @@ Pertanto
|
||||
.B \-c 010
|
||||
e
|
||||
.B \-cols 8
|
||||
sono notazioni equivalenti fra loro.
|
||||
sono tutte notazioni equivalenti fra loro.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Richiesta di omissione: Un singolo '*' rimpiazza righe a zeri binari. Default: off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Richiesta di una immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Richiesta di un'immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Quest'opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni riga è preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni specificabili dalla
|
||||
riga comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni \-p, \-i,
|
||||
specificabili dalla riga comando, non funzionano in questo modo.
|
||||
.TP
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
In ogni riga sono formattate
|
||||
@@ -123,22 +123,30 @@ Aggiunge
|
||||
alla posizione visualizzata dei byte del file.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript. Noto anche come stile esadecimale semplice.
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript.
|
||||
Noto anche come stile esadecimale semplice.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
Ricostruisce: converte (o mette una patch) da immagine esadecimale, a file binario.
|
||||
Se non scrive sullo `standard output', xxd scrive nel file di output in maniera
|
||||
continua, senza interruzioni. Usare la combinazione
|
||||
.I \-r \-p
|
||||
per leggere dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote possono
|
||||
essere presenti [e vengono ignorati].
|
||||
per leggere un dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote
|
||||
possono essere presenti dappertutto [e vengono ignorati]. Usare la combinazione
|
||||
.I \-r \-b
|
||||
per leggere un dump binario, invece che un dump esadecimale.
|
||||
.TP
|
||||
.IR \-R " "[quando]
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a distinguere i caratteri stampabili da quello non stampabili.
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi
|
||||
lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a
|
||||
distinguere i caratteri stampabili da quelli non stampabili.
|
||||
.I quando
|
||||
può assumere i valori
|
||||
.BR never ", " always ", o " auto .
|
||||
Quando la variabile d'ambiente
|
||||
.BR $NO_COLOR
|
||||
è impostata, la colorazione viene disabilitata.
|
||||
.TP
|
||||
.I \-seek distanza
|
||||
Usato con l'opzione
|
||||
@@ -218,8 +226,7 @@ L'autore preferisce monitorare il comportamento di xxd con strace(1) o truss(1),
|
||||
.PP
|
||||
.br
|
||||
Stampa tutto tranne le prime tre righe (0x30 byte in esadecimale) di
|
||||
.BR file
|
||||
\.
|
||||
.BR file .
|
||||
.br
|
||||
\fI% xxd \-s 0x30 file\fR
|
||||
.PP
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
1 オクテットが "1" と "0" の 8 文字で出力されます。
|
||||
各行の行頭には 16 進数の行番号が表示されます。
|
||||
行末には ascii (または ebcdic) で表した場合の文字が表示されます。
|
||||
このモードでは \-r、\-p、\-i は機能しません。
|
||||
このモードでは \-p、\-i は機能しません。
|
||||
.TP
|
||||
.IR \-e
|
||||
リトルエンディアンの 16 進ダンプに切り替える。
|
||||
|
||||
@@ -66,7 +66,7 @@ Prze
|
||||
Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
|
||||
zrzutu heksowego. Każda linia jest poprzedzona przez
|
||||
heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub
|
||||
ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
|
||||
ebcdic). Opcje linii poleceń \-p, \-i nie działają w tym
|
||||
trybie.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -66,7 +66,7 @@ Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
|
||||
Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
|
||||
zrzutu heksowego. Każda linia jest poprzedzona przez
|
||||
heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub
|
||||
ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
|
||||
ebcdic). Opcje linii poleceń \-p, \-i nie działają w tym
|
||||
trybie.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
|
||||
@@ -70,7 +70,7 @@ xxd
|
||||
При использовании этого ключа вместо обычного шестнадцатеричного представления
|
||||
октетов используются наборы из восьми символов "1" и "0". Каждая строка
|
||||
предваряется номером строки в шестнадцатеричном виде, а завершается символьным
|
||||
представлением (в виде ascii или ebcdic). Ключи \-r, \-p, \-i в этом режиме
|
||||
представлением (в виде ascii или ebcdic). Ключи \-p, \-i в этом режиме
|
||||
не работают.
|
||||
.TP
|
||||
.IR "\-c кол " | " \-cols кол"
|
||||
|
||||
@@ -70,7 +70,7 @@ xxd позволяет выполнять декодирование в пото
|
||||
При использовании этого ключа вместо обычного шестнадцатеричного представления
|
||||
октетов используются наборы из восьми символов "1" и "0". Каждая строка
|
||||
предваряется номером строки в шестнадцатеричном виде, а завершается символьным
|
||||
представлением (в виде ascii или ebcdic). Ключи \-r, \-p, \-i в этом режиме
|
||||
представлением (в виде ascii или ebcdic). Ключи \-p, \-i в этом режиме
|
||||
не работают.
|
||||
.TP
|
||||
.IR "\-c кол " | " \-cols кол"
|
||||
|
||||
@@ -64,7 +64,7 @@ Switch to bits (binary digits) dump, rather than hex dump.
|
||||
This option writes octets as eight digits "1"s and "0"s instead of a normal
|
||||
hexadecimal dump. Each line is preceded by a line number in hexadecimal and
|
||||
followed by an ASCII (or EBCDIC) representation. The command line switches
|
||||
\-r, \-p, \-i do not work with this mode.
|
||||
\-p, \-i do not work with this mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
Format
|
||||
@@ -133,13 +133,20 @@ it. Use the combination
|
||||
.I \-r \-p
|
||||
to read plain hexadecimal dumps without line number information and without a
|
||||
particular column layout. Additional whitespace and line breaks are allowed
|
||||
anywhere.
|
||||
anywhere. Use the combination
|
||||
.I \-r \-b
|
||||
to read a bits dump instead of a hex dump.
|
||||
.TP
|
||||
.IR \-R " " when
|
||||
In output the hex-value and the value are both colored with the same color depending on the hex-value. Mostly helping to differentiate printable and non-printable characters.
|
||||
In output the hex-value and the value are both colored with the same color
|
||||
depending on the hex-value. Mostly helping to differentiate printable and
|
||||
non-printable characters.
|
||||
.I \fIwhen\fP
|
||||
is
|
||||
.BR never ", " always ", or " auto .
|
||||
When the
|
||||
.BR $NO_COLOR
|
||||
environment variable is set, colorization will be disabled.
|
||||
.TP
|
||||
.I \-seek offset
|
||||
When used after
|
||||
|
||||
@@ -3,7 +3,7 @@ XXD(1) General Commands Manual XXD(1)
|
||||
|
||||
|
||||
NAME
|
||||
xxd - make a hexdump or do the reverse.
|
||||
xxd - make a hex dump or do the reverse.
|
||||
|
||||
SYNOPSIS
|
||||
xxd -h[elp]
|
||||
@@ -30,19 +30,19 @@ OPTIONS
|
||||
notation. Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent.
|
||||
|
||||
-a | -autoskip
|
||||
Toggle autoskip: A single '*' replaces nul-lines. Default off.
|
||||
Toggle autoskip: A single '*' replaces NUL-lines. Default off.
|
||||
|
||||
-b | -bits
|
||||
Switch to bits (binary digits) dump, rather than hexdump. This
|
||||
Switch to bits (binary digits) dump, rather than hex dump. This
|
||||
option writes octets as eight digits "1"s and "0"s instead of a
|
||||
normal hexadecimal dump. Each line is preceded by a line number
|
||||
in hexadecimal and followed by an ascii (or ebcdic) representa‐
|
||||
tion. The command line switches -r, -p, -i do not work with this
|
||||
in hexadecimal and followed by an ASCII (or EBCDIC) representa‐
|
||||
tion. The command line switches -p, -i do not work with this
|
||||
mode.
|
||||
|
||||
-c cols | -cols cols
|
||||
Format <cols> octets per line. Default 16 (-i: 12, -ps: 30, -b:
|
||||
6). Max 256. No maxmimum for -ps. With -ps, 0 results in one
|
||||
6). Max 256. No maximum for -ps. With -ps, 0 results in one
|
||||
long line of output.
|
||||
|
||||
-C | -capitalize
|
||||
@@ -54,84 +54,92 @@ OPTIONS
|
||||
to EBCDIC. This does not change the hexadecimal representation.
|
||||
The option is meaningless in combinations with -r, -p or -i.
|
||||
|
||||
-e Switch to little-endian hexdump. This option treats byte groups
|
||||
as words in little-endian byte order. The default grouping of 4
|
||||
bytes may be changed using -g. This option only applies to hex‐
|
||||
dump, leaving the ASCII (or EBCDIC) representation unchanged.
|
||||
The command line switches -r, -p, -i do not work with this mode.
|
||||
-e Switch to little-endian hex dump. This option treats byte
|
||||
groups as words in little-endian byte order. The default group‐
|
||||
ing of 4 bytes may be changed using -g. This option only ap‐
|
||||
plies to the hex dump, leaving the ASCII (or EBCDIC) representa‐
|
||||
tion unchanged. The command line switches -r, -p, -i do not
|
||||
work with this mode.
|
||||
|
||||
-g bytes | -groupsize bytes
|
||||
Separate the output of every <bytes> bytes (two hex characters
|
||||
or eight bit-digits each) by a whitespace. Specify -g 0 to sup‐
|
||||
Separate the output of every <bytes> bytes (two hex characters
|
||||
or eight bit digits each) by a whitespace. Specify -g 0 to sup‐
|
||||
press grouping. <Bytes> defaults to 2 in normal mode, 4 in lit‐
|
||||
tle-endian mode and 1 in bits mode. Grouping does not apply to
|
||||
postscript or include style.
|
||||
tle-endian mode and 1 in bits mode. Grouping does not apply to
|
||||
PostScript or include style.
|
||||
|
||||
-h | -help
|
||||
Print a summary of available commands and exit. No hex dumping
|
||||
Print a summary of available commands and exit. No hex dumping
|
||||
is performed.
|
||||
|
||||
-i | -include
|
||||
Output in C include file style. A complete static array defini‐
|
||||
tion is written (named after the input file), unless xxd reads
|
||||
Output in C include file style. A complete static array defini‐
|
||||
tion is written (named after the input file), unless xxd reads
|
||||
from stdin.
|
||||
|
||||
-l len | -len len
|
||||
Stop after writing <len> octets.
|
||||
|
||||
-n name | -name name
|
||||
Override the variable name output when -i is used. The array is
|
||||
Override the variable name output when -i is used. The array is
|
||||
named name and the length is named name_len.
|
||||
|
||||
-o offset
|
||||
Add <offset> to the displayed file position.
|
||||
|
||||
-p | -ps | -postscript | -plain
|
||||
Output in postscript continuous hexdump style. Also known as
|
||||
plain hexdump style.
|
||||
Output in PostScript continuous hex dump style. Also known as
|
||||
plain hex dump style.
|
||||
|
||||
-r | -revert
|
||||
Reverse operation: convert (or patch) hexdump into binary. If
|
||||
not writing to stdout, xxd writes into its output file without
|
||||
Reverse operation: convert (or patch) hex dump into binary. If
|
||||
not writing to stdout, xxd writes into its output file without
|
||||
truncating it. Use the combination -r -p to read plain hexadeci‐
|
||||
mal dumps without line number information and without a particu‐
|
||||
lar column layout. Additional Whitespace and line-breaks are al‐
|
||||
lowed anywhere.
|
||||
lar column layout. Additional whitespace and line breaks are al‐
|
||||
lowed anywhere. Use the combination -r -b to read a bits dump
|
||||
instead of a hex dump.
|
||||
|
||||
-R when
|
||||
In output the hex-value and the value are both colored with the
|
||||
same color depending on the hex-value. Mostly helping to differ‐
|
||||
entiate printable and non-printable characters. when is never,
|
||||
always, or auto. When the $NO_COLOR environment variable is
|
||||
set, colorization will be disabled.
|
||||
|
||||
-seek offset
|
||||
When used after -r: revert with <offset> added to file positions
|
||||
found in hexdump.
|
||||
found in hex dump.
|
||||
|
||||
-s [+][-]seek
|
||||
Start at <seek> bytes abs. (or rel.) infile offset. + indicates
|
||||
that the seek is relative to the current stdin file position
|
||||
that the seek is relative to the current stdin file position
|
||||
(meaningless when not reading from stdin). - indicates that the
|
||||
seek should be that many characters from the end of the input
|
||||
seek should be that many characters from the end of the input
|
||||
(or if combined with +: before the current stdin file position).
|
||||
Without -s option, xxd starts at the current file position.
|
||||
|
||||
-u Use upper case hex letters. Default is lower case.
|
||||
-u Use upper-case hex letters. Default is lower-case.
|
||||
|
||||
-v | -version
|
||||
Show version string.
|
||||
|
||||
CAVEATS
|
||||
xxd -r has some builtin magic while evaluating line number information.
|
||||
If the output file is seekable, then the linenumbers at the start of
|
||||
each hexdump line may be out of order, lines may be missing, or over‐
|
||||
lapping. In these cases xxd will lseek(2) to the next position. If the
|
||||
output file is not seekable, only gaps are allowed, which will be
|
||||
filled by null-bytes.
|
||||
xxd -r has some built-in magic while evaluating line number informa‐
|
||||
tion. If the output file is seekable, then the line numbers at the
|
||||
start of each hex dump line may be out of order, lines may be missing,
|
||||
or overlapping. In these cases xxd will lseek(2) to the next position.
|
||||
If the output file is not seekable, only gaps are allowed, which will
|
||||
be filled by null-bytes.
|
||||
|
||||
xxd -r never generates parse errors. Garbage is silently skipped.
|
||||
|
||||
When editing hexdumps, please note that xxd -r skips everything on the
|
||||
When editing hex dumps, please note that xxd -r skips everything on the
|
||||
input line after reading enough columns of hexadecimal data (see option
|
||||
-c). This also means, that changes to the printable ascii (or ebcdic)
|
||||
columns are always ignored. Reverting a plain (or postscript) style
|
||||
hexdump with xxd -r -p does not depend on the correct number of col‐
|
||||
umns. Here anything that looks like a pair of hex-digits is inter‐
|
||||
preted.
|
||||
-c). This also means that changes to the printable ASCII (or EBCDIC)
|
||||
columns are always ignored. Reverting a plain (or PostScript) style hex
|
||||
dump with xxd -r -p does not depend on the correct number of columns.
|
||||
Here, anything that looks like a pair of hex digits is interpreted.
|
||||
|
||||
Note the difference between
|
||||
% xxd -i file
|
||||
@@ -142,19 +150,19 @@ CAVEATS
|
||||
"rewind" input. A '+' makes a difference if the input source is stdin,
|
||||
and if stdin's file position is not at the start of the file by the
|
||||
time xxd is started and given its input. The following examples may
|
||||
help to clarify (or further confuse!)...
|
||||
help to clarify (or further confuse!):
|
||||
|
||||
Rewind stdin before reading; needed because the `cat' has already read
|
||||
to the end of stdin.
|
||||
% sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file
|
||||
|
||||
Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign
|
||||
Hex dump from file position 0x480 (=1024+128) onwards. The `+' sign
|
||||
means "relative to the current position", thus the `128' adds to the 1k
|
||||
where dd left off.
|
||||
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet"
|
||||
< file
|
||||
|
||||
Hexdump from file position 0x100 ( = 1024-768) on.
|
||||
Hex dump from file position 0x100 (=1024-768) onwards.
|
||||
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet"
|
||||
< file
|
||||
|
||||
@@ -169,7 +177,7 @@ EXAMPLES
|
||||
Print 3 lines (hex 0x30 bytes) from the end of file.
|
||||
% xxd -s -0x30 file
|
||||
|
||||
Print 120 bytes as continuous hexdump with 20 octets per line.
|
||||
Print 120 bytes as a continuous hex dump with 20 octets per line.
|
||||
% xxd -l 120 -ps -c 20 xxd.1
|
||||
2e54482058584420312022417567757374203139
|
||||
39362220224d616e75616c207061676520666f72
|
||||
@@ -178,7 +186,7 @@ EXAMPLES
|
||||
20617574686f723a0a2e5c2220202020546f6e79
|
||||
204e7567656e74203c746f6e79407363746e7567
|
||||
|
||||
Hexdump the first 120 bytes of this man page with 12 octets per line.
|
||||
Hex dump the first 120 bytes of this man page with 12 octets per line.
|
||||
% xxd -l 120 -c 12 xxd.1
|
||||
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
|
||||
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
|
||||
@@ -207,27 +215,27 @@ EXAMPLES
|
||||
which is 'A' (hex 0x41).
|
||||
% echo "010000: 41" | xxd -r > file
|
||||
|
||||
Hexdump this file with autoskip.
|
||||
Hex dump this file with autoskip.
|
||||
% xxd -a -c 12 file
|
||||
0000000: 0000 0000 0000 0000 0000 0000 ............
|
||||
*
|
||||
000fffc: 0000 0000 40 ....A
|
||||
|
||||
Create a 1 byte file containing a single 'A' character. The number af‐
|
||||
ter '-r -s' adds to the linenumbers found in the file; in effect, the
|
||||
ter '-r -s' adds to the line numbers found in the file; in effect, the
|
||||
leading bytes are suppressed.
|
||||
% echo "010000: 41" | xxd -r -s -0x10000 > file
|
||||
|
||||
Use xxd as a filter within an editor such as vim(1) to hexdump a region
|
||||
marked between `a' and `z'.
|
||||
Use xxd as a filter within an editor such as vim(1) to hex dump a re‐
|
||||
gion marked between `a' and `z'.
|
||||
:'a,'z!xxd
|
||||
|
||||
Use xxd as a filter within an editor such as vim(1) to recover a binary
|
||||
hexdump marked between `a' and `z'.
|
||||
hex dump marked between `a' and `z'.
|
||||
:'a,'z!xxd -r
|
||||
|
||||
Use xxd as a filter within an editor such as vim(1) to recover one line
|
||||
of a hexdump. Move the cursor over the line and type:
|
||||
of a hex dump. Move the cursor over the line and type:
|
||||
!!xxd -r
|
||||
|
||||
Read single characters from a serial line
|
||||
@@ -240,7 +248,7 @@ RETURN VALUES
|
||||
|
||||
0 no errors encountered.
|
||||
|
||||
-1 operation not supported ( xxd -r -i still impossible).
|
||||
-1 operation not supported (xxd -r -i still impossible).
|
||||
|
||||
1 error while parsing options.
|
||||
|
||||
@@ -254,7 +262,7 @@ SEE ALSO
|
||||
uuencode(1), uudecode(1), patch(1)
|
||||
|
||||
WARNINGS
|
||||
The tools weirdness matches its creators brain. Use entirely at your
|
||||
The tool's weirdness matches its creator's brain. Use entirely at your
|
||||
own risk. Copy files. Trace it. Become a wizard.
|
||||
|
||||
VERSION
|
||||
|
||||
@@ -544,6 +544,7 @@ au BufNewFile,BufRead copyright
|
||||
" Debian Sources.list
|
||||
au BufNewFile,BufRead */etc/apt/sources.list setf debsources
|
||||
au BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources
|
||||
au BufNewFile,BufRead */etc/apt/sources.list.d/*.sources setf deb822sources
|
||||
|
||||
" Deny hosts
|
||||
au BufNewFile,BufRead denyhosts.conf setf denyhosts
|
||||
@@ -817,6 +818,9 @@ au BufNewFile,BufRead *.gleam setf gleam
|
||||
" GLSL
|
||||
au BufNewFile,BufRead *.glsl setf glsl
|
||||
|
||||
" GN (generate ninja) files
|
||||
au BufNewFile,BufRead *.gn,*.gni setf gn
|
||||
|
||||
" GP scripts (2.0 and onward)
|
||||
au BufNewFile,BufRead *.gp,.gprc setf gp
|
||||
|
||||
@@ -1013,7 +1017,7 @@ au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter
|
||||
au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl
|
||||
|
||||
" .INI file for MSDOS
|
||||
au BufNewFile,BufRead *.ini setf dosini
|
||||
au BufNewFile,BufRead *.ini,*.INI setf dosini
|
||||
|
||||
" SysV Inittab
|
||||
au BufNewFile,BufRead inittab setf inittab
|
||||
@@ -1030,6 +1034,9 @@ au BufNewFile,BufRead *.jal,*.JAL setf jal
|
||||
" Jam
|
||||
au BufNewFile,BufRead *.jpl,*.jpr setf jam
|
||||
|
||||
" Janet
|
||||
au BufNewFile,BufRead *.janet setf janet
|
||||
|
||||
" Java
|
||||
au BufNewFile,BufRead *.java,*.jav setf java
|
||||
|
||||
@@ -1093,6 +1100,9 @@ au BufNewFile,BufRead *.jsonnet,*.libsonnet setf jsonnet
|
||||
" Julia
|
||||
au BufNewFile,BufRead *.jl setf julia
|
||||
|
||||
" Just
|
||||
au BufNewFile,BufRead [jJ]ustfile,.justfile,*.just setf just
|
||||
|
||||
" KDL
|
||||
au BufNewFile,BufRead *.kdl setf kdl
|
||||
|
||||
@@ -1452,6 +1462,9 @@ au BufNewFile,BufRead {env,config}.nu setf nu
|
||||
" Oblivion Language and Oblivion Script Extender
|
||||
au BufNewFile,BufRead *.obl,*.obse,*.oblivion,*.obscript setf obse
|
||||
|
||||
" Objdump
|
||||
au BufNewFile,BufRead *.objdump,*.cppobjdump setf objdump
|
||||
|
||||
" OCaml
|
||||
au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml
|
||||
|
||||
@@ -1499,7 +1512,7 @@ au BufNewFile,BufRead *.nmconnection setf confini
|
||||
" Pacman hooks
|
||||
au BufNewFile,BufRead *.hook
|
||||
\ if getline(1) == '[Trigger]' |
|
||||
\ setf conf |
|
||||
\ setf confini |
|
||||
\ endif
|
||||
|
||||
" Pam conf
|
||||
@@ -1994,9 +2007,8 @@ au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFile
|
||||
" (patterns ending in a start further below)
|
||||
au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
|
||||
|
||||
" Zig and Zir (Zig Intermediate Representation)
|
||||
au BufNewFile,BufRead *.zig setf zig
|
||||
au BufNewFile,BufRead *.zir setf zir
|
||||
" Zig and Zig Object Notation (ZON)
|
||||
au BufNewFile,BufRead *.zig,*.zon setf zig
|
||||
|
||||
" Zserio
|
||||
au BufNewFile,BufRead *.zs setf zserio
|
||||
@@ -2856,6 +2868,9 @@ au BufNewFile,BufRead XF86Config*
|
||||
\|endif
|
||||
\|call s:StarSetf('xf86conf')
|
||||
|
||||
" XKB
|
||||
au BufNewFile,BufRead */usr/share/X11/xkb/{compat,geometry,keycodes,symbols,types}/* call s:StarSetf('xkb')
|
||||
|
||||
" X11 xmodmap
|
||||
au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
|
||||
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Dan Sharp
|
||||
" Contributor: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2021 Oct 15
|
||||
" Last Change: 2023 Oct 09
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
@@ -18,7 +20,7 @@ setlocal formatoptions+=crql
|
||||
|
||||
let b:undo_ftplugin = "setlocal com< cms< fo<"
|
||||
|
||||
" Csh: thanks to Johannes Zellner
|
||||
" Csh: thanks to Johannes Zellner
|
||||
" - Both foreach and end must appear alone on separate lines.
|
||||
" - The words else and endif must appear at the beginning of input lines;
|
||||
" the if must appear alone on its input line or after an else.
|
||||
@@ -38,13 +40,14 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ s:line_start .. 'case\s\+:' .. s:line_start .. 'default\>:\<breaksw\>:' ..
|
||||
\ s:line_start .. 'endsw\>'
|
||||
unlet s:line_start
|
||||
let b:undo_ftplugin ..= " | unlet b:match_words"
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_words"
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet b:browsefilter"
|
||||
let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:csh_set_browsefilter = 1
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:csh_set_browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
|
||||
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
|
||||
" Stefano Zacchiroli <zack@debian.org>
|
||||
" Last Change: 2023 Jan 16
|
||||
" Last Change: 2023 Aug 18
|
||||
" License: Vim License
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/debchangelog.vim
|
||||
|
||||
|
||||
16
runtime/ftplugin/debsources.vim
Normal file
16
runtime/ftplugin/debsources.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
|
||||
" Last Change: 2023 Aug 30
|
||||
" License: Vim License
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/debsources.vim
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin=1
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#%s
|
||||
setlocal formatoptions-=t
|
||||
|
||||
let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<'
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: gpg(1) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,17 +17,17 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 GpgKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+--' . <q-args> . '\b'' --hilite-search" man ' . 'gpg' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 GpgKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+--' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'gpg'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':GpgKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:GpgKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer GpgKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
28
runtime/ftplugin/json5.vim
Normal file
28
runtime/ftplugin/json5.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: JSON5
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2023 Oct 19
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< cms<"
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "JSON5 Files (*.json5)\t*.json5\n" ..
|
||||
\ "JSON Files (*.json)\t*.json\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: modules.conf(5) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -18,17 +18,17 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ModconfKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s{,8}' . <q-args> . '\b'' --hilite-search" man ' . 'modprobe.d' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ModconfKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'modprobe.d'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':ModconfKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:ModconfKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer ModconfKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: mutt RC File
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2006-04-19
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -20,17 +20,17 @@ let &l:include = '^\s*source\>'
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 MuttrcKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+' . <q-args> . '\b'' --hilite-search" man ' . 'muttrc' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 MuttrcKeywordPrg
|
||||
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'muttrc'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':MuttrcKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:MuttrcKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer MuttrcKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
14
runtime/ftplugin/objdump.vim
Normal file
14
runtime/ftplugin/objdump.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Objdump
|
||||
" Maintainer: Colin Kennedy <colinvfx@gmail.com>
|
||||
" Last Change: 2023 October 25
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setlocal cms<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
@@ -32,17 +32,17 @@ endif
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ReadlineKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+' . <q-args> . '\b'' --hilite-search" man ' . '3 readline' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 ReadlineKeywordPrg
|
||||
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . '3 readline'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':ReadlineKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:ReadlineKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer ReadlineKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: R Markdown file
|
||||
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
||||
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
|
||||
" Last Change: Mon Feb 27, 2023 07:15PM
|
||||
" Last Change: Mon May 29, 2023 06:31AM
|
||||
" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
|
||||
|
||||
" Only do this when not yet done for this buffer
|
||||
@@ -32,12 +32,18 @@ function FormatRmd()
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
let s:last_line = 0
|
||||
function SetRmdCommentStr()
|
||||
if (search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")) || ((search('^---$', 'Wn') || search('^\.\.\.$', 'Wn')) && search('^---$', 'bnW'))
|
||||
set commentstring=#\ %s
|
||||
else
|
||||
set commentstring=<!--\ %s\ -->
|
||||
endif
|
||||
if line('.') == s:last_line
|
||||
return
|
||||
endif
|
||||
let s:last_line = line('.')
|
||||
|
||||
if (search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")) || ((search('^---$', 'Wn') || search('^\.\.\.$', 'Wn')) && search('^---$', 'bnW'))
|
||||
set commentstring=#\ %s
|
||||
else
|
||||
set commentstring=<!--\ %s\ -->
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" If you do not want both 'comments' and 'commentstring' dynamically defined,
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Dan Sharp
|
||||
" Contributor: Enno Nagel <ennonagel+vim@gmail.com>
|
||||
" Last Change: 2023 Aug 29
|
||||
" Eisuke Kawashima
|
||||
" Last Change: 2023 Sep 28
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -39,17 +40,16 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
if (exists("b:is_bash") && (b:is_bash == 1)) ||
|
||||
\ (exists("b:is_sh") && (b:is_sh == 1))
|
||||
if get(b:, "is_bash", 0)
|
||||
if !has("gui_running") && executable("less")
|
||||
command! -buffer -nargs=1 Help silent exe '!bash -c "{ help "<args>" 2>/dev/null || man "<args>"; } | LESS= less"' | redraw!
|
||||
elseif has('terminal')
|
||||
command! -buffer -nargs=1 Help silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
|
||||
command! -buffer -nargs=1 ShKeywordPrg silent exe '!bash -c "{ help "<args>" 2>/dev/null || man "<args>"; } | LESS= less"' | redraw!
|
||||
elseif has("terminal")
|
||||
command! -buffer -nargs=1 ShKeywordPrg silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
|
||||
else
|
||||
command! -buffer -nargs=1 Help echo system('bash -c "help <args>" 2>/dev/null || man "<args>"')
|
||||
command! -buffer -nargs=1 ShKeywordPrg echo system('bash -c "help <args>" 2>/dev/null || man "<args>"')
|
||||
endif
|
||||
setlocal keywordprg=:Help
|
||||
let b:undo_ftplugin ..= " | setl kp< | sil! delc -buffer Help"
|
||||
setlocal keywordprg=:ShKeywordPrg
|
||||
let b:undo_ftplugin ..= " | setl kp< | sil! delc -buffer ShKeywordPrg"
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: OpenSSH client configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -16,17 +16,17 @@ let b:undo_ftplugin = 'setlocal com< cms< fo<'
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SshconfigKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s+' . <q-args> . '$'' --hilite-search" man ' . 'ssh_config' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SshconfigKeywordPrg
|
||||
\ silent exe 'term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '$', '\') . ''' --hilite-search" man ' . 'ssh_config'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':SshconfigKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:SshconfigKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SshconfigKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: sudoers(5) configuration files
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,17 +17,17 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SudoersKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''\b' . <q-args> . '\b'' --hilite-search" man ' . 'sudoers' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 SudoersKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('\b' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'sudoers'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':SudoersKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:SudoersKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SudoersKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: systemd.unit(5)
|
||||
" Keyword Lookup Support: Enno Nagel <enno.nagel+vim@gmail.com>
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if !exists('b:did_ftplugin')
|
||||
" Looks a lot like dosini files.
|
||||
runtime! ftplugin/dosini.vim
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
" Looks a lot like dosini files.
|
||||
runtime! ftplugin/dosini.vim
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman silent exe '!' . KeywordLookup_systemd(<q-args>) | redraw!
|
||||
command -buffer -nargs=1 SystemdKeywordPrg silent exe '!' . KeywordLookup_systemd(<q-args>) | redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman silent exe 'term ' . KeywordLookup_systemd(<q-args>)
|
||||
command -buffer -nargs=1 SystemdKeywordPrg silent exe 'term ' . KeywordLookup_systemd(<q-args>)
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':SystemdKeywordPrg') == 2
|
||||
if !exists('*KeywordLookup_systemd')
|
||||
function KeywordLookup_systemd(keyword) abort
|
||||
let matches = matchlist(getline(search('\v^\s*\[\s*.+\s*\]\s*$', 'nbWz')), '\v^\s*\[\s*(\k+).*\]\s*$')
|
||||
@@ -26,11 +28,11 @@ if has('unix') && executable('less')
|
||||
endfunction
|
||||
endif
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
setlocal keywordprg=:SystemdKeywordPrg
|
||||
if !exists('b:undo_ftplugin') || empty(b:undo_ftplugin)
|
||||
let b:undo_ftplugin = 'setlocal keywordprg< iskeyword<'
|
||||
else
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SystemdKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
" Language: tcsh
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Dan Sharp
|
||||
" Last Change: 2021 Oct 15
|
||||
" Last Change: 2023 Oct 09
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
@@ -12,24 +14,26 @@ set cpo-=C
|
||||
" Define some defaults in case the included ftplugins don't set them.
|
||||
let s:undo_ftplugin = ""
|
||||
let s:browsefilter = "csh Files (*.csh)\t*.csh\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
|
||||
runtime! ftplugin/csh.vim ftplugin/csh_*.vim ftplugin/csh/*.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Override our defaults if these were set by an included ftplugin.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin
|
||||
let s:undo_ftplugin = b:undo_ftplugin
|
||||
endif
|
||||
if exists("b:browsefilter")
|
||||
let s:browsefilter = b:browsefilter
|
||||
let s:browsefilter = b:browsefilter
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk"))
|
||||
let b:browsefilter="tcsh Scripts (*.tcsh)\t*.tcsh\n" .. s:browsefilter
|
||||
if (has("gui_win32") || has("gui_gtk")) &&
|
||||
\ (!exists("b:browsefilter") || exists("b:csh_set_browsefilter"))
|
||||
let b:browsefilter = "tcsh Scripts (*.tcsh)\t*.tcsh\n" .. s:browsefilter
|
||||
let s:undo_ftplugin = "unlet! b:browsefilter | " .. s:undo_ftplugin
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "unlet! b:browsefilter | " .. s:undo_ftplugin
|
||||
let b:undo_ftplugin = s:undo_ftplugin
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: udev(8) rules file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2023-10-07
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,17 +17,17 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
if has('unix') && executable('less')
|
||||
if !has('gui_running')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 UdevrulesKeywordPrg
|
||||
\ silent exe '!' . 'LESS= MANPAGER="less --pattern=''^\s{,8}' . <q-args> . '\b'' --hilite-search" man ' . 'udev' |
|
||||
\ redraw!
|
||||
elseif has('terminal')
|
||||
command -buffer -nargs=1 Sman
|
||||
command -buffer -nargs=1 UdevrulesKeywordPrg
|
||||
\ silent exe ':term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s{,8}' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'udev'
|
||||
endif
|
||||
if exists(':Sman') == 2
|
||||
if exists(':UdevrulesKeywordPrg') == 2
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:Sman
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer Sman'
|
||||
setlocal keywordprg=:UdevrulesKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer UdevrulesKeywordPrg'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -85,8 +85,8 @@ if !exists("no_plugin_maps") && !exists("no_vim_maps")
|
||||
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|\(export\s\+\)\?def\)\>', "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*"\)', "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
|
||||
|
||||
@@ -28,7 +28,7 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal suffixesadd=.zig,.zir
|
||||
|
||||
if has('comments')
|
||||
setlocal comments=:///,://!,://,:\\\\
|
||||
setlocal comments=:///,://!,://
|
||||
setlocal commentstring=//\ %s
|
||||
endif
|
||||
|
||||
@@ -53,7 +53,7 @@ endif
|
||||
unlet! s:tmp_cwd
|
||||
|
||||
if exists('g:zig_std_dir')
|
||||
let &l:path = &l:path . ',' . g:zig_std_dir
|
||||
let &l:path = g:zig_std_dir . ',' . &l:path
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin =
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Zsh shell script
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2021-04-03
|
||||
" Latest Revision: 2023-10-07
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-zsh
|
||||
|
||||
@@ -20,17 +20,17 @@ let b:undo_ftplugin = "setl com< cms< fo< "
|
||||
|
||||
if executable('zsh') && &shell !~# '/\%(nologin\|false\)$'
|
||||
if !has('gui_running') && executable('less')
|
||||
command! -buffer -nargs=1 RunHelp silent exe '!MANPAGER= zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null | LESS= less"' | redraw!
|
||||
command! -buffer -nargs=1 ZshKeywordPrg silent exe '!MANPAGER= zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null | LESS= less"' | redraw!
|
||||
elseif has('terminal')
|
||||
command! -buffer -nargs=1 RunHelp silent exe ':term zsh -c "autoload -Uz run-help; run-help <args>"'
|
||||
command! -buffer -nargs=1 ZshKeywordPrg silent exe ':term zsh -c "autoload -Uz run-help; run-help <args>"'
|
||||
else
|
||||
command! -buffer -nargs=1 RunHelp echo system('zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null"')
|
||||
command! -buffer -nargs=1 ZshKeywordPrg echo system('zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null"')
|
||||
endif
|
||||
if !exists('current_compiler')
|
||||
compiler zsh
|
||||
endif
|
||||
setlocal keywordprg=:RunHelp
|
||||
let b:undo_ftplugin .= 'keywordprg< | sil! delc -buffer RunHelp'
|
||||
setlocal keywordprg=:ZshKeywordPrg
|
||||
let b:undo_ftplugin .= 'keywordprg< | sil! delc -buffer ZshKeywordPrg'
|
||||
endif
|
||||
|
||||
let b:match_words = '\<if\>:\<elif\>:\<else\>:\<fi\>'
|
||||
|
||||
@@ -21,7 +21,7 @@ endif
|
||||
|
||||
" find out if an "...=..." expression is an assignment (or a conditional)
|
||||
" it scans 'line' first, and then the previous lines
|
||||
fun! CdlAsignment(lnum, line)
|
||||
fun! CdlAssignment(lnum, line)
|
||||
let f = -1
|
||||
let lnum = a:lnum
|
||||
let line = a:line
|
||||
@@ -90,7 +90,7 @@ fun! CdlGetIndent(lnum)
|
||||
end
|
||||
end
|
||||
|
||||
" remove members [a] of [b]:[c]... (inicio remainds valid)
|
||||
" remove members [a] of [b]:[c]... (inicio remains valid)
|
||||
let line = substitute(line, '\c\(\[[^]]*]\(\s*of\s*\|:\)*\)\+', ' ', 'g')
|
||||
while 1
|
||||
" search for the next interesting element
|
||||
@@ -111,7 +111,7 @@ fun! CdlGetIndent(lnum)
|
||||
else " c == '='
|
||||
" if it is an assignment increase indent
|
||||
if f == -1 " we don't know yet, find out
|
||||
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
|
||||
let f = CdlAssignment(lnum, strpart(line, 0, inicio))
|
||||
end
|
||||
if f == 1 " formula increase it
|
||||
let ind = ind + shiftwidth()
|
||||
@@ -125,7 +125,7 @@ fun! CdlGetIndent(lnum)
|
||||
let ind = ind - shiftwidth()
|
||||
elseif match(thisline, '^\s*=') >= 0
|
||||
if f == -1 " we don't know yet if is an assignment, find out
|
||||
let f = CdlAsignment(lnum, "")
|
||||
let f = CdlAssignment(lnum, "")
|
||||
end
|
||||
if f == 1 " formula increase it
|
||||
let ind = ind + shiftwidth()
|
||||
|
||||
@@ -1324,7 +1324,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
||||
" maybe A else
|
||||
" LTI
|
||||
"
|
||||
" Note about Emacs compabitility {{{
|
||||
" Note about Emacs compatibility {{{
|
||||
"
|
||||
" It would be fine to indent the examples above the following way:
|
||||
"
|
||||
|
||||
@@ -310,7 +310,7 @@ function IsFunctionArgPar(lnum, c)
|
||||
endfunction
|
||||
|
||||
function JumpToMatch(lnum, last_closed_bracket)
|
||||
" we use the % command to skip back (tries to ues matchit if possible,
|
||||
" we use the % command to skip back (tries to use matchit if possible,
|
||||
" otherwise resorts to vim's default, which is buggy but better than
|
||||
" nothing)
|
||||
call cursor(a:lnum, a:last_closed_bracket)
|
||||
|
||||
@@ -41,7 +41,7 @@ function GetKrlIndent() abort
|
||||
let currentLine = getline(v:lnum)
|
||||
if currentLine =~? '\v^;(\s*(end)?fold>)@!' && !get(g:, 'krlCommentIndent', 0)
|
||||
" If current line has a ; in column 1 and is no fold, keep zero indent.
|
||||
" This may be usefull if code is commented out at the first column.
|
||||
" This may be useful if code is commented out at the first column.
|
||||
return 0
|
||||
endif
|
||||
|
||||
@@ -117,7 +117,7 @@ function s:KrlPreNoneBlank(lnum) abort
|
||||
let nPreNoneBlank = prevnonblank(a:lnum)
|
||||
|
||||
while nPreNoneBlank > 0 && getline(nPreNoneBlank) =~? '\v^\s*(\&\w\+|;|continue>)'
|
||||
" Previouse none blank line irrelevant. Look further aback.
|
||||
" Previous none blank line irrelevant. Look further aback.
|
||||
let nPreNoneBlank = prevnonblank(nPreNoneBlank - 1)
|
||||
endwhile
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ function s:GetRapidIndentIntern() abort
|
||||
|
||||
if l:currentLine =~ '^!' && !get(g:,'rapidCommentIndent',0)
|
||||
" If current line is ! line comment, do not change indent
|
||||
" This may be usefull if code is commented out at the first column.
|
||||
" This may be useful if code is commented out at the first column.
|
||||
return 0
|
||||
endif
|
||||
|
||||
|
||||
@@ -78,10 +78,10 @@ function SystemVerilogIndent()
|
||||
" Multiple-line comment count
|
||||
if curr_line =~ '^\s*/\*' && curr_line !~ '/\*.\{-}\*/'
|
||||
let s:multiple_comment += 1
|
||||
if vverb | echom vverb_str "Start of multiple-line commnt" | endif
|
||||
if vverb | echom vverb_str "Start of multiple-line comment" | endif
|
||||
elseif curr_line =~ '\*/\s*$' && curr_line !~ '/\*.\{-}\*/'
|
||||
let s:multiple_comment -= 1
|
||||
if vverb | echom vverb_str "End of multiple-line commnt" | endif
|
||||
if vverb | echom vverb_str "End of multiple-line comment" | endif
|
||||
return ind
|
||||
endif
|
||||
" Maintain indentation during commenting.
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
" without having to combine them with letters (usufull for grammarians
|
||||
" in particular) (especially for dasia and psiln we use ' for psili
|
||||
" (that is apostrophe) and ;' for dasia. This is done in order to
|
||||
" preserve the posibility to write a plain < or >.
|
||||
" preserve the possibility to write a plain < or >.
|
||||
|
||||
" Ypogegrammeni is | following the character (the originally proposed
|
||||
" i after the character is problematic: can't write easily ai or vi) :
|
||||
|
||||
@@ -190,7 +190,7 @@ map I G$?.
^GYKeDP0S2Gl
|
||||
" bX - and yank the action corresponding to this state table entry
|
||||
" into the Macro register
|
||||
" GVJ - on bottom line, create a command to restore the current character
|
||||
" 0H - and save the command into the second Macro register
|
||||
" 0H - and save the command into the second Macro register
|
||||
" `a@r - go back to the current position and execute the macro to restore
|
||||
" the current character
|
||||
" @m - execute the action associated with this state
|
||||
|
||||
@@ -10,7 +10,7 @@ in vim: :so urm.vim<RETURN>
|
||||
in vim: * (to load the registers and boot the URM-machine :-)
|
||||
in vim: g (for 'go') and watch the fun. Per default, 3 and 4
|
||||
are multiplied. Watch the Program counter, it is
|
||||
visible as a komma moving around.
|
||||
visible as a comma moving around.
|
||||
|
||||
This is a "standard URM" (Universal register machine) interpreter. The URM
|
||||
concept is used in theoretical computer science to aid in theorem proving.
|
||||
|
||||
@@ -89,7 +89,7 @@ SynMenu AB.Assembly.PIC:pic
|
||||
SynMenu AB.Assembly.Turbo:tasm
|
||||
SynMenu AB.Assembly.VAX\ Macro\ Assembly:vmasm
|
||||
SynMenu AB.Assembly.Z-80:z8a
|
||||
SynMenu AB.Assembly.xa\ 6502\ cross\ assember:a65
|
||||
SynMenu AB.Assembly.xa\ 6502\ cross\ assembler:a65
|
||||
SynMenu AB.ASN\.1:asn
|
||||
SynMenu AB.Asterisk\ config:asterisk
|
||||
SynMenu AB.Asterisk\ voicemail\ config:asteriskvm
|
||||
@@ -327,7 +327,7 @@ SynMenu HIJK.Kivy:kivy
|
||||
SynMenu HIJK.KixTart:kix
|
||||
|
||||
SynMenu L.Lace:lace
|
||||
SynMenu L.LamdaProlog:lprolog
|
||||
SynMenu L.LambdaProlog:lprolog
|
||||
SynMenu L.Latte:latte
|
||||
SynMenu L.Ld\ script:ld
|
||||
SynMenu L.LDAP.LDIF:ldif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" autoload/editorconfig_core/ini.vim: Config-file parser for
|
||||
" editorconfig-core-vimscript and editorconfig-vim.
|
||||
" Modifed from the Python core's ini.py.
|
||||
" Modified from the Python core's ini.py.
|
||||
|
||||
" Copyright (c) 2012-2019 EditorConfig Team {{{2
|
||||
" All rights reserved.
|
||||
|
||||
@@ -1219,7 +1219,7 @@ func s:Run(args)
|
||||
call s:SendResumingCommand('-exec-run')
|
||||
endfunc
|
||||
|
||||
" :Frame - go to a specfic frame in the stack
|
||||
" :Frame - go to a specific frame in the stack
|
||||
func s:Frame(arg)
|
||||
" Note: we explicit do not use mi's command
|
||||
" call s:SendCommand('-stack-select-frame "' . a:arg .'"')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim plugin for showing matching parens
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Last Change: 2023 Oct 20
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Exit quickly when:
|
||||
@@ -18,6 +18,8 @@ if !exists("g:matchparen_insert_timeout")
|
||||
let g:matchparen_insert_timeout = 60
|
||||
endif
|
||||
|
||||
let s:has_matchaddpos = exists('*matchaddpos')
|
||||
|
||||
augroup matchparen
|
||||
" Replace all matchparen autocommands
|
||||
autocmd! CursorMoved,CursorMovedI,WinEnter,BufWinEnter,WinScrolled * call s:Highlight_Matching_Pair()
|
||||
@@ -38,6 +40,9 @@ set cpo-=C
|
||||
" The function that is invoked (very often) to define a ":match" highlighting
|
||||
" for any matching paren.
|
||||
func s:Highlight_Matching_Pair()
|
||||
if !exists("w:matchparen_ids")
|
||||
let w:matchparen_ids = []
|
||||
endif
|
||||
" Remove any previous match.
|
||||
call s:Remove_Matches()
|
||||
|
||||
@@ -185,11 +190,12 @@ func s:Highlight_Matching_Pair()
|
||||
|
||||
" If a match is found setup match highlighting.
|
||||
if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
|
||||
if exists('*matchaddpos')
|
||||
call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
|
||||
if s:has_matchaddpos
|
||||
call add(w:matchparen_ids, matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10))
|
||||
else
|
||||
exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
|
||||
\ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
|
||||
call add(w:matchparen_ids, 3)
|
||||
endif
|
||||
let w:paren_hl_on = 1
|
||||
endif
|
||||
@@ -197,12 +203,13 @@ endfunction
|
||||
|
||||
func s:Remove_Matches()
|
||||
if exists('w:paren_hl_on') && w:paren_hl_on
|
||||
silent! call matchdelete(3)
|
||||
while !empty(w:matchparen_ids)
|
||||
silent! call remove(w:matchparen_ids, 0)->matchdelete()
|
||||
endwhile
|
||||
let w:paren_hl_on = 0
|
||||
endif
|
||||
endfunc
|
||||
|
||||
|
||||
" Define commands that will disable and enable the plugin.
|
||||
command DoMatchParen call s:DoMatchParen()
|
||||
command NoMatchParen call s:NoMatchParen()
|
||||
|
||||
@@ -73,7 +73,7 @@ an 50.10.440 &Syntax.AB.Assembly.PIC :cal SetSyn("pic")<CR>
|
||||
an 50.10.450 &Syntax.AB.Assembly.Turbo :cal SetSyn("tasm")<CR>
|
||||
an 50.10.460 &Syntax.AB.Assembly.VAX\ Macro\ Assembly :cal SetSyn("vmasm")<CR>
|
||||
an 50.10.470 &Syntax.AB.Assembly.Z-80 :cal SetSyn("z8a")<CR>
|
||||
an 50.10.480 &Syntax.AB.Assembly.xa\ 6502\ cross\ assember :cal SetSyn("a65")<CR>
|
||||
an 50.10.480 &Syntax.AB.Assembly.xa\ 6502\ cross\ assembler :cal SetSyn("a65")<CR>
|
||||
an 50.10.490 &Syntax.AB.ASN\.1 :cal SetSyn("asn")<CR>
|
||||
an 50.10.500 &Syntax.AB.Asterisk\ config :cal SetSyn("asterisk")<CR>
|
||||
an 50.10.510 &Syntax.AB.Asterisk\ voicemail\ config :cal SetSyn("asteriskvm")<CR>
|
||||
@@ -303,7 +303,7 @@ an 50.50.710 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
|
||||
an 50.50.720 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
|
||||
an 50.50.730 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
|
||||
an 50.60.100 &Syntax.L.Lace :cal SetSyn("lace")<CR>
|
||||
an 50.60.110 &Syntax.L.LamdaProlog :cal SetSyn("lprolog")<CR>
|
||||
an 50.60.110 &Syntax.L.LambdaProlog :cal SetSyn("lprolog")<CR>
|
||||
an 50.60.120 &Syntax.L.Latte :cal SetSyn("latte")<CR>
|
||||
an 50.60.130 &Syntax.L.Ld\ script :cal SetSyn("ld")<CR>
|
||||
an 50.60.140 &Syntax.L.LDAP.LDIF :cal SetSyn("ldif")<CR>
|
||||
|
||||
@@ -27,8 +27,8 @@ test:
|
||||
@echo "$(RUN_VIMTEST)" >> testdir/vimcmd
|
||||
VIMRUNTIME=$(VIMRUNTIME) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim
|
||||
@# FIXME: Temporarily show the whole file to find out what goes wrong
|
||||
@#tail -n 6 testdir/messages
|
||||
@cat testdir/messages
|
||||
@#if [ -f testdir/messages ]; then tail -n 6 testdir/messages; fi
|
||||
@if [ -f testdir/messages ]; then cat testdir/messages; fi
|
||||
|
||||
|
||||
clean testclean:
|
||||
|
||||
@@ -122,7 +122,7 @@ syn keyword abapStatement TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES
|
||||
syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE
|
||||
syn keyword abapStatement WHEN WHILE WINDOW WRITE
|
||||
|
||||
" More statemets
|
||||
" More statements
|
||||
syn keyword abapStatement LINES
|
||||
syn keyword abapStatement INTO GROUP BY HAVING ORDER BY SINGLE
|
||||
syn keyword abapStatement APPENDING CORRESPONDING FIELDS OF TABLE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
" Last change: 2001 May 01
|
||||
"
|
||||
" This is incomplete. In particular, support for 68020 and
|
||||
" up and 68851/68881 co-processors is partial or non-existant.
|
||||
" up and 68851/68881 co-processors is partial or non-existent.
|
||||
" Feel free to contribute...
|
||||
"
|
||||
|
||||
@@ -220,7 +220,7 @@ syn match asm68kOperator "<>" " inequality
|
||||
syn match asm68kOperator "=" " must be before other ops containing '='
|
||||
syn match asm68kOperator ">="
|
||||
syn match asm68kOperator "<="
|
||||
syn match asm68kOperator "==" " operand existance - used in macro definitions
|
||||
syn match asm68kOperator "==" " operand existence - used in macro definitions
|
||||
|
||||
" Condition code style operators
|
||||
syn match asm68kOperator "<[CV][CS]>"
|
||||
|
||||
@@ -24,7 +24,7 @@ syn keyword chillLogical NOT not
|
||||
syn keyword chillRepeat while WHILE for FOR do DO od OD TO to
|
||||
syn keyword chillProcess START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop
|
||||
syn keyword chillBlock PROC proc PROCESS process
|
||||
syn keyword chillSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT peristent SET set EVER ever
|
||||
syn keyword chillSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT persistent SET set EVER ever
|
||||
|
||||
syn keyword chillTodo contained TODO FIXME XXX
|
||||
|
||||
|
||||
63
runtime/syntax/deb822sources.vim
Normal file
63
runtime/syntax/deb822sources.vim
Normal file
@@ -0,0 +1,63 @@
|
||||
" Vim syntax file
|
||||
" Language: Debian deb822-format source list file
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Last Change: 2023 May 25
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/deb822sources.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
" case insensitive
|
||||
syn case ignore
|
||||
|
||||
" Comments are matched from the first character of a line to the end-of-line
|
||||
syn region deb822sourcesComment start="^#" end="$"
|
||||
|
||||
" A bunch of useful keywords
|
||||
syn match deb822sourcesType /\(deb-src\|deb\)/
|
||||
syn match deb822sourcesFreeComponent /\(main\|universe\)/
|
||||
syn match deb822sourcesNonFreeComponent /\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)/
|
||||
|
||||
" Include Debian versioning information
|
||||
runtime! syntax/shared/debversions.vim
|
||||
|
||||
exe 'syn match deb822sourcesSupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
|
||||
exe 'syn match deb822sourcesUnsupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
|
||||
|
||||
unlet g:debSharedSupportedVersions
|
||||
unlet g:debSharedUnsupportedVersions
|
||||
|
||||
syn region deb822sourcesSuites start="\(^Suites: *\)\@<=" end="$" contains=deb822sourcesSupportedSuites,deb822sourcesUnsupportedSuites oneline
|
||||
|
||||
syn keyword deb822sourcesForce contained force
|
||||
syn keyword deb822sourcesYesNo contained yes no
|
||||
|
||||
" Match uri's
|
||||
syn match deb822sourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+'
|
||||
|
||||
syn match deb822sourcesEntryField "^\%(Types\|URIs\|Suites\|Components\): *"
|
||||
syn match deb822sourcesOptionField "^\%(Signed-By\|Check-Valid-Until\|Valid-Until-Min\|Valid-Until-Max\|Date-Max-Future\|InRelease-Path\): *"
|
||||
syn match deb822sourcesMultiValueOptionField "^\%(Architectures\|Languages\|Targets\)\%(-Add\|-Remove\)\?: *"
|
||||
|
||||
syn region deb822sourcesStrictField matchgroup=deb822sourcesBooleanOptionField start="^\%(PDiffs\|Allow-Insecure\|Allow-Weak\|Allow-Downgrade-To-Insecure\|Trusted\|Check-Date\): *" end="$" contains=deb822sourcesYesNo oneline
|
||||
syn region deb822sourcesStrictField matchgroup=deb822sourcesForceBooleanOptionField start="^\%(By-Hash\): *" end="$" contains=deb822sourcesForce,deb822sourcesYesNo oneline
|
||||
|
||||
hi def link deb822sourcesComment Comment
|
||||
hi def link deb822sourcesEntryField Keyword
|
||||
hi def link deb822sourcesOptionField Special
|
||||
hi def link deb822sourcesMultiValueOptionField Special
|
||||
hi def link deb822sourcesBooleanOptionField Special
|
||||
hi def link deb822sourcesForceBooleanOptionField Special
|
||||
hi def link deb822sourcesStrictField Error
|
||||
hi def link deb822sourcesType Identifier
|
||||
hi def link deb822sourcesFreeComponent Identifier
|
||||
hi def link deb822sourcesNonFreeComponent Identifier
|
||||
hi def link deb822sourcesForce Identifier
|
||||
hi def link deb822sourcesYesNo Identifier
|
||||
hi def link deb822sourcesUri Constant
|
||||
hi def link deb822sourcesSupportedSuites Type
|
||||
hi def link deb822sourcesUnsupportedSuites WarningMsg
|
||||
|
||||
let b:current_syntax = 'deb822sources'
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2023 Jan 16
|
||||
" Last Change: 2023 Oct 11
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debchangelog.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -17,34 +17,19 @@ syn case ignore
|
||||
let s:urgency='urgency=\(low\|medium\|high\|emergency\|critical\)\( [^[:space:],][^,]*\)\='
|
||||
let s:binNMU='binary-only=yes'
|
||||
|
||||
let s:cpo = &cpo
|
||||
set cpo-=C
|
||||
let s:supported = [
|
||||
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', 'sid', 'rc-buggy',
|
||||
\ 'buster', 'bullseye', 'bookworm', 'trixie', 'forky',
|
||||
\
|
||||
\ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'kinetic', 'lunar',
|
||||
\ 'devel'
|
||||
\ ]
|
||||
let s:unsupported = [
|
||||
\ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||
\ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
|
||||
\ 'jessie', 'stretch',
|
||||
\
|
||||
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
|
||||
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
||||
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
|
||||
\ 'disco', 'eoan', 'hirsute', 'impish', 'groovy'
|
||||
\ ]
|
||||
let &cpo=s:cpo
|
||||
" Include Debian versioning information
|
||||
runtime! syntax/shared/debversions.vim
|
||||
|
||||
exe 'syn match debchangelogTarget contained "\%( \%('.join(g:debSharedSupportedVersions, '\|').'\)\>[-[:alnum:]]*\)\+"'
|
||||
exe 'syn match debchangelogUnsupportedTarget contained "\%( \%('.join(g:debSharedUnsupportedVersions, '\|').'\)\>[-[:alnum:]]*\)\+"'
|
||||
|
||||
unlet g:debSharedSupportedVersions
|
||||
unlet g:debSharedUnsupportedVersions
|
||||
|
||||
" Define some common expressions we can use later on
|
||||
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
||||
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
exe 'syn match debchangelogTarget contained "\%( \%('.join(s:supported, '\|').'\)\>[-[:alnum:]]*\)\+"'
|
||||
exe 'syn match debchangelogUnsupportedTarget contained "\%( \%('.join(s:unsupported, '\|').'\)\>[-[:alnum:]]*\)\+"'
|
||||
syn match debchangelogUnreleased contained / UNRELEASED/
|
||||
syn match debchangelogVersion contained "(.\{-})"
|
||||
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
||||
@@ -58,19 +43,19 @@ syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail
|
||||
syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link debchangelogHeader Error
|
||||
hi def link debchangelogFooter Identifier
|
||||
hi def link debchangelogEntry Normal
|
||||
hi def link debchangelogCloses Statement
|
||||
hi def link debchangelogLP Statement
|
||||
hi def link debchangelogFirstKV Identifier
|
||||
hi def link debchangelogOtherKV Identifier
|
||||
hi def link debchangelogName Comment
|
||||
hi def link debchangelogVersion Identifier
|
||||
hi def link debchangelogTarget Identifier
|
||||
hi def link debchangelogUnsupportedTarget Identifier
|
||||
hi def link debchangelogHeader Error
|
||||
hi def link debchangelogFooter Identifier
|
||||
hi def link debchangelogEntry Normal
|
||||
hi def link debchangelogCloses Statement
|
||||
hi def link debchangelogLP Statement
|
||||
hi def link debchangelogFirstKV Identifier
|
||||
hi def link debchangelogOtherKV Identifier
|
||||
hi def link debchangelogName Comment
|
||||
hi def link debchangelogVersion Identifier
|
||||
hi def link debchangelogUnreleased WarningMsg
|
||||
hi def link debchangelogEmail Special
|
||||
hi def link debchangelogEmail Special
|
||||
hi def link debchangelogTarget Identifier
|
||||
hi def link debchangelogUnsupportedTarget Identifier
|
||||
|
||||
let b:current_syntax = 'debchangelog'
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user