Compare commits
443 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
836ed5271e | ||
|
|
014d50df80 | ||
|
|
d839a5b3b0 | ||
|
|
c0a3eda6ba | ||
|
|
38315295ef | ||
|
|
bb1233d328 | ||
|
|
bb26f709ea | ||
|
|
196c376682 | ||
|
|
84a343a6ed | ||
|
|
17b4c7cfa2 | ||
|
|
3e44fbf316 | ||
|
|
e1a435c508 | ||
|
|
2fd9ac7a69 | ||
|
|
aabcca3655 | ||
|
|
a167e8a416 | ||
|
|
3e152c76ad | ||
|
|
96b2154b73 | ||
|
|
31170af24a | ||
|
|
c7c10f8c11 | ||
|
|
2f7e4eb335 | ||
|
|
1526d4f23c | ||
|
|
14afa278c1 | ||
|
|
44c8072ef6 | ||
|
|
0c4405a6b2 | ||
|
|
a2f13bf782 | ||
|
|
59799f3afa | ||
|
|
ce288c7fb0 | ||
|
|
308a3130be | ||
|
|
20a159b557 | ||
|
|
0ebe55af54 | ||
|
|
486cffab3e | ||
|
|
c08b94b072 | ||
|
|
1e38198a41 | ||
|
|
a09b1604d4 | ||
|
|
b405c79004 | ||
|
|
39f9298cb2 | ||
|
|
3281a0ae62 | ||
|
|
90f5d67840 | ||
|
|
3cee950fc9 | ||
|
|
d6a762fe1b | ||
|
|
62f5be6ea6 | ||
|
|
126bc4690f | ||
|
|
ade0815856 | ||
|
|
03d6e06edd | ||
|
|
bb07b1ac14 | ||
|
|
891353671a | ||
|
|
706b6f5867 | ||
|
|
1ee1d9b43d | ||
|
|
dd9ed09d8e | ||
|
|
17a6d696bd | ||
|
|
c93a2b3327 | ||
|
|
7e0df5eee9 | ||
|
|
5ba6e41d37 | ||
|
|
59e1d7f353 | ||
|
|
639d93fc0e | ||
|
|
487dd1716a | ||
|
|
397b9da29d | ||
|
|
d1833d2827 | ||
|
|
dba9eb46e6 | ||
|
|
6b9cf3139a | ||
|
|
8b183450ad | ||
|
|
a94a0555d9 | ||
|
|
48b7eb1ceb | ||
|
|
e32465190c | ||
|
|
32d6bd6df2 | ||
|
|
8f9de4991e | ||
|
|
cda0d17f59 | ||
|
|
da9c966893 | ||
|
|
4fca92faa2 | ||
|
|
b362995430 | ||
|
|
fc3c204bbe | ||
|
|
8e2a229189 | ||
|
|
1434ea03b1 | ||
|
|
57eb1d496b | ||
|
|
eeef7c7743 | ||
|
|
887b4981e7 | ||
|
|
f56f490ca2 | ||
|
|
a2bb21a895 | ||
|
|
c03990d30f | ||
|
|
c43a0614d4 | ||
|
|
c65643cbec | ||
|
|
7270a5a843 | ||
|
|
7f8ad9b374 | ||
|
|
982cda6976 | ||
|
|
bc51ec53d0 | ||
|
|
761ea77670 | ||
|
|
b89ff6c2e1 | ||
|
|
fa2bcbdebc | ||
|
|
25599902ca | ||
|
|
126731c8fd | ||
|
|
efd83d441b | ||
|
|
eb2aebeb79 | ||
|
|
8a65a49d50 | ||
|
|
d82c918e2f | ||
|
|
46ec899026 | ||
|
|
04c9e78cd3 | ||
|
|
3be4ad76df | ||
|
|
1bfe86a7d3 | ||
|
|
7132935413 | ||
|
|
adfea9b4e6 | ||
|
|
6a6a44ffb5 | ||
|
|
66d8d286cd | ||
|
|
22fc41f1f7 | ||
|
|
d305729bc5 | ||
|
|
6abe5e4904 | ||
|
|
c849b17e19 | ||
|
|
93f6454724 | ||
|
|
cad3b2421d | ||
|
|
589aa284f6 | ||
|
|
9662f33480 | ||
|
|
9c4de84b2d | ||
|
|
a6e28b1d05 | ||
|
|
47a668bbe8 | ||
|
|
615ad4ced1 | ||
|
|
54fb7ba256 | ||
|
|
f7deb815b0 | ||
|
|
bb99474ceb | ||
|
|
66467cf5d8 | ||
|
|
bb0860abc9 | ||
|
|
067adc1ff2 | ||
|
|
c0b3c19120 | ||
|
|
9340aa1bf8 | ||
|
|
af2c8e256a | ||
|
|
3769100a8e | ||
|
|
85cd509885 | ||
|
|
02bbc8a706 | ||
|
|
a7a2a2b5ae | ||
|
|
5a2575b484 | ||
|
|
96dab9c9b1 | ||
|
|
e581227421 | ||
|
|
27b61f20b7 | ||
|
|
becf1844e0 | ||
|
|
688ebe596d | ||
|
|
ee865249b1 | ||
|
|
b88f9e4a04 | ||
|
|
0fde6aebdd | ||
|
|
43b99c9376 | ||
|
|
624b75a272 | ||
|
|
64329714c7 | ||
|
|
25ea22439e | ||
|
|
cced80dcbb | ||
|
|
e9d1259111 | ||
|
|
af9a7a04f1 | ||
|
|
44309b9d08 | ||
|
|
b124b8d276 | ||
|
|
a566a78029 | ||
|
|
0bda7830ac | ||
|
|
827483054d | ||
|
|
1a2c4932a3 | ||
|
|
1a224edb2e | ||
|
|
9239eadc71 | ||
|
|
4de931daae | ||
|
|
72473ce9f8 | ||
|
|
3add0d5e75 | ||
|
|
6e1c84cc4d | ||
|
|
48a3b146b4 | ||
|
|
714671de35 | ||
|
|
15dd6b4272 | ||
|
|
5608f3dc93 | ||
|
|
2566a9f290 | ||
|
|
aa55185100 | ||
|
|
2f4be00ca5 | ||
|
|
9d5bb58637 | ||
|
|
d680d40539 | ||
|
|
774fe9d8fc | ||
|
|
5711d76818 | ||
|
|
61cec2e761 | ||
|
|
97194523d5 | ||
|
|
13e1af7de9 | ||
|
|
7cf31ce9c4 | ||
|
|
ad5c9b4b11 | ||
|
|
3416cee36f | ||
|
|
b486ed8266 | ||
|
|
689f3bf313 | ||
|
|
e1c507a965 | ||
|
|
b2013396d4 | ||
|
|
1f6faff912 | ||
|
|
c02bef26fd | ||
|
|
9f4a80e2a7 | ||
|
|
2844765e90 | ||
|
|
8b004081c4 | ||
|
|
239c4e4abe | ||
|
|
1afe8c3a4d | ||
|
|
31ec66403d | ||
|
|
88b735973c | ||
|
|
5eb9448743 | ||
|
|
d8be37af0f | ||
|
|
ba023e135b | ||
|
|
d3170f59e0 | ||
|
|
a2578e08d5 | ||
|
|
3c8d32e4fc | ||
|
|
16f7098e68 | ||
|
|
c8b99e2d13 | ||
|
|
0e40501a9d | ||
|
|
f412241fcd | ||
|
|
a2fff3fb94 | ||
|
|
ba3a5a7372 | ||
|
|
58706ac040 | ||
|
|
2f7c957c8d | ||
|
|
2e58b7684f | ||
|
|
be863b2633 | ||
|
|
824286c9a7 | ||
|
|
fb45809f01 | ||
|
|
b7fc24d3a3 | ||
|
|
97501afda3 | ||
|
|
138381bde0 | ||
|
|
861dade4e3 | ||
|
|
12d274af44 | ||
|
|
57300a22dc | ||
|
|
bc84fd145b | ||
|
|
175662f4f2 | ||
|
|
f2290a6823 | ||
|
|
71c794ccc5 | ||
|
|
2e154d8135 | ||
|
|
0d9160e11c | ||
|
|
393d398247 | ||
|
|
78b10eab6c | ||
|
|
e4fdb1e4e7 | ||
|
|
7dd8ee2103 | ||
|
|
9962c092cc | ||
|
|
87757c6b0a | ||
|
|
586294a041 | ||
|
|
3f9d2378bd | ||
|
|
d128889b30 | ||
|
|
0992f62fc1 | ||
|
|
9a667b4dba | ||
|
|
30df42557c | ||
|
|
690a42d54e | ||
|
|
5d552d652b | ||
|
|
8de753148f | ||
|
|
edce68912e | ||
|
|
3ab6941713 | ||
|
|
f10fa3928c | ||
|
|
a24f5be86d | ||
|
|
baa781a4c3 | ||
|
|
836e54f5de | ||
|
|
e85a66a4d4 | ||
|
|
d0bf380efa | ||
|
|
6865bdc914 | ||
|
|
ada6b27ff1 | ||
|
|
1341176e7b | ||
|
|
f6a308c65b | ||
|
|
fe1d3c8af7 | ||
|
|
ce1d1969f3 | ||
|
|
2ab4f907a2 | ||
|
|
59bd74ed4c | ||
|
|
6f85cec4fb | ||
|
|
68ee1cf7de | ||
|
|
7306e8fcdb | ||
|
|
41adebe572 | ||
|
|
87406c33c7 | ||
|
|
6ac2e4aa0a | ||
|
|
ea528a9482 | ||
|
|
48d7f5b5a3 | ||
|
|
b7b7fa04bf | ||
|
|
bda2e4eb16 | ||
|
|
6715b3510e | ||
|
|
3987eac572 | ||
|
|
a46e9e45a9 | ||
|
|
43855b7396 | ||
|
|
49b89bb172 | ||
|
|
41ee98c3c5 | ||
|
|
bda55df3b8 | ||
|
|
c4bca1de0b | ||
|
|
8331310c06 | ||
|
|
1adada0158 | ||
|
|
dbe45be625 | ||
|
|
f2ec8d4afc | ||
|
|
2ffd35fe8f | ||
|
|
32a1b26ef3 | ||
|
|
93c2d5bf7f | ||
|
|
b3eaae21b9 | ||
|
|
eb380b991c | ||
|
|
b0905e269d | ||
|
|
a4874d4d36 | ||
|
|
bcb06c92c4 | ||
|
|
0cd7f3536b | ||
|
|
af22007784 | ||
|
|
faed074ab7 | ||
|
|
57d6d00433 | ||
|
|
e2c0f81dd0 | ||
|
|
d6a5edd613 | ||
|
|
89cce31ebc | ||
|
|
f79695c2d8 | ||
|
|
244198f039 | ||
|
|
e9d331d173 | ||
|
|
48c823ca01 | ||
|
|
5bcc492649 | ||
|
|
08e5b128b8 | ||
|
|
21449ee49c | ||
|
|
b7b4bb36aa | ||
|
|
88be7a6c68 | ||
|
|
0ae9e19540 | ||
|
|
7a734b7148 | ||
|
|
5911ac5023 | ||
|
|
ba11e78f1d | ||
|
|
96076bf41e | ||
|
|
5e34eec6f8 | ||
|
|
96b3ef2389 | ||
|
|
a8b86605f3 | ||
|
|
f9d87fa6ba | ||
|
|
a494ce1c64 | ||
|
|
c233c2e6a5 | ||
|
|
a9b5e4af43 | ||
|
|
4ade668fb6 | ||
|
|
0d50d6089d | ||
|
|
29ebebd343 | ||
|
|
29b29c6b30 | ||
|
|
5d2354fc07 | ||
|
|
20eb68a8f2 | ||
|
|
b46e3aa0fa | ||
|
|
fdcdded4d5 | ||
|
|
b211916e0a | ||
|
|
5ecee30dcd | ||
|
|
651edf33eb | ||
|
|
b84ab0288f | ||
|
|
54585fd04c | ||
|
|
523f9f5898 | ||
|
|
ba479348d4 | ||
|
|
a5b744ef93 | ||
|
|
fa16c7ab3f | ||
|
|
e92989b07a | ||
|
|
66b72f48c3 | ||
|
|
2bfd1ee161 | ||
|
|
7a4cf4b256 | ||
|
|
1c0746829e | ||
|
|
73aa24ea72 | ||
|
|
d419fa2115 | ||
|
|
30dcd0e1fd | ||
|
|
5e35184241 | ||
|
|
7cf35bc1be | ||
|
|
44a2e3c5d4 | ||
|
|
bbeaa94e0e | ||
|
|
3b03b435a2 | ||
|
|
32f4febdc8 | ||
|
|
6b49fba8c8 | ||
|
|
1fa3f0c215 | ||
|
|
a899b27206 | ||
|
|
792379eedf | ||
|
|
b657310bd3 | ||
|
|
76866af3a5 | ||
|
|
73b9650519 | ||
|
|
d3d54f473f | ||
|
|
b90c2395b2 | ||
|
|
03125277e9 | ||
|
|
ef925556cb | ||
|
|
223189389a | ||
|
|
81f9815831 | ||
|
|
fe803c8c04 | ||
|
|
26ebe21caa | ||
|
|
5d14da3690 | ||
|
|
2249cc0a47 | ||
|
|
1c471ac548 | ||
|
|
037c32e428 | ||
|
|
42d2c5e803 | ||
|
|
fa0b069728 | ||
|
|
1c2c4ecb4c | ||
|
|
8fe9e55a7d | ||
|
|
468c62e4fd | ||
|
|
ca793e60db | ||
|
|
fc378a88d8 | ||
|
|
a931371694 | ||
|
|
74f0a77bb9 | ||
|
|
159d392427 | ||
|
|
1be5b375c4 | ||
|
|
5bbdd0b082 | ||
|
|
a9b95c3d33 | ||
|
|
cd68f21f60 | ||
|
|
1cbe3e89c9 | ||
|
|
c877057e81 | ||
|
|
46b02602d6 | ||
|
|
8d9d2b222d | ||
|
|
dcff497373 | ||
|
|
99b9847bd8 | ||
|
|
d75ab0cbf5 | ||
|
|
476b65ebac | ||
|
|
c50f4d07c4 | ||
|
|
5fbe72edda | ||
|
|
1c00af2a24 | ||
|
|
8b92af645c | ||
|
|
736cd18671 | ||
|
|
e4c157b9c1 | ||
|
|
8e83105798 | ||
|
|
9d065a4862 | ||
|
|
03e5ee25fd | ||
|
|
fff0132399 | ||
|
|
8311e7d6b4 | ||
|
|
48295111e5 | ||
|
|
acd04b2fd7 | ||
|
|
b7ebe610cc | ||
|
|
234c728c53 | ||
|
|
cb27992cda | ||
|
|
93318a9933 | ||
|
|
8ae8b304ee | ||
|
|
152a450d88 | ||
|
|
7841ca185d | ||
|
|
e5c96e344c | ||
|
|
e5297e39b3 | ||
|
|
f548ec46e4 | ||
|
|
6897f18ee6 | ||
|
|
f5aa269f2d | ||
|
|
631a50ceb9 | ||
|
|
7e47c1e735 | ||
|
|
aef2e53cf8 | ||
|
|
1ded411a41 | ||
|
|
d296af94d0 | ||
|
|
85f0711b4e | ||
|
|
91af4c4180 | ||
|
|
f5e3b5c04f | ||
|
|
2eb995b569 | ||
|
|
a9657c8952 | ||
|
|
532a5fb131 | ||
|
|
16e9b477ab | ||
|
|
ae31d7bfb4 | ||
|
|
51289207f8 | ||
|
|
6cc9bd4001 | ||
|
|
5923216f79 | ||
|
|
053aee01f7 | ||
|
|
600cd88cdf | ||
|
|
e965b7ac5f | ||
|
|
6701480c43 | ||
|
|
bfa16364f1 | ||
|
|
274efcc7e6 | ||
|
|
138fb951e0 | ||
|
|
a0316cd299 | ||
|
|
ecf8f15884 | ||
|
|
30b4ddf925 | ||
|
|
1319009d59 | ||
|
|
c413ac7068 | ||
|
|
572d46035f | ||
|
|
a304e49790 | ||
|
|
30cf017f2a | ||
|
|
ed4eb74f7a | ||
|
|
72c3ca9f8d | ||
|
|
3ca6776a57 | ||
|
|
91782b4aeb | ||
|
|
446a98f0b6 | ||
|
|
9e9fe66437 | ||
|
|
de535cfe77 | ||
|
|
df630970bf | ||
|
|
aa9fc8eb94 | ||
|
|
601cfa9a23 | ||
|
|
328332b0b0 |
@@ -5,9 +5,9 @@ env:
|
||||
freebsd_task:
|
||||
name: FreeBSD
|
||||
matrix:
|
||||
- name: FreeBSD 14.2
|
||||
- name: FreeBSD 14.3
|
||||
freebsd_instance:
|
||||
image_family: freebsd-14-2
|
||||
image_family: freebsd-14-3
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- pkg install -y gettext
|
||||
@@ -23,7 +23,7 @@ freebsd_task:
|
||||
- sudo -u cirrus make test
|
||||
on_failure:
|
||||
test_artifacts:
|
||||
name: "Cirrus-CI-freebsd-failed-tests"
|
||||
name: "Cirrus-${CIRRUS_BUILD_ID}-freebsd-failed-tests"
|
||||
path: |
|
||||
runtime/indent/testdir/*.fail
|
||||
runtime/syntax/testdir/failed/*
|
||||
|
||||
@@ -35,3 +35,12 @@ trim_trailing_whitespace = false
|
||||
[src/testdir/test*.vim]
|
||||
# Some tests need trailing whitespaces, for example `set showbreak=>>\ `
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
#
|
||||
# Some custom files do not use tabs
|
||||
#
|
||||
[src/sign.c]
|
||||
indent_style = space
|
||||
|
||||
[src/sound.c]
|
||||
indent_style = space
|
||||
|
||||
30
.gitattributes
vendored
30
.gitattributes
vendored
@@ -1 +1,31 @@
|
||||
src/testdir/test42.in diff
|
||||
|
||||
# `vim.pot` is updated every time any of the *.c files are modified. And as it
|
||||
# contains line numbers for strings from *.c files, inserting a line into a
|
||||
# single .c file may cause many lines in the `vim.pot` file to be updated.
|
||||
#
|
||||
# This generates a lot of "noise" in the diffs. And especially considering that
|
||||
# `vim.pot` is a generated file, looking at changes in this file is not useful.
|
||||
#
|
||||
# By marking it as binary we tell the git machinery that it should not be
|
||||
# presented to the user in patches, use "git diff --text" to override
|
||||
src/po/vim.pot -diff
|
||||
|
||||
# Although vim.pot has been marked as binary, you may want to check the textual differences
|
||||
# using git --text but still want to ignore some noisy output like:
|
||||
# - POT-Creation Date
|
||||
# - comments pointing to the message source location in
|
||||
# *.c/*.h/*.vim/*.cpp/*.in/*.xs files followed by line numbers
|
||||
# Note: location comments should be no longer part of vim.pot, since commit 2844765e903214490e1
|
||||
# which add the --no-location argument for xgettext to no longer ouput such comments
|
||||
#
|
||||
# To ignore certain changes, setup a custom textconv filter using:
|
||||
# git config diff.ignore_vim_pot.textconv "grep -Ev '^.(POT-Creation-Date:|.*\\.([ch]|vim|in|xs|cpp):).*$'"
|
||||
src/po/vim.pot diff=ignore_vim_pot
|
||||
|
||||
# GitHub reacts to the `linguist-generated` attribute, by ignoring marked files
|
||||
# for the repository's language statistics and hiddning changes in these files
|
||||
# by default in diffs.
|
||||
#
|
||||
# https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github
|
||||
src/po/vim.pot linguist-generated=true
|
||||
|
||||
1356
.github/MAINTAINERS
vendored
1356
.github/MAINTAINERS
vendored
File diff suppressed because it is too large
Load Diff
2
.github/actions/test_artifacts/action.yml
vendored
2
.github/actions/test_artifacts/action.yml
vendored
@@ -7,7 +7,7 @@ runs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# Name of the artifact to upload.
|
||||
name: ${{ github.workflow }}-${{ github.job }}-${{ join(matrix.*, '-') }}-failed-tests
|
||||
name: GH-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.job }}-${{ join(matrix.*, '-') }}-failed-tests
|
||||
|
||||
# A file, directory or wildcard pattern that describes what
|
||||
# to upload.
|
||||
|
||||
2
.github/labeler.yml
vendored
2
.github/labeler.yml
vendored
@@ -146,7 +146,7 @@ plugin-netrw:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'runtime/plugin/netrwPlugin.vim'
|
||||
- 'runtime/autoload/netrw*'
|
||||
- 'runtime/pack/dist/opt/netrw/**'
|
||||
|
||||
xxd:
|
||||
- all:
|
||||
|
||||
61
.github/workflows/ci.yml
vendored
61
.github/workflows/ci.yml
vendored
@@ -29,7 +29,6 @@ jobs:
|
||||
LOG_DIR: ${{ github.workspace }}/logs
|
||||
TERM: xterm
|
||||
DISPLAY: ':99'
|
||||
WAYLAND_DISPLAY: 'wayland-1'
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
strategy:
|
||||
@@ -86,10 +85,16 @@ jobs:
|
||||
- features: normal
|
||||
compiler: gcc
|
||||
extra: [vimtags]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
extra: [no_x11]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
extra: [socketserver]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Check Filelist (for packaging)
|
||||
run: |
|
||||
@@ -125,6 +130,10 @@ jobs:
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
PKGS=( \
|
||||
gettext \
|
||||
x11-utils \
|
||||
labwc \
|
||||
wl-clipboard \
|
||||
wayland-utils \
|
||||
libgtk-3-dev:${{ matrix.architecture }} \
|
||||
libgtk-3-bin:${{ matrix.architecture }} \
|
||||
desktop-file-utils \
|
||||
@@ -141,7 +150,6 @@ jobs:
|
||||
libwayland-cursor0:${{ matrix.architecture }} \
|
||||
locales-all \
|
||||
software-properties-common \
|
||||
sway \
|
||||
)
|
||||
if ${{ contains(matrix.extra, 'asan') }} && ${{ contains(matrix.architecture, 'native') }}; then
|
||||
PKGS+=( \
|
||||
@@ -218,7 +226,7 @@ jobs:
|
||||
tiny)
|
||||
echo "TEST=testtiny"
|
||||
if ${{ contains(matrix.extra, 'nogui') }}; then
|
||||
echo "CONFOPT=--disable-gui"
|
||||
CONFOPT="--disable-gui"
|
||||
fi
|
||||
;;
|
||||
normal)
|
||||
@@ -230,10 +238,16 @@ jobs:
|
||||
PYTHON3_CONFOPT="--with-python3-stable-abi=3.8"
|
||||
fi
|
||||
# The ubuntu-24.04 CI runner does not provide a python2 package.
|
||||
echo "CONFOPT=--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}"
|
||||
CONFOPT="--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}"
|
||||
;;
|
||||
esac
|
||||
|
||||
if ${{ contains(matrix.extra, 'no_x11') }}; then
|
||||
CONFOPT="${CONFOPT} --without-x --disable-gui"
|
||||
fi
|
||||
if ${{ contains(matrix.extra, 'socketserver') }}; then
|
||||
CONFOPT="${CONFOPT} --enable-socketserver"
|
||||
fi
|
||||
if ${{ matrix.coverage == true }}; then
|
||||
CFLAGS="${CFLAGS} --coverage -DUSE_GCOV_FLUSH"
|
||||
echo "LDFLAGS=--coverage"
|
||||
@@ -257,6 +271,7 @@ jobs:
|
||||
echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
|
||||
fi
|
||||
echo "CFLAGS=${CFLAGS}"
|
||||
echo "CONFOPT=${CONFOPT}"
|
||||
# Disables GTK attempt to integrate with the accessibility service that does run in CI.
|
||||
echo "NO_AT_BRIDGE=1"
|
||||
) >> $GITHUB_ENV
|
||||
@@ -270,8 +285,6 @@ jobs:
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
sudo usermod -a -G audio "${USER}"
|
||||
sudo bash ci/setup-xvfb.sh
|
||||
# Sway requires user session
|
||||
bash ci/setup-sway.sh
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(matrix.extra, 'unittests')
|
||||
@@ -315,10 +328,17 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 25
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
make ${SHADOWOPT} ${TEST}
|
||||
|
||||
# Enable to debug failing tests live and ssh into the CI runners
|
||||
# - name: Setup tmate session
|
||||
# if: ${{ failure() }}
|
||||
# uses: mxschmitt/action-tmate@v3
|
||||
# with:
|
||||
# limit-access-to-actor: true
|
||||
|
||||
- if: ${{ !cancelled() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
|
||||
@@ -375,7 +395,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.features == 'huge'
|
||||
@@ -565,7 +585,7 @@ jobs:
|
||||
release: false
|
||||
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Create a list of download URLs
|
||||
shell: cmd
|
||||
@@ -729,16 +749,17 @@ jobs:
|
||||
# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
|
||||
# path: ./artifacts
|
||||
|
||||
- name: Install packages for testing
|
||||
shell: bash
|
||||
run: |
|
||||
if ${{ matrix.features != 'TINY' }}; then
|
||||
if ${{ matrix.arch == 'x64' }}; then
|
||||
choco install netbeans --no-progress
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
# disabled because of https://github.com/tunisiano187/Chocolatey-packages/issues/3916
|
||||
#- name: Install packages for testing
|
||||
# shell: bash
|
||||
# run: |
|
||||
# if ${{ matrix.features != 'TINY' }}; then
|
||||
# if ${{ matrix.arch == 'x64' }}; then
|
||||
# choco install netbeans --no-progress
|
||||
# else
|
||||
# exit 0
|
||||
# fi
|
||||
# fi
|
||||
|
||||
- name: Test and show the result of testing gVim
|
||||
if: matrix.GUI == 'yes' || matrix.VIMDLL == 'yes'
|
||||
|
||||
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
@@ -44,7 +44,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
||||
2
.github/workflows/coverity.yml
vendored
2
.github/workflows/coverity.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
if: env.TOKEN
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Download Coverity
|
||||
if: env.TOKEN
|
||||
|
||||
15
.github/workflows/link-check.yml
vendored
Normal file
15
.github/workflows/link-check.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# .github/workflows/link-check.yml
|
||||
name: Check Links
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 3 * * 0' # Every Sunday at 03:00 UTC
|
||||
jobs:
|
||||
lychee:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Run Lychee
|
||||
uses: lycheeverse/lychee-action@v2
|
||||
with:
|
||||
args: --verbose --config ci/lychee.toml .
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -22,6 +22,8 @@ src/auto/osdef.h
|
||||
src/auto/link.log
|
||||
src/auto/link.sed
|
||||
src/auto/pathdef.c
|
||||
src/auto/wayland/*.c
|
||||
src/auto/wayland/*.h
|
||||
|
||||
# Windows
|
||||
*.exe
|
||||
@@ -64,7 +66,6 @@ src/xxd/xxd.dSYM
|
||||
*~
|
||||
*.pyc
|
||||
*.log
|
||||
src/po/vim.pot
|
||||
src/tags
|
||||
/tags
|
||||
/GPATH
|
||||
|
||||
@@ -24,6 +24,8 @@ src/auto/osdef.h
|
||||
src/auto/link.log
|
||||
src/auto/link.sed
|
||||
src/auto/pathdef.c
|
||||
src/auto/wayland/*.c
|
||||
src/auto/wayland/*.h
|
||||
|
||||
# Windows
|
||||
*.exe
|
||||
@@ -66,7 +68,6 @@ src/xxd/xxd.dSYM
|
||||
*~
|
||||
*.pyc
|
||||
*.log
|
||||
src/po/vim.pot
|
||||
src/tags
|
||||
/tags
|
||||
/GPATH
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Patches are welcome in whatever form.
|
||||
Discussions about patches happen on the [vim-dev][0] mailing list.
|
||||
If you create a pull request on GitHub it will be
|
||||
forwarded to the vim-dev mailing list. You can also send your patch there
|
||||
forwarded to the vim-dev mailing list. You can also send your patch there
|
||||
directly (but please note, the initial posting is subject to moderation).
|
||||
In that case an attachment with a unified diff format is preferred.
|
||||
Information about the mailing list can be found [on the Vim website][0]
|
||||
@@ -12,14 +12,14 @@ A pull request has the advantage that it will trigger the Continuous
|
||||
Integration tests, you will be warned of problems (you can ignore the coverage
|
||||
warning, it's noisy).
|
||||
|
||||
Please consider adding a test. All new functionality should be tested and bug
|
||||
Please consider adding a test. All new functionality should be tested and bug
|
||||
fixes should be tested for regressions: the test should fail before the fix and
|
||||
pass after the fix. Look through recent patches for examples and find help
|
||||
with ":help testing". The tests are located under "src/testdir".
|
||||
pass after the fix. Look through recent patches for examples and find help
|
||||
with ":help testing". The tests are located under "src/testdir".
|
||||
|
||||
Contributions will be distributed with Vim under the Vim license. Providing a
|
||||
Contributions will be distributed with Vim under the Vim license. Providing a
|
||||
change to be included implies that you agree with this and your contribution
|
||||
does not cause us trouble with trademarks or patents. There is no CLA to sign.
|
||||
does not cause us trouble with trademarks or patents. There is no CLA to sign.
|
||||
|
||||
## Signing-off commits
|
||||
|
||||
@@ -27,9 +27,9 @@ While not required, it's recommended to use **Signed-off commits** to ensure
|
||||
transparency, accountability, and compliance with open-source best practices.
|
||||
Signed-off commits follow the [Developer Certificate of Origin (DCO)][15],
|
||||
which confirms that contributors have the right to submit their changes under
|
||||
the project's license. This process adds a `Signed-off-by` line to commit
|
||||
the project's license. This process adds a `Signed-off-by` line to commit
|
||||
messages, verifying that the contributor agrees to the project's licensing
|
||||
terms. To sign off a commit, simply use the -s flag when committing:
|
||||
terms. To sign off a commit, simply use the -s flag when committing:
|
||||
|
||||
```sh
|
||||
git commit -s
|
||||
@@ -37,7 +37,7 @@ git commit -s
|
||||
|
||||
This ensures that every contribution is properly documented and traceable,
|
||||
aligning with industry standards used in projects like the Linux Kernel or
|
||||
the git project. By making Signed-off commits a standard practice, we help
|
||||
the git project. By making Signed-off commits a standard practice, we help
|
||||
maintain a legally compliant and well-governed codebase while fostering trust
|
||||
within our contributor community.
|
||||
|
||||
@@ -48,12 +48,12 @@ approvers are happy with that particular change.
|
||||
|
||||
# Reporting issues
|
||||
|
||||
We use GitHub issues, but that is not a requirement. Writing to the Vim
|
||||
We use GitHub [issues][17], but that is not a requirement. Writing to the Vim
|
||||
mailing list is also fine.
|
||||
|
||||
Please use the GitHub issues only for actual issues. If you are not 100% sure
|
||||
that your problem is a Vim issue, please first discuss this on the Vim user
|
||||
mailing list. Try reproducing the problem without any of your plugins or settings:
|
||||
mailing list. Try reproducing the problem without any of your plugins or settings:
|
||||
|
||||
vim --clean
|
||||
|
||||
@@ -72,39 +72,56 @@ Or open [the todo file][todo list] on GitHub to see the latest version.
|
||||
|
||||
The latest version of these files can be obtained from the repository.
|
||||
They are usually not updated with numbered patches. However, they may
|
||||
or may not work with older Vim releases (since they may contain new features).
|
||||
or may not work with older Vim releases (since they may depend on new
|
||||
features).
|
||||
|
||||
If you find a problem with one of these files or have a suggestion for
|
||||
improvement, please first try to contact the maintainer directly.
|
||||
Look in the header of the file for the name, email address, github handle and/or
|
||||
upstream repository. You may also check the [MAINTAINERS][11] file.
|
||||
upstream repository. You may also check the [MAINTAINERS][11] file.
|
||||
|
||||
The maintainer will take care of issues and send updates to the Vim project for
|
||||
distribution with Vim.
|
||||
|
||||
If the maintainer does not respond, contact the [vim-dev][0] mailing list.
|
||||
If the maintainer does not respond, contact the [vim-dev][0] mailing list or
|
||||
open an [issue][17] here.
|
||||
|
||||
Note: Whether or not to use Vim9 script is up to the maintainer. For runtime
|
||||
files maintained here, we aim to preserve compatibility with Neovim if
|
||||
possible. Please wrap Vim9 script with a guard like this:
|
||||
```vim
|
||||
if has('vim9script')
|
||||
" use Vim9 script implementation
|
||||
[...]
|
||||
endif
|
||||
```
|
||||
|
||||
## Contributing new runtime files
|
||||
|
||||
If you want to contribute new runtime files for Vim or Neovim, please create a
|
||||
PR with your changes against this repository here. For new filetypes, do not forget:
|
||||
* to add a new [filetype test][12] (keep it similar to the other filetype tests).
|
||||
* all configuration switches should be documented
|
||||
|
||||
- to add a new [filetype test][12] (keep it similar to the other filetype tests).
|
||||
- all configuration switches should be documented
|
||||
(check [filetype.txt][13] and/or [syntax.txt][14] for filetype and syntax plugins)
|
||||
* add yourself as Maintainer to the top of file (again, keep the header similar to
|
||||
- add yourself as Maintainer to the top of file (again, keep the header similar to
|
||||
other runtime files)
|
||||
* add yourself to the [MAINTAINERS][11] file.
|
||||
- add yourself to the [MAINTAINERS][11] file.
|
||||
- add a guard `if has('vim9script')` if you like to maintain Neovim
|
||||
compatibility but want to use Vim9 script (or restrict yourself to legacy Vim
|
||||
script)
|
||||
|
||||
# Translations
|
||||
|
||||
Translating messages and runtime files is very much appreciated! These things
|
||||
Translating messages and runtime files is very much appreciated! These things
|
||||
can be translated:
|
||||
* Messages in Vim, see [src/po/README.txt][1]
|
||||
Also used for the desktop icons.
|
||||
* Menus, see [runtime/lang/README.txt][2]
|
||||
* Vim tutor, see [runtime/tutor/README.txt][3]
|
||||
* Manual pages, see [runtime/doc/\*.1][4] for examples
|
||||
* Installer, see [nsis/lang/README.txt][5]
|
||||
|
||||
- Messages in Vim, see [src/po/README.txt][1]
|
||||
Also used for the desktop icons.
|
||||
- Menus, see [runtime/lang/README.txt][2]
|
||||
- Vim tutor, see [runtime/tutor/README.txt][3]
|
||||
- Manual pages, see [runtime/doc/\*.1][4] for examples
|
||||
- Installer, see [nsis/lang/README.txt][5]
|
||||
|
||||
The help files can be translated and made available separately.
|
||||
See https://www.vim.org/translations.php for examples.
|
||||
@@ -113,9 +130,11 @@ See https://www.vim.org/translations.php for examples.
|
||||
|
||||
Please have a look at the following [discussion][6], which should give you some
|
||||
ideas. Please also check the [develop.txt][7] helpfile for the recommended
|
||||
style. Often it's also beneficial to check the surrounding code for the style
|
||||
coding style. Often it's also beneficial to check the surrounding code for the style
|
||||
being used.
|
||||
|
||||
For the recommended documentation style, please check [helphelp.txt][16].
|
||||
|
||||
# I have a question
|
||||
|
||||
If you have some question on the style guide, please contact the [vim-dev][0]
|
||||
@@ -139,3 +158,5 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
|
||||
[13]: https://github.com/vim/vim/blob/master/runtime/doc/filetype.txt
|
||||
[14]: https://github.com/vim/vim/blob/master/runtime/doc/syntax.txt
|
||||
[15]: https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin
|
||||
[16]: https://github.com/vim/vim/blob/master/runtime/doc/helphelp.txt
|
||||
[17]: https://github.com/vim/vim/issues
|
||||
|
||||
122
Filelist
122
Filelist
@@ -12,6 +12,7 @@ SRC_ALL = \
|
||||
.github/workflows/ci.yml \
|
||||
.github/workflows/codeql-analysis.yml \
|
||||
.github/workflows/coverity.yml \
|
||||
.github/workflows/link-check.yml \
|
||||
.github/actions/test_artifacts/action.yml \
|
||||
.github/dependabot.yml \
|
||||
.gitignore \
|
||||
@@ -24,6 +25,7 @@ SRC_ALL = \
|
||||
ci/config.mk*.sed \
|
||||
ci/if_ver*.vim \
|
||||
ci/if_feat_check.vim \
|
||||
ci/lychee.toml \
|
||||
ci/setup-xvfb.sh \
|
||||
ci/setup-sway.sh \
|
||||
ci/remove_snap.sh \
|
||||
@@ -80,6 +82,7 @@ SRC_ALL = \
|
||||
src/findfile.c \
|
||||
src/float.c \
|
||||
src/fold.c \
|
||||
src/fuzzy.c \
|
||||
src/getchar.c \
|
||||
src/gc.c \
|
||||
src/globals.h \
|
||||
@@ -177,6 +180,7 @@ SRC_ALL = \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
src/vim9expr.c \
|
||||
src/vim9generics.c \
|
||||
src/vim9instr.c \
|
||||
src/vim9script.c \
|
||||
src/vim9type.c \
|
||||
@@ -184,63 +188,67 @@ SRC_ALL = \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
src/xxd/xxd.c \
|
||||
src/testdir/gen_opt_test.vim \
|
||||
src/testdir/README.txt \
|
||||
src/testdir/Make_all.mak \
|
||||
src/testdir/*.in \
|
||||
src/testdir/*.py \
|
||||
src/testdir/keycode_check.vim \
|
||||
src/testdir/keycode_check.json \
|
||||
src/testdir/lsan-suppress.txt \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/testluaplugin/lua/testluaplugin/*.lua \
|
||||
src/testdir/check.vim \
|
||||
src/testdir/Make_all.mak \
|
||||
src/testdir/README.txt \
|
||||
src/testdir/commondumps.vim \
|
||||
src/testdir/gui_init.vim \
|
||||
src/testdir/gui_preinit.vim \
|
||||
src/testdir/mouse.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/screendump.vim \
|
||||
src/testdir/setup.vim \
|
||||
src/testdir/setup_gui.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/vim9.vim \
|
||||
src/testdir/script_util.vim \
|
||||
src/testdir/summarize.vim \
|
||||
src/testdir/term_util.vim \
|
||||
src/testdir/view_util.vim \
|
||||
src/testdir/viewdumps.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test77a.ok \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
src/testdir/crash/* \
|
||||
src/testdir/dumps/*.dump \
|
||||
src/testdir/dumps/*.vim \
|
||||
src/testdir/keycode_check.json \
|
||||
src/testdir/keycode_check.vim \
|
||||
src/testdir/lsan-suppress.txt \
|
||||
src/testdir/python2/*.py \
|
||||
src/testdir/python3/*.py \
|
||||
src/testdir/python_after/*.py \
|
||||
src/testdir/python_before/*.py \
|
||||
src/testdir/pythonx/*.py \
|
||||
src/testdir/pythonx/topmodule/__init__.py \
|
||||
src/testdir/pythonx/topmodule/submodule/__init__.py \
|
||||
src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py \
|
||||
src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \
|
||||
src/testdir/python_after/*.py \
|
||||
src/testdir/python_before/*.py \
|
||||
src/testdir/pyxfile/*.py \
|
||||
src/testdir/dumps/*.dump \
|
||||
src/testdir/dumps/*.vim \
|
||||
src/testdir/ru_RU/LC_MESSAGES/Makefile \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.mo \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.po \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/samples/*.html \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/*.vim \
|
||||
src/testdir/samples/evil.zip \
|
||||
src/testdir/samples/evil.tar \
|
||||
src/testdir/samples/poc.zip \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/samples/sample.tar \
|
||||
src/testdir/samples/test.zip \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/samples/test_undo.txt.undo \
|
||||
src/testdir/samples/testa.zip \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
src/testdir/crash/* \
|
||||
src/testdir/ru_RU/LC_MESSAGES/Makefile \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.po \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.mo \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test77a.ok \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test_*.vim \
|
||||
src/testdir/testluaplugin/lua/testluaplugin/*.lua \
|
||||
src/testdir/util/check.vim \
|
||||
src/testdir/util/color_ramp.vim \
|
||||
src/testdir/util/gen_opt_test.vim \
|
||||
src/testdir/util/gui_init.vim \
|
||||
src/testdir/util/gui_preinit.vim \
|
||||
src/testdir/util/mouse.vim \
|
||||
src/testdir/util/popupbounce.vim \
|
||||
src/testdir/util/screendump.vim \
|
||||
src/testdir/util/script_util.vim \
|
||||
src/testdir/util/setup.vim \
|
||||
src/testdir/util/setup_gui.vim \
|
||||
src/testdir/util/shared.vim \
|
||||
src/testdir/util/summarize.vim \
|
||||
src/testdir/util/term_util.vim \
|
||||
src/testdir/util/view_util.vim \
|
||||
src/testdir/util/vim9.vim \
|
||||
src/testdir/util/window_manager.vim \
|
||||
src/testdir/viewdumps.vim \
|
||||
src/proto.h \
|
||||
src/protodef.h \
|
||||
src/proto/alloc.pro \
|
||||
@@ -284,6 +292,7 @@ SRC_ALL = \
|
||||
src/proto/findfile.pro \
|
||||
src/proto/float.pro \
|
||||
src/proto/fold.pro \
|
||||
src/proto/fuzzy.pro \
|
||||
src/proto/getchar.pro \
|
||||
src/proto/gc.pro \
|
||||
src/proto/gui.pro \
|
||||
@@ -358,6 +367,7 @@ SRC_ALL = \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
src/proto/vim9expr.pro \
|
||||
src/proto/vim9generics.pro \
|
||||
src/proto/vim9instr.pro \
|
||||
src/proto/vim9script.pro \
|
||||
src/proto/vim9type.pro \
|
||||
@@ -490,6 +500,12 @@ SRC_UNIX = \
|
||||
src/gui_xmebwp.h \
|
||||
src/gui_x11.c \
|
||||
src/gui_x11_pm.h \
|
||||
src/auto/wayland/README.txt \
|
||||
src/auto/wayland/Makefile \
|
||||
src/auto/wayland/protocols/ext-data-control-v1.xml \
|
||||
src/auto/wayland/protocols/wlr-data-control-unstable-v1.xml \
|
||||
src/auto/wayland/protocols/xdg-shell.xml \
|
||||
src/auto/wayland/protocols/primary-selection-unstable-v1.xml \
|
||||
src/if_xcmdsrv.c \
|
||||
src/link.sh \
|
||||
src/installman.sh \
|
||||
@@ -508,18 +524,21 @@ SRC_UNIX = \
|
||||
src/proto/gui_motif.pro \
|
||||
src/proto/gui_xmdlg.pro \
|
||||
src/proto/gui_x11.pro \
|
||||
src/proto/wayland.pro \
|
||||
src/proto/if_xcmdsrv.pro \
|
||||
src/proto/os_unix.pro \
|
||||
src/proto/pty.pro \
|
||||
src/pty.c \
|
||||
src/testdir/Makefile \
|
||||
src/testdir/unix.vim \
|
||||
src/testdir/util/unix.vim \
|
||||
src/toolcheck \
|
||||
src/vim_icon.xbm \
|
||||
src/vim_mask.xbm \
|
||||
src/vimtutor \
|
||||
src/gvimtutor \
|
||||
src/wayland.c \
|
||||
src/which.sh \
|
||||
src/gen-wayland-protocols.sh \
|
||||
src/xxd/Makefile \
|
||||
|
||||
# Source files for both MS Windows and Unix-like.
|
||||
@@ -605,7 +624,7 @@ SRC_DOS = \
|
||||
src/testdir/Make_dos.mak \
|
||||
src/testdir/Make_mvc.mak \
|
||||
src/testdir/Make_ming.mak \
|
||||
src/testdir/dos.vim \
|
||||
src/testdir/util/dos.vim \
|
||||
src/uninstall.c \
|
||||
src/vim.rc \
|
||||
src/vim.manifest \
|
||||
@@ -658,7 +677,7 @@ SRC_AMI = \
|
||||
src/os_amiga.h \
|
||||
src/proto/os_amiga.pro \
|
||||
src/testdir/Make_amiga.mak \
|
||||
src/testdir/amiga.vim \
|
||||
src/testdir/util/amiga.vim \
|
||||
src/xxd/Make_amiga.mak \
|
||||
|
||||
# Source files for Haiku (also in the extra archive).
|
||||
@@ -689,7 +708,7 @@ SRC_VMS = \
|
||||
src/os_vms_mms.c \
|
||||
src/proto/os_vms.pro \
|
||||
src/testdir/Make_vms.mms \
|
||||
src/testdir/vms.vim \
|
||||
src/testdir/util/vms.vim \
|
||||
src/xxd/Make_vms.mms \
|
||||
vimtutor.com \
|
||||
|
||||
@@ -780,7 +799,6 @@ RT_ALL = \
|
||||
runtime/tools/[a-z]*[a-z0-9] \
|
||||
runtime/tutor/README.txt \
|
||||
runtime/tutor/tutor1 \
|
||||
runtime/tutor/tutor1.utf-8 \
|
||||
runtime/tutor/en/vim-01-beginner.tutor \
|
||||
runtime/tutor/en/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/en/vim-02-beginner.tutor \
|
||||
@@ -789,7 +807,6 @@ RT_ALL = \
|
||||
runtime/tutor/tutor.tutor.json \
|
||||
runtime/tutor/tutor.vim \
|
||||
runtime/tutor/tutor2 \
|
||||
runtime/tutor/tutor2.utf-8 \
|
||||
runtime/vimrc_example.vim \
|
||||
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim \
|
||||
runtime/pack/dist/opt/comment/plugin/comment.vim \
|
||||
@@ -831,7 +848,6 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/fs.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/os.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/msg.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrwSettings.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw_gitignore.vim \
|
||||
runtime/pack/dist/opt/netrw/doc/netrw.txt \
|
||||
runtime/pack/dist/opt/netrw/plugin/netrwPlugin.vim \
|
||||
@@ -934,7 +950,6 @@ RT_DOS = \
|
||||
README_dos.txt \
|
||||
runtime/doc/Make_mvc.mak \
|
||||
runtime/indent/Make_mvc.mak \
|
||||
runtime/tutor/Make_mvc.mak \
|
||||
runtime/lang/Make_mvc.mak \
|
||||
vimtutor.bat \
|
||||
|
||||
@@ -1088,8 +1103,6 @@ LANG_GEN = \
|
||||
runtime/keymap/README.txt \
|
||||
runtime/keymap/*.vim \
|
||||
runtime/tutor/README.*.txt \
|
||||
runtime/tutor/Makefile \
|
||||
runtime/tutor/Make_all.mak \
|
||||
runtime/tutor/it/vim-01-beginner.tutor \
|
||||
runtime/tutor/it/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/ru/vim-01-beginner.tutor \
|
||||
@@ -1101,19 +1114,9 @@ LANG_GEN = \
|
||||
runtime/tutor/sr/vim-02-beginner.tutor \
|
||||
runtime/tutor/sr/vim-02-beginner.tutor.json \
|
||||
runtime/tutor/tutor1.?? \
|
||||
runtime/tutor/tutor1.??.utf-8 \
|
||||
runtime/tutor/tutor1.??.euc \
|
||||
runtime/tutor/tutor1.??.sjis \
|
||||
runtime/tutor/tutor1.??.iso9 \
|
||||
runtime/tutor/tutor1.??.big5 \
|
||||
runtime/tutor/tutor1.??.cp1250 \
|
||||
runtime/tutor/tutor1.??.cp1251 \
|
||||
runtime/tutor/tutor1.??.cp737 \
|
||||
runtime/tutor/tutor1.??_??.utf-8 \
|
||||
runtime/tutor/tutor1.??_?? \
|
||||
runtime/tutor/tutor1.bar \
|
||||
runtime/tutor/tutor1.bar.utf-8 \
|
||||
runtime/tutor/tutor2.?? \
|
||||
runtime/tutor/tutor2.??.utf-8 \
|
||||
runtime/spell/README.txt \
|
||||
runtime/spell/??/*.diff \
|
||||
runtime/spell/??/main.aap \
|
||||
@@ -1157,6 +1160,7 @@ LANG_SRC = \
|
||||
src/po/sjiscorr.c \
|
||||
src/po/big5corr.c \
|
||||
src/po/*.po \
|
||||
src/po/vim.pot \
|
||||
|
||||
# The language files for the Win32 lang archive.
|
||||
LANG_DOS = \
|
||||
|
||||
1
Makefile
1
Makefile
@@ -115,6 +115,7 @@ MINOR = 1
|
||||
# - With these features: "make depend" (works best with gcc).
|
||||
# - If you have a lint program: "make lint" and check the output (ignore GTK
|
||||
# warnings).
|
||||
# - compile release versions using -DNDEBUG to disable assert()s
|
||||
# - If you have valgrind, enable it in src/testdir/Makefile and run "make
|
||||
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
|
||||
# Check the valgrind output.
|
||||
|
||||
@@ -32,6 +32,10 @@ All commands are given with normal keyboard characters, so those who can type
|
||||
with ten fingers can work very fast. Additionally, function keys can be
|
||||
mapped to commands by the user, and the mouse can be used.
|
||||
|
||||
Vim also aims to provide a (mostly) POSIX-compatible vi implementation, when
|
||||
compiled with a minimal feature set (typically called vim.tiny), which is used
|
||||
by many Linux distributions as the default vi editor.
|
||||
|
||||
Vim runs under MS-Windows (7, 8, 10, 11), macOS, Haiku, VMS and almost all
|
||||
flavours of UNIX. Porting to other systems should not be very difficult.
|
||||
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000/XP/Vista,
|
||||
|
||||
@@ -15,6 +15,10 @@ All commands are given with normal keyboard characters, so those who can type
|
||||
with ten fingers can work very fast. Additionally, function keys can be
|
||||
mapped to commands by the user, and the mouse can be used.
|
||||
|
||||
Vim also aims to provide a (mostly) POSIX-compatible vi implementation, when
|
||||
compiled with a minimal feature set (typically called vim.tiny), which is used
|
||||
by many Linux distributions as the default vi editor.
|
||||
|
||||
Vim runs under MS-Windows (7, 8, 10, 11), macOS, Haiku, VMS and almost all
|
||||
flavours of UNIX. Porting to other systems should not be very difficult.
|
||||
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000/XP/Vista,
|
||||
|
||||
47
ci/lychee.toml
Normal file
47
ci/lychee.toml
Normal file
@@ -0,0 +1,47 @@
|
||||
############################# Runtime #############################
|
||||
|
||||
# Reasonable concurrency to avoid rate-limiting small hosts.
|
||||
max_concurrency = 14
|
||||
|
||||
# File extensions to scan
|
||||
extensions = ["c", "h", "md", "html", "txt"]
|
||||
|
||||
############################# Requests ############################
|
||||
|
||||
# Accepted status codes
|
||||
# - Include 429 (Too Many Requests) to avoid marking throttled links as dead.
|
||||
accept = ["100..=103", "200..=299", "429"]
|
||||
|
||||
# Retry each request a few times on transient network errors
|
||||
retries = 2
|
||||
retry_wait_time = 2
|
||||
|
||||
# Timeout per request in seconds
|
||||
timeout = 20
|
||||
|
||||
############################# Exclusions ##########################
|
||||
|
||||
exclude = [
|
||||
'^https?://sys/file$',
|
||||
'^file://.*',
|
||||
'^https?://(www\.)?badges\.debian\.net/.*$',
|
||||
'^https?://(www\.)?repology\.org/.*$',
|
||||
'^https?://scan\.coverity\.com/.*$',
|
||||
'^https?://(www\.)?img\.shields\.io/.*$',
|
||||
'^https?://(www\.)?fossies\.org/.*$',
|
||||
'^https?://(www\.)?adobe\.com.*$',
|
||||
'^https?://(www\.)?google\.com.*$',
|
||||
'^https?://(www\.)?forum\.vmssoftware\.com/.*$',
|
||||
'^http://vim\.sourceforge\.net/scripts/script\.php\?script_id=40$',
|
||||
'^https://is\.gd/.*$',
|
||||
'^https://wiki\.contextgarden\.net/Vim$',
|
||||
'^https://github\.com/you/foobar\.git$',
|
||||
'^https?://flatassembler\.net',
|
||||
'^https?://www\.fleiner\.com/vim/download.html',
|
||||
]
|
||||
|
||||
# Lychee only reads UTF-8 files
|
||||
exclude_path = [
|
||||
'src/po',
|
||||
'src/testdir',
|
||||
]
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Using a systemd user service doesn't work because it seems like github actions
|
||||
# doesn't support user sessions? Just run sway in the background and disown it.
|
||||
WLR_BACKENDS=headless sway &
|
||||
disown
|
||||
@@ -20,6 +20,11 @@ README.ru.txt для версии 9.1 программы Vim — Vi IMproved.
|
||||
функциональные клавиши клавиатуры необходимые команды, и использовать
|
||||
манипулятор «мышь».
|
||||
|
||||
В редакторе Vim также обеспечивается (насколько это возможно) совместимость
|
||||
с POSIX-реализацией редактора vi, если он скомпилирован с минимальным набором
|
||||
функционала (обычно называемый vim.tiny). Данная сборка чаще всего используется
|
||||
во многих дистрибутивах Linux в качестве предустановленного редактора vi.
|
||||
|
||||
Редактор Vim работает в ОС MS Windows (7, 8, 10, 11), macOS, Haiku, VMS и
|
||||
практически во всех UNIX-подобных системах. А перенос на другие платформы не
|
||||
должен представлять особой сложности.
|
||||
@@ -36,7 +41,7 @@ MS Windows 95/98/Me/NT/2000/XP/Vista, AmigaDOS, Atari MiNT, BeOS и RISC OS.
|
||||
возможностей.
|
||||
|
||||
Существуют отдельные версии для Unix, PC, Amiga и некоторых других систем.
|
||||
Данный файл README.rux.txt поставляется вместе с архивом рабочих файлов
|
||||
Данный файл README.ru.txt поставляется вместе с архивом рабочих файлов
|
||||
программы. Этот архив включает в себя документацию, файлы подсветки синтаксиса
|
||||
и другие файлы, которые используются редактором во время работы. Чтобы
|
||||
запустить программу Vim, вы должны получить либо архив с исполняемыми файлами,
|
||||
@@ -96,7 +101,7 @@ README_vms.txt VMS
|
||||
Редактор Vim является благотворительным программным обеспечением.
|
||||
Использование и копирование программы Vim не ограничено, однако рекомендуется
|
||||
сделать добровольное пожертвование для нуждающихся детей в Уганде. Чтобы узнать
|
||||
подробности, прочитайте, пожалуйста, файл "runtime/doc/uganda.rux" (введите
|
||||
подробности, прочитайте, пожалуйста, файл "runtime/doc/uganda.txt" (введите
|
||||
команду ":help uganda" в редакторе Vim).
|
||||
|
||||
Краткое описание лицензии.
|
||||
@@ -116,7 +121,7 @@ README_vms.txt VMS
|
||||
над редактором Vim можно с помощью оказания финансовой поддержки.
|
||||
|
||||
Пожертвованные вами деньги будут в основном направлены на оказание помощи детям
|
||||
Уганды, см. "runtime/doc/uganda.rux". Однако в любом случае финансирование
|
||||
Уганды, см. "runtime/doc/uganda.txt". Однако в любом случае финансирование
|
||||
будет способствовать повышению заинтересованности команды разработчиков
|
||||
в продолжении работы над редактором Vim!
|
||||
|
||||
|
||||
@@ -46,6 +46,10 @@ MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_MULTI_LANG=$(HAVE_MULTI_LANG)
|
||||
MKNSISFLAGS = $(MKNSISFLAGS) /DWIN64=$(WIN64)
|
||||
!ENDIF
|
||||
|
||||
!IFDEF ARM64
|
||||
MKNSISFLAGS = $(MKNSISFLAGS) /DARM64=$(ARM64)
|
||||
!ENDIF
|
||||
|
||||
!IFDEF INCLUDE_LIBGCC
|
||||
MKNSISFLAGS = $(MKNSISFLAGS) /DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
|
||||
!ENDIF
|
||||
|
||||
@@ -39,6 +39,10 @@ ifdef WIN64
|
||||
MKNSISFLAGS := $(MKNSISFLAGS) -DWIN64=$(WIN64)
|
||||
endif
|
||||
|
||||
ifdef ARM64
|
||||
MKNSISFLAGS := $(MKNSISFLAGS) -DARM64=$(ARM64)
|
||||
endif
|
||||
|
||||
ifdef INCLUDE_LIBGCC
|
||||
MKNSISFLAGS := $(MKNSISFLAGS) -DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
|
||||
endif
|
||||
|
||||
@@ -101,6 +101,8 @@ Variables and their values available for building the installer (not mandatory):
|
||||
"HAVE_NLS=0" — do not add native language support.
|
||||
"HAVE_MULTI_LANG=0" — to create an English-only the installer.
|
||||
"WIN64=1" — to create a 64-bit the installer.
|
||||
"ARM64=1" — to create the installer for ARM64. The WIN64 variable
|
||||
must be set to 1.
|
||||
"X=<scriptcmd>" — executes scriptcmd in script. If multiple scriptcmd
|
||||
are specified, they are separated by a semicolon.
|
||||
Example "X=OutFile MyVim.exe;XPMode on"
|
||||
|
||||
@@ -53,6 +53,18 @@ Unicode true
|
||||
!define WIN64 0
|
||||
!endif
|
||||
|
||||
# if you want to create the installer for ARM64, use the /DARM64=1 on
|
||||
# the command line makensis.exe. This property will be set to 1.
|
||||
!ifndef ARM64
|
||||
!define ARM64 0
|
||||
!else
|
||||
!if ${ARM64} > 0
|
||||
!if ${WIN64} < 1
|
||||
!define /redef WIN64 1
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# if you don't want to include libgcc_s_sjlj-1.dll in the package, use the
|
||||
# switch /DINCLUDE_LIBGCC=0 on the command line makensis.exe.
|
||||
!ifndef INCLUDE_LIBGCC
|
||||
@@ -113,9 +125,13 @@ ${StrRep}
|
||||
!define UNINST_REG_KEY_VIM "${UNINST_REG_KEY}\${PRODUCT}"
|
||||
|
||||
!if ${WIN64}
|
||||
Name "${PRODUCT} (x64)"
|
||||
!if ${ARM64}
|
||||
Name "${PRODUCT} (ARM64)"
|
||||
!else
|
||||
Name "${PRODUCT} (x64)"
|
||||
!endif
|
||||
!else
|
||||
Name "${PRODUCT}"
|
||||
Name "${PRODUCT}"
|
||||
!endif
|
||||
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
|
||||
CRCCheck force
|
||||
@@ -498,7 +514,7 @@ Section "$(str_section_exe)" id_section_exe
|
||||
File ${VIMRT}\tools\*.*
|
||||
|
||||
SetOutPath $0\tutor
|
||||
File /x Makefile /x *.info ${VIMRT}\tutor\*.*
|
||||
File /r /x *.info ${VIMRT}\tutor\*.*
|
||||
SectionEnd
|
||||
|
||||
##########################################################
|
||||
|
||||
@@ -3,7 +3,7 @@ vim9script noclear
|
||||
# Vim completion script
|
||||
# Language: C
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2024 Jun 06
|
||||
# Last Change: 2025 Jul 24
|
||||
# Rewritten in Vim9 script by github user lacygoill
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
@@ -121,6 +121,10 @@ export def Complete(findstart: bool, abase: string): any # {{{1
|
||||
endif
|
||||
endwhile
|
||||
|
||||
if complete_check()
|
||||
return v:none
|
||||
endif
|
||||
|
||||
# Find the variable items[0].
|
||||
# 1. in current function (like with "gd")
|
||||
# 2. in tags file(s) (like with ":tag")
|
||||
@@ -135,6 +139,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
|
||||
# Handle multiple declarations on the same line.
|
||||
var col2: number = col - 1
|
||||
while line[col2] != ';'
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
--col2
|
||||
endwhile
|
||||
line = line[col2 + 1 :]
|
||||
@@ -145,6 +152,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
|
||||
# declaration.
|
||||
var col2: number = col - 1
|
||||
while line[col2] != ','
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
--col2
|
||||
endwhile
|
||||
if line[col2 + 1 : col - 1] =~ ' *[^ ][^ ]* *[^ ]'
|
||||
@@ -215,6 +225,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
|
||||
|
||||
res = []
|
||||
for i: number in len(diclist)->range()
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
# New ctags has the "typeref" field. Patched version has "typename".
|
||||
if diclist[i]->has_key('typename')
|
||||
res = res->extend(diclist[i]['typename']->StructMembers(items[1 :], true))
|
||||
@@ -246,6 +259,9 @@ export def Complete(findstart: bool, abase: string): any # {{{1
|
||||
var last: number = len(items) - 1
|
||||
var brackets: string = ''
|
||||
while last >= 0
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
if items[last][0] != '['
|
||||
break
|
||||
endif
|
||||
@@ -311,6 +327,9 @@ def Dict2info(dict: dict<any>): string # {{{1
|
||||
# Use all the items in dictionary for the "info" entry.
|
||||
var info: string = ''
|
||||
for k: string in dict->keys()->sort()
|
||||
if complete_check()
|
||||
return info
|
||||
endif
|
||||
info ..= k .. repeat(' ', 10 - strlen(k))
|
||||
if k == 'cmd'
|
||||
info ..= dict['cmd']
|
||||
@@ -346,6 +365,9 @@ def ParseTagline(line: string): dict<any> # {{{1
|
||||
endwhile
|
||||
endif
|
||||
for i: number in range(n + 1, len(l) - 1)
|
||||
if complete_check()
|
||||
return d
|
||||
endif
|
||||
if l[i] == 'file:'
|
||||
d['static'] = 1
|
||||
elseif l[i] !~ ':'
|
||||
@@ -441,6 +463,9 @@ def Nextitem( # {{{1
|
||||
# Try to recognize the type of the variable. This is rough guessing...
|
||||
var res: list<dict<string>>
|
||||
for tidx: number in len(tokens)->range()
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
|
||||
# Skip tokens starting with a non-ID character.
|
||||
if tokens[tidx] !~ '^\h'
|
||||
@@ -467,6 +492,11 @@ def Nextitem( # {{{1
|
||||
# Use the tags file to find out if this is a typedef.
|
||||
var diclist: list<dict<any>> = taglist('^' .. tokens[tidx] .. '$')
|
||||
for tagidx: number in len(diclist)->range()
|
||||
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
|
||||
var item: dict<any> = diclist[tagidx]
|
||||
|
||||
# New ctags has the "typeref" field. Patched version has "typename".
|
||||
@@ -559,6 +589,9 @@ def StructMembers( # {{{1
|
||||
endif
|
||||
if !cached
|
||||
while 1
|
||||
if complete_check()
|
||||
return []
|
||||
endif
|
||||
execute 'silent! keepjumps noautocmd '
|
||||
.. n .. 'vimgrep ' .. '/\t' .. typename .. '\(\t\|$\)/j '
|
||||
.. fnames
|
||||
@@ -581,6 +614,9 @@ def StructMembers( # {{{1
|
||||
var idx: number = 0
|
||||
var target: string
|
||||
while 1
|
||||
if complete_check()
|
||||
return []
|
||||
endif
|
||||
if idx >= len(items)
|
||||
target = '' # No further items, matching all members
|
||||
break
|
||||
@@ -619,6 +655,9 @@ def StructMembers( # {{{1
|
||||
# Skip over next [...] items
|
||||
++idx
|
||||
while 1
|
||||
if complete_check()
|
||||
return matches
|
||||
endif
|
||||
if idx >= len(items)
|
||||
return matches # No further items, return the result.
|
||||
endif
|
||||
@@ -646,6 +685,9 @@ def SearchMembers( # {{{1
|
||||
# When "all" is true find all, otherwise just return 1 if there is any member.
|
||||
var res: list<dict<string>>
|
||||
for i: number in len(matches)->range()
|
||||
if complete_check()
|
||||
return res
|
||||
endif
|
||||
var typename: string = ''
|
||||
var line: string
|
||||
if matches[i]->has_key('dict')
|
||||
|
||||
46
runtime/autoload/dist/ft.vim
vendored
46
runtime/autoload/dist/ft.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Apr 21
|
||||
# Last Change: 2025 Jul 09
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -30,12 +30,8 @@ export def Check_inp()
|
||||
enddef
|
||||
|
||||
# This function checks for the kind of assembly that is wanted by the user, or
|
||||
# can be detected from the first five lines of the file.
|
||||
# can be detected from the beginning of the file.
|
||||
export def FTasm()
|
||||
# tiasm uses `* commment`
|
||||
if join(getline(1, 10), "\n") =~ '\%(\%(^\|\n\)\*\|Texas Instruments Incorporated\)'
|
||||
setf tiasm
|
||||
endif
|
||||
# make sure b:asmsyntax exists
|
||||
if !exists("b:asmsyntax")
|
||||
b:asmsyntax = ""
|
||||
@@ -65,9 +61,30 @@ export def FTasmsyntax()
|
||||
var match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
|
||||
if match != ''
|
||||
b:asmsyntax = match
|
||||
elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
|
||||
b:asmsyntax = "vmasm"
|
||||
return
|
||||
endif
|
||||
# Use heuristics
|
||||
var is_slash_star_encountered = false
|
||||
var i = 1
|
||||
const n = min([50, line("$")])
|
||||
while i <= n
|
||||
const line = getline(i)
|
||||
if line =~ '^/\*'
|
||||
is_slash_star_encountered = true
|
||||
endif
|
||||
if line =~# '^; Listing generated by Microsoft' || line =~? '^\%(\%(CONST\|_BSS\|_DATA\|_TEXT\)\s\+SEGMENT\>\)\|\s*\.[2-6]86P\?\>\|\s*\.XMM\>'
|
||||
b:asmsyntax = "masm"
|
||||
return
|
||||
elseif line =~ 'Texas Instruments Incorporated' || (line =~ '^\*' && !is_slash_star_encountered)
|
||||
# tiasm uses `* commment`, but detection is unreliable if '/*' is seen
|
||||
b:asmsyntax = "tiasm"
|
||||
return
|
||||
elseif ((line =~? '\.title\>\|\.ident\>\|\.macro\>\|\.subtitle\>\|\.library\>'))
|
||||
b:asmsyntax = "vmasm"
|
||||
return
|
||||
endif
|
||||
i += 1
|
||||
endwhile
|
||||
enddef
|
||||
|
||||
var ft_visual_basic_content = '\c^\s*\%(Attribute\s\+VB_Name\|Begin\s\+\%(VB\.\|{\%(\x\+-\)\+\x\+}\)\)'
|
||||
@@ -184,9 +201,18 @@ enddef
|
||||
export def FTll()
|
||||
if getline(1) =~ ';\|\<source_filename\>\|\<target\>'
|
||||
setf llvm
|
||||
else
|
||||
setf lifelines
|
||||
return
|
||||
endif
|
||||
var n = 1
|
||||
while n < 100 && n <= line("$")
|
||||
var line = getline(n)
|
||||
if line =~ '^\s*%'
|
||||
setf lex
|
||||
return
|
||||
endif
|
||||
n += 1
|
||||
endwhile
|
||||
setf lifelines
|
||||
enddef
|
||||
|
||||
export def FTlpc()
|
||||
|
||||
12
runtime/autoload/dist/script.vim
vendored
12
runtime/autoload/dist/script.vim
vendored
@@ -4,7 +4,7 @@ vim9script
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Apr 24
|
||||
# Last Change: 2025 Aug 09
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
export def DetectFiletype()
|
||||
@@ -264,6 +264,7 @@ def DetectFromText(line1: string)
|
||||
|
||||
# ELM Mail files
|
||||
elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
||||
|| line1 =~ '^\creturn-path:\s<.*@.*>$'
|
||||
setl ft=mail
|
||||
|
||||
# Mason
|
||||
@@ -286,6 +287,7 @@ def DetectFromText(line1: string)
|
||||
# Diff file:
|
||||
# - "diff" in first line (context diff)
|
||||
# - "Only in " in first line
|
||||
# - "34,35c34,35" normal diff format output
|
||||
# - "--- " in first line and "+++ " in second line (unified diff).
|
||||
# - "*** " in first line and "--- " in second line (context diff).
|
||||
# - "# It was generated by makepatch " in the second line (makepatch diff).
|
||||
@@ -294,7 +296,7 @@ def DetectFromText(line1: string)
|
||||
# - "=== ", "--- ", "+++ " (bzr diff, common case)
|
||||
# - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
|
||||
# - "# HG changeset patch" in first line (Mercurial export format)
|
||||
elseif line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|
||||
elseif line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\(,\d\+\)\=\>$\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|
||||
|| (line1 =~ '^--- ' && line2 =~ '^+++ ')
|
||||
|| (line1 =~ '^\* looking for ' && line2 =~ '^\* comparing to ')
|
||||
|| (line1 =~ '^\*\*\* ' && line2 =~ '^--- ')
|
||||
@@ -453,6 +455,12 @@ def DetectFromText(line1: string)
|
||||
elseif line1 =~ '^#n\%($\|\s\)'
|
||||
setl ft=sed
|
||||
|
||||
elseif line1 =~ '^#\s\+Reconstructed via infocmp from file:'
|
||||
setl ft=terminfo
|
||||
|
||||
elseif line1 =~ '^File: .*\.info, Node: .*, \%(Next\|Prev\): .*, Up: \|This is the top of the INFO tree.'
|
||||
setl ft=info
|
||||
|
||||
else
|
||||
var lnum = 1
|
||||
while getline(lnum) =~ "^? " && lnum < line("$")
|
||||
|
||||
7
runtime/autoload/dist/vim9.vim
vendored
7
runtime/autoload/dist/vim9.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 29
|
||||
# Last Change: 2025 Aug 15
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
if empty(exepath(executable))
|
||||
@@ -121,6 +121,11 @@ def Viewer(): string
|
||||
enddef
|
||||
|
||||
export def Open(file: string)
|
||||
# disable shellslash for shellescape, required on Windows #17995
|
||||
if exists('+shellslash') && &shellslash
|
||||
&shellslash = false
|
||||
defer setbufvar('%', '&shellslash', true)
|
||||
endif
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
enddef
|
||||
|
||||
|
||||
67
runtime/autoload/dist/vimindent.vim
vendored
67
runtime/autoload/dist/vimindent.vim
vendored
@@ -2,12 +2,9 @@ vim9script
|
||||
|
||||
# Language: Vim script
|
||||
# Maintainer: github user lacygoill
|
||||
# Last Change: 2025 Apr 13
|
||||
# Last Change: 2025 Jul 25
|
||||
#
|
||||
# Includes changes from The Vim Project:
|
||||
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
|
||||
# - 2024 Nov 08: Fix indent after :silent! function (D. Kearns via #16009)
|
||||
# - 2024 Dec 26: Fix indent for enums (Jim Zhou via #16293)
|
||||
|
||||
# NOTE: Whenever you change the code, make sure the tests are still passing:
|
||||
#
|
||||
@@ -23,9 +20,8 @@ def IndentMoreInBracketBlock(): number # {{{2
|
||||
if get(g:, 'vim_indent', {})
|
||||
->get('more_in_bracket_block', false)
|
||||
return shiftwidth()
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
return 0
|
||||
enddef
|
||||
|
||||
def IndentMoreLineContinuation(): number # {{{2
|
||||
@@ -35,9 +31,8 @@ def IndentMoreLineContinuation(): number # {{{2
|
||||
|
||||
if n->typename() == 'string'
|
||||
return n->eval()
|
||||
else
|
||||
return n
|
||||
endif
|
||||
return n
|
||||
enddef
|
||||
# }}}2
|
||||
|
||||
@@ -145,7 +140,7 @@ const HEREDOC_OPERATOR: string = '\s=<<\s\@=\%(\s\+\%(trim\|eval\)\)\{,2}'
|
||||
|
||||
# A better regex would be:
|
||||
#
|
||||
# [^-+*/%.:# \t[:alnum:]\"|]\@=.\|->\@!\%(=\s\)\@!\|[+*/%]\%(=\s\)\@!
|
||||
# [^-+*/%.:#[:blank:][:alnum:]\"|]\|->\@!\%(=\s\)\@!\|[+*/%]\%(=\s\)\@!
|
||||
#
|
||||
# But sometimes, it can be too costly and cause `E363` to be given.
|
||||
const PATTERN_DELIMITER: string = '[-+*/%]\%(=\s\)\@!'
|
||||
@@ -193,10 +188,9 @@ const MODIFIERS: dict<string> = {
|
||||
patterns =<< trim eval END
|
||||
argdo\>!\=
|
||||
bufdo\>!\=
|
||||
cdo\>!\=
|
||||
[cl]f\=do\>!\=
|
||||
folddoc\%[losed]\>
|
||||
foldd\%[oopen]\>
|
||||
ldo\=\>!\=
|
||||
tabdo\=\>
|
||||
windo\>
|
||||
au\%[tocmd]\>!\=.*
|
||||
@@ -290,9 +284,9 @@ patterns = []
|
||||
for kwds: list<string> in BLOCKS
|
||||
for kwd: string in kwds[0 : -2]
|
||||
if MODIFIERS->has_key(kwd->Unshorten())
|
||||
patterns += [$'\%({MODIFIERS[kwd]}\)\={kwd}']
|
||||
patterns->add($'\%({MODIFIERS[kwd]}\)\={kwd}')
|
||||
else
|
||||
patterns += [kwd]
|
||||
patterns->add(kwd)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
@@ -348,7 +342,8 @@ patterns =<< trim eval END
|
||||
{'\'}<argd\%[elete]\s\+\*\s*$
|
||||
\<[lt]\=cd!\=\s\+-\s*$
|
||||
\<norm\%[al]!\=\s*\S\+$
|
||||
\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)map!\=\s
|
||||
\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)\=map!\=\s
|
||||
\<set\%(\%[global]\|\%[local]\)\>.*,$
|
||||
{PLUS_MINUS_COMMAND}
|
||||
END
|
||||
|
||||
@@ -430,6 +425,9 @@ export def Expr(lnum = v:lnum): number # {{{2
|
||||
elseif line_A.lnum->IsRightBelow('HereDoc')
|
||||
var ind: number = b:vimindent.startindent
|
||||
unlet! b:vimindent
|
||||
if line_A.text =~ ENDS_BLOCK_OR_CLAUSE
|
||||
return ind - shiftwidth()
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
|
||||
@@ -444,9 +442,8 @@ export def Expr(lnum = v:lnum): number # {{{2
|
||||
if line_A.text =~ BACKSLASH_AT_SOL
|
||||
if line_B.text =~ BACKSLASH_AT_SOL
|
||||
return Indent(line_B.lnum)
|
||||
else
|
||||
return Indent(line_B.lnum) + IndentMoreLineContinuation()
|
||||
endif
|
||||
return Indent(line_B.lnum) + IndentMoreLineContinuation()
|
||||
endif
|
||||
|
||||
if line_A->AtStartOf('FuncHeader')
|
||||
@@ -459,9 +456,8 @@ export def Expr(lnum = v:lnum): number # {{{2
|
||||
unlet! b:vimindent
|
||||
if line_A.text =~ ENDS_FUNCTION
|
||||
return startindent
|
||||
else
|
||||
return startindent + shiftwidth()
|
||||
endif
|
||||
return startindent + shiftwidth()
|
||||
endif
|
||||
|
||||
var past_bracket_block: dict<any>
|
||||
@@ -542,8 +538,9 @@ export def Expr(lnum = v:lnum): number # {{{2
|
||||
|
||||
if line_B.text =~ STARTS_CURLY_BLOCK
|
||||
return Indent(line_B.lnum) + shiftwidth() + IndentMoreInBracketBlock()
|
||||
endif
|
||||
|
||||
elseif line_A.text =~ CLOSING_BRACKET_AT_SOL
|
||||
if line_A.text =~ CLOSING_BRACKET_AT_SOL
|
||||
var start: number = MatchingOpenBracket(line_A)
|
||||
if start <= 0
|
||||
return -1
|
||||
@@ -565,9 +562,8 @@ export def Expr(lnum = v:lnum): number # {{{2
|
||||
var block_start: number = SearchPairStart(start, middle, end)
|
||||
if block_start > 0
|
||||
return Indent(block_start)
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
return -1
|
||||
endif
|
||||
|
||||
var base_ind: number
|
||||
@@ -591,8 +587,7 @@ export def Expr(lnum = v:lnum): number # {{{2
|
||||
endif
|
||||
endif
|
||||
|
||||
var ind: number = base_ind + Offset(line_A, line_B)
|
||||
return [ind, 0]->max()
|
||||
return base_ind + Offset(line_A, line_B)
|
||||
enddef
|
||||
|
||||
def g:GetVimIndent(): number # {{{2
|
||||
@@ -611,29 +606,31 @@ def Offset( # {{{2
|
||||
if line_B->AtStartOf('FuncHeader')
|
||||
&& IsInInterface()
|
||||
return 0
|
||||
endif
|
||||
|
||||
# increase indentation inside a block
|
||||
elseif line_B.text =~ STARTS_NAMED_BLOCK
|
||||
if line_B.text =~ STARTS_NAMED_BLOCK
|
||||
|| line_B->EndsWithCurlyBlock()
|
||||
# But don't indent if the line starting the block also closes it.
|
||||
if line_B->AlsoClosesBlock()
|
||||
return 0
|
||||
endif
|
||||
# Indent twice for a line continuation in the block header itself, so that
|
||||
# we can easily distinguish the end of the block header from the start of
|
||||
# the block body.
|
||||
elseif (line_B->EndsWithLineContinuation()
|
||||
if (line_B->EndsWithLineContinuation()
|
||||
&& !line_A.isfirst)
|
||||
|| (line_A.text =~ LINE_CONTINUATION_AT_SOL
|
||||
&& line_A.text !~ PLUS_MINUS_COMMAND)
|
||||
|| line_A.text->Is_IN_KeywordForLoop(line_B.text)
|
||||
return 2 * shiftwidth()
|
||||
else
|
||||
return shiftwidth()
|
||||
endif
|
||||
return shiftwidth()
|
||||
endif
|
||||
|
||||
# increase indentation of a line if it's the continuation of a command which
|
||||
# started on a previous line
|
||||
elseif !line_A.isfirst
|
||||
if !line_A.isfirst
|
||||
&& (line_B->EndsWithLineContinuation()
|
||||
|| line_A.text =~ LINE_CONTINUATION_AT_SOL)
|
||||
&& !(line_B->EndsWithComma() && line_A.lnum->IsInside('EnumBlock'))
|
||||
@@ -653,12 +650,11 @@ def HereDocIndent(line_A: string): number # {{{2
|
||||
# will need to be indented relative to the start of the heredoc. It
|
||||
# must know where it starts; it needs the cache.
|
||||
return 0
|
||||
else
|
||||
var ind: number = b:vimindent.startindent
|
||||
# invalidate the cache so that it's not used for the next heredoc
|
||||
unlet! b:vimindent
|
||||
return ind
|
||||
endif
|
||||
var ind: number = b:vimindent.startindent
|
||||
# invalidate the cache so that it's not used for the next heredoc
|
||||
unlet! b:vimindent
|
||||
return ind
|
||||
endif
|
||||
|
||||
# In a non-trimmed heredoc, all of leading whitespace is semantic.
|
||||
@@ -700,7 +696,7 @@ def HereDocIndent(line_A: string): number # {{{2
|
||||
b:vimindent.startindent = new_startindent
|
||||
endif
|
||||
|
||||
return [0, Indent(v:lnum) + b:vimindent.offset]->max()
|
||||
return Indent(v:lnum) + b:vimindent.offset
|
||||
enddef
|
||||
|
||||
def CommentIndent(): number # {{{2
|
||||
@@ -727,9 +723,8 @@ def CommentIndent(): number # {{{2
|
||||
endif
|
||||
if getline(next) =~ ENDS_BLOCK
|
||||
return ind + shiftwidth()
|
||||
else
|
||||
return ind
|
||||
endif
|
||||
return ind
|
||||
enddef
|
||||
|
||||
def BracketBlockIndent(line_A: dict<any>, block: dict<any>): number # {{{2
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
" Author: Stephen Sugden <stephen@stephensugden.com>
|
||||
" Last Modified: 2023-09-11
|
||||
" Last Change: 2025 Mar 31 by Vim project (rename s:RustfmtConfigOptions())
|
||||
" Last Change:
|
||||
" 2025 Mar 31 by Vim project (rename s:RustfmtConfigOptions())
|
||||
" 2025 Jul 14 by Vim project (don't parse rustfmt version automatically #17745)
|
||||
"
|
||||
" Adapted from https://github.com/fatih/vim-go
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
@@ -22,6 +24,12 @@ if !exists("g:rustfmt_fail_silently")
|
||||
endif
|
||||
|
||||
function! rustfmt#DetectVersion()
|
||||
let s:rustfmt_version = "0"
|
||||
let s:rustfmt_help = ""
|
||||
let s:rustfmt_unstable_features = ""
|
||||
if !get(g:, 'rustfmt_detect_version', 0)
|
||||
return s:rustfmt_version
|
||||
endif
|
||||
" Save rustfmt '--help' for feature inspection
|
||||
silent let s:rustfmt_help = system(g:rustfmt_command . " --help")
|
||||
let s:rustfmt_unstable_features = s:rustfmt_help =~# "--unstable-features"
|
||||
@@ -30,9 +38,7 @@ function! rustfmt#DetectVersion()
|
||||
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]+)')
|
||||
if len(l:rustfmt_version_list) < 3
|
||||
let s:rustfmt_version = "0"
|
||||
else
|
||||
if len(l:rustfmt_version_list) >= 3
|
||||
let s:rustfmt_version = l:rustfmt_version_list[1]
|
||||
endif
|
||||
return s:rustfmt_version
|
||||
@@ -63,6 +69,12 @@ function! s:RustfmtWriteMode()
|
||||
endfunction
|
||||
|
||||
function! rustfmt#RustfmtConfigOptions()
|
||||
let default = '--edition 2018'
|
||||
|
||||
if !get(g:, 'rustfmt_find_toml', 0)
|
||||
return default
|
||||
endif
|
||||
|
||||
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
|
||||
@@ -74,7 +86,7 @@ function! rustfmt#RustfmtConfigOptions()
|
||||
endif
|
||||
|
||||
" Default to edition 2018 in case no rustfmt.toml was found.
|
||||
return '--edition 2018'
|
||||
return default
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtCommandRange(filename, line1, line2)
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
" instead of shelling out to file(1)
|
||||
" 2025 Apr 16 by Vim Project: decouple from netrw by adding s:WinPath()
|
||||
" 2025 May 19 by Vim Project: restore working directory after read/write
|
||||
" 2025 Jul 13 by Vim Project: warn with path traversal attacks
|
||||
" 2025 Jul 16 by Vim Project: update minimum vim version
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
@@ -34,9 +36,9 @@ if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v32b"
|
||||
if v:version < 702
|
||||
if v:versionlong < 9011024
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
echo "***warning*** this version of tar needs vim 9.1.1024"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
@@ -46,10 +48,10 @@ set cpo&vim
|
||||
" ---------------------------------------------------------------------
|
||||
" Default Settings: {{{1
|
||||
if !exists("g:tar_browseoptions")
|
||||
let g:tar_browseoptions= "Ptf"
|
||||
let g:tar_browseoptions= "tf"
|
||||
endif
|
||||
if !exists("g:tar_readoptions")
|
||||
let g:tar_readoptions= "pPxf"
|
||||
let g:tar_readoptions= "pxf"
|
||||
endif
|
||||
if !exists("g:tar_cmd")
|
||||
let g:tar_cmd= "tar"
|
||||
@@ -58,6 +60,7 @@ if !exists("g:tar_writeoptions")
|
||||
let g:tar_writeoptions= "uf"
|
||||
endif
|
||||
if !exists("g:tar_delfile")
|
||||
" Note: not supported on BSD
|
||||
let g:tar_delfile="--delete -f"
|
||||
endif
|
||||
if !exists("g:netrw_cygwin")
|
||||
@@ -106,10 +109,26 @@ if !exists("g:tar_shq")
|
||||
endif
|
||||
endif
|
||||
|
||||
let g:tar_secure=' -- '
|
||||
let g:tar_leading_pat='^\%([.]\{,2\}/\)\+'
|
||||
|
||||
" ----------------
|
||||
" Functions: {{{1
|
||||
" ----------------
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Msg: {{{2
|
||||
fun! s:Msg(func, severity, msg)
|
||||
redraw!
|
||||
if a:severity =~? 'error'
|
||||
echohl Error
|
||||
else
|
||||
echohl WarningMsg
|
||||
endif
|
||||
echo $"***{a:severity}*** ({a:func}) {a:msg}"
|
||||
echohl None
|
||||
endfunc
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Browse: {{{2
|
||||
fun! tar#Browse(tarfile)
|
||||
@@ -118,16 +137,14 @@ fun! tar#Browse(tarfile)
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||
call s:Msg('tar#Browse', 'error', $"{g:tar_cmd} not available on your system")
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
if !filereadable(a:tarfile)
|
||||
if a:tarfile !~# '^\a\+://'
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||
call s:Msg('tar#Browse', 'error', $"File not readable<{a:tarfile}>")
|
||||
endif
|
||||
let &report= repkeep
|
||||
return
|
||||
@@ -203,28 +220,18 @@ fun! tar#Browse(tarfile)
|
||||
exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||
endif
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
|
||||
call s:Msg('tar#Browse', 'warning', $"please check your g:tar_browseoptions '<{g:tar_browseoptions}>'")
|
||||
return
|
||||
endif
|
||||
"
|
||||
" The following should not be neccessary, since in case of errors the
|
||||
" previous if statement should have caught the problem (because tar exited
|
||||
" with a non-zero exit code).
|
||||
" if line("$") == curlast || ( line("$") == (curlast + 1) &&
|
||||
" \ getline("$") =~# '\c\<\%(warning\|error\|inappropriate\|unrecognized\)\>' &&
|
||||
" \ getline("$") =~ '\s' )
|
||||
" redraw!
|
||||
" echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
" keepj sil! %d
|
||||
" let eikeep= &ei
|
||||
" set ei=BufReadCmd,FileReadCmd
|
||||
" exe "r ".fnameescape(a:tarfile)
|
||||
" let &ei= eikeep
|
||||
" keepj sil! 1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
" return
|
||||
" endif
|
||||
|
||||
" remove tar: Removing leading '/' from member names
|
||||
" Note: the message could be localized
|
||||
if search('^tar: ') > 0 || search(g:tar_leading_pat) > 0
|
||||
call append(3,'" Note: Path Traversal Attack detected!')
|
||||
let b:leading_slash = 1
|
||||
" remove the message output
|
||||
sil g/^tar: /d
|
||||
endif
|
||||
|
||||
" set up maps supported for tar
|
||||
setlocal noma nomod ro
|
||||
@@ -243,12 +250,7 @@ fun! s:TarBrowseSelect()
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
return
|
||||
endif
|
||||
let ls= get(b:, 'leading_slash', 0)
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
@@ -270,7 +272,8 @@ fun! s:TarBrowseSelect()
|
||||
wincmd _
|
||||
endif
|
||||
let s:tblfile_{winnr()}= curfile
|
||||
call tar#Read("tarfile:".tarfile.'::'.fname,1)
|
||||
let b:leading_slash= ls
|
||||
call tar#Read("tarfile:".tarfile.'::'.fname)
|
||||
filetype detect
|
||||
set nomod
|
||||
exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
|
||||
@@ -280,26 +283,18 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Read: {{{2
|
||||
fun! tar#Read(fname,mode)
|
||||
fun! tar#Read(fname)
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
" be careful not to execute special crafted files
|
||||
let escape_file = fname->fnameescape()
|
||||
|
||||
" changing the directory to the temporary earlier to allow tar to extract the file with permissions intact
|
||||
if !exists("*mkdir")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
let escape_file = fname->substitute(g:tar_leading_pat, '', '')->fnameescape()
|
||||
|
||||
let curdir= getcwd()
|
||||
let b:curdir= curdir
|
||||
let tmpdir= tempname()
|
||||
let b:curdir= tmpdir
|
||||
let b:tmpdir= curdir
|
||||
let b:tmpdir= tmpdir
|
||||
if tmpdir =~ '\.'
|
||||
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||
endif
|
||||
@@ -309,8 +304,7 @@ fun! tar#Read(fname,mode)
|
||||
try
|
||||
exe "lcd ".fnameescape(tmpdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E344/
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) cannot lcd to temporary directory" | Echohl None
|
||||
call s:Msg('tar#Read', 'error', "cannot lcd to temporary directory")
|
||||
let &report= repkeep
|
||||
return
|
||||
endtry
|
||||
@@ -333,7 +327,7 @@ fun! tar#Read(fname,mode)
|
||||
elseif fname =~ '\.bz3$' && executable("bz3cat")
|
||||
let decmp= "|bz3cat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.t\=gz$' && executable("zcat")
|
||||
elseif fname =~ '\.t\=gz$' && executable("zcat")
|
||||
let decmp= "|zcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.lzma$' && executable("lzcat")
|
||||
@@ -356,68 +350,66 @@ fun! tar#Read(fname,mode)
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("g:tar_secure")
|
||||
let tar_secure= " -- "
|
||||
else
|
||||
let tar_secure= " "
|
||||
endif
|
||||
|
||||
if tarfile =~# '\.bz2$'
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.bz3$'
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(gz\)$'
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
|
||||
let filekind= s:Header(tarfile)
|
||||
if filekind =~? "bzip2"
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~ "bzip3"
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~? "xz"
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~? "zstd"
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~? "gzip"
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
endif
|
||||
|
||||
elseif tarfile =~# '\.lrp$'
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.lzma$'
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(lz4\|tlz4\)$'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".g:tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
endif
|
||||
if get(b:, 'leading_slash', 0)
|
||||
sil g/^tar: /d
|
||||
endif
|
||||
|
||||
redraw!
|
||||
|
||||
if v:shell_error != 0
|
||||
if v:shell_error != 0
|
||||
lcd ..
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
exe "lcd ".fnameescape(curdir)
|
||||
echohl Error | echo "***error*** (tar#Read) sorry, unable to open or extract ".tarfile." with ".fname | echohl None
|
||||
call s:Msg('tar#Read', 'error', $"sorry, unable to open or extract {tarfile} with {fname}")
|
||||
endif
|
||||
|
||||
if doro
|
||||
@@ -426,7 +418,6 @@ if v:shell_error != 0
|
||||
endif
|
||||
|
||||
let b:tarfile= a:fname
|
||||
exe "file tarfile::".fnameescape(fname)
|
||||
|
||||
" cleanup
|
||||
keepj sil! 0d
|
||||
@@ -434,7 +425,7 @@ if v:shell_error != 0
|
||||
|
||||
let &report= repkeep
|
||||
exe "lcd ".fnameescape(curdir)
|
||||
silent exe "file tarfile::".escape_file
|
||||
silent exe "file tarfile::". fname->fnameescape()
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
@@ -446,22 +437,35 @@ fun! tar#Write(fname)
|
||||
let curdir= b:curdir
|
||||
let tmpdir= b:tmpdir
|
||||
|
||||
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
|
||||
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
|
||||
if get(b:, 'leading_slash', 0)
|
||||
call s:Msg('tar#Write', 'error', $"sorry, not attempting to update {tarfile} with {fname}")
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
|
||||
if !isdirectory(fnameescape(tmpdir))
|
||||
call mkdir(fnameescape(tmpdir), 'p')
|
||||
endif
|
||||
exe $"lcd {fnameescape(tmpdir)}"
|
||||
if isdirectory("_ZIPVIM_")
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
endif
|
||||
call mkdir("_ZIPVIM_")
|
||||
lcd _ZIPVIM_
|
||||
let dir = fnamemodify(fname, ':p:h')
|
||||
if dir !~# '_ZIPVIM_$'
|
||||
call mkdir(dir)
|
||||
endif
|
||||
|
||||
" handle compressed archives
|
||||
if tarfile =~# '\.bz2'
|
||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||
@@ -500,8 +504,7 @@ fun! tar#Write(fname)
|
||||
" Note: no support for name.tar.tbz/.txz/.tgz/.tlz4/.tzst
|
||||
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
||||
call s:Msg('tar#Write', 'error', $"sorry, unable to update {tarfile} with {fname}")
|
||||
else
|
||||
|
||||
if fname =~ '/'
|
||||
@@ -519,28 +522,22 @@ fun! tar#Write(fname)
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
|
||||
if exists("g:tar_secure")
|
||||
let tar_secure= " -- "
|
||||
else
|
||||
let tar_secure= " "
|
||||
endif
|
||||
exe "w! ".fnameescape(fname)
|
||||
" don't overwrite a file forcefully
|
||||
exe "w ".fnameescape(fname)
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
|
||||
endif
|
||||
|
||||
" delete old file from tarfile
|
||||
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
" Note: BSD tar does not support --delete flag
|
||||
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).g:tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
call s:Msg('tar#Write', 'error', $"sorry, unable to update {fnameescape(tarfile)} with {fnameescape(fname)} --delete not supported?")
|
||||
else
|
||||
|
||||
" update tarfile with new file
|
||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).g:tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
call s:Msg('tar#Write', 'error', $"sorry, unable to update {fnameescape(tarfile)} with {fnameescape(fname)}")
|
||||
elseif exists("compress")
|
||||
call system(compress)
|
||||
if exists("tgz")
|
||||
@@ -581,6 +578,7 @@ fun! tar#Diff(userfname,fname)
|
||||
if a:userfname != ""
|
||||
let fname= a:userfname
|
||||
endif
|
||||
exe "lcd ".fnameescape(b:tmpdir). '/_ZIPVIM_'
|
||||
if filereadable(fname)
|
||||
" sets current file (from tarball) for diff'ing
|
||||
" splits window vertically
|
||||
@@ -604,12 +602,6 @@ fun! tar#Extract()
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
@@ -623,16 +615,16 @@ fun! tar#Extract()
|
||||
if filereadable(tarbase.".tar")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
echo "***note*** successfully extracted ". fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tgz")
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tgz {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -641,7 +633,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.gz {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -650,7 +642,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tbz {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -659,7 +651,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.bz2 {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -668,7 +660,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz3 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz3 ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.bz3 {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -677,7 +669,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.txz {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -686,7 +678,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.xz {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -695,7 +687,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tzst {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -704,7 +696,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.zst {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -713,7 +705,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tlz4 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tlz4 ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tlz4 {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -722,7 +714,7 @@ fun! tar#Extract()
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.lz4".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.lz4 ".fname.": failed!" | echohl NONE
|
||||
call s:Msg('tar#Extract', 'error', $"{extractcmd} {tarbase}.tar.lz4 {fname}: failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -735,15 +727,7 @@ endfun
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Rmdir: {{{2
|
||||
fun! s:Rmdir(fname)
|
||||
if has("unix")
|
||||
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if &shell =~? "sh$"
|
||||
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||
else
|
||||
call system("del /S ".shellescape(a:fname,0))
|
||||
endif
|
||||
endif
|
||||
call delete(a:fname, 'rf')
|
||||
endfun
|
||||
|
||||
" s:FileHeader: {{{2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Language: Typst
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
" Previous Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Last Change: 2025 Aug 05
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
|
||||
function! typst#indentexpr() abort
|
||||
|
||||
83
runtime/autoload/vimcomplete.vim
Normal file
83
runtime/autoload/vimcomplete.vim
Normal file
@@ -0,0 +1,83 @@
|
||||
vim9script
|
||||
|
||||
# Vim completion script
|
||||
# Language: Vim script
|
||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
# Last Change: 2025-08-10
|
||||
#
|
||||
# Usage:
|
||||
# setlocal omnifunc=vimcomplete#Complete
|
||||
#
|
||||
# Simple complete function for Vim script
|
||||
|
||||
var trigger: string = ""
|
||||
var prefix: string = ""
|
||||
|
||||
|
||||
def GetTrigger(line: string): list<any>
|
||||
var result = ""
|
||||
var result_len = 0
|
||||
|
||||
if line =~ '->\k*$'
|
||||
result = 'function'
|
||||
elseif line =~ '\v%(^|\s+)\&\k*$'
|
||||
result = 'option'
|
||||
elseif line =~ '[\[(]\s*$'
|
||||
result = 'expression'
|
||||
elseif line =~ '[lvgsb]:\k*$'
|
||||
result = 'var'
|
||||
result_len = 2
|
||||
else
|
||||
result = getcompletiontype(line) ?? 'cmdline'
|
||||
endif
|
||||
return [result, result_len]
|
||||
enddef
|
||||
|
||||
export def Complete(findstart: number, base: string): any
|
||||
if findstart > 0
|
||||
var line = getline('.')->strpart(0, col('.') - 1)
|
||||
var keyword = line->matchstr('\k\+$')
|
||||
var stx = synstack(line('.'), col('.') - 1)->map('synIDattr(v:val, "name")')->join()
|
||||
if stx =~? 'Comment' || (stx =~ 'String' && stx !~ 'vimStringInterpolationExpr')
|
||||
return -2
|
||||
endif
|
||||
var trigger_len: number = 0
|
||||
[trigger, trigger_len] = GetTrigger(line)
|
||||
if keyword->empty() && trigger->empty()
|
||||
return -2
|
||||
endif
|
||||
prefix = line
|
||||
return line->len() - keyword->len() - trigger_len
|
||||
endif
|
||||
|
||||
var items = []
|
||||
if trigger == 'function'
|
||||
items = getcompletion(base, 'function')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Function', dup: 0}))
|
||||
elseif trigger == 'option'
|
||||
items = getcompletion(base, 'option')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Option', dup: 0}))
|
||||
elseif trigger == 'var'
|
||||
items = getcompletion(base, 'var')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Variable', dup: 0}))
|
||||
elseif trigger == 'expression'
|
||||
items = getcompletion(base, 'expression')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Expression', dup: 0}))
|
||||
elseif trigger == 'command'
|
||||
var commands = getcompletion(base, 'command')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Command', dup: 0}))
|
||||
var functions = getcompletion(base, 'function')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Function', dup: 0}))
|
||||
items = commands + functions
|
||||
else
|
||||
items = getcompletion(prefix, 'cmdline')
|
||||
->mapnew((_, v) => ({word: v->matchstr('\k\+'), kind: 'v', dup: 0}))
|
||||
|
||||
if empty(items) && !empty(base)
|
||||
items = getcompletion(base, 'expression')
|
||||
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Expression', dup: 0}))
|
||||
endif
|
||||
endif
|
||||
|
||||
return items->empty() ? v:none : items
|
||||
enddef
|
||||
173
runtime/autoload/vimgoto.vim
Normal file
173
runtime/autoload/vimgoto.vim
Normal file
@@ -0,0 +1,173 @@
|
||||
vim9script
|
||||
|
||||
# Language: Vim9 script
|
||||
# Contributers: @lacygoill
|
||||
# Shane-XB-Qian
|
||||
# Last Change: 2025 Aug 13
|
||||
#
|
||||
# Vim Script to handle
|
||||
# :import, :packadd and :colorscheme
|
||||
# lines and allows to easily jump to it using gf
|
||||
#
|
||||
# see runtime/ftplugin/vim.vim
|
||||
|
||||
# Interface {{{1
|
||||
export def Find(editcmd: string) #{{{2
|
||||
var curline: string = getline('.')
|
||||
|
||||
if curline =~ '^\s*\%(:\s*\)\=packadd!\=\s'
|
||||
HandlePackaddLine(editcmd, curline)
|
||||
return
|
||||
endif
|
||||
|
||||
if curline =~ '^\s*\%(:\s*\)\=colo\%[rscheme]\s'
|
||||
HandleColoLine(editcmd, curline)
|
||||
return
|
||||
endif
|
||||
|
||||
if curline =~ '^\s*\%(:\s*\)\=import\s'
|
||||
HandleImportLine(editcmd, curline)
|
||||
return
|
||||
endif
|
||||
|
||||
try
|
||||
execute 'normal! ' .. editcmd
|
||||
catch
|
||||
Error(v:exception)
|
||||
endtry
|
||||
enddef
|
||||
#}}}1
|
||||
# Core {{{1
|
||||
def HandlePackaddLine(editcmd: string, curline: string) #{{{2
|
||||
var pat: string = '\s*\%(:\s*\)\=packadd!\=\s\+\zs\S\+\>\ze'
|
||||
var plugin: string = curline
|
||||
->matchstr(pat)
|
||||
->substitute('^vim-\|\.vim$', '', 'g')
|
||||
|
||||
if plugin == ''
|
||||
try
|
||||
execute 'normal! ' .. editcmd .. 'zv'
|
||||
catch
|
||||
Error(v:exception)
|
||||
return
|
||||
endtry
|
||||
else
|
||||
var split: string = editcmd[0] == 'g' ? 'edit' : editcmd[1] == 'g' ? 'tabedit' : 'split'
|
||||
var files: list<string> = getcompletion($'plugin/{plugin}', 'runtime')
|
||||
->map((_, fname: string) => fname->findfile(&rtp)->fnamemodify(':p'))
|
||||
->filter((_, path: string): bool => filereadable(path))
|
||||
if empty(files)
|
||||
echo 'Could not find any plugin file for ' .. string(plugin)
|
||||
return
|
||||
endif
|
||||
files->Open(split)
|
||||
endif
|
||||
enddef
|
||||
|
||||
def HandleColoLine(editcmd: string, curline: string) #{{{2
|
||||
var pat: string = '\s*\%(:\s*\)\=colo\%[rscheme]\s\+\zs\S\+\>\ze'
|
||||
var colo: string = curline->matchstr(pat)
|
||||
|
||||
if colo == ''
|
||||
try
|
||||
execute 'normal! ' .. editcmd .. 'zv'
|
||||
catch
|
||||
Error(v:exception)
|
||||
return
|
||||
endtry
|
||||
else
|
||||
var split: string = editcmd[0] == 'g' ? 'edit' : editcmd[1] == 'g' ? 'tabedit' : 'split'
|
||||
var files: list<string> = getcompletion($'colors/{colo}', 'runtime')
|
||||
->map((_, fname: string) => fname->findfile(&rtp)->fnamemodify(':p'))
|
||||
->filter((_, path: string): bool => filereadable(path))
|
||||
if empty(files)
|
||||
echo 'Could not find any colorscheme file for ' .. string(colo)
|
||||
return
|
||||
endif
|
||||
files->Open(split)
|
||||
endif
|
||||
enddef
|
||||
|
||||
def HandleImportLine(editcmd: string, curline: string) #{{{2
|
||||
var fname: string
|
||||
var import_cmd: string = '^\s*\%(:\s*\)\=import\s\+\%(autoload\s\+\)\='
|
||||
var import_alias: string = '\%(\s\+as\s\+\w\+\)\=$'
|
||||
var import_string: string = import_cmd .. '\([''"]\)\zs.*\ze\1' .. import_alias
|
||||
var import_expr: string = import_cmd .. '\zs.*\ze' .. import_alias
|
||||
# the script is referred to by its name in a quoted string
|
||||
if curline =~ import_string
|
||||
fname = curline->matchstr(import_string)
|
||||
# the script is referred to by an expression
|
||||
elseif curline =~ import_expr
|
||||
try
|
||||
sandbox fname = curline
|
||||
->matchstr(import_expr)
|
||||
->eval()
|
||||
catch
|
||||
Error(v:exception)
|
||||
return
|
||||
endtry
|
||||
endif
|
||||
|
||||
var filepath: string
|
||||
if fname->isabsolutepath()
|
||||
filepath = fname
|
||||
elseif fname[0] == '.'
|
||||
filepath = (expand('%:h') .. '/' .. fname)->simplify()
|
||||
else
|
||||
var subdir: string = curline =~ '^\s*import\s\+autoload\>' ? 'autoload' : 'import'
|
||||
# Matching patterns in `'wildignore'` can be slow.
|
||||
# Let's set `{nosuf}` to `true` to avoid `globpath()` to be slow.
|
||||
filepath = globpath(&runtimepath, subdir .. '/' .. fname, true, true)
|
||||
->get(0, '')
|
||||
endif
|
||||
|
||||
if !filepath->filereadable()
|
||||
printf('E447: Can''t find file "%s" in path', fname)
|
||||
->Error()
|
||||
return
|
||||
endif
|
||||
|
||||
var how_to_split: string = {
|
||||
gF: 'edit',
|
||||
"\<C-W>F": 'split',
|
||||
"\<C-W>gF": 'tab split',
|
||||
}[editcmd]
|
||||
execute how_to_split .. ' ' .. filepath
|
||||
enddef
|
||||
|
||||
def Open(what: any, how: string) #{{{2
|
||||
var fname: string
|
||||
if what->typename() == 'list<string>'
|
||||
if what->empty()
|
||||
return
|
||||
endif
|
||||
fname = what[0]
|
||||
else
|
||||
if what->typename() != 'string'
|
||||
return
|
||||
endif
|
||||
fname = what
|
||||
endif
|
||||
|
||||
execute $'{how} {fname}'
|
||||
cursor(1, 1)
|
||||
|
||||
# If there are several files to open, put them into an arglist.
|
||||
if what->typename() == 'list<string>'
|
||||
&& what->len() > 1
|
||||
var arglist: list<string> = what
|
||||
->copy()
|
||||
->map((_, f: string) => f->fnameescape())
|
||||
execute $'arglocal {arglist->join()}'
|
||||
endif
|
||||
enddef
|
||||
#}}}1
|
||||
# Util {{{1
|
||||
def Error(msg: string) #{{{2
|
||||
echohl ErrorMsg
|
||||
echomsg msg
|
||||
echohl NONE
|
||||
enddef
|
||||
|
||||
# vim: sw=4 et
|
||||
@@ -15,6 +15,7 @@
|
||||
" 2024 Aug 18 by Vim Project: correctly handle special globbing chars
|
||||
" 2024 Aug 21 by Vim Project: simplify condition to detect MS-Windows
|
||||
" 2025 Mar 11 by Vim Project: handle filenames with leading '-' correctly
|
||||
" 2025 Jul 12 by Vim Project: drop ../ on write to prevent path traversal attacks
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@@ -236,59 +237,62 @@ endfun
|
||||
" zip#Write: {{{2
|
||||
fun! zip#Write(fname)
|
||||
let dict = s:SetSaneOpts()
|
||||
let need_rename = 0
|
||||
defer s:RestoreOpts(dict)
|
||||
|
||||
" sanity checks
|
||||
if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program")
|
||||
return
|
||||
endif
|
||||
if !exists("*mkdir")
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, mkdir() doesn't work on your system")
|
||||
return
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program")
|
||||
return
|
||||
endif
|
||||
|
||||
let curdir= getcwd()
|
||||
let tmpdir= tempname()
|
||||
if tmpdir =~ '\.'
|
||||
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||
endif
|
||||
call mkdir(tmpdir,"p")
|
||||
|
||||
" attempt to change to the indicated directory
|
||||
if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory")
|
||||
return
|
||||
return
|
||||
endif
|
||||
|
||||
" place temporary files under .../_ZIPVIM_/
|
||||
if isdirectory("_ZIPVIM_")
|
||||
call delete("_ZIPVIM_", "rf")
|
||||
call delete("_ZIPVIM_", "rf")
|
||||
endif
|
||||
call mkdir("_ZIPVIM_")
|
||||
cd _ZIPVIM_
|
||||
|
||||
if has("unix")
|
||||
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
else
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
endif
|
||||
if fname =~ '^[.]\{1,2}/'
|
||||
call system(g:zip_zipcmd." -d ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
|
||||
let fname = fname->substitute('^\([.]\{1,2}/\)\+', '', 'g')
|
||||
let need_rename = 1
|
||||
endif
|
||||
|
||||
if fname =~ '/'
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
|
||||
endif
|
||||
call mkdir(dirpath,"p")
|
||||
endif
|
||||
call mkdir(dirpath,"p")
|
||||
endif
|
||||
if zipfile !~ '/'
|
||||
let zipfile= curdir.'/'.zipfile
|
||||
let zipfile= curdir.'/'.zipfile
|
||||
endif
|
||||
|
||||
exe "w! ".fnameescape(fname)
|
||||
" don't overwrite files forcefully
|
||||
exe "w ".fnameescape(fname)
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
|
||||
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
|
||||
endif
|
||||
|
||||
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
|
||||
@@ -297,21 +301,24 @@ fun! zip#Write(fname)
|
||||
|
||||
call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
|
||||
if v:shell_error != 0
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname)
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname)
|
||||
|
||||
elseif s:zipfile_{winnr()} =~ '^\a\+://'
|
||||
" support writing zipfiles across a network
|
||||
let netzipfile= s:zipfile_{winnr()}
|
||||
1split|enew
|
||||
let binkeep= &binary
|
||||
let eikeep = &ei
|
||||
set binary ei=all
|
||||
exe "noswapfile e! ".fnameescape(zipfile)
|
||||
call netrw#NetWrite(netzipfile)
|
||||
let &ei = eikeep
|
||||
let &binary = binkeep
|
||||
q!
|
||||
unlet s:zipfile_{winnr()}
|
||||
" support writing zipfiles across a network
|
||||
let netzipfile= s:zipfile_{winnr()}
|
||||
1split|enew
|
||||
let binkeep= &binary
|
||||
let eikeep = &ei
|
||||
set binary ei=all
|
||||
exe "noswapfile e! ".fnameescape(zipfile)
|
||||
call netrw#NetWrite(netzipfile)
|
||||
let &ei = eikeep
|
||||
let &binary = binkeep
|
||||
q!
|
||||
unlet s:zipfile_{winnr()}
|
||||
elseif need_rename
|
||||
exe $"sil keepalt file {fnameescape($"zipfile://{zipfile}::{fname}")}"
|
||||
call s:Mess('Warning', "***error*** (zip#Browse) Path Traversal Attack detected, dropping relative path")
|
||||
endif
|
||||
|
||||
" cleanup and restore current directory
|
||||
@@ -320,7 +327,6 @@ fun! zip#Write(fname)
|
||||
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
|
||||
call delete(tmpdir, "rf")
|
||||
setlocal nomod
|
||||
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
@@ -333,15 +339,18 @@ fun! zip#Extract()
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
return
|
||||
return
|
||||
endif
|
||||
if fname =~ '/$'
|
||||
call s:Mess('Error', "***error*** (zip#Extract) Please specify a file, not a directory")
|
||||
return
|
||||
call s:Mess('Error', "***error*** (zip#Extract) Please specify a file, not a directory")
|
||||
return
|
||||
elseif fname =~ '^[.]\?[.]/'
|
||||
call s:Mess('Error', "***error*** (zip#Browse) Path Traversal Attack detected, not extracting!")
|
||||
return
|
||||
endif
|
||||
if filereadable(fname)
|
||||
call s:Mess('Error', "***error*** (zip#Extract) <" .. fname .."> already exists in directory, not overwriting!")
|
||||
return
|
||||
call s:Mess('Error', "***error*** (zip#Extract) <" .. fname .."> already exists in directory, not overwriting!")
|
||||
return
|
||||
endif
|
||||
let target = fname->substitute('\[', '[[]', 'g')
|
||||
" unzip 6.0 does not support -- to denote end-of-arguments
|
||||
@@ -363,13 +372,12 @@ fun! zip#Extract()
|
||||
" extract the file mentioned under the cursor
|
||||
call system($"{g:zip_extractcmd} -o {shellescape(b:zipfile)} {target}")
|
||||
if v:shell_error != 0
|
||||
call s:Mess('Error', "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!")
|
||||
call s:Mess('Error', "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!")
|
||||
elseif !filereadable(fname)
|
||||
call s:Mess('Error', "***error*** attempted to extract ".fname." but it doesn't appear to be present!")
|
||||
call s:Mess('Error', "***error*** attempted to extract ".fname." but it doesn't appear to be present!")
|
||||
else
|
||||
echomsg "***note*** successfully extracted ".fname
|
||||
echomsg "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
12
runtime/compiler/phpstan.vim
Normal file
12
runtime/compiler/phpstan.vim
Normal file
@@ -0,0 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: PHPStan
|
||||
" Maintainer: Dietrich Moerman <dietrich.moerman@gmail.com>
|
||||
" Last Change: 2025 Jul 17
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "phpstan"
|
||||
|
||||
CompilerSet makeprg=composer\ exec\ --\ phpstan\ analyse\ -v\ --no-progress\ --error-format=raw
|
||||
CompilerSet errorformat=%f:%l:%m,%-G%.%#
|
||||
@@ -1,10 +1,9 @@
|
||||
" Vim compiler file
|
||||
" Language: Typst
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Previous Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Based On: https://github.com/kaarmu/typst.vim
|
||||
" Last Change: 2024 Dec 09
|
||||
" 2025 Mar 11 by the Vim Project (add comment for Dispatch)
|
||||
" Last Change: 2025 Aug 05
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" The default vimrc file.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Dec 01
|
||||
" Last Change: 2025 Jul 13
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
"
|
||||
" This is loaded if no vimrc file was found.
|
||||
@@ -34,7 +34,6 @@ silent! while 0
|
||||
silent! endwhile
|
||||
|
||||
set ruler " show the cursor position all the time
|
||||
set showcmd " display incomplete commands
|
||||
|
||||
set ttimeout " time out for key codes
|
||||
set ttimeoutlen=100 " wait up to 100ms after Esc for special key
|
||||
|
||||
@@ -153,6 +153,7 @@ DOCS = \
|
||||
vim9class.txt \
|
||||
visual.txt \
|
||||
vietnamese.txt \
|
||||
wayland.txt \
|
||||
windows.txt \
|
||||
workshop.txt
|
||||
|
||||
@@ -309,6 +310,7 @@ HTMLS = \
|
||||
vim9.html \
|
||||
vim9class.html \
|
||||
visual.html \
|
||||
wayland.html \
|
||||
windows.html \
|
||||
workshop.html
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Jun 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -130,6 +130,10 @@ exception is that "<sfile>" is expanded when the autocmd is defined. Example:
|
||||
:au BufNewFile,BufRead *.html so <sfile>:h/html.vim
|
||||
|
||||
Here Vim expands <sfile> to the name of the file containing this line.
|
||||
However, <sfile> works differently in a function, in which case it's better to
|
||||
use `:execute` with <script> to achieve the same purpose:
|
||||
>
|
||||
:exe $'au BufNewFile,BufRead *.html so {expand("<script>:h")}/html.vim'
|
||||
|
||||
`:autocmd` adds to the list of autocommands regardless of whether they are
|
||||
already present. When your .vimrc file is sourced twice, the autocommands
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Jun 07
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Aug 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -249,6 +249,8 @@ getcmdtype() String return current command-line type
|
||||
getcmdwintype() String return current command-line window type
|
||||
getcompletion({pat}, {type} [, {filtered}])
|
||||
List list of cmdline completion matches
|
||||
getcompletiontype({pat}) String return the type of the command-line
|
||||
completion using {pat}
|
||||
getcurpos([{winnr}]) List position of the cursor
|
||||
getcursorcharpos([{winnr}]) List character position of the cursor
|
||||
getcwd([{winnr} [, {tabnr}]]) String get the current working directory
|
||||
@@ -342,7 +344,7 @@ isinf({expr}) Number determine if {expr} is infinity value
|
||||
(positive or negative)
|
||||
islocked({expr}) Number |TRUE| if {expr} is locked
|
||||
isnan({expr}) Number |TRUE| if {expr} is NaN
|
||||
items({dict}) List key-value pairs in {dict}
|
||||
items({expr}) List key-value pairs in {expr}
|
||||
job_getchannel({job}) Channel get the channel handle for {job}
|
||||
job_info([{job}]) Dict get information about {job}
|
||||
job_setoptions({job}, {options}) none set options for {job}
|
||||
@@ -755,6 +757,7 @@ virtcol2col({winid}, {lnum}, {col})
|
||||
Number byte index of a character on screen
|
||||
visualmode([{expr}]) String last visual mode used
|
||||
wildmenumode() Number whether 'wildmenu' mode is active
|
||||
wildtrigger() Number start wildcard expansion
|
||||
win_execute({id}, {command} [, {silent}])
|
||||
String execute {command} in window {id}
|
||||
win_findbuf({bufnr}) List find windows containing {bufnr}
|
||||
@@ -1266,7 +1269,7 @@ base64_encode({blob}) *base64_encode()*
|
||||
" Encode the contents of a binary file
|
||||
echo base64_encode(readblob('somefile.bin'))
|
||||
" Encode a string
|
||||
echo base64_encode(str2blob([somestr]))
|
||||
echo base64_encode(str2blob(somestr->split("\n")))
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetBinaryData()->base64_encode()
|
||||
@@ -1780,16 +1783,23 @@ charidx({string}, {idx} [, {countcc} [, {utf16}]])
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
chdir({dir}) *chdir()*
|
||||
Change the current working directory to {dir}. The scope of
|
||||
the directory change depends on the directory of the current
|
||||
window:
|
||||
- If the current window has a window-local directory
|
||||
(|:lcd|), then changes the window local directory.
|
||||
- Otherwise, if the current tabpage has a local
|
||||
directory (|:tcd|) then changes the tabpage local
|
||||
directory.
|
||||
- Otherwise, changes the global directory.
|
||||
chdir({dir} [, {scope}]) *chdir()*
|
||||
Changes the current working directory to {dir}. The scope of
|
||||
the change is determined as follows:
|
||||
If {scope} is not present, the current working directory is
|
||||
changed to the scope of the current directory:
|
||||
- If the window local directory (|:lcd|) is set, it
|
||||
changes the current working directory for that scope.
|
||||
- Otherwise, if the tab page local directory (|:tcd|) is
|
||||
set, it changes the current directory for that scope.
|
||||
- Otherwise, changes the global directory for that scope.
|
||||
|
||||
If {scope} is present, changes the current working directory
|
||||
for the specified scope:
|
||||
"window" Changes the window local directory. |:lcd|
|
||||
"tabpage" Changes the tab page local directory. |:tcd|
|
||||
"global" Changes the global directory. |:cd|
|
||||
|
||||
{dir} must be a String.
|
||||
If successful, returns the previous working directory. Pass
|
||||
this to another chdir() to restore the directory.
|
||||
@@ -4210,6 +4220,9 @@ getcmdcompltype() *getcmdcompltype()*
|
||||
|getcmdprompt()|, |getcmdcomplpat()| and |setcmdline()|.
|
||||
Returns an empty string when completion is not defined.
|
||||
|
||||
To get the type of the command-line completion for a specified
|
||||
string, use |getcompletiontype()|.
|
||||
|
||||
Return type: |String|
|
||||
|
||||
|
||||
@@ -4308,13 +4321,13 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
customlist,{func} custom completion, defined via {func}
|
||||
diff_buffer |:diffget| and |:diffput| completion
|
||||
dir directory names
|
||||
dir_in_path directory names in |'cdpath'|
|
||||
dir_in_path directory names in 'cdpath'
|
||||
environment environment variable names
|
||||
event autocommand events
|
||||
expression Vim expression
|
||||
file file and directory names
|
||||
file_in_path file and directory names in |'path'|
|
||||
filetype filetype names |'filetype'|
|
||||
file_in_path file and directory names in 'path'
|
||||
filetype filetype names 'filetype'
|
||||
filetypecmd |:filetype| suboptions
|
||||
function function name
|
||||
help help subjects
|
||||
@@ -4328,12 +4341,13 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
messages |:messages| suboptions
|
||||
option options
|
||||
packadd optional package |pack-add| names
|
||||
retab |:retab| suboptions
|
||||
runtime |:runtime| completion
|
||||
scriptnames sourced script names |:scriptnames|
|
||||
shellcmd Shell command
|
||||
shellcmdline Shell command line with filename arguments
|
||||
sign |:sign| suboptions
|
||||
syntax syntax file names |'syntax'|
|
||||
syntax syntax file names 'syntax'
|
||||
syntime |:syntime| suboptions
|
||||
tag tags
|
||||
tag_listfiles tags, file names
|
||||
@@ -4368,6 +4382,15 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
<
|
||||
Return type: list<string>
|
||||
|
||||
getcompletiontype({pat}) *getcompletiontype()*
|
||||
Return the type of the command-line completion using {pat}.
|
||||
When no corresponding completion type is found, an empty
|
||||
string is returned.
|
||||
To get the current command-line completion type, use
|
||||
|getcmdcompltype()|.
|
||||
|
||||
Return type: |String|
|
||||
|
||||
*getcurpos()*
|
||||
getcurpos([{winid}])
|
||||
Get the position of the cursor. This is like getpos('.'), but
|
||||
@@ -6287,20 +6310,25 @@ isnan({expr}) *isnan()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
items({dict}) *items()*
|
||||
Return a |List| with all the key-value pairs of {dict}. Each
|
||||
|List| item is a list with two items: the key of a {dict}
|
||||
entry and the value of this entry. The |List| is in arbitrary
|
||||
order. Also see |keys()| and |values()|.
|
||||
Example: >
|
||||
for [key, value] in items(mydict)
|
||||
echo key .. ': ' .. value
|
||||
endfor
|
||||
<
|
||||
A |List|, a |Tuple| or a |String| argument is also supported.
|
||||
In these cases, items() returns a List with the index and the
|
||||
value at the index.
|
||||
items({expr}) *items()*
|
||||
Return a |List| with all key/index and value pairs of {expr}.
|
||||
Each |List| item is a list with two items:
|
||||
- for a |Dict|: the key and the value
|
||||
- for a |List|, |Tuple| or |String|: the index and the value
|
||||
The returned |List| is in arbitrary order for a |Dict|,
|
||||
otherwise it's in ascending order of the index.
|
||||
|
||||
Also see |keys()| and |values()|.
|
||||
|
||||
Examples: >
|
||||
let mydict = #{a: 'red', b: 'blue'}
|
||||
for [key, value] in items(mydict)
|
||||
echo $"{key} = {value}"
|
||||
endfor
|
||||
echo items([1, 2, 3])
|
||||
echo items(('a', 'b', 'c'))
|
||||
echo items("foobar")
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
mydict->items()
|
||||
<
|
||||
@@ -6533,7 +6561,7 @@ libcall({libname}, {funcname}, {argument})
|
||||
libcallnr({libname}, {funcname}, {argument})
|
||||
Just like |libcall()|, but used for a function that returns an
|
||||
int instead of a string.
|
||||
{only in Win32 on some Unix versions, when the |+libcall|
|
||||
{only in Win32 and some Unix versions, when the |+libcall|
|
||||
feature is present}
|
||||
Examples: >
|
||||
:echo libcallnr("/usr/lib/libc.so", "getpid", "")
|
||||
@@ -7327,14 +7355,16 @@ matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}])
|
||||
[{'lnum': 3, 'byteidx': 0, 'text': 'a'}]
|
||||
" Assuming line 4 in buffer 10 contains "tik tok"
|
||||
:echo matchbufline(10, '\<\k\+\>', 1, 4)
|
||||
[{'lnum': 4, 'byteidx': 0, 'text': 'tik'}, {'lnum': 4, 'byteidx': 4, 'text': 'tok'}]
|
||||
[{'lnum': 4, 'byteidx': 0, 'text': 'tik'},
|
||||
{'lnum': 4, 'byteidx': 4, 'text': 'tok'}]
|
||||
<
|
||||
If {submatch} is present and is v:true, then submatches like
|
||||
"\1", "\2", etc. are also returned. Example: >
|
||||
" Assuming line 2 in buffer 2 contains "acd"
|
||||
:echo matchbufline(2, '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2, 2
|
||||
\ {'submatches': v:true})
|
||||
[{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
|
||||
[{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches':
|
||||
['a', '', 'c', 'd', '', '', '', '', '']}]
|
||||
< The "submatches" List always contains 9 items. If a submatch
|
||||
is not found, then an empty string is returned for that
|
||||
submatch.
|
||||
@@ -7396,9 +7426,6 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
||||
given sequence.
|
||||
limit Maximum number of matches in {list} to be
|
||||
returned. Zero means no limit.
|
||||
camelcase Use enhanced camel case scoring making results
|
||||
better suited for completion related to
|
||||
programming languages. Defaults to v:true.
|
||||
|
||||
If {list} is a list of dictionaries, then the optional {dict}
|
||||
argument supports the following additional items:
|
||||
@@ -7471,7 +7498,8 @@ matchfuzzypos({list}, {str} [, {dict}]) *matchfuzzypos()*
|
||||
< results in [['testing'], [[0, 2, 6]], [99]] >
|
||||
:echo matchfuzzypos(['clay', 'lacy'], 'la')
|
||||
< results in [['lacy', 'clay'], [[0, 1], [1, 2]], [153, 133]] >
|
||||
:echo [{'text': 'hello', 'id' : 10}]->matchfuzzypos('ll', {'key' : 'text'})
|
||||
:echo [{'text': 'hello', 'id' : 10}]
|
||||
\ ->matchfuzzypos('ll', {'key' : 'text'})
|
||||
< results in [[{'id': 10, 'text': 'hello'}], [[2, 3]], [127]]
|
||||
|
||||
Return type: list<list<any>>
|
||||
@@ -7515,15 +7543,18 @@ matchstrlist({list}, {pat} [, {dict}])
|
||||
|
||||
Example: >
|
||||
:echo matchstrlist(['tik tok'], '\<\k\+\>')
|
||||
[{'idx': 0, 'byteidx': 0, 'text': 'tik'}, {'idx': 0, 'byteidx': 4, 'text': 'tok'}]
|
||||
[{'idx': 0, 'byteidx': 0, 'text': 'tik'},
|
||||
{'idx': 0, 'byteidx': 4, 'text': 'tok'}]
|
||||
:echo matchstrlist(['a', 'b'], '\<\k\+\>')
|
||||
[{'idx': 0, 'byteidx': 0, 'text': 'a'}, {'idx': 1, 'byteidx': 0, 'text': 'b'}]
|
||||
[{'idx': 0, 'byteidx': 0, 'text': 'a'},
|
||||
{'idx': 1, 'byteidx': 0, 'text': 'b'}]
|
||||
<
|
||||
If "submatches" is present and is v:true, then submatches like
|
||||
"\1", "\2", etc. are also returned. Example: >
|
||||
:echo matchstrlist(['acd'], '\(a\)\?\(b\)\?\(c\)\?\(.*\)',
|
||||
\ #{submatches: v:true})
|
||||
[{'idx': 0, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
|
||||
[{'idx': 0, 'byteidx': 0, 'text': 'acd',
|
||||
'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
|
||||
< The "submatches" List always contains 9 items. If a submatch
|
||||
is not found, then an empty string is returned for that
|
||||
submatch.
|
||||
@@ -8933,8 +8964,8 @@ remote_send({server}, {string} [, {idvar}]) *remote_send()* *E241*
|
||||
Note: Any errors will be reported in the server and may mess
|
||||
up the display.
|
||||
Examples: >
|
||||
:echo remote_send("gvim", ":DropAndReply " .. file, "serverid") ..
|
||||
\ remote_read(serverid)
|
||||
:echo remote_send("gvim", ":DropAndReply " .. file,
|
||||
\ "serverid") .. remote_read(serverid)
|
||||
|
||||
:autocmd NONE RemoteReply *
|
||||
\ echo remote_read(expand("<amatch>"))
|
||||
@@ -9364,11 +9395,12 @@ searchcount([{options}]) *searchcount()*
|
||||
|
||||
To get the last search count when |n| or |N| was pressed, call
|
||||
this function with `recompute: 0` . This sometimes returns
|
||||
wrong information because |n| and |N|'s maximum count is 99.
|
||||
If it exceeded 99 the result must be max count + 1 (100). If
|
||||
you want to get correct information, specify `recompute: 1`: >
|
||||
wrong information because of 'maxsearchcount'.
|
||||
If the count exceeded 'maxsearchcount', the result must be
|
||||
'maxsearchcount' + 1. If you want to get correct information,
|
||||
specify `recompute: 1`: >
|
||||
|
||||
" result == maxcount + 1 (100) when many matches
|
||||
" result == 'maxsearchcount' + 1 when many matches
|
||||
let result = searchcount(#{recompute: 0})
|
||||
|
||||
" Below returns correct result (recompute defaults
|
||||
@@ -9455,7 +9487,7 @@ searchcount([{options}]) *searchcount()*
|
||||
result. if search exceeded
|
||||
total count, "total" value
|
||||
becomes `maxcount + 1`
|
||||
(default: 99)
|
||||
(default: 'maxsearchcount')
|
||||
pos |List| `[lnum, col, off]` value
|
||||
when recomputing the result.
|
||||
this changes "current" result
|
||||
@@ -11168,7 +11200,7 @@ strridx({haystack}, {needle} [, {start}]) *strridx()*
|
||||
|
||||
strtrans({string}) *strtrans()*
|
||||
The result is a String, which is {string} with all unprintable
|
||||
characters translated into printable characters |'isprint'|.
|
||||
characters translated into printable characters 'isprint'.
|
||||
Like they are shown in a window. Example: >
|
||||
echo strtrans(@a)
|
||||
< This displays a newline in register a as "^@" instead of
|
||||
@@ -11686,7 +11718,7 @@ taglist({expr} [, {filename}]) *taglist()*
|
||||
Refer to |tag-regexp| for more information about the tag
|
||||
search regular expression pattern.
|
||||
|
||||
Refer to |'tags'| for information about how the tags file is
|
||||
Refer to 'tags' for information about how the tags file is
|
||||
located by Vim. Refer to |tags-file-format| for the format of
|
||||
the tags file generated by the different ctags tools.
|
||||
|
||||
@@ -12143,6 +12175,7 @@ uniq({list} [, {func} [, {dict}]]) *uniq()* *E882*
|
||||
:let newlist = uniq(copy(mylist))
|
||||
< The default compare function uses the string representation of
|
||||
each item. For the use of {func} and {dict} see |sort()|.
|
||||
For deduplicating text in the current buffer see |:uniq|.
|
||||
|
||||
Returns zero if {list} is not a |List|.
|
||||
|
||||
@@ -12217,7 +12250,7 @@ virtcol({expr} [, {list} [, {winid}]]) *virtcol()*
|
||||
last character. When "off" is omitted zero is used. When
|
||||
Virtual editing is active in the current mode, a position
|
||||
beyond the end of the line can be returned. Also see
|
||||
|'virtualedit'|
|
||||
'virtualedit'
|
||||
|
||||
If {list} is present and non-zero then virtcol() returns a
|
||||
List with the first and last screen position occupied by the
|
||||
@@ -12314,6 +12347,38 @@ wildmenumode() *wildmenumode()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
wildtrigger() *wildtrigger()*
|
||||
Start wildcard expansion in the command-line, using the
|
||||
behavior defined by the 'wildmode' and 'wildoptions' settings.
|
||||
See |cmdline-completion|.
|
||||
|
||||
This function also enables completion in search patterns such
|
||||
as |/|, |?|, |:s|, |:g|, |:v| and |:vimgrep|.
|
||||
|
||||
Unlike pressing 'wildchar' manually, this function does not
|
||||
produce a beep when no matches are found and generally
|
||||
operates more quietly. This makes it suitable for triggering
|
||||
completion automatically, such as from an |:autocmd|.
|
||||
*cmdline-autocompletion*
|
||||
Example: To make the completion menu pop up automatically as
|
||||
you type on the command line, use: >
|
||||
autocmd CmdlineChanged [:/\?] call wildtrigger()
|
||||
set wildmode=noselect:lastused,full wildoptions=pum
|
||||
<
|
||||
To retain normal history navigation (up/down keys): >
|
||||
cnoremap <Up> <C-U><Up>
|
||||
cnoremap <Down> <C-U><Down>
|
||||
<
|
||||
To set an option specifically when performing a search, e.g.
|
||||
to set 'pumheight': >
|
||||
autocmd CmdlineEnter [/\?] set pumheight=8
|
||||
autocmd CmdlineLeave [/\?] set pumheight&
|
||||
<
|
||||
Return value is always 0.
|
||||
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
win_execute({id}, {command} [, {silent}]) *win_execute()*
|
||||
Like `execute()` but in the context of window {id}.
|
||||
The window will temporarily be made the current window,
|
||||
@@ -12856,12 +12921,12 @@ clipboard_working Compiled with 'clipboard' support and it can be used.
|
||||
cmdline_compl Compiled with |cmdline-completion| support.
|
||||
cmdline_hist Compiled with |cmdline-history| support.
|
||||
cmdline_info Compiled with 'showcmd' and 'ruler' support.
|
||||
comments Compiled with |'comments'| support.
|
||||
comments Compiled with 'comments' support.
|
||||
compatible Compiled to be very Vi compatible.
|
||||
conpty Platform where |ConPTY| can be used.
|
||||
cryptv Compiled with encryption support |encryption|.
|
||||
cscope Compiled with |cscope| support.
|
||||
cursorbind Compiled with |'cursorbind'| (always true)
|
||||
cursorbind Compiled with 'cursorbind' (always true)
|
||||
debug Compiled with "DEBUG" defined.
|
||||
dialog_con Compiled with console dialog support.
|
||||
dialog_con_gui Compiled with console and GUI dialog support.
|
||||
@@ -12876,8 +12941,7 @@ emacs_tags Compiled with support for Emacs tags.
|
||||
eval Compiled with expression evaluation support. Always
|
||||
true, of course!
|
||||
ex_extra |+ex_extra| (always true)
|
||||
extra_search Compiled with support for |'incsearch'| and
|
||||
|'hlsearch'|
|
||||
extra_search Compiled with support for 'incsearch' and 'hlsearch'
|
||||
farsi Support for Farsi was removed |farsi|.
|
||||
file_in_path Compiled with support for |gf| and |<cfile>| (always
|
||||
true)
|
||||
@@ -12971,7 +13035,8 @@ python_dynamic Python 2.x interface is dynamically loaded. |has-python|
|
||||
python3 Python 3.x interface available. |has-python|
|
||||
python3_compiled Compiled with Python 3.x interface. |has-python|
|
||||
python3_dynamic Python 3.x interface is dynamically loaded. |has-python|
|
||||
python3_stable Python 3.x interface is using Python Stable ABI. |has-python|
|
||||
python3_stable Python 3.x interface is using Python Stable ABI.
|
||||
|has-python|
|
||||
pythonx Python 2.x and/or 3.x interface available. |python_x|
|
||||
qnx QNX version of Vim.
|
||||
quickfix Compiled with |quickfix| support.
|
||||
@@ -12982,6 +13047,7 @@ scrollbind Compiled with 'scrollbind' support. (always true)
|
||||
showcmd Compiled with 'showcmd' support.
|
||||
signs Compiled with |:sign| support.
|
||||
smartindent Compiled with 'smartindent' support. (always true)
|
||||
socketserver Compiled with socket server functionality. (Unix only)
|
||||
sodium Compiled with libsodium for better crypt support
|
||||
sound Compiled with sound support, e.g. `sound_playevent()`
|
||||
spell Compiled with spell checking support |spell|.
|
||||
@@ -13008,7 +13074,7 @@ textprop Compiled with support for |text-properties|.
|
||||
tgetent Compiled with tgetent support, able to use a termcap
|
||||
or terminfo file.
|
||||
timers Compiled with |timer_start()| support.
|
||||
title Compiled with window title support |'title'|.
|
||||
title Compiled with window title support 'title'.
|
||||
(always true)
|
||||
toolbar Compiled with support for |gui-toolbar|.
|
||||
ttyin input is a terminal (tty)
|
||||
@@ -13016,7 +13082,7 @@ ttyout output is a terminal (tty)
|
||||
unix Unix version of Vim. *+unix*
|
||||
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
|
||||
user_commands User-defined commands. (always true)
|
||||
vartabs Compiled with variable tabstop support |'vartabstop'|.
|
||||
vartabs Compiled with variable tabstop support 'vartabstop'.
|
||||
vcon Win32: Virtual console support is working, can use
|
||||
'termguicolors'. Also see |+vtp|.
|
||||
vertsplit Compiled with vertically split windows |:vsplit|.
|
||||
@@ -13037,6 +13103,8 @@ vms VMS version of Vim.
|
||||
vreplace Compiled with |gR| and |gr| commands. (always true)
|
||||
vtp Compiled for vcon support |+vtp| (check vcon to find
|
||||
out if it works in the current console).
|
||||
wayland Compiled with Wayland protocol support.
|
||||
wayland_clipboard Compiled with support for Wayland selections/clipboard
|
||||
wildignore Compiled with 'wildignore' option.
|
||||
wildmenu Compiled with 'wildmenu' option.
|
||||
win16 old version for MS-Windows 3.1 (always false)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 May 28
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -20,6 +20,7 @@ commands with the "." command.
|
||||
5. Copying and moving text |copy-move|
|
||||
6. Formatting text |formatting|
|
||||
7. Sorting text |sorting|
|
||||
8. Deduplicating text |deduplicating|
|
||||
|
||||
For inserting text see |insert.txt|.
|
||||
|
||||
@@ -33,13 +34,13 @@ For inserting text see |insert.txt|.
|
||||
The <Del> key does not take a [count]. Instead, it
|
||||
deletes the last character of the count.
|
||||
See |:fixdel| if the <Del> key does not do what you
|
||||
want. See |'whichwrap'| for deleting a line break
|
||||
want. See 'whichwrap' for deleting a line break
|
||||
(join lines).
|
||||
|
||||
*X* *dh*
|
||||
["x]X Delete [count] characters before the cursor [into
|
||||
register x] (not |linewise|). Does the same as "dh".
|
||||
Also see |'whichwrap'|.
|
||||
Also see 'whichwrap'.
|
||||
|
||||
*d*
|
||||
["x]d{motion} Delete text that {motion} moves over [into register
|
||||
@@ -608,11 +609,11 @@ comment (starting with '"') after the `:!` command.
|
||||
={motion} Filter {motion} lines through the external program
|
||||
given with the 'equalprg' option. When the 'equalprg'
|
||||
option is empty (this is the default), use the
|
||||
internal formatting function |C-indenting| and
|
||||
|'lisp'|. But when 'indentexpr' is not empty, it will
|
||||
be used instead |indent-expression|. When Vim was
|
||||
compiled without internal formatting then the "indent"
|
||||
program is used as a last resort.
|
||||
internal formatting function |C-indenting| and 'lisp'.
|
||||
But when 'indentexpr' is not empty, it will be used
|
||||
instead |indent-expression|. When Vim was compiled
|
||||
without internal formatting then the "indent" program
|
||||
is used as a last resort.
|
||||
|
||||
*==*
|
||||
== Filter [count] lines like with ={motion}.
|
||||
@@ -990,22 +991,26 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
|
||||
|
||||
4.4 Changing tabs *change-tabs*
|
||||
*:ret* *:retab* *:retab!*
|
||||
:[range]ret[ab][!] [new_tabstop]
|
||||
:[range]ret[ab][!] [-indentonly] [{new-tabstop}]
|
||||
Replace all sequences of white-space containing a
|
||||
<Tab> with new strings of white-space using the new
|
||||
tabstop value given. If you do not specify a new
|
||||
tabstop size or it is zero, Vim uses the current value
|
||||
of 'tabstop'.
|
||||
<Tab> with new strings of white-space using
|
||||
{new-tabstop}. If you do not specify {new-tabstop} or
|
||||
it is zero, Vim uses the current value of 'tabstop'.
|
||||
The current value of 'tabstop' is always used to
|
||||
compute the width of existing tabs.
|
||||
With !, Vim also replaces strings of only normal
|
||||
spaces with tabs where appropriate.
|
||||
With 'expandtab' on, Vim replaces all tabs with the
|
||||
appropriate number of spaces.
|
||||
This command sets 'tabstop' to the new value given,
|
||||
and if performed on the whole file, which is default,
|
||||
should not make any visible change.
|
||||
Careful: This command modifies any <Tab> characters
|
||||
This command sets 'tabstop' to {new-tabstop} and if
|
||||
performed on the whole file, which is default, should
|
||||
not make any visible change.
|
||||
|
||||
When [-indentonly] is specified, only the leading
|
||||
white-space will be targeted. Any other consecutive
|
||||
white-space will not be changed.
|
||||
|
||||
Warning: This command modifies any <Tab> characters
|
||||
inside of strings in a C program. Use "\t" to avoid
|
||||
this (that's a good habit anyway).
|
||||
`:retab!` may also change a sequence of spaces by
|
||||
@@ -1895,6 +1900,7 @@ And a few warnings:
|
||||
|
||||
Vim has a sorting function and a sorting command. The sorting function can be
|
||||
found here: |sort()|, |uniq()|.
|
||||
Also see |:uniq|.
|
||||
|
||||
*:sor* *:sort*
|
||||
:[range]sor[t][!] [b][f][i][l][n][o][r][u][x] [/{pattern}/]
|
||||
@@ -1904,7 +1910,7 @@ found here: |sort()|, |uniq()|.
|
||||
With [!] the order is reversed.
|
||||
|
||||
With [i] case is ignored.
|
||||
|
||||
*:sort-l*
|
||||
With [l] sort uses the current collation locale.
|
||||
Implementation details: strcoll() is used to compare
|
||||
strings. See |:language| to check or set the collation
|
||||
@@ -1937,13 +1943,14 @@ found here: |sort()|, |uniq()|.
|
||||
|
||||
With [b] sorting is done on the first binary number in
|
||||
the line (after or inside a {pattern} match).
|
||||
|
||||
*:sort-u* *:sort-uniq*
|
||||
With [u] (u stands for unique) only keep the first of
|
||||
a sequence of identical lines (ignoring case when [i]
|
||||
is used). Without this flag, a sequence of identical
|
||||
lines will be kept in their original order.
|
||||
Note that leading and trailing white space may cause
|
||||
lines to be different.
|
||||
When you just want to make things unique, use |:uniq|.
|
||||
|
||||
When /{pattern}/ is specified and there is no [r] flag
|
||||
the text matched with {pattern} is skipped, so that
|
||||
@@ -1990,4 +1997,55 @@ The sorting can be interrupted, but if you interrupt it too late in the
|
||||
process you may end up with duplicated lines. This also depends on the system
|
||||
library function used.
|
||||
|
||||
==============================================================================
|
||||
8. Deduplicating text *deduplicating* *unique*
|
||||
|
||||
Vim has a deduplicating function and a deduplicating command. The
|
||||
deduplicating function can be found here: |uniq()|.
|
||||
Also see |:sort-uniq|.
|
||||
|
||||
*:uni* *:uniq*
|
||||
:[range]uni[q][!] [i][l][r][u] [/{pattern}/]
|
||||
Remove duplicate lines that are adjacent to each other
|
||||
in [range]. When no range is given, all lines are
|
||||
processed.
|
||||
|
||||
With [i] case is ignored when comparing lines.
|
||||
|
||||
With [l] comparison uses the current collation locale.
|
||||
See |:sort-l| for more details.
|
||||
|
||||
With [r] comparison is done on the text that matches
|
||||
/{pattern}/ instead of the full line.
|
||||
|
||||
With [u] only keep lines that do not repeat (i.e., are
|
||||
not immediately followed by the same line).
|
||||
|
||||
With [!] only keep lines that are immediately followed
|
||||
by a duplicate.
|
||||
|
||||
If both [!] and [u] are given, [u] is ignored and [!]
|
||||
takes effect.
|
||||
|
||||
When /{pattern}/ is specified and [r] is not used, the
|
||||
text matched with {pattern} is skipped and comparison
|
||||
is done on what comes after the match.
|
||||
'ignorecase' applies to the pattern, but 'smartcase'
|
||||
is not used.
|
||||
Instead of the slash any non-letter can be used.
|
||||
|
||||
For example, to remove adjacent duplicate lines based
|
||||
on the second comma-separated field: >
|
||||
:uniq /[^,]*,/
|
||||
< Or to keep only unique lines ignoring the first 5
|
||||
characters: >
|
||||
:uniq u /.\{5}/
|
||||
< If {pattern} is empty (e.g. // is used), the last
|
||||
search pattern is used.
|
||||
|
||||
Note that leading and trailing white space may cause
|
||||
lines to be considered different.
|
||||
To remove all duplicates regardless of position, use
|
||||
|:sort-u| or external tools.
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 9.1. Last change: 2025 Mar 08
|
||||
*cmdline.txt* For Vim version 9.1. Last change: 2025 Aug 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -415,7 +415,7 @@ CTRL-D List names that match the pattern in front of the cursor.
|
||||
to the end.
|
||||
The 'wildoptions' option can be set to "tagfile" to list the
|
||||
file of matching tags.
|
||||
*c_CTRL-I* *c_wildchar* *c_<Tab>*
|
||||
*c_CTRL-I* *c_wildchar* *c_<Tab>* */_<Tab>*
|
||||
'wildchar' option
|
||||
A match is done on the pattern in front of the cursor. The
|
||||
match (if there are several, the first match) is inserted
|
||||
@@ -425,6 +425,10 @@ CTRL-D List names that match the pattern in front of the cursor.
|
||||
again and there were multiple matches, the next
|
||||
match is inserted. After the last match, the first is used
|
||||
again (wrap around).
|
||||
|
||||
In search context use <CTRL-V><Tab> or "\t" to search for a
|
||||
literal <Tab> instead of triggering completion.
|
||||
|
||||
The behavior can be changed with the 'wildmode' option.
|
||||
*c_<S-Tab>*
|
||||
<S-Tab> Like 'wildchar' or <Tab>, but begin with the last match and
|
||||
@@ -458,7 +462,7 @@ CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-G will move
|
||||
to the next match (does not take |search-offset| into account)
|
||||
Use CTRL-T to move to the previous match. Hint: on a regular
|
||||
keyboard T is above G.
|
||||
keyboard G is below T.
|
||||
*c_CTRL-T* */_CTRL-T*
|
||||
CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-T will move
|
||||
@@ -475,6 +479,8 @@ 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.
|
||||
|
||||
See also |wildtrigger()|.
|
||||
|
||||
The 'wildmenu' option can be set to show the matches just above the command
|
||||
line.
|
||||
|
||||
@@ -921,7 +927,7 @@ to insert special things while typing you can use the CTRL-R command. For
|
||||
example, "%" stands for the current file name, while CTRL-R % inserts the
|
||||
current file name right away. See |c_CTRL-R|.
|
||||
|
||||
Note: If you want to avoid the effects of special characters in a Vim script
|
||||
Note: If you want to avoid the effects of special characters in a Vim script
|
||||
you may want to use |fnameescape()|. Also see |`=|.
|
||||
|
||||
|
||||
@@ -1319,8 +1325,10 @@ Example: >
|
||||
:au CmdwinLeave : let &cpt = b:cpt_save
|
||||
This sets 'complete' to use completion in the current window for |i_CTRL-N|.
|
||||
Another example: >
|
||||
:au CmdwinEnter [/?] startinsert
|
||||
:au CmdwinEnter [/\?] startinsert
|
||||
This will make Vim start in Insert mode in the command-line window.
|
||||
Note: The "?" needs to be escaped, as this is a |file-pattern|. See also
|
||||
|cmdline-autocompletion|.
|
||||
|
||||
*cmdwin-char*
|
||||
The character used for the pattern indicates the type of command-line:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*debug.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*debug.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -164,7 +164,7 @@ The Debugging Tools for Windows (including WinDbg) can be downloaded from
|
||||
This includes the WinDbg debugger.
|
||||
|
||||
Visual C++ 2005 Express Edition can be downloaded for free from:
|
||||
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
|
||||
https://visualstudio.microsoft.com/
|
||||
|
||||
=========================================================================
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 9.1. Last change: 2025 May 05
|
||||
*develop.txt* For Vim version 9.1. Last change: 2025 Aug 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -10,9 +10,9 @@ This text is important for those who want to be involved in further developing
|
||||
Vim.
|
||||
|
||||
1. Design goals |design-goals|
|
||||
2. Coding style |coding-style|
|
||||
3. Design decisions |design-decisions|
|
||||
4. Assumptions |design-assumptions|
|
||||
2. Design decisions |design-decisions|
|
||||
3. Assumptions |design-assumptions|
|
||||
4. Coding style |coding-style|
|
||||
|
||||
See the file README.txt in the "src" directory for an overview of the source
|
||||
code.
|
||||
@@ -159,7 +159,211 @@ VIM IS... NOT *design-not*
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Coding style *coding-style*
|
||||
2. Design decisions *design-decisions*
|
||||
|
||||
Folding
|
||||
|
||||
Several forms of folding should be possible for the same buffer. For example,
|
||||
have one window that shows the text with function bodies folded, another
|
||||
window that shows a function body.
|
||||
|
||||
Folding is a way to display the text. It should not change the text itself.
|
||||
Therefore the folding has been implemented as a filter between the text stored
|
||||
in a buffer (buffer lines) and the text displayed in a window (logical lines).
|
||||
|
||||
|
||||
Naming the window
|
||||
|
||||
The word "window" is commonly used for several things: A window on the screen,
|
||||
the xterm window, a window inside Vim to view a buffer.
|
||||
To avoid confusion, other items that are sometimes called window have been
|
||||
given another name. Here is an overview of the related items:
|
||||
|
||||
screen The whole display. For the GUI it's something like 1024x768
|
||||
pixels. The Vim shell can use the whole screen or part of it.
|
||||
shell The Vim application. This can cover the whole screen (e.g.,
|
||||
when running in a console) or part of it (xterm or GUI).
|
||||
window View on a buffer. There can be several windows in Vim,
|
||||
together with the command line, menubar, toolbar, etc. they
|
||||
fit in the shell.
|
||||
|
||||
|
||||
Spell checking *develop-spell*
|
||||
|
||||
When spell checking was going to be added to Vim a survey was done over the
|
||||
available spell checking libraries and programs. Unfortunately, the result
|
||||
was that none of them provided sufficient capabilities to be used as the spell
|
||||
checking engine in Vim, for various reasons:
|
||||
|
||||
- Missing support for multibyte encodings. At least UTF-8 must be supported,
|
||||
so that more than one language can be used in the same file.
|
||||
Doing on-the-fly conversion is not always possible (would require iconv
|
||||
support).
|
||||
- For the programs and libraries: Using them as-is would require installing
|
||||
them separately from Vim. That's mostly not impossible, but a drawback.
|
||||
- Performance: A few tests showed that it's possible to check spelling on the
|
||||
fly (while redrawing), just like syntax highlighting. But the mechanisms
|
||||
used by other code are much slower. Myspell uses a hashtable, for example.
|
||||
The affix compression that most spell checkers use makes it slower too.
|
||||
- For using an external program like aspell a communication mechanism would
|
||||
have to be setup. That's complicated to do in a portable way (Unix-only
|
||||
would be relatively simple, but that's not good enough). And performance
|
||||
will become a problem (lots of process switching involved).
|
||||
- Missing support for words with non-word characters, such as "Etten-Leur" and
|
||||
"et al.", would require marking the pieces of them OK, lowering the
|
||||
reliability.
|
||||
- Missing support for regions or dialects. Makes it difficult to accept
|
||||
all English words and highlight non-Canadian words differently.
|
||||
- Missing support for rare words. Many words are correct but hardly ever used
|
||||
and could be a misspelled often-used word.
|
||||
- For making suggestions the speed is less important and requiring to install
|
||||
another program or library would be acceptable. But the word lists probably
|
||||
differ, the suggestions may be wrong words.
|
||||
|
||||
|
||||
Spelling suggestions *develop-spell-suggestions*
|
||||
|
||||
For making suggestions there are two basic mechanisms:
|
||||
1. Try changing the bad word a little bit and check for a match with a good
|
||||
word. Or go through the list of good words, change them a little bit and
|
||||
check for a match with the bad word. The changes are deleting a character,
|
||||
inserting a character, swapping two characters, etc.
|
||||
2. Perform soundfolding on both the bad word and the good words and then find
|
||||
matches, possibly with a few changes like with the first mechanism.
|
||||
|
||||
The first is good for finding typing mistakes. After experimenting with
|
||||
hashtables and looking at solutions from other spell checkers the conclusion
|
||||
was that a trie (a kind of tree structure) is ideal for this. Both for
|
||||
reducing memory use and being able to try sensible changes. For example, when
|
||||
inserting a character only characters that lead to good words need to be
|
||||
tried. Other mechanisms (with hashtables) need to try all possible letters at
|
||||
every position in the word. Also, a hashtable has the requirement that word
|
||||
boundaries are identified separately, while a trie does not require this.
|
||||
That makes the mechanism a lot simpler.
|
||||
|
||||
Soundfolding is useful when someone knows how the words sounds but doesn't
|
||||
know how it is spelled. For example, the word "dictionary" might be written
|
||||
as "daktonerie". The number of changes that the first method would need to
|
||||
try is very big, it's hard to find the good word that way. After soundfolding
|
||||
the words become "tktnr" and "tkxnry", these differ by only two letters.
|
||||
|
||||
To find words by their soundfolded equivalent (soundalike word) we need a list
|
||||
of all soundfolded words. A few experiments have been done to find out what
|
||||
the best method is. Alternatives:
|
||||
1. Do the sound folding on the fly when looking for suggestions. This means
|
||||
walking through the trie of good words, soundfolding each word and
|
||||
checking how different it is from the bad word. This is very efficient for
|
||||
memory use, but takes a long time. On a fast PC it takes a couple of
|
||||
seconds for English, which can be acceptable for interactive use. But for
|
||||
some languages it takes more than ten seconds (e.g., German, Catalan),
|
||||
which is unacceptably slow. For batch processing (automatic corrections)
|
||||
it's too slow for all languages.
|
||||
2. Use a trie for the soundfolded words, so that searching can be done just
|
||||
like how it works without soundfolding. This requires remembering a list
|
||||
of good words for each soundfolded word. This makes finding matches very
|
||||
fast but requires quite a lot of memory, in the order of 1 to 10 Mbyte.
|
||||
For some languages more than the original word list.
|
||||
3. Like the second alternative, but reduce the amount of memory by using affix
|
||||
compression and store only the soundfolded basic word. This is what Aspell
|
||||
does. Disadvantage is that affixes need to be stripped from the bad word
|
||||
before soundfolding it, which means that mistakes at the start and/or end
|
||||
of the word will cause the mechanism to fail. Also, this becomes slow when
|
||||
the bad word is quite different from the good word.
|
||||
|
||||
The choice made is to use the second mechanism and use a separate file. This
|
||||
way a user with sufficient memory can get very good suggestions while a user
|
||||
who is short of memory or just wants the spell checking and no suggestions
|
||||
doesn't use so much memory.
|
||||
|
||||
|
||||
Word frequency
|
||||
|
||||
For sorting suggestions it helps to know which words are common. In theory we
|
||||
could store a word frequency with the word in the dictionary. However, this
|
||||
requires storing a count per word. That degrades word tree compression a lot.
|
||||
And maintaining the word frequency for all languages will be a heavy task.
|
||||
Also, it would be nice to prefer words that are already in the text. This way
|
||||
the words that appear in the specific text are preferred for suggestions.
|
||||
|
||||
What has been implemented is to count words that have been seen during
|
||||
displaying. A hashtable is used to quickly find the word count. The count is
|
||||
initialized from words listed in COMMON items in the affix file, so that it
|
||||
also works when starting a new file.
|
||||
|
||||
This isn't ideal, because the longer Vim is running the higher the counts
|
||||
become. But in practice it is a noticeable improvement over not using the
|
||||
word count.
|
||||
|
||||
==============================================================================
|
||||
3. Assumptions *design-assumptions*
|
||||
|
||||
The following sections define the portability and compatibility constraints
|
||||
that all Vim code and build tools must adhere to.
|
||||
|
||||
|
||||
MAKEFILES *assumptions-makefiles*
|
||||
*POSIX.1-2001*
|
||||
|
||||
Vim's main Makefiles target maximum portability, relying solely on features
|
||||
defined in POSIX.1-2001 `make` and ignoring later POSIX standards or GNU/BSD
|
||||
extensions. In practical terms, avoid:
|
||||
|
||||
- % pattern rules
|
||||
- modern assignment (`:=`, `::=`) outside POSIX.1-2001
|
||||
- special targets (`.ONESHELL`, `.NOTPARALLEL`, `.SILENT`, ...)
|
||||
- order-only prerequisites (`|`) or automatic directory creation
|
||||
- GNU/BSD conditionals (`ifdef`, `ifndef`, `.for`/`.endfor`, ...)
|
||||
|
||||
Since POSIX.1-2001 supports only traditional suffix rules, every object built
|
||||
in a separate directory must have an explicit rule. For example:
|
||||
|
||||
objects/evalbuffer.o: evalbuffer.c
|
||||
$(CCC) -o $@ evalbuffer.c
|
||||
|
||||
This verbosity ensures that the same Makefile builds Vim unchanged with the
|
||||
default `make` on Linux, *BSD, macOS, Solaris, AIX, HP-UX and virtually any
|
||||
Unix-like OS.
|
||||
|
||||
Some platform-specific Makefiles (e.g., for Windows, NSIS, or Cygwin) may use
|
||||
more advanced features when compatibility with basic make is not required.
|
||||
|
||||
|
||||
C COMPILER *assumptions-C-compiler*
|
||||
*ANSI-C* *C89* *C90* *C95* *C99*
|
||||
|
||||
Vim strives for maximum portability (see |design-multi-platform|) and must
|
||||
still build with Compaq C V6.4-005 on OpenVMS VAX V7.3.
|
||||
|
||||
Therefore, the latest ISO C standard we follow is:
|
||||
|
||||
`C95` (ISO/IEC 9899:1990/AMD1:1995)
|
||||
|
||||
In addition, the following `C99` features are explicitly allowed:
|
||||
- `//` comments, as required by |style-comments|;
|
||||
- Mixed declarations and statements in a block;
|
||||
- Variadic macros `(..., __VA_ARGS__)`;
|
||||
- Trailing comma in `enum` lists;
|
||||
- `_Bool` type (for `bool`, `true` and `false`);
|
||||
- `__func__` predefined identifier;
|
||||
- `inline` functions (use `static inline` for portability);
|
||||
- Compound literals `(type){ initializer-list }`;
|
||||
- Logical source lines up to 4095 characters.
|
||||
|
||||
Platform-specific code may use any newer compiler features supported on that
|
||||
platform.
|
||||
|
||||
|
||||
SIZE OF VARIABLES *assumptions-variables*
|
||||
|
||||
We follow POSIX.1-2001 (SUSv3) for type sizes, which in practice means:
|
||||
|
||||
char_u 8-bit unsigned
|
||||
int 32-bit or larger signed
|
||||
unsigned 32-bit or larger unsigned
|
||||
|
||||
|
||||
==============================================================================
|
||||
4. Coding style *coding-style*
|
||||
|
||||
These are the rules to use when making changes to the Vim source code. Please
|
||||
stick to these rules, to keep the sources readable and maintainable.
|
||||
@@ -198,23 +402,6 @@ Other source files do not yet correspond to the .clang-format file. This may
|
||||
change in the future and they may be reformatted as well.
|
||||
|
||||
|
||||
C COMPILER *style-compiler* *ANSI-C* *C89* *C99*
|
||||
|
||||
The minimal C compiler version supported is C89, also known as ANSI C.
|
||||
Later standards, such as C99, are not widely supported, or at least not 100%
|
||||
supported. Therefore we use only some of the C99 features and explicitly
|
||||
disallow some (this will gradually be adjusted over time).
|
||||
|
||||
Features not to be used ~
|
||||
|
||||
These C99 features are not to be used, because not enough compilers support
|
||||
them:
|
||||
- Variable length arrays (even in C11 this is an optional feature).
|
||||
- C99 _Bool and _Complex types.
|
||||
- "inline" (it's hardly ever needed, let the optimizer do its work)
|
||||
- flexible array members: Not supported by HP-UX C compiler (John Marriott)
|
||||
|
||||
|
||||
COMMENTS *style-comments*
|
||||
|
||||
Try to avoid putting multiline comments inside a function body: if the
|
||||
@@ -237,6 +424,10 @@ you don't need to do anything due to the |modeline|.
|
||||
|
||||
For other editors an `.editorconfig` is provided at the root of the repo.
|
||||
|
||||
For the source files `sign.c` and `sound.c` and any new file use only spaces,
|
||||
no tabs. In addition, any new file must include a modeline with `set et` to
|
||||
pass the indentation test.
|
||||
|
||||
|
||||
DECLARATIONS *style-declarations*
|
||||
|
||||
@@ -509,153 +700,4 @@ OK: do
|
||||
while (cond);
|
||||
|
||||
|
||||
==============================================================================
|
||||
3. Design decisions *design-decisions*
|
||||
|
||||
Folding
|
||||
|
||||
Several forms of folding should be possible for the same buffer. For example,
|
||||
have one window that shows the text with function bodies folded, another
|
||||
window that shows a function body.
|
||||
|
||||
Folding is a way to display the text. It should not change the text itself.
|
||||
Therefore the folding has been implemented as a filter between the text stored
|
||||
in a buffer (buffer lines) and the text displayed in a window (logical lines).
|
||||
|
||||
|
||||
Naming the window
|
||||
|
||||
The word "window" is commonly used for several things: A window on the screen,
|
||||
the xterm window, a window inside Vim to view a buffer.
|
||||
To avoid confusion, other items that are sometimes called window have been
|
||||
given another name. Here is an overview of the related items:
|
||||
|
||||
screen The whole display. For the GUI it's something like 1024x768
|
||||
pixels. The Vim shell can use the whole screen or part of it.
|
||||
shell The Vim application. This can cover the whole screen (e.g.,
|
||||
when running in a console) or part of it (xterm or GUI).
|
||||
window View on a buffer. There can be several windows in Vim,
|
||||
together with the command line, menubar, toolbar, etc. they
|
||||
fit in the shell.
|
||||
|
||||
|
||||
Spell checking *develop-spell*
|
||||
|
||||
When spell checking was going to be added to Vim a survey was done over the
|
||||
available spell checking libraries and programs. Unfortunately, the result
|
||||
was that none of them provided sufficient capabilities to be used as the spell
|
||||
checking engine in Vim, for various reasons:
|
||||
|
||||
- Missing support for multibyte encodings. At least UTF-8 must be supported,
|
||||
so that more than one language can be used in the same file.
|
||||
Doing on-the-fly conversion is not always possible (would require iconv
|
||||
support).
|
||||
- For the programs and libraries: Using them as-is would require installing
|
||||
them separately from Vim. That's mostly not impossible, but a drawback.
|
||||
- Performance: A few tests showed that it's possible to check spelling on the
|
||||
fly (while redrawing), just like syntax highlighting. But the mechanisms
|
||||
used by other code are much slower. Myspell uses a hashtable, for example.
|
||||
The affix compression that most spell checkers use makes it slower too.
|
||||
- For using an external program like aspell a communication mechanism would
|
||||
have to be setup. That's complicated to do in a portable way (Unix-only
|
||||
would be relatively simple, but that's not good enough). And performance
|
||||
will become a problem (lots of process switching involved).
|
||||
- Missing support for words with non-word characters, such as "Etten-Leur" and
|
||||
"et al.", would require marking the pieces of them OK, lowering the
|
||||
reliability.
|
||||
- Missing support for regions or dialects. Makes it difficult to accept
|
||||
all English words and highlight non-Canadian words differently.
|
||||
- Missing support for rare words. Many words are correct but hardly ever used
|
||||
and could be a misspelled often-used word.
|
||||
- For making suggestions the speed is less important and requiring to install
|
||||
another program or library would be acceptable. But the word lists probably
|
||||
differ, the suggestions may be wrong words.
|
||||
|
||||
|
||||
Spelling suggestions *develop-spell-suggestions*
|
||||
|
||||
For making suggestions there are two basic mechanisms:
|
||||
1. Try changing the bad word a little bit and check for a match with a good
|
||||
word. Or go through the list of good words, change them a little bit and
|
||||
check for a match with the bad word. The changes are deleting a character,
|
||||
inserting a character, swapping two characters, etc.
|
||||
2. Perform soundfolding on both the bad word and the good words and then find
|
||||
matches, possibly with a few changes like with the first mechanism.
|
||||
|
||||
The first is good for finding typing mistakes. After experimenting with
|
||||
hashtables and looking at solutions from other spell checkers the conclusion
|
||||
was that a trie (a kind of tree structure) is ideal for this. Both for
|
||||
reducing memory use and being able to try sensible changes. For example, when
|
||||
inserting a character only characters that lead to good words need to be
|
||||
tried. Other mechanisms (with hashtables) need to try all possible letters at
|
||||
every position in the word. Also, a hashtable has the requirement that word
|
||||
boundaries are identified separately, while a trie does not require this.
|
||||
That makes the mechanism a lot simpler.
|
||||
|
||||
Soundfolding is useful when someone knows how the words sounds but doesn't
|
||||
know how it is spelled. For example, the word "dictionary" might be written
|
||||
as "daktonerie". The number of changes that the first method would need to
|
||||
try is very big, it's hard to find the good word that way. After soundfolding
|
||||
the words become "tktnr" and "tkxnry", these differ by only two letters.
|
||||
|
||||
To find words by their soundfolded equivalent (soundalike word) we need a list
|
||||
of all soundfolded words. A few experiments have been done to find out what
|
||||
the best method is. Alternatives:
|
||||
1. Do the sound folding on the fly when looking for suggestions. This means
|
||||
walking through the trie of good words, soundfolding each word and
|
||||
checking how different it is from the bad word. This is very efficient for
|
||||
memory use, but takes a long time. On a fast PC it takes a couple of
|
||||
seconds for English, which can be acceptable for interactive use. But for
|
||||
some languages it takes more than ten seconds (e.g., German, Catalan),
|
||||
which is unacceptably slow. For batch processing (automatic corrections)
|
||||
it's too slow for all languages.
|
||||
2. Use a trie for the soundfolded words, so that searching can be done just
|
||||
like how it works without soundfolding. This requires remembering a list
|
||||
of good words for each soundfolded word. This makes finding matches very
|
||||
fast but requires quite a lot of memory, in the order of 1 to 10 Mbyte.
|
||||
For some languages more than the original word list.
|
||||
3. Like the second alternative, but reduce the amount of memory by using affix
|
||||
compression and store only the soundfolded basic word. This is what Aspell
|
||||
does. Disadvantage is that affixes need to be stripped from the bad word
|
||||
before soundfolding it, which means that mistakes at the start and/or end
|
||||
of the word will cause the mechanism to fail. Also, this becomes slow when
|
||||
the bad word is quite different from the good word.
|
||||
|
||||
The choice made is to use the second mechanism and use a separate file. This
|
||||
way a user with sufficient memory can get very good suggestions while a user
|
||||
who is short of memory or just wants the spell checking and no suggestions
|
||||
doesn't use so much memory.
|
||||
|
||||
|
||||
Word frequency
|
||||
|
||||
For sorting suggestions it helps to know which words are common. In theory we
|
||||
could store a word frequency with the word in the dictionary. However, this
|
||||
requires storing a count per word. That degrades word tree compression a lot.
|
||||
And maintaining the word frequency for all languages will be a heavy task.
|
||||
Also, it would be nice to prefer words that are already in the text. This way
|
||||
the words that appear in the specific text are preferred for suggestions.
|
||||
|
||||
What has been implemented is to count words that have been seen during
|
||||
displaying. A hashtable is used to quickly find the word count. The count is
|
||||
initialized from words listed in COMMON items in the affix file, so that it
|
||||
also works when starting a new file.
|
||||
|
||||
This isn't ideal, because the longer Vim is running the higher the counts
|
||||
become. But in practice it is a noticeable improvement over not using the word
|
||||
count.
|
||||
|
||||
==============================================================================
|
||||
4. Assumptions *design-assumptions*
|
||||
|
||||
Size of variables:
|
||||
char 8 bit signed
|
||||
char_u 8 bit unsigned
|
||||
int 32 or 64 bit signed (16 might be possible with limited features)
|
||||
unsigned 32 or 64 bit unsigned (16 as with ints)
|
||||
long 32 or 64 bit signed, can hold a pointer
|
||||
|
||||
Note that some compilers cannot handle long lines or strings. The C89
|
||||
standard specifies a limit of 509 characters.
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
*diff.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -14,7 +14,8 @@ The basics are explained in section |08.7| of the user manual.
|
||||
2. Viewing diffs |view-diffs|
|
||||
3. Jumping to diffs |jumpto-diffs|
|
||||
4. Copying diffs |copy-diffs|
|
||||
5. Diff options |diff-options|
|
||||
5. Diff anchors |diff-anchors|
|
||||
6. Diff options |diff-options|
|
||||
|
||||
==============================================================================
|
||||
1. Starting diff mode *start-vimdiff*
|
||||
@@ -304,18 +305,20 @@ that the buffers will be equal within the specified range.
|
||||
|
||||
|
||||
When no [range] is given, the diff at the cursor position or just above it is
|
||||
affected. When [range] is used, Vim tries to only put or get the specified
|
||||
lines. When there are deleted lines, this may not always be possible.
|
||||
affected. There can be deleted lines below the last line of the buffer. When
|
||||
the cursor is on the last line in the buffer and there is no diff above this
|
||||
line, and no [range] is given, the diff below the cursor position will be used
|
||||
instead.
|
||||
|
||||
There can be deleted lines below the last line of the buffer. When the cursor
|
||||
is on the last line in the buffer and there is no diff above this line, the
|
||||
":diffget" and "do" commands will obtain lines from the other buffer.
|
||||
When [range] is used, Vim tries to only put or get the specified lines. When
|
||||
there are deleted lines, they will be used if they are between the lines
|
||||
specified by [range].
|
||||
|
||||
To be able to get those lines from another buffer in a [range] it's allowed to
|
||||
use the last line number plus one. This command gets all diffs from the other
|
||||
buffer: >
|
||||
To be able to put or get those lines to/from another buffer in a [range] it's
|
||||
allowed to use 0 and the last line number plus one. This command gets all
|
||||
diffs from the other buffer: >
|
||||
|
||||
:1,$+1diffget
|
||||
:0,$+1diffget
|
||||
|
||||
Note that deleted lines are displayed, but not counted as text lines. You
|
||||
can't move the cursor into them. To fill the deleted lines with the lines
|
||||
@@ -334,9 +337,131 @@ name or a part of a buffer name. Examples:
|
||||
diff mode (e.g., "file.c.v2")
|
||||
|
||||
==============================================================================
|
||||
5. Diff options *diff-options*
|
||||
5. Diff anchors *diff-anchors*
|
||||
|
||||
Also see |'diffopt'| and the "diff" item of |'fillchars'|.
|
||||
Diff anchors allow you to control where the diff algorithm aligns and
|
||||
synchronize text across files. Each anchor matches each other in each file,
|
||||
allowing you to control the output of a diff.
|
||||
|
||||
This is useful when a change involves complicated edits. For example, if a
|
||||
function was moved to another location and further edited. By default, the
|
||||
algorithm aims to create the smallest diff, which results in that entire
|
||||
function being considered to be deleted and added on the other side, making it
|
||||
hard to see what the actual edit on it was. You can use diff anchors to pin
|
||||
that function so the diff algorithm will align based on it.
|
||||
|
||||
To use it, set anchors using 'diffanchors' which is a comma-separated list of
|
||||
{address} in each file, and then add "anchor" to 'diffopt'. Internaly, Vim
|
||||
splits each file up into sections split by the anchors. It performs the diff
|
||||
on each pair of sections separately before merging the results back.
|
||||
|
||||
Setting 'diffanchors' will update the diff immediately. If an anchor is tied
|
||||
to a mark, and you change what the mark is pointed to, you need to manually
|
||||
call |:diffupdate| afterwards to get the updated diff results.
|
||||
|
||||
Example:
|
||||
|
||||
Let's say we have the following files, side-by-side. We are interested in the
|
||||
change that happened to the function `foo()`, which was both edited and moved.
|
||||
|
||||
File A: >
|
||||
int foo() {
|
||||
int n = 1;
|
||||
return n;
|
||||
}
|
||||
|
||||
int g = 1;
|
||||
|
||||
int bar(int a) {
|
||||
a *= 2;
|
||||
a += 3;
|
||||
return a;
|
||||
}
|
||||
<File B: >
|
||||
int bar(int a) {
|
||||
a *= 2;
|
||||
a += 3;
|
||||
return a;
|
||||
}
|
||||
|
||||
int foo() {
|
||||
int n = 999;
|
||||
return n;
|
||||
}
|
||||
|
||||
int g = 1;
|
||||
<
|
||||
A normal diff will usually align the diff result as such: >
|
||||
|
||||
int foo() { |----------------
|
||||
int n = 1; |----------------
|
||||
return n; |----------------
|
||||
} |----------------
|
||||
|----------------
|
||||
int g = 1; |----------------
|
||||
|----------------
|
||||
int bar(int a) {|int bar(int a) {
|
||||
a *= 2; | a *= 2;
|
||||
a += 3; | a += 3;
|
||||
return a; | return a;
|
||||
} |}
|
||||
----------------|
|
||||
----------------|int foo() {
|
||||
----------------| int n = 999;
|
||||
----------------| return n;
|
||||
----------------|}
|
||||
----------------|
|
||||
----------------|int g = 1;
|
||||
<
|
||||
What we want is to instead ask the diff to align on `foo()`: >
|
||||
|
||||
----------------|int bar(int a) {
|
||||
----------------| a *= 2;
|
||||
----------------| a += 3;
|
||||
----------------| return a;
|
||||
----------------|}
|
||||
----------------|
|
||||
int foo() { |int foo() {
|
||||
int n = 1; | int n = 999;
|
||||
return n; | return n;
|
||||
} |}
|
||||
|
|
||||
int g = 1; |int g = 1;
|
||||
|----------------
|
||||
int bar(int a) {|----------------
|
||||
a *= 2; |----------------
|
||||
a += 3; |----------------
|
||||
return a; |----------------
|
||||
} |----------------
|
||||
<
|
||||
|
||||
Below are some ways of setting diff anchors to get the above result. In each
|
||||
example, 'diffopt' needs to have `anchor` set for this to take effect.
|
||||
|
||||
Marks: Set the |'a| mark on the `int foo()` lines in each file first before
|
||||
setting the anchors: >
|
||||
set diffanchors='a
|
||||
|
||||
Pattern: Specify the anchor using a |pattern| (see |:/|). Here, we make sure
|
||||
to always start search from line 1 for consistency: >
|
||||
set diffanchors=1/int\ foo(/
|
||||
<
|
||||
Selection: Use visual mode to select the entire `foo()` function body in each
|
||||
file. Here, we use two anchors. This does a better job of making sure only
|
||||
the function bodies are anchored against each other but not the lines after
|
||||
it. Note the `'>+1` below. The "+1" is necessary as we want the split to
|
||||
happen below the last line of the function, not above: >
|
||||
set diffanchors='<,'>+1
|
||||
<
|
||||
Manually set two anchors using line numbers via buffer-local options: >
|
||||
setlocal diffanchors=1,5
|
||||
wincmd w
|
||||
setlocal diffanchors=7,11
|
||||
<
|
||||
==============================================================================
|
||||
6. Diff options *diff-options*
|
||||
|
||||
Also see 'diffopt' and the "diff" item of 'fillchars'.
|
||||
|
||||
*diff-slow* *diff_translations*
|
||||
For very long lines, the diff syntax highlighting might be slow, especially
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 9.1. Last change: 2025 Feb 02
|
||||
*digraph.txt* For Vim version 9.1. Last change: 2025 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1105,8 +1105,8 @@ char digraph hex dec official name ~
|
||||
⌕ TR 2315 8981 TELEPHONE RECORDER
|
||||
⌠ Iu 2320 8992 TOP HALF INTEGRAL
|
||||
⌡ Il 2321 8993 BOTTOM HALF INTEGRAL
|
||||
〈 </ 2329 9001 LEFT-POINTING ANGLE BRACKET
|
||||
〉 /> 232A 9002 RIGHT-POINTING ANGLE BRACKET
|
||||
⟨ <[ 27E8 10040 LEFT MATHEMATICAL ANGLE BRACKET
|
||||
⟩ ]> 27E9 10041 RIGHT MATHEMATICAL ANGLE BRACKET
|
||||
␣ Vs 2423 9251 OPEN BOX
|
||||
⑀ 1h 2440 9280 OCR HOOK
|
||||
⑁ 3h 2441 9281 OCR CHAIR
|
||||
@@ -1246,6 +1246,8 @@ char digraph hex dec official name ~
|
||||
々 *_ 3005 12293 IDEOGRAPHIC ITERATION MARK
|
||||
〆 ;_ 3006 12294 IDEOGRAPHIC CLOSING MARK
|
||||
〇 0_ 3007 12295 IDEOGRAPHIC NUMBER ZERO
|
||||
〈 </ 3008 12296 LEFT ANGLE BRACKET
|
||||
〉 /> 3009 12297 RIGHT ANGLE BRACKET
|
||||
《 <+ 300A 12298 LEFT DOUBLE ANGLE BRACKET
|
||||
》 >+ 300B 12299 RIGHT DOUBLE ANGLE BRACKET
|
||||
「 <' 300C 12300 LEFT CORNER BRACKET
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 9.1. Last change: 2025 Jun 04
|
||||
*editing.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -656,7 +656,7 @@ list of the current window.
|
||||
buffer.
|
||||
Also see |++opt| and |+cmd|.
|
||||
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit*
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} ... *:arge* *:argedit*
|
||||
Add {name}s to the argument list and edit it.
|
||||
There is no check for duplicates, it is possible to
|
||||
add a file to the argument list twice |:argded|.
|
||||
@@ -671,7 +671,7 @@ list of the current window.
|
||||
edited. No check for duplicates is done.
|
||||
Also see |++opt| and |+cmd|.
|
||||
|
||||
:[count]arga[dd] {name} .. *:arga* *:argadd* *E479*
|
||||
:[count]arga[dd] {name} ... *:arga* *:argadd* *E479*
|
||||
:[count]arga[dd] *E1156*
|
||||
Add the {name}s to the argument list. When {name} is
|
||||
omitted add the current buffer name to the argument
|
||||
@@ -702,7 +702,7 @@ list of the current window.
|
||||
If your current file is a duplicate, your current file
|
||||
will change to the original file index.
|
||||
|
||||
:argd[elete] {pattern} .. *:argd* *:argdelete* *E480* *E610*
|
||||
:argd[elete] {pattern} ... *:argd* *:argdelete* *E480* *E610*
|
||||
Delete files from the argument list that match the
|
||||
{pattern}s. {pattern} is used like a file pattern,
|
||||
see |file-pattern|. "%" can be used to delete the
|
||||
@@ -1342,15 +1342,15 @@ b:browsefilter variable. You would most likely set b:browsefilter in a
|
||||
filetype plugin, so that the browse dialog would contain entries related to
|
||||
the type of file you are currently editing. Disadvantage: This makes it
|
||||
difficult to start editing a file of a different type. To overcome this, you
|
||||
may want to add >
|
||||
can add the following as the final filter on Windows: >
|
||||
|
||||
All Files\t(*.*)\t*\n
|
||||
<
|
||||
as the final filter on Windows or >
|
||||
Or the following on other platforms, so that the user can still access any
|
||||
desired file: >
|
||||
|
||||
All Files\t(*)\t*\n
|
||||
<
|
||||
on other platforms, so that the user can still access any desired file.
|
||||
|
||||
To avoid setting browsefilter when Vim does not actually support it, you can
|
||||
use has("browsefilter"): >
|
||||
@@ -1380,7 +1380,7 @@ present in 'cpoptions' and "!" is not used in the command.
|
||||
|
||||
:cd[!] {path} Change the current directory to {path}.
|
||||
If {path} is relative, it is searched for in the
|
||||
directories listed in |'cdpath'|.
|
||||
directories listed in 'cdpath'.
|
||||
Clear any window-local directory.
|
||||
Does not change the meaning of an already opened file,
|
||||
because its full path name is remembered. Files from
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Jun 04
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Aug 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2240,6 +2240,15 @@ v:charconvert_to
|
||||
The name of the character encoding of a file after conversion.
|
||||
Only valid while evaluating the 'charconvert' option.
|
||||
|
||||
*v:clipmethod*
|
||||
v:clipmethod The current method of accessing the clipboard that is being
|
||||
used. Can either have the value of:
|
||||
wayland The Wayland protocol is being used.
|
||||
x11 X11 selections are being used.
|
||||
none The above methods are unavailable or
|
||||
cannot be used.
|
||||
See 'clipmethod' for more details.
|
||||
|
||||
*v:cmdarg* *cmdarg-variable*
|
||||
v:cmdarg This variable is used for two purposes:
|
||||
1. The extra arguments given to a file read/write command.
|
||||
@@ -2969,6 +2978,12 @@ v:vim_did_enter Zero until most of startup is done. It is set to one just
|
||||
*v:warningmsg* *warningmsg-variable*
|
||||
v:warningmsg Last given warning message. It's allowed to set this variable.
|
||||
|
||||
*v:wayland_display*
|
||||
v:wayland_display
|
||||
The name of the Wayland display that Vim is connected to.
|
||||
Equivalent to the $WAYLAND_DISPLAY environment variable.
|
||||
If this is empty, then Vim is not connected to any display.
|
||||
|
||||
*v:windowid* *windowid-variable*
|
||||
v:windowid When any X11/Wayland based GUI is running or when running in a
|
||||
terminal and Vim connects to the X server (|-X|) this will be
|
||||
@@ -3297,7 +3312,7 @@ text...
|
||||
CODE
|
||||
<
|
||||
*E121*
|
||||
:let {var-name} .. List the value of variable {var-name}. Multiple
|
||||
:let {var-name} ... List the value of variable {var-name}. Multiple
|
||||
variable names may be given. Special names recognized
|
||||
here: *E738*
|
||||
g: global variables
|
||||
@@ -3707,7 +3722,7 @@ text...
|
||||
improve script readability.
|
||||
|
||||
*:ec* *:echo*
|
||||
:ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The
|
||||
:ec[ho] {expr1} ... Echoes each {expr1}, with a space in between. The
|
||||
first {expr1} starts on a new line.
|
||||
Also see |:comment|.
|
||||
Use "\n" to start a new line. Use "\r" to move the
|
||||
@@ -3727,7 +3742,7 @@ text...
|
||||
:new | redraw | echo "there is a new window"
|
||||
<
|
||||
*:echon*
|
||||
:echon {expr1} .. Echoes each {expr1}, without anything added. Also see
|
||||
:echon {expr1} ... Echoes each {expr1}, without anything added. Also see
|
||||
|:comment|.
|
||||
Uses the highlighting set by the `:echohl` command.
|
||||
Cannot be followed by a comment.
|
||||
@@ -3758,7 +3773,7 @@ text...
|
||||
otherwise all following echo's will be highlighted.
|
||||
|
||||
*:echom* *:echomsg*
|
||||
:echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the
|
||||
:echom[sg] {expr1} ... Echo the expression(s) as a true message, saving the
|
||||
message in the |message-history|.
|
||||
Spaces are placed between the arguments as with the
|
||||
`:echo` command. But unprintable characters are
|
||||
@@ -3790,7 +3805,7 @@ text...
|
||||
with the +timer and the +popupwin features.
|
||||
|
||||
*:echoe* *:echoerr*
|
||||
:echoe[rr] {expr1} .. Echo the expression(s) as an error message, saving the
|
||||
:echoe[rr] {expr1} ... Echo the expression(s) as an error message, saving the
|
||||
message in the |message-history|. When used in a
|
||||
script or function the line number will be added.
|
||||
Spaces are placed between the arguments as with the
|
||||
@@ -3803,7 +3818,7 @@ text...
|
||||
And to get a beep: >
|
||||
:exe "normal \<Esc>"
|
||||
|
||||
:echoc[onsole] {expr1} .. *:echoc* *:echoconsole*
|
||||
:echoc[onsole] {expr1} ... *:echoc* *:echoconsole*
|
||||
Intended for testing: works like `:echomsg` but when
|
||||
running in the GUI and started from a terminal write
|
||||
the text to stdout.
|
||||
@@ -3830,7 +3845,7 @@ text...
|
||||
|
||||
|
||||
*:exe* *:execute*
|
||||
:exe[cute] {expr1} .. Executes the string that results from the evaluation
|
||||
:exe[cute] {expr1} ... Executes the string that results from the evaluation
|
||||
of {expr1} as an Ex command.
|
||||
Multiple arguments are concatenated, with a space in
|
||||
between. To avoid the extra space use the ".."
|
||||
@@ -5195,7 +5210,7 @@ The |:Launch| user command uses shell completion for its first argument.
|
||||
|
||||
NOTE: escaping of <args> is left to the user
|
||||
|
||||
Examples: >vim
|
||||
Examples: >
|
||||
vim9script
|
||||
|
||||
import autoload 'dist/vim9.vim'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 May 10
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1063,8 +1063,18 @@ To disable: >
|
||||
<
|
||||
VIM *ft-vim-plugin*
|
||||
|
||||
The Vim filetype plugin defines mappings to move to the start and end of
|
||||
functions with [[ and ]]. Move around comments with ]" and [".
|
||||
The Vim filetype plugin defines the following mappings:
|
||||
|
||||
[[ move to the start of the previous function
|
||||
]] move to the start of the next function
|
||||
][ move to the end of the previous function
|
||||
[] move to the end of the next function
|
||||
]" move to the next (legacy) comment
|
||||
[" move to the previous (legacy) comment
|
||||
gf edit the file under the cursor
|
||||
CTRL-W gf edit the file under the cursor in a new tab page
|
||||
CTRL-W f edit the file under the cursor in a new window
|
||||
|
||||
|
||||
The mappings can be disabled with: >
|
||||
let g:no_vim_maps = 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
*fold.txt* For Vim version 9.1. Last change: 2025 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -164,7 +164,7 @@ level is found.
|
||||
If this proves difficult, the next best thing could be to cache all fold
|
||||
levels in a buffer-local variable (b:foldlevels) that is only updated on
|
||||
|b:changedtick|:
|
||||
>vim
|
||||
>
|
||||
vim9script
|
||||
def MyFoldFunc(): number
|
||||
if b:lasttick == b:changedtick
|
||||
@@ -642,14 +642,17 @@ what you type!
|
||||
When using an operator, a closed fold is included as a whole. Thus "dl"
|
||||
deletes the whole closed fold under the cursor.
|
||||
|
||||
For Ex commands that work on buffer lines the range is adjusted to always
|
||||
For Ex commands that operate on buffer lines, the range is adjusted to always
|
||||
start at the first line of a closed fold and end at the last line of a closed
|
||||
fold. Thus this command: >
|
||||
fold. Thus, this command: >
|
||||
:s/foo/bar/g
|
||||
when used with the cursor on a closed fold, will replace "foo" with "bar" in
|
||||
all lines of the fold.
|
||||
This does not happen for |:folddoopen| and |:folddoclosed|.
|
||||
|
||||
Note that for some Ex commands like |:source| the range is only adjusted when
|
||||
using a two line specifiers [range].
|
||||
|
||||
When editing a buffer that has been edited before, the last used folding
|
||||
settings are used again. For manual folding the defined folds are restored.
|
||||
For all folding methods the manually opened and closed folds are restored.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*ft_ada.txt* For Vim version 9.1. Last change: 2024 Sep 29
|
||||
*ft_ada.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
|
||||
@@ -76,8 +76,8 @@ The Ada plug-in provides support for:
|
||||
- user completion (|i_CTRL-X_CTRL-U|)
|
||||
- tag searches (|tagsrch.txt|)
|
||||
- Quick Fix (|quickfix.txt|)
|
||||
- backspace handling (|'backspace'|)
|
||||
- comment handling (|'comments'|, |'commentstring'|)
|
||||
- backspace handling ('backspace')
|
||||
- comment handling ('comments', 'commentstring')
|
||||
|
||||
The plug-in only activates the features of the Ada mode whenever an Ada
|
||||
file is opened and adds Ada related entries to the main and pop-up menu.
|
||||
@@ -197,7 +197,7 @@ g:gnat.Project_File string
|
||||
|
||||
*g:gnat.Make_Command*
|
||||
g:gnat.Make_Command string
|
||||
External command used for |g:gnat.Make()| (|'makeprg'|).
|
||||
External command used for |g:gnat.Make()| ('makeprg').
|
||||
|
||||
*g:gnat.Pretty_Program*
|
||||
g:gnat.Pretty_Program string
|
||||
@@ -213,7 +213,7 @@ g:gnat.Tags_Command string
|
||||
|
||||
*g:gnat.Error_Format*
|
||||
g:gnat.Error_Format string
|
||||
Error format (|'errorformat'|)
|
||||
Error format ('errorformat')
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
4.2 Dec Ada ~
|
||||
@@ -243,11 +243,11 @@ g:decada.Unit_Name() function
|
||||
|
||||
*g:decada.Make_Command*
|
||||
g:decada.Make_Command string
|
||||
External command used for |g:decada.Make()| (|'makeprg'|).
|
||||
External command used for |g:decada.Make()| ('makeprg').
|
||||
|
||||
*g:decada.Error_Format*
|
||||
g:decada.Error_Format string
|
||||
Error format (|'errorformat'|).
|
||||
Error format ('errorformat').
|
||||
|
||||
==============================================================================
|
||||
5. References ~
|
||||
|
||||
@@ -159,7 +159,20 @@ g:rustfmt_emit_files~
|
||||
determines whether to run rustfmt with '--emit=files' (when 1 is
|
||||
provided) instead of '--write-mode=overwrite'. >
|
||||
let g:rustfmt_emit_files = 0
|
||||
|
||||
<
|
||||
*g:rustfmt_detect_version*
|
||||
g:rustfmt_detect_version~
|
||||
When set to 1, will try to parse the version output from "rustfmt".
|
||||
Disabled by default for performance reasons
|
||||
>
|
||||
let g:rustfmt_detect_version = 1
|
||||
<
|
||||
*g:rustfmt_find_toml*
|
||||
g:rustfmt_emit_files~
|
||||
When set to 1, will try to find "rustfmt.toml" file by searching from
|
||||
current path upwards. Disabled by default for performance reasons
|
||||
>
|
||||
let g:rustfmt_find_toml = 1
|
||||
<
|
||||
*g:rust_playpen_url*
|
||||
g:rust_playpen_url~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*ft_sql.txt* For Vim version 9.1. Last change: 2022 Apr 06
|
||||
*ft_sql.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
by David Fishburn
|
||||
|
||||
@@ -168,7 +168,7 @@ with comments: >
|
||||
|
||||
1.4 Macros *sql-macros*
|
||||
----------
|
||||
Vim's feature to find macro definitions, |'define'|, is supported using this
|
||||
Vim's feature to find macro definitions, 'define', is supported using this
|
||||
regular expression: >
|
||||
\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>
|
||||
|
||||
@@ -239,13 +239,13 @@ buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
|
||||
|
||||
Executing this function without any parameters will set the indent and syntax
|
||||
scripts back to their defaults, see |sql-type-default|. If you have turned
|
||||
off Vi's compatibility mode, |'compatible'|, you can use the <Tab> key to
|
||||
off Vi's compatibility mode, 'compatible', you can use the <Tab> key to
|
||||
complete the optional parameter.
|
||||
|
||||
After typing the function name and a space, you can use the completion to
|
||||
supply a parameter. The function takes the name of the Vim script you want to
|
||||
source. Using the |cmdline-completion| feature, the SQLSetType function will
|
||||
search the |'runtimepath'| for all Vim scripts with a name containing 'sql'.
|
||||
search the 'runtimepath' for all Vim scripts with a name containing 'sql'.
|
||||
This takes the guess work out of the spelling of the names. The following are
|
||||
examples: >
|
||||
:SQLSetType
|
||||
@@ -407,7 +407,7 @@ Here are some examples of the entries which are pulled from the syntax files: >
|
||||
----------------
|
||||
Dynamic mode populates the popups with data directly from a database. In
|
||||
order for the dynamic feature to be enabled you must have the dbext.vim
|
||||
plugin installed, (http://vim.sourceforge.net/script.php?script_id=356).
|
||||
plugin installed, (https://www.vim.org/scripts/script.php?script_id=356).
|
||||
|
||||
Dynamic mode is used by several features of the SQL completion plugin.
|
||||
After installing the dbext plugin see the dbext-tutorial for additional
|
||||
@@ -491,7 +491,7 @@ depending on the syntax file you are using. The SQL Anywhere syntax file
|
||||
Dynamic features
|
||||
----------------
|
||||
To take advantage of the dynamic features you must first install the
|
||||
dbext.vim plugin (http://vim.sourceforge.net/script.php?script_id=356). It
|
||||
dbext.vim plugin (https://www.vim.org/scripts/script.php?script_id=356). It
|
||||
also comes with a tutorial. From the SQL completion plugin's perspective,
|
||||
the main feature dbext provides is a connection to a database. dbext
|
||||
connection profiles are the most efficient mechanism to define connection
|
||||
@@ -755,7 +755,7 @@ Step 1
|
||||
Begins by editing a Perl file. Vim automatically sets the filetype to
|
||||
"perl". By default, Vim runs the appropriate filetype file
|
||||
ftplugin/perl.vim. If you are using the syntax completion plugin by following
|
||||
the directions at |ft-syntax-omni| then the |'omnifunc'| option has been set to
|
||||
the directions at |ft-syntax-omni| then the 'omnifunc' option has been set to
|
||||
"syntax#Complete". Pressing <C-X><C-O> will display the omni popup containing
|
||||
the syntax items for Perl.
|
||||
|
||||
@@ -767,7 +767,7 @@ maps for SQL completion, see |sql-completion-maps|. Now these maps have
|
||||
been created and the SQL completion plugin has been initialized. All SQL
|
||||
syntax items have been cached in preparation. The SQL filetype script detects
|
||||
we are attempting to use two different completion plugins. Since the SQL maps
|
||||
begin with <C-C>, the maps will toggle the |'omnifunc'| when in use. So you
|
||||
begin with <C-C>, the maps will toggle the 'omnifunc' when in use. So you
|
||||
can use <C-X><C-O> to continue using the completion for Perl (using the syntax
|
||||
completion plugin) and <C-C> to use the SQL completion features.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 9.1. Last change: 2024 Nov 17
|
||||
*gui.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -248,7 +248,7 @@ For older versions of XFree86 you must patch your X server. The following
|
||||
page has a bit of information about using the Intellimouse on Linux as well as
|
||||
links to the patches and X server binaries (may not have the one you need
|
||||
though):
|
||||
http://www.inria.fr/koala/colas/mouse-wheel-scroll/
|
||||
(dead link) inria.fr/koala/colas/mouse-wheel-scroll/
|
||||
|
||||
==============================================================================
|
||||
3. Mouse Control *gui-mouse*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_w32.txt* For Vim version 9.1. Last change: 2024 Jan 23
|
||||
*gui_w32.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -394,7 +394,7 @@ printer installed this should also work: >
|
||||
:w >>prn
|
||||
|
||||
Vim supports a number of standard MS-Windows features. Some of these are
|
||||
detailed elsewhere: see |'mouse'|, |win32-hidden-menus|.
|
||||
detailed elsewhere: see 'mouse', |win32-hidden-menus|.
|
||||
|
||||
*drag-n-drop-win32*
|
||||
You can drag and drop one or more files into the Vim window, where they will
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 9.1. Last change: 2024 Nov 17
|
||||
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -280,7 +280,7 @@ For "mwm" (Motif window manager) the line would be: >
|
||||
|
||||
Mouse Pointers Available in X11 ~
|
||||
*X11_mouse_shapes*
|
||||
By using the |'mouseshape'| option, the mouse pointer can be automatically
|
||||
By using the 'mouseshape' option, the mouse pointer can be automatically
|
||||
changed whenever Vim enters one of its various modes (e.g., Insert or
|
||||
Command). Currently, the available pointers are:
|
||||
|
||||
@@ -321,8 +321,8 @@ stuff like -bg, -fg, etc). The ones that are supported are:
|
||||
-fg -foreground {color} foreground color
|
||||
-bg -background {color} background color
|
||||
|
||||
To set the font, see |'guifont'|. For GTK, there's also a menu option that
|
||||
does this.
|
||||
To set the font, see 'guifont'. For GTK, there's also a menu option that does
|
||||
this.
|
||||
|
||||
Additionally, there are these command line arguments, which are handled by GTK
|
||||
internally. Look in the GTK documentation for how they are used:
|
||||
@@ -350,7 +350,7 @@ If you want to set the colors of remaining gui components (e.g., the
|
||||
menubar, scrollbar, whatever), those are GTK specific settings and you
|
||||
need to set those up in some sort of gtkrc file. You'll have to refer
|
||||
to the GTK documentation, however little there is, on how to do this.
|
||||
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
|
||||
See https://www.manpagez.com/html/gtk2/gtk2-2.24.24/gtk2-Resource-Files.php
|
||||
for more information.
|
||||
*gtk3-slow*
|
||||
If you are using GTK3 and Vim appears to be slow, try setting the environment
|
||||
@@ -519,7 +519,7 @@ of the normal GtkWindow. This enables Vim to act as a GTK+ plugin.
|
||||
|
||||
This really is a programmer's interface, and is of no use without a supporting
|
||||
application to spawn the Vim correctly. For more details on GTK+ sockets, see
|
||||
http://www.gtk.org/api/
|
||||
https://www.gtk.org/docs/apis/index
|
||||
|
||||
Note that this feature requires the latest GTK version. GTK 1.2.10 still has
|
||||
a small problem. The socket feature has not yet been tested with GTK+ 2 --
|
||||
@@ -649,9 +649,7 @@ X11R5 with a library for X11R6 probably doesn't work (although the linking
|
||||
won't give an error message, Vim will crash later).
|
||||
|
||||
*gui-wayland*
|
||||
Initial support for the Wayland display server protocol has landed in patch
|
||||
9.1.0064. To enable it, you need to set the environment variable
|
||||
"$GVIM_ENABLE_WAYLAND" in your shell.
|
||||
Support for the Wayland display server protocol has landed in patch 9.1.0064.
|
||||
|
||||
Note: The Wayland protocol is subject to some restrictions, so the following
|
||||
functions won't work: |getwinpos()|, |getwinposx()|, |getwinposy()| and the
|
||||
@@ -686,7 +684,7 @@ cut, copy and paste operations).
|
||||
|
||||
Of these three, Vim uses PRIMARY when reading and writing the "* register
|
||||
(hence when the X11 selections are available, Vim sets a default value for
|
||||
|'clipboard'| of "autoselect"), and CLIPBOARD when reading and writing the "+
|
||||
'clipboard' of "autoselect"), and CLIPBOARD when reading and writing the "+
|
||||
register. Vim does not access the SECONDARY selection.
|
||||
|
||||
This applies both to the GUI and the terminal version. For non-X11 systems
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 9.1. Last change: 2024 Dec 06
|
||||
*help.txt* For Vim version 9.1. Last change: 2025 Jun 27
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -187,6 +187,9 @@ GUI ~
|
||||
|gui_w32.txt| Win32 GUI
|
||||
|gui_x11.txt| X11 GUI
|
||||
|
||||
System Integration ~
|
||||
|wayland.txt| Wayland protocol support
|
||||
|
||||
Interfaces ~
|
||||
|if_cscop.txt| using Cscope with Vim
|
||||
|if_lua.txt| Lua interface
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Jun 03
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -253,20 +253,21 @@ If you want to access an interactive table of contents, from any position in
|
||||
the file, you can use the helptoc plugin. Load the plugin with: >vim
|
||||
|
||||
packadd helptoc
|
||||
|
||||
<
|
||||
*HelpToc-mappings*
|
||||
Then you can use the `:HelpToc` command to open a popup menu.
|
||||
The latter supports the following normal commands: >
|
||||
|
||||
key | effect
|
||||
----+---------------------------------------------------------
|
||||
j | select next entry
|
||||
k | select previous entry
|
||||
J | same as j, and jump to corresponding line in main buffer
|
||||
K | same as k, and jump to corresponding line in main buffer
|
||||
c | select nearest entry from cursor position in main buffer
|
||||
g | select first entry
|
||||
G | select last entry
|
||||
H | collapse one level
|
||||
j | select next entry
|
||||
J | same as j, and jump to corresponding line in main buffer
|
||||
k | select previous entry
|
||||
K | same as k, and jump to corresponding line in main buffer
|
||||
L | expand one level
|
||||
p | print current entry on command-line
|
||||
|
||||
@@ -274,6 +275,7 @@ The latter supports the following normal commands: >
|
||||
| press multiple times to toggle feature on/off
|
||||
|
||||
q | quit menu
|
||||
s | split window, and jump to selected entry
|
||||
z | redraw menu with current entry at center
|
||||
+ | increase width of popup menu
|
||||
- | decrease width of popup menu
|
||||
@@ -410,6 +412,24 @@ and 'tabstop' options and the 'filetype' to "help". Never set a global option
|
||||
in such a modeline, that can have undesired consequences.
|
||||
|
||||
|
||||
STYLE
|
||||
|
||||
If your Vim has 'modeline' enabled, Vim should follow the preferred style
|
||||
automatically when editing built-in help files.
|
||||
|
||||
Vim help files should be formatted for a 'textwidth' of 78 characters, so they
|
||||
look good in a typical 80 x 24 terminal window.
|
||||
|
||||
Use two spaces between the final dot of a sentence of the first letter of the
|
||||
next sentence. Like this.
|
||||
|
||||
Use tab characters for aligning content, with a 'tabstop' setting of 8.
|
||||
This also helps reduce the file size.
|
||||
|
||||
Always use |:retab| after you have finished editing. Don't blindly use
|
||||
|:retab!|, always review what will be changed to avoid unwanted changes.
|
||||
|
||||
|
||||
TAGS
|
||||
|
||||
To define a help tag, place the name between asterisks ("*tag-name*"). The
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*howto.txt* For Vim version 9.1. Last change: 2006 Apr 02
|
||||
*howto.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -35,8 +35,8 @@ How to ... *howdoi* *how-do-i* *howto* *how-to*
|
||||
|object-motions| text-object motions
|
||||
|various-motions| various motions
|
||||
|object-select| text-object selection
|
||||
|'whichwrap'| move over line breaks
|
||||
|'virtualedit'| move to where there is no text
|
||||
'whichwrap' move over line breaks
|
||||
'virtualedit' move to where there is no text
|
||||
|usr_27.txt| specify pattern for searches
|
||||
|tags-and-searches| do tags and special searches
|
||||
|29.4| search in include'd files used to find
|
||||
@@ -44,12 +44,12 @@ How to ... *howdoi* *how-do-i* *howto* *how-to*
|
||||
|K| look up manual for the keyword under cursor
|
||||
|
||||
|03.7| scroll
|
||||
|'sidescroll'| scroll horizontally/sideways
|
||||
|'scrolloff'| set visible context lines
|
||||
'sidescroll' scroll horizontally/sideways
|
||||
'scrolloff' set visible context lines
|
||||
|
||||
|mode-switching| change modes
|
||||
|04.4| use Visual mode
|
||||
|'insertmode'| start Vim in Insert mode
|
||||
'insertmode' start Vim in Insert mode
|
||||
|
||||
|40.1| map keys
|
||||
|24.7| create abbreviations
|
||||
@@ -61,13 +61,13 @@ How to ... *howdoi* *how-do-i* *howto* *how-to*
|
||||
|
||||
|20.1| do command-line editing
|
||||
|20.3| do command-line completion
|
||||
|'cmdheight'| increase the height of command-line
|
||||
'cmdheight' increase the height of command-line
|
||||
|10.3| specify command-line ranges
|
||||
|40.3| specify commands to be executed automatically
|
||||
before/after reading/writing entering/leaving a
|
||||
buffer/window
|
||||
|
||||
|'autowrite'| write automatically
|
||||
'autowrite' write automatically
|
||||
|30.1| speedup edit-compile-edit cycle or compile and fix
|
||||
errors within Vim
|
||||
|
||||
@@ -76,12 +76,12 @@ How to ... *howdoi* *how-do-i* *howto* *how-to*
|
||||
|term-dependent-settings| set options depending on terminal name
|
||||
|save-settings| save settings
|
||||
|:quote| comment my .vim files
|
||||
|'helpheight'| change the default help height
|
||||
|'highlight'| set various highlighting modes
|
||||
|'title'| set the window title
|
||||
|'icon'| set window icon title
|
||||
|'report'| avoid seeing the change messages on every line
|
||||
|'shortmess'| avoid |hit-enter| prompts
|
||||
'helpheight' change the default help height
|
||||
'highlight' set various highlighting modes
|
||||
'title' set the window title
|
||||
'icon' set window icon title
|
||||
'report' avoid seeing the change messages on every line
|
||||
'shortmess' avoid |hit-enter| prompts
|
||||
|
||||
|mouse-using| use mouse with Vim
|
||||
|usr_08.txt| manage multiple windows and buffers
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_cscop.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*if_cscop.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Andy Kahn
|
||||
@@ -360,7 +360,7 @@ limited to Unix systems.
|
||||
Additionally Cscope support works for Win32. For more information and a
|
||||
cscope version for Win32 see (link seems dead):
|
||||
|
||||
http://iamphet.nm.ru/cscope/index.html
|
||||
iamphet.nm.ru/cscope/index.html
|
||||
|
||||
The DJGPP-built version from http://cscope.sourceforge.net is known to not
|
||||
work with Vim.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 9.1. Last change: 2025 Jun 02
|
||||
*index.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -530,7 +530,7 @@ tag command action in op-pending and Visual mode ~
|
||||
tag command action in Normal mode ~
|
||||
------------------------------------------------------------------------------
|
||||
|CTRL-W_CTRL-B| CTRL-W CTRL-B same as "CTRL-W b"
|
||||
|CTRL-W_CTRL-C| CTRL-W CTRL-C same as "CTRL-W c"
|
||||
|CTRL-W_CTRL-C| CTRL-W CTRL-C no-op
|
||||
|CTRL-W_CTRL-D| CTRL-W CTRL-D same as "CTRL-W d"
|
||||
|CTRL-W_CTRL-F| CTRL-W CTRL-F same as "CTRL-W f"
|
||||
CTRL-W CTRL-G same as "CTRL-W g .."
|
||||
@@ -1034,7 +1034,7 @@ tag command action in Command-line editing mode ~
|
||||
|c_CTRL-D| CTRL-D list completions that match the pattern in
|
||||
front of the cursor
|
||||
|c_CTRL-E| CTRL-E cursor to end of command-line
|
||||
|'cedit'| CTRL-F default value for 'cedit': opens the
|
||||
'cedit' CTRL-F default value for 'cedit': opens the
|
||||
command-line window; otherwise not used
|
||||
|c_CTRL-G| CTRL-G next match when 'incsearch' is active
|
||||
|c_<BS>| <BS> delete the character in front of the cursor
|
||||
@@ -1264,6 +1264,7 @@ tag command action ~
|
||||
|:class| :class start of a class declaration
|
||||
|:clast| :cla[st] go to the specified error, default last one
|
||||
|:clearjumps| :cle[arjumps] clear the jump list
|
||||
|:clipreset| :clip[reset] reset 'clipmethod'
|
||||
|:clist| :cl[ist] list all errors
|
||||
|:close| :clo[se] close current window
|
||||
|:cmap| :cm[ap] like ":map" but for Command-line mode
|
||||
@@ -1740,6 +1741,7 @@ tag command action ~
|
||||
|:unabbreviate| :una[bbreviate] remove abbreviation
|
||||
|:unhide| :unh[ide] open a window for each loaded file in the
|
||||
buffer list
|
||||
|:uniq| :uni[q] uniq lines
|
||||
|:unlet| :unl[et] delete variable
|
||||
|:unlockvar| :unlo[ckvar] unlock variables
|
||||
|:unmap| :unm[ap] remove mapping
|
||||
@@ -1776,6 +1778,7 @@ tag command action ~
|
||||
|:winsize| :wi[nsize] get or set window size (obsolete)
|
||||
|:wincmd| :winc[md] execute a Window (CTRL-W) command
|
||||
|:winpos| :winp[os] get or set window position
|
||||
|:wlrestore| :wl[restore] restore the Wayland compositor connection
|
||||
|:wnext| :wn[ext] write to a file and go to next file in
|
||||
argument list
|
||||
|:wprevious| :wp[revious] write to a file and go to previous file in
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Jun 04
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,11 +38,11 @@ use "CTRL-V 003" to insert a CTRL-C. Note: When CTRL-V is mapped you can
|
||||
often use CTRL-Q instead |i_CTRL-Q|.
|
||||
|
||||
If you are working in a special language mode when inserting text, see the
|
||||
'langmap' option, |'langmap'|, on how to avoid switching this mode on and off
|
||||
'langmap' option, 'langmap', on how to avoid switching this mode on and off
|
||||
all the time.
|
||||
|
||||
If you have 'insertmode' set, <Esc> and a few other keys get another meaning.
|
||||
See |'insertmode'|.
|
||||
See 'insertmode'.
|
||||
|
||||
char action ~
|
||||
-----------------------------------------------------------------------
|
||||
@@ -284,15 +284,17 @@ The effect of the <BS>, CTRL-W, and CTRL-U depend on the 'backspace' option
|
||||
|
||||
item action ~
|
||||
indent allow backspacing over autoindent
|
||||
eol allow backspacing over end-of-line (join lines)
|
||||
start allow backspacing over the start position of insert; CTRL-W and
|
||||
CTRL-U stop once at the start position
|
||||
eol allow backspacing over line breaks (join lines)
|
||||
start allow backspacing over the start of insert; CTRL-W and CTRL-U stop
|
||||
once at the start of insert.
|
||||
nostop like start, except CTRL-W and CTRL-U do not stop at the start of
|
||||
insert.
|
||||
|
||||
When 'backspace' is empty, Vi compatible backspacing is used. You cannot
|
||||
backspace over autoindent, before column 1 or before where insert started.
|
||||
|
||||
For backwards compatibility the values "0", "1", "2" and "3" are also allowed,
|
||||
see |'backspace'|.
|
||||
see 'backspace'.
|
||||
|
||||
If the 'backspace' option does contain "eol" and the cursor is in column 1
|
||||
when one of the three keys is used, the current line is joined with the
|
||||
@@ -619,7 +621,7 @@ In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode,
|
||||
unless "L" is in 'cpoptions'.
|
||||
|
||||
Note that the only situations for which characters beyond the cursor should
|
||||
appear to move are in List mode |'list'|, and occasionally when 'wrap' is set
|
||||
appear to move are in List mode 'list', and occasionally when 'wrap' is set
|
||||
(and the line changes length to become shorter or wider than the width of the
|
||||
screen). In other cases spaces may be inserted to avoid following characters
|
||||
to move.
|
||||
@@ -648,7 +650,7 @@ Completion can be done for:
|
||||
10. User defined completion |i_CTRL-X_CTRL-U|
|
||||
11. omni completion |i_CTRL-X_CTRL-O|
|
||||
12. Spelling suggestions |i_CTRL-X_s|
|
||||
13. keywords in 'complete' |i_CTRL-N| |i_CTRL-P|
|
||||
13. completions from 'complete' |i_CTRL-N| |i_CTRL-P|
|
||||
14. contents from registers |i_CTRL-X_CTRL-R|
|
||||
|
||||
Additionally, |i_CTRL-X_CTRL-Z| stops completion without changing the text.
|
||||
@@ -659,6 +661,9 @@ and one of the CTRL-X commands. You exit CTRL-X mode by typing a key that is
|
||||
not a valid CTRL-X mode command. Valid keys are the CTRL-X command itself,
|
||||
CTRL-N (next), and CTRL-P (previous).
|
||||
|
||||
By default, the possible completions are showed in a menu and the first
|
||||
completion is inserted into the text. This can be adjusted with 'completeopt'.
|
||||
|
||||
To get the current completion information, |complete_info()| can be used.
|
||||
Also see the 'infercase' option if you want to adjust the case of the match.
|
||||
|
||||
@@ -1100,25 +1105,23 @@ CTRL-X s Locate the word in front of the cursor and find the
|
||||
previous one.
|
||||
|
||||
|
||||
Completing keywords from different sources *compl-generic*
|
||||
Completing from different sources *compl-generic*
|
||||
|
||||
*i_CTRL-N*
|
||||
CTRL-N Find next match for words that start with the
|
||||
keyword in front of the cursor, looking in places
|
||||
specified with the 'complete' option. The found
|
||||
keyword is inserted in front of the cursor.
|
||||
CTRL-N Find the next match for a word ending at the cursor,
|
||||
using the sources specified in the 'complete' option.
|
||||
All sources complete from keywords, except functions,
|
||||
which may complete from non-keyword. The matched
|
||||
text is inserted before the cursor.
|
||||
|
||||
*i_CTRL-P*
|
||||
CTRL-P Find previous match for words that start with the
|
||||
keyword in front of the cursor, looking in places
|
||||
specified with the 'complete' option. The found
|
||||
keyword is inserted in front of the cursor.
|
||||
CTRL-P Same as CTRL-N, but find the previous match.
|
||||
|
||||
CTRL-N Search forward for next matching keyword. This
|
||||
keyword replaces the previous matching keyword.
|
||||
CTRL-N Search forward through the matches and insert the
|
||||
next one.
|
||||
|
||||
CTRL-P Search backwards for next matching keyword. This
|
||||
keyword replaces the previous matching keyword.
|
||||
CTRL-P Search backward through the matches and insert the
|
||||
previous one.
|
||||
|
||||
CTRL-X CTRL-N or
|
||||
CTRL-X CTRL-P Further use of CTRL-X CTRL-N or CTRL-X CTRL-P will
|
||||
@@ -1132,6 +1135,22 @@ Stop completion *compl-stop*
|
||||
CTRL-X CTRL-Z Stop completion without changing the text.
|
||||
|
||||
|
||||
AUTOCOMPLETION *ins-autocompletion*
|
||||
|
||||
Vim can display a completion menu as you type, similar to using |i_CTRL-N|,
|
||||
but triggered automatically. See 'autocomplete' and 'autocompletedelay'.
|
||||
The menu items are collected from the sources listed in the 'complete' option.
|
||||
|
||||
Unlike manual |i_CTRL-N| completion, this mode uses a decaying timeout to keep
|
||||
Vim responsive. Sources earlier in the 'complete' list are given more time
|
||||
(higher priority), but every source is guaranteed a time slice, however small.
|
||||
|
||||
This mode is fully compatible with other completion modes. You can invoke
|
||||
any of them at any time by typing |CTRL-X|, which temporarily suspends
|
||||
autocompletion. To use |i_CTRL-N| specifically, press |CTRL-E| first to
|
||||
dismiss the popup menu (see |complete_CTRL-E|).
|
||||
|
||||
|
||||
FUNCTIONS FOR FINDING COMPLETIONS *complete-functions*
|
||||
|
||||
This applies to 'completefunc', 'thesaurusfunc' and 'omnifunc'.
|
||||
@@ -1257,13 +1276,16 @@ of values:
|
||||
Example: >
|
||||
:set completepopup=height:10,width:60,highlight:InfoPopup
|
||||
|
||||
When the "align" value is "item" then the popup is positioned close to the
|
||||
selected item. Changing the selection will also move the popup. When "align"
|
||||
is "menu" then the popup is aligned with the top of the menu if the menu is
|
||||
below the text, and the bottom of the menu otherwise.
|
||||
When `"align"` is set to `"item"`, the popup is positioned near the selected
|
||||
item, and moves as the selection changes.
|
||||
When set to `"menu"`, the popup aligns with the top of the menu (if the menu
|
||||
appears below the text), or with the bottom (if the menu appears above).
|
||||
|
||||
After the info popup is created it can be found with |popup_findinfo()| and
|
||||
properties can be changed with |popup_setoptions()|.
|
||||
If the 'mouse' is enabled, a close button and resize handle will appear on the
|
||||
popup border.
|
||||
|
||||
After creation, the info popup can be located with |popup_findinfo()| and
|
||||
modified using |popup_setoptions()|.
|
||||
|
||||
*complete-popuphidden*
|
||||
If the information for the popup is obtained asynchronously, use "popuphidden"
|
||||
@@ -1471,7 +1493,7 @@ Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
|
||||
|
||||
For Exuberant ctags, version 5.6 or later is recommended. For version 5.5.4
|
||||
you should add a patch that adds the "typename:" field:
|
||||
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
|
||||
https://ftp.nluug.nl/pub/vim/unstable/patches/ctags-5.5.4.patch
|
||||
A compiled .exe for MS-Windows can be found at:
|
||||
http://ctags.sourceforge.net/
|
||||
https://github.com/universal-ctags/ctags-win32
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*intro.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -821,7 +821,7 @@ current mode 'showmode' on on
|
||||
command characters 'showcmd' on off
|
||||
cursor position 'ruler' off off
|
||||
|
||||
The current mode is "-- INSERT --" or "-- REPLACE --", see |'showmode'|. The
|
||||
The current mode is "-- INSERT --" or "-- REPLACE --", see 'showmode'. The
|
||||
command characters are those that you typed but were not used yet.
|
||||
|
||||
If you have a slow terminal you can switch off the status messages to speed
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 9.1. Last change: 2024 Oct 08
|
||||
*map.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1635,13 +1635,13 @@ completion can be enabled:
|
||||
-complete=cscope |:cscope| suboptions
|
||||
-complete=diff_buffer diff buffer names
|
||||
-complete=dir directory names
|
||||
-complete=dir_in_path directory names in |'cdpath'|
|
||||
-complete=dir_in_path directory names in 'cdpath'
|
||||
-complete=environment environment variable names
|
||||
-complete=event autocommand events
|
||||
-complete=expression Vim expression
|
||||
-complete=file file and directory names
|
||||
-complete=file_in_path file and directory names in |'path'|
|
||||
-complete=filetype filetype names |'filetype'|
|
||||
-complete=file_in_path file and directory names in 'path'
|
||||
-complete=filetype filetype names 'filetype'
|
||||
-complete=function function name
|
||||
-complete=help help subjects
|
||||
-complete=highlight highlight groups
|
||||
@@ -1654,13 +1654,14 @@ completion can be enabled:
|
||||
-complete=messages |:messages| suboptions
|
||||
-complete=option options
|
||||
-complete=packadd optional package |pack-add| names
|
||||
-complete=runtime file and directory names in |'runtimepath'|
|
||||
-complete=retab |:retab| suboptions
|
||||
-complete=runtime file and directory names in 'runtimepath'
|
||||
-complete=scriptnames sourced script names
|
||||
-complete=shellcmd Shell command
|
||||
-complete=shellcmdline First is a shell command and subsequent ones
|
||||
are filenames. The same behavior as |:!cmd|
|
||||
-complete=sign |:sign| suboptions
|
||||
-complete=syntax syntax file names |'syntax'|
|
||||
-complete=syntax syntax file names 'syntax'
|
||||
-complete=syntime |:syntime| suboptions
|
||||
-complete=tag tags
|
||||
-complete=tag_listfiles tags, file names are shown when CTRL-D is hit
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 9.1. Last change: 2024 Jul 17
|
||||
*mbyte.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -464,7 +464,7 @@ Useful utilities for converting the charset:
|
||||
|charset| converter. Supported |charset|: ISO-2022-CN, ISO-2022-JP,
|
||||
ISO-2022-KR, EUC-CN, EUC-JP, EUC-KR, EUC-TW, UTF-7, UTF-8, ISO-8859
|
||||
series, Shift_JIS, Big5 and HZ. Lv can be found at (link seems dead):
|
||||
http://www.ff.iij4u.or.jp/~nrt/lv/index.html
|
||||
ff.iij4u.or.jp/~nrt/lv/index.html
|
||||
|
||||
|
||||
*mbyte-conversion*
|
||||
@@ -802,7 +802,7 @@ is suitable for complex input, such as CJK.
|
||||
pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
|
||||
if needed. There are some Kana-Kanji conversion server: jserver
|
||||
(distributed with Wnn, see below) and canna. Canna can be found at:
|
||||
https://osdn.net/projects/canna/
|
||||
(dead link) osdn.net/projects/canna/
|
||||
|
||||
There is a good input system: Wnn4.2. Wnn 4.2 contains,
|
||||
xwnmo (|IM-server|)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 9.1. Last change: 2024 Dec 06
|
||||
*message.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -572,7 +572,7 @@ attempting a symlink attack (could happen when editing a file in /tmp or when
|
||||
|
||||
Vim (and Vi) expect tags files to be sorted in ASCII order. Binary searching
|
||||
can then be used, which is a lot faster than a linear search. If your tags
|
||||
files are not properly sorted, reset the |'tagbsearch'| option.
|
||||
files are not properly sorted, reset the 'tagbsearch' option.
|
||||
This message is only given when Vim detects a problem when searching for a
|
||||
tag. Sometimes this message is not given, even though the tags file is not
|
||||
properly sorted.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
*motion.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*netbeans.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
@@ -41,10 +41,10 @@ protocol. There are existing implementations in C, C++, Python and Java. The
|
||||
name NetBeans is kept today for historical reasons.
|
||||
|
||||
Active project using the NetBeans protocol of Vim:
|
||||
- Eclim, http://eclim.org/
|
||||
- Eclim, (dead link) eclim.org/
|
||||
|
||||
VimIntegration, description of various projects doing Vim Integration:
|
||||
http://www.freehackers.org/VimIntegration
|
||||
(dead link) www.freehackers.org/VimIntegration
|
||||
|
||||
Projects using the NetBeans protocol of Vim are or were:
|
||||
- Agide, an IDE for the AAP project, written in Python (now replaced by
|
||||
@@ -54,7 +54,7 @@ Projects using the NetBeans protocol of Vim are or were:
|
||||
- Pyclewn, a gdb integration into Vim, written in Python:
|
||||
http://pyclewn.sourceforge.net/
|
||||
- VimWrapper, library to easy Vim integration into IDE:
|
||||
http://www.freehackers.org/VimWrapper
|
||||
(dead link) freehackers.org/VimWrapper
|
||||
Outdated projects (links don't work):
|
||||
- VimPlugin, integration of Vim inside Eclipse:
|
||||
http://vimplugin.sourceforge.net/wiki/pmwiki.php
|
||||
@@ -78,7 +78,7 @@ in recent releases.
|
||||
|
||||
For more information visit the main NetBeans web site http://www.netbeans.org.
|
||||
The External Editor is now, unfortunately, declared obsolete. See (link seems
|
||||
dead): http://externaleditor.netbeans.org.
|
||||
dead): externaleditor.netbeans.org.
|
||||
|
||||
Sun Microsystems, Inc. also ships NetBeans under the name Sun ONE Studio.
|
||||
Visit http://www.sun.com for more information regarding the Sun ONE Studio
|
||||
@@ -148,7 +148,7 @@ The Win32 support is now in beta stage.
|
||||
|
||||
To use XPM signs on Win32 (e.g. when using with NetBeans) you can compile
|
||||
XPM by yourself or use precompiled libraries from (link seems dead):
|
||||
http://iamphet.nm.ru/misc/ (for MS Visual C++) or
|
||||
iamphet.nm.ru/misc/ (for MS Visual C++) or
|
||||
http://gnuwin32.sourceforge.net (for MinGW).
|
||||
|
||||
Enable debugging:
|
||||
@@ -942,12 +942,13 @@ netbeans.org on building NetBeans.
|
||||
|
||||
Depending on the version of NetBeans you download, you may need to do further
|
||||
work to get the required External Editor module. This is the module which lets
|
||||
NetBeans work with gvim (or xemacs :-). See http://externaleditor.netbeans.org
|
||||
NetBeans work with gvim (or xemacs :-). See (dead link)
|
||||
externaleditor.netbeans.org
|
||||
for details on downloading this module if your NetBeans release does not have
|
||||
it.
|
||||
|
||||
For C, C++, and Fortran support you will also need the cpp module. See
|
||||
http://cpp.netbeans.org (link seems dead) for information regarding this
|
||||
cpp.netbeans.org (link seems dead) for information regarding this
|
||||
module.
|
||||
|
||||
You can also download Sun ONE Studio from Sun Microsystems, Inc for a 30 day
|
||||
@@ -994,10 +995,11 @@ Unfortunately, some versions do not have this module in their update
|
||||
center. If you cannot download via the update center you will need to
|
||||
download sources and build the module. I will try and get the module
|
||||
available from the NetBeans Update Center so building will be unnecessary.
|
||||
Also check http://externaleditor.netbeans.org for other availability options.
|
||||
Also check (dead link) externaleditor.netbeans.org
|
||||
for other availability options.
|
||||
|
||||
To download the External Editor sources via CVS and build your own module,
|
||||
see http://externaleditor.netbeans.org and http://www.netbeans.org.
|
||||
see (dead link) externaleditor.netbeans.org and http://www.netbeans.org.
|
||||
Unfortunately, this is not a trivial procedure.
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Jun 07
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Aug 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -911,6 +911,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
the current directory won't change when navigating to it.
|
||||
Note: When this option is on some plugins may not work.
|
||||
|
||||
*'autocomplete'* *'ac'* *'noautocomplete'* *'noac'*
|
||||
'autocomplete' 'ac' boolean (default off)
|
||||
global
|
||||
{only available on platforms with timing support}
|
||||
When on, Vim shows a completion menu as you type, similar to using
|
||||
|i_CTRL-N|, but triggered automatically. See |ins-autocompletion|.
|
||||
|
||||
*'autocompletedelay'* *'acl'*
|
||||
'autocompletedelay' 'acl' number (default 0)
|
||||
global
|
||||
Delay in milliseconds before the autocomplete menu appears after
|
||||
typing. If you prefer it not to open too quickly, set this value
|
||||
slightly above your typing speed. See |ins-autocompletion|.
|
||||
|
||||
*'autoindent'* *'ai'* *'noautoindent'* *'noai'*
|
||||
'autoindent' 'ai' boolean (default off)
|
||||
local to buffer
|
||||
@@ -1028,7 +1042,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Vim will guess the value. In the GUI this should work correctly,
|
||||
in other cases Vim might not be able to guess the right value.
|
||||
If the GUI supports a dark theme, you can use the "d" flag in
|
||||
'guioptions', see 'go-d'.
|
||||
'guioptions', see |'go-d'|.
|
||||
|
||||
When the |t_RB| option is set, Vim will use it to request the background
|
||||
color from the terminal. If the returned RGB value is dark/light and
|
||||
@@ -1582,7 +1596,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"nofile" and "nowrite" buffers are similar:
|
||||
both: The buffer is not to be written to disk, ":w" doesn't
|
||||
work (":w filename" does work though).
|
||||
both: The buffer is never considered to be |'modified'|.
|
||||
both: The buffer is never considered to be 'modified'.
|
||||
There is no warning when the changes will be lost, for
|
||||
example when you quit Vim.
|
||||
both: A swap file is only created when using too much memory
|
||||
@@ -1635,7 +1649,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
searched for has a relative path, not an absolute part starting with
|
||||
"/", "./" or "../", the 'cdpath' option is not used then.
|
||||
The 'cdpath' option's value has the same form and semantics as
|
||||
|'path'|. Also see |file-searching|.
|
||||
'path'. Also see |file-searching|.
|
||||
The default value is taken from $CDPATH, with a "," prepended to look
|
||||
in the current directory first.
|
||||
If the default value taken from $CDPATH is not what you want, include
|
||||
@@ -1785,7 +1799,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
for X-windows, "" otherwise)
|
||||
global
|
||||
{only in GUI versions or when the |+xterm_clipboard|
|
||||
feature is included}
|
||||
or |+wayland_clipboard| features are included}
|
||||
This option is a list of comma-separated names.
|
||||
Note: if one of the items is "exclude:", then you can't add an item
|
||||
after that. Therefore do not append an item with += but use ^= to
|
||||
@@ -1810,12 +1824,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
register '*' for all yank, delete, change and put
|
||||
operations which would normally go to the unnamed
|
||||
register. When "unnamed" is also included to the
|
||||
option, yank operations (but not delete, change or
|
||||
put) will additionally copy the text into register
|
||||
'*'.
|
||||
Only available with the |+X11| feature.
|
||||
Availability can be checked with: >
|
||||
if has('unnamedplus')
|
||||
option, yank operations (but not delete, change or put)
|
||||
will additionally copy the text into register '*'. If
|
||||
Wayland is being used and the compositor does not
|
||||
support the primary-selection-unstable-v1 protocol,
|
||||
then the regular selection is used in its place. Only
|
||||
available with the |+X11| or |+wayland_clipboard|
|
||||
feature. Availability can be checked with: >
|
||||
if has('unnamedplus')
|
||||
<
|
||||
*clipboard-autoselect*
|
||||
autoselect Works like the 'a' flag in 'guioptions': If present,
|
||||
@@ -1852,24 +1868,54 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
exclude:{pattern}
|
||||
Defines a pattern that is matched against the name of
|
||||
the terminal 'term'. If there is a match, no
|
||||
connection will be made to the X server. This is
|
||||
useful in this situation:
|
||||
connection will be made to the X server or Wayland
|
||||
compositor. This is useful in this situation:
|
||||
- Running Vim in a console.
|
||||
- $DISPLAY is set to start applications on another
|
||||
display.
|
||||
- You do not want to connect to the X server in the
|
||||
console, but do want this in a terminal emulator.
|
||||
To never connect to the X server use: >
|
||||
- $DISPLAY/$WAYLAND_DISPLAY is set to start
|
||||
applications on another display.
|
||||
- You do not want to connect to the X server/Wayland
|
||||
compositor in the console, but do want this in a
|
||||
terminal emulator.
|
||||
To never connect to the X server/Wayland compositor
|
||||
use: >
|
||||
exclude:.*
|
||||
< This has the same effect as using the |-X| argument.
|
||||
< This has the same effect as using the |-X| or |-Y|
|
||||
argument.
|
||||
Note that when there is no connection to the X server
|
||||
the window title won't be restored and the clipboard
|
||||
cannot be accessed.
|
||||
cannot be accessed. This is the same for Wayland,
|
||||
except there is no title restoring.
|
||||
The value of 'magic' is ignored, {pattern} is
|
||||
interpreted as if 'magic' was on.
|
||||
The rest of the option value will be used for
|
||||
{pattern}, this must be the last entry.
|
||||
|
||||
*'clipmethod'* *'cpm'*
|
||||
'clipmethod' 'cpm' string (default for Unix: "wayland,x11",
|
||||
for VMS: "x11",
|
||||
otherwise: "")
|
||||
global
|
||||
{only when the |+xterm_clipboard| or
|
||||
|+wayland_clipboard| features are included}
|
||||
Specifies which method of accessing the system clipboard is used,
|
||||
depending on which method works first or is available. Supported
|
||||
methods are:
|
||||
wayland Wayland selections
|
||||
x11 X11 selections
|
||||
|
||||
Note: This option is ignored when either the GUI is running or if Vim
|
||||
is run on a system without Wayland or X11 support, such as Windows or
|
||||
macOS. The GUI or system way of accessing the clipboard is always
|
||||
used instead.
|
||||
|
||||
The option value is a list of comma separated items. The list is
|
||||
parsed left to right in order, and the first method that Vim
|
||||
determines is available or is working is used as the actual method for
|
||||
accessing the clipboard.
|
||||
|
||||
The current method that is being used can be found in the |v:clipmethod|
|
||||
variable.
|
||||
|
||||
*'cmdheight'* *'ch'*
|
||||
'cmdheight' 'ch' number (default 1)
|
||||
global or local to tab page
|
||||
@@ -2043,7 +2089,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'smartcase' + off no automatic ignore case switch
|
||||
'smartindent' + off no smart indentation
|
||||
'smarttab' + off no smart tab size
|
||||
'softtabstop' + 0 tabs are always 'tabstop' positions
|
||||
'softtabstop' + 0 no soft tab stops
|
||||
'startofline' + on goto startofline with some commands
|
||||
'tagcase' & "followic" 'ignorecase' when searching tags file
|
||||
'tagrelative' & off tag file names are not relative
|
||||
@@ -2091,18 +2137,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
name of a function or a |Funcref|. For |Funcref| values,
|
||||
spaces must be escaped with a backslash ('\'), and commas with
|
||||
double backslashes ('\\') (see |option-backslash|).
|
||||
Unlike other sources, functions can provide completions starting
|
||||
from a non-keyword character before the cursor, and their
|
||||
start position for replacing text may differ from other sources.
|
||||
If the Dict returned by the {func} includes {"refresh": "always"},
|
||||
the function will be invoked again whenever the leading text
|
||||
changes.
|
||||
Completion matches are always inserted at the keyword
|
||||
boundary, regardless of the column returned by {func} when
|
||||
a:findstart is 1. This ensures compatibility with other
|
||||
completion sources.
|
||||
To make further modifications to the inserted text, {func}
|
||||
can make use of |CompleteDonePre|.
|
||||
If generating matches is potentially slow, |complete_check()|
|
||||
should be used to avoid blocking and preserve editor
|
||||
responsiveness.
|
||||
If generating matches is potentially slow, call
|
||||
|complete_check()| periodically to keep Vim responsive. This
|
||||
is especially important for |ins-autocompletion|.
|
||||
F equivalent to using "F{func}", where the function is taken from
|
||||
the 'completefunc' option.
|
||||
o equivalent to using "F{func}", where the function is taken from
|
||||
@@ -2192,7 +2235,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
controls how completion candidates are reduced from the
|
||||
list of alternatives. If you want to use |fuzzy-matching|
|
||||
to gather more alternatives for your candidate list,
|
||||
see |'completefuzzycollect'|.
|
||||
see 'completefuzzycollect'.
|
||||
|
||||
longest Only insert the longest common text of the matches. If
|
||||
the menu is displayed you can use CTRL-L to add more
|
||||
@@ -2229,7 +2272,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
popup Show extra information about the currently selected
|
||||
completion in a popup window. Only works in combination
|
||||
with "menu" or "menuone". Overrides "preview".
|
||||
See |'completepopup'| for specifying properties.
|
||||
See 'completepopup' for specifying properties.
|
||||
{only works when compiled with the |+textprop| feature}
|
||||
|
||||
popuphidden
|
||||
@@ -2249,6 +2292,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
completion in the preview window. Only works in
|
||||
combination with "menu" or "menuone".
|
||||
|
||||
Only "fuzzy", "popup", "popuphidden" and "preview" have an effect when
|
||||
'autocomplete' is enabled.
|
||||
|
||||
This option does not apply to |cmdline-completion|. See 'wildoptions'
|
||||
for that.
|
||||
|
||||
*'completepopup'* *'cpp'*
|
||||
'completepopup' 'cpp' string (default empty)
|
||||
global
|
||||
@@ -2344,7 +2393,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
local to buffer
|
||||
Copy the structure of the existing lines indent when autoindenting a
|
||||
new line. Normally the new indent is reconstructed by a series of
|
||||
tabs followed by spaces as required (unless |'expandtab'| is enabled,
|
||||
tabs followed by spaces as required (unless 'expandtab' is enabled,
|
||||
in which case only spaces are used). Enabling this option makes the
|
||||
new line copy whatever characters were used for indenting on the
|
||||
existing line. 'expandtab' has no effect on these characters, a Tab
|
||||
@@ -2355,7 +2404,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'cpoptions'* *'cpo'* *cpo*
|
||||
'cpoptions' 'cpo' string (Vim default: "aABceFsz",
|
||||
Vi default: all flags, except "#{|&/\."
|
||||
Vi default: all flags, except "#{|&/\.~"
|
||||
|$VIM_POSIX|: all flags)
|
||||
global
|
||||
A sequence of single character flags. When a character is present
|
||||
@@ -2495,7 +2544,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*cpo-m*
|
||||
m When included, a showmatch will always wait half a
|
||||
second. When not included, a showmatch will wait half
|
||||
a second or until a character is typed. |'showmatch'|
|
||||
a second or until a character is typed. 'showmatch'
|
||||
*cpo-M*
|
||||
M When excluded, "%" matching will take backslashes into
|
||||
account. Thus in "( \( )" and "\( ( \)" the outer
|
||||
@@ -2645,6 +2694,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
character, the cursor won't move. When not included,
|
||||
the cursor would skip over it and jump to the
|
||||
following occurrence.
|
||||
*cpo-~*
|
||||
~ When included, don't resolve symbolic links when
|
||||
changing directory with |:cd|, |:lcd|, or |:tcd|.
|
||||
This preserves the symbolic link path in buffer names
|
||||
and when displaying the current directory. When
|
||||
excluded (default), symbolic links are resolved to
|
||||
their target paths.
|
||||
|
||||
POSIX flags. These are not included in the Vi default value, except
|
||||
when $VIM_POSIX was set on startup. |posix|
|
||||
@@ -2947,6 +3003,29 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Join the current window in the group of windows that shows differences
|
||||
between files. See |vimdiff|.
|
||||
|
||||
*'dia'* *'diffanchors'* *E1549*
|
||||
'diffanchors' 'dia' string (default "")
|
||||
global or local to buffer |global-local|
|
||||
List of {address} in each buffer, separated by commas, that are
|
||||
considered anchors when used for diffing. It's valid to specify "$+1"
|
||||
for 1 past the last line. "%" cannot be used for this option. There
|
||||
can be at most 20 anchors set for each buffer.
|
||||
|
||||
Each anchor line splits the buffer (the split happens above the
|
||||
anchor), with each part being diff'ed separately before the final
|
||||
result is joined. When more than one {address} are provided, the
|
||||
anchors will be sorted interally by line number. If using buffer
|
||||
local options, each buffer should have the same number of anchors
|
||||
(extra anchors will be ignored). This option is only used when
|
||||
'diffopt' has "anchor" set. See |diff-anchors| for more details and
|
||||
examples.
|
||||
*E1550*
|
||||
If some of the {address} do not resolve to a line in each buffer (e.g.
|
||||
a pattern search that does not match anything), none of the anchors
|
||||
will be used.
|
||||
*E1562*
|
||||
Diff anchors can only be used when there are no hidden diff buffers.
|
||||
|
||||
*'dex'* *'diffexpr'*
|
||||
'diffexpr' 'dex' string (default "")
|
||||
global
|
||||
@@ -2975,6 +3054,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
patience patience diff algorithm
|
||||
histogram histogram diff algorithm
|
||||
|
||||
anchor Anchor specific lines in each buffer to be
|
||||
aligned with each other if 'diffanchors' is
|
||||
set. See |diff-anchors|.
|
||||
|
||||
closeoff When a window is closed where 'diff' is set
|
||||
and there is only one window remaining in the
|
||||
same tab page with 'diff' set, execute
|
||||
@@ -3077,6 +3160,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"linematch:60", as this will enable alignment
|
||||
for a 2 buffer diff hunk of 30 lines each,
|
||||
or a 3 buffer diff hunk of 20 lines each.
|
||||
Implicitly sets "filler" when this is set.
|
||||
|
||||
vertical Start diff mode with vertical splits (unless
|
||||
explicitly specified otherwise).
|
||||
@@ -3387,6 +3471,73 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
buffers, for which window and buffer related autocommands can be
|
||||
ignored indefinitely without affecting the global 'eventignore'.
|
||||
|
||||
Note: The following events are considered to happen outside of a
|
||||
window context and thus cannot be ignored by 'eventignorewin':
|
||||
|
||||
|CmdlineChanged|,
|
||||
|CmdlineEnter|,
|
||||
|CmdlineLeave|,
|
||||
|CmdlineLeavePre|,
|
||||
|CmdUndefined|,
|
||||
|CmdwinEnter|,
|
||||
|CmdwinLeave|,
|
||||
|ColorScheme|,
|
||||
|ColorSchemePre|,
|
||||
|CompleteChanged|,
|
||||
|CompleteDone|,
|
||||
|CompleteDonePre|,
|
||||
|DiffUpdated|,
|
||||
|DirChanged|,
|
||||
|DirChangedPre|,
|
||||
|EncodingChanged|,
|
||||
|ExitPre|,
|
||||
|FocusGained|,
|
||||
|FocusLost|,
|
||||
|FuncUndefined|,
|
||||
|GUIEnter|,
|
||||
|GUIFailed|,
|
||||
|KeyInputPre|,
|
||||
|MenuPopup|,
|
||||
|ModeChanged|,
|
||||
|OptionSet|,
|
||||
|QuickFixCmdPost|,
|
||||
|QuickFixCmdPre|,
|
||||
|QuitPre|,
|
||||
|RemoteReply|,
|
||||
|SafeState|,
|
||||
|SafeStateAgain|,
|
||||
|SessionLoadPost|,
|
||||
|SessionWritePost|,
|
||||
|ShellCmdPost|,
|
||||
|SigUSR1|,
|
||||
|SourceCmd|,
|
||||
|SourcePost|,
|
||||
|SourcePre|,
|
||||
|SpellFileMissing|,
|
||||
|StdinReadPost|,
|
||||
|StdinReadPre|,
|
||||
|SwapExists|,
|
||||
|Syntax|,
|
||||
|TabClosed|,
|
||||
|TabClosedPre|,
|
||||
|TabEnter|,
|
||||
|TabLeave|,
|
||||
|TabNew|,
|
||||
|TermChanged|,
|
||||
|TerminalOpen|,
|
||||
|TerminalWinOpen|,
|
||||
|TermResponse|,
|
||||
|TermResponseAll|,
|
||||
|User|,
|
||||
|VimEnter|,
|
||||
|VimLeave|,
|
||||
|VimLeavePre|,
|
||||
|VimResized|,
|
||||
|VimResume|,
|
||||
|VimSuspend|,
|
||||
|WinNew|,
|
||||
|WinNewPre|
|
||||
|
||||
*'expandtab'* *'et'* *'noexpandtab'* *'noet'*
|
||||
'expandtab' 'et' boolean (default off)
|
||||
local to buffer
|
||||
@@ -4495,7 +4646,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-Directory| d directories in CTRL-D listing and other special
|
||||
things in listings
|
||||
|hl-ErrorMsg| e error messages
|
||||
h (obsolete, ignored)
|
||||
|hl-IncSearch| i 'incsearch' highlighting
|
||||
|hl-CurSearch| y current instance of last search pattern
|
||||
|hl-Search| l last search pattern highlighting (see 'hlsearch')
|
||||
@@ -4517,9 +4667,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-Title| t Titles for output from ":set all", ":autocmd" etc.
|
||||
|hl-VertSplit| c column used to separate vertically split windows
|
||||
|hl-Visual| v Visual mode
|
||||
|hl-VisualNOS| V Visual mode when Vim does is "Not Owning the
|
||||
Selection" Only X11 Gui's |gui-x11| and
|
||||
|xterm-clipboard|.
|
||||
|hl-VisualNOS| V Visual mode when Vim is "Not Owning the
|
||||
Selection" Only X11 Gui's |gui-x11|,
|
||||
|xterm-clipboard| and |wayland-selections|
|
||||
|hl-WarningMsg| w warning messages
|
||||
|hl-WildMenu| W wildcard matches displayed for 'wildmenu'
|
||||
|hl-Folded| f line used for closed folds
|
||||
@@ -5468,8 +5618,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'lispoptions' 'lop' string (default "")
|
||||
local to buffer
|
||||
Comma-separated list of items that influence the Lisp indenting when
|
||||
enabled with the |'lisp'| option. Currently only one item is
|
||||
supported:
|
||||
enabled with the 'lisp' option. Currently only one item is supported:
|
||||
expr:1 use 'indentexpr' for Lisp indenting when it is set
|
||||
expr:0 do not use 'indentexpr' for Lisp indenting (default)
|
||||
Note that when using 'indentexpr' the `=` operator indents all the
|
||||
@@ -5479,7 +5628,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'lispwords' 'lw' string (default is very long)
|
||||
global or local to buffer |global-local|
|
||||
Comma-separated list of words that influence the Lisp indenting when
|
||||
enabled with the |'lisp'| option.
|
||||
enabled with the 'lisp' option.
|
||||
|
||||
*'list'* *'nolist'*
|
||||
'list' boolean (default off)
|
||||
@@ -5793,6 +5942,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
used.
|
||||
Also see 'maxmem'.
|
||||
|
||||
*'maxsearchcount'* *'msc'*
|
||||
'maxsearchcount' 'msc' number (default 99)
|
||||
global
|
||||
Maximum number of matches shown for the search count status |shm-S|
|
||||
When the number of matches exceeds this value, Vim shows ">" instead
|
||||
of the exact count to keep searching fast.
|
||||
Note: larger values may impact performance.
|
||||
The value must be between 1 and 9999.
|
||||
|
||||
*'menuitems'* *'mis'*
|
||||
'menuitems' 'mis' number (default 25)
|
||||
global
|
||||
@@ -5962,7 +6120,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When the mouse is not enabled, the GUI will still use the mouse for
|
||||
modeless selection. This doesn't move the text cursor.
|
||||
|
||||
See |mouse-using|. Also see |'clipboard'|.
|
||||
See |mouse-using|. Also see 'clipboard'.
|
||||
|
||||
Note: When enabling the mouse in a terminal, copy/paste will use the
|
||||
"* register if there is access to an X-server. The xterm handling of
|
||||
@@ -6453,7 +6611,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
local to buffer
|
||||
When changing the indent of the current line, preserve as much of the
|
||||
indent structure as possible. Normally the indent is replaced by a
|
||||
series of tabs followed by spaces as required (unless |'expandtab'| is
|
||||
series of tabs followed by spaces as required (unless 'expandtab' is
|
||||
enabled, in which case only spaces are used). Enabling this option
|
||||
means the indent will preserve as many existing characters as possible
|
||||
for indenting, and only add additional tabs or spaces as required.
|
||||
@@ -7088,7 +7246,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
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
|
||||
See 'scrollopt' for options that determine how this option should be
|
||||
interpreted.
|
||||
This option is mostly reset when splitting a window to edit another
|
||||
file. This means that ":split | edit file" results in two windows
|
||||
@@ -7363,6 +7521,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Don't forget to precede the space with a backslash: ":set sp=\ ".
|
||||
In the future pipes may be used for filtering and this option will
|
||||
become obsolete (at least for Unix).
|
||||
Note: When using a pipe like "| tee", you'll lose the exit code of the
|
||||
shell command. This might be configurable by your shell, look for
|
||||
the pipefail option (for bash and zsh, use ":set -o pipefail").
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
@@ -7505,7 +7666,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'shiftwidth' 'sw' number (default 8)
|
||||
local to buffer
|
||||
Number of columns that make up one level of (auto)indentation. Used
|
||||
by |'cindent'|, |<<|, |>>|, etc.
|
||||
by 'cindent', |<<|, |>>|, etc.
|
||||
If set to 0, Vim uses the current 'tabstop' value. Use |shiftwidth()|
|
||||
to obtain the effective value in scripts.
|
||||
|
||||
@@ -7564,7 +7725,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
is shown), the "search hit BOTTOM, continuing at TOP" and
|
||||
"search hit TOP, continuing at BOTTOM" messages are only
|
||||
indicated by a "W" (Mnemonic: Wrapped) letter before the
|
||||
search count statistics.
|
||||
search count statistics. The maximum limit can be set with
|
||||
the 'maxsearchcount' option.
|
||||
|
||||
This gives you the opportunity to avoid that a change between buffers
|
||||
requires you to hit <Enter>, but still gives as useful a message as
|
||||
@@ -7612,8 +7774,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:setlocal showbreak=NONE
|
||||
<
|
||||
*'showcmd'* *'sc'* *'noshowcmd'* *'nosc'*
|
||||
'showcmd' 'sc' boolean (Vim default: on, off for Unix,
|
||||
Vi default: off, set in |defaults.vim|)
|
||||
'showcmd' 'sc' boolean (Vim default: on, Vi default: off)
|
||||
global
|
||||
Show (partial) command in the last line of the screen. Set this
|
||||
option off if your terminal is slow.
|
||||
@@ -7728,7 +7889,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global or local to window |global-local|
|
||||
The minimal number of screen columns to keep to the left and to the
|
||||
right of the cursor if 'nowrap' is set. Setting this option to a
|
||||
value greater than 0 while having |'sidescroll'| also at a non-zero
|
||||
value greater than 0 while having 'sidescroll' also at a non-zero
|
||||
value makes some context visible in the line you are scrolling in
|
||||
horizontally (except at beginning of the line). Setting this option
|
||||
to a large value (like 999) has the effect of keeping the cursor
|
||||
@@ -7740,9 +7901,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
setlocal sidescrolloff=-1
|
||||
< NOTE: This option is set to 0 when 'compatible' is set.
|
||||
|
||||
Example: Try this together with 'sidescroll' and 'listchars' as
|
||||
in the following example to never allow the cursor to move
|
||||
onto the "extends" character: >
|
||||
Example: Try this together with 'sidescroll' and 'listchars' as in the
|
||||
following example to never allow the cursor to move onto the
|
||||
"extends" character: >
|
||||
|
||||
:set nowrap sidescroll=1 listchars=extends:>,precedes:<
|
||||
:set sidescrolloff=1
|
||||
@@ -7803,11 +7964,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
When enabled, the <Tab> key will indent by 'shiftwidth' if the cursor
|
||||
is in leading whitespace. The <BS> key has the opposite effect.
|
||||
This behaves as if 'softtabstop' is set to the value of 'shiftwidth'.
|
||||
In leading whitespace, this has the same effect as setting
|
||||
'softtabstop' to the value of 'shiftwidth'.
|
||||
This option is reset when 'compatible' is set; it is temporarily
|
||||
disabled when 'paste' is enabled, and restored when 'paste' is turned
|
||||
off.
|
||||
Have a look at section |30.5| of the user guide for detailed
|
||||
NOTE: in most cases, using 'softtabstop' is a better option. Have a
|
||||
look at section |30.5| of the user guide for detailed
|
||||
explanations on how Vim works with tabs and spaces.
|
||||
|
||||
*'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'*
|
||||
@@ -7824,25 +7987,28 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'softtabstop'* *'sts'*
|
||||
'softtabstop' 'sts' number (default 0)
|
||||
local to buffer
|
||||
Number of spaces that a <Tab> counts for while performing editing
|
||||
operations, like inserting a <Tab> or using <BS>. It "feels" like
|
||||
<Tab>s are being inserted, while in fact a mix of spaces and <Tab>s is
|
||||
used. This is useful to keep the 'ts' setting at its standard value
|
||||
of 8, while being able to edit like it is set to 'sts'. However,
|
||||
commands like "x" still work on the actual characters.
|
||||
When 'sts' is zero, this feature is off.
|
||||
When 'sts' is negative, the value of 'shiftwidth' is used.
|
||||
'softtabstop' is set to 0 when the 'paste' option is set and restored
|
||||
when 'paste' is reset.
|
||||
See also |ins-expandtab|. When 'expandtab' is not set, the number of
|
||||
spaces is minimized by using <Tab>s.
|
||||
The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is
|
||||
set.
|
||||
NOTE: This option is set to 0 when 'compatible' is set.
|
||||
Create soft tab stops, separated by 'softtabstop' number of columns.
|
||||
In Insert mode, pressing the <Tab> key will move the cursor to the
|
||||
next soft tab stop, instead of inserting a literal tab. <BS> behaves
|
||||
similarly in reverse. Vim inserts a minimal mix of tab and space
|
||||
characters to produce the visual effect.
|
||||
|
||||
This setting does not affect the display of existing tab characters.
|
||||
|
||||
A value of 0 disables this behaviour. A negative value makes Vim use
|
||||
'shiftwidth'. If you plan to use 'sts' and 'shiftwidth' with
|
||||
different values, you might consider setting 'smarttab'.
|
||||
|
||||
'softtabstop' is temporarily set to 0 when 'paste' is on and reset
|
||||
when it is turned off. It is also reset when 'compatible' is set.
|
||||
|
||||
The 'L' flag in 'cpoptions' alters tab behavior when 'list' is
|
||||
enabled. See also |ins-expandtab| ans user manual section |30.5| for
|
||||
in-depth explanations.
|
||||
|
||||
If Vim is compiled with the |+vartabs| feature then the value of
|
||||
'softtabstop' will be ignored if |'varsofttabstop'| is set to
|
||||
anything other than an empty string.
|
||||
'softtabstop' will be ignored if 'varsofttabstop' is set to anything
|
||||
other than an empty string.
|
||||
|
||||
*'spell'* *'nospell'*
|
||||
'spell' boolean (default off)
|
||||
@@ -8285,12 +8451,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Careful: All text will be in memory:
|
||||
- Don't use this for big files.
|
||||
- Recovery will be impossible!
|
||||
A swapfile will only be present when |'updatecount'| is non-zero and
|
||||
A swapfile will only be present when 'updatecount' is non-zero and
|
||||
'swapfile' is set.
|
||||
When 'swapfile' is reset, the swap file for the current buffer is
|
||||
immediately deleted. When 'swapfile' is set, and 'updatecount' is
|
||||
non-zero, a swap file is immediately created.
|
||||
Also see |swap-file| and |'swapsync'|.
|
||||
Also see |swap-file| and 'swapsync'.
|
||||
If you want to open a new buffer without creating a swap file for it,
|
||||
use the |:noswapfile| modifier.
|
||||
See 'directory' for where the swap file is created.
|
||||
@@ -8495,7 +8661,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
character (ASCII 9); a Horizontal Tab always advances to the next tab
|
||||
stop.
|
||||
The value must be at least 1 and at most 9999.
|
||||
If Vim was compiled with |+vartabs| and |'vartabstop'| is set, this
|
||||
If Vim was compiled with |+vartabs| and 'vartabstop' is set, this
|
||||
option is ignored.
|
||||
Leave it at 8 unless you have a strong reason (see usr |30.5|).
|
||||
|
||||
@@ -8957,7 +9123,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When Vim was compiled with HAVE_X11 defined, the original title will
|
||||
be restored if possible. The output of ":version" will include "+X11"
|
||||
when HAVE_X11 was defined, otherwise it will be "-X11". This also
|
||||
works for the icon name |'icon'|.
|
||||
works for the icon name 'icon'.
|
||||
But: When Vim was started with the |-X| argument, restoring the title
|
||||
will not work (except in the GUI).
|
||||
If the title cannot be restored, it is set to the value of 'titleold'.
|
||||
@@ -9190,7 +9356,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
{only when compiled with the |+persistent_undo| feature}
|
||||
List of directory names for undo files, separated with commas.
|
||||
See |'backupdir'| for details of the format.
|
||||
See 'backupdir' for details of the format.
|
||||
"." means using the directory of the file. The undo file name for
|
||||
"file.txt" is ".file.txt.un~".
|
||||
For other directories the file name is the full path of the edited
|
||||
@@ -9262,13 +9428,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
recovery |crash-recovery|). 'updatecount' is set to zero by starting
|
||||
Vim with the "-n" option, see |startup|. When editing in readonly
|
||||
mode this option will be initialized to 10000.
|
||||
The swapfile can be disabled per buffer with |'swapfile'|.
|
||||
The swapfile can be disabled per buffer with 'swapfile'.
|
||||
When 'updatecount' is set from zero to non-zero, swap files are
|
||||
created for all buffers that have 'swapfile' set. When 'updatecount'
|
||||
is set to zero, existing swap files are not deleted.
|
||||
Also see |'swapsync'|.
|
||||
This option has no meaning in buffers where |'buftype'| is "nofile"
|
||||
or "nowrite".
|
||||
Also see 'swapsync'.
|
||||
This option has no meaning in buffers where 'buftype' is "nofile" or
|
||||
"nowrite".
|
||||
|
||||
*'updatetime'* *'ut'*
|
||||
'updatetime' 'ut' number (default 4000)
|
||||
@@ -9282,36 +9448,40 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
local to buffer
|
||||
{only available when compiled with the |+vartabs|
|
||||
feature}
|
||||
A list of the number of spaces that a <Tab> counts for while editing,
|
||||
such as inserting a <Tab> or using <BS>. It "feels" like variable-
|
||||
width <Tab>s are being inserted, while in fact a mixture of spaces
|
||||
and <Tab>s is used. Tab widths are separated with commas, with the
|
||||
final value applying to all subsequent tabs.
|
||||
Defines variable-width soft tab stops. The value is a comma-separated
|
||||
list of widths in columns. Each width defines the number of columns
|
||||
before the next soft tab stop. The last value repeats indefinitely.
|
||||
|
||||
For example, when editing assembly language files where statements
|
||||
start in the 9th column and comments in the 41st, it may be useful
|
||||
to use the following: >
|
||||
:set varsofttabstop=8,32,8
|
||||
< This will set soft tabstops with 8 and 8 + 32 spaces, and 8 more
|
||||
for every column thereafter.
|
||||
< This sets soft tab stops at column 8, then at column 40 (8 + 32), and
|
||||
every 8 columns thereafter.
|
||||
|
||||
Note that the value of |'softtabstop'| will be ignored while
|
||||
'varsofttabstop' is set.
|
||||
Note: this setting overrides 'softtabstop'.
|
||||
See section |30.5| of the user manual for detailed explanations on how
|
||||
Vim works with tabs and spaces.
|
||||
|
||||
*'vartabstop'* *'vts'*
|
||||
'vartabstop' 'vts' string (default "")
|
||||
local to buffer
|
||||
{only available when compiled with the |+vartabs|
|
||||
feature}
|
||||
A list of the number of spaces that a <Tab> in the file counts for,
|
||||
separated by commas. Each value corresponds to one tab, with the
|
||||
final value applying to all subsequent tabs. For example: >
|
||||
:set vartabstop=4,20,10,8
|
||||
< This will make the first tab 4 spaces wide, the second 20 spaces,
|
||||
the third 10 spaces, and all following tabs 8 spaces.
|
||||
Defines variable-width tab stops. The value is a comma-separated list
|
||||
of widths in columns. Each width defines the number of columns
|
||||
before the next tab stop; the last value repeats indefinitely.
|
||||
|
||||
Note that the value of |'tabstop'| will be ignored while 'vartabstop'
|
||||
is set.
|
||||
For example: >
|
||||
:set vartabstop=4,8
|
||||
< This places the first tab stop 4 columns from the start of the line
|
||||
and each subsequent tab stop 8 columns apart.
|
||||
|
||||
Note: this setting overrides 'tabstop'.
|
||||
On UNIX, it is recommended to keep the default tabstop value of 8.
|
||||
Consider setting 'varsofttabstop' instead.
|
||||
See section |30.5| of the user manual for detailed explanations on how
|
||||
Vim works with tabs and spaces.
|
||||
|
||||
*'verbose'* *'vbs'*
|
||||
'verbose' 'vbs' number (default 0)
|
||||
@@ -9642,7 +9812,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:set wc=X
|
||||
:set wc=^I
|
||||
:set wc=<Tab>
|
||||
< NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
< 'wildchar' also enables completion in search pattern contexts such as
|
||||
|/|, |?|, |:s|, |:g|, |:v|, and |:vim|. To insert a literal <Tab>
|
||||
instead of triggering completion, type <C-V><Tab> or "\t".
|
||||
See also 'wildoptions' and |wildtrigger()|.
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
*'wildcharm'* *'wcm'*
|
||||
@@ -9807,7 +9981,22 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'wildoptions' 'wop' string (default "")
|
||||
global
|
||||
A list of words that change how |cmdline-completion| is done.
|
||||
|
||||
The following values are supported:
|
||||
exacttext When this flag is present, search pattern completion
|
||||
(e.g., in |/|, |?|, |:s|, |:g|, |:v|, and |:vim|)
|
||||
shows exact buffer text as menu items, without
|
||||
preserving regex artifacts like position
|
||||
anchors (e.g., |/\<|). This provides more intuitive
|
||||
menu items that match the actual buffer text.
|
||||
However, searches may be less accurate since the
|
||||
pattern is not preserved exactly.
|
||||
By default, Vim preserves the typed pattern (with
|
||||
anchors) and appends the matched word. This preserves
|
||||
search correctness, especially when using regular
|
||||
expressions or with 'smartcase' enabled. However, the
|
||||
case of the appended matched word may not exactly
|
||||
match the case of the word in the buffer.
|
||||
fuzzy Use |fuzzy-matching| to find completion matches. When
|
||||
this value is specified, wildcard expansion will not
|
||||
be used for completion. The matches will be sorted by
|
||||
@@ -9824,6 +10013,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
d #define
|
||||
f function
|
||||
|
||||
This option does not apply to |ins-completion|. See 'completeopt' for
|
||||
that.
|
||||
|
||||
*'winaltkeys'* *'wak'*
|
||||
'winaltkeys' 'wak' string (default "menu")
|
||||
global
|
||||
@@ -9961,6 +10153,39 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'winwidth' applies to the current window. Use 'winminwidth' to set
|
||||
the minimal width for other windows.
|
||||
|
||||
*'wlseat'* *'wse'*
|
||||
'wlseat' 'wse' string (default "")
|
||||
global
|
||||
{only when the |+wayland| feature is included}
|
||||
Specifies the Wayland seat to use for Wayland functionality,
|
||||
specifically the clipboard. If the seat does not exist, then the
|
||||
option will still be set to the new value, with the Wayland clipboard
|
||||
being unavailable as a result. If an empty value is passed then Vim
|
||||
will attempt to use the first seat found available. Updating this
|
||||
option will also update |v:clipmethod|.
|
||||
|
||||
*'wlsteal'* *'wst'* *'nowlsteal'* *'nowst'*
|
||||
'wlsteal' 'wst' boolean (default off)
|
||||
global
|
||||
{only when the |+wayland_clipboard| feature is included}
|
||||
When enabled, then allow Vim to steal focus by creating a temporary
|
||||
surface, in order to access the clipboard. For more information see
|
||||
|wayland-focus-steal|.
|
||||
|
||||
*'wltimeoutlen'* *'wtm'*
|
||||
'wltimeoutlen' 'wtm' number (default 500)
|
||||
global
|
||||
{only when the |+wayland| feature is included}
|
||||
The timeout in milliseconds before Vim gives up on waiting for the
|
||||
Wayland compositor. While Vim waits on the compositor, it is
|
||||
unresponsive to input and does not update the screen. Therefore
|
||||
setting this to a lower value may make Vim feel more responsive in
|
||||
some cases. On the other hand, it may also mean you receive errors
|
||||
when the compositor takes more time to respond than usual.
|
||||
|
||||
Additionally, this option is also used as the maximum timeout when
|
||||
waiting for a surface to gain focus, see |wayland-focus-steal|.
|
||||
|
||||
*'wrap'* *'nowrap'*
|
||||
'wrap' boolean (default on)
|
||||
local to window
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_390.txt* For Vim version 9.1. Last change: 2019 Dec 07
|
||||
*os_390.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Ralf Schandl
|
||||
@@ -105,9 +105,9 @@ Never tested:
|
||||
- Perl interface (|perl|)
|
||||
- Hangul input (|hangul|)
|
||||
- Encryption support (|encryption|)
|
||||
- Langmap (|'langmap'|)
|
||||
- Langmap ('langmap')
|
||||
- Python support (|Python|)
|
||||
- Right-to-left mode (|'rightleft'|)
|
||||
- Right-to-left mode ('rightleft')
|
||||
- TCL interface (|tcl|)
|
||||
...
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_amiga.txt* For Vim version 9.1. Last change: 2010 Aug 14
|
||||
*os_amiga.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -90,7 +90,7 @@ Vim for MorphOS *MorphOS*
|
||||
[this section mostly by Ali Akcaagac]
|
||||
|
||||
For the latest info about the MorphOS version:
|
||||
http://www.akcaagac.com/index_vim.html
|
||||
(dead link) akcaagac.com/index_vim.html
|
||||
|
||||
|
||||
Problems ~
|
||||
@@ -111,12 +111,12 @@ would be better to enter:
|
||||
vim --noplugins <of course you can add a file>
|
||||
|
||||
|
||||
Installation ~
|
||||
Installation of a binary archive ~
|
||||
|
||||
1) Please copy the binary 'VIM' file to c:
|
||||
2) Get the Vim runtime package from:
|
||||
2) Get the Vim runtime package from (Note: that server is no longer updated):
|
||||
|
||||
ftp://ftp.vim.org/pub/vim/amiga/vim62rt.tgz
|
||||
https://ftp.nluug.nl/pub/vim/amiga/vim90src.tgz
|
||||
|
||||
and unpack it in your 'Apps' directory of the MorphOS installation. For me
|
||||
this would create following directory hierarchy:
|
||||
@@ -143,5 +143,13 @@ Installation ~
|
||||
Cls
|
||||
;End VIM
|
||||
|
||||
Compiling~
|
||||
|
||||
You can download the Vim source code from the official Vim site:
|
||||
https://github.com/vim/vim/archive/refs/heads/master.zip
|
||||
Or using git: >
|
||||
git clone https://github.com/vim/vim.git
|
||||
|
||||
For compiling see "src/INSTALLami.txt"
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_dos.txt* For Vim version 9.1. Last change: 2024 Dec 25
|
||||
*os_dos.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -139,7 +139,7 @@ A DOS console does not support attributes like bold and underlining. You can
|
||||
set the color used in five modes with nine terminal options. Note that this
|
||||
is not necessary since you can set the color directly with the ":highlight"
|
||||
command; these options are for backward compatibility with older Vim versions.
|
||||
The |'highlight'| option specifies which of the five modes is used for which
|
||||
The 'highlight' option specifies which of the five modes is used for which
|
||||
action. >
|
||||
|
||||
:set t_mr=^V^[\|xxm start of invert mode
|
||||
@@ -231,7 +231,6 @@ writing in Unix mode (":se ff=unix").
|
||||
|
||||
Vim sets 'fileformat' automatically when 'fileformats' is not empty (which is
|
||||
the default), so you don't really have to worry about what you are doing.
|
||||
|'fileformat'| |'fileformats'|
|
||||
|
||||
If you want to edit a script file or a binary file, you should set the
|
||||
'binary' option before loading the file. Script files and binary files may
|
||||
@@ -279,10 +278,10 @@ The default for the 'sh' ('shell') option is "command.com" on Windows 95 and
|
||||
"cmd.exe" on Windows NT. If SHELL is defined, Vim uses SHELL instead, and if
|
||||
SHELL is not defined but COMSPEC is, Vim uses COMSPEC. Vim starts external
|
||||
commands with "<shell> /c <command_name>". Typing CTRL-Z starts a new command
|
||||
subshell. Return to Vim with "exit". |'shell'| |CTRL-Z|
|
||||
subshell. Return to Vim with "exit". 'shell' |CTRL-Z|
|
||||
|
||||
If you are running a third-party shell, you may need to set the
|
||||
|'shellcmdflag'| ('shcf') and |'shellquote'| ('shq') or |'shellxquote'|
|
||||
'shellcmdflag' ('shcf') and 'shellquote' ('shq') or 'shellxquote'
|
||||
('sxq') options. Unfortunately, this also depends on the version of Vim used.
|
||||
For example, with the MKS Korn shell or with bash, the values of the options
|
||||
should be:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_mac.txt* For Vim version 9.1. Last change: 2024 Nov 14
|
||||
*os_mac.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -70,7 +70,7 @@ default command-key mappings.
|
||||
On older systems files starting with a dot "." are discouraged, thus the rc
|
||||
files are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc". These files
|
||||
can be in any format (mac, dos or unix). Vim can handle any file format when
|
||||
the |'nocompatible'| option is set, otherwise it will only handle mac format
|
||||
the 'nocompatible' option is set, otherwise it will only handle mac format
|
||||
files.
|
||||
|
||||
==============================================================================
|
||||
@@ -87,7 +87,7 @@ Backspace "*d cut Visual text
|
||||
==============================================================================
|
||||
4. Mac FAQ *mac-faq*
|
||||
|
||||
On the internet: http://macvim.org/OSX/index.php#FAQ
|
||||
On the internet: https://github.com/macvim-dev/macvim/wiki/FAQ
|
||||
|
||||
Q: I can't enter non-ASCII character in Apple Terminal.
|
||||
A: Under Window Settings, Emulation, make sure that "Escape non-ASCII
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_qnx.txt* For Vim version 9.1. Last change: 2005 Mar 29
|
||||
*os_qnx.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Julian Kinraid
|
||||
@@ -34,11 +34,10 @@ features you can enable/disable.
|
||||
Vim has support for the mouse and clipboard in a pterm, if those options
|
||||
are compiled in, which they are normally.
|
||||
|
||||
The options that affect mouse support are |'mouse'| and |'ttymouse'|. When
|
||||
using the mouse, only simple left and right mouse clicking/dragging is
|
||||
supported. If you hold down shift, ctrl, or alt while using the mouse, pterm
|
||||
will handle the mouse itself. It will make a selection, separate from what
|
||||
vim's doing.
|
||||
The options that affect mouse support are 'mouse' and 'ttymouse'. When using
|
||||
the mouse, only simple left and right mouse clicking/dragging is supported.
|
||||
If you hold down shift, ctrl, or alt while using the mouse, pterm will handle
|
||||
the mouse itself. It will make a selection, separate from what vim's doing.
|
||||
|
||||
When the mouse is in use, you can press Alt-RightMouse to open the pterm menu.
|
||||
To turn the mouse off in vim, set the mouse option to nothing, set mouse=
|
||||
@@ -52,16 +51,16 @@ the terminal version will run. For more info - |gui-x11-start|
|
||||
Supported features:
|
||||
:browse command |:browse|
|
||||
:confirm command |:confirm|
|
||||
Cursor blinking |'guicursor'|
|
||||
Cursor blinking 'guicursor'
|
||||
Menus, popup menus and menu priorities |:menu|
|
||||
|popup-menu|
|
||||
|menu-priority|
|
||||
Toolbar |gui-toolbar|
|
||||
|'toolbar'|
|
||||
'toolbar'
|
||||
Font selector (:set guifont=*) |photon-fonts|
|
||||
Mouse focus |'mousefocus'|
|
||||
Mouse hide |'mousehide'|
|
||||
Mouse cursor shapes |'mouseshape'|
|
||||
Mouse focus 'mousefocus'
|
||||
Mouse hide 'mousehide'
|
||||
Mouse cursor shapes 'mouseshape'
|
||||
Clipboard |gui-clipboard|
|
||||
|
||||
Unfinished features:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_vms.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*os_vms.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL
|
||||
@@ -33,10 +33,17 @@ Vim on other operating systems.
|
||||
|
||||
2. Download files *vms-download*
|
||||
|
||||
You can download the Vim source code by ftp from the official Vim site:
|
||||
ftp://ftp.vim.org/pub/vim/
|
||||
You can download the Vim source code from the official Vim site:
|
||||
https://github.com/vim/vim/archive/refs/heads/master.zip
|
||||
Or using git: >
|
||||
git clone https://github.com/vim/vim.git
|
||||
|
||||
Older release archives are also available at:
|
||||
https://ftp.nluug.nl/pub/vim/
|
||||
Or use one of the mirrors:
|
||||
ftp://ftp.vim.org/pub/vim/MIRRORS
|
||||
https://ftp.nluug.nl/pub/vim/MIRRORS
|
||||
|
||||
Note: the ftp server has been retired and is no longer updated.
|
||||
|
||||
You can download precompiled executables from:
|
||||
http://www.polarhome.com/vim/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_win32.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*os_win32.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by George Reilly
|
||||
@@ -156,7 +156,7 @@ Examples, with [] around an argument:
|
||||
|
||||
When 'restorescreen' is set (which is the default), Vim will restore the
|
||||
original contents of the console when exiting or when executing external
|
||||
commands. If you don't want this, use ":set nors". |'restorescreen'|
|
||||
commands. If you don't want this, use ":set nors". 'restorescreen'
|
||||
|
||||
==============================================================================
|
||||
4. Using the mouse *win32-mouse*
|
||||
@@ -232,7 +232,7 @@ A. On Unix, Vim is prepared for links (symbolic or hard). A backup copy of
|
||||
protection bits are set like the original file. However, this doesn't work
|
||||
properly when working on an NFS-mounted file system where links and other
|
||||
things exist. The only way to fix this in the current version is not
|
||||
making a backup file, by ":set nobackup nowritebackup" |'writebackup'|
|
||||
making a backup file, by ":set nobackup nowritebackup" 'writebackup'
|
||||
|
||||
Q. I'm using Vim to edit a file on a Unix file server through Samba. When I
|
||||
write the file, the owner of the file is changed. Why?
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Aug 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -72,7 +72,7 @@ N Repeat the latest "/" or "?" [count] times in
|
||||
* Search forward for the [count]'th occurrence of the
|
||||
word nearest to the cursor. The word used for the
|
||||
search is the first of:
|
||||
1. the keyword under the cursor |'iskeyword'|
|
||||
1. the keyword under the cursor 'iskeyword'
|
||||
2. the first keyword after the cursor, in the
|
||||
current line
|
||||
3. the non-blank word under the cursor
|
||||
@@ -183,6 +183,17 @@ matches in every line with `:vglobal`.
|
||||
For the |:s| command the "e" flag can be used to avoid the error message
|
||||
|:s_flags|.
|
||||
|
||||
*search-options*
|
||||
The following options affect how a search is performed in Vim:
|
||||
'hlsearch' highlight matches
|
||||
'ignorecase' ignore case when searching
|
||||
'imsearch' use |IME| when entering the search pattern
|
||||
'incsearch' show matches incrementally as the pattern is typed
|
||||
'maxsearchcount' maximum number for the search count |shm-S|
|
||||
'shortmess' suppress messages |shm-s|; show search count |shm-S|
|
||||
'smartcase' override 'ignorecase' if pattern contains uppercase
|
||||
'wrapscan' continue searching from the start of the file
|
||||
|
||||
*search-offset* *{offset}*
|
||||
These commands search for the specified pattern. With "/" and "?" an
|
||||
additional offset may be given. There are two types of offsets: line offsets
|
||||
@@ -1490,34 +1501,51 @@ Finally, these constructs are unique to Perl:
|
||||
==============================================================================
|
||||
11. Fuzzy matching *fuzzy-matching*
|
||||
|
||||
Fuzzy matching refers to matching strings using a non-exact search string.
|
||||
Fuzzy matching will match a string, if all the characters in the search string
|
||||
are present anywhere in the string in the same order. Case is ignored. In a
|
||||
matched string, other characters can be present between two consecutive
|
||||
characters in the search string. If the search string has multiple words, then
|
||||
each word is matched separately. So the words in the search string can be
|
||||
present in any order in a string.
|
||||
Fuzzy matching scores how well a string matches a pattern when the pattern
|
||||
characters appear in order but not necessarily contiguously.
|
||||
|
||||
Fuzzy matching assigns a score for each matched string based on the following
|
||||
criteria:
|
||||
- The number of sequentially matching characters.
|
||||
- The number of characters (distance) between two consecutive matching
|
||||
characters.
|
||||
- Matches at the beginning of a word
|
||||
- Matches at a camel case character (e.g. Case in CamelCase)
|
||||
- Matches after a path separator or a hyphen.
|
||||
- The number of unmatched characters in a string.
|
||||
- A full/exact match is preferred.
|
||||
The matching string with the highest score is returned first.
|
||||
Example: >
|
||||
Pattern: "vim"
|
||||
Candidates: "vim" -> perfect
|
||||
"vimeo" -> good (v i m)
|
||||
"voice mail" -> weaker (v _ i _ _ _ m)
|
||||
"vintage" -> no match (no "m")
|
||||
<
|
||||
If the search string has multiple words, each word is matched separately and
|
||||
may appear in any order in the candidate. For example "get pat" matches
|
||||
"GetPattern", "PatternGet", "getPattern", "patGetter", "getSomePattern",
|
||||
"MatchpatternGet", etc.
|
||||
|
||||
For example, when you search for the "get pat" string using fuzzy matching, it
|
||||
will match the strings "GetPattern", "PatternGet", "getPattern", "patGetter",
|
||||
"getSomePattern", "MatchpatternGet" etc.
|
||||
The 'ignorecase' and 'smartcase' options do not apply, case is ignored if the
|
||||
pattern is all lower case.
|
||||
|
||||
The functions |matchfuzzy()| and |matchfuzzypos()| can be used to fuzzy search
|
||||
a string in a List of strings. The matchfuzzy() function returns a List of
|
||||
matching strings. The matchfuzzypos() functions returns the List of matches,
|
||||
the matching positions and the fuzzy match scores.
|
||||
Vim's implementation is based on the algorithm from the fzy project:
|
||||
https://github.com/jhawthorn/fzy
|
||||
|
||||
It uses dynamic programming to compute an optimal score for a given pattern
|
||||
and candidate.
|
||||
|
||||
The algorithm works in two stages:
|
||||
|
||||
1. Forward pass
|
||||
Scan the candidate left to right, tracking the best score for each
|
||||
pattern position. Matches score higher when they occur at the start
|
||||
of the candidate, the start of a word (space, underscore, dash,
|
||||
camelCase), or directly after the previous match.
|
||||
|
||||
2. Backward pass
|
||||
Start from the best-scoring end position and step back to find match
|
||||
positions, ensuring the alignment is optimal.
|
||||
|
||||
Vim extends the original algorithm to support multibyte codepoints, allowing
|
||||
correct matching for UTF-8 and other encodings.
|
||||
|
||||
Time complexity is O(pattern * candidate). Memory usage is proportional
|
||||
to the same.
|
||||
|
||||
The |matchfuzzy()| and |matchfuzzypos()| functions perform fuzzy searching in
|
||||
a List of strings. |matchfuzzy()| returns the matching strings, while
|
||||
|matchfuzzypos()| returns the matches along with their positions and scores.
|
||||
|
||||
The "f" flag of `:vimgrep` enables fuzzy matching.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Apr 27
|
||||
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
>
|
||||
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
||||
<
|
||||
@@ -349,13 +349,9 @@ after/syntax/c.vim contained in it to overwrite a user's c.vim.
|
||||
>
|
||||
g:GetLatestVimScripts_scriptaddr
|
||||
< default='https://www.vim.org/scripts/script.php?script_id='
|
||||
Override this if your system needs
|
||||
... ='http://vim.sourceforge.net/script.php?script_id='
|
||||
>
|
||||
g:GetLatestVimScripts_downloadaddr
|
||||
< default='https://www.vim.org/scripts/download_script.php?src_id='
|
||||
Override this if your system needs
|
||||
... ='http://vim.sourceforge.net/scripts/download_script.php?src_id='
|
||||
>
|
||||
g:GetLatestVimScripts_bunzip2
|
||||
< default= bunzip2
|
||||
|
||||
@@ -7,8 +7,8 @@ Original Author: Charles E. Campbell
|
||||
|
||||
Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
||||
The VIM LICENSE applies to the files in this package, including
|
||||
netrw.vim, netrw.txt, netrwSettings.vim, and
|
||||
syntax/netrw.vim. Like anything else that's free, netrw.vim and its
|
||||
netrw.vim, netrw.txt, and syntax/netrw.vim.
|
||||
Like anything else that's free, netrw.vim and its
|
||||
associated files are provided *as is* and comes with no warranty of
|
||||
any kind, either expressed or implied. No guarantees of
|
||||
merchantability. No guarantees of suitability for any purpose. By
|
||||
@@ -90,7 +90,6 @@ Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
||||
Marked Files: Grep..................................|netrw-mg|
|
||||
Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
|
||||
Marked Files: Moving................................|netrw-mm|
|
||||
Marked Files: Printing..............................|netrw-mp|
|
||||
Marked Files: Sourcing..............................|netrw-ms|
|
||||
Marked Files: Setting the Target Directory..........|netrw-mt|
|
||||
Marked Files: Tagging...............................|netrw-mT|
|
||||
@@ -99,7 +98,6 @@ Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
||||
Marked Files: Unmarking.............................|netrw-mu|
|
||||
Netrw Browser Variables.............................|netrw-browser-var|
|
||||
Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
|
||||
Netrw Settings Window...............................|netrw-settings-window|
|
||||
Obtaining A File....................................|netrw-O|
|
||||
Preview Window......................................|netrw-p|
|
||||
Previous Window.....................................|netrw-P|
|
||||
@@ -122,7 +120,7 @@ you'll need to have at least the following in your <.vimrc>:
|
||||
set nocp " 'compatible' is not set
|
||||
filetype plugin on " plugins are enabled
|
||||
<
|
||||
(see |'cp'| and |:filetype-plugin-on|)
|
||||
(see 'cp' and |:filetype-plugin-on|)
|
||||
|
||||
Netrw supports "transparent" editing of files on other machines using urls
|
||||
(see |netrw-transparent|). As an example of this, let's assume you have an
|
||||
@@ -339,10 +337,8 @@ NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
|
||||
)
|
||||
|
||||
Netrw provides a lot of variables which allow you to customize netrw to your
|
||||
preferences. One way to look at them is via the command :NetrwSettings (see
|
||||
|netrw-settings|) which will display your current netrw settings. Most such
|
||||
settings are described below, in |netrw-browser-options|, and in
|
||||
|netrw-externapp|:
|
||||
preferences. Most such settings are described below, in
|
||||
|netrw-browser-options|, and in |netrw-externapp|:
|
||||
|
||||
*b:netrw_lastfile* last file Network-read/written retained on a
|
||||
per-buffer basis (supports plain :Nw )
|
||||
@@ -670,7 +666,7 @@ However, |netrw-ssh-hack| can help with this problem.
|
||||
5. Activation *netrw-activate* {{{1
|
||||
|
||||
Network-oriented file transfers are available by default whenever Vim's
|
||||
|'nocompatible'| mode is enabled. Netrw's script files reside in your
|
||||
'nocompatible' mode is enabled. Netrw's script files reside in your
|
||||
system's plugin, autoload, and syntax directories; just the
|
||||
plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
|
||||
vim. The main script in autoload/netrw.vim is only loaded when you actually
|
||||
@@ -765,9 +761,6 @@ below, a {netfile} is a URL to a remote file.
|
||||
strings (ie. "").
|
||||
(related: |netrw-userpass|)
|
||||
|
||||
:NetrwSettings This command is described in |netrw-settings| -- used to
|
||||
display netrw settings and change netrw behavior.
|
||||
|
||||
|
||||
==============================================================================
|
||||
8. Variables and Options *netrw-var* *netrw-settings* {{{1
|
||||
@@ -1071,7 +1064,6 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
mg Apply vimgrep to marked files |netrw-mg|
|
||||
mh Toggle marked file suffices' presence on hiding list |netrw-mh|
|
||||
mm Move marked files to marked-file target directory |netrw-mm|
|
||||
mp Print marked files |netrw-mp|
|
||||
mr Mark files using a shell-style |regexp| |netrw-mr|
|
||||
mt Current browsing directory becomes markfile target |netrw-mt|
|
||||
mT Apply ctags to marked files |netrw-mT|
|
||||
@@ -1125,7 +1117,6 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
|
||||
*netrw-quickcom* *netrw-quickcoms*
|
||||
QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
|
||||
:NetrwSettings............................................|netrw-settings|
|
||||
:Ntree....................................................|netrw-ntree|
|
||||
:Explore[!] [dir] Explore directory of current file......|netrw-explore|
|
||||
:Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
|
||||
@@ -1178,7 +1169,7 @@ The :NetrwMB command is available outside of netrw buffers (once netrw has been
|
||||
invoked in the session).
|
||||
|
||||
The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
|
||||
default, its stored on the first directory on the user's |'runtimepath'|.
|
||||
default, its stored on the first directory on the user's 'runtimepath'.
|
||||
|
||||
Related Topics:
|
||||
|netrw-gb| how to return (go) to a bookmark
|
||||
@@ -1404,7 +1395,7 @@ used in that count.
|
||||
See |g:netrw_dirhistmax| for how to control the quantity of history stack
|
||||
slots. The file ".netrwhist" holds history when netrw (and vim) is not
|
||||
active. By default, its stored on the first directory on the user's
|
||||
|'runtimepath'|.
|
||||
'runtimepath'.
|
||||
|
||||
Related Topics:
|
||||
|netrw-U| changing to a successor directory
|
||||
@@ -1523,7 +1514,7 @@ DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
*netrw-:Explore*
|
||||
:Explore will open the local-directory browser on the current file's
|
||||
directory (or on directory [dir] if specified). The window will be
|
||||
split only if the file has been modified and |'hidden'| is not set,
|
||||
split only if the file has been modified and 'hidden' is not set,
|
||||
otherwise the browsing window will take over that window. Normally
|
||||
the splitting is taken horizontally.
|
||||
Also see: |netrw-:Rexplore|
|
||||
@@ -1916,9 +1907,6 @@ passwords:
|
||||
Thomer Gil has provided a hint on how to speed up netrw+ssh:
|
||||
http://thomer.com/howtos/netrw_ssh.html
|
||||
|
||||
Alex Young has several hints on speeding ssh up:
|
||||
http://usevim.com/2012/03/16/editing-remote-files/
|
||||
|
||||
|
||||
LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
|
||||
|
||||
@@ -2007,7 +1995,6 @@ The following netrw maps make use of marked files:
|
||||
|netrw-mF| Unmark marked files
|
||||
|netrw-mg| Apply vimgrep to marked files
|
||||
|netrw-mm| Move marked files to target
|
||||
|netrw-mp| Print marked files
|
||||
|netrw-ms| Netrw will source marked files
|
||||
|netrw-mt| Set target for |netrw-mm| and |netrw-mc|
|
||||
|netrw-mT| Generate tags using marked files
|
||||
@@ -2272,15 +2259,6 @@ from the current window (where one does the mf) to the target.
|
||||
|
||||
Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
|
||||
|
||||
MARKED FILES: PRINTING *netrw-mp* {{{2
|
||||
(See |netrw-mf| and |netrw-mr| for how to mark files)
|
||||
(uses the local marked file list)
|
||||
|
||||
When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
|
||||
What netrw does is open each file in a one-line window, execute hardcopy, then
|
||||
close the one-line window.
|
||||
|
||||
|
||||
MARKED FILES: SOURCING *netrw-ms* {{{2
|
||||
(See |netrw-mf| and |netrw-mr| for how to mark files)
|
||||
(uses the local marked file list)
|
||||
@@ -2418,11 +2396,11 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|
||||
*g:netrw_alto* change from above splitting to below splitting
|
||||
by setting this variable (see |netrw-o|)
|
||||
default: =&sb (see |'sb'|)
|
||||
default: =&sb (see 'sb')
|
||||
|
||||
*g:netrw_altv* change from left splitting to right splitting
|
||||
by setting this variable (see |netrw-v|)
|
||||
default: =&spr (see |'spr'|)
|
||||
default: =&spr (see 'spr')
|
||||
|
||||
*g:netrw_banner* enable/suppress the banner
|
||||
=0: suppress the banner
|
||||
@@ -2490,7 +2468,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|
||||
*g:netrw_cursor* = 2 (default)
|
||||
This option controls the use of the
|
||||
|'cursorline'| (cul) and |'cursorcolumn'|
|
||||
'cursorline' (cul) and 'cursorcolumn'
|
||||
(cuc) settings by netrw:
|
||||
|
||||
Value Thin-Long-Tree Wide
|
||||
@@ -2505,15 +2483,15 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
=8 cul U-cuc cul cuc
|
||||
|
||||
Where
|
||||
u-cul : user's |'cursorline'| initial setting used
|
||||
u-cuc : user's |'cursorcolumn'| initial setting used
|
||||
U-cul : user's |'cursorline'| current setting used
|
||||
U-cuc : user's |'cursorcolumn'| current setting used
|
||||
cul : |'cursorline'| will be locally set
|
||||
cuc : |'cursorcolumn'| will be locally set
|
||||
u-cul : user's 'cursorline' initial setting used
|
||||
u-cuc : user's 'cursorcolumn' initial setting used
|
||||
U-cul : user's 'cursorline' current setting used
|
||||
U-cuc : user's 'cursorcolumn' current setting used
|
||||
cul : 'cursorline' will be locally set
|
||||
cuc : 'cursorcolumn' will be locally set
|
||||
|
||||
The "initial setting" means the values of
|
||||
the |'cuc'| and |'cul'| settings in effect when
|
||||
the 'cuc' and 'cul' settings in effect when
|
||||
netrw last saw |g:netrw_cursor| >= 5 or when
|
||||
netrw was initially run.
|
||||
|
||||
@@ -2584,7 +2562,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
*g:netrw_ffkeep* (default: doesn't exist)
|
||||
If this variable exists and is zero, then
|
||||
netrw will not do a save and restore for
|
||||
|'fileformat'|.
|
||||
'fileformat'.
|
||||
|
||||
*g:netrw_fname_escape* =' ?&;%'
|
||||
Used on filenames before remote reading/writing
|
||||
@@ -2636,7 +2614,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
.netrwhist).
|
||||
Netrw uses |expand()|on the string.
|
||||
default: the first directory on the
|
||||
|'runtimepath'|
|
||||
'runtimepath'
|
||||
|
||||
*g:netrw_keepdir* =1 (default) keep current directory immune from
|
||||
the browsing directory.
|
||||
@@ -2735,11 +2713,6 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
rightmouse : remove file/directory
|
||||
=0: disables mouse maps
|
||||
|
||||
*g:netrw_nobeval* doesn't exist (default)
|
||||
If this variable exists, then balloon
|
||||
evaluation will be suppressed
|
||||
(see |'ballooneval'|)
|
||||
|
||||
*g:netrw_sizestyle* not defined: actual bytes (default)
|
||||
="b" : actual bytes (default)
|
||||
="h" : human-readable (ex. 5k, 4m, 3g)
|
||||
@@ -2837,7 +2810,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
netrwYacc : *.y
|
||||
|
||||
In addition, those groups mentioned in
|
||||
|'suffixes'| are also added to the special
|
||||
'suffixes' are also added to the special
|
||||
file highlighting group.
|
||||
These syntax highlighting groups are linked
|
||||
to netrwGray or Folded by default
|
||||
@@ -2915,7 +2888,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
used to specify the quantity of lines or
|
||||
columns for the new window.
|
||||
If g:netrw_winsize is zero, then a normal
|
||||
split will be made (ie. |'equalalways'| will
|
||||
split will be made (ie. 'equalalways' will
|
||||
take effect, for example).
|
||||
default: 50 (for 50%)
|
||||
|
||||
@@ -2934,7 +2907,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
codepoint; a hard tab is one; wide and
|
||||
narrow CJK are one each; etc.)
|
||||
=3: virtual length (counting tabs as anything
|
||||
between 1 and |'tabstop'|, wide CJK as 2
|
||||
between 1 and 'tabstop', wide CJK as 2
|
||||
rather than 1, Arabic alif as zero when
|
||||
immediately preceded by lam, one
|
||||
otherwise, etc)
|
||||
@@ -2955,17 +2928,6 @@ file you edit; this apparently also applies to directories. In other words,
|
||||
autochdir sets the current directory to that containing the "file" (even if
|
||||
that "file" is itself a directory).
|
||||
|
||||
NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
|
||||
|
||||
With the NetrwSettings.vim plugin, >
|
||||
:NetrwSettings
|
||||
will bring up a window with the many variables that netrw uses for its
|
||||
settings. You may change any of their values; when you save the file, the
|
||||
settings therein will be used. One may also press "?" on any of the lines for
|
||||
help on what each of the variables do.
|
||||
|
||||
(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
|
||||
|
||||
|
||||
==============================================================================
|
||||
OBTAINING A FILE *netrw-obtain* *netrw-O* {{{2
|
||||
@@ -3037,7 +2999,7 @@ These will:
|
||||
Related: if you like this idea, you may also find :Lexplore
|
||||
(|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
|
||||
|
||||
Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
|
||||
Also see: |g:netrw_chgwin| |netrw-P| 'previewwindow' |CTRL-W_z| |:pclose|
|
||||
|
||||
|
||||
PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
|
||||
@@ -3435,7 +3397,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
not by netrw, and there appears to be no way to work around
|
||||
it. Coupled with the default cmdheight of 1, this message
|
||||
causes the "Press ENTER..." prompt. So: read |hit-enter|;
|
||||
I also suggest that you set your |'cmdheight'| to 2 (or more) in
|
||||
I also suggest that you set your 'cmdheight' to 2 (or more) in
|
||||
your <.vimrc> file.
|
||||
|
||||
*netrw-p10*
|
||||
@@ -3554,7 +3516,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
I expect both buffers to exist, but only the last one does.
|
||||
|
||||
(Lance) Problem is caused by "set autochdir" in .vimrc.
|
||||
(drchip) I am able to duplicate this problem with |'acd'| set.
|
||||
(drchip) I am able to duplicate this problem with 'acd' set.
|
||||
It appears that the buffers are not exactly closed;
|
||||
a ":ls!" will show them (although ":ls" does not).
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
*pi_tar.txt* For Vim version 9.1. Last change: 2025 Mar 16
|
||||
*pi_tar.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
+====================+
|
||||
| Tar File Interface |
|
||||
+====================+
|
||||
|
||||
Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
(remove NOSPAM from Campbell's email first)
|
||||
Original Author: Charles E. Campbell
|
||||
Copyright 2005-2017: *tar-copyright*
|
||||
The VIM LICENSE (see |copyright|) applies to the files in this
|
||||
package, including tarPlugin.vim, tar.vim, and pi_tar.txt. Like
|
||||
@@ -39,9 +38,9 @@ Copyright 2005-2017: *tar-copyright*
|
||||
:Vimuntar [vimhome]
|
||||
|
||||
This command copies, if necessary, the tarball to the .vim or vimfiles
|
||||
directory using the first writable directory in the |'runtimepath'|
|
||||
when no [vimhome] is specified. Otherwise, the [vimhome] argument
|
||||
allows the user to specify that directory, instead.
|
||||
directory using the first writable directory in the 'runtimepath' when
|
||||
no [vimhome] is specified. Otherwise, the [vimhome] argument allows
|
||||
the user to specify that directory, instead.
|
||||
|
||||
The copy is done using the command in *g:tar_copycmd* , which is >
|
||||
cp for cygwin, unix, macunix
|
||||
@@ -61,7 +60,7 @@ Copyright 2005-2017: *tar-copyright*
|
||||
the file mentioned in the tarball. If the current directory is not
|
||||
correct for that path, :TarDiff will fail to find the associated file.
|
||||
|
||||
If the [filename] is given, that that filename (and path) will be used
|
||||
If the [filename] is given, that filename (and path) will be used
|
||||
to specify the associated file.
|
||||
|
||||
|
||||
@@ -95,24 +94,25 @@ Copyright 2005-2017: *tar-copyright*
|
||||
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
|
||||
*g:tar_cmd* "tar" the name of the tar program
|
||||
*g:tar_nomax* 0 if true, file window will not be maximized
|
||||
*g:tar_secure* undef if exists:
|
||||
"--"s will be used to prevent unwanted
|
||||
option expansion in tar commands.
|
||||
Please be sure that your tar command
|
||||
accepts "--"; Posix compliant tar
|
||||
utilities do accept them.
|
||||
if not exists:
|
||||
The tar plugin will reject any tar
|
||||
files or member files that begin with
|
||||
"-"
|
||||
Not all tar's support the "--" which is why
|
||||
it isn't default.
|
||||
*g:tar_writeoptions* "uf" used to update/replace a file
|
||||
|
||||
|
||||
==============================================================================
|
||||
4. History *tar-history*
|
||||
|
||||
unreleased:
|
||||
Jul 13, 2025 * drop leading /
|
||||
May 19, 2025 * restore working directory after read/write
|
||||
Apr 16, 2025 * decouple from netrw by adding s:WinPath()
|
||||
instead of shelling out to file(1)
|
||||
Mar 02, 2025 * determine the compression using readblob()
|
||||
Mar 02, 2025 * escape the filename before using :read
|
||||
Mar 01, 2025 * fix syntax error in tar#Read()
|
||||
Feb 28, 2025 * add support for bzip3 (#16755)
|
||||
Feb 06, 2025 * add support for lz4 (#16591)
|
||||
Nov 11, 2024 * support permissions (#7379)
|
||||
Feb 19, 2024 * announce adoption
|
||||
Jan 08, 2024 * fix a few problems (#138331, #12637, #8109)
|
||||
v31 Apr 02, 2017 * (klartext) reported that browsing encrypted
|
||||
files in a zip archive created unencrypted
|
||||
swap files. I am applying a similar fix
|
||||
@@ -173,7 +173,7 @@ Copyright 2005-2017: *tar-copyright*
|
||||
v2 * converted to use Vim7's new autoload feature
|
||||
by Bram Moolenaar
|
||||
v1 (original) * Michael Toren
|
||||
(see http://michael.toren.net/code/
|
||||
(see michael.toren.net/code/
|
||||
link seems dead)
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_vimball.txt* For Vim version 9.1. Last change: 2016 Apr 11
|
||||
*pi_vimball.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
----------------
|
||||
Vimball Archiver
|
||||
@@ -51,7 +51,7 @@ Copyright: (c) 2004-2015 by Charles E. Campbell *Vimball-copyright*
|
||||
:RmVimball someplugin
|
||||
< This operation is not at all easy for zips and tarballs, for example.
|
||||
|
||||
Vimball examines the user's |'runtimepath'| to determine where to put
|
||||
Vimball examines the user's 'runtimepath' to determine where to put
|
||||
the scripts. The first directory mentioned on the runtimepath is
|
||||
usually used if possible. Use >
|
||||
:echo &rtp
|
||||
@@ -66,7 +66,7 @@ MAKING A VIMBALL *:MkVimball*
|
||||
|
||||
The range is composed of lines holding paths to files to be included
|
||||
in your new vimball, omitting the portion of the paths that is
|
||||
normally specified by the runtimepath (|'rtp'|). As an example: >
|
||||
normally specified by the runtimepath ('rtp'). As an example: >
|
||||
plugin/something.vim
|
||||
doc/something.txt
|
||||
< using >
|
||||
@@ -77,7 +77,7 @@ MAKING A VIMBALL *:MkVimball*
|
||||
"filename.vba" file already exists, then MkVimball will issue a
|
||||
warning and not create the file. Note that these paths are relative
|
||||
to your .vim (vimfiles) directory, and the files should be in that
|
||||
directory. The vimball plugin normally uses the first |'runtimepath'|
|
||||
directory. The vimball plugin normally uses the first 'runtimepath'
|
||||
directory that exists as a prefix; don't use absolute paths, unless
|
||||
the user has specified such a path.
|
||||
|
||||
@@ -110,7 +110,7 @@ MAKING DIRECTORIES VIA VIMBALLS *g:vimball_mkdir*
|
||||
|
||||
CONTROLLING THE VIMBALL EXTRACTION DIRECTORY *g:vimball_home*
|
||||
|
||||
You may override the use of the |'runtimepath'| by specifying a
|
||||
You may override the use of the 'runtimepath' by specifying a
|
||||
variable, g:vimball_home.
|
||||
|
||||
*vimball-extract*
|
||||
@@ -138,7 +138,7 @@ MANUALLY INVOKING VIMBALL EXTRACTION *:UseVimball*
|
||||
vimball. One may choose to execute it by hand instead of sourcing
|
||||
the vimball; one may also choose to specify a path for the
|
||||
installation, thereby overriding the automatic choice of the first
|
||||
existing directory on the |'runtimepath'|.
|
||||
existing directory on the 'runtimepath'.
|
||||
|
||||
REMOVING A VIMBALL *:RmVimball*
|
||||
|
||||
@@ -146,8 +146,8 @@ REMOVING A VIMBALL *:RmVimball*
|
||||
|
||||
This command removes all files generated by the specified vimball
|
||||
(but not any directories it may have made). One may choose a path
|
||||
for de-installation, too (see |'runtimepath'|); otherwise, the
|
||||
default is the first existing directory on the |'runtimepath'|.
|
||||
for de-installation, too (see 'runtimepath'); otherwise, the default
|
||||
is the first existing directory on the 'runtimepath'.
|
||||
To implement this, a file (.VimballRecord) is made in that directory
|
||||
containing a record of what files need to be removed for all vimballs
|
||||
used thus far.
|
||||
@@ -188,7 +188,7 @@ WINDOWS *vimball-windows*
|
||||
prepending the current directory to it.
|
||||
33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
|
||||
* Changed silent! to sil! (shorter)
|
||||
* Safed |'swf'| setting (during vimball extraction,
|
||||
* Safed 'swf' setting (during vimball extraction,
|
||||
its now turned off)
|
||||
32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and
|
||||
:so someplugin.vba.gz (and the other supported
|
||||
@@ -247,7 +247,7 @@ WINDOWS *vimball-windows*
|
||||
14 : May 26, 2006 * bugfixes
|
||||
13 : May 01, 2006 * exists("&acd") used to determine if the acd
|
||||
option exists
|
||||
12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
|
||||
12 : May 01, 2006 * bugfix - the 'acd' option is not always defined
|
||||
11 : Apr 27, 2006 * VimballList would create missing subdirectories that
|
||||
the vimball specified were needed. Fixed.
|
||||
10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 9.1. Last change: 2025 Apr 02
|
||||
*pi_zip.txt* For Vim version 9.1. Last change: 2025 Jul 15
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -111,6 +111,18 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
|
||||
==============================================================================
|
||||
4. History *zip-history* {{{1
|
||||
unreleased:
|
||||
Jul 12, 2025 * drop ../ on write to prevent path traversal attacks
|
||||
Mar 11, 2025 * handle filenames with leading '-' correctly
|
||||
Aug 21, 2024 * simplify condition to detect MS-Windows
|
||||
Aug 18, 2024 * correctly handle special globbing chars
|
||||
Aug 05, 2024 * clean-up and make it work with shellslash on Windows
|
||||
Aug 05, 2024 * workaround for the FreeBSD's unzip
|
||||
Aug 04, 2024 * escape '[' in name of file to be extracted
|
||||
Jul 30, 2024 * fix opening remote zipfile
|
||||
Jul 24, 2024 * use delete() function
|
||||
Jul 23, 2024 * fix 'x' command
|
||||
Jun 16, 2024 * handle whitespace on Windows properly (#14998)
|
||||
v33 Dec 07, 2021 * *.xlam mentioned twice in zipPlugin
|
||||
v32 Oct 22, 2021 * to avoid an issue with a vim 8.2 patch, zipfile: has
|
||||
been changed to zipfile:// . This often shows up
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*print.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*print.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -444,8 +444,8 @@ you need to define your own PostScript font encoding vector. Details on how
|
||||
to define a font encoding vector is beyond the scope of this help file, but
|
||||
you can find details in the PostScript Language Reference Manual, 3rd Edition,
|
||||
published by Addison-Wesley and available in PDF form at
|
||||
http://www.adobe.com/. The following describes what you need to do for Vim to
|
||||
locate and use your print character encoding.
|
||||
https://www.adobe.com/. The following describes what you need to do for Vim
|
||||
to locate and use your print character encoding.
|
||||
|
||||
i. Decide on a unique name for your encoding vector, one that does not clash
|
||||
with any of the recognized or standard encoding names that Vim uses (see
|
||||
@@ -523,7 +523,7 @@ It is possible to define your own multibyte character set although this
|
||||
should not be attempted lightly. A discussion on the process if beyond the
|
||||
scope of these help files. You can find details on CMap (character map) files
|
||||
in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
|
||||
available from http://www.adobe.com as a PDF file.
|
||||
available from https://www.adobe.com as a PDF file.
|
||||
|
||||
==============================================================================
|
||||
6. PostScript Printing Troubleshooting *postscript-print-trouble*
|
||||
@@ -628,7 +628,7 @@ OpenVMS
|
||||
- Is apparently supported in the main code now (untested).
|
||||
See (link seems dead):
|
||||
|
||||
http://wwwthep.physik.uni-mainz.de/~plass/gv/
|
||||
wwwthep.physik.uni-mainz.de/~plass/gv/
|
||||
|
||||
MS-Windows
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Apr 06
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1048,8 +1048,8 @@ commands can be combined to create a NewGrep command: >
|
||||
|
||||
{pattern} is a Vim search pattern. Instead of
|
||||
enclosing it in / any non-ID character (see
|
||||
|'isident'|) can be used, so long as it does not
|
||||
appear in {pattern}.
|
||||
'isident') can be used, so long as it does not appear
|
||||
in {pattern}.
|
||||
'ignorecase' applies. To overrule it put |/\c| in the
|
||||
pattern to ignore case or |/\C| to match case.
|
||||
'smartcase' is not used.
|
||||
@@ -1675,8 +1675,6 @@ Useful values for the 'makeprg' options therefore are:
|
||||
setlocal makeprg=./alltests.py " Run a testsuite
|
||||
setlocal makeprg=python\ %:S " Run a single testcase
|
||||
|
||||
Also see http://vim.sourceforge.net/tip_view.php?tip_id=280.
|
||||
|
||||
PYTEST COMPILER *compiler-pytest*
|
||||
|
||||
Commonly used compiler options can be added to 'makeprg' by setting the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Jun 04
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -607,6 +607,8 @@ Short explanation of each option: *option-list*
|
||||
'arabic' 'arab' for Arabic as a default second language
|
||||
'arabicshape' 'arshape' do shaping for Arabic characters
|
||||
'autochdir' 'acd' change directory to the file in the current window
|
||||
'autocomplete' 'ac' enable automatic completion in insert mode
|
||||
'autocompletedelay' 'acl' delay in msec before menu appears after typing
|
||||
'autoindent' 'ai' take indent for new line from previous line
|
||||
'autoread' 'ar' autom. read file when changed outside of Vim
|
||||
'autoshelldir' 'asd' change directory to the shell's current directory
|
||||
@@ -646,6 +648,7 @@ Short explanation of each option: *option-list*
|
||||
'cinscopedecls' 'cinsd' words that are recognized by 'cino-g'
|
||||
'cinwords' 'cinw' words where 'si' and 'cin' add an indent
|
||||
'clipboard' 'cb' use the clipboard as the unnamed register
|
||||
'clipmethod' 'cpm' specify order of what clipboard methods to use
|
||||
'cmdheight' 'ch' number of lines to use for the command-line
|
||||
'cmdwinheight' 'cwh' height of the command-line window
|
||||
'colorcolumn' 'cc' columns to highlight
|
||||
@@ -681,6 +684,7 @@ Short explanation of each option: *option-list*
|
||||
'delcombine' 'deco' delete combining characters on their own
|
||||
'dictionary' 'dict' list of file names used for keyword completion
|
||||
'diff' use diff mode for the current window
|
||||
'diffanchors' 'dia' list of {address} to force anchoring of a diff
|
||||
'diffexpr' 'dex' expression used to obtain a diff file
|
||||
'diffopt' 'dip' options for using diff mode
|
||||
'digraph' 'dg' enable the entering of digraphs in Insert mode
|
||||
@@ -920,7 +924,7 @@ Short explanation of each option: *option-list*
|
||||
'smartindent' 'si' smart autoindenting for C programs
|
||||
'smarttab' 'sta' <Tab> in leading whitespace indents by 'shiftwidth'
|
||||
'smoothscroll' 'sms' scroll by screen lines when 'wrap' is set
|
||||
'softtabstop' 'sts' number of spaces that <Tab> uses while editing
|
||||
'softtabstop' 'sts' number of columns between two soft tab stops
|
||||
'spell' enable spell checking
|
||||
'spellcapcheck' 'spc' pattern to locate end of a sentence
|
||||
'spellfile' 'spf' files where |zg| and |zw| store words
|
||||
@@ -942,7 +946,7 @@ Short explanation of each option: *option-list*
|
||||
'tabclose' 'tcl' which tab page to focus when closing a tab
|
||||
'tabline' 'tal' custom format for the console tab pages line
|
||||
'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all"
|
||||
'tabstop' 'ts' number of spaces that <Tab> in file uses
|
||||
'tabstop' 'ts' number of columns between two tab stops
|
||||
'tagbsearch' 'tbs' use binary searching in tags files
|
||||
'tagcase' 'tc' how to handle case when searching in tags files
|
||||
'tagfunc' 'tfu' function to get list of tag matches
|
||||
@@ -987,8 +991,8 @@ Short explanation of each option: *option-list*
|
||||
'undoreload' 'ur' max nr of lines to save for undo on a buffer reload
|
||||
'updatecount' 'uc' after this many characters flush swap file
|
||||
'updatetime' 'ut' after this many milliseconds flush swap file
|
||||
'varsofttabstop' 'vsts' a list of number of spaces when typing <Tab>
|
||||
'vartabstop' 'vts' a list of number of spaces for <Tab>s
|
||||
'varsofttabstop' 'vsts' a list of number of columns between soft tab stops
|
||||
'vartabstop' 'vts' a list of number of columns between tab stops
|
||||
'verbose' 'vbs' give informative messages
|
||||
'verbosefile' 'vfile' file to write messages in
|
||||
'viewdir' 'vdir' directory where to store files with :mkview
|
||||
@@ -1018,6 +1022,9 @@ Short explanation of each option: *option-list*
|
||||
'winminwidth' 'wmw' minimal number of columns for any window
|
||||
'winptydll' name of the winpty dynamic library
|
||||
'winwidth' 'wiw' minimal number of columns for current window
|
||||
'wlseat' 'wse' the Wayland seat to use
|
||||
'wlsteal' 'wst' allow focus stealing functionality for Wayland
|
||||
'wltimeoutlen' 'wtm' timeout to use when polling in Wayland
|
||||
'wrap' long lines wrap and continue on the next line
|
||||
'wrapmargin' 'wm' chars from the right where wrapping starts
|
||||
'wrapscan' 'ws' searches wrap around the end of the file
|
||||
@@ -1454,7 +1461,7 @@ Context-sensitive completion on the command-line:
|
||||
------------------------------------------------------------------------------
|
||||
*Q_fo* Folding
|
||||
|
||||
|'foldmethod'| set foldmethod=manual manual folding
|
||||
'foldmethod' set foldmethod=manual manual folding
|
||||
set foldmethod=indent folding by indent
|
||||
set foldmethod=expr folding by 'foldexpr'
|
||||
set foldmethod=syntax folding by syntax regions
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*remote.txt* For Vim version 9.1. Last change: 2022 Feb 17
|
||||
*remote.txt* For Vim version 9.1. Last change: 2025 Aug 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -61,7 +61,10 @@ The following command line arguments are available:
|
||||
--servername {name} Become the server {name}. When used together
|
||||
with one of the --remote commands: connect to
|
||||
server {name} instead of the default (see
|
||||
below). The name used will be uppercase.
|
||||
below). The name used will be uppercase. If
|
||||
using the socketserver, you can specify a
|
||||
path, see |socketserver-name| for more
|
||||
details.
|
||||
*--remote-send*
|
||||
--remote-send {keys} Send {keys} to server and exit. The {keys}
|
||||
are not mapped. Special key names are
|
||||
@@ -72,6 +75,12 @@ The following command line arguments are available:
|
||||
on stdout.
|
||||
*--serverlist*
|
||||
--serverlist Output a list of server names.
|
||||
*--clientserver*
|
||||
--clientserver {method} Use the specified method {method} as the
|
||||
backend for clientserver functionality. Can
|
||||
either be "socket" or "x11".
|
||||
{only available when Vim is compiled with both
|
||||
|+X11| and |+socketserver| features}
|
||||
|
||||
|
||||
Examples ~
|
||||
@@ -105,7 +114,8 @@ specified name is not available, a postfix is applied until a free name is
|
||||
encountered, i.e. "gvim1" for the second invocation of gvim on a particular
|
||||
X-server. The resulting name is available in the servername builtin variable
|
||||
|v:servername|. The case of the server name is ignored, thus "gvim" and
|
||||
"GVIM" are considered equal.
|
||||
"GVIM" are considered equal. Note if a socket server is being used, there are
|
||||
some differences, see |socketserver-differences|.
|
||||
|
||||
When Vim is invoked with --remote, --remote-wait or --remote-send it will try
|
||||
to locate the server name determined by the invocation name and --servername
|
||||
@@ -119,7 +129,8 @@ itself. This way it is not necessary to know whether gvim is already started
|
||||
when sending command to it.
|
||||
|
||||
The --serverlist argument will cause Vim to print a list of registered command
|
||||
servers on the standard output (stdout) and exit.
|
||||
servers on the standard output (stdout) and exit. If a socket server is being
|
||||
used, there are caveats, see |socketserver-differences|.
|
||||
*{server}*
|
||||
The {server} argument is used by several functions. When this is an empty
|
||||
string then on Unix the default server name is used, which is "GVIM". On
|
||||
@@ -206,4 +217,64 @@ When using gvim, the --remote-wait only works properly this way: >
|
||||
|
||||
start /w gvim --remote-wait file.txt
|
||||
<
|
||||
==============================================================================
|
||||
3. Socket server specific items *socketserver-clientserver*
|
||||
*E1563* *E1564* *E1565* *E1566* *E1567*
|
||||
|
||||
The communication between client and server is done using Unix domain sockets.
|
||||
These sockets are either placed in these directories in the following order of
|
||||
availability:
|
||||
1. "$XDG_RUTIME_DIR/vim" if $XDG_RUNTIME_DIR is set in the environment.
|
||||
2. "$TMPDIR/vim-[uid]", where "[uid]" is the uid of the user. This
|
||||
directory will have the access permissions set to 700 so only the user
|
||||
can read or write from/to it. If $TMPDIR is not set, "/tmp" is used.
|
||||
|
||||
*socketserver-name*
|
||||
When specifying the server id/name, it can be taken as a generic name or an
|
||||
absolute or relative path. If the server id starts with either a "/"
|
||||
(absolute) or "./" | "../" (relative), then it is taken as path to the socket.
|
||||
Otherwise the server id will be the filename of the socket which will be
|
||||
placed in the above common directories. Note that a server id/name can only
|
||||
contain slashes "/" if it is taken as a path, so names such as "abc/dir" will
|
||||
be invalid.
|
||||
|
||||
Socket server functionality is available in both GTK GUI and terminal versions of
|
||||
Vim. Unless Vim is compiled with |+autoservername| feature, the socket server
|
||||
will have to started explicitly, just like X11, even in the GUI.
|
||||
|
||||
If Vim crashes or does not exit cleanly, the socket server will not remove the
|
||||
socket file and it will be left around. This is generally not a problem,
|
||||
because if a socket name is taken, Vim checks if the socket in its place is
|
||||
dead (not attached to any process), and can replace it instead of finding a
|
||||
new name.
|
||||
|
||||
To send commands to a Vim socket server from another application, read the
|
||||
source file src/os_unix.c, there is detailed description of the protocol used.
|
||||
|
||||
*socketserver-differences*
|
||||
Most of the functionality is the same as X11, however unlike X11, where the
|
||||
client does not need to be a server in order to communicate with another
|
||||
server, the socket server requires the server to be running even as a client.
|
||||
The exception is |serverlist()| or the |--serverlist| argument, which does not
|
||||
require the server to be running.
|
||||
|
||||
Additionally, the server id or client id will not be a number like X11 or
|
||||
MS-Windows (shown in hex representation), instead it is the absolute path to
|
||||
the socket. This can be seen via the |v:servername| variable.
|
||||
|
||||
The |--serverlist| argument will act just like X11, however it only checks the
|
||||
given common directories above. If a custom path is used for a socket, it
|
||||
will not be detected, such as a path either not in $XDG_RUNTIME_DIR or
|
||||
<$TMPDIR or /tmp>/vim of the |--serverlist| Vim process.
|
||||
|
||||
If you have both |+socketserver| and |+X11| compiled, you will need to add
|
||||
|--clientserver| set to "socket" in combination with |--serverlist| to list
|
||||
the available servers. You cannot list both types of backends in one command.
|
||||
|
||||
*socketserver-x11*
|
||||
If Vim is compiled with both |+X11| and |+socketserver|, then deciding which
|
||||
backend to use is done at startup time, via the |--clientserver| argument. By
|
||||
default if it is not specified, then X11 will be used. A Vim instance using a
|
||||
socket server cannot communicate with one using X11.
|
||||
|
||||
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 9.1. Last change: 2024 Oct 16
|
||||
*repeat.txt* For Vim version 9.1. Last change: 2025 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -233,7 +233,12 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
Examples: >
|
||||
:4,5source
|
||||
:10,18source ++clear
|
||||
<
|
||||
|
||||
< Implementation detail: When sourcing a [range] of
|
||||
lines that falls inside a folded region, the range
|
||||
will be adjusted to the start and end of the fold,
|
||||
but only if a two line specifiers range was used.
|
||||
|
||||
*:source!*
|
||||
:so[urce]! {file} Read Vim commands from {file}. These are commands
|
||||
that are executed from Normal mode, like you type
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*spell.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -218,7 +218,7 @@ CTRL-X s to find suggestions. This works like Insert mode completion. Use
|
||||
CTRL-N to use the next suggestion, CTRL-P to go back. |i_CTRL-X_s|
|
||||
|
||||
The 'spellsuggest' option influences how the list of suggestions is generated
|
||||
and sorted. See |'spellsuggest'|.
|
||||
and sorted. See 'spellsuggest'.
|
||||
|
||||
The 'spellcapcheck' option is used to check the first word of a sentence
|
||||
starts with a capital. This doesn't work for the first word in the file.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sponsor.txt* For Vim version 9.1. Last change: 2024 Aug 14
|
||||
*sponsor.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -140,7 +140,8 @@ Are the donations tax deductible?
|
||||
|
||||
That depends on your country. The donations to help the children in |Uganda|
|
||||
are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF
|
||||
website http://iccf-holland.org/donate.html.
|
||||
website https://iccf-holland.org/donate.html (Note: this process is currently
|
||||
undergoing some changes and will be done differently in the future).
|
||||
|
||||
|
||||
Can you send me a bill?
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.1. Last change: 2025 Feb 27
|
||||
*starting.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -505,7 +505,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
Using the "-u" argument with another argument than DEFAULTS
|
||||
has the side effect that the 'compatible' option will be on by
|
||||
default. This can have unexpected effects. See
|
||||
|'compatible'|.
|
||||
'compatible'.
|
||||
|
||||
*-U* *E230*
|
||||
-U {gvimrc} The file {gvimrc} is read for initializations when the GUI
|
||||
@@ -559,6 +559,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
client-server messages), call the |serverlist()| function.
|
||||
This does not enable the XSMP handler though.
|
||||
|
||||
*-Y*
|
||||
-Y Do not try connecting to the Wayland compositor. Is only
|
||||
relevant for Unix when compiled with the |+wayland| feature,
|
||||
otherwise it's ignored. Note that this will make any feature
|
||||
that uses Wayland unavailable, such as the clipboard.
|
||||
|
||||
*-s*
|
||||
-s {scriptin} The script file "scriptin" is read. The characters in the
|
||||
file are interpreted as if you had typed them. The same can
|
||||
@@ -1374,7 +1380,7 @@ these steps:
|
||||
You need to escape special characters, esp. spaces.
|
||||
|
||||
Note that when you create a .vimrc file, this can influence the 'compatible'
|
||||
option, which has several side effects. See |'compatible'|.
|
||||
option, which has several side effects. See 'compatible'.
|
||||
":mkvimrc", ":mkexrc" and ":mksession" write the command to set or reset the
|
||||
'compatible' option to the output file first, because of these side effects.
|
||||
|
||||
@@ -1660,7 +1666,7 @@ VIMINFO FILE NAME *viminfo-file-name*
|
||||
is not set, "$VIM\_viminfo" is used. When $VIM is also not set,
|
||||
"c:\_viminfo" is used.
|
||||
- The 'n' flag in the 'viminfo' option can be used to specify another viminfo
|
||||
file name |'viminfo'|.
|
||||
file name 'viminfo'.
|
||||
- The "-i" Vim argument can be used to set another file name, |-i|. When the
|
||||
file name given is "NONE" (all uppercase), no viminfo file is ever read or
|
||||
written. Also not for the commands below!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Jun 03
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Aug 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -262,6 +262,9 @@ you can see the actual color, except for "Ignore"):
|
||||
Debug debugging statements
|
||||
|
||||
*Underlined text that stands out, HTML links
|
||||
*Bold bold text
|
||||
*Italic italic text
|
||||
*BoldItalic bold and italic text
|
||||
|
||||
*Ignore left blank, hidden |hl-Ignore|
|
||||
|
||||
@@ -1113,6 +1116,23 @@ in the "after" directory in 'runtimepath'. For Unix this would be
|
||||
syn sync fromstart
|
||||
set foldmethod=syntax
|
||||
|
||||
CANGJIE *cangjie.vim* *ft-cangjie-syntax*
|
||||
|
||||
This file provides syntax highlighting for the Cangjie programming language, a
|
||||
new-generation language oriented to full-scenario intelligence.
|
||||
|
||||
All highlighting is enabled by default. To disable highlighting for a
|
||||
specific group, set the corresponding variable to 0 in your |vimrc|.
|
||||
All options to disable highlighting are: >
|
||||
:let g:cangjie_comment_color = 0
|
||||
:let g:cangjie_identifier_color = 0
|
||||
:let g:cangjie_keyword_color = 0
|
||||
:let g:cangjie_macro_color = 0
|
||||
:let g:cangjie_number_color = 0
|
||||
:let g:cangjie_operator_color = 0
|
||||
:let g:cangjie_string_color = 0
|
||||
:let g:cangjie_type_color = 0
|
||||
|
||||
CH *ch.vim* *ft-ch-syntax*
|
||||
|
||||
C/C++ interpreter. Ch has similar syntax highlighting to C and builds upon
|
||||
@@ -1573,15 +1593,47 @@ ERLANG *erlang.vim* *ft-erlang-syntax*
|
||||
Erlang is a functional programming language developed by Ericsson. Files with
|
||||
the following extensions are recognized as Erlang files: erl, hrl, yaws.
|
||||
|
||||
The BIFs (built-in functions) are highlighted by default. To disable this,
|
||||
put the following line in your vimrc: >
|
||||
Vim highlights triple-quoted docstrings as comments by default.
|
||||
|
||||
:let g:erlang_highlight_bifs = 0
|
||||
If you want triple-quoted docstrings highlighted as Markdown, add the
|
||||
following line to your |.vimrc|: >
|
||||
|
||||
To enable highlighting some special atoms, put this in your vimrc: >
|
||||
:let g:erlang_use_markdown_for_docs = 1
|
||||
|
||||
:let g:erlang_highlight_special_atoms = 1
|
||||
The plain text inside the docstrings (that is, the characters that are not
|
||||
highlighted by the Markdown syntax) is still highlighted as a comment.
|
||||
|
||||
If you want to highlight the plain text inside the docstrings using a
|
||||
different highlight group, add the following line to your |.vimrc| (the
|
||||
example highlights plain text using the String highlight group): >
|
||||
|
||||
:let g:erlang_docstring_default_highlight = 'String'
|
||||
|
||||
If you don't enable Markdown, this line highlights the full docstrings
|
||||
according to the specified highlight group.
|
||||
|
||||
Use the following line to disable highlighting for the plain text: >
|
||||
|
||||
:let g:erlang_docstring_default_highlight = ''
|
||||
|
||||
Configuration examples: >
|
||||
|
||||
" Highlight docstrings as Markdown.
|
||||
:let g:erlang_use_markdown_for_docs = 1
|
||||
|
||||
" 1. Highlight Markdown elements in docstrings as Markdown.
|
||||
" 2. Highlight the plain text in docstrings as String.
|
||||
:let g:erlang_use_markdown_for_docs = 1
|
||||
:let g:erlang_docstring_default_highlight = 'String'
|
||||
|
||||
" Highlight docstrings as strings (no Markdown).
|
||||
:let g:erlang_docstring_default_highlight = 'String'
|
||||
|
||||
" 1. Highlight Markdown elements in docstrings as Markdown.
|
||||
" 2. Don't highlight the plain text in docstrings.
|
||||
:let g:erlang_use_markdown_for_docs = 1
|
||||
:let g:erlang_docstring_default_highlight = ''
|
||||
<
|
||||
|
||||
ELIXIR *elixir.vim* *ft-elixir-syntax*
|
||||
|
||||
@@ -1602,7 +1654,7 @@ Elixir.
|
||||
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
|
||||
|
||||
FlexWiki is an ASP.NET-based wiki package which used to be available at
|
||||
http://www.flexwiki.com
|
||||
www.flexwiki.com
|
||||
NOTE: This site currently doesn't work, on Wikipedia is mentioned that
|
||||
development stopped in 2009.
|
||||
|
||||
@@ -1927,7 +1979,7 @@ are read during initialization) >
|
||||
:let html_my_rendering=1
|
||||
|
||||
If you'd like to see an example download mysyntax.vim at
|
||||
http://www.fleiner.com/vim/download.html
|
||||
https://www.fleiner.com/vim/download.html
|
||||
|
||||
You can also disable this rendering by adding the following line to your
|
||||
vimrc file: >
|
||||
@@ -2196,6 +2248,15 @@ Certain modifiers are incompatible with each other, e.g. `abstract` and
|
||||
and can be differently highlighted as a group than other modifiers with >
|
||||
:hi link javaConceptKind NonText
|
||||
|
||||
All instances of variable-width lookbehind assertions (|/\@<!| and |/\@<=|),
|
||||
resorted to in syntax item definitions, are confined to arbitrary byte counts.
|
||||
Another arbitrary value can be selected for a related group of definitions.
|
||||
For example: >
|
||||
:let g:java_lookbehind_byte_counts = {'javaMarkdownCommentTitle': 240}
|
||||
Where each key name of this dictionary is the name of a syntax item. The use
|
||||
of these assertions in syntax items may vary among revisions, so no definitive
|
||||
set of supported key names is committed to.
|
||||
|
||||
If you notice highlighting errors while scrolling backwards, which are fixed
|
||||
when redrawing with CTRL-L, try setting the "g:java_minlines" variable to
|
||||
a larger number: >
|
||||
@@ -2308,7 +2369,7 @@ the parentheses and backquoted parentheses. Because of the quantity of
|
||||
colorization levels, unlike non-rainbow highlighting, the rainbow mode
|
||||
specifies its highlighting using ctermfg and guifg, thereby bypassing the
|
||||
usual color scheme control using standard highlighting groups. The actual
|
||||
highlighting used depends on the dark/bright setting (see |'bg'|).
|
||||
highlighting used depends on the dark/bright setting (see 'bg').
|
||||
|
||||
|
||||
LITE *lite.vim* *ft-lite-syntax*
|
||||
@@ -3878,7 +3939,7 @@ always accept such use of @.
|
||||
*tex-cchar* *tex-cole* *tex-conceal*
|
||||
Tex: Taking Advantage of Conceal Mode~
|
||||
|
||||
If you have |'conceallevel'| set to 2 and if your encoding is utf-8, then a
|
||||
If you have 'conceallevel' set to 2 and if your encoding is utf-8, then a
|
||||
number of character sequences can be translated into appropriate utf-8 glyphs,
|
||||
including various accented characters, Greek characters in MathZones, and
|
||||
superscripts and subscripts in MathZones. Not all characters can be made into
|
||||
@@ -3886,7 +3947,7 @@ superscripts or subscripts; the constraint is due to what utf-8 supports.
|
||||
In fact, only a few characters are supported as subscripts.
|
||||
|
||||
One way to use this is to have vertically split windows (see |CTRL-W_v|); one
|
||||
with |'conceallevel'| at 0 and the other at 2; and both using |'scrollbind'|.
|
||||
with 'conceallevel' at 0 and the other at 2; and both using 'scrollbind'.
|
||||
|
||||
*g:tex_conceal*
|
||||
Tex: Selective Conceal Mode~
|
||||
@@ -4013,12 +4074,12 @@ The g:vimsyn_embed option allows users to select what, if any, types of
|
||||
embedded script highlighting they wish to have. >
|
||||
|
||||
g:vimsyn_embed == 0 : don't support any embedded scripts
|
||||
g:vimsyn_embed =~ 'l' : support embedded Lua
|
||||
g:vimsyn_embed =~ 'm' : support embedded MzScheme
|
||||
g:vimsyn_embed =~ 'p' : support embedded Perl
|
||||
g:vimsyn_embed =~ 'P' : support embedded Python
|
||||
g:vimsyn_embed =~ 'r' : support embedded Ruby
|
||||
g:vimsyn_embed =~ 't' : support embedded Tcl
|
||||
g:vimsyn_embed =~# 'l' : support embedded Lua
|
||||
g:vimsyn_embed =~# 'm' : support embedded MzScheme
|
||||
g:vimsyn_embed =~# 'p' : support embedded Perl
|
||||
g:vimsyn_embed =~# 'P' : support embedded Python
|
||||
g:vimsyn_embed =~# 'r' : support embedded Ruby
|
||||
g:vimsyn_embed =~# 't' : support embedded Tcl
|
||||
<
|
||||
By default, g:vimsyn_embed is unset, and the Lua and Python script interfaces
|
||||
are supported.
|
||||
@@ -4027,19 +4088,19 @@ are supported.
|
||||
Some folding is now supported with when 'foldmethod' is set to "syntax": >
|
||||
|
||||
g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding
|
||||
g:vimsyn_folding =~ 'a' : fold augroups
|
||||
g:vimsyn_folding =~ 'c' : fold Vim9 classes
|
||||
g:vimsyn_folding =~ 'e' : fold Vim9 enums
|
||||
g:vimsyn_folding =~ 'f' : fold functions
|
||||
g:vimsyn_folding =~ 'h' : fold let heredocs
|
||||
g:vimsyn_folding =~ 'i' : fold Vim9 interfaces
|
||||
g:vimsyn_folding =~ 'H' : fold Vim9 legacy headers
|
||||
g:vimsyn_folding =~ 'l' : fold Lua heredocs
|
||||
g:vimsyn_folding =~ 'm' : fold MzScheme heredocs
|
||||
g:vimsyn_folding =~ 'p' : fold Perl heredocs
|
||||
g:vimsyn_folding =~ 'P' : fold Python heredocs
|
||||
g:vimsyn_folding =~ 'r' : fold Ruby heredocs
|
||||
g:vimsyn_folding =~ 't' : fold Tcl heredocs
|
||||
g:vimsyn_folding =~# 'a' : fold augroups
|
||||
g:vimsyn_folding =~# 'c' : fold Vim9 classes
|
||||
g:vimsyn_folding =~# 'e' : fold Vim9 enums
|
||||
g:vimsyn_folding =~# 'f' : fold functions
|
||||
g:vimsyn_folding =~# 'h' : fold let heredocs
|
||||
g:vimsyn_folding =~# 'i' : fold Vim9 interfaces
|
||||
g:vimsyn_folding =~# 'H' : fold Vim9 legacy headers
|
||||
g:vimsyn_folding =~# 'l' : fold Lua heredocs
|
||||
g:vimsyn_folding =~# 'm' : fold MzScheme heredocs
|
||||
g:vimsyn_folding =~# 'p' : fold Perl heredocs
|
||||
g:vimsyn_folding =~# 'P' : fold Python heredocs
|
||||
g:vimsyn_folding =~# 'r' : fold Ruby heredocs
|
||||
g:vimsyn_folding =~# 't' : fold Tcl heredocs
|
||||
<
|
||||
|
||||
By default, g:vimsyn_folding is unset. Concatenate the indicated characters
|
||||
@@ -4318,13 +4379,13 @@ SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
|
||||
|
||||
DEFINING KEYWORDS *:syn-keyword*
|
||||
|
||||
:sy[ntax] keyword {group-name} [{options}] {keyword} .. [{options}]
|
||||
:sy[ntax] keyword {group-name} [{options}] {keyword} ... [{options}]
|
||||
|
||||
This defines a number of keywords.
|
||||
|
||||
{group-name} Is a syntax group name such as "Comment".
|
||||
[{options}] See |:syn-arguments| below.
|
||||
{keyword} .. Is a list of keywords which are part of this group.
|
||||
{keyword} ... Is a list of keywords which are part of this group.
|
||||
|
||||
Example: >
|
||||
:syntax keyword Type int long char
|
||||
@@ -5485,7 +5546,7 @@ in their own color.
|
||||
Add a highlight group, or change the highlighting for
|
||||
an existing group. If a given color name is not
|
||||
recognized, each `colors/lists/default.vim` found on
|
||||
|'runtimepath'| will be loaded.
|
||||
'runtimepath' will be loaded.
|
||||
See |highlight-args| for the {key}={arg} arguments.
|
||||
See |:highlight-default| for the optional [default]
|
||||
argument.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tabpage.txt* For Vim version 9.1. Last change: 2025 Jun 07
|
||||
*tabpage.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -19,6 +19,8 @@ when used in combination with more than one tab page.
|
||||
|
||||
{not able to use multiple tab pages when the |+windows| feature was disabled
|
||||
at compile time}
|
||||
{not able to use |tabpanel| feature when the |+tabpanel| feature was disabled
|
||||
at compile time}
|
||||
|
||||
==============================================================================
|
||||
1. Introduction *tab-page-intro*
|
||||
@@ -36,9 +38,9 @@ commands, |:windo|, |:all| and |:ball| (when not using the |:tab| modifier).
|
||||
The commands that are aware of other tab pages than the current one are
|
||||
mentioned below.
|
||||
|
||||
Tabs are also a nice way to edit a buffer temporarily without changing the
|
||||
current window layout. Open a new tab page, do whatever you want to do and
|
||||
close the tab page.
|
||||
Tab pages are also a nice way to edit a buffer temporarily without changing
|
||||
the current window layout. Open a new tab page, do whatever you want to do
|
||||
and close the tab page.
|
||||
|
||||
==============================================================================
|
||||
2. Commands *tab-page-commands*
|
||||
@@ -116,7 +118,7 @@ Closing the last window of a tab page closes the tab page too, unless there is
|
||||
only one tab page.
|
||||
|
||||
Using the mouse: If the tab page line is displayed you can click in the "X" at
|
||||
the top right to close the current tab page. A custom |'tabline'| may show
|
||||
the top right to close the current tab page. A custom 'tabline' may show
|
||||
something else.
|
||||
|
||||
*:tabc* *:tabclose*
|
||||
@@ -143,7 +145,7 @@ something else.
|
||||
:tabclose $ " close the last tab page
|
||||
:tabclose # " close the last accessed tab page
|
||||
|
||||
When a tab is closed the next tab page will become the current one. This
|
||||
When a tab page is closed the next tab page will become the current one. This
|
||||
behaviour can be customized using the 'tabclose' option.
|
||||
|
||||
*:tabo* *:tabonly*
|
||||
@@ -181,7 +183,7 @@ SWITCHING TO ANOTHER TAB PAGE:
|
||||
|
||||
Using the mouse: If the tab page line is displayed you can click in a tab page
|
||||
label to switch to that tab page. Click where there is no label to go to the
|
||||
next tab page. |'tabline'|
|
||||
next tab page. 'tabline'
|
||||
|
||||
:tabn[ext] *:tabn* *:tabnext* *gt*
|
||||
<C-PageDown> *CTRL-<PageDown>* *<C-PageDown>*
|
||||
@@ -250,7 +252,7 @@ REORDERING TAB PAGES:
|
||||
:[N]tabm[ove]
|
||||
Move the current tab page to after tab page N. Use zero to
|
||||
make the current tab page the first one. N is counted before
|
||||
the move, thus if the second tab is the current one,
|
||||
the move, thus if the second tab page is the current one,
|
||||
`:tabmove 1` and `:tabmove 2` have no effect.
|
||||
Without N the tab page is made the last one. >
|
||||
:.tabmove " do nothing
|
||||
@@ -274,9 +276,9 @@ REORDERING TAB PAGES:
|
||||
:tabmove +1 " as above
|
||||
|
||||
|
||||
Note that although it is possible to move a tab behind the N-th one by using
|
||||
:Ntabmove. And move it by N places by using :+Ntabmove. For clarification what
|
||||
+N means in this context see |[range]|.
|
||||
Note that although it is possible to move a tab page behind the N-th one by
|
||||
using :Ntabmove. And move it by N places by using :+Ntabmove. For
|
||||
clarification what +N means in this context see |[range]|.
|
||||
|
||||
|
||||
LOOPING OVER TAB PAGES:
|
||||
@@ -361,6 +363,9 @@ A "+" will be shown for a tab page that has a modified window. The number of
|
||||
windows in a tabpage is also shown. Thus "3+" means three windows and one of
|
||||
them has a modified buffer.
|
||||
|
||||
An "X" (close button) will appear in the last column when multiple tab pages
|
||||
are open, but only if the 'mouse' is enabled.
|
||||
|
||||
The 'tabline' option allows you to define your preferred way to tab pages
|
||||
labels. This isn't easy, thus an example will be given here.
|
||||
|
||||
@@ -393,7 +398,7 @@ pages and define labels for them. Then get the label for each tab page. >
|
||||
let s ..= ' %{MyTabLabel(' .. (i + 1) .. ')} '
|
||||
endfor
|
||||
|
||||
" after the last tab fill with TabLineFill and reset tab page nr
|
||||
" after the last tab page fill with TabLineFill and reset tab page nr
|
||||
let s ..= '%#TabLineFill#%T'
|
||||
|
||||
" right-align the label to close the current tab page
|
||||
@@ -438,15 +443,15 @@ side of the window. It looks like this:
|
||||
<
|
||||
To configure the tabpanel, use the following options: 'tabpanel',
|
||||
'showtabpanel' and 'tabpanelopt'.
|
||||
The 'tabpanel' and 'showtabpanel' options function similar to
|
||||
'statusline' or 'tabline'.
|
||||
The 'tabpanel' option functions similar to 'statusline' or 'tabline', and the
|
||||
'showtabpanel' option functions similar to 'laststatus' or 'showtabline'.
|
||||
|
||||
The "columns:" item of 'tabpanelopt' option specifies the width of the
|
||||
tabpanel:
|
||||
>
|
||||
+------ This width
|
||||
|
|
||||
<----+----->
|
||||
+------ This width
|
||||
|
|
||||
<----+----->
|
||||
+-----------+----------------------------------
|
||||
|(1) |text text text text text text text
|
||||
| ~/aaa.txt|text text text text text text text
|
||||
@@ -464,9 +469,9 @@ The "vert" item of the 'tabpanelopt' option specifies whether a vertical
|
||||
separator should be displayed between the tabpanel and the display part of the
|
||||
window:
|
||||
>
|
||||
+------ This is
|
||||
|
|
||||
v
|
||||
+------ This is
|
||||
|
|
||||
v
|
||||
+-----------+----------------------------------
|
||||
|(1) |text text text text text text text
|
||||
| ~/aaa.txt|text text text text text text text
|
||||
|
||||
106
runtime/doc/tags
106
runtime/doc/tags
@@ -41,7 +41,9 @@ $quote eval.txt /*$quote*
|
||||
'] motion.txt /*']*
|
||||
'^ motion.txt /*'^*
|
||||
'a motion.txt /*'a*
|
||||
'ac' options.txt /*'ac'*
|
||||
'acd' options.txt /*'acd'*
|
||||
'acl' options.txt /*'acl'*
|
||||
'ai' options.txt /*'ai'*
|
||||
'akm' options.txt /*'akm'*
|
||||
'al' options.txt /*'al'*
|
||||
@@ -62,6 +64,8 @@ $quote eval.txt /*$quote*
|
||||
'as' todo.txt /*'as'*
|
||||
'asd' options.txt /*'asd'*
|
||||
'autochdir' options.txt /*'autochdir'*
|
||||
'autocomplete' options.txt /*'autocomplete'*
|
||||
'autocompletedelay' options.txt /*'autocompletedelay'*
|
||||
'autoindent' options.txt /*'autoindent'*
|
||||
'autoprint' vi_diff.txt /*'autoprint'*
|
||||
'autoread' options.txt /*'autoread'*
|
||||
@@ -149,6 +153,7 @@ $quote eval.txt /*$quote*
|
||||
'cinw' options.txt /*'cinw'*
|
||||
'cinwords' options.txt /*'cinwords'*
|
||||
'clipboard' options.txt /*'clipboard'*
|
||||
'clipmethod' options.txt /*'clipmethod'*
|
||||
'cm' options.txt /*'cm'*
|
||||
'cmdheight' options.txt /*'cmdheight'*
|
||||
'cmdwinheight' options.txt /*'cmdwinheight'*
|
||||
@@ -178,6 +183,7 @@ $quote eval.txt /*$quote*
|
||||
'copyindent' options.txt /*'copyindent'*
|
||||
'cot' options.txt /*'cot'*
|
||||
'cp' options.txt /*'cp'*
|
||||
'cpm' options.txt /*'cpm'*
|
||||
'cpo' options.txt /*'cpo'*
|
||||
'cpoptions' options.txt /*'cpoptions'*
|
||||
'cpp' options.txt /*'cpp'*
|
||||
@@ -214,9 +220,11 @@ $quote eval.txt /*$quote*
|
||||
'delcombine' options.txt /*'delcombine'*
|
||||
'dex' options.txt /*'dex'*
|
||||
'dg' options.txt /*'dg'*
|
||||
'dia' options.txt /*'dia'*
|
||||
'dict' options.txt /*'dict'*
|
||||
'dictionary' options.txt /*'dictionary'*
|
||||
'diff' options.txt /*'diff'*
|
||||
'diffanchors' options.txt /*'diffanchors'*
|
||||
'diffexpr' options.txt /*'diffexpr'*
|
||||
'diffopt' options.txt /*'diffopt'*
|
||||
'digraph' options.txt /*'digraph'*
|
||||
@@ -504,6 +512,7 @@ $quote eval.txt /*$quote*
|
||||
'maxmem' options.txt /*'maxmem'*
|
||||
'maxmempattern' options.txt /*'maxmempattern'*
|
||||
'maxmemtot' options.txt /*'maxmemtot'*
|
||||
'maxsearchcount' options.txt /*'maxsearchcount'*
|
||||
'mco' options.txt /*'mco'*
|
||||
'mef' options.txt /*'mef'*
|
||||
'menc' options.txt /*'menc'*
|
||||
@@ -543,12 +552,14 @@ $quote eval.txt /*$quote*
|
||||
'mousetime' options.txt /*'mousetime'*
|
||||
'mp' options.txt /*'mp'*
|
||||
'mps' options.txt /*'mps'*
|
||||
'msc' options.txt /*'msc'*
|
||||
'msm' options.txt /*'msm'*
|
||||
'mzq' options.txt /*'mzq'*
|
||||
'mzquantum' options.txt /*'mzquantum'*
|
||||
'mzschemedll' options.txt /*'mzschemedll'*
|
||||
'mzschemegcdll' options.txt /*'mzschemegcdll'*
|
||||
'nf' options.txt /*'nf'*
|
||||
'noac' options.txt /*'noac'*
|
||||
'noacd' options.txt /*'noacd'*
|
||||
'noai' options.txt /*'noai'*
|
||||
'noakm' options.txt /*'noakm'*
|
||||
@@ -565,6 +576,7 @@ $quote eval.txt /*$quote*
|
||||
'noas' todo.txt /*'noas'*
|
||||
'noasd' options.txt /*'noasd'*
|
||||
'noautochdir' options.txt /*'noautochdir'*
|
||||
'noautocomplete' options.txt /*'noautocomplete'*
|
||||
'noautoindent' options.txt /*'noautoindent'*
|
||||
'noautoread' options.txt /*'noautoread'*
|
||||
'noautosave' todo.txt /*'noautosave'*
|
||||
@@ -803,6 +815,7 @@ $quote eval.txt /*$quote*
|
||||
'nowinfixheight' options.txt /*'nowinfixheight'*
|
||||
'nowinfixwidth' options.txt /*'nowinfixwidth'*
|
||||
'nowiv' options.txt /*'nowiv'*
|
||||
'nowlsteal' options.txt /*'nowlsteal'*
|
||||
'nowmnu' options.txt /*'nowmnu'*
|
||||
'nowrap' options.txt /*'nowrap'*
|
||||
'nowrapscan' options.txt /*'nowrapscan'*
|
||||
@@ -810,6 +823,7 @@ $quote eval.txt /*$quote*
|
||||
'nowriteany' options.txt /*'nowriteany'*
|
||||
'nowritebackup' options.txt /*'nowritebackup'*
|
||||
'nows' options.txt /*'nows'*
|
||||
'nowst' options.txt /*'nowst'*
|
||||
'noxtermcodes' options.txt /*'noxtermcodes'*
|
||||
'nrformats' options.txt /*'nrformats'*
|
||||
'nu' options.txt /*'nu'*
|
||||
@@ -1334,6 +1348,9 @@ $quote eval.txt /*$quote*
|
||||
'winwidth' options.txt /*'winwidth'*
|
||||
'wiv' options.txt /*'wiv'*
|
||||
'wiw' options.txt /*'wiw'*
|
||||
'wlseat' options.txt /*'wlseat'*
|
||||
'wlsteal' options.txt /*'wlsteal'*
|
||||
'wltimeoutlen' options.txt /*'wltimeoutlen'*
|
||||
'wm' options.txt /*'wm'*
|
||||
'wmh' options.txt /*'wmh'*
|
||||
'wmnu' options.txt /*'wmnu'*
|
||||
@@ -1347,6 +1364,9 @@ $quote eval.txt /*$quote*
|
||||
'writebackup' options.txt /*'writebackup'*
|
||||
'writedelay' options.txt /*'writedelay'*
|
||||
'ws' options.txt /*'ws'*
|
||||
'wse' options.txt /*'wse'*
|
||||
'wst' options.txt /*'wst'*
|
||||
'wtm' options.txt /*'wtm'*
|
||||
'ww' options.txt /*'ww'*
|
||||
'xtermcodes' options.txt /*'xtermcodes'*
|
||||
'{ motion.txt /*'{*
|
||||
@@ -1477,6 +1497,7 @@ $quote eval.txt /*$quote*
|
||||
+scrollbind various.txt /*+scrollbind*
|
||||
+signs various.txt /*+signs*
|
||||
+smartindent various.txt /*+smartindent*
|
||||
+socketserver various.txt /*+socketserver*
|
||||
+sodium various.txt /*+sodium*
|
||||
+sound various.txt /*+sound*
|
||||
+spell various.txt /*+spell*
|
||||
@@ -1512,6 +1533,8 @@ $quote eval.txt /*$quote*
|
||||
+visualextra various.txt /*+visualextra*
|
||||
+vreplace various.txt /*+vreplace*
|
||||
+vtp various.txt /*+vtp*
|
||||
+wayland various.txt /*+wayland*
|
||||
+wayland_clipboard various.txt /*+wayland_clipboard*
|
||||
+wildignore various.txt /*+wildignore*
|
||||
+wildmenu various.txt /*+wildmenu*
|
||||
+windows various.txt /*+windows*
|
||||
@@ -1535,6 +1558,7 @@ $quote eval.txt /*$quote*
|
||||
-- starting.txt /*--*
|
||||
--- starting.txt /*---*
|
||||
--clean starting.txt /*--clean*
|
||||
--clientserver remote.txt /*--clientserver*
|
||||
--cmd starting.txt /*--cmd*
|
||||
--echo-wid starting.txt /*--echo-wid*
|
||||
--gui-dialog-file starting.txt /*--gui-dialog-file*
|
||||
@@ -1582,6 +1606,7 @@ $quote eval.txt /*$quote*
|
||||
-V starting.txt /*-V*
|
||||
-W starting.txt /*-W*
|
||||
-X starting.txt /*-X*
|
||||
-Y starting.txt /*-Y*
|
||||
-Z starting.txt /*-Z*
|
||||
-b starting.txt /*-b*
|
||||
-background gui_x11.txt /*-background*
|
||||
@@ -1802,6 +1827,7 @@ $quote eval.txt /*$quote*
|
||||
/\{- pattern.txt /*\/\\{-*
|
||||
/\~ pattern.txt /*\/\\~*
|
||||
/^ pattern.txt /*\/^*
|
||||
/_<Tab> cmdline.txt /*\/_<Tab>*
|
||||
/_CTRL-G cmdline.txt /*\/_CTRL-G*
|
||||
/_CTRL-L cmdline.txt /*\/_CTRL-L*
|
||||
/_CTRL-T cmdline.txt /*\/_CTRL-T*
|
||||
@@ -2404,6 +2430,8 @@ $quote eval.txt /*$quote*
|
||||
:clast quickfix.txt /*:clast*
|
||||
:cle motion.txt /*:cle*
|
||||
:clearjumps motion.txt /*:clearjumps*
|
||||
:clip various.txt /*:clip*
|
||||
:clipreset various.txt /*:clipreset*
|
||||
:clist quickfix.txt /*:clist*
|
||||
:clo windows.txt /*:clo*
|
||||
:close windows.txt /*:close*
|
||||
@@ -3331,6 +3359,9 @@ $quote eval.txt /*$quote*
|
||||
:so repeat.txt /*:so*
|
||||
:sor change.txt /*:sor*
|
||||
:sort change.txt /*:sort*
|
||||
:sort-l change.txt /*:sort-l*
|
||||
:sort-u change.txt /*:sort-u*
|
||||
:sort-uniq change.txt /*:sort-uniq*
|
||||
:source repeat.txt /*:source*
|
||||
:source! repeat.txt /*:source!*
|
||||
:source-range repeat.txt /*:source-range*
|
||||
@@ -3565,6 +3596,8 @@ $quote eval.txt /*$quote*
|
||||
:undolist undo.txt /*:undolist*
|
||||
:unh windows.txt /*:unh*
|
||||
:unhide windows.txt /*:unhide*
|
||||
:uni change.txt /*:uni*
|
||||
:uniq change.txt /*:uniq*
|
||||
:unl eval.txt /*:unl*
|
||||
:unlet eval.txt /*:unlet*
|
||||
:unlet-$ eval.txt /*:unlet-$*
|
||||
@@ -3647,6 +3680,8 @@ $quote eval.txt /*$quote*
|
||||
:winp gui.txt /*:winp*
|
||||
:winpos gui.txt /*:winpos*
|
||||
:winsize gui.txt /*:winsize*
|
||||
:wl wayland.txt /*:wl*
|
||||
:wlrestore wayland.txt /*:wlrestore*
|
||||
:wn editing.txt /*:wn*
|
||||
:wnext editing.txt /*:wnext*
|
||||
:wp editing.txt /*:wp*
|
||||
@@ -3964,6 +3999,8 @@ C change.txt /*C*
|
||||
C-editing tips.txt /*C-editing*
|
||||
C-indenting indent.txt /*C-indenting*
|
||||
C89 develop.txt /*C89*
|
||||
C90 develop.txt /*C90*
|
||||
C95 develop.txt /*C95*
|
||||
C99 develop.txt /*C99*
|
||||
COMSPEC starting.txt /*COMSPEC*
|
||||
CR-used-for-NL pattern.txt /*CR-used-for-NL*
|
||||
@@ -4586,6 +4623,11 @@ E1425 vim9class.txt /*E1425*
|
||||
E1426 vim9class.txt /*E1426*
|
||||
E1429 vim9class.txt /*E1429*
|
||||
E143 autocmd.txt /*E143*
|
||||
E1432 vim9.txt /*E1432*
|
||||
E1433 vim9.txt /*E1433*
|
||||
E1434 vim9.txt /*E1434*
|
||||
E1435 vim9class.txt /*E1435*
|
||||
E1436 vim9class.txt /*E1436*
|
||||
E144 various.txt /*E144*
|
||||
E145 starting.txt /*E145*
|
||||
E146 change.txt /*E146*
|
||||
@@ -4641,8 +4683,27 @@ E154 helphelp.txt /*E154*
|
||||
E1540 eval.txt /*E1540*
|
||||
E1541 vi_diff.txt /*E1541*
|
||||
E1547 various.txt /*E1547*
|
||||
E1548 wayland.txt /*E1548*
|
||||
E1549 options.txt /*E1549*
|
||||
E155 sign.txt /*E155*
|
||||
E1550 options.txt /*E1550*
|
||||
E1552 vim9.txt /*E1552*
|
||||
E1553 vim9.txt /*E1553*
|
||||
E1554 vim9.txt /*E1554*
|
||||
E1555 vim9.txt /*E1555*
|
||||
E1556 vim9.txt /*E1556*
|
||||
E1557 vim9.txt /*E1557*
|
||||
E1558 vim9.txt /*E1558*
|
||||
E1559 vim9.txt /*E1559*
|
||||
E156 sign.txt /*E156*
|
||||
E1560 vim9.txt /*E1560*
|
||||
E1561 vim9.txt /*E1561*
|
||||
E1562 options.txt /*E1562*
|
||||
E1563 remote.txt /*E1563*
|
||||
E1564 remote.txt /*E1564*
|
||||
E1565 remote.txt /*E1565*
|
||||
E1566 remote.txt /*E1566*
|
||||
E1567 remote.txt /*E1567*
|
||||
E157 sign.txt /*E157*
|
||||
E158 sign.txt /*E158*
|
||||
E159 sign.txt /*E159*
|
||||
@@ -5605,6 +5666,7 @@ GetLatestVimScripts_dat pi_getscript.txt /*GetLatestVimScripts_dat*
|
||||
Gnome gui_x11.txt /*Gnome*
|
||||
H motion.txt /*H*
|
||||
Haiku os_haiku.txt /*Haiku*
|
||||
HelpToc-mappings helphelp.txt /*HelpToc-mappings*
|
||||
I insert.txt /*I*
|
||||
ICCF uganda.txt /*ICCF*
|
||||
IM-server mbyte.txt /*IM-server*
|
||||
@@ -5702,6 +5764,7 @@ PHP_outdentSLComments indent.txt /*PHP_outdentSLComments*
|
||||
PHP_outdentphpescape indent.txt /*PHP_outdentphpescape*
|
||||
PHP_removeCRwhenUnix indent.txt /*PHP_removeCRwhenUnix*
|
||||
PHP_vintage_case_default_indent indent.txt /*PHP_vintage_case_default_indent*
|
||||
POSIX.1-2001 develop.txt /*POSIX.1-2001*
|
||||
Partial eval.txt /*Partial*
|
||||
Pattern pattern.txt /*Pattern*
|
||||
Perl if_perl.txt /*Perl*
|
||||
@@ -6140,6 +6203,9 @@ assert_notequal() testing.txt /*assert_notequal()*
|
||||
assert_notmatch() testing.txt /*assert_notmatch()*
|
||||
assert_report() testing.txt /*assert_report()*
|
||||
assert_true() testing.txt /*assert_true()*
|
||||
assumptions-C-compiler develop.txt /*assumptions-C-compiler*
|
||||
assumptions-makefiles develop.txt /*assumptions-makefiles*
|
||||
assumptions-variables develop.txt /*assumptions-variables*
|
||||
astro.vim syntax.txt /*astro.vim*
|
||||
asy.vim syntax.txt /*asy.vim*
|
||||
at motion.txt /*at*
|
||||
@@ -6427,6 +6493,7 @@ c_space_errors syntax.txt /*c_space_errors*
|
||||
c_syntax_for_h syntax.txt /*c_syntax_for_h*
|
||||
c_wildchar cmdline.txt /*c_wildchar*
|
||||
call() builtin.txt /*call()*
|
||||
cangjie.vim syntax.txt /*cangjie.vim*
|
||||
carriage-return intro.txt /*carriage-return*
|
||||
case change.txt /*case*
|
||||
catch-all eval.txt /*catch-all*
|
||||
@@ -6584,6 +6651,7 @@ cmdarg-variable eval.txt /*cmdarg-variable*
|
||||
cmdbang-variable eval.txt /*cmdbang-variable*
|
||||
cmdcomplete_info() builtin.txt /*cmdcomplete_info()*
|
||||
cmdline-arguments vi_diff.txt /*cmdline-arguments*
|
||||
cmdline-autocompletion builtin.txt /*cmdline-autocompletion*
|
||||
cmdline-changed version5.txt /*cmdline-changed*
|
||||
cmdline-completion cmdline.txt /*cmdline-completion*
|
||||
cmdline-editing cmdline.txt /*cmdline-editing*
|
||||
@@ -6771,6 +6839,7 @@ cpo-x options.txt /*cpo-x*
|
||||
cpo-y options.txt /*cpo-y*
|
||||
cpo-z options.txt /*cpo-z*
|
||||
cpo-{ options.txt /*cpo-{*
|
||||
cpo-~ options.txt /*cpo-~*
|
||||
cpp.vim syntax.txt /*cpp.vim*
|
||||
crash-recovery recover.txt /*crash-recovery*
|
||||
creating-menus gui.txt /*creating-menus*
|
||||
@@ -6864,6 +6933,7 @@ debugger-support debugger.txt /*debugger-support*
|
||||
debugger.txt debugger.txt /*debugger.txt*
|
||||
dec-mouse options.txt /*dec-mouse*
|
||||
decada_members ft_ada.txt /*decada_members*
|
||||
deduplicating change.txt /*deduplicating*
|
||||
deepcopy() builtin.txt /*deepcopy()*
|
||||
default-constructor vim9class.txt /*default-constructor*
|
||||
defaults.vim starting.txt /*defaults.vim*
|
||||
@@ -6907,6 +6977,7 @@ dict-modification eval.txt /*dict-modification*
|
||||
did_filetype() builtin.txt /*did_filetype()*
|
||||
diff diff.txt /*diff*
|
||||
diff() builtin.txt /*diff()*
|
||||
diff-anchors diff.txt /*diff-anchors*
|
||||
diff-diffexpr diff.txt /*diff-diffexpr*
|
||||
diff-func-examples diff.txt /*diff-func-examples*
|
||||
diff-mode diff.txt /*diff-mode*
|
||||
@@ -7361,6 +7432,7 @@ ft-bash-syntax syntax.txt /*ft-bash-syntax*
|
||||
ft-basic-syntax syntax.txt /*ft-basic-syntax*
|
||||
ft-c-omni insert.txt /*ft-c-omni*
|
||||
ft-c-syntax syntax.txt /*ft-c-syntax*
|
||||
ft-cangjie-syntax syntax.txt /*ft-cangjie-syntax*
|
||||
ft-ch-syntax syntax.txt /*ft-ch-syntax*
|
||||
ft-changelog-plugin filetype.txt /*ft-changelog-plugin*
|
||||
ft-changelog-syntax syntax.txt /*ft-changelog-syntax*
|
||||
@@ -7759,7 +7831,6 @@ g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
|
||||
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
|
||||
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
|
||||
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
|
||||
g:netrw_nobeval pi_netrw.txt /*g:netrw_nobeval*
|
||||
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
|
||||
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
|
||||
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
|
||||
@@ -7819,8 +7890,10 @@ g:rustc_path ft_rust.txt /*g:rustc_path*
|
||||
g:rustfmt_autosave ft_rust.txt /*g:rustfmt_autosave*
|
||||
g:rustfmt_autosave_if_config_present ft_rust.txt /*g:rustfmt_autosave_if_config_present*
|
||||
g:rustfmt_command ft_rust.txt /*g:rustfmt_command*
|
||||
g:rustfmt_detect_version ft_rust.txt /*g:rustfmt_detect_version*
|
||||
g:rustfmt_emit_files ft_rust.txt /*g:rustfmt_emit_files*
|
||||
g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently*
|
||||
g:rustfmt_find_toml ft_rust.txt /*g:rustfmt_find_toml*
|
||||
g:rustfmt_options ft_rust.txt /*g:rustfmt_options*
|
||||
g:statusline_winid options.txt /*g:statusline_winid*
|
||||
g:syntax_on syntax.txt /*g:syntax_on*
|
||||
@@ -7830,7 +7903,6 @@ g:tar_copycmd pi_tar.txt /*g:tar_copycmd*
|
||||
g:tar_extractcmd pi_tar.txt /*g:tar_extractcmd*
|
||||
g:tar_nomax pi_tar.txt /*g:tar_nomax*
|
||||
g:tar_readoptions pi_tar.txt /*g:tar_readoptions*
|
||||
g:tar_secure pi_tar.txt /*g:tar_secure*
|
||||
g:tar_writeoptions pi_tar.txt /*g:tar_writeoptions*
|
||||
g:termdebug_config terminal.txt /*g:termdebug_config*
|
||||
g:termdebugger terminal.txt /*g:termdebugger*
|
||||
@@ -7923,6 +7995,9 @@ gdb debug.txt /*gdb*
|
||||
gdb-version terminal.txt /*gdb-version*
|
||||
ge motion.txt /*ge*
|
||||
gender-neutral helphelp.txt /*gender-neutral*
|
||||
generic-function-call vim9.txt /*generic-function-call*
|
||||
generic-function-declaration vim9.txt /*generic-function-declaration*
|
||||
generic-functions vim9.txt /*generic-functions*
|
||||
get() builtin.txt /*get()*
|
||||
get()-blob builtin.txt /*get()-blob*
|
||||
get()-dict builtin.txt /*get()-dict*
|
||||
@@ -7951,6 +8026,7 @@ getcmdscreenpos() builtin.txt /*getcmdscreenpos()*
|
||||
getcmdtype() builtin.txt /*getcmdtype()*
|
||||
getcmdwintype() builtin.txt /*getcmdwintype()*
|
||||
getcompletion() builtin.txt /*getcompletion()*
|
||||
getcompletiontype() builtin.txt /*getcompletiontype()*
|
||||
getcurpos() builtin.txt /*getcurpos()*
|
||||
getcursorcharpos() builtin.txt /*getcursorcharpos()*
|
||||
getcwd() builtin.txt /*getcwd()*
|
||||
@@ -8489,7 +8565,6 @@ improvements-6 version6.txt /*improvements-6*
|
||||
improvements-7 version7.txt /*improvements-7*
|
||||
improvements-8 version8.txt /*improvements-8*
|
||||
improvements-9 version9.txt /*improvements-9*
|
||||
improvements-9.2 version9.txt /*improvements-9.2*
|
||||
in_bot channel.txt /*in_bot*
|
||||
in_buf channel.txt /*in_buf*
|
||||
in_io-buffer channel.txt /*in_io-buffer*
|
||||
@@ -8527,6 +8602,7 @@ inputlist() builtin.txt /*inputlist()*
|
||||
inputrestore() builtin.txt /*inputrestore()*
|
||||
inputsave() builtin.txt /*inputsave()*
|
||||
inputsecret() builtin.txt /*inputsecret()*
|
||||
ins-autocompletion insert.txt /*ins-autocompletion*
|
||||
ins-completion insert.txt /*ins-completion*
|
||||
ins-completion-menu insert.txt /*ins-completion-menu*
|
||||
ins-expandtab insert.txt /*ins-expandtab*
|
||||
@@ -9146,7 +9222,6 @@ netrw-mm pi_netrw.txt /*netrw-mm*
|
||||
netrw-modify pi_netrw.txt /*netrw-modify*
|
||||
netrw-mouse pi_netrw.txt /*netrw-mouse*
|
||||
netrw-move pi_netrw.txt /*netrw-move*
|
||||
netrw-mp pi_netrw.txt /*netrw-mp*
|
||||
netrw-mr pi_netrw.txt /*netrw-mr*
|
||||
netrw-ms pi_netrw.txt /*netrw-ms*
|
||||
netrw-mt pi_netrw.txt /*netrw-mt*
|
||||
@@ -9212,7 +9287,6 @@ netrw-rightmouse pi_netrw.txt /*netrw-rightmouse*
|
||||
netrw-s pi_netrw.txt /*netrw-s*
|
||||
netrw-s-cr pi_netrw.txt /*netrw-s-cr*
|
||||
netrw-settings pi_netrw.txt /*netrw-settings*
|
||||
netrw-settings-window pi_netrw.txt /*netrw-settings-window*
|
||||
netrw-sexplore pi_netrw.txt /*netrw-sexplore*
|
||||
netrw-sort pi_netrw.txt /*netrw-sort*
|
||||
netrw-sort-sequence pi_netrw.txt /*netrw-sort-sequence*
|
||||
@@ -10032,6 +10106,7 @@ search() builtin.txt /*search()*
|
||||
search()-sub-match builtin.txt /*search()-sub-match*
|
||||
search-commands pattern.txt /*search-commands*
|
||||
search-offset pattern.txt /*search-offset*
|
||||
search-options pattern.txt /*search-options*
|
||||
search-pattern pattern.txt /*search-pattern*
|
||||
search-range pattern.txt /*search-range*
|
||||
search-replace change.txt /*search-replace*
|
||||
@@ -10157,6 +10232,10 @@ slow-fast-terminal term.txt /*slow-fast-terminal*
|
||||
slow-start starting.txt /*slow-start*
|
||||
slow-terminal term.txt /*slow-terminal*
|
||||
socket-interface channel.txt /*socket-interface*
|
||||
socketserver-clientserver remote.txt /*socketserver-clientserver*
|
||||
socketserver-differences remote.txt /*socketserver-differences*
|
||||
socketserver-name remote.txt /*socketserver-name*
|
||||
socketserver-x11 remote.txt /*socketserver-x11*
|
||||
sort() builtin.txt /*sort()*
|
||||
sorting change.txt /*sorting*
|
||||
sound-functions usr_41.txt /*sound-functions*
|
||||
@@ -10374,7 +10453,6 @@ style-changes develop.txt /*style-changes*
|
||||
style-clang-format develop.txt /*style-clang-format*
|
||||
style-comments develop.txt /*style-comments*
|
||||
style-common-functions develop.txt /*style-common-functions*
|
||||
style-compiler develop.txt /*style-compiler*
|
||||
style-declarations develop.txt /*style-declarations*
|
||||
style-examples develop.txt /*style-examples*
|
||||
style-functions develop.txt /*style-functions*
|
||||
@@ -10984,6 +11062,7 @@ type-casting vim9.txt /*type-casting*
|
||||
type-checking vim9.txt /*type-checking*
|
||||
type-inference vim9.txt /*type-inference*
|
||||
type-mistakes tips.txt /*type-mistakes*
|
||||
type-variable-naming vim9.txt /*type-variable-naming*
|
||||
typealias vim9class.txt /*typealias*
|
||||
typename() builtin.txt /*typename()*
|
||||
typescript.vim syntax.txt /*typescript.vim*
|
||||
@@ -11015,6 +11094,7 @@ undofile() builtin.txt /*undofile()*
|
||||
undotree() builtin.txt /*undotree()*
|
||||
unicode mbyte.txt /*unicode*
|
||||
uniq() builtin.txt /*uniq()*
|
||||
unique change.txt /*unique*
|
||||
unix os_unix.txt /*unix*
|
||||
unlisted-buffer windows.txt /*unlisted-buffer*
|
||||
up-down-motions motion.txt /*up-down-motions*
|
||||
@@ -11088,6 +11168,7 @@ v:beval_winnr eval.txt /*v:beval_winnr*
|
||||
v:char eval.txt /*v:char*
|
||||
v:charconvert_from eval.txt /*v:charconvert_from*
|
||||
v:charconvert_to eval.txt /*v:charconvert_to*
|
||||
v:clipmethod eval.txt /*v:clipmethod*
|
||||
v:cmdarg eval.txt /*v:cmdarg*
|
||||
v:cmdbang eval.txt /*v:cmdbang*
|
||||
v:collate eval.txt /*v:collate*
|
||||
@@ -11191,6 +11272,7 @@ v:version eval.txt /*v:version*
|
||||
v:versionlong eval.txt /*v:versionlong*
|
||||
v:vim_did_enter eval.txt /*v:vim_did_enter*
|
||||
v:warningmsg eval.txt /*v:warningmsg*
|
||||
v:wayland_display eval.txt /*v:wayland_display*
|
||||
v:windowid eval.txt /*v:windowid*
|
||||
v_! change.txt /*v_!*
|
||||
v_$ visual.txt /*v_$*
|
||||
@@ -11549,6 +11631,17 @@ w:quickfix_title quickfix.txt /*w:quickfix_title*
|
||||
w:var eval.txt /*w:var*
|
||||
waittime channel.txt /*waittime*
|
||||
warningmsg-variable eval.txt /*warningmsg-variable*
|
||||
wayland wayland.txt /*wayland*
|
||||
wayland-and-x11 wayland.txt /*wayland-and-x11*
|
||||
wayland-focus-steal wayland.txt /*wayland-focus-steal*
|
||||
wayland-gnome wayland.txt /*wayland-gnome*
|
||||
wayland-gui wayland.txt /*wayland-gui*
|
||||
wayland-persist wayland.txt /*wayland-persist*
|
||||
wayland-primary-selection wayland.txt /*wayland-primary-selection*
|
||||
wayland-seat wayland.txt /*wayland-seat*
|
||||
wayland-selections wayland.txt /*wayland-selections*
|
||||
wayland-useful wayland.txt /*wayland-useful*
|
||||
wayland.txt wayland.txt /*wayland.txt*
|
||||
wdl-syntax syntax.txt /*wdl-syntax*
|
||||
wdl.vim syntax.txt /*wdl.vim*
|
||||
white-space pattern.txt /*white-space*
|
||||
@@ -11556,6 +11649,7 @@ whitespace pattern.txt /*whitespace*
|
||||
wildcard editing.txt /*wildcard*
|
||||
wildcards editing.txt /*wildcards*
|
||||
wildmenumode() builtin.txt /*wildmenumode()*
|
||||
wildtrigger() builtin.txt /*wildtrigger()*
|
||||
win-scrolled-resized windows.txt /*win-scrolled-resized*
|
||||
win16 os_win32.txt /*win16*
|
||||
win32 os_win32.txt /*win32*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 9.1. Last change: 2024 Dec 31
|
||||
*term.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -472,13 +472,13 @@ Added by Vim (there are no standard codes for these):
|
||||
t_RV request terminal version string (works for *t_RV* *'t_RV'*
|
||||
xterm and other terminal emulators) The
|
||||
response is stored in |v:termresponse| |xterm-8bit|
|
||||
|'ttymouse'| |xterm-codes|
|
||||
'ttymouse' |xterm-codes|
|
||||
t_XM enable/disable mouse reporting, *t_XM* *'t_XM'*
|
||||
see |mouse-reporting| below
|
||||
t_RK request terminal keyboard protocol state; *t_RK* *'t_RK'*
|
||||
sent after |t_TI|
|
||||
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
|
||||
see |'ambiwidth'|
|
||||
see 'ambiwidth'
|
||||
The response is stored in |v:termu7resp|
|
||||
t_RF request terminal foreground color *t_RF* *'t_RF'*
|
||||
The response is stored in |v:termrfgresp|
|
||||
@@ -991,7 +991,7 @@ When the X-server clipboard is available, the command server described in
|
||||
*xterm-copy-paste*
|
||||
NOTE: In some (older) xterms, it's not possible to move the cursor past column
|
||||
95 or 223. This is an xterm problem, not Vim's. Get a newer xterm
|
||||
|color-xterm|. Also see |'ttymouse'|.
|
||||
|color-xterm|. Also see 'ttymouse'.
|
||||
|
||||
Copy/paste in xterm with (current mode NOT included in 'mouse'):
|
||||
1. Press left mouse button on first letter of text, move mouse pointer to last
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Feb 22
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Jul 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1711,6 +1711,9 @@ than 99 will be displayed as "9+".
|
||||
|
||||
If you want to customize the breakpoint signs to show `>>` in the signcolumn: >
|
||||
let g:termdebug_config['sign'] = '>>'
|
||||
You can also specify individual signs for the first several breakpoints: >
|
||||
let g:termdebug_config['signs'] = ['>1', '>2', '>3', '>4', '>5', '>6', '>7', '>8', '>9']
|
||||
let g:termdebug_config['sign'] = '>>'
|
||||
If you would like to use decimal (base 10) breakpoint signs: >
|
||||
let g:termdebug_config['sign_decimal'] = 1
|
||||
If the variable g:termdebug_config does not yet exist, you can use: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 May 30
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -115,7 +115,6 @@ Further Vim9 improvements:
|
||||
- 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?
|
||||
- a variant of type() that returns a different type for each class?
|
||||
@@ -290,7 +289,8 @@ Terminal emulator window:
|
||||
then when the window is resized redraw those lines.
|
||||
- Redrawing is slow with Motif. (Ramel Eshed)
|
||||
- For the GUI fill termios with default values, perhaps like pangoterm:
|
||||
http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
|
||||
(dead link)
|
||||
bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
@@ -1427,12 +1427,6 @@ Possibly include the needed code so that it can be built everywhere.
|
||||
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
|
||||
but the reference remains valid.
|
||||
|
||||
Need to try out instructions in INSTALLpc.txt about how to install all
|
||||
interfaces and how to build Vim with them.
|
||||
Appveyor build with self-installing executable, includes getting most
|
||||
interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build
|
||||
result: https://ci.appveyor.com/project/k-takata/vim/history
|
||||
|
||||
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
|
||||
|
||||
Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
|
||||
@@ -1655,7 +1649,7 @@ Or minpac: https://github.com/k-takata/minpac, since it leverages the builtin
|
||||
package feature.
|
||||
Long message about this from ZyX, 2014 Mar 23. And following replies.
|
||||
Also see (link seems dead):
|
||||
http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
|
||||
vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
|
||||
User view:
|
||||
- Support multiple sources, basically any http:// URL. Or a central place that
|
||||
will work for everybody (github? redirects from vim.org?).
|
||||
@@ -2202,8 +2196,6 @@ displayed in a window should return the value that's stored for that buffer.
|
||||
|
||||
":he ctrl_u" can be auto-corrected to ":he ctrl-u".
|
||||
|
||||
Diff mode out of sync. (Gary Johnson, 2010 Aug 4)
|
||||
|
||||
Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
|
||||
does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
|
||||
|
||||
@@ -2379,7 +2371,7 @@ Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
|
||||
Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
|
||||
|
||||
Using Aap to build Vim: add remarks about how to set personal preferences.
|
||||
Example on http://www.calmar.ws/tmp/aap.html (link seems dead)
|
||||
Example on www.calmar.ws/tmp/aap.html (link seems dead)
|
||||
|
||||
When 'diffopt' has "context:0" a single deleted line causes two folds to merge
|
||||
and mess up syncing. (Austin Jennings, 2008 Jan 31)
|
||||
@@ -2410,7 +2402,7 @@ Asked about latest version: 0.77.1 is on www.vim.org.
|
||||
More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
|
||||
|
||||
Amiga patches with vbcc. (Adrien Destugues, 2010 Aug 30)
|
||||
(link seems dead): http://pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff
|
||||
(link seems dead): pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff
|
||||
|
||||
Problem with compound words? (Bert, 2008 May 6)
|
||||
No warning for when flags are defined after they are used in an affix.
|
||||
@@ -2481,7 +2473,7 @@ Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
|
||||
Win32: XPM support only works with path without spaces. Patch by Mathias
|
||||
Michaelis, 2006 Jun 9. Another patch for more path names, 2006 May 31.
|
||||
New version (link seems dead):
|
||||
http://members.tcnet.ch/michaelis/vim/patches.zip
|
||||
members.tcnet.ch/michaelis/vim/patches.zip
|
||||
(also for other patches by Mathias, see mail Feb 22)
|
||||
|
||||
Win32: compiling with normal features and OLE fails. Patch by Mathias
|
||||
@@ -3021,7 +3013,7 @@ Win32 GUI known bugs:
|
||||
the screen.
|
||||
8 The -P argument doesn't work very well with many MDI applications.
|
||||
The last argument of CreateWindowEx() should be used, see MSDN docs.
|
||||
Tutorial (link seems dead): http://win32assembly.online.fr/tut32.html
|
||||
Tutorial (link seems dead): win32assembly.online.fr/tut32.html
|
||||
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
|
||||
of ":only" is highlighted like the cursor. (Lipelis)
|
||||
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
|
||||
@@ -3251,7 +3243,7 @@ Macintosh:
|
||||
7 Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
|
||||
Load the Perl library dynamically see Python sources file dynload_mac
|
||||
(Jack)
|
||||
dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
|
||||
dynamic linking: https://developer.apple.com/library/archive/technotes/tn2064/_index.html
|
||||
8 inputdialog() doesn't resize when giving more text lines. (David Fishburn,
|
||||
2006 Sept 28)
|
||||
8 Define vim_mkdir() for Macintosh.
|
||||
@@ -3600,7 +3592,7 @@ Most interesting new features to be added when all bugs have been fixed:
|
||||
198 standard http://www.jcp.org/en/jsr/detail?id=198.
|
||||
Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine)
|
||||
Plugin that uses a terminal emulator: http://vimplugin.sf.net
|
||||
And another one: http://www.satokar.com/viplugin/index.php
|
||||
And another one: (dead link) satokar.com/viplugin/index.php
|
||||
- STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
|
||||
Especially when using the scrollbar. Typing a cursor-movement command
|
||||
scrolls back to where the cursor is.
|
||||
@@ -3713,7 +3705,7 @@ Spell checking:
|
||||
Is COMPLEXPREFIXES necessary when we have flags for affixes?
|
||||
- There is no Finnish spell checking file. For openoffice Voikko is now
|
||||
used, which is based on Malaga (link seems dead):
|
||||
http://home.arcor.de/bjoern-beutel/malaga/ (Teemu Likonen)
|
||||
home.arcor.de/bjoern-beutel/malaga/ (Teemu Likonen)
|
||||
8 ":mkspell" still takes much too long in Hungarian dictionary from
|
||||
hunspell. Only solution appears to be to postpone secondary suffixes.
|
||||
8 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
|
||||
@@ -3764,14 +3756,14 @@ Spell checking:
|
||||
word/flags and affix.
|
||||
- Implement multiple flags for compound words and CMP item?
|
||||
Await comments from other spell checking authors.
|
||||
- Also see tklspell: http://tkltrans.sourceforge.net/
|
||||
- Also see tklspell: (dead link) tkltrans.sourceforge.net/
|
||||
8 Charles Campbell asks for method to add "contained" groups to existing
|
||||
syntax items (to add @Spell).
|
||||
Add ":syntax contains {pattern} add=@Spell" command? A bit like ":syn
|
||||
cluster" but change the contains list directly for matching syntax items.
|
||||
- References: MySpell library (in OpenOffice.org), (links seem dead):
|
||||
http://spellchecker.mozdev.org/source.html
|
||||
http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
|
||||
spellchecker.mozdev.org/source.html
|
||||
(dead link) whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
|
||||
author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
|
||||
8 It is currently not possible to mark "can not" as rare, because "can" and
|
||||
"not" are good words. Find a way to let "rare" overrule "good"?
|
||||
@@ -4517,7 +4509,7 @@ Win32 GUI:
|
||||
8 Could keep console open to run multiple commands, to avoid the need to hit
|
||||
return in every console.
|
||||
Also: Look at how Emacs does run external commands:
|
||||
http://www.cs.washington.edu/homes/voelker/ntemacs.html.
|
||||
(deak link) www.cs.washington.edu/homes/voelker/ntemacs.html.
|
||||
8 Need a separate PopUp menu for modeless selection. Need two new commands:
|
||||
Copy selection to clipboard, Paste selection (as typed text).
|
||||
8 Support copy/paste for other file formats. At least HTML, perhaps RTF.
|
||||
@@ -4687,7 +4679,7 @@ Autocommands:
|
||||
*'autosave'* *'as'* *'noautosave'* *'noas'*
|
||||
'autosave' 'as' number (default 0)
|
||||
Automatically write the current buffer to file N seconds after the
|
||||
last change has been made and when |'modified'| is still set.
|
||||
last change has been made and when 'modified' is still set.
|
||||
Default: 0 = do not autosave the buffer.
|
||||
Alternative: have 'autosave' use 'updatetime' and 'updatecount' but make
|
||||
them save the file itself besides the swapfile.
|
||||
@@ -4724,7 +4716,7 @@ Omni completion:
|
||||
http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
|
||||
Ivan Villanueva has something for Java.
|
||||
Emacs (link seems dead):
|
||||
http://www.xref-tech.com/xrefactory/more_c_completion.html
|
||||
www.xref-tech.com/xrefactory/more_c_completion.html
|
||||
Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
|
||||
- Pre-expand abbreviations, show which abbrevs would match?
|
||||
|
||||
@@ -5249,7 +5241,7 @@ Searching:
|
||||
to find out how much time has passed. Or use SIGALRM. Where to show the
|
||||
number?
|
||||
7 Support for approximate-regexps to find similar words (agrep
|
||||
http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
|
||||
http://www.tgries.de/agrep/ tre: (dead link) laurikari.net/tre/index.html).
|
||||
8 Add an item for a big character range, so that one can search for a
|
||||
chinese character: \z[234-1234] or \z[XX-YY] or \z[0x23-0x234].
|
||||
7 Add an item stack to allow matching (). One side is "push X on
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*uganda.txt* For Vim version 9.1. Last change: 2025 May 25
|
||||
*uganda.txt* For Vim version 9.1. Last change: 2025 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -21,6 +21,13 @@ Uganda anyway.
|
||||
The Open Publication License applies to the Vim documentation, see
|
||||
|manual-copyright|.
|
||||
|
||||
The icons used for the toolbar in the Win32 GUI are from the "Farm-Fresh Web
|
||||
Icons" set. These icons are licensed under the Creative Commons Attribution
|
||||
3.0 License and were created by FatCow Web Hosting. They were previously
|
||||
available at (dead link) fatcow.com/free-icons and are still available at:
|
||||
https://www.iconarchive.com/show/farm-fresh-icons-by-fatcow.1.html
|
||||
|
||||
|
||||
=== begin of license ===
|
||||
|
||||
VIM LICENSE
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*userfunc.txt* For Vim version 9.1. Last change: 2023 May 23
|
||||
*userfunc.txt* For Vim version 9.1. Last change: 2025 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -378,7 +378,7 @@ the script is a |Vim9| script, this may also be caused by the function not
|
||||
being exported.
|
||||
|
||||
*E132*
|
||||
The recursiveness of user functions is restricted with the |'maxfuncdepth'|
|
||||
The recursiveness of user functions is restricted with the 'maxfuncdepth'
|
||||
option.
|
||||
|
||||
It is also possible to use `:eval`. It does not support a range, but does
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jun 03
|
||||
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jul 22
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -614,7 +614,7 @@ Summary: *help-summary* >
|
||||
< for how the '|' is handled in mappings.
|
||||
|
||||
15) Command definitions are talked about :h command-topic, so use >
|
||||
:help command-bar
|
||||
:help command-bang
|
||||
< to find out about the '!' argument for custom commands.
|
||||
|
||||
16) Window management commands always start with CTRL-W, so you find the
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user