mirror of
https://github.com/zoriya/vim.git
synced 2025-12-30 02:48:24 +00:00
Compare commits
398 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02c51b1dd8 | ||
|
|
1926ae4184 | ||
|
|
db54e989b5 | ||
|
|
a7aba6ca50 | ||
|
|
78c5a5abc6 | ||
|
|
87018255e3 | ||
|
|
98e68c07ce | ||
|
|
03cd697d63 | ||
|
|
5790a54166 | ||
|
|
d606fccf6f | ||
|
|
aa64ba1587 | ||
|
|
476733f3d0 | ||
|
|
1db1514365 | ||
|
|
2ce070c27a | ||
|
|
6f00d17e8d | ||
|
|
3da696db6a | ||
|
|
346ac1429c | ||
|
|
063c562a37 | ||
|
|
00cd18222e | ||
|
|
d25021cf03 | ||
|
|
d8b86c937a | ||
|
|
e30d8e4ce0 | ||
|
|
6b5efcdd8e | ||
|
|
92d9ee5f4c | ||
|
|
0483e49f90 | ||
|
|
e6059c321b | ||
|
|
177437cc6f | ||
|
|
a66feb5fb5 | ||
|
|
249a208803 | ||
|
|
e2deb7e598 | ||
|
|
ad29f6af0a | ||
|
|
e7d79eb98a | ||
|
|
ffb13674d1 | ||
|
|
c30a90d9b2 | ||
|
|
35928ee8f8 | ||
|
|
c1f8bb37c6 | ||
|
|
6ffcc58be3 | ||
|
|
8b2457a381 | ||
|
|
fc93594d56 | ||
|
|
f5356bf675 | ||
|
|
596ad66d1d | ||
|
|
62145db91b | ||
|
|
504543f98b | ||
|
|
6b9c202549 | ||
|
|
4d00b835c4 | ||
|
|
f787ee8451 | ||
|
|
213c323184 | ||
|
|
e5f7cd0a60 | ||
|
|
983d808674 | ||
|
|
24a95f42b8 | ||
|
|
e7833e7347 | ||
|
|
0ce2c594d0 | ||
|
|
f36bbcd402 | ||
|
|
0661033075 | ||
|
|
0405405536 | ||
|
|
733bbcde77 | ||
|
|
342f4f626e | ||
|
|
23c92d93c1 | ||
|
|
ee17b6f70d | ||
|
|
7bcd25cad3 | ||
|
|
86cfb39030 | ||
|
|
1bd2cb1169 | ||
|
|
4e554d282c | ||
|
|
cc0bcf4c9f | ||
|
|
11d2aeeca4 | ||
|
|
da200c2f78 | ||
|
|
5856b07795 | ||
|
|
cf138d4ea5 | ||
|
|
f7ac0ef509 | ||
|
|
1689e847ff | ||
|
|
1690ec64ff | ||
|
|
18d2709aa1 | ||
|
|
67c951df4c | ||
|
|
9b04c50319 | ||
|
|
00cb247465 | ||
|
|
28a60f898d | ||
|
|
1c7397f3f1 | ||
|
|
f6d28fe2c9 | ||
|
|
d2a08ba0fa | ||
|
|
a4245a10ea | ||
|
|
00df69e62b | ||
|
|
c2a37013bd | ||
|
|
86eda07805 | ||
|
|
59adcb4c20 | ||
|
|
e4ba5df7c7 | ||
|
|
18143d3111 | ||
|
|
dccc29c228 | ||
|
|
3170342af3 | ||
|
|
282a94be99 | ||
|
|
544be0d893 | ||
|
|
623ba31821 | ||
|
|
e073a8b79f | ||
|
|
7db89bdc23 | ||
|
|
e651e110c1 | ||
|
|
233f956bd4 | ||
|
|
f44cbe96fa | ||
|
|
6e60cf444a | ||
|
|
ee9166eb3b | ||
|
|
fc68299d43 | ||
|
|
aa90d4f031 | ||
|
|
71ebf3baca | ||
|
|
db510ca805 | ||
|
|
15cbaae313 | ||
|
|
d69aecf141 | ||
|
|
3c3cf1d689 | ||
|
|
32f3461465 | ||
|
|
c8a034210f | ||
|
|
ced2c7394a | ||
|
|
889f6af371 | ||
|
|
4c6fe2e2ea | ||
|
|
e0bfb7d301 | ||
|
|
8b20203141 | ||
|
|
b2422f7540 | ||
|
|
67b0ecf754 | ||
|
|
21d3212361 | ||
|
|
9d093fd056 | ||
|
|
397e356d7b | ||
|
|
e1dc9a6275 | ||
|
|
acb91d3905 | ||
|
|
738ce77aa9 | ||
|
|
f3db141aed | ||
|
|
3775f777a6 | ||
|
|
b147d31489 | ||
|
|
456ae556b4 | ||
|
|
c41b7a26fc | ||
|
|
ce53e3ea55 | ||
|
|
7a9d1aa878 | ||
|
|
f6fc255e8d | ||
|
|
da16a1b471 | ||
|
|
816fbcc262 | ||
|
|
0ffa97e8fa | ||
|
|
6ad4a60a97 | ||
|
|
d7085a0635 | ||
|
|
eb91e24d5e | ||
|
|
ac2d8815ae | ||
|
|
e102e44fc6 | ||
|
|
e2528ae111 | ||
|
|
0b8b145bf8 | ||
|
|
1610528cc3 | ||
|
|
1bed993c01 | ||
|
|
6e55e85f92 | ||
|
|
5bbcfbc4a2 | ||
|
|
9d8ef7cc43 | ||
|
|
a96d544bc3 | ||
|
|
e3b6c78ddc | ||
|
|
4b9777a1df | ||
|
|
2ac708b548 | ||
|
|
e06afb7860 | ||
|
|
3e1e63de18 | ||
|
|
3ac2d3da5f | ||
|
|
55460da26c | ||
|
|
0e82b59df3 | ||
|
|
bddc6adca6 | ||
|
|
a5eb6785ef | ||
|
|
7129de868c | ||
|
|
00d07a97ad | ||
|
|
0382f05dbd | ||
|
|
f937ab32a1 | ||
|
|
fe1463674c | ||
|
|
2ba9d2e14e | ||
|
|
1d3e0e8f31 | ||
|
|
93ebb5e75e | ||
|
|
85c3a5bc26 | ||
|
|
d08745040b | ||
|
|
6c93c94929 | ||
|
|
f2534434c9 | ||
|
|
9b73902dbe | ||
|
|
73aba18eb7 | ||
|
|
d58bad6bc1 | ||
|
|
90c27b2803 | ||
|
|
639751d218 | ||
|
|
cd7293bf6c | ||
|
|
03e44a1d70 | ||
|
|
e3daa06be1 | ||
|
|
b49ad28d73 | ||
|
|
6a3897232a | ||
|
|
9a6cf34a1e | ||
|
|
e5e04306bf | ||
|
|
6dfdff3f27 | ||
|
|
f97f6bbf56 | ||
|
|
5c018bee0e | ||
|
|
d4e4ecbb37 | ||
|
|
74e1dada41 | ||
|
|
f39842f148 | ||
|
|
d809c0a903 | ||
|
|
58f39d89a8 | ||
|
|
8fbd9449e7 | ||
|
|
0db1ea4815 | ||
|
|
20f61d96f8 | ||
|
|
4c215ecdaf | ||
|
|
535b9e12d0 | ||
|
|
fa0094e162 | ||
|
|
1da9fdb8c7 | ||
|
|
e750f8c330 | ||
|
|
d42f95bbfb | ||
|
|
2f25e40b1f | ||
|
|
e8d6f03f6a | ||
|
|
3fc7a7e44a | ||
|
|
afe0466fb1 | ||
|
|
1193951beb | ||
|
|
c51fa7bc46 | ||
|
|
3d3a9152fa | ||
|
|
79d9cb4cb0 | ||
|
|
e059fae100 | ||
|
|
9180633e68 | ||
|
|
544b209a2d | ||
|
|
6e93689bde | ||
|
|
118f8e9da3 | ||
|
|
cdd934439d | ||
|
|
2ae7ffe0bc | ||
|
|
6551ace0fe | ||
|
|
b557f48982 | ||
|
|
171c5b9b03 | ||
|
|
757593c07a | ||
|
|
618e47d1cd | ||
|
|
8dabccd295 | ||
|
|
a76f3221cd | ||
|
|
b0d584d97a | ||
|
|
e34b51e95f | ||
|
|
c6d533b0ad | ||
|
|
6909639249 | ||
|
|
75dc1ed1ad | ||
|
|
be07caa071 | ||
|
|
6d626c4184 | ||
|
|
a0fddaa2f4 | ||
|
|
5e6e4042b1 | ||
|
|
a03380baa4 | ||
|
|
309ded1954 | ||
|
|
9fa35b1c38 | ||
|
|
e71e9d9ad3 | ||
|
|
c13b3d1350 | ||
|
|
20cd8699ac | ||
|
|
92997dda78 | ||
|
|
19a3bc3add | ||
|
|
6633611f42 | ||
|
|
16af913eee | ||
|
|
478668013f | ||
|
|
17befac581 | ||
|
|
ca22fc36a4 | ||
|
|
a6ab5e69d3 | ||
|
|
f6fb52b667 | ||
|
|
19968fc4ec | ||
|
|
f5d0f54790 | ||
|
|
9f29621415 | ||
|
|
72904d5fda | ||
|
|
2d0988ef93 | ||
|
|
d4376dc3eb | ||
|
|
bedc69f9d6 | ||
|
|
a055b441f5 | ||
|
|
4924ad099f | ||
|
|
787de412b8 | ||
|
|
ab9f2ecfd4 | ||
|
|
f9037f186a | ||
|
|
654bdbbd32 | ||
|
|
6ac1544e13 | ||
|
|
6cc8bc8366 | ||
|
|
8fc6a1dae0 | ||
|
|
0ffc17aa47 | ||
|
|
4b1cc7906f | ||
|
|
e1eaae27f4 | ||
|
|
25dec33c9b | ||
|
|
f244b2fbf2 | ||
|
|
b5f6fe9ca2 | ||
|
|
2b6a12af4d | ||
|
|
8b8f7d19f8 | ||
|
|
0bbc1be0a3 | ||
|
|
dbeadf05b6 | ||
|
|
6d192a4ac9 | ||
|
|
b23db545ce | ||
|
|
6235a109c4 | ||
|
|
28ae5a32fd | ||
|
|
fc3058495d | ||
|
|
c3172fe9e4 | ||
|
|
04510566b1 | ||
|
|
44a6b72d7f | ||
|
|
9994160bfe | ||
|
|
c5d2744c04 | ||
|
|
56bafd7a6a | ||
|
|
0a07646845 | ||
|
|
38ab19e00f | ||
|
|
4dd266cb66 | ||
|
|
b102728c20 | ||
|
|
e27578aee6 | ||
|
|
07a2b61d4c | ||
|
|
817db406bb | ||
|
|
442d1746f4 | ||
|
|
a5988f582e | ||
|
|
e9ef347c13 | ||
|
|
be5cdd1d63 | ||
|
|
d2af6c66fe | ||
|
|
d5475e8d8d | ||
|
|
6e940d9a1d | ||
|
|
8cfe52e6fb | ||
|
|
6e5ab2b994 | ||
|
|
008c91537b | ||
|
|
bfe377b8f2 | ||
|
|
825cf813fa | ||
|
|
b0efa49ed1 | ||
|
|
876f5fb570 | ||
|
|
e500ae8e29 | ||
|
|
2261c89a49 | ||
|
|
5a0dd71ed9 | ||
|
|
bfc461f756 | ||
|
|
ad0c442f1f | ||
|
|
4f389e7c0f | ||
|
|
4112acae08 | ||
|
|
a456b12011 | ||
|
|
20b33b56ad | ||
|
|
cf8cde2e5a | ||
|
|
8a35033782 | ||
|
|
e98fb643ec | ||
|
|
636d32b327 | ||
|
|
10f23e10a9 | ||
|
|
4868f637b8 | ||
|
|
b209b86e66 | ||
|
|
15a0a0281a | ||
|
|
7772c93a3e | ||
|
|
e4c79d3615 | ||
|
|
ba913b14dd | ||
|
|
5b0889b8bf | ||
|
|
d3515a1e88 | ||
|
|
4a8eb6e7a9 | ||
|
|
e5e4709a6a | ||
|
|
8ef1fbc0c3 | ||
|
|
badeedd913 | ||
|
|
02551c9de0 | ||
|
|
96d6c4aabe | ||
|
|
b25dbb3f9b | ||
|
|
0c6181fec4 | ||
|
|
1688938dd5 | ||
|
|
74cc13cc40 | ||
|
|
9ad1bf7afd | ||
|
|
e978b4534a | ||
|
|
9c30f43899 | ||
|
|
2f339aad6c | ||
|
|
f9c4c2f97d | ||
|
|
57a02ccf4c | ||
|
|
32f586eec1 | ||
|
|
6c313bbb04 | ||
|
|
7fe1089904 | ||
|
|
73b8209266 | ||
|
|
8878653a44 | ||
|
|
f1cc4d55b9 | ||
|
|
bacc83009b | ||
|
|
2d63e4b3cc | ||
|
|
db4fd29063 | ||
|
|
7b7b4cb6f2 | ||
|
|
f6cdab3704 | ||
|
|
288bf26c53 | ||
|
|
ca6ac99077 | ||
|
|
7e0bae024d | ||
|
|
cd4e4e169a | ||
|
|
d8f981138a | ||
|
|
5fee111149 | ||
|
|
422b9dcbfa | ||
|
|
b00df7aa38 | ||
|
|
8f5a8d8a8b | ||
|
|
21aaff3faa | ||
|
|
dd0ad25988 | ||
|
|
81b8bf5b4a | ||
|
|
6a500661a9 | ||
|
|
6efb198033 | ||
|
|
6019fed0c5 | ||
|
|
92f076e53e | ||
|
|
6ec7808c4a | ||
|
|
c41b3c9f95 | ||
|
|
1d7caa58e3 | ||
|
|
335c584940 | ||
|
|
c2bd205254 | ||
|
|
64dea84bb0 | ||
|
|
bd76c89e31 | ||
|
|
0401933a5b | ||
|
|
077ade4f67 | ||
|
|
b69b9d5e17 | ||
|
|
958e15bb1c | ||
|
|
2eb413f89b | ||
|
|
44ff25d524 | ||
|
|
7159ac7fec | ||
|
|
8967f6c4b9 | ||
|
|
a13eb2b147 | ||
|
|
8f566fdb1e | ||
|
|
84bc00e9b5 | ||
|
|
9fcde94176 | ||
|
|
ad34abee25 | ||
|
|
4c0089d696 | ||
|
|
16abd997c9 | ||
|
|
7c2beb48ef | ||
|
|
416bd916b4 | ||
|
|
80adaa8ae8 | ||
|
|
d392a74c5a | ||
|
|
e7d9ca2b3b | ||
|
|
bf5f189e44 | ||
|
|
19e6c4fd2d | ||
|
|
0256d76a33 | ||
|
|
e429893741 | ||
|
|
a2a90d5e20 | ||
|
|
590aae3557 | ||
|
|
8154e642aa |
69
.cirrus.yml
69
.cirrus.yml
@@ -1,46 +1,23 @@
|
||||
env:
|
||||
CIRRUS_CLONE_DEPTH: 3
|
||||
FEATURES: huge
|
||||
|
||||
freebsd_task:
|
||||
name: FreeBSD
|
||||
matrix:
|
||||
- name: FreeBSD 13.1
|
||||
freebsd_instance:
|
||||
image_family: freebsd-13-1
|
||||
- name: FreeBSD 12.4
|
||||
freebsd_instance:
|
||||
image_family: freebsd-12-4
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- pkg update -f
|
||||
- pkg install -y gettext
|
||||
build_script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC}
|
||||
test_script:
|
||||
- src/vim --version
|
||||
# run tests as user "cirrus" instead of root
|
||||
- pw useradd cirrus -m
|
||||
- chown -R cirrus:cirrus .
|
||||
- sudo -u cirrus make test
|
||||
|
||||
macos_task:
|
||||
name: macOS m1
|
||||
macos_instance:
|
||||
image: ghcr.io/cirruslabs/macos-ventura-xcode:latest
|
||||
env:
|
||||
# only run with clang, gcc is not real, it is a link to clang
|
||||
CC: clang
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- brew update
|
||||
- brew install gettext libtool diffutils
|
||||
build_script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC}
|
||||
test_script:
|
||||
- src/vim --version
|
||||
- make test
|
||||
#env:
|
||||
# CIRRUS_CLONE_DEPTH: 3
|
||||
# FEATURES: huge
|
||||
#
|
||||
#freebsd_task:
|
||||
# name: FreeBSD
|
||||
# matrix:
|
||||
# - name: FreeBSD 14.0
|
||||
# freebsd_instance:
|
||||
# image_family: freebsd-14-0
|
||||
# timeout_in: 20m
|
||||
# install_script:
|
||||
# - pkg install -y gettext
|
||||
# build_script:
|
||||
# - NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
# - ./configure --with-features=${FEATURES}
|
||||
# - make -j${NPROC}
|
||||
# test_script:
|
||||
# - src/vim --version
|
||||
# # run tests as user "cirrus" instead of root
|
||||
# - pw useradd cirrus -m
|
||||
# - chown -R cirrus:cirrus .
|
||||
# - sudo -u cirrus make test
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
service_name: github-actions
|
||||
31
.github/CODEOWNERS
vendored
31
.github/CODEOWNERS
vendored
@@ -18,6 +18,7 @@ runtime/autoload/netrwFileHandlers.vim @cecamp
|
||||
runtime/autoload/netrwSettings.vim @cecamp
|
||||
runtime/autoload/php.vim @david-szabo97
|
||||
runtime/autoload/rubycomplete.vim @segfault @dkearns
|
||||
runtime/autoload/rust.vim @lilyball
|
||||
runtime/autoload/tar.vim @cecamp
|
||||
runtime/autoload/vimball.vim @cecamp
|
||||
runtime/autoload/xmlformat.vim @chrisbra
|
||||
@@ -132,6 +133,7 @@ runtime/ftplugin/eruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/expect.vim @dkearns
|
||||
runtime/ftplugin/fennel.vim @gpanders
|
||||
runtime/ftplugin/fetchmail.vim @dkearns
|
||||
runtime/ftplugin/forth.vim @jkotlinski
|
||||
runtime/ftplugin/fpcmake.vim @dkearns
|
||||
runtime/ftplugin/freebasic.vim @dkearns
|
||||
runtime/ftplugin/fstab.vim @rid9
|
||||
@@ -150,17 +152,21 @@ runtime/ftplugin/go.vim @dbarnett
|
||||
runtime/ftplugin/gprof.vim @dpelle
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hare.vim @rsaihe
|
||||
runtime/ftplugin/heex.vim @cvincent
|
||||
runtime/ftplugin/hgcommit.vim @k-takata
|
||||
runtime/ftplugin/hog.vim @wtfbbqhax
|
||||
runtime/ftplugin/html.vim @dkearns
|
||||
runtime/ftplugin/i3config.vim @hiqua
|
||||
runtime/ftplugin/icon.vim @dkearns
|
||||
runtime/ftplugin/indent.vim @dkearns
|
||||
runtime/ftplugin/ishd.vim @dkearns
|
||||
runtime/ftplugin/j.vim @glts
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/jsonc.vim @izhakjakov
|
||||
runtime/ftplugin/julia.vim @carlobaldassi
|
||||
runtime/ftplugin/kconfig.vim @chrisbra
|
||||
runtime/ftplugin/kotlin.vim @udalov
|
||||
runtime/ftplugin/less.vim @genoma
|
||||
runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/lua.vim @dkearns
|
||||
@@ -180,13 +186,16 @@ runtime/ftplugin/pascal.vim @dkearns
|
||||
runtime/ftplugin/pbtxt.vim @lakshayg
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/perl.vim @petdance @dkearns
|
||||
runtime/ftplugin/php.vim @dkearns
|
||||
runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
runtime/ftplugin/ps1xml.vim @heaths
|
||||
runtime/ftplugin/pymanifest.vim @ObserverOfTime
|
||||
runtime/ftplugin/python.vim @tpict
|
||||
runtime/ftplugin/qb64.vim @dkearns
|
||||
runtime/ftplugin/qml.vim @ChaseKnowlden
|
||||
runtime/ftplugin/r.vim @jalvesaq
|
||||
runtime/ftplugin/racket.vim @benknoble
|
||||
runtime/ftplugin/readline.vim @dkearns
|
||||
@@ -197,11 +206,14 @@ runtime/ftplugin/routeros.vim @zainin
|
||||
runtime/ftplugin/rrst.vim @jalvesaq
|
||||
runtime/ftplugin/rst.vim @marshallward
|
||||
runtime/ftplugin/ruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/rust.vim @lilyball
|
||||
runtime/ftplugin/sass.vim @tpope
|
||||
runtime/ftplugin/scala.vim @derekwyatt
|
||||
runtime/ftplugin/scss.vim @tpope
|
||||
runtime/ftplugin/sdoc.vim @gpanders
|
||||
runtime/ftplugin/sed.vim @dkearns
|
||||
runtime/ftplugin/sh.vim @dkearns
|
||||
runtime/ftplugin/solidity.vim @cothi
|
||||
runtime/ftplugin/solution.vim @dkearns
|
||||
runtime/ftplugin/spec.vim @ignatenkobrain
|
||||
runtime/ftplugin/ssa.vim @ObserverOfTime
|
||||
@@ -215,6 +227,7 @@ runtime/ftplugin/toml.vim @averms
|
||||
runtime/ftplugin/tt2html.vim @petdance
|
||||
runtime/ftplugin/typescript.vim @dkearns
|
||||
runtime/ftplugin/typescriptreact.vim @dkearns
|
||||
runtime/ftplugin/unison.vim @chuwy
|
||||
runtime/ftplugin/vdf.vim @ObserverOfTime
|
||||
runtime/ftplugin/wast.vim @rhysd
|
||||
runtime/ftplugin/wget.vim @dkearns
|
||||
@@ -251,6 +264,7 @@ runtime/indent/go.vim @dbarnett
|
||||
runtime/indent/gyp.vim @ObserverOfTime
|
||||
runtime/indent/haml.vim @tpope
|
||||
runtime/indent/hare.vim @rsaihe
|
||||
runtime/indent/hog.vim @wtfbbqhax
|
||||
runtime/indent/idlang.vim @dkearns
|
||||
runtime/indent/j.vim @glts
|
||||
runtime/indent/java.vim @xuhdev
|
||||
@@ -258,6 +272,8 @@ runtime/indent/javascript.vim @bounceme
|
||||
runtime/indent/json.vim @elzr
|
||||
runtime/indent/jsonc.vim @izhakjakov
|
||||
runtime/indent/julia.vim @carlobaldassi
|
||||
runtime/indent/kotlin.vim @udalov
|
||||
runtime/indent/krl.vim @KnoP-01
|
||||
runtime/indent/ld.vim @dkearns
|
||||
runtime/indent/less.vim @genoma
|
||||
runtime/indent/liquid.vim @tpope
|
||||
@@ -274,8 +290,10 @@ runtime/indent/postscr.vim @mrdubya
|
||||
runtime/indent/prolog.vim @dkearns
|
||||
runtime/indent/ps1.vim @heaths
|
||||
runtime/indent/qb64.vim @dkearns
|
||||
runtime/indent/qml.vim @ChaseKnowlden
|
||||
runtime/indent/r.vim @jalvesaq
|
||||
runtime/indent/racket.vim @benknoble
|
||||
runtime/indent/rapid.vim @KnoP-01
|
||||
runtime/indent/readline.vim @dkearns
|
||||
runtime/indent/rhelp.vim @jalvesaq
|
||||
runtime/indent/rmd.vim @jalvesaq
|
||||
@@ -286,6 +304,7 @@ runtime/indent/sass.vim @tpope
|
||||
runtime/indent/scala.vim @derekwyatt
|
||||
runtime/indent/scss.vim @tpope
|
||||
runtime/indent/sh.vim @chrisbra
|
||||
runtime/indent/solidity.vim @cothi
|
||||
runtime/indent/systemverilog.vim @Kocha
|
||||
runtime/indent/tcl.vim @dkearns
|
||||
runtime/indent/tcsh.vim @dkearns
|
||||
@@ -308,7 +327,7 @@ runtime/plugin/tarPlugin.vim @cecamp
|
||||
runtime/plugin/vimballPlugin.vim @cecamp
|
||||
runtime/plugin/zipPlugin.vim @cecamp
|
||||
runtime/plugin/manpager.vim @Konfekt
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/syntax/abaqus.vim @costerwi
|
||||
runtime/syntax/aidl.vim @dpelle
|
||||
runtime/syntax/amiga.vim @cecamp
|
||||
@@ -369,6 +388,7 @@ runtime/syntax/gitolite.vim @sitaramc
|
||||
runtime/syntax/gitrebase.vim @tpope
|
||||
runtime/syntax/go.vim @bhcleek
|
||||
runtime/syntax/godoc.vim @dbarnett
|
||||
runtime/syntax/gp.vim @KBelabas
|
||||
runtime/syntax/gprof.vim @dpelle
|
||||
runtime/syntax/groff.vim @jmarshall
|
||||
runtime/syntax/gyp.vim @ObserverOfTime
|
||||
@@ -377,6 +397,7 @@ runtime/syntax/hare.vim @rsaihe
|
||||
runtime/syntax/haskell.vim @coot
|
||||
runtime/syntax/hgcommit.vim @k-takata
|
||||
runtime/syntax/hitest.vim @lacygoill
|
||||
runtime/syntax/hog.vim @wtfbbqhax
|
||||
runtime/syntax/hollywood.vim @sodero
|
||||
runtime/syntax/html.vim @dkearns
|
||||
runtime/syntax/i3config.vim @hiqua
|
||||
@@ -389,6 +410,8 @@ runtime/syntax/javascript.vim @fleiner
|
||||
runtime/syntax/jsonc.vim @izhakjakov
|
||||
runtime/syntax/julia.vim @carlobaldassi
|
||||
runtime/syntax/kconfig.vim @chrisbra
|
||||
runtime/syntax/kotlin.vim @udalov
|
||||
runtime/syntax/krl.vim @KnoP-01
|
||||
runtime/syntax/less.vim @genoma
|
||||
runtime/syntax/lex.vim @cecamp
|
||||
runtime/syntax/liquid.vim @tpope
|
||||
@@ -428,10 +451,13 @@ runtime/syntax/prolog.vim @XVilka
|
||||
runtime/syntax/ps1.vim @heaths
|
||||
runtime/syntax/ps1xml.vim @heaths
|
||||
runtime/syntax/psl.vim @danielkho
|
||||
runtime/syntax/pymanifest.vim @ObserverOfTime
|
||||
runtime/syntax/qb64.vim @dkearns
|
||||
runtime/syntax/qml.vim @ChaseKnowlden
|
||||
runtime/syntax/r.vim @jalvesaq
|
||||
runtime/syntax/racket.vim @benknoble
|
||||
runtime/syntax/raml.vim @in3d
|
||||
runtime/syntax/rapid.vim @KnoP-01
|
||||
runtime/syntax/ratpoison.vim @trapd00r
|
||||
runtime/syntax/rc.vim @chrisbra
|
||||
runtime/syntax/rcs.vim @hdima
|
||||
@@ -452,6 +478,7 @@ runtime/syntax/sdoc.vim @gpanders
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/sh.vim @cecamp
|
||||
runtime/syntax/sm.vim @cecamp
|
||||
runtime/syntax/solidity.vim @cothi
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
runtime/syntax/sqloracle.vim @chrisbra
|
||||
runtime/syntax/squirrel.vim @zenmatic
|
||||
@@ -477,6 +504,7 @@ runtime/syntax/tt2js.vim @petdance
|
||||
runtime/syntax/typescript.vim @HerringtonDarkholme
|
||||
runtime/syntax/typescriptcommon.vim @HerringtonDarkholme
|
||||
runtime/syntax/typescriptreact.vim @HerringtonDarkholme
|
||||
runtime/syntax/unison.vim @chuwy
|
||||
runtime/syntax/vdf.vim @ObserverOfTime
|
||||
runtime/syntax/vim.vim @cecamp
|
||||
runtime/syntax/vroom.vim @dbarnett
|
||||
@@ -491,6 +519,7 @@ runtime/syntax/xs.vim @petdance
|
||||
runtime/syntax/xslt.vim @Boobies
|
||||
runtime/syntax/xxd.vim @cecamp
|
||||
runtime/syntax/yacc.vim @cecamp
|
||||
runtime/syntax/zserio.vim @dpelle
|
||||
runtime/syntax/zsh.vim @chrisbra
|
||||
runtime/tutor/tutor.eo @dpelle
|
||||
runtime/tutor/tutor.eo.utf-8 @dpelle
|
||||
|
||||
60
.github/labeler.yml
vendored
Normal file
60
.github/labeler.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
# list of labels and minimatch globs to match to apply the label.
|
||||
|
||||
CI:
|
||||
- any: ['.cirrus.yml']
|
||||
- any: ['.github/dependabot.yml']
|
||||
- any: ['.github/labeler.yml']
|
||||
- any: ['.github/workflows/*']
|
||||
- any: ['.appveyor.yml']
|
||||
- any: ['.codecov.yml']
|
||||
|
||||
translation:
|
||||
- any: ['src/po/*.po']
|
||||
|
||||
if_lua:
|
||||
- any: ['src/if_lua.c']
|
||||
- any: ['src/proto/if_lua.pro']
|
||||
- any: ['runtime/doc/if_lua.txt']
|
||||
|
||||
if_mzscheme:
|
||||
- any: ['src/if_mzsch.c']
|
||||
- any: ['src/if_mzsch.h']
|
||||
- any: ['src/proto/if_mzsch.pro']
|
||||
- any: ['runtime/doc/if_mzsch.txt']
|
||||
|
||||
if_perl:
|
||||
- any: ['src/if_perl.xs']
|
||||
- any: ['src/if_perlsfio.c']
|
||||
- any: ['src/proto/if_perl.pro']
|
||||
- any: ['src/proto/if_perlsfio.pro']
|
||||
- any: ['runtime/doc/if_perl.txt']
|
||||
|
||||
if_python:
|
||||
- any: ['src/if_py_both.h']
|
||||
- any: ['runtime/doc/if_pyth.txt']
|
||||
- any: ['src/if_python.c']
|
||||
- any: ['src/if_python3.c']
|
||||
- any: ['src/proto/if_python.pro']
|
||||
- any: ['src/proto/if_python3.pro']
|
||||
|
||||
if_ruby:
|
||||
- any: ['src/if_ruby.c']
|
||||
- any: ['src/proto/if_ruby.pro']
|
||||
- any: ['runtime/doc/if_ruby.txt']
|
||||
|
||||
if_tcl:
|
||||
- any: ['src/if_tcl.c']
|
||||
- any: ['src/proto/if_tcl.pro']
|
||||
- any: ['runtime/doc/if_tcl.txt']
|
||||
|
||||
runtime:
|
||||
- any: ['runtime/ftplugin']
|
||||
- any: ['runtime/syntax']
|
||||
- any: ['runtime/indent']
|
||||
- any: ['runtime/pack/dist/opt/termdebug/plugin/termdebug.vim']
|
||||
|
||||
termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
|
||||
|
||||
netrw:
|
||||
- any: ['runtime/plugin/netrwPlugin.vim']
|
||||
- any: ['runtime/autoload/netrw*']
|
||||
113
.github/workflows/ci.yml
vendored
113
.github/workflows/ci.yml
vendored
@@ -26,7 +26,6 @@ jobs:
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
CFLAGS: -Wno-deprecated-declarations
|
||||
LOG_DIR: ${{ github.workspace }}/logs
|
||||
TERM: xterm
|
||||
DISPLAY: ':99'
|
||||
@@ -37,56 +36,76 @@ jobs:
|
||||
matrix:
|
||||
features: [tiny, normal, huge]
|
||||
compiler: [clang, gcc]
|
||||
extra: [none]
|
||||
extra: [[]]
|
||||
# Only use non-native architecture when features != huge.
|
||||
# features=huge tries to install python3-dev, which fails to install
|
||||
# for the non-native architecture.
|
||||
architecture: [native]
|
||||
include:
|
||||
- features: tiny
|
||||
compiler: clang
|
||||
extra: nogui
|
||||
extra: [nogui]
|
||||
- features: tiny
|
||||
compiler: gcc
|
||||
extra: nogui
|
||||
extra: [nogui]
|
||||
- features: normal
|
||||
shadow: ./src/shadow
|
||||
- features: huge
|
||||
coverage: true
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
architecture: i386
|
||||
- features: huge
|
||||
coverage: true
|
||||
extra: testgui
|
||||
uchar: true
|
||||
- features: huge
|
||||
compiler: clang
|
||||
extra: asan
|
||||
interface: dynamic
|
||||
python3: stable-abi
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
coverage: true
|
||||
extra: unittests
|
||||
interface: dynamic
|
||||
extra: [uchar, testgui]
|
||||
- features: huge
|
||||
compiler: clang
|
||||
# Lua5.1 is the most widely used version (since it's what LuaJIT is
|
||||
# compatible with), so ensure it works
|
||||
lua_ver: '5.1'
|
||||
extra: [asan]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
coverage: true
|
||||
extra: [unittests]
|
||||
- features: normal
|
||||
compiler: gcc
|
||||
extra: vimtags
|
||||
extra: [vimtags]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- run: sudo dpkg --add-architecture i386
|
||||
if: matrix.architecture == 'i386'
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
PKGS=( \
|
||||
gettext \
|
||||
libgtk2.0-dev \
|
||||
libgtk2.0-dev:${{ matrix.architecture }} \
|
||||
desktop-file-utils \
|
||||
libtool-bin \
|
||||
libncurses-dev:${{ matrix.architecture }} \
|
||||
libxt-dev:${{ matrix.architecture }} \
|
||||
)
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
LUA_VER=${{ matrix.lua_ver || '5.4' }}
|
||||
PKGS+=( \
|
||||
autoconf \
|
||||
gdb \
|
||||
lcov \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python2-dev \
|
||||
python3-dev \
|
||||
liblua5.4-dev \
|
||||
lua5.4 \
|
||||
liblua${LUA_VER}-dev \
|
||||
lua${LUA_VER} \
|
||||
ruby-dev \
|
||||
tcl-dev \
|
||||
cscope \
|
||||
@@ -98,7 +117,7 @@ jobs:
|
||||
- name: Install gcc-${{ env.GCC_VER }}
|
||||
if: matrix.compiler == 'gcc'
|
||||
run: |
|
||||
sudo apt-get install -y gcc-${{ env.GCC_VER }}
|
||||
sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ matrix.architecture }}
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100
|
||||
sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }}
|
||||
|
||||
@@ -135,16 +154,20 @@ jobs:
|
||||
;;
|
||||
huge)
|
||||
echo "TEST=scripttests test_libvterm"
|
||||
echo "CONFOPT=--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
INTERFACE=${{ matrix.interface || 'yes' }}
|
||||
if ${{ matrix.python3 == 'stable-abi' }}; then
|
||||
PYTHON3_CONFOPT="--with-python3-stable-abi=3.8"
|
||||
fi
|
||||
echo "CONFOPT=--enable-perlinterp=${INTERFACE} --enable-pythoninterp=${INTERFACE} --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}"
|
||||
;;
|
||||
esac
|
||||
|
||||
if ${{ matrix.coverage == true }}; then
|
||||
CFLAGS="$CFLAGS --coverage -DUSE_GCOV_FLUSH"
|
||||
CFLAGS="${CFLAGS} --coverage -DUSE_GCOV_FLUSH"
|
||||
echo "LDFLAGS=--coverage"
|
||||
fi
|
||||
if ${{ matrix.uchar == true }}; then
|
||||
CFLAGS="$CFLAGS -funsigned-char"
|
||||
if ${{ contains(matrix.extra, 'uchar') }}; then
|
||||
CFLAGS="${CFLAGS} -funsigned-char"
|
||||
fi
|
||||
if ${{ contains(matrix.extra, 'testgui') }}; then
|
||||
echo "TEST=-C src testgui"
|
||||
@@ -161,7 +184,7 @@ jobs:
|
||||
if ${{ contains(matrix.extra, 'vimtags') }}; then
|
||||
echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
|
||||
fi
|
||||
echo "CFLAGS=$CFLAGS"
|
||||
echo "CFLAGS=${CFLAGS}"
|
||||
) >> $GITHUB_ENV
|
||||
|
||||
- name: Set up system
|
||||
@@ -178,17 +201,16 @@ jobs:
|
||||
if: (!(contains(matrix.extra, 'unittests') || contains(matrix.extra, 'vimtags')))
|
||||
env:
|
||||
DEST_DIR: ${{ env.TMPDIR }}/linux-modules-extra-${{ env.LINUX_VERSION }}
|
||||
uses: tecolicom/actions-use-apt-tools@main
|
||||
with:
|
||||
tools: linux-modules-extra-${{ env.LINUX_VERSION }}
|
||||
path: "${DEST_DIR}"
|
||||
|
||||
- name: modprobe snd-dummy
|
||||
if: (!(contains(matrix.extra, 'unittests') || contains(matrix.extra, 'vimtags')))
|
||||
run: |
|
||||
cd /lib/modules/${{ env.LINUX_VERSION }}
|
||||
if apt-cache show linux-modules-extra-${{ env.LINUX_VERSION }} >/dev/null 2>&1 ; then
|
||||
sudo apt-get install -d -y linux-modules-extra-${{ env.LINUX_VERSION }}
|
||||
sudo dpkg -x /var/cache/apt/archives/linux-modules-extra-${{ env.LINUX_VERSION }}*.deb "${DEST_DIR}"
|
||||
tar -cvC "${DEST_DIR}"/lib/modules/${{ env.LINUX_VERSION }} kernel/sound | sudo tar -x
|
||||
sudo depmod --verbose
|
||||
sudo modprobe --verbose snd-dummy
|
||||
else
|
||||
echo "Module " linux-modules-extra-${{ env.LINUX_VERSION }} "doesn't seem to exist, continue anyway"; exit 0
|
||||
fi
|
||||
sudo modprobe --verbose snd-dummy || true
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(matrix.extra, 'unittests')
|
||||
@@ -226,11 +248,17 @@ jobs:
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 20
|
||||
timeout-minutes: 25
|
||||
run: |
|
||||
do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||
do_test make ${SHADOWOPT} ${TEST}
|
||||
|
||||
- name: Vim tags
|
||||
if: contains(matrix.extra, 'vimtags')
|
||||
run: |
|
||||
# This will exit with an error code if the generated vim tags differs from source.
|
||||
git diff --exit-code -- runtime/doc/tags
|
||||
|
||||
- name: Generate gcov files
|
||||
if: matrix.coverage
|
||||
run: |
|
||||
@@ -269,14 +297,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.features == 'huge'
|
||||
run: |
|
||||
brew install lua
|
||||
echo "LUA_PREFIX=/usr/local" >> $GITHUB_ENV
|
||||
brew uninstall perl
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
@@ -365,8 +392,8 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64 }
|
||||
- { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: yes, arch: x86, coverage: yes }
|
||||
- { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, python3: stable }
|
||||
- { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: yes, arch: x86, python3: stable, coverage: yes }
|
||||
- { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: yes, arch: x86 }
|
||||
- { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: no, arch: x64, coverage: yes }
|
||||
- { features: NORMAL, toolchain: msvc, VIMDLL: yes, GUI: no, arch: x86 }
|
||||
@@ -431,7 +458,7 @@ jobs:
|
||||
release: false
|
||||
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Create a list of download URLs
|
||||
shell: cmd
|
||||
@@ -497,6 +524,11 @@ jobs:
|
||||
) else (
|
||||
set GUI=${{ matrix.GUI }}
|
||||
)
|
||||
if "${{ matrix.python3 }}"=="stable" (
|
||||
set PYTHON3_STABLE=yes
|
||||
) else (
|
||||
set PYTHON3_STABLE=no
|
||||
)
|
||||
if "${{ matrix.features }}"=="HUGE" (
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
FEATURES=${{ matrix.features }} ^
|
||||
@@ -504,6 +536,7 @@ jobs:
|
||||
DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
|
||||
DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
|
||||
DYNAMIC_PYTHON3_STABLE_ABI=%PYTHON3_STABLE% ^
|
||||
DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR%
|
||||
) else (
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
@@ -521,6 +554,11 @@ jobs:
|
||||
else
|
||||
GUI=${{ matrix.GUI }}
|
||||
fi
|
||||
if [ "${{ matrix.python3 }}" = "stable" ]; then
|
||||
PYTHON3_STABLE=yes
|
||||
else
|
||||
PYTHON3_STABLE=no
|
||||
fi
|
||||
if [ "${{ matrix.features }}" = "HUGE" ]; then
|
||||
mingw32-make -f Make_ming.mak -j2 \
|
||||
FEATURES=${{ matrix.features }} \
|
||||
@@ -528,6 +566,7 @@ jobs:
|
||||
DYNAMIC_LUA=yes LUA=${LUA_DIR_SLASH} \
|
||||
DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
|
||||
DYNAMIC_PYTHON3_STABLE_ABI=${PYTHON3_STABLE} \
|
||||
DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR} \
|
||||
STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }}
|
||||
else
|
||||
|
||||
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@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
||||
3
.github/workflows/coverity.yml
vendored
3
.github/workflows/coverity.yml
vendored
@@ -13,14 +13,13 @@ jobs:
|
||||
|
||||
env:
|
||||
CC: gcc
|
||||
CFLAGS: -Wno-deprecated-declarations
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
if: env.TOKEN
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Coverity
|
||||
if: env.TOKEN
|
||||
|
||||
24
.github/workflows/label.yml
vendored
Normal file
24
.github/workflows/label.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# This workflow will triage pull requests and apply a label based on the
|
||||
# paths that are modified in the pull request.
|
||||
#
|
||||
# To use this workflow, you will need to set up a .github/labeler.yml
|
||||
# file with configuration. For more information, see:
|
||||
# https://github.com/actions/labeler
|
||||
|
||||
name: Labeler
|
||||
on: [pull_request_target]
|
||||
|
||||
jobs:
|
||||
label:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
configuration-path: .github/labeler.yml
|
||||
sync-labels: ''
|
||||
1
Filelist
1
Filelist
@@ -217,6 +217,7 @@ SRC_ALL = \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
src/testdir/crash/* \
|
||||
src/proto.h \
|
||||
src/protodef.h \
|
||||
src/proto/alloc.pro \
|
||||
|
||||
4
LICENSE
4
LICENSE
@@ -21,8 +21,8 @@ II) It is allowed to distribute a modified (or extended) version of Vim,
|
||||
maintainer will do with your changes and under what license they
|
||||
will be distributed is negotiable. If there has been no negotiation
|
||||
then this license, or a later version, also applies to your changes.
|
||||
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
|
||||
changes it will be announced in appropriate places (most likely
|
||||
The current maintainers are listed here: https://github.com/orgs/vim/people.
|
||||
If this changes it will be announced in appropriate places (most likely
|
||||
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
|
||||
impossible to contact the maintainer, the obligation to send him
|
||||
your changes ceases. Once the maintainer has confirmed that he has
|
||||
|
||||
79
README.md
79
README.md
@@ -1,17 +1,21 @@
|
||||
[](https://www.vim.org)
|
||||
# [](https://www.vim.org)
|
||||
|
||||
[](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [](https://ci.appveyor.com/project/chrisbra/vim) [](https://cirrus-ci.com/github/vim/vim) [](https://codecov.io/gh/vim/vim?branch=master) [](https://scan.coverity.com/projects/vim) [](https://buildd.debian.org/vim) [](https://repology.org/metapackage/vim) [](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
|
||||
|
||||
<sub>For translations of this README see the end.</sub>
|
||||
[](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
|
||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||
[](https://cirrus-ci.com/github/vim/vim)
|
||||
[](https://codecov.io/gh/vim/vim?branch=master)
|
||||
[](https://scan.coverity.com/projects/vim)
|
||||
[](https://buildd.debian.org/vim)
|
||||
[](https://repology.org/metapackage/vim)
|
||||
[](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
|
||||
|
||||
If you find a bug or want to discuss the best way to add a new feature, please
|
||||
open an [issue](https://github.com/vim/vim/issues).
|
||||
[open an issue](https://github.com/vim/vim/issues/new/choose).
|
||||
If you have a question or want to discuss the best way to do something with
|
||||
Vim, you can use [StackExchange](https://vi.stackexchange.com/)
|
||||
or one of the [Maillists](https://www.vim.org/community.php).
|
||||
|
||||
|
||||
## What is Vim? ##
|
||||
## What is Vim?
|
||||
|
||||
Vim is a greatly improved version of the good old UNIX editor
|
||||
[Vi](https://en.wikipedia.org/wiki/Vi). Many new
|
||||
@@ -35,7 +39,7 @@ Amiga DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
For Vim9 script see [README_VIM9](README_VIM9.md).
|
||||
|
||||
## Distribution ##
|
||||
## Distribution
|
||||
|
||||
You can often use your favorite package manager to install Vim. On Mac and
|
||||
Linux a small version of Vim is pre-installed, you still need to install Vim
|
||||
@@ -55,48 +59,45 @@ Some popular places to get the latest Vim:
|
||||
* Get a Windows executable from the
|
||||
[vim-win32-installer](https://github.com/vim/vim-win32-installer/releases) repository.
|
||||
|
||||
|
||||
|
||||
## Compiling ##
|
||||
## Compiling
|
||||
|
||||
If you obtained a binary distribution you don't need to compile Vim. If you
|
||||
obtained a source distribution, all the stuff for compiling Vim is in the
|
||||
[`src`](/src) directory. See [`src/INSTALL`](src/INSTALL) for instructions.
|
||||
[`src`](./src/) directory. See [`src/INSTALL`](./src/INSTALL) for instructions.
|
||||
|
||||
|
||||
## Installation ##
|
||||
## Installation
|
||||
|
||||
See one of these files for system-specific instructions. Either in the
|
||||
[READMEdir directory](./READMEdir/) (in the repository) or
|
||||
the top directory (if you unpack an archive):
|
||||
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_haiku.txt Haiku
|
||||
README_vms.txt VMS
|
||||
```
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_haiku.txt Haiku
|
||||
README_vms.txt VMS
|
||||
```
|
||||
|
||||
There are other `README_*.txt` files, depending on the distribution you used.
|
||||
|
||||
|
||||
## Documentation ##
|
||||
## Documentation
|
||||
|
||||
The Vim tutor is a one hour training course for beginners. Often it can be
|
||||
started as `vimtutor`. See `:help tutor` for more information.
|
||||
|
||||
The best is to use `:help` in Vim. If you don't have an executable yet, read
|
||||
[`runtime/doc/help.txt`](/runtime/doc/help.txt).
|
||||
[`runtime/doc/help.txt`](./runtime/doc/help.txt).
|
||||
It contains pointers to the other documentation files.
|
||||
The User Manual reads like a book and is recommended to learn to use
|
||||
Vim. See `:help user-manual`.
|
||||
|
||||
|
||||
## Copying ##
|
||||
## Copying
|
||||
|
||||
Vim is Charityware. You can use and copy it as much as you like, but you are
|
||||
encouraged to make a donation to help orphans in Uganda. Please read the file
|
||||
[`runtime/doc/uganda.txt`](runtime/doc/uganda.txt)
|
||||
[`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt)
|
||||
for details (do `:help uganda` inside Vim).
|
||||
|
||||
Summary of the license: There are no restrictions on using or distributing an
|
||||
@@ -105,28 +106,25 @@ text must always be included. For modified versions, a few restrictions apply.
|
||||
The license is GPL compatible, you may compile Vim with GPL libraries and
|
||||
distribute it.
|
||||
|
||||
|
||||
## Sponsoring ##
|
||||
## Sponsoring
|
||||
|
||||
Fixing bugs and adding new features takes a lot of time and effort. To show
|
||||
your appreciation for the work and motivate Bram and others to continue
|
||||
working on Vim please send a donation.
|
||||
|
||||
Since Bram is back to a paid job the money will now be used to help children
|
||||
in Uganda. See [`runtime/doc/uganda.txt`](runtime/doc/uganda.txt). But
|
||||
in Uganda. See [`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt). But
|
||||
at the same time donations increase Bram's motivation to keep working on Vim!
|
||||
|
||||
For the most recent information about sponsoring look on the Vim web site:
|
||||
https://www.vim.org/sponsor/
|
||||
|
||||
|
||||
## Contributing ##
|
||||
## Contributing
|
||||
|
||||
If you would like to help make Vim better, see the
|
||||
[CONTRIBUTING.md](/CONTRIBUTING.md) file.
|
||||
[CONTRIBUTING.md](./CONTRIBUTING.md) file.
|
||||
|
||||
|
||||
## Information ##
|
||||
## Information
|
||||
|
||||
If you are on macOS, you can use [Macvim](https://macvim-dev.github.io/macvim/).
|
||||
|
||||
@@ -141,14 +139,15 @@ If you still have problems or any other questions, use one of the mailing
|
||||
lists to discuss them with Vim users and developers:
|
||||
https://www.vim.org/maillist.php
|
||||
|
||||
If nothing else works, report bugs directly:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
If nothing else works, report bugs directly to the vim-dev mailing list:
|
||||
`<vim-dev@vim.org>`
|
||||
|
||||
## Main author
|
||||
|
||||
## Main author ##
|
||||
|
||||
Send any other comments, patches, flowers and suggestions to:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
Most of Vim was created by Bram Moolenaar `<Bram@vim.org>`
|
||||
[Bram-Moolenaar](https://vimhelp.org/version9.txt.html#Bram-Moolenaar)
|
||||
|
||||
Send any other comments, patches, flowers and suggestions to the vim-dev mailing list:
|
||||
`<vim-dev@vim.org>`
|
||||
|
||||
This is `README.md` for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
10
README.txt
10
README.txt
@@ -122,12 +122,14 @@ If you still have problems or any other questions, use one of the mailing
|
||||
lists to discuss them with Vim users and developers:
|
||||
https://www.vim.org/maillist.php
|
||||
|
||||
If nothing else works, report bugs directly:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
If nothing else works, report bugs directly to the vim-dev mailing list:
|
||||
<vim-dev@vim.org>
|
||||
|
||||
|
||||
MAIN AUTHOR
|
||||
|
||||
Send any other comments, patches, flowers and suggestions to:
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|
|
||||
|
||||
Bram Moolenaar E-mail: Bram@vim.org
|
||||
Send any other comments, patches, flowers and suggestions to the vim-dev mailing list:
|
||||
|
||||
<vim-dev@vim.org>
|
||||
|
||||
8
SECURITY.md
Normal file
8
SECURITY.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
If you want to report a security issue, please use [huntr.dev](https://huntr.dev/bounties/disclose?target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim) to privately disclose the issue to us.
|
||||
They also have rewards in the form of money, swag and CVEs.
|
||||
|
||||
**Please don't publicly disclose the issue until it has been addressed by us.**
|
||||
@@ -1,3 +1,3 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function/
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror -Wno-deprecated-declarations/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-shadow/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/
|
||||
|
||||
149
runtime/autoload/cargo.vim
Normal file
149
runtime/autoload/cargo.vim
Normal file
@@ -0,0 +1,149 @@
|
||||
" Last Modified: 2023-09-11
|
||||
|
||||
function! cargo#Load()
|
||||
" Utility call to get this script loaded, for debugging
|
||||
endfunction
|
||||
|
||||
function! cargo#cmd(args) abort
|
||||
" Trim trailing spaces. This is necessary since :terminal command parses
|
||||
" trailing spaces as an empty argument.
|
||||
let args = substitute(a:args, '\s\+$', '', '')
|
||||
if exists('g:cargo_shell_command_runner')
|
||||
let cmd = g:cargo_shell_command_runner
|
||||
elseif has('terminal')
|
||||
let cmd = 'terminal'
|
||||
elseif has('nvim')
|
||||
let cmd = 'noautocmd new | terminal'
|
||||
else
|
||||
let cmd = '!'
|
||||
endif
|
||||
execute cmd 'cargo' args
|
||||
endfunction
|
||||
|
||||
function! s:nearest_cargo(...) abort
|
||||
" If the second argument is not specified, the first argument determines
|
||||
" whether we will start from the current directory or the directory of the
|
||||
" current buffer, otherwise, we start with the provided path on the
|
||||
" second argument.
|
||||
|
||||
let l:is_getcwd = get(a:, 1, 0)
|
||||
if l:is_getcwd
|
||||
let l:starting_path = get(a:, 2, getcwd())
|
||||
else
|
||||
let l:starting_path = get(a:, 2, expand('%:p:h'))
|
||||
endif
|
||||
|
||||
return findfile('Cargo.toml', l:starting_path . ';')
|
||||
endfunction
|
||||
|
||||
function! cargo#nearestCargo(is_getcwd) abort
|
||||
return s:nearest_cargo(a:is_getcwd)
|
||||
endfunction
|
||||
|
||||
function! cargo#nearestWorkspaceCargo(is_getcwd) abort
|
||||
let l:nearest = s:nearest_cargo(a:is_getcwd)
|
||||
while l:nearest !=# ''
|
||||
for l:line in readfile(l:nearest, '', 0x100)
|
||||
if l:line =~# '\V[workspace]'
|
||||
return l:nearest
|
||||
endif
|
||||
endfor
|
||||
let l:next = fnamemodify(l:nearest, ':p:h:h')
|
||||
let l:nearest = s:nearest_cargo(0, l:next)
|
||||
endwhile
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! cargo#nearestRootCargo(is_getcwd) abort
|
||||
" Try to find a workspace Cargo.toml, and if not found, take the nearest
|
||||
" regular Cargo.toml
|
||||
let l:workspace_cargo = cargo#nearestWorkspaceCargo(a:is_getcwd)
|
||||
if l:workspace_cargo !=# ''
|
||||
return l:workspace_cargo
|
||||
endif
|
||||
return s:nearest_cargo(a:is_getcwd)
|
||||
endfunction
|
||||
|
||||
|
||||
function! cargo#build(args)
|
||||
call cargo#cmd("build " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#check(args)
|
||||
call cargo#cmd("check " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#clean(args)
|
||||
call cargo#cmd("clean " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#doc(args)
|
||||
call cargo#cmd("doc " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#new(args)
|
||||
call cargo#cmd("new " . a:args)
|
||||
cd `=a:args`
|
||||
endfunction
|
||||
|
||||
function! cargo#init(args)
|
||||
call cargo#cmd("init " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#run(args)
|
||||
call cargo#cmd("run " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#test(args)
|
||||
call cargo#cmd("test " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#bench(args)
|
||||
call cargo#cmd("bench " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#update(args)
|
||||
call cargo#cmd("update " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#search(args)
|
||||
call cargo#cmd("search " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#publish(args)
|
||||
call cargo#cmd("publish " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#install(args)
|
||||
call cargo#cmd("install " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#runtarget(args)
|
||||
let l:filename = expand('%:p')
|
||||
let l:read_manifest = system('cargo read-manifest')
|
||||
let l:metadata = json_decode(l:read_manifest)
|
||||
let l:targets = get(l:metadata, 'targets', [])
|
||||
let l:did_run = 0
|
||||
for l:target in l:targets
|
||||
let l:src_path = get(l:target, 'src_path', '')
|
||||
let l:kinds = get(l:target, 'kind', [])
|
||||
let l:name = get(l:target, 'name', '')
|
||||
if l:src_path == l:filename
|
||||
if index(l:kinds, 'example') != -1
|
||||
let l:did_run = 1
|
||||
call cargo#run("--example " . shellescape(l:name) . " " . a:args)
|
||||
return
|
||||
elseif index(l:kinds, 'bin') != -1
|
||||
let l:did_run = 1
|
||||
call cargo#run("--bin " . shellescape(l:name) . " " . a:args)
|
||||
return
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if l:did_run != 1
|
||||
call cargo#run(a:args)
|
||||
return
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
29
runtime/autoload/cargo/quickfix.vim
Normal file
29
runtime/autoload/cargo/quickfix.vim
Normal file
@@ -0,0 +1,29 @@
|
||||
" Last Modified: 2023-09-11
|
||||
|
||||
function! cargo#quickfix#CmdPre() abort
|
||||
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' &&
|
||||
\ &makeprg =~ '\V\^cargo\ \.\*'
|
||||
" Preserve the current directory, and 'lcd' to the nearest Cargo file.
|
||||
let b:rust_compiler_cargo_qf_has_lcd = haslocaldir()
|
||||
let b:rust_compiler_cargo_qf_prev_cd = getcwd()
|
||||
let b:rust_compiler_cargo_qf_prev_cd_saved = 1
|
||||
let l:nearest = fnamemodify(cargo#nearestRootCargo(0), ':h')
|
||||
execute 'lchdir! '.l:nearest
|
||||
else
|
||||
let b:rust_compiler_cargo_qf_prev_cd_saved = 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! cargo#quickfix#CmdPost() abort
|
||||
if exists("b:rust_compiler_cargo_qf_prev_cd_saved") && b:rust_compiler_cargo_qf_prev_cd_saved
|
||||
" Restore the current directory.
|
||||
if b:rust_compiler_cargo_qf_has_lcd
|
||||
execute 'lchdir! '.b:rust_compiler_cargo_qf_prev_cd
|
||||
else
|
||||
execute 'chdir! '.b:rust_compiler_cargo_qf_prev_cd
|
||||
endif
|
||||
let b:rust_compiler_cargo_qf_prev_cd_saved = 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
@@ -1,10 +1,11 @@
|
||||
vim9script noclear
|
||||
|
||||
# Vim completion script
|
||||
# Language: C
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Language: C
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Rewritten in Vim9 script by github user lacygoill
|
||||
# Last Change: 2022 Jan 31
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
var prepended: string
|
||||
var grepCache: dict<list<dict<any>>>
|
||||
|
||||
81
runtime/autoload/dist/ft.vim
vendored
81
runtime/autoload/dist/ft.vim
vendored
@@ -2,8 +2,9 @@ vim9script
|
||||
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2023 Jun 09
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
# faster.
|
||||
@@ -61,7 +62,7 @@ export def FTasmsyntax()
|
||||
endif
|
||||
enddef
|
||||
|
||||
var ft_visual_basic_content = '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
var ft_visual_basic_content = '\c^\s*\%(Attribute\s\+VB_Name\|Begin\s\+\%(VB\.\|{\%(\x\+-\)\+\x\+}\)\)'
|
||||
|
||||
# See FTfrm() for Visual Basic form file detection
|
||||
export def FTbas()
|
||||
@@ -145,12 +146,20 @@ export def FTcls()
|
||||
return
|
||||
endif
|
||||
|
||||
if getline(1) =~ '^\v%(\%|\\)'
|
||||
setf tex
|
||||
elseif getline(1)[0] == '#' && getline(1) =~ 'rexx'
|
||||
var line1 = getline(1)
|
||||
if line1 =~ '^#!.*\<\%(rexx\|regina\)\>'
|
||||
setf rexx
|
||||
elseif getline(1) == 'VERSION 1.0 CLASS'
|
||||
return
|
||||
elseif line1 == 'VERSION 1.0 CLASS'
|
||||
setf vb
|
||||
return
|
||||
endif
|
||||
|
||||
var nonblank1 = getline(nextnonblank(1))
|
||||
if nonblank1 =~ '^\v%(\%|\\)'
|
||||
setf tex
|
||||
elseif nonblank1 =~ '^\s*\%(/\*\|::\w\)'
|
||||
setf rexx
|
||||
else
|
||||
setf st
|
||||
endif
|
||||
@@ -286,12 +295,48 @@ export def FTe()
|
||||
endif
|
||||
enddef
|
||||
|
||||
def IsForth(): bool
|
||||
var first_line = nextnonblank(1)
|
||||
|
||||
# SwiftForth block comment (line is usually filled with '-' or '=') or
|
||||
# OPTIONAL (sometimes precedes the header comment)
|
||||
if getline(first_line) =~? '^\%({\%(\s\|$\)\|OPTIONAL\s\)'
|
||||
return true
|
||||
endif
|
||||
|
||||
var n = first_line
|
||||
while n < 100 && n <= line("$")
|
||||
# Forth comments and colon definitions
|
||||
if getline(n) =~ '^[:(\\] '
|
||||
return true
|
||||
endif
|
||||
n += 1
|
||||
endwhile
|
||||
return false
|
||||
enddef
|
||||
|
||||
# Distinguish between Forth and Fortran
|
||||
export def FTf()
|
||||
if exists("g:filetype_f")
|
||||
exe "setf " .. g:filetype_f
|
||||
elseif IsForth()
|
||||
setf forth
|
||||
else
|
||||
setf fortran
|
||||
endif
|
||||
enddef
|
||||
|
||||
export def FTfrm()
|
||||
if exists("g:filetype_frm")
|
||||
exe "setf " .. g:filetype_frm
|
||||
return
|
||||
endif
|
||||
|
||||
if getline(1) == "VERSION 5.00"
|
||||
setf vb
|
||||
return
|
||||
endif
|
||||
|
||||
var lines = getline(1, min([line("$"), 5]))
|
||||
|
||||
if match(lines, ft_visual_basic_content) > -1
|
||||
@@ -301,21 +346,13 @@ export def FTfrm()
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Distinguish between Forth and F#.
|
||||
# Provided by Doug Kearns.
|
||||
# Distinguish between Forth and F#
|
||||
export def FTfs()
|
||||
if exists("g:filetype_fs")
|
||||
exe "setf " .. g:filetype_fs
|
||||
elseif IsForth()
|
||||
setf forth
|
||||
else
|
||||
var n = 1
|
||||
while n < 100 && n <= line("$")
|
||||
# Forth comments and colon definitions
|
||||
if getline(n) =~ "^[:(\\\\] "
|
||||
setf forth
|
||||
return
|
||||
endif
|
||||
n += 1
|
||||
endwhile
|
||||
setf fsharp
|
||||
endif
|
||||
enddef
|
||||
@@ -1173,5 +1210,13 @@ export def FTv()
|
||||
setf v
|
||||
enddef
|
||||
|
||||
export def FTvba()
|
||||
if getline(1) =~ '^["#] Vimball Archiver'
|
||||
setf vim
|
||||
else
|
||||
setf vb
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
# defcompile
|
||||
|
||||
90
runtime/autoload/dist/man.vim
vendored
90
runtime/autoload/dist/man.vim
vendored
@@ -1,9 +1,9 @@
|
||||
" Vim filetype plugin autoload file
|
||||
" Language: man
|
||||
" Maintainer: Jason Franklin <vim@justemail.net>
|
||||
" Maintainer: Jason Franklin <jason@oneway.dev>
|
||||
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||
" Autoload Split: Bram Moolenaar
|
||||
" Last Change: 2022 Jun 18
|
||||
" Last Change: 2023 Jun 28
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
@@ -21,31 +21,65 @@ catch /E145:/
|
||||
" Ignore the error in restricted mode
|
||||
endtry
|
||||
|
||||
func s:ParseIntoPageAndSection()
|
||||
" Accommodate a reference that terminates in a hyphen.
|
||||
"
|
||||
" See init_charset_table() at
|
||||
" https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/input.cpp?h=1.22.4#n6794
|
||||
"
|
||||
" See can_break_after() at
|
||||
" https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/charinfo.h?h=1.22.4#n140
|
||||
"
|
||||
" Assumptions and limitations:
|
||||
" 1) Manual-page references (in consequence of command-related filenames)
|
||||
" do not contain non-ASCII HYPHENs (0x2010), any terminating HYPHEN
|
||||
" must have been introduced to mark division of a word at the end of
|
||||
" a line and can be discarded; whereas similar references may contain
|
||||
" ASCII HYPHEN-MINUSes (0x002d) and any terminating HYPHEN-MINUS forms
|
||||
" a compound word in addition to marking word division.
|
||||
" 2) Well-formed manual-page references always have a section suffix, e.g.
|
||||
" "git-commit(1)", therefore suspended hyphenated compounds are not
|
||||
" determined, e.g. [V] (With cursor at _git-merge-_ below...)
|
||||
" ".................... git-merge- and git-merge-base. (See git-cherry-
|
||||
" pick(1) and git-cherry(1).)" (... look up "git-merge-pick(1)".)
|
||||
"
|
||||
" Note that EM DASH (0x2014), a third stooge from init_charset_table(),
|
||||
" neither connects nor divides parts of a word.
|
||||
let str = expand("<cWORD>")
|
||||
|
||||
if str =~ '\%u2010$' " HYPHEN (-1).
|
||||
let str = strpart(str, 0, strridx(str, "\u2010"))
|
||||
|
||||
" Append the leftmost WORD (or an empty string) from the line below.
|
||||
let str .= get(split(get(getbufline(bufnr('%'), line('.') + 1), 0, '')), 0, '')
|
||||
elseif str =~ '-$' " HYPHEN-MINUS.
|
||||
" Append the leftmost WORD (or an empty string) from the line below.
|
||||
let str .= get(split(get(getbufline(bufnr('%'), line('.') + 1), 0, '')), 0, '')
|
||||
endif
|
||||
|
||||
" According to man(1), section name formats vary (MANSECT):
|
||||
" 1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
|
||||
let parts = matchlist(str, '\(\k\+\)(\(\k\+\))')
|
||||
return (len(parts) > 2)
|
||||
\ ? {'page': parts[1], 'section': parts[2]}
|
||||
\ : {'page': matchstr(str, '\k\+'), 'section': ''}
|
||||
endfunc
|
||||
|
||||
func dist#man#PreGetPage(cnt)
|
||||
if a:cnt == 0
|
||||
let old_isk = &iskeyword
|
||||
if &ft == 'man'
|
||||
setl iskeyword+=(,)
|
||||
endif
|
||||
let str = expand("<cword>")
|
||||
let &l:iskeyword = old_isk
|
||||
let page = substitute(str, '(*\(\k\+\).*', '\1', '')
|
||||
let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '')
|
||||
if match(sect, '^[0-9 ]\+$') == -1
|
||||
let sect = ""
|
||||
endif
|
||||
if sect == page
|
||||
let sect = ""
|
||||
endif
|
||||
let what = s:ParseIntoPageAndSection()
|
||||
let sect = what.section
|
||||
let page = what.page
|
||||
else
|
||||
let what = s:ParseIntoPageAndSection()
|
||||
let sect = a:cnt
|
||||
let page = expand("<cword>")
|
||||
let page = what.page
|
||||
endif
|
||||
|
||||
call dist#man#GetPage('', sect, page)
|
||||
endfunc
|
||||
|
||||
func s:GetCmdArg(sect, page)
|
||||
|
||||
if empty(a:sect)
|
||||
return shellescape(a:page)
|
||||
endif
|
||||
@@ -75,9 +109,11 @@ func dist#man#GetPage(cmdmods, ...)
|
||||
return
|
||||
endif
|
||||
|
||||
" To support: nmap K :Man <cword>
|
||||
if page == '<cword>'
|
||||
let page = expand('<cword>')
|
||||
" To support: nmap K :Man <cWORD><CR>
|
||||
if page ==? '<cword>'
|
||||
let what = s:ParseIntoPageAndSection()
|
||||
let sect = what.section
|
||||
let page = what.page
|
||||
endif
|
||||
|
||||
if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0)
|
||||
@@ -154,9 +190,14 @@ func dist#man#GetPage(cmdmods, ...)
|
||||
endif
|
||||
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
|
||||
let env_cmd .= ' GROFF_NO_SGR=1'
|
||||
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
|
||||
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page)
|
||||
|
||||
silent exec "r !" . man_cmd
|
||||
|
||||
" Emulate piping the buffer through the "col -b" command.
|
||||
" Ref: https://github.com/vim/vim/issues/12301
|
||||
exe 'silent! keepjumps keeppatterns %s/\v(.)\b\ze\1?//e' .. (&gdefault ? '' : 'g')
|
||||
|
||||
if unsetwidth
|
||||
let $MANWIDTH = ''
|
||||
endif
|
||||
@@ -180,9 +221,10 @@ func dist#man#PopPage()
|
||||
exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth
|
||||
exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth
|
||||
exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
|
||||
|
||||
exec s:man_tag_buf."b"
|
||||
exec s:man_tag_lin
|
||||
exec "norm! ".s:man_tag_col."|"
|
||||
call cursor(s:man_tag_lin, s:man_tag_col)
|
||||
|
||||
exec "unlet s:man_tag_buf_".s:man_tag_depth
|
||||
exec "unlet s:man_tag_lin_".s:man_tag_depth
|
||||
exec "unlet s:man_tag_col_".s:man_tag_depth
|
||||
|
||||
13
runtime/autoload/dist/script.vim
vendored
13
runtime/autoload/dist/script.vim
vendored
@@ -3,8 +3,9 @@ vim9script
|
||||
# Vim function for detecting a filetype from the file contents.
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2023 Jun 09
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
export def DetectFiletype()
|
||||
var line1 = getline(1)
|
||||
@@ -208,6 +209,14 @@ export def Exe2filetype(name: string, line1: string): string
|
||||
elseif name =~ 'nix-shell'
|
||||
return 'nix'
|
||||
|
||||
# Crystal
|
||||
elseif name =~ '^crystal\>'
|
||||
return 'crystal'
|
||||
|
||||
# Rexx
|
||||
elseif name =~ '^\%(rexx\|regina\)\>'
|
||||
return 'rexx'
|
||||
|
||||
endif
|
||||
|
||||
return ''
|
||||
|
||||
20
runtime/autoload/dist/vimindent.vim
vendored
20
runtime/autoload/dist/vimindent.vim
vendored
@@ -2,7 +2,7 @@ vim9script
|
||||
|
||||
# Language: Vim script
|
||||
# Maintainer: github user lacygoill
|
||||
# Last Change: 2023 Feb 01
|
||||
# Last Change: 2023 Jun 29
|
||||
|
||||
# NOTE: Whenever you change the code, make sure the tests are still passing:
|
||||
#
|
||||
@@ -112,10 +112,6 @@ const DICT_KEY: string = '^\s*\%('
|
||||
.. '\)'
|
||||
.. ':\%(\s\|$\)'
|
||||
|
||||
# NOT_A_DICT_KEY {{{3
|
||||
|
||||
const NOT_A_DICT_KEY: string = ':\@!'
|
||||
|
||||
# END_OF_COMMAND {{{3
|
||||
|
||||
const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)'
|
||||
@@ -197,13 +193,13 @@ patterns =<< trim eval END
|
||||
ldo\=\>!\=
|
||||
tabdo\=\>
|
||||
windo\>
|
||||
au\%[tocmd]\>.*
|
||||
com\%[mand]\>.*
|
||||
au\%[tocmd]\>!\=.*
|
||||
com\%[mand]\>!\=.*
|
||||
g\%[lobal]!\={PATTERN_DELIMITER}.*
|
||||
v\%[global]!\={PATTERN_DELIMITER}.*
|
||||
END
|
||||
|
||||
const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\){NOT_A_DICT_KEY}'
|
||||
const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\)\%(\s\|$\)\@='
|
||||
|
||||
# START_MIDDLE_END {{{3
|
||||
|
||||
@@ -254,7 +250,7 @@ START_MIDDLE_END = START_MIDDLE_END
|
||||
kwds->map((_, kwd: string) => kwd == ''
|
||||
? ''
|
||||
: $'\%(^\|{BAR_SEPARATION}\|\<sil\%[ent]\|{HIGHER_ORDER_COMMAND}\)\s*'
|
||||
.. $'\<\%({kwd}\)\>\%(\s*{OPERATOR}\)\@!'))
|
||||
.. $'\<\%({kwd}\)\>\%(\s\|$\|!\)\@=\%(\s*{OPERATOR}\)\@!'))
|
||||
|
||||
lockvar! START_MIDDLE_END
|
||||
|
||||
@@ -279,7 +275,7 @@ patterns = BLOCKS
|
||||
|
||||
const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}'
|
||||
.. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}'
|
||||
.. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!'
|
||||
.. $'\|^\s*elseif\=\>\%(\s\|$\)\@=\%(\s*{OPERATOR}\)\@!'
|
||||
|
||||
# STARTS_NAMED_BLOCK {{{3
|
||||
|
||||
@@ -296,7 +292,7 @@ patterns = []
|
||||
endfor
|
||||
}
|
||||
|
||||
const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>{NOT_A_DICT_KEY}'
|
||||
const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>\%(\s\|$\|!\)\@='
|
||||
|
||||
# STARTS_CURLY_BLOCK {{{3
|
||||
|
||||
@@ -312,7 +308,7 @@ const STARTS_CURLY_BLOCK: string = '\%('
|
||||
|
||||
# STARTS_FUNCTION {{{3
|
||||
|
||||
const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>{NOT_A_DICT_KEY}'
|
||||
const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>!\=\s\@='
|
||||
|
||||
# ENDS_FUNCTION {{{3
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Vim autoload file for editing compressed files.
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Sep 28
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" These functions are used by the gzip plugin.
|
||||
|
||||
@@ -9,12 +10,20 @@
|
||||
fun s:check(cmd)
|
||||
let name = substitute(a:cmd, '\(\S*\).*', '\1', '')
|
||||
if !exists("s:have_" . name)
|
||||
" safety check, don't execute anything from the current directory
|
||||
let s:tmp_cwd = getcwd()
|
||||
let f = (fnamemodify(exepath(name), ":p:h") !=# s:tmp_cwd
|
||||
\ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
|
||||
unlet s:tmp_cwd
|
||||
if !f
|
||||
echoerr "Warning: NOT executing " .. name .. " from current directory!"
|
||||
endif
|
||||
let e = executable(name)
|
||||
if e < 0
|
||||
let r = system(name . " --version")
|
||||
let e = (r !~ "not found" && r != "")
|
||||
endif
|
||||
exe "let s:have_" . name . "=" . e
|
||||
exe "let s:have_" . name . "=" . (e && f)
|
||||
endif
|
||||
exe "return s:have_" . name
|
||||
endfun
|
||||
|
||||
@@ -156,8 +156,8 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
\ 'text', 'vLink']
|
||||
let bodys = bodyprop
|
||||
" Document - document.
|
||||
let docuprop = ['anchors', 'body', 'characterSet', 'doctype',
|
||||
\ 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms',
|
||||
let docuprop = ['anchors', 'applets', 'body', 'characterSet', 'childNodes',
|
||||
\ 'doctype', 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms',
|
||||
\ 'head', 'hidden', 'images', 'implementation', 'lastStyleSheetSet',
|
||||
\ 'links', 'plugins', 'preferredStyleSheetSet', 'scripts',
|
||||
\ 'scrollingElement', 'selectedStyleSheetSet', 'styleSheetSets',
|
||||
@@ -171,7 +171,7 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
\ 'createEvent', 'createExpression', 'createNSResolver',
|
||||
\ 'createNodeIterator', 'createProcessingInstruction', 'createRange',
|
||||
\ 'createTextNode', 'createTouchList', 'createTreeWalker',
|
||||
\ 'enableStyleSheetsForSet', 'evaluate', 'focus', 'getElementById',
|
||||
\ 'enableStyleSheetsForSet', 'evaluate', 'focus',
|
||||
\ 'getElementById', 'getElementsByClassName', 'getElementsByName',
|
||||
\ 'getElementsByTagName', 'getElementsByTagNameNS',
|
||||
\ 'hasStorageAccess', 'importNode', 'onClick', 'onDblClick',
|
||||
|
||||
@@ -2998,7 +2998,7 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
|
||||
" to process this detection correctly.
|
||||
" call Decho("detect filetype of local version of remote file<".rfile.">",'~'.expand("<slnum>"))
|
||||
" call Decho("..did_filetype()=".did_filetype())
|
||||
setl ft=
|
||||
" setl ft=
|
||||
" call Decho("..initial filetype<".&ft."> for buf#".bufnr()."<".bufname().">")
|
||||
let iskkeep= &isk
|
||||
setl isk-=/
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Vim support file to help with paste mappings and menus
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Jan 27
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Define the string to use for items that are present both in Edit, Popup and
|
||||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||||
|
||||
@@ -1,207 +1,258 @@
|
||||
" Author: Kevin Ballard
|
||||
" Description: Helper functions for Rust commands/mappings
|
||||
" Last Modified: May 27, 2014
|
||||
" Last Modified: 2023-09-11
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
function! rust#Load()
|
||||
" Utility call to get this script loaded, for debugging
|
||||
endfunction
|
||||
|
||||
function! rust#GetConfigVar(name, default)
|
||||
" Local buffer variable with same name takes predeence over global
|
||||
if has_key(b:, a:name)
|
||||
return get(b:, a:name)
|
||||
endif
|
||||
if has_key(g:, a:name)
|
||||
return get(g:, a:name)
|
||||
endif
|
||||
return a:default
|
||||
endfunction
|
||||
|
||||
" Include expression {{{1
|
||||
|
||||
function! rust#IncludeExpr(fname) abort
|
||||
" Remove leading 'crate::' to deal with 2018 edition style 'use'
|
||||
" statements
|
||||
let l:fname = substitute(a:fname, '^crate::', '', '')
|
||||
|
||||
" Remove trailing colons arising from lines like
|
||||
"
|
||||
" use foo::{Bar, Baz};
|
||||
let l:fname = substitute(l:fname, ':\+$', '', '')
|
||||
|
||||
" Replace '::' with '/'
|
||||
let l:fname = substitute(l:fname, '::', '/', 'g')
|
||||
|
||||
" When we have
|
||||
"
|
||||
" use foo::bar::baz;
|
||||
"
|
||||
" we can't tell whether baz is a module or a function; and we can't tell
|
||||
" which modules correspond to files.
|
||||
"
|
||||
" So we work our way up, trying
|
||||
"
|
||||
" foo/bar/baz.rs
|
||||
" foo/bar.rs
|
||||
" foo.rs
|
||||
while l:fname !=# '.'
|
||||
let l:path = findfile(l:fname)
|
||||
if !empty(l:path)
|
||||
return l:fname
|
||||
endif
|
||||
let l:fname = fnamemodify(l:fname, ':h')
|
||||
endwhile
|
||||
return l:fname
|
||||
endfunction
|
||||
|
||||
" Jump {{{1
|
||||
|
||||
function! rust#Jump(mode, function) range
|
||||
let cnt = v:count1
|
||||
normal! m'
|
||||
if a:mode ==# 'v'
|
||||
norm! gv
|
||||
endif
|
||||
let foldenable = &foldenable
|
||||
set nofoldenable
|
||||
while cnt > 0
|
||||
execute "call <SID>Jump_" . a:function . "()"
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
let &foldenable = foldenable
|
||||
let cnt = v:count1
|
||||
normal! m'
|
||||
if a:mode ==# 'v'
|
||||
norm! gv
|
||||
endif
|
||||
let foldenable = &foldenable
|
||||
set nofoldenable
|
||||
while cnt > 0
|
||||
execute "call <SID>Jump_" . a:function . "()"
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
let &foldenable = foldenable
|
||||
endfunction
|
||||
|
||||
function! s:Jump_Back()
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{
|
||||
endfunction
|
||||
|
||||
function! s:Jump_Forward()
|
||||
normal! j0
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{%
|
||||
call search('{')
|
||||
normal! j0
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{%
|
||||
call search('{')
|
||||
endfunction
|
||||
|
||||
" Run {{{1
|
||||
|
||||
function! rust#Run(bang, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang
|
||||
let idx = index(l:args, '--')
|
||||
if idx != -1
|
||||
let rustc_args = idx == 0 ? [] : l:args[:idx-1]
|
||||
let args = l:args[idx+1:]
|
||||
else
|
||||
let rustc_args = l:args
|
||||
let args = []
|
||||
endif
|
||||
else
|
||||
let rustc_args = []
|
||||
endif
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang
|
||||
let idx = index(l:args, '--')
|
||||
if idx != -1
|
||||
let rustc_args = idx == 0 ? [] : l:args[:idx-1]
|
||||
let args = l:args[idx+1:]
|
||||
else
|
||||
let rustc_args = l:args
|
||||
let args = []
|
||||
endif
|
||||
else
|
||||
let rustc_args = []
|
||||
endif
|
||||
|
||||
let b:rust_last_rustc_args = l:rustc_args
|
||||
let b:rust_last_args = l:args
|
||||
let b:rust_last_rustc_args = l:rustc_args
|
||||
let b:rust_last_args = l:args
|
||||
|
||||
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||
endfunction
|
||||
|
||||
function! s:Run(dict, rustc_args, args)
|
||||
let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
|
||||
if has('win32')
|
||||
let exepath .= '.exe'
|
||||
endif
|
||||
let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
|
||||
if has('win32')
|
||||
let exepath .= '.exe'
|
||||
endif
|
||||
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let rustc_args = [relpath, '-o', exepath] + a:rustc_args
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let rustc_args = [relpath, '-o', exepath] + a:rustc_args
|
||||
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
||||
if output != ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||
endif
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
||||
if output !=# ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Expand {{{1
|
||||
|
||||
function! rust#Expand(bang, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang && !empty(l:args)
|
||||
let pretty = remove(l:args, 0)
|
||||
else
|
||||
let pretty = "expanded"
|
||||
endif
|
||||
call s:WithPath(function("s:Expand"), pretty, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang && !empty(l:args)
|
||||
let pretty = remove(l:args, 0)
|
||||
else
|
||||
let pretty = "expanded"
|
||||
endif
|
||||
call s:WithPath(function("s:Expand"), pretty, args)
|
||||
endfunction
|
||||
|
||||
function! s:Expand(dict, pretty, args)
|
||||
try
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
try
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
|
||||
let flag = '--xpretty'
|
||||
else
|
||||
let flag = '--pretty'
|
||||
endif
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if v:shell_error
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
new
|
||||
silent put =output
|
||||
1
|
||||
d
|
||||
setl filetype=rust
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.pretty.rs'
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endtry
|
||||
if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
|
||||
let flag = '--xpretty'
|
||||
else
|
||||
let flag = '--pretty'
|
||||
endif
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if v:shell_error
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
new
|
||||
silent put =output
|
||||
1
|
||||
d
|
||||
setl filetype=rust
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.pretty.rs'
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! rust#CompleteExpand(lead, line, pos)
|
||||
if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
|
||||
" first argument and it has a !
|
||||
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
|
||||
if !empty(a:lead)
|
||||
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
||||
endif
|
||||
return list
|
||||
endif
|
||||
if a:line[: a:pos-1] =~# '^RustExpand!\s*\S*$'
|
||||
" first argument and it has a !
|
||||
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
|
||||
if !empty(a:lead)
|
||||
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
||||
endif
|
||||
return list
|
||||
endif
|
||||
|
||||
return glob(escape(a:lead, "*?[") . '*', 0, 1)
|
||||
return glob(escape(a:lead, "*?[") . '*', 0, 1)
|
||||
endfunction
|
||||
|
||||
" Emit {{{1
|
||||
|
||||
function! rust#Emit(type, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
call s:WithPath(function("s:Emit"), a:type, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
call s:WithPath(function("s:Emit"), a:type, args)
|
||||
endfunction
|
||||
|
||||
function! s:Emit(dict, type, args)
|
||||
try
|
||||
let output_path = a:dict.tmpdir.'/output'
|
||||
try
|
||||
let output_path = a:dict.tmpdir.'/output'
|
||||
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if output != ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
new
|
||||
exe 'silent keepalt read' fnameescape(output_path)
|
||||
1
|
||||
d
|
||||
if a:type == "llvm-ir"
|
||||
setl filetype=llvm
|
||||
let extension = 'll'
|
||||
elseif a:type == "asm"
|
||||
setl filetype=asm
|
||||
let extension = 's'
|
||||
endif
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
if exists('l:extension')
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.'.extension
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endif
|
||||
endtry
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if output !=# ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
new
|
||||
exe 'silent keepalt read' fnameescape(output_path)
|
||||
1
|
||||
d
|
||||
if a:type ==# "llvm-ir"
|
||||
setl filetype=llvm
|
||||
let extension = 'll'
|
||||
elseif a:type ==# "asm"
|
||||
setl filetype=asm
|
||||
let extension = 's'
|
||||
endif
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
if exists('l:extension')
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.'.extension
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" Utility functions {{{1
|
||||
@@ -219,145 +270,154 @@ endfunction
|
||||
" existing path of the current buffer. If the path is inside of {dict.tmpdir}
|
||||
" then it is guaranteed to have a '.rs' extension.
|
||||
function! s:WithPath(func, ...)
|
||||
let buf = bufnr('')
|
||||
let saved = {}
|
||||
let dict = {}
|
||||
try
|
||||
let saved.write = &write
|
||||
set write
|
||||
let dict.path = expand('%')
|
||||
let pathisempty = empty(dict.path)
|
||||
let buf = bufnr('')
|
||||
let saved = {}
|
||||
let dict = {}
|
||||
try
|
||||
let saved.write = &write
|
||||
set write
|
||||
let dict.path = expand('%')
|
||||
let pathisempty = empty(dict.path)
|
||||
|
||||
" Always create a tmpdir in case the wrapped command wants it
|
||||
let dict.tmpdir = tempname()
|
||||
call mkdir(dict.tmpdir)
|
||||
" Always create a tmpdir in case the wrapped command wants it
|
||||
let dict.tmpdir = tempname()
|
||||
call mkdir(dict.tmpdir)
|
||||
|
||||
if pathisempty || !saved.write
|
||||
let dict.istemp = 1
|
||||
" if we're doing this because of nowrite, preserve the filename
|
||||
if !pathisempty
|
||||
let filename = expand('%:t:r').".rs"
|
||||
else
|
||||
let filename = 'unnamed.rs'
|
||||
endif
|
||||
let dict.tmpdir_relpath = filename
|
||||
let dict.path = dict.tmpdir.'/'.filename
|
||||
if pathisempty || !saved.write
|
||||
let dict.istemp = 1
|
||||
" if we're doing this because of nowrite, preserve the filename
|
||||
if !pathisempty
|
||||
let filename = expand('%:t:r').".rs"
|
||||
else
|
||||
let filename = 'unnamed.rs'
|
||||
endif
|
||||
let dict.tmpdir_relpath = filename
|
||||
let dict.path = dict.tmpdir.'/'.filename
|
||||
|
||||
let saved.mod = &mod
|
||||
set nomod
|
||||
let saved.mod = &modified
|
||||
set nomodified
|
||||
|
||||
silent exe 'keepalt write! ' . fnameescape(dict.path)
|
||||
if pathisempty
|
||||
silent keepalt 0file
|
||||
endif
|
||||
else
|
||||
let dict.istemp = 0
|
||||
update
|
||||
endif
|
||||
silent exe 'keepalt write! ' . fnameescape(dict.path)
|
||||
if pathisempty
|
||||
silent keepalt 0file
|
||||
endif
|
||||
else
|
||||
let dict.istemp = 0
|
||||
update
|
||||
endif
|
||||
|
||||
call call(a:func, [dict] + a:000)
|
||||
finally
|
||||
if bufexists(buf)
|
||||
for [opt, value] in items(saved)
|
||||
silent call setbufvar(buf, '&'.opt, value)
|
||||
unlet value " avoid variable type mismatches
|
||||
endfor
|
||||
endif
|
||||
if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
|
||||
endtry
|
||||
call call(a:func, [dict] + a:000)
|
||||
finally
|
||||
if bufexists(buf)
|
||||
for [opt, value] in items(saved)
|
||||
silent call setbufvar(buf, '&'.opt, value)
|
||||
unlet value " avoid variable type mismatches
|
||||
endfor
|
||||
endif
|
||||
if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! rust#AppendCmdLine(text)
|
||||
call setcmdpos(getcmdpos())
|
||||
let cmd = getcmdline() . a:text
|
||||
return cmd
|
||||
call setcmdpos(getcmdpos())
|
||||
let cmd = getcmdline() . a:text
|
||||
return cmd
|
||||
endfunction
|
||||
|
||||
" Tokenize the string according to sh parsing rules
|
||||
function! s:ShellTokenize(text)
|
||||
" states:
|
||||
" 0: start of word
|
||||
" 1: unquoted
|
||||
" 2: unquoted backslash
|
||||
" 3: double-quote
|
||||
" 4: double-quoted backslash
|
||||
" 5: single-quote
|
||||
let l:state = 0
|
||||
let l:current = ''
|
||||
let l:args = []
|
||||
for c in split(a:text, '\zs')
|
||||
if l:state == 0 || l:state == 1 " unquoted
|
||||
if l:c ==# ' '
|
||||
if l:state == 0 | continue | endif
|
||||
call add(l:args, l:current)
|
||||
let l:current = ''
|
||||
let l:state = 0
|
||||
elseif l:c ==# '\'
|
||||
let l:state = 2
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 3
|
||||
elseif l:c ==# "'"
|
||||
let l:state = 5
|
||||
else
|
||||
let l:current .= l:c
|
||||
let l:state = 1
|
||||
endif
|
||||
elseif l:state == 2 " unquoted backslash
|
||||
if l:c !=# "\n" " can it even be \n?
|
||||
let l:current .= l:c
|
||||
endif
|
||||
let l:state = 1
|
||||
elseif l:state == 3 " double-quote
|
||||
if l:c ==# '\'
|
||||
let l:state = 4
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
elseif l:state == 4 " double-quoted backslash
|
||||
if stridx('$`"\', l:c) >= 0
|
||||
let l:current .= l:c
|
||||
elseif l:c ==# "\n" " is this even possible?
|
||||
" skip it
|
||||
else
|
||||
let l:current .= '\'.l:c
|
||||
endif
|
||||
let l:state = 3
|
||||
elseif l:state == 5 " single-quoted
|
||||
if l:c == "'"
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if l:state != 0
|
||||
call add(l:args, l:current)
|
||||
endif
|
||||
return l:args
|
||||
" states:
|
||||
" 0: start of word
|
||||
" 1: unquoted
|
||||
" 2: unquoted backslash
|
||||
" 3: double-quote
|
||||
" 4: double-quoted backslash
|
||||
" 5: single-quote
|
||||
let l:state = 0
|
||||
let l:current = ''
|
||||
let l:args = []
|
||||
for c in split(a:text, '\zs')
|
||||
if l:state == 0 || l:state == 1 " unquoted
|
||||
if l:c ==# ' '
|
||||
if l:state == 0 | continue | endif
|
||||
call add(l:args, l:current)
|
||||
let l:current = ''
|
||||
let l:state = 0
|
||||
elseif l:c ==# '\'
|
||||
let l:state = 2
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 3
|
||||
elseif l:c ==# "'"
|
||||
let l:state = 5
|
||||
else
|
||||
let l:current .= l:c
|
||||
let l:state = 1
|
||||
endif
|
||||
elseif l:state == 2 " unquoted backslash
|
||||
if l:c !=# "\n" " can it even be \n?
|
||||
let l:current .= l:c
|
||||
endif
|
||||
let l:state = 1
|
||||
elseif l:state == 3 " double-quote
|
||||
if l:c ==# '\'
|
||||
let l:state = 4
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
elseif l:state == 4 " double-quoted backslash
|
||||
if stridx('$`"\', l:c) >= 0
|
||||
let l:current .= l:c
|
||||
elseif l:c ==# "\n" " is this even possible?
|
||||
" skip it
|
||||
else
|
||||
let l:current .= '\'.l:c
|
||||
endif
|
||||
let l:state = 3
|
||||
elseif l:state == 5 " single-quoted
|
||||
if l:c ==# "'"
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if l:state != 0
|
||||
call add(l:args, l:current)
|
||||
endif
|
||||
return l:args
|
||||
endfunction
|
||||
|
||||
function! s:RmDir(path)
|
||||
" sanity check; make sure it's not empty, /, or $HOME
|
||||
if empty(a:path)
|
||||
echoerr 'Attempted to delete empty path'
|
||||
return 0
|
||||
elseif a:path == '/' || a:path == $HOME
|
||||
echoerr 'Attempted to delete protected path: ' . a:path
|
||||
return 0
|
||||
endif
|
||||
return system("rm -rf " . shellescape(a:path))
|
||||
" sanity check; make sure it's not empty, /, or $HOME
|
||||
if empty(a:path)
|
||||
echoerr 'Attempted to delete empty path'
|
||||
return 0
|
||||
elseif a:path ==# '/' || a:path ==# $HOME
|
||||
let l:path = expand(a:path)
|
||||
if l:path ==# '/' || l:path ==# $HOME
|
||||
echoerr 'Attempted to delete protected path: ' . a:path
|
||||
return 0
|
||||
endif
|
||||
endif
|
||||
|
||||
if !isdirectory(a:path)
|
||||
return 0
|
||||
endif
|
||||
|
||||
" delete() returns 0 when removing file successfully
|
||||
return delete(a:path, 'rf') == 0
|
||||
endfunction
|
||||
|
||||
" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.
|
||||
" If {pwd} is the empty string then it doesn't change the cwd.
|
||||
function! s:system(pwd, cmd)
|
||||
let cmd = a:cmd
|
||||
if !empty(a:pwd)
|
||||
let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
|
||||
endif
|
||||
return system(cmd)
|
||||
let cmd = a:cmd
|
||||
if !empty(a:pwd)
|
||||
let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
|
||||
endif
|
||||
return system(cmd)
|
||||
endfunction
|
||||
|
||||
" Playpen Support {{{1
|
||||
@@ -366,10 +426,10 @@ endfunction
|
||||
" http://github.com/mattn/gist-vim
|
||||
function! s:has_webapi()
|
||||
if !exists("*webapi#http#post")
|
||||
try
|
||||
call webapi#http#post()
|
||||
catch
|
||||
endtry
|
||||
try
|
||||
call webapi#http#post()
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
return exists("*webapi#http#post")
|
||||
endfunction
|
||||
@@ -381,35 +441,130 @@ function! rust#Play(count, line1, line2, ...) abort
|
||||
let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')
|
||||
|
||||
if !s:has_webapi()
|
||||
echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
|
||||
return
|
||||
echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
let bufname = bufname('%')
|
||||
if a:count < 1
|
||||
let content = join(getline(a:line1, a:line2), "\n")
|
||||
let content = join(getline(a:line1, a:line2), "\n")
|
||||
else
|
||||
let save_regcont = @"
|
||||
let save_regtype = getregtype('"')
|
||||
silent! normal! gvy
|
||||
let content = @"
|
||||
call setreg('"', save_regcont, save_regtype)
|
||||
let save_regcont = @"
|
||||
let save_regtype = getregtype('"')
|
||||
silent! normal! gvy
|
||||
let content = @"
|
||||
call setreg('"', save_regcont, save_regtype)
|
||||
endif
|
||||
|
||||
let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
|
||||
let url = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
|
||||
|
||||
if strlen(body) > 5000
|
||||
echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
|
||||
return
|
||||
if strlen(url) > 5000
|
||||
echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(url).')' | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
let payload = "format=simple&url=".webapi#http#encodeURI(body)
|
||||
let payload = "format=simple&url=".webapi#http#encodeURI(url)
|
||||
let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
|
||||
let url = res.content
|
||||
if res.status[0] ==# '2'
|
||||
let url = res.content
|
||||
endif
|
||||
|
||||
redraw | echomsg 'Done: '.url
|
||||
let footer = ''
|
||||
if exists('g:rust_clip_command')
|
||||
call system(g:rust_clip_command, url)
|
||||
if !v:shell_error
|
||||
let footer = ' (copied to clipboard)'
|
||||
endif
|
||||
endif
|
||||
redraw | echomsg 'Done: '.url.footer
|
||||
endfunction
|
||||
|
||||
" Run a test under the cursor or all tests {{{1
|
||||
|
||||
" Finds a test function name under the cursor. Returns empty string when a
|
||||
" test function is not found.
|
||||
function! s:SearchTestFunctionNameUnderCursor() abort
|
||||
let cursor_line = line('.')
|
||||
|
||||
" Find #[test] attribute
|
||||
if search('\m\C#\[test\]', 'bcW') is 0
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Move to an opening brace of the test function
|
||||
let test_func_line = search('\m\C^\s*fn\s\+\h\w*\s*(.\+{$', 'eW')
|
||||
if test_func_line is 0
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Search the end of test function (closing brace) to ensure that the
|
||||
" cursor position is within function definition
|
||||
if maparg('<Plug>(MatchitNormalForward)') ==# ''
|
||||
keepjumps normal! %
|
||||
else
|
||||
" Prefer matchit.vim official plugin to native % since the plugin
|
||||
" provides better behavior than original % (#391)
|
||||
" To load the plugin, run:
|
||||
" :packadd matchit
|
||||
execute 'keepjumps' 'normal' "\<Plug>(MatchitNormalForward)"
|
||||
endif
|
||||
if line('.') < cursor_line
|
||||
return ''
|
||||
endif
|
||||
|
||||
return matchstr(getline(test_func_line), '\m\C^\s*fn\s\+\zs\h\w*')
|
||||
endfunction
|
||||
|
||||
function! rust#Test(mods, winsize, all, options) abort
|
||||
let manifest = findfile('Cargo.toml', expand('%:p:h') . ';')
|
||||
if manifest ==# ''
|
||||
return rust#Run(1, '--test ' . a:options)
|
||||
endif
|
||||
|
||||
" <count> defaults to 0, but we prefer an empty string
|
||||
let winsize = a:winsize ? a:winsize : ''
|
||||
|
||||
if has('terminal')
|
||||
if has('patch-8.0.910')
|
||||
let cmd = printf('%s noautocmd %snew | terminal ++curwin ', a:mods, winsize)
|
||||
else
|
||||
let cmd = printf('%s terminal ', a:mods)
|
||||
endif
|
||||
elseif has('nvim')
|
||||
let cmd = printf('%s noautocmd %snew | terminal ', a:mods, winsize)
|
||||
else
|
||||
let cmd = '!'
|
||||
let manifest = shellescape(manifest)
|
||||
endif
|
||||
|
||||
if a:all
|
||||
if a:options ==# ''
|
||||
execute cmd . 'cargo test --manifest-path' manifest
|
||||
else
|
||||
execute cmd . 'cargo test --manifest-path' manifest a:options
|
||||
endif
|
||||
return
|
||||
endif
|
||||
|
||||
let saved = getpos('.')
|
||||
try
|
||||
let func_name = s:SearchTestFunctionNameUnderCursor()
|
||||
finally
|
||||
call setpos('.', saved)
|
||||
endtry
|
||||
if func_name ==# ''
|
||||
echohl ErrorMsg
|
||||
echomsg 'No test function was found under the cursor. Please add ! to command if you want to run all tests'
|
||||
echohl None
|
||||
return
|
||||
endif
|
||||
if a:options ==# ''
|
||||
execute cmd . 'cargo test --manifest-path' manifest func_name
|
||||
else
|
||||
execute cmd . 'cargo test --manifest-path' manifest func_name a:options
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
" vim: set noet sw=8 ts=8:
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
|
||||
105
runtime/autoload/rust/debugging.vim
Normal file
105
runtime/autoload/rust/debugging.vim
Normal file
@@ -0,0 +1,105 @@
|
||||
" Last Modified: 2023-09-11
|
||||
|
||||
" For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim
|
||||
|
||||
let s:global_variable_list = [
|
||||
\ '_rustfmt_autosave_because_of_config',
|
||||
\ 'ftplugin_rust_source_path',
|
||||
\ 'loaded_syntastic_rust_cargo_checker',
|
||||
\ 'loaded_syntastic_rust_filetype',
|
||||
\ 'loaded_syntastic_rust_rustc_checker',
|
||||
\ 'rust_bang_comment_leader',
|
||||
\ 'rust_cargo_avoid_whole_workspace',
|
||||
\ 'rust_clip_command',
|
||||
\ 'rust_conceal',
|
||||
\ 'rust_conceal_mod_path',
|
||||
\ 'rust_conceal_pub',
|
||||
\ 'rust_fold',
|
||||
\ 'rust_last_args',
|
||||
\ 'rust_last_rustc_args',
|
||||
\ 'rust_original_delimitMate_excluded_regions',
|
||||
\ 'rust_playpen_url',
|
||||
\ 'rust_prev_delimitMate_quotes',
|
||||
\ 'rust_recent_nearest_cargo_tol',
|
||||
\ 'rust_recent_root_cargo_toml',
|
||||
\ 'rust_recommended_style',
|
||||
\ 'rust_set_conceallevel',
|
||||
\ 'rust_set_conceallevel=1',
|
||||
\ 'rust_set_foldmethod',
|
||||
\ 'rust_set_foldmethod=1',
|
||||
\ 'rust_shortener_url',
|
||||
\ 'rustc_makeprg_no_percent',
|
||||
\ 'rustc_path',
|
||||
\ 'rustfmt_autosave',
|
||||
\ 'rustfmt_autosave_if_config_present',
|
||||
\ 'rustfmt_command',
|
||||
\ 'rustfmt_emit_files',
|
||||
\ 'rustfmt_fail_silently',
|
||||
\ 'rustfmt_options',
|
||||
\ 'syntastic_extra_filetypes',
|
||||
\ 'syntastic_rust_cargo_fname',
|
||||
\]
|
||||
|
||||
function! s:Echo(message) abort
|
||||
execute 'echo a:message'
|
||||
endfunction
|
||||
|
||||
function! s:EchoGlobalVariables() abort
|
||||
for l:key in s:global_variable_list
|
||||
if l:key !~# '^_'
|
||||
call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null)))
|
||||
endif
|
||||
|
||||
if has_key(b:, l:key)
|
||||
call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key]))
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! rust#debugging#Info() abort
|
||||
call cargo#Load()
|
||||
call rust#Load()
|
||||
call rustfmt#Load()
|
||||
call s:Echo('rust.vim Global Variables:')
|
||||
call s:Echo('')
|
||||
call s:EchoGlobalVariables()
|
||||
|
||||
silent let l:output = system(g:rustfmt_command . ' --version')
|
||||
echo l:output
|
||||
|
||||
let l:rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
silent let l:output = system(l:rustc . ' --version')
|
||||
echo l:output
|
||||
|
||||
silent let l:output = system('cargo --version')
|
||||
echo l:output
|
||||
|
||||
version
|
||||
|
||||
if exists(":SyntasticInfo")
|
||||
echo "----"
|
||||
echo "Info from Syntastic:"
|
||||
execute "SyntasticInfo"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! rust#debugging#InfoToClipboard() abort
|
||||
redir @"
|
||||
silent call rust#debugging#Info()
|
||||
redir END
|
||||
|
||||
call s:Echo('RustInfo copied to your clipboard')
|
||||
endfunction
|
||||
|
||||
function! rust#debugging#InfoToFile(filename) abort
|
||||
let l:expanded_filename = expand(a:filename)
|
||||
|
||||
redir => l:output
|
||||
silent call rust#debugging#Info()
|
||||
redir END
|
||||
|
||||
call writefile(split(l:output, "\n"), l:expanded_filename)
|
||||
call s:Echo('RustInfo written to ' . l:expanded_filename)
|
||||
endfunction
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
@@ -1,107 +1,261 @@
|
||||
" Author: Stephen Sugden <stephen@stephensugden.com>
|
||||
" Last Modified: 2023-09-11
|
||||
"
|
||||
" Adapted from https://github.com/fatih/vim-go
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if !exists("g:rustfmt_autosave")
|
||||
let g:rustfmt_autosave = 0
|
||||
let g:rustfmt_autosave = 0
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_command")
|
||||
let g:rustfmt_command = "rustfmt"
|
||||
let g:rustfmt_command = "rustfmt"
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_options")
|
||||
let g:rustfmt_options = ""
|
||||
let g:rustfmt_options = ""
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_fail_silently")
|
||||
let g:rustfmt_fail_silently = 0
|
||||
let g:rustfmt_fail_silently = 0
|
||||
endif
|
||||
|
||||
function! rustfmt#DetectVersion()
|
||||
" 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"
|
||||
|
||||
" Build a comparable rustfmt version varible out of its `--version` output:
|
||||
silent let l:rustfmt_version_full = system(g:rustfmt_command . " --version")
|
||||
let l:rustfmt_version_list = matchlist(l:rustfmt_version_full,
|
||||
\ '\vrustfmt ([0-9]+[.][0-9]+[.][0-9]+)')
|
||||
if len(l:rustfmt_version_list) < 3
|
||||
let s:rustfmt_version = "0"
|
||||
else
|
||||
let s:rustfmt_version = l:rustfmt_version_list[1]
|
||||
endif
|
||||
return s:rustfmt_version
|
||||
endfunction
|
||||
|
||||
call rustfmt#DetectVersion()
|
||||
|
||||
if !exists("g:rustfmt_emit_files")
|
||||
let g:rustfmt_emit_files = s:rustfmt_version >= "0.8.2"
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_file_lines")
|
||||
let g:rustfmt_file_lines = s:rustfmt_help =~# "--file-lines JSON"
|
||||
endif
|
||||
|
||||
let s:got_fmt_error = 0
|
||||
|
||||
function! rustfmt#Load()
|
||||
" Utility call to get this script loaded, for debugging
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtWriteMode()
|
||||
if g:rustfmt_emit_files
|
||||
return "--emit=files"
|
||||
else
|
||||
return "--write-mode=overwrite"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtConfigOptions()
|
||||
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
|
||||
endif
|
||||
|
||||
let l:_rustfmt_toml = findfile('.rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:_rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:_rustfmt_toml, ":p"))
|
||||
endif
|
||||
|
||||
" Default to edition 2018 in case no rustfmt.toml was found.
|
||||
return '--edition 2018'
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtCommandRange(filename, line1, line2)
|
||||
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
|
||||
return printf("%s %s --write-mode=overwrite --file-lines '[%s]'", g:rustfmt_command, g:rustfmt_options, json_encode(l:arg))
|
||||
if g:rustfmt_file_lines == 0
|
||||
echo "--file-lines is not supported in the installed `rustfmt` executable"
|
||||
return
|
||||
endif
|
||||
|
||||
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
|
||||
let l:write_mode = s:RustfmtWriteMode()
|
||||
let l:rustfmt_config = s:RustfmtConfigOptions()
|
||||
|
||||
" FIXME: When --file-lines gets to be stable, add version range checking
|
||||
" accordingly.
|
||||
let l:unstable_features = s:rustfmt_unstable_features ? '--unstable-features' : ''
|
||||
|
||||
let l:cmd = printf("%s %s %s %s %s --file-lines '[%s]' %s", g:rustfmt_command,
|
||||
\ l:write_mode, g:rustfmt_options,
|
||||
\ l:unstable_features, l:rustfmt_config,
|
||||
\ json_encode(l:arg), shellescape(a:filename))
|
||||
return l:cmd
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtCommand(filename)
|
||||
return g:rustfmt_command . " --write-mode=overwrite " . g:rustfmt_options . " " . shellescape(a:filename)
|
||||
function! s:RustfmtCommand()
|
||||
let write_mode = g:rustfmt_emit_files ? '--emit=stdout' : '--write-mode=display'
|
||||
let config = s:RustfmtConfigOptions()
|
||||
return join([g:rustfmt_command, write_mode, config, g:rustfmt_options])
|
||||
endfunction
|
||||
|
||||
function! s:RunRustfmt(command, curw, tmpname)
|
||||
if exists("*systemlist")
|
||||
let out = systemlist(a:command)
|
||||
else
|
||||
let out = split(system(a:command), '\r\?\n')
|
||||
endif
|
||||
function! s:DeleteLines(start, end) abort
|
||||
silent! execute a:start . ',' . a:end . 'delete _'
|
||||
endfunction
|
||||
|
||||
if v:shell_error == 0 || v:shell_error == 3
|
||||
" remove undo point caused via BufWritePre
|
||||
try | silent undojoin | catch | endtry
|
||||
function! s:RunRustfmt(command, tmpname, from_writepre)
|
||||
let l:view = winsaveview()
|
||||
|
||||
" Replace current file with temp file, then reload buffer
|
||||
call rename(a:tmpname, expand('%'))
|
||||
silent edit!
|
||||
let &syntax = &syntax
|
||||
let l:stderr_tmpname = tempname()
|
||||
call writefile([], l:stderr_tmpname)
|
||||
|
||||
" only clear location list if it was previously filled to prevent
|
||||
" clobbering other additions
|
||||
if s:got_fmt_error
|
||||
let s:got_fmt_error = 0
|
||||
call setloclist(0, [])
|
||||
lwindow
|
||||
endif
|
||||
elseif g:rustfmt_fail_silently == 0
|
||||
" otherwise get the errors and put them in the location list
|
||||
let errors = []
|
||||
let l:command = a:command . ' 2> ' . l:stderr_tmpname
|
||||
|
||||
for line in out
|
||||
" src/lib.rs:13:5: 13:10 error: expected `,`, or `}`, found `value`
|
||||
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\):\s*\(\d\+:\d\+\s*\)\?\s*error: \(.*\)')
|
||||
if !empty(tokens)
|
||||
call add(errors, {"filename": @%,
|
||||
\"lnum": tokens[2],
|
||||
\"col": tokens[3],
|
||||
\"text": tokens[5]})
|
||||
endif
|
||||
endfor
|
||||
if a:tmpname ==# ''
|
||||
" Rustfmt in stdin/stdout mode
|
||||
|
||||
if empty(errors)
|
||||
% | " Couldn't detect rustfmt error format, output errors
|
||||
endif
|
||||
" chdir to the directory of the file
|
||||
let l:has_lcd = haslocaldir()
|
||||
let l:prev_cd = getcwd()
|
||||
execute 'lchdir! '.expand('%:h')
|
||||
|
||||
if !empty(errors)
|
||||
call setloclist(0, errors, 'r')
|
||||
echohl Error | echomsg "rustfmt returned error" | echohl None
|
||||
endif
|
||||
let l:buffer = getline(1, '$')
|
||||
if exists("*systemlist")
|
||||
silent let out = systemlist(l:command, l:buffer)
|
||||
else
|
||||
silent let out = split(system(l:command,
|
||||
\ join(l:buffer, "\n")), '\r\?\n')
|
||||
endif
|
||||
else
|
||||
if exists("*systemlist")
|
||||
silent let out = systemlist(l:command)
|
||||
else
|
||||
silent let out = split(system(l:command), '\r\?\n')
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:got_fmt_error = 1
|
||||
lwindow
|
||||
" We didn't use the temp file, so clean up
|
||||
call delete(a:tmpname)
|
||||
endif
|
||||
let l:stderr = readfile(l:stderr_tmpname)
|
||||
|
||||
call winrestview(a:curw)
|
||||
call delete(l:stderr_tmpname)
|
||||
|
||||
let l:open_lwindow = 0
|
||||
if v:shell_error == 0
|
||||
if a:from_writepre
|
||||
" remove undo point caused via BufWritePre
|
||||
try | silent undojoin | catch | endtry
|
||||
endif
|
||||
|
||||
if a:tmpname ==# ''
|
||||
let l:content = l:out
|
||||
else
|
||||
" take the tmpfile's content, this is better than rename
|
||||
" because it preserves file modes.
|
||||
let l:content = readfile(a:tmpname)
|
||||
endif
|
||||
|
||||
call s:DeleteLines(len(l:content), line('$'))
|
||||
call setline(1, l:content)
|
||||
|
||||
" only clear location list if it was previously filled to prevent
|
||||
" clobbering other additions
|
||||
if s:got_fmt_error
|
||||
let s:got_fmt_error = 0
|
||||
call setloclist(0, [])
|
||||
let l:open_lwindow = 1
|
||||
endif
|
||||
elseif g:rustfmt_fail_silently == 0 && !a:from_writepre
|
||||
" otherwise get the errors and put them in the location list
|
||||
let l:errors = []
|
||||
|
||||
let l:prev_line = ""
|
||||
for l:line in l:stderr
|
||||
" error: expected one of `;` or `as`, found `extern`
|
||||
" --> src/main.rs:2:1
|
||||
let tokens = matchlist(l:line, '^\s\+-->\s\(.\{-}\):\(\d\+\):\(\d\+\)$')
|
||||
if !empty(tokens)
|
||||
call add(l:errors, {"filename": @%,
|
||||
\"lnum": tokens[2],
|
||||
\"col": tokens[3],
|
||||
\"text": l:prev_line})
|
||||
endif
|
||||
let l:prev_line = l:line
|
||||
endfor
|
||||
|
||||
if !empty(l:errors)
|
||||
call setloclist(0, l:errors, 'r')
|
||||
echohl Error | echomsg "rustfmt returned error" | echohl None
|
||||
else
|
||||
echo "rust.vim: was not able to parse rustfmt messages. Here is the raw output:"
|
||||
echo "\n"
|
||||
for l:line in l:stderr
|
||||
echo l:line
|
||||
endfor
|
||||
endif
|
||||
|
||||
let s:got_fmt_error = 1
|
||||
let l:open_lwindow = 1
|
||||
endif
|
||||
|
||||
" Restore the current directory if needed
|
||||
if a:tmpname ==# ''
|
||||
if l:has_lcd
|
||||
execute 'lchdir! '.l:prev_cd
|
||||
else
|
||||
execute 'chdir! '.l:prev_cd
|
||||
endif
|
||||
endif
|
||||
|
||||
" Open lwindow after we have changed back to the previous directory
|
||||
if l:open_lwindow == 1
|
||||
lwindow
|
||||
endif
|
||||
|
||||
call winrestview(l:view)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#FormatRange(line1, line2)
|
||||
let l:curw = winsaveview()
|
||||
let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
|
||||
call writefile(getline(1, '$'), l:tmpname)
|
||||
|
||||
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
|
||||
|
||||
call s:RunRustfmt(command, l:curw, l:tmpname)
|
||||
let l:tmpname = tempname()
|
||||
call writefile(getline(1, '$'), l:tmpname)
|
||||
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
|
||||
call s:RunRustfmt(command, l:tmpname, v:false)
|
||||
call delete(l:tmpname)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#Format()
|
||||
let l:curw = winsaveview()
|
||||
let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
|
||||
call writefile(getline(1, '$'), l:tmpname)
|
||||
|
||||
let command = s:RustfmtCommand(l:tmpname)
|
||||
|
||||
call s:RunRustfmt(command, l:curw, l:tmpname)
|
||||
call s:RunRustfmt(s:RustfmtCommand(), '', v:false)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#Cmd()
|
||||
" Mainly for debugging
|
||||
return s:RustfmtCommand()
|
||||
endfunction
|
||||
|
||||
function! rustfmt#PreWrite()
|
||||
if !filereadable(expand("%@"))
|
||||
return
|
||||
endif
|
||||
if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0)
|
||||
if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# ''
|
||||
let b:rustfmt_autosave = 1
|
||||
let b:_rustfmt_autosave_because_of_config = 1
|
||||
endif
|
||||
else
|
||||
if has_key(b:, '_rustfmt_autosave_because_of_config')
|
||||
unlet b:_rustfmt_autosave_because_of_config
|
||||
unlet b:rustfmt_autosave
|
||||
endif
|
||||
endif
|
||||
|
||||
if !rust#GetConfigVar("rustfmt_autosave", 0)
|
||||
return
|
||||
endif
|
||||
|
||||
call s:RunRustfmt(s:RustfmtCommand(), '', v:true)
|
||||
endfunction
|
||||
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Vim script to download a missing spell file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Jul 10
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
if !exists('g:spellfile_URL')
|
||||
" Always use https:// because it's secure. The certificate is for nluug.nl,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim autoload file for the tohtml plugin.
|
||||
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||
" Last Change: 2023 Jan 01
|
||||
" Last Change: 2023 Sep 03
|
||||
"
|
||||
" Additional contributors:
|
||||
"
|
||||
@@ -307,7 +307,7 @@ func! tohtml#Convert2HTML(line1, line2) "{{{
|
||||
let g:html_diff_win_num = 0
|
||||
for window in win_list
|
||||
" switch to the next buffer to convert
|
||||
exe ":" . bufwinnr(window) . "wincmd w"
|
||||
exe ":" .. bufwinnr(window) .. "wincmd w"
|
||||
|
||||
" figure out whether current charset and encoding will work, if not
|
||||
" default to UTF-8
|
||||
@@ -355,7 +355,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
if !s:settings.no_doc
|
||||
if s:settings.use_xhtml
|
||||
if s:settings.encoding != ""
|
||||
let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
|
||||
let xml_line = "<?xml version=\"1.0\" encoding=\"" .. s:settings.encoding .. "\"?>"
|
||||
else
|
||||
let xml_line = "<?xml version=\"1.0\"?>"
|
||||
endif
|
||||
@@ -387,34 +387,34 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
" contained in XML information
|
||||
if s:settings.encoding != "" && !s:settings.use_xhtml
|
||||
if s:html5
|
||||
call add(html, '<meta charset="' . s:settings.encoding . '"' . tag_close)
|
||||
call add(html, '<meta charset="' .. s:settings.encoding .. '"' .. tag_close)
|
||||
else
|
||||
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
|
||||
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" .. s:settings.encoding .. '"' .. tag_close)
|
||||
endif
|
||||
endif
|
||||
|
||||
call add(html, '<title>diff</title>')
|
||||
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
|
||||
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
|
||||
call add(html, '<meta name="Generator" content="Vim/'..v:version/100..'.'..v:version%100..'"'..tag_close)
|
||||
call add(html, '<meta name="plugin-version" content="'..g:loaded_2html_plugin..'"'..tag_close)
|
||||
call add(html, '<meta name="settings" content="'.
|
||||
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
|
||||
\ ',prevent_copy='.s:settings.prevent_copy.
|
||||
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
|
||||
\ '"'.tag_close)
|
||||
\ ',prevent_copy='..s:settings.prevent_copy.
|
||||
\ ',use_input_for_pc='..s:settings.use_input_for_pc.
|
||||
\ '"'..tag_close)
|
||||
call add(html, '<meta name="colorscheme" content="'.
|
||||
\ (exists('g:colors_name')
|
||||
\ ? g:colors_name
|
||||
\ : 'none'). '"'.tag_close)
|
||||
\ : 'none').. '"'..tag_close)
|
||||
|
||||
call add(html, '</head>')
|
||||
let body_line_num = len(html)
|
||||
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
|
||||
call add(html, '<body'..(s:settings.line_ids ? ' onload="JumpToLine();"' : '')..'>')
|
||||
endif
|
||||
call add(html, "<table ".(s:settings.use_css? "" : "border='1' width='100%' ")."id='vimCodeElement".s:settings.id_suffix."'>")
|
||||
call add(html, "<table "..(s:settings.use_css? "" : "border='1' width='100%' ").."id='vimCodeElement"..s:settings.id_suffix.."'>")
|
||||
|
||||
call add(html, '<tr>')
|
||||
for buf in a:win_list
|
||||
call add(html, '<th>'.bufname(buf).'</th>')
|
||||
call add(html, '<th>'..bufname(buf)..'</th>')
|
||||
endfor
|
||||
call add(html, '</tr><tr>')
|
||||
|
||||
@@ -423,7 +423,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
|
||||
for buf in a:buf_list
|
||||
let temp = []
|
||||
exe bufwinnr(buf) . 'wincmd w'
|
||||
exe bufwinnr(buf) .. 'wincmd w'
|
||||
|
||||
" If text is folded because of user foldmethod settings, etc. we don't want
|
||||
" to act on everything in a fold by mistake.
|
||||
@@ -526,16 +526,16 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
endif
|
||||
|
||||
let i = 1
|
||||
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
|
||||
let name = "Diff" .. (s:settings.use_xhtml ? ".xhtml" : ".html")
|
||||
" Find an unused file name if current file name is already in use
|
||||
while filereadable(name)
|
||||
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
|
||||
let name = substitute(name, '\d*\.x\?html$', '', '') .. i .. '.' .. fnamemodify(copy(name), ":t:e")
|
||||
let i += 1
|
||||
endwhile
|
||||
|
||||
let s:ei_sav = &eventignore
|
||||
set eventignore+=FileType
|
||||
exe "topleft new " . name
|
||||
exe "topleft new " .. name
|
||||
let &eventignore=s:ei_sav
|
||||
unlet s:ei_sav
|
||||
|
||||
@@ -601,7 +601,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
\ "",
|
||||
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
|
||||
\ " var node = lineElem;",
|
||||
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
|
||||
\ " while (node && node.id != 'vimCodeElement"..s:settings.id_suffix.."')",
|
||||
\ " {",
|
||||
\ " if (node.className == 'closed-fold')",
|
||||
\ " {",
|
||||
@@ -640,7 +640,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
call append(style_start, [
|
||||
\ " function toggleFold(objID)",
|
||||
\ " {",
|
||||
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
|
||||
\ " for (win_num = 1; win_num <= "..len(a:buf_list).."; win_num++)",
|
||||
\ " {",
|
||||
\ " var fold;",
|
||||
\ ' fold = document.getElementById("win"+win_num+objID);',
|
||||
@@ -660,7 +660,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
if s:uses_script
|
||||
" insert script tag if needed
|
||||
call append(style_start, [
|
||||
\ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">",
|
||||
\ "<script" .. (s:html5 ? "" : " type='text/javascript'") .. ">",
|
||||
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
|
||||
endif
|
||||
|
||||
@@ -671,14 +671,14 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
" is pretty useless for really long lines. {{{
|
||||
if s:settings.use_css
|
||||
call append(style_start,
|
||||
\ ['<style' . (s:html5 ? '' : 'type="text/css"') . '>']+
|
||||
\ ['<style' .. (s:html5 ? '' : 'type="text/css"') .. '>']+
|
||||
\ style+
|
||||
\ [ s:settings.use_xhtml ? '' : '<!--',
|
||||
\ 'table { table-layout: fixed; }',
|
||||
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
|
||||
\ 'table, td, th { border: 1px solid; }',
|
||||
\ 'td { vertical-align: top; }',
|
||||
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
|
||||
\ 'th, td { width: '..printf("%.1f",100.0/len(a:win_list))..'%; }',
|
||||
\ 'td div { overflow: auto; }',
|
||||
\ s:settings.use_xhtml ? '' : '-->',
|
||||
\ '</style>'
|
||||
@@ -694,7 +694,7 @@ endfunc "}}}
|
||||
" Gets a single user option and sets it in the passed-in Dict, or gives it the
|
||||
" default value if the option doesn't actually exist.
|
||||
func! tohtml#GetOption(settings, option, default) "{{{
|
||||
if exists('g:html_'.a:option)
|
||||
if exists('g:html_'..a:option)
|
||||
let a:settings[a:option] = g:html_{a:option}
|
||||
else
|
||||
let a:settings[a:option] = a:default
|
||||
@@ -713,10 +713,11 @@ func! tohtml#GetUserSettings() "{{{
|
||||
let user_settings = {}
|
||||
|
||||
" Define the correct option if the old option name exists and we haven't
|
||||
" already defined the correct one. Maybe I'll put out a warning message about
|
||||
" this sometime and remove the old option entirely at some even later time,
|
||||
" but for now just silently accept the old option.
|
||||
" already defined the correct one.
|
||||
if exists('g:use_xhtml') && !exists("g:html_use_xhtml")
|
||||
echohl WarningMsg
|
||||
echomsg "Warning: g:use_xhtml is deprecated, use g:html_use_xhtml"
|
||||
echohl None
|
||||
let g:html_use_xhtml = g:use_xhtml
|
||||
endif
|
||||
|
||||
@@ -739,7 +740,7 @@ func! tohtml#GetUserSettings() "{{{
|
||||
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
||||
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
||||
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
|
||||
call tohtml#GetOption(user_settings, 'use_input_for_pc', 'fallback')
|
||||
call tohtml#GetOption(user_settings, 'use_input_for_pc', 'none')
|
||||
" }}}
|
||||
|
||||
" override those settings that need it {{{
|
||||
@@ -854,16 +855,16 @@ func! tohtml#GetUserSettings() "{{{
|
||||
if user_settings.use_css
|
||||
if exists("g:html_prevent_copy")
|
||||
if user_settings.dynamic_folds && !user_settings.no_foldcolumn && g:html_prevent_copy =~# 'f'
|
||||
let user_settings.prevent_copy .= 'f'
|
||||
let user_settings.prevent_copy ..= 'f'
|
||||
endif
|
||||
if user_settings.number_lines && g:html_prevent_copy =~# 'n'
|
||||
let user_settings.prevent_copy .= 'n'
|
||||
let user_settings.prevent_copy ..= 'n'
|
||||
endif
|
||||
if &diff && g:html_prevent_copy =~# 'd'
|
||||
let user_settings.prevent_copy .= 'd'
|
||||
let user_settings.prevent_copy ..= 'd'
|
||||
endif
|
||||
if !user_settings.ignore_folding && g:html_prevent_copy =~# 't'
|
||||
let user_settings.prevent_copy .= 't'
|
||||
let user_settings.prevent_copy ..= 't'
|
||||
endif
|
||||
else
|
||||
let user_settings.prevent_copy = ""
|
||||
@@ -875,10 +876,10 @@ func! tohtml#GetUserSettings() "{{{
|
||||
|
||||
" enforce valid values for use_input_for_pc
|
||||
if user_settings.use_input_for_pc !~# 'fallback\|none\|all'
|
||||
let user_settings.use_input_for_pc = 'fallback'
|
||||
let user_settings.use_input_for_pc = 'none'
|
||||
echohl WarningMsg
|
||||
echomsg '2html: "' . g:html_use_input_for_pc . '" is not valid for g:html_use_input_for_pc'
|
||||
echomsg '2html: defaulting to "' . user_settings.use_input_for_pc . '"'
|
||||
echomsg '2html: "' .. g:html_use_input_for_pc .. '" is not valid for g:html_use_input_for_pc'
|
||||
echomsg '2html: defaulting to "' .. user_settings.use_input_for_pc .. '"'
|
||||
echohl None
|
||||
sleep 3
|
||||
endif
|
||||
|
||||
@@ -57,6 +57,15 @@ if !exists("g:zip_extractcmd")
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
endif
|
||||
|
||||
let s:tmp_cwd = getcwd()
|
||||
if (fnamemodify(exepath(g:zip_unzipcmd), ":p:h") ==# getcwd()
|
||||
\ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.'))
|
||||
unlet s:tmp_cwd
|
||||
echoerr "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!"
|
||||
finish
|
||||
endif
|
||||
unlet s:tmp_cwd
|
||||
|
||||
" ----------------
|
||||
" Functions: {{{1
|
||||
" ----------------
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
:" Use this script to create the file "bugreport.txt", which contains
|
||||
:" information about the environment of a possible bug in Vim.
|
||||
:"
|
||||
:" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
:" Last change: 2019 Jan 27
|
||||
:" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
:" Last change: 2023 Aug 10
|
||||
:" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
:"
|
||||
:" To use inside Vim:
|
||||
:" :so $VIMRUNTIME/bugreport.vim
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Vim color file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2001 Jul 23
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" This is the default color scheme. It doesn't define the Normal
|
||||
" highlighting, it uses whatever the colors used to be.
|
||||
|
||||
@@ -8,4 +8,4 @@ If you want to write your own compiler plugin, have a look at the other files
|
||||
for how to do it, the format is simple.
|
||||
|
||||
If you think a compiler plugin you have written is useful for others, please
|
||||
send it to Bram@vim.org.
|
||||
send it to the vim-dev mailing list: <vim-dev@vim.org>
|
||||
|
||||
@@ -1,35 +1,51 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Cargo Compiler
|
||||
" Maintainer: Damien Radtke <damienradtke@gmail.com>
|
||||
" Latest Revision: 2014 Sep 24
|
||||
" Latest Revision: 2023-09-11
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
runtime compiler/rustc.vim
|
||||
let current_compiler = "cargo"
|
||||
|
||||
" vint: -ProhibitAbbreviationOption
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
" vint: +ProhibitAbbreviationOption
|
||||
|
||||
if exists(':CompilerSet') != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if exists('g:cargo_makeprg_params')
|
||||
execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*'
|
||||
execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*'
|
||||
else
|
||||
CompilerSet makeprg=cargo\ $*
|
||||
CompilerSet makeprg=cargo\ $*
|
||||
endif
|
||||
|
||||
augroup RustCargoQuickFixHooks
|
||||
autocmd!
|
||||
autocmd QuickFixCmdPre make call cargo#quickfix#CmdPre()
|
||||
autocmd QuickFixCmdPost make call cargo#quickfix#CmdPost()
|
||||
augroup END
|
||||
|
||||
" Ignore general cargo progress messages
|
||||
CompilerSet errorformat+=
|
||||
\%-G%\\s%#Downloading%.%#,
|
||||
\%-G%\\s%#Compiling%.%#,
|
||||
\%-G%\\s%#Finished%.%#,
|
||||
\%-G%\\s%#error:\ Could\ not\ compile\ %.%#,
|
||||
\%-G%\\s%#To\ learn\ more\\,%.%#
|
||||
\%-G%\\s%#Downloading%.%#,
|
||||
\%-G%\\s%#Checking%.%#,
|
||||
\%-G%\\s%#Compiling%.%#,
|
||||
\%-G%\\s%#Finished%.%#,
|
||||
\%-G%\\s%#error:\ Could\ not\ compile\ %.%#,
|
||||
\%-G%\\s%#To\ learn\ more\\,%.%#,
|
||||
\%-G%\\s%#For\ more\ information\ about\ this\ error\\,%.%#,
|
||||
\%-Gnote:\ Run\ with\ \`RUST_BACKTRACE=%.%#,
|
||||
\%.%#panicked\ at\ \\'%m\\'\\,\ %f:%l:%c
|
||||
|
||||
" vint: -ProhibitAbbreviationOption
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vint: +ProhibitAbbreviationOption
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Microsoft Visual C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2014 Sep 20
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
@@ -1,46 +1,57 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Rust Compiler
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Latest Revision: 2013 Jul 12
|
||||
" Latest Revision: 2023-09-11
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "rustc"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
" vint: -ProhibitAbbreviationOption
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
" vint: +ProhibitAbbreviationOption
|
||||
|
||||
if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0
|
||||
CompilerSet makeprg=rustc
|
||||
if get(g:, 'rustc_makeprg_no_percent', 0)
|
||||
CompilerSet makeprg=rustc
|
||||
else
|
||||
CompilerSet makeprg=rustc\ \%:S
|
||||
if has('patch-7.4.191')
|
||||
CompilerSet makeprg=rustc\ \%:S
|
||||
else
|
||||
CompilerSet makeprg=rustc\ \"%\"
|
||||
endif
|
||||
endif
|
||||
|
||||
" Old errorformat (before nightly 2016/08/10)
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:%c:\ %t%*[^:]:\ %m,
|
||||
\%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m,
|
||||
\%-G%f:%l\ %s,
|
||||
\%-G%*[\ ]^,
|
||||
\%-G%*[\ ]^%*[~],
|
||||
\%-G%*[\ ]...
|
||||
|
||||
" New errorformat (after nightly 2016/08/10)
|
||||
CompilerSet errorformat+=
|
||||
\%-G,
|
||||
\%-Gerror:\ aborting\ %.%#,
|
||||
\%-Gerror:\ Could\ not\ compile\ %.%#,
|
||||
\%Eerror:\ %m,
|
||||
\%Eerror[E%n]:\ %m,
|
||||
\%Wwarning:\ %m,
|
||||
\%Inote:\ %m,
|
||||
\%C\ %#-->\ %f:%l:%c
|
||||
CompilerSet errorformat=
|
||||
\%-G,
|
||||
\%-Gerror:\ aborting\ %.%#,
|
||||
\%-Gerror:\ Could\ not\ compile\ %.%#,
|
||||
\%Eerror:\ %m,
|
||||
\%Eerror[E%n]:\ %m,
|
||||
\%Wwarning:\ %m,
|
||||
\%Inote:\ %m,
|
||||
\%C\ %#-->\ %f:%l:%c,
|
||||
\%E\ \ left:%m,%C\ right:%m\ %f:%l:%c,%Z
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" Old errorformat (before nightly 2016/08/10)
|
||||
CompilerSet errorformat+=
|
||||
\%f:%l:%c:\ %t%*[^:]:\ %m,
|
||||
\%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m,
|
||||
\%-G%f:%l\ %s,
|
||||
\%-G%*[\ ]^,
|
||||
\%-G%*[\ ]^%*[~],
|
||||
\%-G%*[\ ]...
|
||||
|
||||
" vint: -ProhibitAbbreviationOption
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vint: +ProhibitAbbreviationOption
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" The default vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2023 May 10
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
"
|
||||
" This is loaded if no vimrc file was found.
|
||||
" Except when Vim is run with "-u NONE" or "-C".
|
||||
@@ -97,17 +98,21 @@ if 1
|
||||
filetype plugin indent on
|
||||
|
||||
" Put these in an autocmd group, so that you can revert them with:
|
||||
" ":augroup vimStartup | exe 'au!' | augroup END"
|
||||
" ":autocmd! vimStartup"
|
||||
augroup vimStartup
|
||||
au!
|
||||
autocmd!
|
||||
|
||||
" When editing a file, always jump to the last known cursor position.
|
||||
" Don't do it when the position is invalid, when inside an event handler
|
||||
" (happens when dropping a file on gvim) and for a commit message (it's
|
||||
" likely a different one than last time).
|
||||
" (happens when dropping a file on gvim), for a commit or rebase message
|
||||
" (likely a different one than last time), and when using xxd(1) to filter
|
||||
" and edit binary files (it transforms input files back and forth, causing
|
||||
" them to have dual nature, so to speak)
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||
\ | exe "normal! g`\""
|
||||
\ let line = line("'\"")
|
||||
\ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
|
||||
\ && index(['xxd', 'gitrebase'], &filetype) == -1
|
||||
\ | execute "normal! g`\""
|
||||
\ | endif
|
||||
|
||||
augroup END
|
||||
@@ -115,11 +120,11 @@ if 1
|
||||
" Quite a few people accidentally type "q:" instead of ":q" and get confused
|
||||
" by the command line window. Give a hint about how to get out.
|
||||
" If you don't like this you can put this in your vimrc:
|
||||
" ":augroup vimHints | exe 'au!' | augroup END"
|
||||
" ":autocmd! vimHints"
|
||||
augroup vimHints
|
||||
au!
|
||||
autocmd CmdwinEnter *
|
||||
\ echohl Todo |
|
||||
\ echohl Todo |
|
||||
\ echo gettext('You discovered the command-line window! You can close it with ":q".') |
|
||||
\ echohl None
|
||||
augroup END
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
" This Vim script deletes all the menus, so that they can be redefined.
|
||||
" Warning: This also deletes all menus defined by the user!
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Dec 10
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
aunmenu *
|
||||
tlunmenu *
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2023 Jun 08
|
||||
*builtin.txt* For Vim version 9.0. Last change: 2023 Aug 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -156,6 +156,7 @@ digraph_setlist({digraphlist}) Boolean register multiple |digraph|s
|
||||
echoraw({expr}) none output {expr} as-is
|
||||
empty({expr}) Number |TRUE| if {expr} is empty
|
||||
environ() Dict return environment variables
|
||||
err_teapot([{expr}]) none give E418, or E503 if {expr} is |TRUE|
|
||||
escape({string}, {chars}) String escape {chars} in {string} with '\'
|
||||
eval({string}) any evaluate {string} into its value
|
||||
eventhandler() Number |TRUE| if inside an event handler
|
||||
@@ -309,6 +310,7 @@ inputrestore() Number restore typeahead
|
||||
inputsave() Number save and clear typeahead
|
||||
inputsecret({prompt} [, {text}]) String like input() but hiding the text
|
||||
insert({object}, {item} [, {idx}]) List insert {item} in {object} [before {idx}]
|
||||
instanceof({object}, {class}) Number |TRUE| if {object} is an instance of {class}
|
||||
interrupt() none interrupt script execution
|
||||
invert({expr}) Number bitwise invert
|
||||
isabsolutepath({path}) Number |TRUE| if {path} is an absolute path
|
||||
@@ -706,13 +708,14 @@ trunc({expr}) Float truncate Float {expr}
|
||||
type({expr}) Number type of value {expr}
|
||||
typename({expr}) String representation of the type of {expr}
|
||||
undofile({name}) String undo file name for {name}
|
||||
undotree() List undo file tree
|
||||
undotree([{buf}]) List undo file tree for buffer {buf}
|
||||
uniq({list} [, {func} [, {dict}]])
|
||||
List remove adjacent duplicates from a list
|
||||
utf16idx({string}, {idx} [, {countcc} [, {charidx}]])
|
||||
Number UTF-16 index of byte {idx} in {string}
|
||||
values({dict}) List values in {dict}
|
||||
virtcol({expr} [, {list}]) Number or List
|
||||
virtcol({expr} [, {list} [, {winid}])
|
||||
Number or List
|
||||
screen column of cursor or mark
|
||||
virtcol2col({winid}, {lnum}, {col})
|
||||
Number byte index of a character on screen
|
||||
@@ -1248,7 +1251,7 @@ bufload({buf}) *bufload()*
|
||||
refers to an existing file then the file is read. Otherwise
|
||||
the buffer will be empty. If the buffer was already loaded
|
||||
then there is no change. If the buffer is not related to a
|
||||
file the no file is read (e.g., when 'buftype' is "nofile").
|
||||
file then no file is read (e.g., when 'buftype' is "nofile").
|
||||
If there is an existing swap file for the file of the buffer,
|
||||
there will be no dialog, the buffer will be loaded anyway.
|
||||
The {buf} argument is used like with |bufexists()|.
|
||||
@@ -2201,6 +2204,15 @@ environ() *environ()*
|
||||
use this: >
|
||||
:echo index(keys(environ()), 'HOME', 0, 1) != -1
|
||||
|
||||
|
||||
err_teapot([{expr}]) *err_teapot()*
|
||||
Produce an error with number 418, needed for implementation of
|
||||
RFC 2324.
|
||||
If {expr} is present and it is TRUE error 503 is given,
|
||||
indicating that coffee is temporarily not available.
|
||||
If {expr} is present it must be a String.
|
||||
|
||||
|
||||
escape({string}, {chars}) *escape()*
|
||||
Escape the characters in {chars} that occur in {string} with a
|
||||
backslash. Example: >
|
||||
@@ -3540,6 +3552,8 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
cmdline |cmdline-completion| result
|
||||
compiler compilers
|
||||
cscope |:cscope| suboptions
|
||||
custom,{func} custom completion, defined via {func}
|
||||
customlist,{func} custom completion, defined via {func}
|
||||
diff_buffer |:diffget| and |:diffput| completion
|
||||
dir directory names
|
||||
environment environment variable names
|
||||
@@ -3992,6 +4006,9 @@ getqflist([{what}]) *getqflist()*
|
||||
text description of the error
|
||||
type type of the error, 'E', '1', etc.
|
||||
valid |TRUE|: recognized error message
|
||||
user_data
|
||||
custom data associated with the item, can be
|
||||
any type.
|
||||
|
||||
When there is no error list or it's empty, an empty list is
|
||||
returned. Quickfix list entries with a non-existing buffer
|
||||
@@ -5036,6 +5053,17 @@ insert({object}, {item} [, {idx}]) *insert()*
|
||||
Can also be used as a |method|: >
|
||||
mylist->insert(item)
|
||||
|
||||
instanceof({object}, {class}) *instanceof()*
|
||||
The result is a Number, which is |TRUE| when the {object} argument is a
|
||||
direct or indirect instance of a |Class| specified by {class}.
|
||||
When {class} is a |List| the function returns |TRUE| when {object} is an
|
||||
instance of any of the specified classes.
|
||||
Example: >
|
||||
instanceof(animal, [Dog, Cat])
|
||||
|
||||
< Can also be used as a |method|: >
|
||||
myobj->instanceof(mytype)
|
||||
|
||||
interrupt() *interrupt()*
|
||||
Interrupt script execution. It works more or less like the
|
||||
user typing CTRL-C, most commands won't execute and control
|
||||
@@ -6380,6 +6408,7 @@ mode([expr]) Return a string that indicates the current mode.
|
||||
Rvc Virtual Replace mode completion |compl-generic|
|
||||
Rvx Virtual Replace mode |i_CTRL-X| completion
|
||||
c Command-line editing
|
||||
ct Command-line editing via Terminal-Job mode
|
||||
cv Vim Ex mode |gQ|
|
||||
ce Normal Ex mode |Q|
|
||||
r Hit-enter prompt
|
||||
@@ -6577,7 +6606,11 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
The "%" starts a conversion specification. The following
|
||||
arguments appear in sequence:
|
||||
|
||||
% [flags] [field-width] [.precision] type
|
||||
% [pos-argument] [flags] [field-width] [.precision] type
|
||||
|
||||
pos-argument
|
||||
At most one positional argument specifier. These
|
||||
take the form {n$}, where n is >= 1.
|
||||
|
||||
flags
|
||||
Zero or more of the following flags:
|
||||
@@ -6649,6 +6682,13 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
< This limits the length of the text used from "line" to
|
||||
"width" bytes.
|
||||
|
||||
If the argument to be formatted is specified using a posional
|
||||
argument specifier, and a '*' is used to indicate that a
|
||||
number argument is to be used to specify the width or
|
||||
precision, the argument(s) to be used must also be specified
|
||||
using a {n$} positional argument specifier. See |printf-$|.
|
||||
|
||||
|
||||
The conversion specifiers and their meanings are:
|
||||
|
||||
*printf-d* *printf-b* *printf-B* *printf-o*
|
||||
@@ -6667,8 +6707,13 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
a conversion is wider than the field width, the field
|
||||
is expanded to contain the conversion result.
|
||||
The 'h' modifier indicates the argument is 16 bits.
|
||||
The 'l' modifier indicates the argument is 32 bits.
|
||||
The 'L' modifier indicates the argument is 64 bits.
|
||||
The 'l' modifier indicates the argument is a long
|
||||
integer. The size will be 32 bits or 64 bits
|
||||
depending on your platform.
|
||||
The "ll" modifier indicates the argument is 64 bits.
|
||||
The b and B conversion specifiers never take a width
|
||||
modifier and always assume their argument is a 64 bit
|
||||
integer.
|
||||
Generally, these modifiers are not useful. They are
|
||||
ignored when type is known from the argument.
|
||||
|
||||
@@ -6738,6 +6783,103 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
of "%" items. If there are not sufficient or too many
|
||||
arguments an error is given. Up to 18 arguments can be used.
|
||||
|
||||
*printf-$*
|
||||
In certain languages, error and informative messages are
|
||||
more readable when the order of words is different from the
|
||||
corresponding message in English. To accommodate translations
|
||||
having a different word order, positional arguments may be
|
||||
used to indicate this. For instance: >
|
||||
|
||||
#, c-format
|
||||
msgid "%s returning %s"
|
||||
msgstr "waarde %2$s komt terug van %1$s"
|
||||
<
|
||||
In this example, the sentence has its 2 string arguments reversed
|
||||
in the output. >
|
||||
|
||||
echo printf(
|
||||
"In The Netherlands, vim's creator's name is: %1$s %2$s",
|
||||
"Bram", "Moolenaar")
|
||||
< In The Netherlands, vim's creator's name is: Bram Moolenaar >
|
||||
|
||||
echo printf(
|
||||
"In Belgium, vim's creator's name is: %2$s %1$s",
|
||||
"Bram", "Moolenaar")
|
||||
< In Belgium, vim's creator's name is: Moolenaar Bram
|
||||
|
||||
Width (and precision) can be specified using the '*' specifier.
|
||||
In this case, you must specify the field width position in the
|
||||
argument list. >
|
||||
|
||||
echo printf("%1$*2$.*3$d", 1, 2, 3)
|
||||
< 001 >
|
||||
echo printf("%2$*3$.*1$d", 1, 2, 3)
|
||||
< 2 >
|
||||
echo printf("%3$*1$.*2$d", 1, 2, 3)
|
||||
< 03 >
|
||||
echo printf("%1$*2$.*3$g", 1.4142, 2, 3)
|
||||
< 1.414
|
||||
|
||||
You can mix specifying the width and/or precision directly
|
||||
and via positional arguments: >
|
||||
|
||||
echo printf("%1$4.*2$f", 1.4142135, 6)
|
||||
< 1.414214 >
|
||||
echo printf("%1$*2$.4f", 1.4142135, 6)
|
||||
< 1.4142 >
|
||||
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
|
||||
< 1.41
|
||||
|
||||
*E1400*
|
||||
You cannot mix positional and non-positional arguments: >
|
||||
echo printf("%s%1$s", "One", "Two")
|
||||
< E1400: Cannot mix positional and non-positional
|
||||
arguments: %s%1$s
|
||||
|
||||
*E1401*
|
||||
You cannot skip a positional argument in a format string: >
|
||||
echo printf("%3$s%1$s", "One", "Two", "Three")
|
||||
< E1401: format argument 2 unused in $-style
|
||||
format: %3$s%1$s
|
||||
|
||||
*E1402*
|
||||
You can re-use a [field-width] (or [precision]) argument: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
|
||||
< 1 at width 2 is: 01
|
||||
|
||||
However, you can't use it as a different type: >
|
||||
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
|
||||
< E1402: Positional argument 2 used as field
|
||||
width reused as different type: long int/int
|
||||
|
||||
*E1403*
|
||||
When a positional argument is used, but not the correct number
|
||||
or arguments is given, an error is raised: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
%1$d at width %2$d is: %01$*2$.*3$d
|
||||
|
||||
Only the first error is reported: >
|
||||
echo printf("%01$*2$.*3$d %4$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
%01$*2$.*3$d %4$d
|
||||
|
||||
*E1404*
|
||||
A positional argument can be used more than once: >
|
||||
echo printf("%1$s %2$s %1$s", "One", "Two")
|
||||
< One Two One
|
||||
|
||||
However, you can't use a different type the second time: >
|
||||
echo printf("%1$s %2$s %1$d", "One", "Two")
|
||||
< E1404: Positional argument 1 type used
|
||||
inconsistently: int/string
|
||||
|
||||
*E1405*
|
||||
Various other errors that lead to a format string being
|
||||
wrongly formatted lead to: >
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
|
||||
< E1405: Invalid format specifier:
|
||||
%1$d at width %2$d is: %01$*2$.3$d
|
||||
|
||||
prompt_getprompt({buf}) *prompt_getprompt()*
|
||||
Returns the effective prompt text for buffer {buf}. {buf} can
|
||||
@@ -8288,6 +8430,8 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
||||
text description of the error
|
||||
type single-character error type, 'E', 'W', etc.
|
||||
valid recognized error message
|
||||
user_data custom data associated with the item, can be
|
||||
any type.
|
||||
|
||||
The "col", "vcol", "nr", "type" and "text" entries are
|
||||
optional. Either "lnum" or "pattern" entry can be used to
|
||||
@@ -10063,9 +10207,10 @@ undofile({name}) *undofile()*
|
||||
Can also be used as a |method|: >
|
||||
GetFilename()->undofile()
|
||||
|
||||
undotree() *undotree()*
|
||||
Return the current state of the undo tree in a dictionary with
|
||||
the following items:
|
||||
undotree([{buf}]) *undotree()*
|
||||
Return the current state of the undo tree for the current
|
||||
buffer, or for a specific buffer if {buf} is given. The
|
||||
result is a dictionary with the following items:
|
||||
"seq_last" The highest undo sequence number used.
|
||||
"seq_cur" The sequence number of the current position in
|
||||
the undo tree. This differs from "seq_last"
|
||||
@@ -10159,7 +10304,7 @@ values({dict}) *values()*
|
||||
Can also be used as a |method|: >
|
||||
mydict->values()
|
||||
|
||||
virtcol({expr} [, {list}]) *virtcol()*
|
||||
virtcol({expr} [, {list} [, {winid}]]) *virtcol()*
|
||||
The result is a Number, which is the screen column of the file
|
||||
position given with {expr}. That is, the last screen position
|
||||
occupied by the character at that position, when the screen
|
||||
@@ -10191,10 +10336,13 @@ virtcol({expr} [, {list}]) *virtcol()*
|
||||
returns the cursor position. Differs from |'<| in
|
||||
that it's updated right away.
|
||||
|
||||
If {list} is present and non-zero then virtcol() returns a List
|
||||
with the first and last screen position occupied by the
|
||||
If {list} is present and non-zero then virtcol() returns a
|
||||
List with the first and last screen position occupied by the
|
||||
character.
|
||||
|
||||
With the optional {winid} argument the values are obtained for
|
||||
that window instead of the current window.
|
||||
|
||||
Note that only marks in the current file can be used.
|
||||
Examples: >
|
||||
" With text "foo^Lbar" and cursor on the "^L":
|
||||
@@ -10206,7 +10354,7 @@ virtcol({expr} [, {list}]) *virtcol()*
|
||||
" With text " there", with 't at 'h':
|
||||
|
||||
virtcol("'t") " returns 6
|
||||
< The first column is 1. 0 is returned for an error.
|
||||
< The first column is 1. 0 or [0, 0] is returned for an error.
|
||||
A more advanced example that echoes the maximum length of
|
||||
all lines: >
|
||||
echo max(map(range(1, line('$')), "virtcol([v:val, '$'])"))
|
||||
@@ -10223,6 +10371,9 @@ virtcol2col({winid}, {lnum}, {col}) *virtcol2col()*
|
||||
{lnum}, then the byte index of the character at the last
|
||||
virtual column is returned.
|
||||
|
||||
For a multi-byte character, the column number of the first
|
||||
byte in the character is returned.
|
||||
|
||||
The {winid} argument can be the window number or the
|
||||
|window-ID|. If this is zero, then the current window is used.
|
||||
|
||||
@@ -10853,6 +11004,7 @@ 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|
|
||||
pythonx Python 2.x and/or 3.x interface available. |python_x|
|
||||
qnx QNX version of Vim.
|
||||
quickfix Compiled with |quickfix| support.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.0. Last change: 2023 Mar 07
|
||||
*change.txt* For Vim version 9.0. Last change: 2023 Sep 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -210,6 +210,7 @@ gR Enter Virtual Replace mode: Each character you type
|
||||
|
||||
*v_r*
|
||||
{Visual}r{char} Replace all selected characters by {char}.
|
||||
CTRL-C will be inserted literally.
|
||||
|
||||
*v_C*
|
||||
{Visual}["x]C Delete the highlighted lines [into register x] and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 9.0. Last change: 2022 Dec 01
|
||||
*channel.txt* For Vim version 9.0. Last change: 2023 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -956,7 +956,7 @@ job_start({command} [, {options}]) *job_start()*
|
||||
to String. This works best on Unix.
|
||||
|
||||
On MS-Windows, job_start() makes a GUI application hidden. If
|
||||
want to show it, Use |:!start| instead.
|
||||
you want to show it, use |:!start| instead.
|
||||
|
||||
The command is executed directly, not through a shell, the
|
||||
'shell' option is not used. To use the shell: >
|
||||
|
||||
@@ -2424,6 +2424,25 @@ v:progpath Contains the command with which Vim was invoked, in a form
|
||||
".exe" is not added to v:progpath.
|
||||
Read-only.
|
||||
|
||||
*v:python3_version* *python3-version-variable*
|
||||
v:python3_version
|
||||
Version of Python 3 that Vim was built against. When
|
||||
Python is loaded dynamically (|python-dynamic|), this version
|
||||
should exactly match the Python library up to the minor
|
||||
version (e.g. 3.10.2 and 3.10.3 are compatible as the minor
|
||||
version is "10", whereas 3.9.4 and 3.10.3 are not compatible).
|
||||
When |python-stable-abi| is used, this will be the minimum Python
|
||||
version that you can use instead. (e.g. if v:python3_version
|
||||
indicates 3.9, you can use 3.9, 3.10, or anything above).
|
||||
|
||||
This number is encoded as a hex number following Python ABI
|
||||
versioning conventions. Do the following to have a
|
||||
human-readable full version in hex: >
|
||||
echo printf("%08X", v:python3_version)
|
||||
< You can obtain only the minor version by doing: >
|
||||
echo and(v:python3_version>>16,0xff)
|
||||
< Read-only.
|
||||
|
||||
*v:register* *register-variable*
|
||||
v:register The name of the register in effect for the current normal mode
|
||||
command (regardless of whether that command actually used a
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
.TH EVIM 1 "16 febbraio 2002 "
|
||||
.SH NOME
|
||||
evim \- Vim "facile", Vim impostato in modo da poter essere usato
|
||||
facilmente per modificare file, anche da chi non abbia familiarit<69>
|
||||
con i comandi.
|
||||
evim \- Vim "facile", impostato in modo da poter essere usato come editore non-modale
|
||||
.SH SINTASSI
|
||||
.br
|
||||
.B evim
|
||||
@@ -13,42 +11,39 @@ con i comandi.
|
||||
.B evim
|
||||
Inizia
|
||||
.B Vim
|
||||
e imposta le opzioni per farlo comportare come un editore "modeless".
|
||||
State sempre usando Vim, ma come un editore "posizionati-e-clicca".
|
||||
Simile all'uso di Notepad in MS-Windows.
|
||||
.B evim
|
||||
richiede la presenza della GUI, per avere a disposizione men<65> e barra
|
||||
strumenti.
|
||||
e imposta le opzioni per farlo comportare come un editore non-modale.
|
||||
Si tratta sempre di Vim, ma usato nello stile "posizionati-e-clicca".
|
||||
Rammenta molto l'utilizzo di Notepad in MS-Windows.
|
||||
.B eVim
|
||||
necessita della disponibilit<EFBFBD> della GUI, per utilizzare men<65> e barra strumenti.
|
||||
.PP
|
||||
Da usarsi soltanto se non si <20> in grado di lavorare con Vim nella
|
||||
maniera usuale.
|
||||
La modifica file sar<61> molto meno efficiente.
|
||||
Va a usato soltanto se non si <20> in grado di lavorare con Vim nella maniera usuale.
|
||||
L'edit dei file sar<61> molto meno efficiente.
|
||||
.PP
|
||||
.B eview
|
||||
come sopra, ma parte in modalit<69> "Sola Lettura". Funziona come evim \-R.
|
||||
come sopra, ma si parte in modalit<69> "Sola Lettura". Funziona come evim \-R.
|
||||
.PP
|
||||
Vedere vim(1) per dettagli riguardo a Vim, opzioni, etc.
|
||||
.PP
|
||||
L'opzione 'insertmode' <20> impostata per poter immettere del testo direttamente.
|
||||
L'opzione 'insertmode' <20> impostata in modo da consentire l'immissione diretta di testo fin dall'inizio.
|
||||
.br
|
||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
||||
familiari tasti usati sotto MS-Windows.
|
||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i familiari tasti usati sotto MS-Windows.
|
||||
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
|
||||
Usate CTRL-Q per ottenere quello che si otterrebbe con CTRL-V in Vim nativo.
|
||||
Occorre usare CTRL-Q per ottenere il comportamenti di CTRL-V in Vim nativo.
|
||||
.SH OPZIONI
|
||||
Vedere vim(1).
|
||||
.SH FILE
|
||||
.TP 15
|
||||
/usr/local/lib/vim/evim.vim
|
||||
Lo script caricato per inizializzare eVim.
|
||||
.SH NAC [NOTO ANCHE COME]
|
||||
Noto Anche Come "Vim per semplici".
|
||||
Quando usate evim si suppone che prendiate un fazzoletto,
|
||||
facciate un nodo ad ogni angolo e ve lo mettiate in testa.
|
||||
.SH AKA
|
||||
[Also Known As] noto anche come "Vim per semplici".
|
||||
Quando is usa evim si suppone che si prenda un fazzoletto,
|
||||
si faccia un nodo ad ogni angolo e lo si metta in testa.
|
||||
.SH VEDERE ANCHE
|
||||
vim(1)
|
||||
.SH AUTORE
|
||||
Buona parte di
|
||||
.B Vim
|
||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da parte di altri.
|
||||
Vedere il men<65> "Aiuto/Crediti".
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
.TH EVIM 1 "16 febbraio 2002 "
|
||||
.SH NOME
|
||||
evim \- Vim "facile", Vim impostato in modo da poter essere usato
|
||||
facilmente per modificare file, anche da chi non abbia familiarità
|
||||
con i comandi.
|
||||
evim \- Vim "facile", impostato in modo da poter essere usato come editore non-modale
|
||||
.SH SINTASSI
|
||||
.br
|
||||
.B evim
|
||||
@@ -13,42 +11,39 @@ con i comandi.
|
||||
.B evim
|
||||
Inizia
|
||||
.B Vim
|
||||
e imposta le opzioni per farlo comportare come un editore "modeless".
|
||||
State sempre usando Vim, ma come un editore "posizionati-e-clicca".
|
||||
Simile all'uso di Notepad in MS-Windows.
|
||||
.B evim
|
||||
richiede la presenza della GUI, per avere a disposizione menù e barra
|
||||
strumenti.
|
||||
e imposta le opzioni per farlo comportare come un editore non-modale.
|
||||
Si tratta sempre di Vim, ma usato nello stile "posizionati-e-clicca".
|
||||
Rammenta molto l'utilizzo di Notepad in MS-Windows.
|
||||
.B eVim
|
||||
necessita della disponibilità della GUI, per utilizzare menù e barra strumenti.
|
||||
.PP
|
||||
Da usarsi soltanto se non si è in grado di lavorare con Vim nella
|
||||
maniera usuale.
|
||||
La modifica file sarà molto meno efficiente.
|
||||
Va a usato soltanto se non si è in grado di lavorare con Vim nella maniera usuale.
|
||||
L'edit dei file sarà molto meno efficiente.
|
||||
.PP
|
||||
.B eview
|
||||
come sopra, ma parte in modalità "Sola Lettura". Funziona come evim \-R.
|
||||
come sopra, ma si parte in modalità "Sola Lettura". Funziona come evim \-R.
|
||||
.PP
|
||||
Vedere vim(1) per dettagli riguardo a Vim, opzioni, etc.
|
||||
.PP
|
||||
L'opzione 'insertmode' è impostata per poter immettere del testo direttamente.
|
||||
L'opzione 'insertmode' è impostata in modo da consentire l'immissione diretta di testo fin dall'inizio.
|
||||
.br
|
||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
||||
familiari tasti usati sotto MS-Windows.
|
||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i familiari tasti usati sotto MS-Windows.
|
||||
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
|
||||
Usate CTRL-Q per ottenere quello che si otterrebbe con CTRL-V in Vim nativo.
|
||||
Occorre usare CTRL-Q per ottenere il comportamenti di CTRL-V in Vim nativo.
|
||||
.SH OPZIONI
|
||||
Vedere vim(1).
|
||||
.SH FILE
|
||||
.TP 15
|
||||
/usr/local/lib/vim/evim.vim
|
||||
Lo script caricato per inizializzare eVim.
|
||||
.SH NAC [NOTO ANCHE COME]
|
||||
Noto Anche Come "Vim per semplici".
|
||||
Quando usate evim si suppone che prendiate un fazzoletto,
|
||||
facciate un nodo ad ogni angolo e ve lo mettiate in testa.
|
||||
.SH AKA
|
||||
[Also Known As] noto anche come "Vim per semplici".
|
||||
Quando is usa evim si suppone che si prenda un fazzoletto,
|
||||
si faccia un nodo ad ogni angolo e lo si metta in testa.
|
||||
.SH VEDERE ANCHE
|
||||
vim(1)
|
||||
.SH AUTORE
|
||||
Buona parte di
|
||||
.B Vim
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da parte di altri.
|
||||
Vedere il menù "Aiuto/Crediti".
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.0. Last change: 2023 Apr 29
|
||||
*filetype.txt* For Vim version 9.0. Last change: 2023 Sep 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -138,34 +138,38 @@ what kind of file it is. This doesn't always work. A number of global
|
||||
variables can be used to overrule the filetype used for certain extensions:
|
||||
|
||||
file name variable ~
|
||||
*.asa g:filetype_asa |ft-aspvbs-syntax| |ft-aspperl-syntax|
|
||||
*.asm g:asmsyntax |ft-asm-syntax|
|
||||
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
|
||||
*.bas g:filetype_bas |ft-basic-syntax|
|
||||
*.asa g:filetype_asa |ft-aspperl-syntax|
|
||||
|ft-aspvbs-syntax|
|
||||
*.asm g:asmsyntax |ft-asm-syntax|
|
||||
*.asp g:filetype_asp |ft-aspperl-syntax|
|
||||
|ft-aspvbs-syntax|
|
||||
*.bas g:filetype_bas |ft-basic-syntax|
|
||||
*.cfg g:filetype_cfg
|
||||
*.cls g:filetype_cls
|
||||
*.csh g:filetype_csh |ft-csh-syntax|
|
||||
*.csh g:filetype_csh |ft-csh-syntax|
|
||||
*.dat g:filetype_dat
|
||||
*.frm g:filetype_frm |ft-form-syntax|
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.f g:filetype_f |ft-forth-syntax|
|
||||
*.frm g:filetype_frm |ft-form-syntax|
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.h g:c_syntax_for_h |ft-c-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.inc g:filetype_inc
|
||||
*.lsl g:filetype_lsl
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*.mod g:filetype_mod
|
||||
*.p g:filetype_p |ft-pascal-syntax|
|
||||
*.p g:filetype_p |ft-pascal-syntax|
|
||||
*.pl g:filetype_pl
|
||||
*.pp g:filetype_pp |ft-pascal-syntax|
|
||||
*.pp g:filetype_pp |ft-pascal-syntax|
|
||||
*.prg g:filetype_prg
|
||||
*.r g:filetype_r
|
||||
*.sig g:filetype_sig
|
||||
*.sql g:filetype_sql |ft-sql-syntax|
|
||||
*.sql g:filetype_sql |ft-sql-syntax|
|
||||
*.src g:filetype_src
|
||||
*.sys g:filetype_sys
|
||||
*.sh g:bash_is_sh |ft-sh-syntax|
|
||||
*.tex g:tex_flavor |ft-tex-plugin|
|
||||
*.sh g:bash_is_sh |ft-sh-syntax|
|
||||
*.tex g:tex_flavor |ft-tex-plugin|
|
||||
*.typ g:filetype_typ
|
||||
*.w g:filetype_w |ft-cweb-syntax|
|
||||
*.w g:filetype_w |ft-cweb-syntax|
|
||||
|
||||
For a few filetypes the global variable is used only when the filetype could
|
||||
not be detected:
|
||||
@@ -394,7 +398,7 @@ ways to change this:
|
||||
You must create a new filetype plugin in a directory early in
|
||||
'runtimepath'. For Unix, for example you could use this file: >
|
||||
vim ~/.vim/ftplugin/fortran.vim
|
||||
< You can set those settings and mappings that you would like to add. Note
|
||||
< You can set those settings and mappings that you would like to add. Note
|
||||
that the global plugin will be loaded after this, it may overrule the
|
||||
settings that you do here. If this is the case, you need to use one of the
|
||||
following two methods.
|
||||
@@ -403,7 +407,7 @@ ways to change this:
|
||||
You must put the copy in a directory early in 'runtimepath'. For Unix, for
|
||||
example, you could do this: >
|
||||
cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim
|
||||
< Then you can edit the copied file to your liking. Since the b:did_ftplugin
|
||||
< Then you can edit the copied file to your liking. Since the b:did_ftplugin
|
||||
variable will be set, the global plugin will not be loaded.
|
||||
A disadvantage of this method is that when the distributed plugin gets
|
||||
improved, you will have to copy and modify it again.
|
||||
@@ -412,17 +416,30 @@ ways to change this:
|
||||
You must create a new filetype plugin in a directory from the end of
|
||||
'runtimepath'. For Unix, for example, you could use this file: >
|
||||
vim ~/.vim/after/ftplugin/fortran.vim
|
||||
< In this file you can change just those settings that you want to change.
|
||||
< In this file you can change just those settings that you want to change.
|
||||
|
||||
==============================================================================
|
||||
3. Docs for the default filetype plugins. *ftplugin-docs*
|
||||
|
||||
|
||||
*plugin_exec* *g:plugin_exec*
|
||||
Enable executing of external commands. This was done historically for e.g.
|
||||
the perl filetype plugin (and a few others) to set the search path.
|
||||
Disabled by default for security reasons: >
|
||||
:let g:plugin_exec = 1
|
||||
It is also possible to enable this only for certain filetypes: >
|
||||
:let g:<filetype>_exec = 1
|
||||
So to enable this only for ruby, set the following variable: >
|
||||
:let g:ruby_exec = 1
|
||||
|
||||
If both, the global `plugin_exec` and the `<filetype>_exec` specific variable
|
||||
are set, the filetpe specific variable should have precedent.
|
||||
|
||||
AWK *ft-awk-plugin*
|
||||
|
||||
Support for features specific to GNU Awk, like @include, can be enabled by
|
||||
setting: >
|
||||
let g:awk_is_gawk = 1
|
||||
:let g:awk_is_gawk = 1
|
||||
|
||||
|
||||
CHANGELOG *ft-changelog-plugin*
|
||||
|
||||
@@ -1,70 +1,72 @@
|
||||
*ft_rust.txt* For Vim version 9.0. Last change: 2022 Oct 17
|
||||
|
||||
This is documentation for the Rust filetype plugin.
|
||||
*ft_rust.txt* Filetype plugin for Rust
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *rust*
|
||||
CONTENTS *rust*
|
||||
|
||||
1. Introduction |rust-intro|
|
||||
2. Settings |rust-settings|
|
||||
3. Commands |rust-commands|
|
||||
4. Mappings |rust-mappings|
|
||||
1. Introduction |rust-intro|
|
||||
2. Settings |rust-settings|
|
||||
3. Commands |rust-commands|
|
||||
4. Mappings |rust-mappings|
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *rust-intro*
|
||||
INTRODUCTION *rust-intro*
|
||||
|
||||
This plugin provides syntax and supporting functionality for the Rust
|
||||
filetype.
|
||||
filetype. It requires Vim 8 or higher for full functionality. Some commands
|
||||
will not work on earlier versions.
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *rust-settings*
|
||||
SETTINGS *rust-settings*
|
||||
|
||||
This plugin has a few variables you can define in your vimrc that change the
|
||||
behavior of the plugin.
|
||||
|
||||
*g:rustc_path*
|
||||
Some variables can be set buffer local (`:b` prefix), and the buffer local
|
||||
will take precedence over the global `g:` counterpart.
|
||||
|
||||
*g:rustc_path*
|
||||
g:rustc_path~
|
||||
Set this option to the path to rustc for use in the |:RustRun| and
|
||||
|:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
|
||||
let g:rustc_path = $HOME .. "/bin/rustc"
|
||||
let g:rustc_path = $HOME."/bin/rustc"
|
||||
<
|
||||
|
||||
*g:rustc_makeprg_no_percent*
|
||||
*g:rustc_makeprg_no_percent*
|
||||
g:rustc_makeprg_no_percent~
|
||||
Set this option to 1 to have 'makeprg' default to "rustc" instead of
|
||||
"rustc %": >
|
||||
let g:rustc_makeprg_no_percent = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal*
|
||||
*g:rust_conceal*
|
||||
g:rust_conceal~
|
||||
Set this option to turn on the basic |conceal| support: >
|
||||
let g:rust_conceal = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal_mod_path*
|
||||
*g:rust_conceal_mod_path*
|
||||
g:rust_conceal_mod_path~
|
||||
Set this option to turn on |conceal| for the path connecting token
|
||||
"::": >
|
||||
let g:rust_conceal_mod_path = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal_pub*
|
||||
*g:rust_conceal_pub*
|
||||
g:rust_conceal_pub~
|
||||
Set this option to turn on |conceal| for the "pub" token: >
|
||||
let g:rust_conceal_pub = 1
|
||||
<
|
||||
|
||||
*g:rust_recommended_style*
|
||||
*g:rust_recommended_style*
|
||||
g:rust_recommended_style~
|
||||
Set this option to enable vim indentation and textwidth settings to
|
||||
conform to style conventions of the rust standard library (i.e. use 4
|
||||
spaces for indents and sets 'textwidth' to 99). This option is enabled
|
||||
Set this option to enable vim indentation and textwidth settings to
|
||||
conform to style conventions of the rust standard library (i.e. use 4
|
||||
spaces for indents and sets 'textwidth' to 99). This option is enabled
|
||||
by default. To disable it: >
|
||||
let g:rust_recommended_style = 0
|
||||
<
|
||||
|
||||
*g:rust_fold*
|
||||
*g:rust_fold*
|
||||
g:rust_fold~
|
||||
Set this option to turn on |folding|: >
|
||||
let g:rust_fold = 1
|
||||
@@ -76,63 +78,303 @@ g:rust_fold~
|
||||
2 Braced blocks are folded. 'foldlevel' is left at the
|
||||
global value (all folds are closed by default).
|
||||
|
||||
*g:rust_bang_comment_leader*
|
||||
*g:rust_bang_comment_leader*
|
||||
g:rust_bang_comment_leader~
|
||||
Set this option to 1 to preserve the leader on multi-line doc comments
|
||||
using the /*! syntax: >
|
||||
let g:rust_bang_comment_leader = 1
|
||||
<
|
||||
|
||||
*g:ftplugin_rust_source_path*
|
||||
*g:rust_use_custom_ctags_defs*
|
||||
g:rust_use_custom_ctags_defs~
|
||||
Set this option to 1 if you have customized ctags definitions for Rust
|
||||
and do not wish for those included with rust.vim to be used: >
|
||||
let g:rust_use_custom_ctags_defs = 1
|
||||
<
|
||||
|
||||
NOTE: rust.vim's built-in definitions are only used for the Tagbar Vim
|
||||
plugin, if you have it installed, AND if Universal Ctags is not
|
||||
detected. This is because Universal Ctags already has built-in
|
||||
support for Rust when used with Tagbar.
|
||||
|
||||
Also, note that when using ctags other than Universal Ctags, it is not
|
||||
automatically used when generating |tags| files that Vim can use to
|
||||
navigate to definitions across different source files. Feel free to
|
||||
copy `rust.vim/ctags/rust.ctags` into your own `~/.ctags` if you wish
|
||||
to generate |tags| files.
|
||||
|
||||
|
||||
*g:ftplugin_rust_source_path*
|
||||
g:ftplugin_rust_source_path~
|
||||
Set this option to a path that should be prepended to 'path' for Rust
|
||||
source files: >
|
||||
let g:ftplugin_rust_source_path = $HOME .. '/dev/rust'
|
||||
let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
|
||||
<
|
||||
|
||||
*g:rustfmt_command*
|
||||
*g:rustfmt_command*
|
||||
g:rustfmt_command~
|
||||
Set this option to the name of the 'rustfmt' executable in your $PATH. If
|
||||
not specified it defaults to 'rustfmt' : >
|
||||
let g:rustfmt_command = 'rustfmt'
|
||||
<
|
||||
*g:rustfmt_autosave*
|
||||
*g:rustfmt_autosave*
|
||||
g:rustfmt_autosave~
|
||||
Set this option to 1 to run |:RustFmt| automatically when saving a
|
||||
buffer. If not specified it defaults to 0 : >
|
||||
let g:rustfmt_autosave = 0
|
||||
<
|
||||
*g:rustfmt_fail_silently*
|
||||
There is also a buffer-local b:rustfmt_autosave that can be set for
|
||||
the same purpose, and can override the global setting.
|
||||
|
||||
*g:rustfmt_autosave_if_config_present*
|
||||
g:rustfmt_autosave_if_config_present~
|
||||
Set this option to 1 to have *b:rustfmt_autosave* be set automatically
|
||||
if a `rustfmt.toml` file is present in any parent directly leading to
|
||||
the file being edited. If not set, default to 0: >
|
||||
let g:rustfmt_autosave_if_config_present = 0
|
||||
<
|
||||
This is useful to have `rustfmt` only execute on save, on projects
|
||||
that have `rustfmt.toml` configuration.
|
||||
|
||||
There is also a buffer-local b:rustfmt_autosave_if_config_present
|
||||
that can be set for the same purpose, which can overrides the global
|
||||
setting.
|
||||
*g:rustfmt_fail_silently*
|
||||
g:rustfmt_fail_silently~
|
||||
Set this option to 1 to prevent 'rustfmt' from populating the
|
||||
|location-list| with errors. If not specified it defaults to 0: >
|
||||
let g:rustfmt_fail_silently = 0
|
||||
<
|
||||
*g:rustfmt_options*
|
||||
*g:rustfmt_options*
|
||||
g:rustfmt_options~
|
||||
Set this option to a string of options to pass to 'rustfmt'. The
|
||||
write-mode is already set to 'overwrite'. If not specified it
|
||||
defaults to '' : >
|
||||
let g:rustfmt_options = ''
|
||||
<
|
||||
*g:rustfmt_emit_files*
|
||||
g:rustfmt_emit_files~
|
||||
If not specified rust.vim tries to detect the right parameter to
|
||||
pass to rustfmt based on its reported version. Otherwise, it
|
||||
determines whether to run rustfmt with '--emit=files' (when 1 is
|
||||
provided) instead of '--write-mode=overwrite'. >
|
||||
let g:rustfmt_emit_files = 0
|
||||
|
||||
*g:rust_playpen_url*
|
||||
|
||||
*g:rust_playpen_url*
|
||||
g:rust_playpen_url~
|
||||
Set this option to override the URL for the playpen to use: >
|
||||
Set this option to override the url for the playpen to use: >
|
||||
let g:rust_playpen_url = 'https://play.rust-lang.org/'
|
||||
<
|
||||
|
||||
*g:rust_shortener_url*
|
||||
*g:rust_shortener_url*
|
||||
g:rust_shortener_url~
|
||||
Set this option to override the URL for the URL shortener: >
|
||||
Set this option to override the url for the url shortener: >
|
||||
let g:rust_shortener_url = 'https://is.gd/'
|
||||
<
|
||||
|
||||
*g:rust_clip_command*
|
||||
g:rust_clip_command~
|
||||
Set this option to the command used in your OS to copy the Rust Play
|
||||
url to the clipboard: >
|
||||
let g:rust_clip_command = 'xclip -selection clipboard'
|
||||
<
|
||||
|
||||
*g:cargo_makeprg_params*
|
||||
g:cargo_makeprg_params~
|
||||
Set this option to the string of parameters to pass to cargo. If not
|
||||
specified it defaults to '$*' : >
|
||||
let g:cargo_makeprg_params = 'build'
|
||||
<
|
||||
|
||||
*g:cargo_shell_command_runner*
|
||||
g:cargo_shell_command_runner~
|
||||
Set this option to change how to run shell commands for cargo commands
|
||||
|:Cargo|, |:Cbuild|, |:Crun|, ...
|
||||
By default, |:terminal| is used to run shell command in terminal window
|
||||
asynchronously. But if you prefer |:!| for running the commands, it can
|
||||
be specified: >
|
||||
let g:cargo_shell_command_runner = '!'
|
||||
<
|
||||
|
||||
|
||||
Integration with Syntastic *rust-syntastic*
|
||||
--------------------------
|
||||
|
||||
This plugin automatically integrates with the Syntastic checker. There are two
|
||||
checkers provided: 'rustc', and 'cargo'. The latter invokes 'Cargo' in order to
|
||||
build code, and the former delivers a single edited '.rs' file as a compilation
|
||||
target directly to the Rust compiler, `rustc`.
|
||||
|
||||
Because Cargo is almost exclusively being used for building Rust code these
|
||||
days, 'cargo' is the default checker. >
|
||||
|
||||
let g:syntastic_rust_checkers = ['cargo']
|
||||
<
|
||||
If you would like to change it, you can set `g:syntastic_rust_checkers` to a
|
||||
different value.
|
||||
*g:rust_cargo_avoid_whole_workspace*
|
||||
*b:rust_cargo_avoid_whole_workspace*
|
||||
g:rust_cargo_avoid_whole_workspace~
|
||||
When editing a crate that is part of a Cargo workspace, and this
|
||||
option is set to 1 (the default), then 'cargo' will be executed
|
||||
directly in that crate directory instead of in the workspace
|
||||
directory. Setting 0 prevents this behavior - however be aware that if
|
||||
you are working in large workspace, Cargo commands may take more time,
|
||||
plus the Syntastic error list may include all the crates in the
|
||||
workspace. >
|
||||
let g:rust_cargo_avoid_whole_workspace = 0
|
||||
<
|
||||
*g:rust_cargo_check_all_targets*
|
||||
*b:rust_cargo_check_all_targets*
|
||||
g:rust_cargo_check_all_targets~
|
||||
When set to 1, the `--all-targets` option will be passed to cargo when
|
||||
Syntastic executes it, allowing the linting of all targets under the
|
||||
package.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_all_features*
|
||||
*b:rust_cargo_check_all_features*
|
||||
g:rust_cargo_check_all_features~
|
||||
When set to 1, the `--all-features` option will be passed to cargo when
|
||||
Syntastic executes it, allowing the linting of all features of the
|
||||
package.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_examples*
|
||||
*b:rust_cargo_check_examples*
|
||||
g:rust_cargo_check_examples~
|
||||
When set to 1, the `--examples` option will be passed to cargo when
|
||||
Syntastic executes it, to prevent the exclusion of examples from
|
||||
linting. The examples are normally under the `examples/` directory of
|
||||
the crate.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_tests*
|
||||
*b:rust_cargo_check_tests*
|
||||
g:rust_cargo_check_tests~
|
||||
When set to 1, the `--tests` option will be passed to cargo when
|
||||
Syntastic executes it, to prevent the exclusion of tests from linting.
|
||||
The tests are normally under the `tests/` directory of the crate.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_benches*
|
||||
*b:rust_cargo_check_benches*
|
||||
g:rust_cargo_check_benches~
|
||||
When set to 1, the `--benches` option will be passed to cargo when
|
||||
Syntastic executes it. The benches are normally under the `benches/`
|
||||
directory of the crate.
|
||||
The default is 0.
|
||||
|
||||
Integration with auto-pairs *rust-auto-pairs*
|
||||
---------------------------
|
||||
|
||||
This plugin automatically configures the auto-pairs plugin not to duplicate
|
||||
single quotes, which are used more often for lifetime annotations than for
|
||||
single character literals.
|
||||
|
||||
*g:rust_keep_autopairs_default*
|
||||
g:rust_keep_autopairs_default~
|
||||
|
||||
Don't override auto-pairs default for the Rust filetype. The default
|
||||
is 0.
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *rust-commands*
|
||||
COMMANDS *rust-commands*
|
||||
|
||||
:RustRun [args] *:RustRun*
|
||||
Invoking Cargo
|
||||
--------------
|
||||
|
||||
This plug defines very simple shortcuts for invoking Cargo from with Vim.
|
||||
|
||||
:Cargo <args> *:Cargo*
|
||||
Runs 'cargo' with the provided arguments.
|
||||
|
||||
:Cbuild <args> *:Cbuild*
|
||||
Shortcut for 'cargo build`.
|
||||
|
||||
:Cclean <args> *:Cclean*
|
||||
Shortcut for 'cargo clean`.
|
||||
|
||||
:Cdoc <args> *:Cdoc*
|
||||
Shortcut for 'cargo doc`.
|
||||
|
||||
:Cinit <args> *:Cinit*
|
||||
Shortcut for 'cargo init`.
|
||||
|
||||
:Crun <args> *:Crun*
|
||||
Shortcut for 'cargo run`.
|
||||
|
||||
:Ctest <args> *:Ctest*
|
||||
Shortcut for 'cargo test`.
|
||||
|
||||
:Cupdate <args> *:Cupdate*
|
||||
Shortcut for 'cargo update`.
|
||||
|
||||
:Cbench <args> *:Cbench*
|
||||
Shortcut for 'cargo bench`.
|
||||
|
||||
:Csearch <args> *:Csearch*
|
||||
Shortcut for 'cargo search`.
|
||||
|
||||
:Cpublish <args> *:Cpublish*
|
||||
Shortcut for 'cargo publish`.
|
||||
|
||||
:Cinstall <args> *:Cinstall*
|
||||
Shortcut for 'cargo install`.
|
||||
|
||||
:Cruntarget <args> *:Cruntarget*
|
||||
Shortcut for 'cargo run --bin' or 'cargo run --example',
|
||||
depending on the currently open buffer.
|
||||
|
||||
Formatting
|
||||
----------
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
Runs |g:rustfmt_command| on the current buffer. If
|
||||
|g:rustfmt_options| is set then those will be passed to the
|
||||
executable.
|
||||
|
||||
If |g:rustfmt_fail_silently| is 0 (the default) then it
|
||||
will populate the |location-list| with the errors from
|
||||
|g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
|
||||
then it will not populate the |location-list|.
|
||||
|
||||
:RustFmtRange *:RustFmtRange*
|
||||
Runs |g:rustfmt_command| with selected range. See
|
||||
|:RustFmt| for any other information.
|
||||
|
||||
|
||||
Playpen integration
|
||||
-------------------
|
||||
|
||||
:RustPlay *:RustPlay*
|
||||
This command will only work if you have web-api.vim installed
|
||||
(available at https://github.com/mattn/webapi-vim). It sends the
|
||||
current selection, or if nothing is selected, the entirety of the
|
||||
current buffer to the Rust playpen, and emits a message with the
|
||||
shortened URL to the playpen.
|
||||
|
||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||
"https://play.rust-lang.org/".
|
||||
|
||||
|g:rust_shortener_url| is the base url for the shorterner, by
|
||||
default "https://is.gd/"
|
||||
|
||||
|g:rust_clip_command| is the command to run to copy the
|
||||
playpen url to the clipboard of your system.
|
||||
|
||||
|
||||
Evaluation of a single Rust file
|
||||
--------------------------------
|
||||
|
||||
NOTE: These commands are useful only when working with standalone Rust files,
|
||||
which is usually not the case for common Rust development. If you wish to
|
||||
building Rust crates from with Vim can should use Vim's make, Syntastic, or
|
||||
functionality from other plugins.
|
||||
|
||||
|
||||
:RustRun [args] *:RustRun*
|
||||
:RustRun! [rustc-args] [--] [args]
|
||||
Compiles and runs the current file. If it has unsaved changes,
|
||||
it will be saved first using |:update|. If the current file is
|
||||
@@ -150,7 +392,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustExpand [args] *:RustExpand*
|
||||
:RustExpand [args] *:RustExpand*
|
||||
:RustExpand! [TYPE] [args]
|
||||
Expands the current file using --pretty and displays the
|
||||
results in a new split. If the current file has unsaved
|
||||
@@ -169,7 +411,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustEmitIr [args] *:RustEmitIr*
|
||||
:RustEmitIr [args] *:RustEmitIr*
|
||||
Compiles the current file to LLVM IR and displays the results
|
||||
in a new split. If the current file has unsaved changes, it
|
||||
will be saved first using |:update|. If the current file is an
|
||||
@@ -180,7 +422,7 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustEmitAsm [args] *:RustEmitAsm*
|
||||
:RustEmitAsm [args] *:RustEmitAsm*
|
||||
Compiles the current file to assembly and displays the results
|
||||
in a new split. If the current file has unsaved changes, it
|
||||
will be saved first using |:update|. If the current file is an
|
||||
@@ -191,49 +433,54 @@ COMMANDS *rust-commands*
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustPlay *:RustPlay*
|
||||
This command will only work if you have web-api.vim installed
|
||||
(available at https://github.com/mattn/webapi-vim). It sends the
|
||||
current selection, or if nothing is selected, the entirety of the
|
||||
current buffer to the Rust playpen, and emits a message with the
|
||||
shortened URL to the playpen.
|
||||
|
||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||
"https://play.rust-lang.org/".
|
||||
Running test(s)
|
||||
---------------
|
||||
|
||||
|g:rust_shortener_url| is the base URL for the shortener, by
|
||||
default "https://is.gd/"
|
||||
:[N]RustTest[!] [options] *:RustTest*
|
||||
Runs a test under the cursor when the current buffer is in a
|
||||
cargo project with "cargo test" command. If the command did
|
||||
not find any test function under the cursor, it stops with an
|
||||
error message.
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
Runs |g:rustfmt_command| on the current buffer. If
|
||||
|g:rustfmt_options| is set then those will be passed to the
|
||||
executable.
|
||||
When N is given, adjust the size of the new window to N lines
|
||||
or columns.
|
||||
|
||||
If |g:rustfmt_fail_silently| is 0 (the default) then it
|
||||
will populate the |location-list| with the errors from
|
||||
|g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
|
||||
then it will not populate the |location-list|.
|
||||
When ! is given, runs all tests regardless of current cursor
|
||||
position.
|
||||
|
||||
:RustFmtRange *:RustFmtRange*
|
||||
Runs |g:rustfmt_command| with selected range. See
|
||||
|:RustFmt| for any other information.
|
||||
When [options] is given, it is passed to "cargo" command
|
||||
arguments.
|
||||
|
||||
When the current buffer is outside cargo project, the command
|
||||
runs "rustc --test" command instead of "cargo test" as
|
||||
fallback. All tests are run regardless of adding ! since there
|
||||
is no way to run specific test function with rustc. [options]
|
||||
is passed to "rustc" command arguments in the case.
|
||||
|
||||
Takes optional modifiers (see |<mods>|): >
|
||||
:tab RustTest
|
||||
:belowright 16RustTest
|
||||
:leftabove vert 80RustTest
|
||||
<
|
||||
rust.vim Debugging
|
||||
------------------
|
||||
|
||||
:RustInfo *:RustInfo*
|
||||
Emits debugging info of the Vim Rust plugin.
|
||||
|
||||
:RustInfoToClipboard *:RustInfoClipboard*
|
||||
Saves debugging info of the Vim Rust plugin to the default
|
||||
register.
|
||||
|
||||
:RustInfoToFile [filename] *:RustInfoToFile*
|
||||
Saves debugging info of the Vim Rust plugin to the the given
|
||||
file, overwritting it.
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *rust-mappings*
|
||||
MAPPINGS *rust-mappings*
|
||||
|
||||
This plugin defines mappings for |[[| and |]]| to support hanging indents.
|
||||
|
||||
It also has a few other mappings:
|
||||
|
||||
*rust_<D-r>*
|
||||
<D-r> Executes |:RustRun| with no arguments.
|
||||
Note: This binding is only available in MacVim.
|
||||
|
||||
*rust_<D-R>*
|
||||
<D-R> Populates the command line with |:RustRun|! using the
|
||||
arguments given to the last invocation, but does not
|
||||
execute it.
|
||||
Note: This binding is only available in MacVim.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
||||
vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
|
||||
|
||||
@@ -297,5 +297,11 @@ instead of DYNAMIC_PERL_DLL file what was specified at compile time. The
|
||||
version of the shared library must match the Perl version Vim was compiled
|
||||
with.
|
||||
|
||||
Note: If you are building Perl locally, you have to use a version compiled
|
||||
with threading support for it for Vim to successfully link against it. You can
|
||||
use the `-Dusethreads` flags when configuring Perl, and check that a Perl
|
||||
binary has it enabled by running `perl -V` and verify that `USE_ITHREADS` is
|
||||
under "Compile-time options".
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -769,7 +769,19 @@ Unix ~
|
||||
The 'pythondll' or 'pythonthreedll' option can be used to specify the Python
|
||||
shared library file instead of DYNAMIC_PYTHON_DLL or DYNAMIC_PYTHON3_DLL file
|
||||
what were specified at compile time. The version of the shared library must
|
||||
match the Python 2.x or Python 3 version Vim was compiled with.
|
||||
match the Python 2.x or Python 3 version (|v:python3_version|) Vim was
|
||||
compiled with unless using |python3-stable-abi|.
|
||||
|
||||
|
||||
Stable ABI and mixing Python versions ~
|
||||
*python-stable* *python-stable-abi* *python3-stable-abi*
|
||||
If Vim was not compiled with Stable ABI (only available for Python 3), the
|
||||
version of the Python shared library must match the version that Vim was
|
||||
compiled with. Otherwise, mixing versions could result in unexpected crashes
|
||||
and failures. With Stable ABI, this restriction is relaxed, and any Python 3
|
||||
library with version of at least |v:python3_version| will work. See
|
||||
|has-python| for how to check if Stable ABI is supported, or see if version
|
||||
output includes |+python3/dyn-stable|.
|
||||
|
||||
==============================================================================
|
||||
10. Python 3 *python3*
|
||||
@@ -881,6 +893,18 @@ python support: >
|
||||
endif
|
||||
endif
|
||||
|
||||
When loading the library dynamically, Vim can be compiled to support Python 3
|
||||
Stable ABI (|python3-stable-abi|) which allows you to load a different version
|
||||
of Python 3 library than the one Vim was compiled with. To check it: >
|
||||
if has('python3_dynamic')
|
||||
if has('python3_stable')
|
||||
echo 'support Python 3 Stable ABI.'
|
||||
else
|
||||
echo 'does not support Python 3 Stable ABI.'
|
||||
echo 'only use Python 3 version ' .. v:python3_version
|
||||
endif
|
||||
endif
|
||||
|
||||
This also tells you whether Python is dynamically loaded, which will fail if
|
||||
the runtime library cannot be found.
|
||||
|
||||
|
||||
@@ -127,7 +127,11 @@ CTRL-R {register} *i_CTRL-R*
|
||||
'/' the last search pattern
|
||||
':' the last command-line
|
||||
'.' the last inserted text
|
||||
*i_CTRL-R_-*
|
||||
'-' the last small (less than a line) delete
|
||||
register. This is repeatable using |.| since
|
||||
it remembers the register to put instead of
|
||||
the literal text to insert.
|
||||
*i_CTRL-R_=*
|
||||
'=' the expression register: you are prompted to
|
||||
enter an expression (see |expression|)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 9.0. Last change: 2022 Nov 20
|
||||
*intro.txt* For Vim version 9.0. Last change: 2023 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -129,8 +129,9 @@ There are three ways to report bugs:
|
||||
3. Send bug reports to: Vim Developers <vim-dev@vim.org>
|
||||
This is a maillist, you need to become a member first and many people will
|
||||
see the message. If you don't want that, e.g. because it is a security
|
||||
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
|
||||
(that's Bram).
|
||||
issue, please contact any of the current Vim maintainers
|
||||
https://github.com/orgs/vim/people (but not Bram or the vim-dev ML).
|
||||
In the future, a proper process for handling security issues will be setup.
|
||||
|
||||
Please be brief; all the time that is spent on answering mail is subtracted
|
||||
from the time that is spent on improving Vim! Always give a reproducible
|
||||
@@ -181,9 +182,9 @@ The user may create scripts for Vim that use external commands. These might
|
||||
introduce Y2K problems, but those are not really part of Vim itself.
|
||||
|
||||
==============================================================================
|
||||
3. Credits *credits* *author* *Bram* *Moolenaar*
|
||||
3. Credits *credits* *author*
|
||||
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org>.
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|
|
||||
|
||||
Parts of the documentation come from several Vi manuals, written by:
|
||||
W.N. Joy
|
||||
@@ -214,9 +215,9 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Eric Fischer Mac port, 'cindent', and other improvements
|
||||
Benji Fisher Answering lots of user questions
|
||||
Bill Foster Athena GUI port (later removed)
|
||||
Google Lets me work on Vim one day a week
|
||||
Google Let Bram work on Vim one day a week
|
||||
Loic Grenie xvim (ideas for multi windows version)
|
||||
Sven Guckes Vim promoter and previous WWW page maintainer
|
||||
Sven Guckes Vim promoter and previous WWW page maintainer |Sven-Guckes|
|
||||
Darren Hiebert Exuberant ctags
|
||||
Jason Hildebrand GTK+ 2 port
|
||||
Bruce Hunsaker improvements for VMS port
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.0. Last change: 2022 Sep 26
|
||||
*motion.txt* For Vim version 9.0. Last change: 2023 Sep 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -242,8 +242,8 @@ gM Like "g0", but to halfway the text of the line.
|
||||
Thus "10gM" is near the start of the text and "90gM"
|
||||
is near the end of the text.
|
||||
|
||||
*g$* *g<End>*
|
||||
g$ or g<End> When lines wrap ('wrap' on): To the last character of
|
||||
*g$*
|
||||
g$ When lines wrap ('wrap' on): To the last character of
|
||||
the screen line and [count - 1] screen lines downward
|
||||
|inclusive|. Differs from "$" when a line is wider
|
||||
than the screen.
|
||||
@@ -256,6 +256,10 @@ g$ or g<End> When lines wrap ('wrap' on): To the last character of
|
||||
When 'virtualedit' is enabled moves to the end of the
|
||||
screen line.
|
||||
|
||||
*g<End>* *g<kEnd>*
|
||||
g<End> Like |g$| but to the last non-blank character
|
||||
instead of the last character.
|
||||
|
||||
*bar*
|
||||
| To screen column [count] in the current line.
|
||||
|exclusive| motion. Ceci n'est pas une pipe.
|
||||
@@ -679,6 +683,7 @@ i` *v_i`* *i`*
|
||||
Special case: With a count of 2 the quotes are
|
||||
included, but no extra white space as with a"/a'/a`.
|
||||
|
||||
*o_object-select*
|
||||
When used after an operator:
|
||||
For non-block objects:
|
||||
For the "a" commands: The operator applies to the object and the white
|
||||
@@ -694,6 +699,7 @@ For a block object:
|
||||
the surrounding braces are excluded. For the "a" commands, the braces
|
||||
are included.
|
||||
|
||||
*v_object-select*
|
||||
When used in Visual mode:
|
||||
When start and end of the Visual area are the same (just after typing "v"):
|
||||
One object is selected, the same as for using an operator.
|
||||
@@ -1065,14 +1071,14 @@ can go to cursor positions before older jumps, and back again. Thus you can
|
||||
move up and down the list. There is a separate jump list for each window.
|
||||
The maximum number of entries is fixed at 100.
|
||||
|
||||
For example, after three jump commands you have this jump list:
|
||||
|
||||
jump line col file/text ~
|
||||
3 1 0 some text ~
|
||||
2 70 0 another line ~
|
||||
1 1154 23 end. ~
|
||||
> ~
|
||||
For example, after three jump commands you have this jump list: >
|
||||
|
||||
jump line col file/text
|
||||
3 1 0 some text
|
||||
2 70 0 another line
|
||||
1 1154 23 end.
|
||||
>
|
||||
<
|
||||
The "file/text" column shows the file name, or the text at the jump if it is
|
||||
in the current file (an indent is removed and a long line is truncated to fit
|
||||
in the window).
|
||||
@@ -1081,14 +1087,14 @@ The marker ">" indicates the current position in the jumplist. It may not be
|
||||
shown when filtering the |:jumps| command using |:filter|
|
||||
|
||||
You are currently in line 1167. If you then use the CTRL-O command, the
|
||||
cursor is put in line 1154. This results in:
|
||||
|
||||
jump line col file/text ~
|
||||
2 1 0 some text ~
|
||||
1 70 0 another line ~
|
||||
> 0 1154 23 end. ~
|
||||
1 1167 0 foo bar ~
|
||||
cursor is put in line 1154. This results in: >
|
||||
|
||||
jump line col file/text
|
||||
2 1 0 some text
|
||||
1 70 0 another line
|
||||
> 0 1154 23 end.
|
||||
1 1167 0 foo bar
|
||||
<
|
||||
The pointer will be set at the last used jump position. The next CTRL-O
|
||||
command will use the entry above it, the next CTRL-I command will use the
|
||||
entry below it. If the pointer is below the last entry, this indicates that
|
||||
@@ -1112,15 +1118,15 @@ command. You can explicitly add a jump by setting the ' mark with "m'". Note
|
||||
that calling setpos() does not do this.
|
||||
|
||||
After the CTRL-O command that got you into line 1154 you could give another
|
||||
jump command (e.g., "G"). The jump list would then become:
|
||||
|
||||
jump line col file/text ~
|
||||
4 1 0 some text ~
|
||||
3 70 0 another line ~
|
||||
2 1167 0 foo bar ~
|
||||
1 1154 23 end. ~
|
||||
> ~
|
||||
jump command (e.g., "G"). The jump list would then become: >
|
||||
|
||||
jump line col file/text
|
||||
4 1 0 some text
|
||||
3 70 0 another line
|
||||
2 1167 0 foo bar
|
||||
1 1154 23 end.
|
||||
>
|
||||
<
|
||||
The line numbers will be adjusted for deleted and inserted lines. This fails
|
||||
if you stop editing a file without writing, like with ":n!".
|
||||
|
||||
@@ -1129,7 +1135,45 @@ When you split a window, the jumplist will be copied to the new window.
|
||||
If you have included the ' item in the 'viminfo' option the jumplist will be
|
||||
stored in the viminfo file and restored when starting Vim.
|
||||
|
||||
*jumplist-stack*
|
||||
When 'jumpoptions' option includes "stack", the jumplist behaves like the tag
|
||||
stack. When jumping to a new location from the middle of the jumplist, the
|
||||
locations after the current position will be discarded. With this option set
|
||||
you can move through a tree of jump locations. When going back up a branch and
|
||||
then down another branch, CTRL-O still takes you further up the tree.
|
||||
|
||||
Given a jumplist like the following in which CTRL-O has been used to move back
|
||||
three times to location X: >
|
||||
|
||||
jump line col file/text
|
||||
2 1260 8 mark.c <-- location X-2
|
||||
1 685 0 eval.c <-- location X-1
|
||||
> 0 462 36 eval.c <-- location X
|
||||
1 479 39 eval.c
|
||||
2 213 2 mark.c
|
||||
3 181 0 mark.c
|
||||
<
|
||||
jumping to (new) location Y results in the locations after the current
|
||||
locations being removed: >
|
||||
|
||||
jump line col file/text
|
||||
3 1260 8 mark.c <-- location X-2
|
||||
2 685 0 eval.c <-- location X-1
|
||||
1 462 36 eval.c <-- location X
|
||||
>
|
||||
<
|
||||
Then, when yet another location Z is jumped to, the new location Y appears
|
||||
directly after location X in the jumplist and location X remains in the same
|
||||
position relative to the locations (X-1, X-2, etc., ...) that had been before
|
||||
it prior to the original jump from X to Y: >
|
||||
|
||||
jump line col file/text
|
||||
4 1260 8 mark.c <-- location X-2
|
||||
3 685 0 eval.c <-- location X-1
|
||||
2 462 36 eval.c <-- location X
|
||||
1 100 0 buffer.c <-- location Y
|
||||
>
|
||||
<
|
||||
CHANGE LIST JUMPS *changelist* *change-list-jumps* *E664*
|
||||
|
||||
When making a change the cursor position is remembered. One position is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.0. Last change: 2023 Jun 02
|
||||
*options.txt* For Vim version 9.0. Last change: 2023 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -252,6 +252,8 @@ opt+=val" the expansion is done before the adding or removing.
|
||||
|
||||
Handling of local options *local-options*
|
||||
|
||||
Note: The following also applies to |global-local| options.
|
||||
|
||||
Some of the options only apply to a window or buffer. Each window or buffer
|
||||
has its own copy of this option, thus each can have its own value. This
|
||||
allows you to set 'list' in one window but not in another. And set
|
||||
@@ -301,6 +303,30 @@ The options local to a window are remembered for each buffer. This also
|
||||
happens when the buffer is not loaded, but they are lost when the buffer is
|
||||
wiped out |:bwipe|.
|
||||
|
||||
Special local window options *local-noglobal*
|
||||
|
||||
The following local window options won't be copied over when new windows are
|
||||
created, thus they behave slightly differently:
|
||||
|
||||
Option Reason ~
|
||||
'previewwindow' there can only be a single one
|
||||
'scroll' specific to existing window
|
||||
'winfixheight' specific to existing window
|
||||
'winfixwidth' specific to existing window
|
||||
|
||||
Special local buffer options
|
||||
|
||||
The following local buffer options won't be copied over when new buffers are
|
||||
created, thus they behave slightly differently:
|
||||
|
||||
Option Reason ~
|
||||
'filetype' explicitly set by autocommands
|
||||
'syntax' explicitly set by autocommands
|
||||
'bufhidden' denote |special-buffers|
|
||||
'buftype' denote |special-buffers|
|
||||
'readonly' will be detected automatically
|
||||
'modified' will be detected automatically
|
||||
|
||||
*:setl* *:setlocal*
|
||||
:setl[ocal][!] ... Like ":set" but set only the value local to the
|
||||
current buffer or window. Not all options have a
|
||||
@@ -374,7 +400,6 @@ used. Thus it does the same as: >
|
||||
Note: In the future more global options can be made |global-local|. Using
|
||||
":setlocal" on a global option might work differently then.
|
||||
|
||||
|
||||
*option-value-function*
|
||||
Some options ('completefunc', 'imactivatefunc', 'imstatusfunc', 'omnifunc',
|
||||
'operatorfunc', 'quickfixtextfunc', 'tagfunc' and 'thesaurusfunc') are set to
|
||||
@@ -1449,7 +1474,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'bufhidden'* *'bh'*
|
||||
'bufhidden' 'bh' string (default: "")
|
||||
local to buffer
|
||||
local to buffer |local-noglobal|
|
||||
This option specifies what happens when a buffer is no longer
|
||||
displayed in a window:
|
||||
<empty> follow the global 'hidden' option
|
||||
@@ -1481,7 +1506,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'buftype'* *'bt'* *E382*
|
||||
'buftype' 'bt' string (default: "")
|
||||
local to buffer
|
||||
local to buffer |local-noglobal|
|
||||
The value of this option specifies the type of a buffer:
|
||||
<empty> normal buffer
|
||||
nofile buffer which is not related to a file and will not be
|
||||
@@ -3408,7 +3433,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'filetype'* *'ft'*
|
||||
'filetype' 'ft' string (default: "")
|
||||
local to buffer
|
||||
local to buffer |local-noglobal|
|
||||
When this option is set, the FileType autocommand event is triggered.
|
||||
All autocommands that match with the value of this option will be
|
||||
executed. Thus the value of 'filetype' is used in place of the file
|
||||
@@ -4874,6 +4899,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Otherwise only one space is inserted.
|
||||
NOTE: This option is set when 'compatible' is set.
|
||||
|
||||
*'jumpoptions'* *'jop'*
|
||||
'jumpoptions' 'jop' string (default "")
|
||||
global
|
||||
List of words that change the behavior of the |jumplist|.
|
||||
stack Make the jumplist behave like the tagstack.
|
||||
Relative location of entries in the jumplist is
|
||||
preserved at the cost of discarding subsequent entries
|
||||
when navigating backwards in the jumplist and then
|
||||
jumping to a location. |jumplist-stack|
|
||||
|
||||
*'key'*
|
||||
'key' string (default "")
|
||||
local to buffer
|
||||
@@ -5565,7 +5600,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'modified'* *'mod'* *'nomodified'* *'nomod'*
|
||||
'modified' 'mod' boolean (default off)
|
||||
local to buffer
|
||||
local to buffer |local-noglobal|
|
||||
When on, the buffer is considered to be modified. This option is set
|
||||
when:
|
||||
1. A change was made to the text since it was last written. Using the
|
||||
@@ -6136,7 +6171,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'previewwindow'* *'nopreviewwindow'*
|
||||
*'pvw'* *'nopvw'* *E590*
|
||||
'previewwindow' 'pvw' boolean (default off)
|
||||
local to window
|
||||
local to window |local-noglobal|
|
||||
{not available when compiled without the |+quickfix|
|
||||
feature}
|
||||
Identifies the preview window. Only one window can have this option
|
||||
@@ -6331,7 +6366,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'readonly'* *'ro'* *'noreadonly'* *'noro'*
|
||||
'readonly' 'ro' boolean (default off)
|
||||
local to buffer
|
||||
local to buffer |local-noglobal|
|
||||
If on, writes fail unless you use a '!'. Protects you from
|
||||
accidentally overwriting a file. Default on when Vim is started
|
||||
in read-only mode ("vim -R") or when the executable is called "view".
|
||||
@@ -6710,7 +6745,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'scroll'* *'scr'*
|
||||
'scroll' 'scr' number (default: half the window height)
|
||||
local to window
|
||||
local to window |local-noglobal|
|
||||
Number of lines to scroll with CTRL-U and CTRL-D commands. Will be
|
||||
set to half the number of lines in the window when the window size
|
||||
changes. This may happen when enabling the |status-line| or
|
||||
@@ -7972,7 +8007,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'syntax'* *'syn'*
|
||||
'syntax' 'syn' string (default empty)
|
||||
local to buffer
|
||||
local to buffer |local-noglobal|
|
||||
{not available when compiled without the |+syntax|
|
||||
feature}
|
||||
When this option is set, the syntax with this name is loaded, unless
|
||||
@@ -9420,7 +9455,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
|
||||
'winfixheight' 'wfh' boolean (default off)
|
||||
local to window
|
||||
local to window |local-noglobal|
|
||||
Keep the window height when windows are opened or closed and
|
||||
'equalalways' is set. Also for |CTRL-W_=|. Set by default for the
|
||||
|preview-window| and |quickfix-window|.
|
||||
@@ -9428,7 +9463,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'*
|
||||
'winfixwidth' 'wfw' boolean (default off)
|
||||
local to window
|
||||
local to window |local-noglobal|
|
||||
Keep the window width when windows are opened or closed and
|
||||
'equalalways' is set. Also for |CTRL-W_=|.
|
||||
The width may be changed anyway when running out of room.
|
||||
|
||||
@@ -772,6 +772,7 @@ Short explanation of each option: *option-list*
|
||||
'iskeyword' 'isk' characters included in keywords
|
||||
'isprint' 'isp' printable characters
|
||||
'joinspaces' 'js' two spaces after a period with a join command
|
||||
'jumpoptions' 'jop' specifies how jumping is done
|
||||
'key' encryption key
|
||||
'keymap' 'kmp' name of a keyboard mapping
|
||||
'keymodel' 'km' enable starting/stopping selection with keys
|
||||
|
||||
@@ -214,10 +214,10 @@ A syntax group name is to be used for syntax items that match the same kind of
|
||||
thing. These are then linked to a highlight group that specifies the color.
|
||||
A syntax group name doesn't specify any color or attributes itself.
|
||||
|
||||
The name for a highlight or syntax group must consist of ASCII letters, digits
|
||||
and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give
|
||||
an error when using other characters. The maximum length of a group name is
|
||||
about 200 bytes. *E1249*
|
||||
The name for a highlight or syntax group must consist of ASCII letters,
|
||||
digits, underscores, dots, or hyphens. As a regexp: "[a-zA-Z0-9_.-]*".
|
||||
However, Vim does not give an error when using other characters. The maximum
|
||||
length of a group name is about 200 bytes. *E1249*
|
||||
|
||||
To be able to allow each user to pick their favorite set of colors, there must
|
||||
be preferred names for highlight groups that are common for many languages.
|
||||
@@ -596,7 +596,7 @@ The method used to prevent copying in the generated page depends on the value
|
||||
of |g:html_use_input_for_pc|.
|
||||
|
||||
*g:html_use_input_for_pc*
|
||||
Default: "fallback"
|
||||
Default: "none"
|
||||
If |g:html_prevent_copy| is non-empty, then:
|
||||
|
||||
When "all", read-only <input> elements are used in place of normal text for
|
||||
@@ -1579,9 +1579,10 @@ example, FORM files, use this in your startup vimrc: >
|
||||
|
||||
FORTH *forth.vim* *ft-forth-syntax*
|
||||
|
||||
Files matching "*.fs" could be F# or Forth. If the automatic detection
|
||||
doesn't work for you, or you don't edit F# at all, use this in your
|
||||
startup vimrc: >
|
||||
Files matching "*.f" could be Fortran or Forth and those matching "*.fs" could
|
||||
be F# or Forth. If the automatic detection doesn't work for you, or you don't
|
||||
edit F# or Fortran at all, use this in your startup vimrc: >
|
||||
:let filetype_f = "forth"
|
||||
:let filetype_fs = "forth"
|
||||
|
||||
|
||||
@@ -2159,11 +2160,11 @@ should set a variable in your .vimrc file: >
|
||||
:let lpc_syntax_for_c = 1
|
||||
|
||||
If it doesn't work properly for some particular C or LPC files, use a
|
||||
modeline. For a LPC file:
|
||||
modeline. For a LPC file: >
|
||||
|
||||
// vim:set ft=lpc:
|
||||
|
||||
For a C file that is recognized as LPC:
|
||||
For a C file that is recognized as LPC: >
|
||||
|
||||
// vim:set ft=c:
|
||||
|
||||
@@ -2195,7 +2196,7 @@ LUA *lua.vim* *ft-lua-syntax*
|
||||
The Lua syntax file can be used for versions 4.0, 5.0, 5.1 and 5.2 (5.2 is
|
||||
the default). You can select one of these versions using the global variables
|
||||
lua_version and lua_subversion. For example, to activate Lua
|
||||
5.1 syntax highlighting, set the variables like this:
|
||||
5.1 syntax highlighting, set the variables like this: >
|
||||
|
||||
:let lua_version = 5
|
||||
:let lua_subversion = 1
|
||||
|
||||
107
runtime/doc/tags
107
runtime/doc/tags
@@ -433,7 +433,9 @@ $quote eval.txt /*$quote*
|
||||
'isp' options.txt /*'isp'*
|
||||
'isprint' options.txt /*'isprint'*
|
||||
'joinspaces' options.txt /*'joinspaces'*
|
||||
'jop' options.txt /*'jop'*
|
||||
'js' options.txt /*'js'*
|
||||
'jumpoptions' options.txt /*'jumpoptions'*
|
||||
'key' options.txt /*'key'*
|
||||
'keymap' options.txt /*'keymap'*
|
||||
'keymodel' options.txt /*'keymodel'*
|
||||
@@ -1434,6 +1436,7 @@ $quote eval.txt /*$quote*
|
||||
+python/dyn various.txt /*+python\/dyn*
|
||||
+python3 various.txt /*+python3*
|
||||
+python3/dyn various.txt /*+python3\/dyn*
|
||||
+python3/dyn-stable various.txt /*+python3\/dyn-stable*
|
||||
+quickfix various.txt /*+quickfix*
|
||||
+reltime various.txt /*+reltime*
|
||||
+rightleft various.txt /*+rightleft*
|
||||
@@ -2074,7 +2077,14 @@ $quote eval.txt /*$quote*
|
||||
:Arguments terminal.txt /*:Arguments*
|
||||
:Asm terminal.txt /*:Asm*
|
||||
:Break terminal.txt /*:Break*
|
||||
:Cargo ft_rust.txt /*:Cargo*
|
||||
:Cbench ft_rust.txt /*:Cbench*
|
||||
:Cbuild ft_rust.txt /*:Cbuild*
|
||||
:Cclean ft_rust.txt /*:Cclean*
|
||||
:Cdoc ft_rust.txt /*:Cdoc*
|
||||
:Cfilter quickfix.txt /*:Cfilter*
|
||||
:Cinit ft_rust.txt /*:Cinit*
|
||||
:Cinstall ft_rust.txt /*:Cinstall*
|
||||
:Clear terminal.txt /*:Clear*
|
||||
:CompilerSet usr_51.txt /*:CompilerSet*
|
||||
:ConTeXt ft_context.txt /*:ConTeXt*
|
||||
@@ -2082,12 +2092,20 @@ $quote eval.txt /*$quote*
|
||||
:ConTeXtLog ft_context.txt /*:ConTeXtLog*
|
||||
:ConTeXtStopJobs ft_context.txt /*:ConTeXtStopJobs*
|
||||
:Continue terminal.txt /*:Continue*
|
||||
:Cpublish ft_rust.txt /*:Cpublish*
|
||||
:Crun ft_rust.txt /*:Crun*
|
||||
:Cruntarget ft_rust.txt /*:Cruntarget*
|
||||
:Csearch ft_rust.txt /*:Csearch*
|
||||
:Ctest ft_rust.txt /*:Ctest*
|
||||
:Cupdate ft_rust.txt /*:Cupdate*
|
||||
:DiffOrig diff.txt /*:DiffOrig*
|
||||
:DoMatchParen pi_paren.txt /*:DoMatchParen*
|
||||
:Down terminal.txt /*:Down*
|
||||
:Evaluate terminal.txt /*:Evaluate*
|
||||
:Explore pi_netrw.txt /*:Explore*
|
||||
:Finish terminal.txt /*:Finish*
|
||||
:FixBeginfigs ft_mp.txt /*:FixBeginfigs*
|
||||
:Frame terminal.txt /*:Frame*
|
||||
:GLVS pi_getscript.txt /*:GLVS*
|
||||
:Gdb terminal.txt /*:Gdb*
|
||||
:GetLatestVimScripts_dat pi_getscript.txt /*:GetLatestVimScripts_dat*
|
||||
@@ -2128,8 +2146,12 @@ $quote eval.txt /*$quote*
|
||||
:RustExpand ft_rust.txt /*:RustExpand*
|
||||
:RustFmt ft_rust.txt /*:RustFmt*
|
||||
:RustFmtRange ft_rust.txt /*:RustFmtRange*
|
||||
:RustInfo ft_rust.txt /*:RustInfo*
|
||||
:RustInfoClipboard ft_rust.txt /*:RustInfoClipboard*
|
||||
:RustInfoToFile ft_rust.txt /*:RustInfoToFile*
|
||||
:RustPlay ft_rust.txt /*:RustPlay*
|
||||
:RustRun ft_rust.txt /*:RustRun*
|
||||
:RustTest ft_rust.txt /*:RustTest*
|
||||
:Sexplore pi_netrw.txt /*:Sexplore*
|
||||
:Source terminal.txt /*:Source*
|
||||
:Step terminal.txt /*:Step*
|
||||
@@ -2140,7 +2162,9 @@ $quote eval.txt /*$quote*
|
||||
:TermdebugCommand terminal.txt /*:TermdebugCommand*
|
||||
:Texplore pi_netrw.txt /*:Texplore*
|
||||
:Until terminal.txt /*:Until*
|
||||
:Up terminal.txt /*:Up*
|
||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||
:Var terminal.txt /*:Var*
|
||||
:Vexplore pi_netrw.txt /*:Vexplore*
|
||||
:VimballList pi_vimball.txt /*:VimballList*
|
||||
:Vimuntar pi_tar.txt /*:Vimuntar*
|
||||
@@ -3856,7 +3880,8 @@ BeOS os_beos.txt /*BeOS*
|
||||
Blob eval.txt /*Blob*
|
||||
Blobs eval.txt /*Blobs*
|
||||
Boolean eval.txt /*Boolean*
|
||||
Bram intro.txt /*Bram*
|
||||
Bram version9.txt /*Bram*
|
||||
Bram-Moolenaar version9.txt /*Bram-Moolenaar*
|
||||
BufAdd autocmd.txt /*BufAdd*
|
||||
BufCreate autocmd.txt /*BufCreate*
|
||||
BufDelete autocmd.txt /*BufDelete*
|
||||
@@ -4395,13 +4420,11 @@ E1325 vim9class.txt /*E1325*
|
||||
E1326 vim9class.txt /*E1326*
|
||||
E1327 vim9class.txt /*E1327*
|
||||
E1328 vim9class.txt /*E1328*
|
||||
E1329 vim9class.txt /*E1329*
|
||||
E133 userfunc.txt /*E133*
|
||||
E1330 vim9class.txt /*E1330*
|
||||
E1331 vim9class.txt /*E1331*
|
||||
E1332 vim9class.txt /*E1332*
|
||||
E1333 vim9class.txt /*E1333*
|
||||
E1334 vim9class.txt /*E1334*
|
||||
E1335 vim9class.txt /*E1335*
|
||||
E1336 options.txt /*E1336*
|
||||
E1337 vim9class.txt /*E1337*
|
||||
@@ -4435,10 +4458,35 @@ E1361 syntax.txt /*E1361*
|
||||
E1362 vim9class.txt /*E1362*
|
||||
E1363 vim9class.txt /*E1363*
|
||||
E1364 recover.txt /*E1364*
|
||||
E1365 vim9class.txt /*E1365*
|
||||
E1366 vim9class.txt /*E1366*
|
||||
E1367 vim9class.txt /*E1367*
|
||||
E1368 vim9class.txt /*E1368*
|
||||
E1369 vim9class.txt /*E1369*
|
||||
E137 starting.txt /*E137*
|
||||
E1370 vim9class.txt /*E1370*
|
||||
E1371 vim9class.txt /*E1371*
|
||||
E1372 vim9class.txt /*E1372*
|
||||
E1373 vim9class.txt /*E1373*
|
||||
E1374 vim9class.txt /*E1374*
|
||||
E1375 vim9class.txt /*E1375*
|
||||
E1376 vim9class.txt /*E1376*
|
||||
E1377 vim9class.txt /*E1377*
|
||||
E1378 vim9class.txt /*E1378*
|
||||
E1379 vim9class.txt /*E1379*
|
||||
E138 starting.txt /*E138*
|
||||
E1380 vim9class.txt /*E1380*
|
||||
E1381 vim9class.txt /*E1381*
|
||||
E1382 vim9class.txt /*E1382*
|
||||
E1383 vim9class.txt /*E1383*
|
||||
E139 message.txt /*E139*
|
||||
E140 message.txt /*E140*
|
||||
E1400 builtin.txt /*E1400*
|
||||
E1401 builtin.txt /*E1401*
|
||||
E1402 builtin.txt /*E1402*
|
||||
E1403 builtin.txt /*E1403*
|
||||
E1404 builtin.txt /*E1404*
|
||||
E1405 builtin.txt /*E1405*
|
||||
E141 message.txt /*E141*
|
||||
E142 message.txt /*E142*
|
||||
E143 autocmd.txt /*E143*
|
||||
@@ -5458,7 +5506,7 @@ Mark motion.txt /*Mark*
|
||||
MenuPopup autocmd.txt /*MenuPopup*
|
||||
MiNT os_mint.txt /*MiNT*
|
||||
ModeChanged autocmd.txt /*ModeChanged*
|
||||
Moolenaar intro.txt /*Moolenaar*
|
||||
Moolenaar version9.txt /*Moolenaar*
|
||||
MorphOS os_amiga.txt /*MorphOS*
|
||||
Motif gui_x11.txt /*Motif*
|
||||
Myspell spell.txt /*Myspell*
|
||||
@@ -5837,6 +5885,7 @@ abandon editing.txt /*abandon*
|
||||
abbreviations map.txt /*abbreviations*
|
||||
abel.vim syntax.txt /*abel.vim*
|
||||
abs() builtin.txt /*abs()*
|
||||
abstract-method vim9class.txt /*abstract-method*
|
||||
acos() builtin.txt /*acos()*
|
||||
active-buffer windows.txt /*active-buffer*
|
||||
ada#Create_Tags() ft_ada.txt /*ada#Create_Tags()*
|
||||
@@ -5984,6 +6033,13 @@ b:clojure_syntax_keywords syntax.txt /*b:clojure_syntax_keywords*
|
||||
b:clojure_syntax_without_core_keywords syntax.txt /*b:clojure_syntax_without_core_keywords*
|
||||
b:current_syntax-variable syntax.txt /*b:current_syntax-variable*
|
||||
b:netrw_lastfile pi_netrw.txt /*b:netrw_lastfile*
|
||||
b:rust_cargo_avoid_whole_workspace ft_rust.txt /*b:rust_cargo_avoid_whole_workspace*
|
||||
b:rust_cargo_check_all_features ft_rust.txt /*b:rust_cargo_check_all_features*
|
||||
b:rust_cargo_check_all_targets ft_rust.txt /*b:rust_cargo_check_all_targets*
|
||||
b:rust_cargo_check_benches ft_rust.txt /*b:rust_cargo_check_benches*
|
||||
b:rust_cargo_check_examples ft_rust.txt /*b:rust_cargo_check_examples*
|
||||
b:rust_cargo_check_tests ft_rust.txt /*b:rust_cargo_check_tests*
|
||||
b:rustfmt_autosave ft_rust.txt /*b:rustfmt_autosave*
|
||||
b:tex_stylish syntax.txt /*b:tex_stylish*
|
||||
b:var eval.txt /*b:var*
|
||||
b:yaml_schema syntax.txt /*b:yaml_schema*
|
||||
@@ -6329,7 +6385,7 @@ cino-{ indent.txt /*cino-{*
|
||||
cino-} indent.txt /*cino-}*
|
||||
cinoptions-values indent.txt /*cinoptions-values*
|
||||
class vim9class.txt /*class*
|
||||
class-function vim9class.txt /*class-function*
|
||||
class-method vim9class.txt /*class-method*
|
||||
clear-undo undo.txt /*clear-undo*
|
||||
clearmatches() builtin.txt /*clearmatches()*
|
||||
client-server remote.txt /*client-server*
|
||||
@@ -6679,6 +6735,7 @@ dis motion.txt /*dis*
|
||||
disable-menus gui.txt /*disable-menus*
|
||||
discard editing.txt /*discard*
|
||||
distribute-script usr_51.txt /*distribute-script*
|
||||
distributed-plugins usr_05.txt /*distributed-plugins*
|
||||
distribution intro.txt /*distribution*
|
||||
diw motion.txt /*diw*
|
||||
dl change.txt /*dl*
|
||||
@@ -6728,6 +6785,7 @@ edit-no-break usr_25.txt /*edit-no-break*
|
||||
edit-paragraph-join usr_25.txt /*edit-paragraph-join*
|
||||
edit-window windows.txt /*edit-window*
|
||||
editing.txt editing.txt /*editing.txt*
|
||||
editorconfig-install usr_05.txt /*editorconfig-install*
|
||||
efm-%> quickfix.txt /*efm-%>*
|
||||
efm-entries quickfix.txt /*efm-entries*
|
||||
efm-ignore quickfix.txt /*efm-ignore*
|
||||
@@ -6753,6 +6811,7 @@ err_mode channel.txt /*err_mode*
|
||||
err_modifiable channel.txt /*err_modifiable*
|
||||
err_msg channel.txt /*err_msg*
|
||||
err_name channel.txt /*err_name*
|
||||
err_teapot() builtin.txt /*err_teapot()*
|
||||
err_timeout channel.txt /*err_timeout*
|
||||
errmsg-variable eval.txt /*errmsg-variable*
|
||||
error-file-format quickfix.txt /*error-file-format*
|
||||
@@ -7306,6 +7365,8 @@ g:ada_space_errors ft_ada.txt /*g:ada_space_errors*
|
||||
g:ada_standard_types ft_ada.txt /*g:ada_standard_types*
|
||||
g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
|
||||
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
|
||||
g:cargo_makeprg_params ft_rust.txt /*g:cargo_makeprg_params*
|
||||
g:cargo_shell_command_runner ft_rust.txt /*g:cargo_shell_command_runner*
|
||||
g:clojure_align_multiline_strings indent.txt /*g:clojure_align_multiline_strings*
|
||||
g:clojure_align_subforms indent.txt /*g:clojure_align_subforms*
|
||||
g:clojure_discard_macro syntax.txt /*g:clojure_discard_macro*
|
||||
@@ -7468,18 +7529,29 @@ g:netrw_wiw pi_netrw.txt /*g:netrw_wiw*
|
||||
g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen*
|
||||
g:no_mail_maps filetype.txt /*g:no_mail_maps*
|
||||
g:no_plugin_maps filetype.txt /*g:no_plugin_maps*
|
||||
g:plugin_exec filetype.txt /*g:plugin_exec*
|
||||
g:rust_bang_comment_leader ft_rust.txt /*g:rust_bang_comment_leader*
|
||||
g:rust_cargo_avoid_whole_workspace ft_rust.txt /*g:rust_cargo_avoid_whole_workspace*
|
||||
g:rust_cargo_check_all_features ft_rust.txt /*g:rust_cargo_check_all_features*
|
||||
g:rust_cargo_check_all_targets ft_rust.txt /*g:rust_cargo_check_all_targets*
|
||||
g:rust_cargo_check_benches ft_rust.txt /*g:rust_cargo_check_benches*
|
||||
g:rust_cargo_check_examples ft_rust.txt /*g:rust_cargo_check_examples*
|
||||
g:rust_cargo_check_tests ft_rust.txt /*g:rust_cargo_check_tests*
|
||||
g:rust_clip_command ft_rust.txt /*g:rust_clip_command*
|
||||
g:rust_conceal ft_rust.txt /*g:rust_conceal*
|
||||
g:rust_conceal_mod_path ft_rust.txt /*g:rust_conceal_mod_path*
|
||||
g:rust_conceal_pub ft_rust.txt /*g:rust_conceal_pub*
|
||||
g:rust_fold ft_rust.txt /*g:rust_fold*
|
||||
g:rust_playpen_url ft_rust.txt /*g:rust_playpen_url*
|
||||
g:rust_keep_autopairs_default ft_rust.txt /*g:rust_keep_autopairs_default*
|
||||
g:rust_recommended_style ft_rust.txt /*g:rust_recommended_style*
|
||||
g:rust_shortener_url ft_rust.txt /*g:rust_shortener_url*
|
||||
g:rust_use_custom_ctags_defs ft_rust.txt /*g:rust_use_custom_ctags_defs*
|
||||
g:rustc_makeprg_no_percent ft_rust.txt /*g:rustc_makeprg_no_percent*
|
||||
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_emit_files ft_rust.txt /*g:rustfmt_emit_files*
|
||||
g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently*
|
||||
g:rustfmt_options ft_rust.txt /*g:rustfmt_options*
|
||||
g:statusline_winid options.txt /*g:statusline_winid*
|
||||
@@ -7534,6 +7606,7 @@ g<LeftMouse> tagsrch.txt /*g<LeftMouse>*
|
||||
g<RightMouse> tagsrch.txt /*g<RightMouse>*
|
||||
g<Tab> tabpage.txt /*g<Tab>*
|
||||
g<Up> motion.txt /*g<Up>*
|
||||
g<kEnd> motion.txt /*g<kEnd>*
|
||||
g? change.txt /*g?*
|
||||
g?? change.txt /*g??*
|
||||
g?g? change.txt /*g?g?*
|
||||
@@ -8017,6 +8090,7 @@ i_CTRL-O insert.txt /*i_CTRL-O*
|
||||
i_CTRL-P insert.txt /*i_CTRL-P*
|
||||
i_CTRL-Q insert.txt /*i_CTRL-Q*
|
||||
i_CTRL-R insert.txt /*i_CTRL-R*
|
||||
i_CTRL-R_- insert.txt /*i_CTRL-R_-*
|
||||
i_CTRL-R_= insert.txt /*i_CTRL-R_=*
|
||||
i_CTRL-R_CTRL-O insert.txt /*i_CTRL-R_CTRL-O*
|
||||
i_CTRL-R_CTRL-P insert.txt /*i_CTRL-R_CTRL-P*
|
||||
@@ -8155,6 +8229,7 @@ insertmode-variable eval.txt /*insertmode-variable*
|
||||
install usr_90.txt /*install*
|
||||
install-home usr_90.txt /*install-home*
|
||||
install-registry gui_w32.txt /*install-registry*
|
||||
instanceof() builtin.txt /*instanceof()*
|
||||
intel-itanium syntax.txt /*intel-itanium*
|
||||
intellimouse-wheel-problems gui_w32.txt /*intellimouse-wheel-problems*
|
||||
interactive-functions usr_41.txt /*interactive-functions*
|
||||
@@ -8227,6 +8302,7 @@ json_encode() builtin.txt /*json_encode()*
|
||||
jtags tagsrch.txt /*jtags*
|
||||
jump-motions motion.txt /*jump-motions*
|
||||
jumplist motion.txt /*jumplist*
|
||||
jumplist-stack motion.txt /*jumplist-stack*
|
||||
jumpto-diffs diff.txt /*jumpto-diffs*
|
||||
k motion.txt /*k*
|
||||
kcc uganda.txt /*kcc*
|
||||
@@ -8326,6 +8402,7 @@ load-plugins starting.txt /*load-plugins*
|
||||
load-vim-script repeat.txt /*load-vim-script*
|
||||
local-additions help.txt /*local-additions*
|
||||
local-function userfunc.txt /*local-function*
|
||||
local-noglobal options.txt /*local-noglobal*
|
||||
local-options options.txt /*local-options*
|
||||
local-variable eval.txt /*local-variable*
|
||||
local-variables userfunc.txt /*local-variables*
|
||||
@@ -8969,6 +9046,7 @@ numbersize-variable eval.txt /*numbersize-variable*
|
||||
o insert.txt /*o*
|
||||
o_CTRL-V motion.txt /*o_CTRL-V*
|
||||
o_V motion.txt /*o_V*
|
||||
o_object-select motion.txt /*o_object-select*
|
||||
o_v motion.txt /*o_v*
|
||||
object vim9class.txt /*object*
|
||||
object-motions motion.txt /*object-motions*
|
||||
@@ -9125,6 +9203,7 @@ plugin usr_05.txt /*plugin*
|
||||
plugin-details filetype.txt /*plugin-details*
|
||||
plugin-filetype usr_51.txt /*plugin-filetype*
|
||||
plugin-special usr_51.txt /*plugin-special*
|
||||
plugin_exec filetype.txt /*plugin_exec*
|
||||
plugin_name.txt helphelp.txt /*plugin_name.txt*
|
||||
pmbcs-option print.txt /*pmbcs-option*
|
||||
pmbfn-option print.txt /*pmbfn-option*
|
||||
@@ -9206,6 +9285,7 @@ print-intro print.txt /*print-intro*
|
||||
print-options print.txt /*print-options*
|
||||
print.txt print.txt /*print.txt*
|
||||
printf() builtin.txt /*printf()*
|
||||
printf-$ builtin.txt /*printf-$*
|
||||
printf-% builtin.txt /*printf-%*
|
||||
printf-B builtin.txt /*printf-B*
|
||||
printf-E builtin.txt /*printf-E*
|
||||
@@ -9293,6 +9373,8 @@ python-path_hook if_pyth.txt /*python-path_hook*
|
||||
python-pyeval if_pyth.txt /*python-pyeval*
|
||||
python-range if_pyth.txt /*python-range*
|
||||
python-special-path if_pyth.txt /*python-special-path*
|
||||
python-stable if_pyth.txt /*python-stable*
|
||||
python-stable-abi if_pyth.txt /*python-stable-abi*
|
||||
python-strwidth if_pyth.txt /*python-strwidth*
|
||||
python-tabpage if_pyth.txt /*python-tabpage*
|
||||
python-tabpages if_pyth.txt /*python-tabpages*
|
||||
@@ -9305,6 +9387,8 @@ python.vim syntax.txt /*python.vim*
|
||||
python2-directory if_pyth.txt /*python2-directory*
|
||||
python3 if_pyth.txt /*python3*
|
||||
python3-directory if_pyth.txt /*python3-directory*
|
||||
python3-stable-abi if_pyth.txt /*python3-stable-abi*
|
||||
python3-version-variable eval.txt /*python3-version-variable*
|
||||
python_x if_pyth.txt /*python_x*
|
||||
python_x-special-comments if_pyth.txt /*python_x-special-comments*
|
||||
pythonx if_pyth.txt /*pythonx*
|
||||
@@ -9489,12 +9573,12 @@ russian-keymap russian.txt /*russian-keymap*
|
||||
russian-l18n russian.txt /*russian-l18n*
|
||||
russian.txt russian.txt /*russian.txt*
|
||||
rust ft_rust.txt /*rust*
|
||||
rust-auto-pairs ft_rust.txt /*rust-auto-pairs*
|
||||
rust-commands ft_rust.txt /*rust-commands*
|
||||
rust-intro ft_rust.txt /*rust-intro*
|
||||
rust-mappings ft_rust.txt /*rust-mappings*
|
||||
rust-settings ft_rust.txt /*rust-settings*
|
||||
rust_<D-R> ft_rust.txt /*rust_<D-R>*
|
||||
rust_<D-r> ft_rust.txt /*rust_<D-r>*
|
||||
rust-syntastic ft_rust.txt /*rust-syntastic*
|
||||
rview starting.txt /*rview*
|
||||
rvim starting.txt /*rvim*
|
||||
rxvt syntax.txt /*rxvt*
|
||||
@@ -10316,15 +10400,20 @@ termdebug-communication terminal.txt /*termdebug-communication*
|
||||
termdebug-customizing terminal.txt /*termdebug-customizing*
|
||||
termdebug-events terminal.txt /*termdebug-events*
|
||||
termdebug-example terminal.txt /*termdebug-example*
|
||||
termdebug-frames terminal.txt /*termdebug-frames*
|
||||
termdebug-prompt terminal.txt /*termdebug-prompt*
|
||||
termdebug-starting terminal.txt /*termdebug-starting*
|
||||
termdebug-stepping terminal.txt /*termdebug-stepping*
|
||||
termdebug-variables terminal.txt /*termdebug-variables*
|
||||
termdebug_disasm_window terminal.txt /*termdebug_disasm_window*
|
||||
termdebug_map_K terminal.txt /*termdebug_map_K*
|
||||
termdebug_map_minus terminal.txt /*termdebug_map_minus*
|
||||
termdebug_map_plus terminal.txt /*termdebug_map_plus*
|
||||
termdebug_popup terminal.txt /*termdebug_popup*
|
||||
termdebug_shortcuts terminal.txt /*termdebug_shortcuts*
|
||||
termdebug_signs terminal.txt /*termdebug_signs*
|
||||
termdebug_use_prompt terminal.txt /*termdebug_use_prompt*
|
||||
termdebug_variables_window terminal.txt /*termdebug_variables_window*
|
||||
termdebug_wide terminal.txt /*termdebug_wide*
|
||||
termdebug_winbar terminal.txt /*termdebug_winbar*
|
||||
terminal terminal.txt /*terminal*
|
||||
@@ -10629,6 +10718,7 @@ v:prevcount eval.txt /*v:prevcount*
|
||||
v:profiling eval.txt /*v:profiling*
|
||||
v:progname eval.txt /*v:progname*
|
||||
v:progpath eval.txt /*v:progpath*
|
||||
v:python3_version eval.txt /*v:python3_version*
|
||||
v:register eval.txt /*v:register*
|
||||
v:scrollstart eval.txt /*v:scrollstart*
|
||||
v:searchforward eval.txt /*v:searchforward*
|
||||
@@ -10774,6 +10864,7 @@ v_iw motion.txt /*v_iw*
|
||||
v_i{ motion.txt /*v_i{*
|
||||
v_i} motion.txt /*v_i}*
|
||||
v_o visual.txt /*v_o*
|
||||
v_object-select motion.txt /*v_object-select*
|
||||
v_p change.txt /*v_p*
|
||||
v_r change.txt /*v_r*
|
||||
v_s change.txt /*v_s*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.0. Last change: 2023 Jun 09
|
||||
*terminal.txt* For Vim version 9.0. Last change: 2023 Aug 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,6 +38,7 @@ If the result is "1" you have it.
|
||||
Example session |termdebug-example|
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Navigating stack frames |termdebug-frames|
|
||||
Other commands |termdebug-commands|
|
||||
Events |termdebug-events|
|
||||
Prompt mode |termdebug-prompt|
|
||||
@@ -1376,6 +1377,18 @@ This is similar to using "print" in the gdb window.
|
||||
You can usually shorten `:Evaluate` to `:Ev`.
|
||||
|
||||
|
||||
Navigating stack frames ~
|
||||
*termdebug-frames* *:Frame* *:Up* *:Down*
|
||||
`:Frame` [frame] select frame [frame], which is a frame number,
|
||||
address, or function name (default: current frame)
|
||||
`:Up` [count] go up [count] frames (default: 1; the frame that
|
||||
called the current)
|
||||
`+` same (see |termdebug_map_plus| to disable)
|
||||
`:Down` [count] go down [count] frames (default: 1; the frame called
|
||||
by the current)
|
||||
`-` same (see |termdebug_map_minus| to disable)
|
||||
|
||||
|
||||
Other commands ~
|
||||
*termdebug-commands*
|
||||
*:Gdb* jump to the gdb window
|
||||
@@ -1384,6 +1397,9 @@ Other commands ~
|
||||
isn't one
|
||||
*:Asm* jump to the window with the disassembly, create it if there
|
||||
isn't one
|
||||
*:Var* jump to the window with the local and argument variables,
|
||||
create it if there isn't one. This window updates whenever the
|
||||
program is stopped
|
||||
|
||||
Events ~
|
||||
*termdebug-events*
|
||||
@@ -1446,10 +1462,18 @@ If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_use_prompt = 1
|
||||
<
|
||||
*termdebug_map_K*
|
||||
The K key is normally mapped to :Evaluate. If you do not want this use: >
|
||||
The K key is normally mapped to |:Evaluate|. If you do not want this use: >
|
||||
let g:termdebug_config['map_K'] = 0
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_map_K = 0
|
||||
<
|
||||
*termdebug_map_minus*
|
||||
The - key is normally mapped to |:Down|. If you do not want this use: >
|
||||
let g:termdebug_config['map_minus'] = 0
|
||||
<
|
||||
*termdebug_map_plus*
|
||||
The + key is normally mapped to |:Up|. If you do not want this use: >
|
||||
let g:termdebug_config['map_plus'] = 0
|
||||
<
|
||||
*termdebug_disasm_window*
|
||||
If you want the Asm window shown by default, set the "disasm_window" flag to
|
||||
@@ -1460,6 +1484,15 @@ If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_disasm_window = 15
|
||||
Any value greater than 1 will set the Asm window height to that value.
|
||||
|
||||
*termdebug_variables_window*
|
||||
If you want the Var window shown by default, set the flag to 1.
|
||||
the "variables_window_height" entry can be used to set the window height: >
|
||||
let g:termdebug_config['variables_window'] = 1
|
||||
let g:termdebug_config['variables_window_height'] = 15
|
||||
If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_variables_window = 15
|
||||
Any value greater than 1 will set the Var window height to that value.
|
||||
|
||||
Communication ~
|
||||
*termdebug-communication*
|
||||
There is another, hidden, buffer, which is used for Vim to communicate with
|
||||
@@ -1541,6 +1574,20 @@ If there is no g:termdebug_config you can use: >
|
||||
let g:termdebug_popup = 0
|
||||
|
||||
|
||||
Change default signs ~
|
||||
*termdebug_signs*
|
||||
Termdebug uses the last two characters of the breakpoint ID in the
|
||||
signcolumn to represent breakpoints. For example, breakpoint ID 133
|
||||
will be displayed as `33`.
|
||||
|
||||
If you want to customize the breakpoint signs: >
|
||||
let g:termdebug_config['sign'] = '>>'
|
||||
If there is no g:terminal_config yet you can use: >
|
||||
let g:termdebug_config = {'sign': '>>'}
|
||||
|
||||
After this, breakpoints will be displayed as `>>` in the signcolumn.
|
||||
|
||||
|
||||
Window toolbar ~
|
||||
*termdebug_winbar*
|
||||
By default the Termdebug plugin creates a window toolbar if the mouse is
|
||||
|
||||
@@ -335,6 +335,12 @@ prop_list({lnum} [, {props}]) *prop_list()*
|
||||
length length in bytes, one more if line break is
|
||||
included
|
||||
id property ID
|
||||
text text to be displayed before {col}. Only
|
||||
present for |virtual-text| properties.
|
||||
text_align alignment property of |virtual-text|.
|
||||
text_padding_left
|
||||
left padding used for virtual text.
|
||||
text_wrap specifies whether |virtual-text| is wrapped.
|
||||
type name of the property type, omitted if
|
||||
the type was deleted
|
||||
type_bufnr buffer number for which this type was defined;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tips.txt* For Vim version 9.0. Last change: 2021 Nov 06
|
||||
*tips.txt* For Vim version 9.0. Last change: 2023 Aug 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -431,14 +431,26 @@ comma-separated list of extension(s) you find yourself wanting to edit: >
|
||||
|
||||
" vim -b : edit binary using xxd-format!
|
||||
augroup Binary
|
||||
au!
|
||||
au BufReadPre *.bin let &bin=1
|
||||
au BufReadPost *.bin if &bin | %!xxd
|
||||
au BufReadPost *.bin set ft=xxd | endif
|
||||
au BufWritePre *.bin if &bin | %!xxd -r
|
||||
au BufWritePre *.bin endif
|
||||
au BufWritePost *.bin if &bin | %!xxd
|
||||
au BufWritePost *.bin set nomod | endif
|
||||
autocmd!
|
||||
autocmd BufReadPre *.bin set binary
|
||||
autocmd BufReadPost *.bin
|
||||
\ if &binary
|
||||
\ | execute "silent %!xxd -c 32"
|
||||
\ | set filetype=xxd
|
||||
\ | redraw
|
||||
\ | endif
|
||||
autocmd BufWritePre *.bin
|
||||
\ if &binary
|
||||
\ | let s:view = winsaveview()
|
||||
\ | execute "silent %!xxd -r -c 32"
|
||||
\ | endif
|
||||
autocmd BufWritePost *.bin
|
||||
\ if &binary
|
||||
\ | execute "silent %!xxd -c 32"
|
||||
\ | set nomodified
|
||||
\ | call winrestview(s:view)
|
||||
\ | redraw
|
||||
\ | endif
|
||||
augroup END
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -61,8 +61,6 @@ without all the help files.
|
||||
SpellCap highlight not updated - PR #12428
|
||||
|
||||
Virtual text problems:
|
||||
- Deleting character before a wrapping virtual text, causes for the following
|
||||
lines to dissapear (Issue #12244)
|
||||
- If 'list' is on, 'below' virtual text which includes 1 or 2 characters are
|
||||
gone (Issue #12028)
|
||||
- Virtual text aligned "above": Wrong indentation when using tabs (Issue
|
||||
@@ -75,14 +73,6 @@ Virtual text problems:
|
||||
'below' on an empty line (Issue #11959)
|
||||
- truncated Virtual text below an empty line causes display error #12493
|
||||
|
||||
include #12403: window for Termdebug showing local variables
|
||||
|
||||
include #12140: positional arguments in printf(), fixes #10577
|
||||
|
||||
Include #11818: attach custom data to quickfix items.
|
||||
|
||||
Include #12292: buffer argument for undotree()?
|
||||
|
||||
When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
|
||||
highlighted. (van-de-bugger, 2018 Jan 23, #2576)
|
||||
|
||||
@@ -131,7 +121,7 @@ Upcoming larger works:
|
||||
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
- implement :class and :interface: See |vim9-classes
|
||||
- Classes and Interfaces. See |vim9-classes|
|
||||
- Change access: public by default, private by prefixing "_".
|
||||
Check for error: can't have same name twice (ignoring "_" prefix).
|
||||
- Private methods?
|
||||
@@ -139,25 +129,19 @@ Further Vim9 improvements, possibly after launch:
|
||||
or: def _Func()
|
||||
Perhaps use "private" keyword instead of "_" prefix?
|
||||
- "final" object members - can only be set in the constructor.
|
||||
- Support export/import of classes and interfaces.
|
||||
- Cannot use class type of itself in the method (Issue #12369)
|
||||
- Cannot use an object method in a lambda #12417
|
||||
Define all methods before compiling them?
|
||||
- class members initialized during definition (Issue #12041)
|
||||
- Cannot call class member of funcref type (Issue #12324)
|
||||
Also #12081 first case.
|
||||
- Using list of functions does not work #12081 (repro in later message).
|
||||
- Weird `class X not found on interface X` error (Issue #12023)
|
||||
- First argument of call() cannot be "obj.Func". (#11865)
|
||||
- "return this" required for early return from constructor (inconsistent)
|
||||
(Issue #12040)
|
||||
- class/method confusion inside ":def" when using "class extends" (Issue
|
||||
#12089)
|
||||
- null_object - constant type 17 not supported (Issue #12043)
|
||||
- problem compiling object method call as function call argument (Issue
|
||||
#12081)
|
||||
- Make ":defcompile ClassName" compile all functions and methods in the
|
||||
class.
|
||||
- object's method in stacktrace missing information (Issue #12078)
|
||||
- Forward declaration of a class? E.g. for Clone() function.
|
||||
email lifepillar 2023 Mar 26
|
||||
- Getting member of variable with "any" type should be handled at runtime.
|
||||
@@ -180,7 +164,7 @@ Further Vim9 improvements, possibly after launch:
|
||||
- For chaining, allow using the class name as type for function return
|
||||
value.
|
||||
- Implement generics
|
||||
- Add "instanceof" (exact class name). And "assignable" (class or child)?
|
||||
- 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?
|
||||
list<number> and list<string> should also differ.
|
||||
@@ -3552,8 +3536,6 @@ Macintosh:
|
||||
8 Dragging the status line doesn't scroll but redraw.
|
||||
8 When performing incremental search, should abort searching as soon as a
|
||||
character is typed.
|
||||
8 When the value of $MAKE contains a path, configure can't handle this.
|
||||
It's an autoconf bug. Remove the path from $MAKE to work around it.
|
||||
8 How to set VIMRC_FILE to \"something\" for configure? Why does this not
|
||||
work: CFLAGS='-DVIMRC_FILE=\"/mydir/myfile\"' ./configure
|
||||
8 The temporary file is sometimes not writable. Check for this, and use an
|
||||
@@ -5535,7 +5517,6 @@ Undo:
|
||||
- Undo history wrong when ":next file" re-uses a buffer. (#5426) ex_next()
|
||||
should pass flag to do_argfile(), then to do_ecmd(). Is there a test for
|
||||
this?
|
||||
- Add buffer argument to undotree(). (#4001)
|
||||
- Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
|
||||
- Undo message is not always properly displayed. Patch by Ken Takata, 2013
|
||||
oct 3. Doesn't work properly according to Yukihiro Nakadaira.
|
||||
|
||||
@@ -46,8 +46,8 @@ II) It is allowed to distribute a modified (or extended) version of Vim,
|
||||
maintainer will do with your changes and under what license they
|
||||
will be distributed is negotiable. If there has been no negotiation
|
||||
then this license, or a later version, also applies to your changes.
|
||||
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
|
||||
changes it will be announced in appropriate places (most likely
|
||||
The current maintainers are listed here: https://github.com/orgs/vim/people.
|
||||
If this changes it will be announced in appropriate places (most likely
|
||||
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
|
||||
impossible to contact the maintainer, the obligation to send him
|
||||
your changes ceases. Once the maintainer has confirmed that he has
|
||||
|
||||
@@ -111,9 +111,19 @@ use CTRL-G u. This is useful if you want an insert command to be undoable in
|
||||
parts. E.g., for each sentence. |i_CTRL-G_u|
|
||||
|
||||
Setting the value of 'undolevels' also closes the undo block. Even when the
|
||||
new value is equal to the old value. In |Vim9| script: >
|
||||
&undolevels = &undolevels
|
||||
new value is equal to the old value. Use `g:undolevels` to explicitly read
|
||||
and write only the global value of 'undolevels'. In |Vim9| script: >
|
||||
&g:undolevels = &g:undolevels
|
||||
In legacy script: >
|
||||
let &g:undolevels = &g:undolevels
|
||||
|
||||
Note that the similar-looking assignment `let &undolevels=&undolevels` does not
|
||||
preserve the global option value of 'undolevels' in the event that the local
|
||||
option has been set to a different value. For example: >
|
||||
" Start with different global and local values for 'undolevels'.
|
||||
let &g:undolevels = 1000
|
||||
let &l:undolevels = 2000
|
||||
" This assignment changes the global option to 2000:
|
||||
let &undolevels = &undolevels
|
||||
|
||||
==============================================================================
|
||||
@@ -366,12 +376,20 @@ undo is possible. Use this if you are running out of memory.
|
||||
When you set 'undolevels' to -1 the undo information is not immediately
|
||||
cleared, this happens at the next change. To force clearing the undo
|
||||
information you can use these commands: >
|
||||
:let old_undolevels = &undolevels
|
||||
:set undolevels=-1
|
||||
:let old_undolevels = &l:undolevels
|
||||
:setlocal undolevels=-1
|
||||
:exe "normal a \<BS>\<Esc>"
|
||||
:let &undolevels = old_undolevels
|
||||
:let &l:undolevels = old_undolevels
|
||||
:unlet old_undolevels
|
||||
|
||||
Note use of `&l:undolevels` to explicitly read the local value of 'undolevels'
|
||||
and the use of `:setlocal` to change only the local option (which takes
|
||||
precedence over the corresponding global option value). Saving the option value
|
||||
via the use of `&undolevels` is unpredictable; it reads either the local value
|
||||
(if one has been set) or the global value (otherwise). Also, if a local value
|
||||
has been set, changing the option via `:set undolevels` will change both the
|
||||
global and local values, requiring extra work to save and restore both values.
|
||||
|
||||
Marks for the buffer ('a to 'z) are also saved and restored, together with the
|
||||
text.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 9.0. Last change: 2019 May 23
|
||||
*usr_05.txt* For Vim version 9.0. Last change: 2023 Sep 12
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -308,17 +308,27 @@ This switches on three very clever mechanisms:
|
||||
|
||||
|
||||
*restore-cursor* *last-position-jump* >
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||
\ | exe "normal! g`\""
|
||||
\ | endif
|
||||
augroup RestoreCursor
|
||||
autocmd!
|
||||
autocmd BufReadPost *
|
||||
\ let line = line("'\"")
|
||||
\ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
|
||||
\ && index(['xxd', 'gitrebase'], &filetype) == -1
|
||||
\ | execute "normal! g`\""
|
||||
\ | endif
|
||||
augroup END
|
||||
|
||||
Another autocommand. This time it is used after reading any file. The
|
||||
complicated stuff after it checks if the '" mark is defined, and jumps to it
|
||||
if so. The backslash at the start of a line is used to continue the command
|
||||
from the previous line. That avoids a line getting very long.
|
||||
See |line-continuation|. This only works in a Vim script file, not when
|
||||
typing commands at the command-line.
|
||||
if so. It doesn't do that for a commit or rebase message, which are likely
|
||||
a different one than last time, and when using xxd(1) to filter and edit
|
||||
binary files, which transforms input files back and forth, causing them to
|
||||
have dual nature, so to speak. See also |using-xxd|.
|
||||
|
||||
The backslash at the start of a line is used to continue the command from the
|
||||
previous line. That avoids a line getting very long. See |line-continuation|.
|
||||
This only works in a Vim script file, not when typing commands at the
|
||||
command line.
|
||||
|
||||
>
|
||||
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
|
||||
@@ -417,6 +427,15 @@ an archive or as a repository. For an archive you can follow these steps:
|
||||
Here "fancytext" is the name of the package, it can be anything
|
||||
else.
|
||||
|
||||
Adding the editorconfig package *editorconfig-install*
|
||||
|
||||
Similar to the matchit package, to load the distributed editorconfig plugin
|
||||
when Vim starts, add the following line to your vimrc file: >
|
||||
packadd! editorconfig
|
||||
|
||||
After restarting your Vim, the plugin is active and you can read about it at: >
|
||||
:h editorconfig.txt
|
||||
|
||||
More information about packages can be found here: |packages|.
|
||||
|
||||
==============================================================================
|
||||
@@ -436,13 +455,18 @@ The global plugins will be discussed first, then the filetype ones
|
||||
|add-filetype-plugin|.
|
||||
|
||||
|
||||
GLOBAL PLUGINS *standard-plugin*
|
||||
GLOBAL PLUGINS *standard-plugin* *distributed-plugins*
|
||||
|
||||
When you start Vim, it will automatically load a number of global plugins.
|
||||
You don't have to do anything for this. They add functionality that most
|
||||
people will want to use, but which was implemented as a Vim script instead of
|
||||
being compiled into Vim. You can find them listed in the help index
|
||||
|standard-plugin-list|. Also see |load-plugins|.
|
||||
|standard-plugin-list|.
|
||||
|
||||
For locally installed plugins and packages (which come with a separated help
|
||||
file) a similar list can be found in the help section |local-additions|.
|
||||
|
||||
Also see |load-plugins|.
|
||||
|
||||
*add-global-plugin*
|
||||
You can add a global plugin to add functionality that will always be present
|
||||
|
||||
@@ -877,6 +877,7 @@ Other computation: *bitwise-function*
|
||||
srand() initialize seed used by rand()
|
||||
|
||||
Variables: *var-functions*
|
||||
instanceof() check if a variable is an instance of a given class
|
||||
type() type of a variable as a number
|
||||
typename() type of a variable as text
|
||||
islocked() check if a variable is locked
|
||||
@@ -1232,6 +1233,7 @@ Inter-process communication: *channel-functions*
|
||||
json_decode() decode a JSON string to Vim types
|
||||
js_encode() encode an expression to a JSON string
|
||||
js_decode() decode a JSON string to Vim types
|
||||
err_teapot() give error 418 or 503
|
||||
|
||||
Jobs: *job-functions*
|
||||
job_start() start a job
|
||||
@@ -1372,7 +1374,7 @@ Various: *various-functions*
|
||||
libcallnr() idem, returning a number
|
||||
|
||||
undofile() get the name of the undo file
|
||||
undotree() return the state of the undo tree
|
||||
undotree() return the state of the undo tree for a buffer
|
||||
|
||||
shiftwidth() effective value of 'shiftwidth'
|
||||
|
||||
|
||||
@@ -450,6 +450,8 @@ m *+python* Python 2 interface |python|
|
||||
m *+python/dyn* Python 2 interface |python-dynamic| |/dyn|
|
||||
m *+python3* Python 3 interface |python|
|
||||
m *+python3/dyn* Python 3 interface |python-dynamic| |/dyn|
|
||||
m *+python3/dyn-stable*
|
||||
Python 3 interface |python-dynamic| |python-stable| |/dyn|
|
||||
N *+quickfix* |:make| and |quickfix| commands
|
||||
N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout,
|
||||
'redrawtime' option
|
||||
|
||||
@@ -4627,7 +4627,7 @@ using an #ifdef. (Sergey Khorev)
|
||||
Mzscheme interface didn't link, missing function. Changed order of libraries
|
||||
in the configure script.
|
||||
|
||||
Ruby interface didn't compile on Mac. Changed #ifdef. (Kevin Ballard)
|
||||
Ruby interface didn't compile on Mac. Changed #ifdef. (Lily Ballard)
|
||||
|
||||
Patch 7.1b.001 (extra)
|
||||
Problem: Random text in a source file. No idea how it got there.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.0. Last change: 2022 Nov 23
|
||||
*version9.txt* For Vim version 9.0. Last change: 2023 Aug 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -43,6 +43,17 @@ when the release was being prepared. Sven was a long time supporter of Vim.
|
||||
He registered the vim.org domain and created the first Vim website. We will
|
||||
remember him!
|
||||
|
||||
*Bram* *Moolenaar* *Bram-Moolenaar*
|
||||
Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd
|
||||
2023 while still working full-time on Vim. The Vim project would not exist
|
||||
without his ongoing passion to lead and develop Vim and the community for more
|
||||
than 30 years. Bram was also passionate about his |ICCF| foundation to help
|
||||
children in Uganda. If you enjoy using Vim, please consider donating! We will
|
||||
miss his guidance, passion and leadership.
|
||||
|
||||
Obituary Articles: https://github.com/vim/vim/discussions/12742
|
||||
Say Farewell: https://github.com/vim/vim/discussions/12737
|
||||
|
||||
==============================================================================
|
||||
NEW FEATURES *new-9*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH VIM 1 "22 febbraio 2002"
|
||||
.TH VIM 1 "13 giugno 2022"
|
||||
.SH NOME
|
||||
vim \- VI Migliorato, un editor di testi per programmatori
|
||||
.SH SINTASSI
|
||||
@@ -35,17 +35,17 @@ Un editore di testi, compatibile con, e migliore di, Vi.
|
||||
Pu<EFBFBD> essere usato per editare qualsiasi file di testo.
|
||||
Particolarmente utile per editare programmi.
|
||||
.PP
|
||||
Ci sono parecchi miglioramenti rispetto a Vi: undo multipli,
|
||||
finestre e buffer multipli, evidenziazione sintattica, possibilit<69>
|
||||
di modificare la linea di comando, completamento nomi file, help
|
||||
in linea, selezione testi in Modo Visual, etc..
|
||||
Ci sono parecchi miglioramenti rispetto a Vi: undo multipli, finestre e buffer
|
||||
multipli, evidenziazione sintattica, possibilit<69> di modificare la riga di comando,
|
||||
completamento nomi file, help in linea, selezione testi in Modo Visual, etc..
|
||||
Vedere ":help vi_diff.txt" per un sommario delle differenze fra
|
||||
.B Vim
|
||||
e Vi.
|
||||
.PP
|
||||
Mentre usate
|
||||
.B Vim
|
||||
potete ricevere molto aiuto dal sistema di help online, col comando ":help".
|
||||
potete ricevere molto aiuto dal sistema di help online, col comando
|
||||
":help".
|
||||
Vedere qui sotto la sezione AIUTO ONLINE.
|
||||
.PP
|
||||
Quasi sempre
|
||||
@@ -69,18 +69,16 @@ Una lista di nomi di file.
|
||||
Il primo di questi sar<61> il file corrente, e verr<72> letto nel buffer.
|
||||
Il cursore sar<61> posizionato sulla prima linea del buffer.
|
||||
Potete arrivare agli altri file col comando ":next".
|
||||
Per editare un file il cui nome inizia per "\-" premettete "\-\-" alla
|
||||
lista_file.
|
||||
Per editare un file il cui nome inizia per "\-" premettete "\-\-" alla lista_file.
|
||||
.TP
|
||||
\-
|
||||
Il file da editare <20> letto dallo "stdin" [di solito, ma non
|
||||
necessariamente, il terminale \- NdT]. I comandi sono letti da "stderr",
|
||||
che dovrebbe essere un terminale [tty].
|
||||
Il file da editare <20> letto dallo "stdin"-
|
||||
I comandi sono letti da "stderr", che dovrebbe essere un terminale [tty].
|
||||
.TP
|
||||
\-t {tag}
|
||||
Il file da editare e la posizione iniziale del cursore dipendono da "tag",
|
||||
una specie di "etichetta" a cui saltare.
|
||||
{tag} viene cercata nel file "tags", ed il file ad essa associato diventa
|
||||
{tag} viene cercata nel file "tags", e il file a essa associato diventa
|
||||
quello corrente, ed il comando ad essa associato viene eseguito.
|
||||
Di solito si usa per programmi C, nel qual caso {tag} potrebbe essere un
|
||||
nome di funzione.
|
||||
@@ -129,9 +127,8 @@ della shell o sospendere
|
||||
.B Vim.
|
||||
Si pu<70> chiedere la stessa cosa anche con l'argomento "\-Z".
|
||||
.SH OPZIONI
|
||||
Le opzioni possono essere in un ordine qualsiasi, prima o dopo i nomi di
|
||||
file. Opzioni che non necessitano un argomento possono essere specificate
|
||||
dietro a un solo "\-".
|
||||
Le opzioni possono essere in un ordine qualsiasi, prima o dopo i nomi di file.
|
||||
Opzioni che non hanno un argomento si possono specificare dietro a un solo "\-".
|
||||
.TP 12
|
||||
+[numero]
|
||||
Per il primo file il cursore sar<61> posizionato sulla linea "numero".
|
||||
@@ -145,8 +142,7 @@ Vedere ":help search\-pattern" per come specificare l'espressione.
|
||||
+{comando}
|
||||
.TP
|
||||
\-c {comando}
|
||||
{comando} sar<61> eseguito dopo che il
|
||||
primo file <20> stato letto.
|
||||
{comando} sar<61> eseguito dopo che il primo file <20> stato letto.
|
||||
{comando} <20> interpretato come un comando Ex.
|
||||
Se il {comando} contiene spazi deve essere incluso fra doppi apici
|
||||
(o altro delimitatore, a seconda della shell che si sta usando).
|
||||
@@ -164,14 +160,13 @@ argomento specificato).
|
||||
\-\-cmd {comando}
|
||||
Come "\-c", ma il comando <20> eseguito PRIMA
|
||||
di eseguire qualsiasi file vimrc.
|
||||
Si possono usare fino a 10 di questi comandi, indipendentemente dai comandi
|
||||
"\-c".
|
||||
Si possono usare fino a 10 di questi comandi, indipendentemente dai comandi "\-c".
|
||||
.TP
|
||||
\-A
|
||||
Se
|
||||
.B Vim
|
||||
<EFBFBD> stato compilato con supporto Arabic per editare file con orientamento
|
||||
destra-sinistra e tastiera con mappatura Araba, questa opzione inizia
|
||||
<EFBFBD> stato compilato con supporto ARABIC per editare file con orientamento
|
||||
destra-sinistra e tastiera con mappatura araba, questa opzione inizia
|
||||
.B Vim
|
||||
in Modo Arabic, cio<69> impostando 'arabic'.
|
||||
Altrimenti viene dato un messaggio di errore e
|
||||
@@ -187,8 +182,7 @@ binario o un programma eseguibile.
|
||||
Compatibile. Imposta l'opzione 'compatible'.
|
||||
In questo modo
|
||||
.B Vim
|
||||
ha quasi lo stesso comportamento di Vi, anche in presenza di un file
|
||||
di configurazione .vimrc [proprio di Vim, vi usa .exrc \- Ndt].
|
||||
ha quasi lo stesso comportamento di Vi, anche in presenza di un file .vimrc.
|
||||
.TP
|
||||
\-d
|
||||
Inizia in Modo Diff [differenze].
|
||||
@@ -274,7 +268,8 @@ termina in modo anormale.
|
||||
\-i {viminfo}
|
||||
Se <20> abilitato l'uso di un file viminfo, questa opzione indica il nome
|
||||
del file da usare invece di quello predefinito "~/.viminfo".
|
||||
Si pu<70> anche evitare l'uso di un file .viminfo, dando come nome "NONE".
|
||||
Si pu<70> anche evitare l'uso di un file .viminfo, dando come nome
|
||||
"NONE".
|
||||
.TP
|
||||
\-L
|
||||
Equivalente a \-r.
|
||||
@@ -285,8 +280,8 @@ Imposta le opzioni 'lisp' e 'showmatch'.
|
||||
.TP
|
||||
\-m
|
||||
Inibisce modifica file.
|
||||
Annulla l'opzione 'write'.
|
||||
<EFBFBD> ancora possibile modificare un buffer [in memoria \- Ndt], ma non scriverlo.
|
||||
Inibisce l'opzione 'write'.
|
||||
<EFBFBD> ancora possibile modificare un buffer, ma non riscriverlo.
|
||||
.TP
|
||||
\-M
|
||||
Modifiche non permesse. Le opzioni 'modifiable' e 'write' sono annullate,
|
||||
@@ -318,19 +313,23 @@ Se N manca, apri una finestra per ciascun file.
|
||||
Apri N finestre, in verticale.
|
||||
Se N manca, apri una finestra per ciascun file.
|
||||
.TP
|
||||
\-p[N]
|
||||
Apri N pagine di linguette.
|
||||
Quando N <20> omesso, apri una pagine di linguette per ciascun file.
|
||||
.TP
|
||||
\-R
|
||||
Modo Read-only (Sola Lettura).
|
||||
Imposta l'opzione 'readonly'.
|
||||
Si pu<70> ancora modificare il buffer, ma siete protetti da una riscrittura
|
||||
Si pu<70> ancora modificare il buffer, ma il file <20> protetto da una riscrittura
|
||||
involontaria.
|
||||
Se volete davvero riscrivere il file, aggiungete un punto esclamativo
|
||||
Se si vuole davvero riscrivere il file, occorre aggiungere un punto esclamativo
|
||||
al comando Ex, come in ":w!".
|
||||
L'opzione \-R implica anche l'opzione \-n (vedere sotto).
|
||||
L'opzione 'readonly' pu<70> essere annullata con ":set noro".
|
||||
Vedere ":help 'readonly'".
|
||||
.TP
|
||||
\-r
|
||||
Lista file di swap, assieme a dati utili per un recupero.
|
||||
Lista file di swap, e informazioni su come usarli per ripristinare file.
|
||||
.TP
|
||||
\-r {file}
|
||||
Modo Recovery (ripristino).
|
||||
@@ -345,10 +344,10 @@ Modo silenzioso. Solo quando invocato come "Ex" o quando l'opzione
|
||||
.TP
|
||||
\-s {scriptin}
|
||||
Lo script file {scriptin} <20> letto.
|
||||
I caratteri nel file sono interpretati come se immessi da voi.
|
||||
Lo stesso si pu<70> ottenere col comando ":source! {scriptin}".
|
||||
I caratteri nel file sono interpretati come se immessi da terminale.
|
||||
Lo stesso risultato si pu<70> ottenere col comando ":source! {scriptin}".
|
||||
Se la fine del file di input viene raggiunta prima che Vim termini,
|
||||
l'ulteriore input viene preso dalla tastiera.
|
||||
l'ulteriore input verr<EFBFBD> preso dalla tastiera.
|
||||
.TP
|
||||
\-T {terminale}
|
||||
Dice a
|
||||
@@ -357,28 +356,25 @@ quale tipo di terminale state usando.
|
||||
Utile solo se il terminale non viene riconosciuto correttamente da Vim.
|
||||
Dovrebbe essere un terminale noto a
|
||||
.B Vim
|
||||
(internamente) o definito nel file termcap o terminfo.
|
||||
(internamente) o definito nei file termcap o terminfo.
|
||||
.TP
|
||||
\-u {vimrc}
|
||||
Usa i comandi nel file {vimrc} per inizializzazioni.
|
||||
Tutte le altre inizializzazioni non sono eseguite.
|
||||
Usate questa opzione per editare qualche file di tipo speciale.
|
||||
Pu<EFBFBD> anche essere usato per non fare alcuna inizializzazione dando
|
||||
come nome "NONE".
|
||||
Si possono anche omettere tutte le inizializzazioni dando come nome "NONE".
|
||||
Vedere ":help initialization" da vim per ulteriori dettagli.
|
||||
.TP
|
||||
\-U {gvimrc}
|
||||
Usa i comandi nel file {gvimrc} per inizializzazioni GUI.
|
||||
Tutte le altre inizializzazioni GUI non sono eseguite.
|
||||
Pu<EFBFBD> anche essere usata per non fare alcuna inizializzazione GUI dando
|
||||
come nome "NONE".
|
||||
Si possono anche omettere tutte le inizializzazioni GUI dando come nome "NONE".
|
||||
Vedere ":help gui-init" da vim per ulteriori dettagli.
|
||||
.TP
|
||||
\-V[N]
|
||||
Verboso. Vim manda messaggi relativi agli script file che esegue
|
||||
Verboso. Vim manda messaggi relativi ai file di script che esegue
|
||||
e quando legge o scrive un file viminfo. Il numero opzionale N <20> il valore
|
||||
dell'opzione 'verbose'.
|
||||
Il valore predefinito <20> 10.
|
||||
dell'opzione 'verbose'. Il valore predefinito <20> 10.
|
||||
.TP
|
||||
\-v
|
||||
Inizia
|
||||
@@ -388,7 +384,7 @@ effetto solo quando Vim viene invocato con il nome "ex".
|
||||
.TP
|
||||
\-w {scriptout}
|
||||
Ogni carattere immesso viene registrato nel file {scriptout},
|
||||
finch<EFBFBD> non uscite da
|
||||
finch<EFBFBD> non si esce da
|
||||
.B Vim.
|
||||
Utile se si vuole creare uno script file da usare con "vim \-s" o
|
||||
":source!".
|
||||
@@ -398,40 +394,41 @@ Se il file {scriptout} esiste, quel che immettete viene aggiunto in fondo.
|
||||
Come \-w, ma uno script file esistente viene sovrascritto.
|
||||
.TP
|
||||
\-x
|
||||
Uso di cifratura nella scrittura dei file. E' necessario immettere
|
||||
una chiave di cifratura.
|
||||
Uso di cifratura nella scrittura dei file. Verr<EFBFBD> chiesta una chiave di cifratura.
|
||||
.TP
|
||||
\-X
|
||||
Non connetterti al server X. Vim parte pi<70> rapidamente,
|
||||
ma il titolo della finestra e la clipboard non sono disponibili.
|
||||
Non connettersi al server X. Vim parte pi<70> rapidamente,
|
||||
ma il titolo della finestra e la clipboard non sono usati.
|
||||
.TP
|
||||
\-y
|
||||
Eseguire
|
||||
.B Vim
|
||||
in Modo Easy (semplificata), come se l'eseguibile invocato
|
||||
sia "evim" o "eview".
|
||||
in Modo Easy (semplificato), come se l'eseguibile invocato sia "evim" o "eview".
|
||||
Fa s<> che
|
||||
.B Vim
|
||||
si comporti come un editor che usa solo il mouse e i caratteri.
|
||||
.TP
|
||||
\-Z
|
||||
Modo ristretto. Vim si comporta come se invocato con un nome
|
||||
che inizia per "r".
|
||||
Modo ristretto. Vim si comporta come se invocato con un nome che inizia per "r".
|
||||
.TP
|
||||
\-\-
|
||||
Specifica la fine delle opzioni.
|
||||
Argomenti specificati dopo questo sono considerati nomi file.
|
||||
Si pu<70> usare per editare un file il cui nome inizi per '-'.
|
||||
.TP
|
||||
\-\-clean
|
||||
Richiede di non usare alcun file di personalizzazione (vimrc, plugin, etc.).
|
||||
Utile per verificare se un problema persiste invocando Vim "originale".
|
||||
.TP
|
||||
\-\-echo\-wid
|
||||
Solo con GUI GTK: Visualizza Window ID su "stdout".
|
||||
Solo per GUI GTK: Visualizza Window ID su "stdout".
|
||||
.TP
|
||||
\-\-help
|
||||
Vim d<> un messaggio ed esce, come con l'argomento "\-h".
|
||||
.TP
|
||||
\-\-literal
|
||||
Considera i nomi passati come argomenti letterali, senza espandere
|
||||
metacaratteri. Non necessario in Unix, la shell espande i metacaratteri.
|
||||
Considera i nomi passati come argomenti letterali, senza espandere metacaratteri.
|
||||
Non ha effetto in Unix, dove la shell espande comunque i metacaratteri.
|
||||
.TP
|
||||
\-\-noplugin
|
||||
Non caricare plugin. Implicito se si specifica \-u NONE.
|
||||
@@ -442,8 +439,7 @@ argomenti. Se non si trova un server viene dato un messaggio e i file sono
|
||||
editati nel Vim corrente.
|
||||
.TP
|
||||
\-\-remote\-expr {expr}
|
||||
Connettersi a un server Vim, valutare ivi {expr} e stampare il risultato
|
||||
su "stdout".
|
||||
Connettersi a un server Vim, valutare {expr} e stampare il risultato su "stdout".
|
||||
.TP
|
||||
\-\-remote\-send {chiavi}
|
||||
Connettersi a un server Vim e spedirgli {chiavi}.
|
||||
@@ -458,16 +454,17 @@ Come \-\-remote, ma Vim non termina finch
|
||||
Come \-\-remote\-wait, ma senza avvisare se non si trova un server.
|
||||
.TP
|
||||
\-\-serverlist
|
||||
Lista i nomi di tutti i server Vim disponibili.
|
||||
Elenca i nomi di tutti i server Vim disponibili.
|
||||
.TP
|
||||
\-\-servername {nome}
|
||||
Usa {nome} come nome server. Usato per il Vim corrente, a meno che sia
|
||||
usato con l'argomento \-\-remote, nel qual caso indica il server a cui
|
||||
connettersi.
|
||||
Usa {nome} come nome server. Usato per il Vim corrente, a meno che sia usato
|
||||
con l'argomento \-\-remote, nel qual caso indica il server a cui connettersi.
|
||||
.TP
|
||||
\-\-socketid {id}
|
||||
Solo con GUI GTK: Usa il meccanismo GtkPlug per eseguire gvim in un'altra
|
||||
finestra.
|
||||
Solo per GUI GTK: Usa meccanismo GtkPlug per eseguire gvim in un'altra finestra.
|
||||
.TP
|
||||
\-\-startuptime {nome_file}
|
||||
Durante la fase iniziale, scrive messaggi di log al file {nome_file}.
|
||||
.TP
|
||||
\-\-version
|
||||
Stampa la versione di Vim ed esci.
|
||||
@@ -477,9 +474,8 @@ Battere ":help" in
|
||||
per iniziare.
|
||||
Battere ":help argomento" per ricevere aiuto su uno specifico argomento.
|
||||
Per esempio: ":help ZZ" per ricevere aiuto sul comando "ZZ".
|
||||
Usare <Tab> e CTRL\-D per completare gli argomenti
|
||||
(":help cmdline\-completion").
|
||||
Ci sono "tag" nei file di help per saltare da un argomento a un altro
|
||||
Usare <Tab> e CTRL\-D per completare gli argomenti (":help cmdline\-completion").
|
||||
Ci sono "tag" nei file di help per passare da un argomento a un altro
|
||||
(simili a legami ipertestuali, vedere ":help").
|
||||
Tutti i file di documentazione possono essere navigati cos<6F>. Ad es.:
|
||||
":help syntax.txt".
|
||||
@@ -489,7 +485,7 @@ Tutti i file di documentazione possono essere navigati cos
|
||||
I file di documentazione di
|
||||
.B Vim
|
||||
.
|
||||
Usate ":help doc\-file\-list" per avere la lista completa.
|
||||
Usare ":help doc\-file\-list" per avere la lista completa.
|
||||
.TP
|
||||
/usr/local/lib/vim/doc/tags
|
||||
Il file di tags usato per trovare informazioni nei file di documentazione.
|
||||
@@ -506,7 +502,7 @@ Inizializzazioni
|
||||
a livello di sistema.
|
||||
.TP
|
||||
~/.vimrc
|
||||
Le vostre personali inizializzazioni di
|
||||
Inizializzazioni personali di
|
||||
.B Vim
|
||||
.
|
||||
.TP
|
||||
@@ -514,11 +510,10 @@ Le vostre personali inizializzazioni di
|
||||
Inizializzazioni gvim a livello di sistema.
|
||||
.TP
|
||||
~/.gvimrc
|
||||
Le vostre personali inizializzazioni di gvim.
|
||||
Inizializzazioni personali di
|
||||
.TP
|
||||
/usr/local/lib/vim/optwin.vim
|
||||
Script Vim usato dal comando ":options", un modo semplice
|
||||
per visualizzare e impostare opzioni.
|
||||
Script Vim usato dal comando ":options", da usare per visualizzare e impostare opzioni.
|
||||
.TP
|
||||
/usr/local/lib/vim/menu.vim
|
||||
Inizializzazioni del men<65> gvim a livello di sistema.
|
||||
@@ -527,12 +522,10 @@ Inizializzazioni del men
|
||||
Script Vim per generare una segnalazione di errore. Vedere ":help bugs".
|
||||
.TP
|
||||
/usr/local/lib/vim/filetype.vim
|
||||
Script Vim per determinare il tipo di un file a partire dal suo nome.
|
||||
Vedere ":help 'filetype'".
|
||||
Script Vim per determinare il tipo di un file dal suo nome. Vedere ":help 'filetype'".
|
||||
.TP
|
||||
/usr/local/lib/vim/scripts.vim
|
||||
Script Vim per determinare il tipo di un file a partire dal suo contenuto.
|
||||
Vedere ":help 'filetype'".
|
||||
Script Vim per determinare il tipo di un file dal suo contenuto. Vedere ":help 'filetype'".
|
||||
.TP
|
||||
/usr/local/lib/vim/print/*.ps
|
||||
File usati per stampa PostScript.
|
||||
@@ -545,7 +538,7 @@ vimtutor(1)
|
||||
.SH AUTORE
|
||||
Buona parte di
|
||||
.B Vim
|
||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da parte di altri.
|
||||
Vedere ":help credits" in
|
||||
.B Vim.
|
||||
.br
|
||||
@@ -557,10 +550,9 @@ In verit
|
||||
Probabili.
|
||||
Vedere ":help todo" per una lista di problemi noti.
|
||||
.PP
|
||||
Si noti che un certo numero di comportamenti che possono essere considerati
|
||||
errori da qualcuno, sono in effetti causati da una riproduzione fin troppo
|
||||
fedele del comportamento di Vi.
|
||||
Se ritenete che altre cose siano errori "perch<63> Vi si comporta diversamente",
|
||||
date prima un'occhiata al file vi_diff.txt
|
||||
(o battere :help vi_diff.txt da Vim).
|
||||
Date anche un'occhiata alle opzioni 'compatible' e 'cpoptions.
|
||||
Si noti che un certo numero di comportamenti che possono essere considerati errori
|
||||
da qualcuno, sono in effetti causati da una riproduzione fin troppo fedele del
|
||||
comportamento di Vi. Se si ritiene che altre cose siano errori "perch<63> Vi si comporta
|
||||
diversamente", si dia prima un'occhiata al file vi_diff.txt (o si immetta
|
||||
:help vi_diff.txt da Vim).
|
||||
Un'occhiata va data anche alle opzioni 'compatible' e 'cpoptions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH VIM 1 "22 febbraio 2002"
|
||||
.TH VIM 1 "13 giugno 2022"
|
||||
.SH NOME
|
||||
vim \- VI Migliorato, un editor di testi per programmatori
|
||||
.SH SINTASSI
|
||||
@@ -35,17 +35,17 @@ Un editore di testi, compatibile con, e migliore di, Vi.
|
||||
Può essere usato per editare qualsiasi file di testo.
|
||||
Particolarmente utile per editare programmi.
|
||||
.PP
|
||||
Ci sono parecchi miglioramenti rispetto a Vi: undo multipli,
|
||||
finestre e buffer multipli, evidenziazione sintattica, possibilità
|
||||
di modificare la linea di comando, completamento nomi file, help
|
||||
in linea, selezione testi in Modo Visual, etc..
|
||||
Ci sono parecchi miglioramenti rispetto a Vi: undo multipli, finestre e buffer
|
||||
multipli, evidenziazione sintattica, possibilità di modificare la riga di comando,
|
||||
completamento nomi file, help in linea, selezione testi in Modo Visual, etc..
|
||||
Vedere ":help vi_diff.txt" per un sommario delle differenze fra
|
||||
.B Vim
|
||||
e Vi.
|
||||
.PP
|
||||
Mentre usate
|
||||
.B Vim
|
||||
potete ricevere molto aiuto dal sistema di help online, col comando ":help".
|
||||
potete ricevere molto aiuto dal sistema di help online, col comando
|
||||
":help".
|
||||
Vedere qui sotto la sezione AIUTO ONLINE.
|
||||
.PP
|
||||
Quasi sempre
|
||||
@@ -69,18 +69,16 @@ Una lista di nomi di file.
|
||||
Il primo di questi sarà il file corrente, e verrà letto nel buffer.
|
||||
Il cursore sarà posizionato sulla prima linea del buffer.
|
||||
Potete arrivare agli altri file col comando ":next".
|
||||
Per editare un file il cui nome inizia per "\-" premettete "\-\-" alla
|
||||
lista_file.
|
||||
Per editare un file il cui nome inizia per "\-" premettete "\-\-" alla lista_file.
|
||||
.TP
|
||||
\-
|
||||
Il file da editare è letto dallo "stdin" [di solito, ma non
|
||||
necessariamente, il terminale \- NdT]. I comandi sono letti da "stderr",
|
||||
che dovrebbe essere un terminale [tty].
|
||||
Il file da editare è letto dallo "stdin"-
|
||||
I comandi sono letti da "stderr", che dovrebbe essere un terminale [tty].
|
||||
.TP
|
||||
\-t {tag}
|
||||
Il file da editare e la posizione iniziale del cursore dipendono da "tag",
|
||||
una specie di "etichetta" a cui saltare.
|
||||
{tag} viene cercata nel file "tags", ed il file ad essa associato diventa
|
||||
{tag} viene cercata nel file "tags", e il file a essa associato diventa
|
||||
quello corrente, ed il comando ad essa associato viene eseguito.
|
||||
Di solito si usa per programmi C, nel qual caso {tag} potrebbe essere un
|
||||
nome di funzione.
|
||||
@@ -129,9 +127,8 @@ della shell o sospendere
|
||||
.B Vim.
|
||||
Si può chiedere la stessa cosa anche con l'argomento "\-Z".
|
||||
.SH OPZIONI
|
||||
Le opzioni possono essere in un ordine qualsiasi, prima o dopo i nomi di
|
||||
file. Opzioni che non necessitano un argomento possono essere specificate
|
||||
dietro a un solo "\-".
|
||||
Le opzioni possono essere in un ordine qualsiasi, prima o dopo i nomi di file.
|
||||
Opzioni che non hanno un argomento si possono specificare dietro a un solo "\-".
|
||||
.TP 12
|
||||
+[numero]
|
||||
Per il primo file il cursore sarà posizionato sulla linea "numero".
|
||||
@@ -145,8 +142,7 @@ Vedere ":help search\-pattern" per come specificare l'espressione.
|
||||
+{comando}
|
||||
.TP
|
||||
\-c {comando}
|
||||
{comando} sarà eseguito dopo che il
|
||||
primo file è stato letto.
|
||||
{comando} sarà eseguito dopo che il primo file è stato letto.
|
||||
{comando} è interpretato come un comando Ex.
|
||||
Se il {comando} contiene spazi deve essere incluso fra doppi apici
|
||||
(o altro delimitatore, a seconda della shell che si sta usando).
|
||||
@@ -164,14 +160,13 @@ argomento specificato).
|
||||
\-\-cmd {comando}
|
||||
Come "\-c", ma il comando è eseguito PRIMA
|
||||
di eseguire qualsiasi file vimrc.
|
||||
Si possono usare fino a 10 di questi comandi, indipendentemente dai comandi
|
||||
"\-c".
|
||||
Si possono usare fino a 10 di questi comandi, indipendentemente dai comandi "\-c".
|
||||
.TP
|
||||
\-A
|
||||
Se
|
||||
.B Vim
|
||||
è stato compilato con supporto Arabic per editare file con orientamento
|
||||
destra-sinistra e tastiera con mappatura Araba, questa opzione inizia
|
||||
è stato compilato con supporto ARABIC per editare file con orientamento
|
||||
destra-sinistra e tastiera con mappatura araba, questa opzione inizia
|
||||
.B Vim
|
||||
in Modo Arabic, cioè impostando 'arabic'.
|
||||
Altrimenti viene dato un messaggio di errore e
|
||||
@@ -187,8 +182,7 @@ binario o un programma eseguibile.
|
||||
Compatibile. Imposta l'opzione 'compatible'.
|
||||
In questo modo
|
||||
.B Vim
|
||||
ha quasi lo stesso comportamento di Vi, anche in presenza di un file
|
||||
di configurazione .vimrc [proprio di Vim, vi usa .exrc \- Ndt].
|
||||
ha quasi lo stesso comportamento di Vi, anche in presenza di un file .vimrc.
|
||||
.TP
|
||||
\-d
|
||||
Inizia in Modo Diff [differenze].
|
||||
@@ -274,7 +268,8 @@ termina in modo anormale.
|
||||
\-i {viminfo}
|
||||
Se è abilitato l'uso di un file viminfo, questa opzione indica il nome
|
||||
del file da usare invece di quello predefinito "~/.viminfo".
|
||||
Si può anche evitare l'uso di un file .viminfo, dando come nome "NONE".
|
||||
Si può anche evitare l'uso di un file .viminfo, dando come nome
|
||||
"NONE".
|
||||
.TP
|
||||
\-L
|
||||
Equivalente a \-r.
|
||||
@@ -285,8 +280,8 @@ Imposta le opzioni 'lisp' e 'showmatch'.
|
||||
.TP
|
||||
\-m
|
||||
Inibisce modifica file.
|
||||
Annulla l'opzione 'write'.
|
||||
È ancora possibile modificare un buffer [in memoria \- Ndt], ma non scriverlo.
|
||||
Inibisce l'opzione 'write'.
|
||||
È ancora possibile modificare un buffer, ma non riscriverlo.
|
||||
.TP
|
||||
\-M
|
||||
Modifiche non permesse. Le opzioni 'modifiable' e 'write' sono annullate,
|
||||
@@ -318,19 +313,23 @@ Se N manca, apri una finestra per ciascun file.
|
||||
Apri N finestre, in verticale.
|
||||
Se N manca, apri una finestra per ciascun file.
|
||||
.TP
|
||||
\-p[N]
|
||||
Apri N pagine di linguette.
|
||||
Quando N è omesso, apri una pagine di linguette per ciascun file.
|
||||
.TP
|
||||
\-R
|
||||
Modo Read-only (Sola Lettura).
|
||||
Imposta l'opzione 'readonly'.
|
||||
Si può ancora modificare il buffer, ma siete protetti da una riscrittura
|
||||
Si può ancora modificare il buffer, ma il file è protetto da una riscrittura
|
||||
involontaria.
|
||||
Se volete davvero riscrivere il file, aggiungete un punto esclamativo
|
||||
Se si vuole davvero riscrivere il file, occorre aggiungere un punto esclamativo
|
||||
al comando Ex, come in ":w!".
|
||||
L'opzione \-R implica anche l'opzione \-n (vedere sotto).
|
||||
L'opzione 'readonly' può essere annullata con ":set noro".
|
||||
Vedere ":help 'readonly'".
|
||||
.TP
|
||||
\-r
|
||||
Lista file di swap, assieme a dati utili per un recupero.
|
||||
Lista file di swap, e informazioni su come usarli per ripristinare file.
|
||||
.TP
|
||||
\-r {file}
|
||||
Modo Recovery (ripristino).
|
||||
@@ -345,10 +344,10 @@ Modo silenzioso. Solo quando invocato come "Ex" o quando l'opzione
|
||||
.TP
|
||||
\-s {scriptin}
|
||||
Lo script file {scriptin} è letto.
|
||||
I caratteri nel file sono interpretati come se immessi da voi.
|
||||
Lo stesso si può ottenere col comando ":source! {scriptin}".
|
||||
I caratteri nel file sono interpretati come se immessi da terminale.
|
||||
Lo stesso risultato si può ottenere col comando ":source! {scriptin}".
|
||||
Se la fine del file di input viene raggiunta prima che Vim termini,
|
||||
l'ulteriore input viene preso dalla tastiera.
|
||||
l'ulteriore input verrà preso dalla tastiera.
|
||||
.TP
|
||||
\-T {terminale}
|
||||
Dice a
|
||||
@@ -357,28 +356,25 @@ quale tipo di terminale state usando.
|
||||
Utile solo se il terminale non viene riconosciuto correttamente da Vim.
|
||||
Dovrebbe essere un terminale noto a
|
||||
.B Vim
|
||||
(internamente) o definito nel file termcap o terminfo.
|
||||
(internamente) o definito nei file termcap o terminfo.
|
||||
.TP
|
||||
\-u {vimrc}
|
||||
Usa i comandi nel file {vimrc} per inizializzazioni.
|
||||
Tutte le altre inizializzazioni non sono eseguite.
|
||||
Usate questa opzione per editare qualche file di tipo speciale.
|
||||
Può anche essere usato per non fare alcuna inizializzazione dando
|
||||
come nome "NONE".
|
||||
Si possono anche omettere tutte le inizializzazioni dando come nome "NONE".
|
||||
Vedere ":help initialization" da vim per ulteriori dettagli.
|
||||
.TP
|
||||
\-U {gvimrc}
|
||||
Usa i comandi nel file {gvimrc} per inizializzazioni GUI.
|
||||
Tutte le altre inizializzazioni GUI non sono eseguite.
|
||||
Può anche essere usata per non fare alcuna inizializzazione GUI dando
|
||||
come nome "NONE".
|
||||
Si possono anche omettere tutte le inizializzazioni GUI dando come nome "NONE".
|
||||
Vedere ":help gui-init" da vim per ulteriori dettagli.
|
||||
.TP
|
||||
\-V[N]
|
||||
Verboso. Vim manda messaggi relativi agli script file che esegue
|
||||
Verboso. Vim manda messaggi relativi ai file di script che esegue
|
||||
e quando legge o scrive un file viminfo. Il numero opzionale N è il valore
|
||||
dell'opzione 'verbose'.
|
||||
Il valore predefinito è 10.
|
||||
dell'opzione 'verbose'. Il valore predefinito è 10.
|
||||
.TP
|
||||
\-v
|
||||
Inizia
|
||||
@@ -388,7 +384,7 @@ effetto solo quando Vim viene invocato con il nome "ex".
|
||||
.TP
|
||||
\-w {scriptout}
|
||||
Ogni carattere immesso viene registrato nel file {scriptout},
|
||||
finché non uscite da
|
||||
finché non si esce da
|
||||
.B Vim.
|
||||
Utile se si vuole creare uno script file da usare con "vim \-s" o
|
||||
":source!".
|
||||
@@ -398,40 +394,41 @@ Se il file {scriptout} esiste, quel che immettete viene aggiunto in fondo.
|
||||
Come \-w, ma uno script file esistente viene sovrascritto.
|
||||
.TP
|
||||
\-x
|
||||
Uso di cifratura nella scrittura dei file. E' necessario immettere
|
||||
una chiave di cifratura.
|
||||
Uso di cifratura nella scrittura dei file. Verrà chiesta una chiave di cifratura.
|
||||
.TP
|
||||
\-X
|
||||
Non connetterti al server X. Vim parte più rapidamente,
|
||||
ma il titolo della finestra e la clipboard non sono disponibili.
|
||||
Non connettersi al server X. Vim parte più rapidamente,
|
||||
ma il titolo della finestra e la clipboard non sono usati.
|
||||
.TP
|
||||
\-y
|
||||
Eseguire
|
||||
.B Vim
|
||||
in Modo Easy (semplificata), come se l'eseguibile invocato
|
||||
sia "evim" o "eview".
|
||||
in Modo Easy (semplificato), come se l'eseguibile invocato sia "evim" o "eview".
|
||||
Fa sì che
|
||||
.B Vim
|
||||
si comporti come un editor che usa solo il mouse e i caratteri.
|
||||
.TP
|
||||
\-Z
|
||||
Modo ristretto. Vim si comporta come se invocato con un nome
|
||||
che inizia per "r".
|
||||
Modo ristretto. Vim si comporta come se invocato con un nome che inizia per "r".
|
||||
.TP
|
||||
\-\-
|
||||
Specifica la fine delle opzioni.
|
||||
Argomenti specificati dopo questo sono considerati nomi file.
|
||||
Si può usare per editare un file il cui nome inizi per '-'.
|
||||
.TP
|
||||
\-\-clean
|
||||
Richiede di non usare alcun file di personalizzazione (vimrc, plugin, etc.).
|
||||
Utile per verificare se un problema persiste invocando Vim "originale".
|
||||
.TP
|
||||
\-\-echo\-wid
|
||||
Solo con GUI GTK: Visualizza Window ID su "stdout".
|
||||
Solo per GUI GTK: Visualizza Window ID su "stdout".
|
||||
.TP
|
||||
\-\-help
|
||||
Vim dà un messaggio ed esce, come con l'argomento "\-h".
|
||||
.TP
|
||||
\-\-literal
|
||||
Considera i nomi passati come argomenti letterali, senza espandere
|
||||
metacaratteri. Non necessario in Unix, la shell espande i metacaratteri.
|
||||
Considera i nomi passati come argomenti letterali, senza espandere metacaratteri.
|
||||
Non ha effetto in Unix, dove la shell espande comunque i metacaratteri.
|
||||
.TP
|
||||
\-\-noplugin
|
||||
Non caricare plugin. Implicito se si specifica \-u NONE.
|
||||
@@ -442,8 +439,7 @@ argomenti. Se non si trova un server viene dato un messaggio e i file sono
|
||||
editati nel Vim corrente.
|
||||
.TP
|
||||
\-\-remote\-expr {expr}
|
||||
Connettersi a un server Vim, valutare ivi {expr} e stampare il risultato
|
||||
su "stdout".
|
||||
Connettersi a un server Vim, valutare {expr} e stampare il risultato su "stdout".
|
||||
.TP
|
||||
\-\-remote\-send {chiavi}
|
||||
Connettersi a un server Vim e spedirgli {chiavi}.
|
||||
@@ -458,16 +454,17 @@ Come \-\-remote, ma Vim non termina finché i file non sono stati editati.
|
||||
Come \-\-remote\-wait, ma senza avvisare se non si trova un server.
|
||||
.TP
|
||||
\-\-serverlist
|
||||
Lista i nomi di tutti i server Vim disponibili.
|
||||
Elenca i nomi di tutti i server Vim disponibili.
|
||||
.TP
|
||||
\-\-servername {nome}
|
||||
Usa {nome} come nome server. Usato per il Vim corrente, a meno che sia
|
||||
usato con l'argomento \-\-remote, nel qual caso indica il server a cui
|
||||
connettersi.
|
||||
Usa {nome} come nome server. Usato per il Vim corrente, a meno che sia usato
|
||||
con l'argomento \-\-remote, nel qual caso indica il server a cui connettersi.
|
||||
.TP
|
||||
\-\-socketid {id}
|
||||
Solo con GUI GTK: Usa il meccanismo GtkPlug per eseguire gvim in un'altra
|
||||
finestra.
|
||||
Solo per GUI GTK: Usa meccanismo GtkPlug per eseguire gvim in un'altra finestra.
|
||||
.TP
|
||||
\-\-startuptime {nome_file}
|
||||
Durante la fase iniziale, scrive messaggi di log al file {nome_file}.
|
||||
.TP
|
||||
\-\-version
|
||||
Stampa la versione di Vim ed esci.
|
||||
@@ -477,9 +474,8 @@ Battere ":help" in
|
||||
per iniziare.
|
||||
Battere ":help argomento" per ricevere aiuto su uno specifico argomento.
|
||||
Per esempio: ":help ZZ" per ricevere aiuto sul comando "ZZ".
|
||||
Usare <Tab> e CTRL\-D per completare gli argomenti
|
||||
(":help cmdline\-completion").
|
||||
Ci sono "tag" nei file di help per saltare da un argomento a un altro
|
||||
Usare <Tab> e CTRL\-D per completare gli argomenti (":help cmdline\-completion").
|
||||
Ci sono "tag" nei file di help per passare da un argomento a un altro
|
||||
(simili a legami ipertestuali, vedere ":help").
|
||||
Tutti i file di documentazione possono essere navigati così. Ad es.:
|
||||
":help syntax.txt".
|
||||
@@ -489,7 +485,7 @@ Tutti i file di documentazione possono essere navigati così. Ad es.:
|
||||
I file di documentazione di
|
||||
.B Vim
|
||||
.
|
||||
Usate ":help doc\-file\-list" per avere la lista completa.
|
||||
Usare ":help doc\-file\-list" per avere la lista completa.
|
||||
.TP
|
||||
/usr/local/lib/vim/doc/tags
|
||||
Il file di tags usato per trovare informazioni nei file di documentazione.
|
||||
@@ -506,7 +502,7 @@ Inizializzazioni
|
||||
a livello di sistema.
|
||||
.TP
|
||||
~/.vimrc
|
||||
Le vostre personali inizializzazioni di
|
||||
Inizializzazioni personali di
|
||||
.B Vim
|
||||
.
|
||||
.TP
|
||||
@@ -514,11 +510,10 @@ Le vostre personali inizializzazioni di
|
||||
Inizializzazioni gvim a livello di sistema.
|
||||
.TP
|
||||
~/.gvimrc
|
||||
Le vostre personali inizializzazioni di gvim.
|
||||
Inizializzazioni personali di
|
||||
.TP
|
||||
/usr/local/lib/vim/optwin.vim
|
||||
Script Vim usato dal comando ":options", un modo semplice
|
||||
per visualizzare e impostare opzioni.
|
||||
Script Vim usato dal comando ":options", da usare per visualizzare e impostare opzioni.
|
||||
.TP
|
||||
/usr/local/lib/vim/menu.vim
|
||||
Inizializzazioni del menù gvim a livello di sistema.
|
||||
@@ -527,12 +522,10 @@ Inizializzazioni del menù gvim a livello di sistema.
|
||||
Script Vim per generare una segnalazione di errore. Vedere ":help bugs".
|
||||
.TP
|
||||
/usr/local/lib/vim/filetype.vim
|
||||
Script Vim per determinare il tipo di un file a partire dal suo nome.
|
||||
Vedere ":help 'filetype'".
|
||||
Script Vim per determinare il tipo di un file dal suo nome. Vedere ":help 'filetype'".
|
||||
.TP
|
||||
/usr/local/lib/vim/scripts.vim
|
||||
Script Vim per determinare il tipo di un file a partire dal suo contenuto.
|
||||
Vedere ":help 'filetype'".
|
||||
Script Vim per determinare il tipo di un file dal suo contenuto. Vedere ":help 'filetype'".
|
||||
.TP
|
||||
/usr/local/lib/vim/print/*.ps
|
||||
File usati per stampa PostScript.
|
||||
@@ -545,7 +538,7 @@ vimtutor(1)
|
||||
.SH AUTORE
|
||||
Buona parte di
|
||||
.B Vim
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da parte di altri.
|
||||
Vedere ":help credits" in
|
||||
.B Vim.
|
||||
.br
|
||||
@@ -557,10 +550,9 @@ In verità, poco o nulla è rimasto del loro codice originale.
|
||||
Probabili.
|
||||
Vedere ":help todo" per una lista di problemi noti.
|
||||
.PP
|
||||
Si noti che un certo numero di comportamenti che possono essere considerati
|
||||
errori da qualcuno, sono in effetti causati da una riproduzione fin troppo
|
||||
fedele del comportamento di Vi.
|
||||
Se ritenete che altre cose siano errori "perché Vi si comporta diversamente",
|
||||
date prima un'occhiata al file vi_diff.txt
|
||||
(o battere :help vi_diff.txt da Vim).
|
||||
Date anche un'occhiata alle opzioni 'compatible' e 'cpoptions.
|
||||
Si noti che un certo numero di comportamenti che possono essere considerati errori
|
||||
da qualcuno, sono in effetti causati da una riproduzione fin troppo fedele del
|
||||
comportamento di Vi. Se si ritiene che altre cose siano errori "perché Vi si comporta
|
||||
diversamente", si dia prima un'occhiata al file vi_diff.txt (o si immetta
|
||||
:help vi_diff.txt da Vim).
|
||||
Un'occhiata va data anche alle opzioni 'compatible' e 'cpoptions.
|
||||
|
||||
@@ -1033,10 +1033,12 @@ In Vim9 script one can use the following predefined values: >
|
||||
null
|
||||
null_blob
|
||||
null_channel
|
||||
null_class
|
||||
null_dict
|
||||
null_function
|
||||
null_job
|
||||
null_list
|
||||
null_object
|
||||
null_partial
|
||||
null_string
|
||||
`true` is the same as `v:true`, `false` the same as `v:false`, `null` the same
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.0. Last change: 2023 Mar 22
|
||||
*vim9class.txt* For Vim version 9.0. Last change: 2023 Sep 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -11,7 +11,7 @@ Vim9 classes, objects, interfaces, types and enums.
|
||||
|
||||
1. Overview |Vim9-class-overview|
|
||||
2. A simple class |Vim9-simple-class|
|
||||
3. Class members and functions |Vim9-class-member|
|
||||
3. Class variables and methods |Vim9-class-member|
|
||||
4. Using an abstract class |Vim9-abstract-class|
|
||||
5. Using an interface |Vim9-using-interface|
|
||||
6. More class details |Vim9-class|
|
||||
@@ -139,11 +139,13 @@ changed at any time, you can make it public: >
|
||||
|
||||
Now you don't need the SetLnum(), SetCol() and SetPosition() methods, setting
|
||||
"pos.lnum" directly above will no longer give an error.
|
||||
*E1334*
|
||||
*E1326*
|
||||
If you try to set an object member that doesn't exist you get an error: >
|
||||
pos.other = 9
|
||||
< E1334: Object member not found: other ~
|
||||
< E1326: Member not found on object "TextPosition": other ~
|
||||
|
||||
*E1376*
|
||||
A object member cannot be accessed using the class name.
|
||||
|
||||
Private members ~
|
||||
*E1332* *E1333*
|
||||
@@ -176,8 +178,28 @@ number to the total number of lines: >
|
||||
endif
|
||||
return this._lnum
|
||||
enddef
|
||||
<
|
||||
Private methods ~
|
||||
*E1366*
|
||||
If you want object methods to be accessible only from other methods of the
|
||||
same class and not used from outside the class, then you can make them
|
||||
private. This is done by prefixing the method name with an underscore: >
|
||||
|
||||
class SomeClass
|
||||
def _Foo(): number
|
||||
return 10
|
||||
enddef
|
||||
def Bar(): number
|
||||
return this._Foo()
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
Accessing a private method outside the class will result in an error (using
|
||||
the above class): >
|
||||
|
||||
var a = SomeClass.new()
|
||||
a._Foo()
|
||||
<
|
||||
Simplifying the new() method ~
|
||||
|
||||
Many constructors take values for the object members. Thus you very often see
|
||||
@@ -232,13 +254,17 @@ If the class extends a parent class, the same thing happens. In the second
|
||||
step the members of the parent class are done first. There is no need to call
|
||||
"super()" or "new()" on the parent.
|
||||
|
||||
*E1365*
|
||||
When defining the new() method the return type should not be specified. It
|
||||
always returns an object of the class.
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. class members and functions *Vim9-class-member*
|
||||
3. Class Variables and Methods *Vim9-class-member*
|
||||
|
||||
*:static* *E1337* *E1338*
|
||||
*:static* *E1337* *E1338* *E1368*
|
||||
Class members are declared with "static". They are used by the name without a
|
||||
prefix: >
|
||||
prefix in the class where they are defined: >
|
||||
|
||||
class OtherThing
|
||||
this.size: number
|
||||
@@ -252,6 +278,10 @@ prefix: >
|
||||
Since the name is used as-is, shadowing the name by a function argument name
|
||||
or local variable name is not allowed.
|
||||
|
||||
*E1374* *E1375*
|
||||
To access a class member outside of the class where it is defined, the class
|
||||
name prefix must be used. A class member cannot be accessed using an object.
|
||||
|
||||
Just like object members the access can be made private by using an underscore
|
||||
as the first character in the name, and it can be made public by prefixing
|
||||
"public": >
|
||||
@@ -262,10 +292,11 @@ as the first character in the name, and it can be made public by prefixing
|
||||
public static result: number # anybody can read and write
|
||||
endclass
|
||||
<
|
||||
*class-function*
|
||||
Class functions are also declared with "static". They have no access to
|
||||
object members, they cannot use the "this" keyword. >
|
||||
|
||||
*class-method*
|
||||
Class methods are also declared with "static". They can use the class
|
||||
variables but they have no access to the object variables, they cannot use the
|
||||
"this" keyword.
|
||||
>
|
||||
class OtherThing
|
||||
this.size: number
|
||||
static totalSize: number
|
||||
@@ -278,8 +309,50 @@ object members, they cannot use the "this" keyword. >
|
||||
enddef
|
||||
endclass
|
||||
|
||||
Inside the class the function can be called by name directly, outside the
|
||||
class the class name must be prefixed: `OtherThing.ClearTotalSize()`.
|
||||
Inside the class the class method can be called by name directly, outside the
|
||||
class the class name must be prefixed: `OtherThing.ClearTotalSize()`. To use
|
||||
a super class method in a child class, the class name must be prefixed.
|
||||
|
||||
Just like object methods the access can be made private by using an underscore
|
||||
as the first character in the method name: >
|
||||
|
||||
class OtherThing
|
||||
static def _Foo()
|
||||
echo "Foo"
|
||||
enddef
|
||||
def Bar()
|
||||
_Foo()
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
*E1370*
|
||||
Note that constructors cannot be declared as "static", because they always
|
||||
are.
|
||||
|
||||
To access the class methods and class variables of a super class in an
|
||||
extended class, the class name prefix should be used just as from anywhere
|
||||
outside of the defining class: >
|
||||
|
||||
vim9script
|
||||
class Vehicle
|
||||
static nextID: number = 1000
|
||||
static def GetID(): number
|
||||
nextID += 1
|
||||
return nextID
|
||||
enddef
|
||||
endclass
|
||||
class Car extends Vehicle
|
||||
this.myID: number
|
||||
def new()
|
||||
this.myID = Vehicle.GetID()
|
||||
enddef
|
||||
endclass
|
||||
<
|
||||
Class variables and methods are not inherited by a child class. A child class
|
||||
can declare a static variable or a method with the same name as the one in the
|
||||
super class. Depending on the class where the member is used the
|
||||
corresponding class member will be used. The type of the class member in a
|
||||
child class can be different from that in the super class.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -319,6 +392,19 @@ class, for which objects can be created. Example: >
|
||||
An abstract class is defined the same way as a normal class, except that it
|
||||
does not have any new() method. *E1359*
|
||||
|
||||
*abstract-method* *E1371* *E1372*
|
||||
An abstract method can be defined in an abstract class by using the "abstract"
|
||||
prefix when defining the function: >
|
||||
|
||||
abstract class Shape
|
||||
abstract def Draw()
|
||||
abstract static def SetColor()
|
||||
endclass
|
||||
<
|
||||
*E1373*
|
||||
A class extending the abstract class must implement all the abstract methods.
|
||||
The signature (arguments, argument types and return type) must be exactly the
|
||||
same. Class methods in an abstract class can also be abstract methods.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -360,9 +446,10 @@ a number. This example extends the one above: >
|
||||
return this.base * this.height / 2
|
||||
enddef
|
||||
endclass
|
||||
|
||||
<
|
||||
*E1348* *E1349* *E1367* *E1382* *E1383*
|
||||
If a class declares to implement an interface, all the items specified in the
|
||||
interface must appear in the class, with the same types. *E1348* *E1349*
|
||||
interface must appear in the class, with the same types.
|
||||
|
||||
The interface name can be used as a type: >
|
||||
|
||||
@@ -373,7 +460,14 @@ The interface name can be used as a type: >
|
||||
for shape in shapes
|
||||
echo $'the surface is {shape.Surface()}'
|
||||
endfor
|
||||
<
|
||||
*E1378* *E1379* *E1380*
|
||||
An interface can have only instance variables (read-only and read-write
|
||||
access) and methods. An interface cannot contain private variables, private
|
||||
methods, class variables and class methods.
|
||||
|
||||
An interface can extend another interface using "extends". The sub-interface
|
||||
inherits all the instance variables and methods from the super interface.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -415,9 +509,18 @@ once. They can appear in any order, although this order is recommended: >
|
||||
extends ClassName
|
||||
implements InterfaceName, OtherInterface
|
||||
specifies SomeInterface
|
||||
< *E1355*
|
||||
< *E1355* *E1369*
|
||||
Each member and function name can be used only once. It is not possible to
|
||||
define a function with the same name and different type of arguments.
|
||||
define a function with the same name and different type of arguments. It is
|
||||
not possible to use a public and private member variable with the same name.
|
||||
A object variable name used in a super class cannot be reused in a child
|
||||
class.
|
||||
|
||||
|
||||
Member Initialization ~
|
||||
If the type of a member is not explicitly specified in a class, then it is set
|
||||
to "any" during class definition. When an object is instantiated from the
|
||||
class, then the type of the member is set.
|
||||
|
||||
|
||||
Extending a class ~
|
||||
@@ -436,6 +539,10 @@ Object methods of the base class can be overruled. The signature (arguments,
|
||||
argument types and return type) must be exactly the same. The method of the
|
||||
base class can be called by prefixing "super.".
|
||||
|
||||
*E1377*
|
||||
The access level of a method (public or private) in a child class should be
|
||||
the same as the super class.
|
||||
|
||||
Other object methods of the base class are taken over by the child class.
|
||||
|
||||
Class functions, including functions starting with "new", can be overruled,
|
||||
@@ -468,18 +575,26 @@ interface, which is often done in many languages, especially Java.
|
||||
|
||||
|
||||
Items in a class ~
|
||||
*E1318* *E1325* *E1326*
|
||||
*E1318* *E1325*
|
||||
Inside a class, in between `:class` and `:endclass`, these items can appear:
|
||||
- An object member declaration: >
|
||||
this._memberName: memberType
|
||||
this.memberName: memberType
|
||||
public this.memberName: memberType
|
||||
this._privateMemberName: memberType
|
||||
this.readonlyMemberName: memberType
|
||||
public this.readwriteMemberName: memberType
|
||||
- A class member declaration: >
|
||||
static this._privateMemberName: memberType
|
||||
static this.readonlyMemberName: memberType
|
||||
static public this.readwriteMemberName: memberType
|
||||
- A constructor method: >
|
||||
def new(arguments)
|
||||
def newName(arguments)
|
||||
- A class method: >
|
||||
static def SomeMethod(arguments)
|
||||
static def _PrivateMethod(arguments)
|
||||
- An object method: >
|
||||
def SomeMethod(arguments)
|
||||
< *E1329*
|
||||
def _PrivateMethod(arguments)
|
||||
|
||||
For the object member the type must be specified. The best way is to do this
|
||||
explicitly with ": {type}". For simple types you can also use an initializer,
|
||||
such as "= 123", and Vim will see that the type is a number. Avoid doing this
|
||||
@@ -518,6 +633,8 @@ An interface name must start with an uppercase letter. *E1343*
|
||||
The "Has" prefix can be used to make it easier to guess this is an interface
|
||||
name, with a hint about what it provides.
|
||||
An interface can only be defined in a |Vim9| script file. *E1342*
|
||||
An interface cannot "implement" another interface but it can "extend" another
|
||||
interface. *E1381*
|
||||
|
||||
|
||||
null object ~
|
||||
|
||||
@@ -1,48 +1,46 @@
|
||||
.TH VIMDIFF 1 "30 marzo 2001"
|
||||
.SH NOME
|
||||
vimdiff \- modifica due, tre o quattro versioni di un file con Vim,
|
||||
visualizzando le differenze
|
||||
vimdiff \- modifica da due, fino a otto versioni di un file con Vim, visualizzando le differenze
|
||||
.SH SINTASSI
|
||||
.br
|
||||
.B vimdiff
|
||||
[opzioni] file1 file2 [file3 [file4]]
|
||||
[opzioni] file1 file2 [file3 [file4 [file5 [file6 [file7 [file8]]]]]]
|
||||
.PP
|
||||
.B gvimdiff
|
||||
.SH DESCRIZIONE
|
||||
.B Vimdiff
|
||||
inizia
|
||||
.B Vim
|
||||
per due (o tre o quattro) file.
|
||||
per due e fino a otto file.
|
||||
Ogni file ha una sua finestra.
|
||||
Le differenze fra file sono evidenziate.
|
||||
<EFBFBD> una maniera elegante per controllare modifiche e portare modifiche
|
||||
verso un'altra versione dello stesso file.
|
||||
<EFBFBD> una maniera elegante per controllare modifiche e applicare modifiche
|
||||
a qualche altra versione dello stesso file.
|
||||
.PP
|
||||
Vedere vim(1) per dettagli su Vim in generale.
|
||||
Vedere vim(1) per dettagli su Vim in s<EFBFBD>.
|
||||
.PP
|
||||
Se iniziato con
|
||||
.B gvimdiff
|
||||
la GUI sar<61> utilizzata, se disponibile.
|
||||
.PP
|
||||
In ogni finestra l'opzione 'diff' <20> impostata, evidenziando cos<6F> le
|
||||
differenze.
|
||||
In ogni finestra l'opzione 'diff' <20> impostata, in modo da evidenziare le
|
||||
differenze fra le versioni
|
||||
.br
|
||||
Le opzioni 'wrap' e 'scrollbind' sono impostate per migliorare la
|
||||
visibilit<EFBFBD> del testo.
|
||||
Le opzioni 'wrap' e 'scrollbind' sono impostate per favorire la visibilit<69> del testo.
|
||||
.br
|
||||
L'opzione 'foldmethod' <20> impostata al valore "diff", che mette gruppi di
|
||||
L'opzione 'foldmethod' <20> impostata al valore "diff", che mette i gruppi di
|
||||
linee uguali fra i diversi file in una piegatura. 'foldcolumn' <20> impostato
|
||||
a due per poter facilmente visualizzare le piegature, aprirle e chiuderle.
|
||||
.SH OPZIONI
|
||||
Lo schermo <20> diviso verticalmente, come se aveste usato l'opzione "\-O".
|
||||
Per dividerlo orizzontalmente, usare l'opzione "\-o".
|
||||
Lo schermo <20> diviso verticalmente, come quando si usa l'opzione "\-O".
|
||||
Per dividerlo orizzontalmente, usare invece l'opzione "\-o".
|
||||
.PP
|
||||
Per tutte le altre opzioni, vedere vim(1).
|
||||
Per tutti gli altri argomenti, vedere vim(1).
|
||||
.SH VEDERE ANCHE
|
||||
vim(1)
|
||||
.SH AUTORE
|
||||
Buona parte di
|
||||
.B Vim
|
||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da parte di altri.
|
||||
Vedere ":help credits" in
|
||||
.B Vim.
|
||||
|
||||
@@ -1,48 +1,46 @@
|
||||
.TH VIMDIFF 1 "30 marzo 2001"
|
||||
.SH NOME
|
||||
vimdiff \- modifica due, tre o quattro versioni di un file con Vim,
|
||||
visualizzando le differenze
|
||||
vimdiff \- modifica da due, fino a otto versioni di un file con Vim, visualizzando le differenze
|
||||
.SH SINTASSI
|
||||
.br
|
||||
.B vimdiff
|
||||
[opzioni] file1 file2 [file3 [file4]]
|
||||
[opzioni] file1 file2 [file3 [file4 [file5 [file6 [file7 [file8]]]]]]
|
||||
.PP
|
||||
.B gvimdiff
|
||||
.SH DESCRIZIONE
|
||||
.B Vimdiff
|
||||
inizia
|
||||
.B Vim
|
||||
per due (o tre o quattro) file.
|
||||
per due e fino a otto file.
|
||||
Ogni file ha una sua finestra.
|
||||
Le differenze fra file sono evidenziate.
|
||||
È una maniera elegante per controllare modifiche e portare modifiche
|
||||
verso un'altra versione dello stesso file.
|
||||
È una maniera elegante per controllare modifiche e applicare modifiche
|
||||
a qualche altra versione dello stesso file.
|
||||
.PP
|
||||
Vedere vim(1) per dettagli su Vim in generale.
|
||||
Vedere vim(1) per dettagli su Vim in sé.
|
||||
.PP
|
||||
Se iniziato con
|
||||
.B gvimdiff
|
||||
la GUI sarà utilizzata, se disponibile.
|
||||
.PP
|
||||
In ogni finestra l'opzione 'diff' è impostata, evidenziando così le
|
||||
differenze.
|
||||
In ogni finestra l'opzione 'diff' è impostata, in modo da evidenziare le
|
||||
differenze fra le versioni
|
||||
.br
|
||||
Le opzioni 'wrap' e 'scrollbind' sono impostate per migliorare la
|
||||
visibilità del testo.
|
||||
Le opzioni 'wrap' e 'scrollbind' sono impostate per favorire la visibilità del testo.
|
||||
.br
|
||||
L'opzione 'foldmethod' è impostata al valore "diff", che mette gruppi di
|
||||
L'opzione 'foldmethod' è impostata al valore "diff", che mette i gruppi di
|
||||
linee uguali fra i diversi file in una piegatura. 'foldcolumn' è impostato
|
||||
a due per poter facilmente visualizzare le piegature, aprirle e chiuderle.
|
||||
.SH OPZIONI
|
||||
Lo schermo è diviso verticalmente, come se aveste usato l'opzione "\-O".
|
||||
Per dividerlo orizzontalmente, usare l'opzione "\-o".
|
||||
Lo schermo è diviso verticalmente, come quando si usa l'opzione "\-O".
|
||||
Per dividerlo orizzontalmente, usare invece l'opzione "\-o".
|
||||
.PP
|
||||
Per tutte le altre opzioni, vedere vim(1).
|
||||
Per tutti gli altri argomenti, vedere vim(1).
|
||||
.SH VEDERE ANCHE
|
||||
vim(1)
|
||||
.SH AUTORE
|
||||
Buona parte di
|
||||
.B Vim
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da parte di altri.
|
||||
Vedere ":help credits" in
|
||||
.B Vim.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.TH VIMTUTOR 1 "2 aprile 2001"
|
||||
.SH NOME
|
||||
vimtutor \- Un breve corso per imparare Vim
|
||||
vimtutor \- Un breve corso introduttivo a Vim
|
||||
.SH SINTASSI
|
||||
.br
|
||||
.B vimtutor [\-g] [lingua]
|
||||
@@ -8,51 +8,50 @@ vimtutor \- Un breve corso per imparare Vim
|
||||
.B Vimtutor
|
||||
inizia il
|
||||
.B Vim
|
||||
tutor (una breve corso per imparare Vim).
|
||||
Per prima cosa viene creata una copia del file di lavoro, che pu<70> cos<6F> essere
|
||||
modificato senza alterare il file usato come modello.
|
||||
tutor (un breve corso introduttivo a Vim).
|
||||
Viene utilizzata una copia del file di lavoro, che pu<70> cos<6F> essere modificato
|
||||
a piacere senza alterare il file usato come modello.
|
||||
.PP
|
||||
Il comando
|
||||
.B Vimtutor
|
||||
<EFBFBD> utile a chi voglia imparare i primi comandi
|
||||
<EFBFBD> utile a chi voglia imparare i primi comandi di
|
||||
.B Vim
|
||||
.
|
||||
.PP
|
||||
L'argomento opzionale \-g inizia vimtutor usando gvim invece che vim, se la
|
||||
versione GUI di vim <20> disponibile. oppure utilizza vim, se gvim non <20>
|
||||
disponibile.
|
||||
versione GUI di vim <20> disponibile; altrimenti viene utilizzato Vim.
|
||||
.PP
|
||||
L'arogmento opzionale [lingua] <20> l'abbreviazione di due lettere del nome
|
||||
L'argomento opzionale [lingua] <20> l'abbreviazione di due lettere del nome
|
||||
di una lingua, per esempio "it" oppure "es".
|
||||
se L'argomento [lingua] non viene specificato, si utilizza la lingua "locale"
|
||||
Se l'argomento [lingua] non viene specificato, si utilizza la lingua "locale"
|
||||
del computer.
|
||||
Se la versione in quella lingua del "tutor" <20> disponibile, sar<61> usata.
|
||||
Altrimenti sar<EFBFBD> usata la versione inglese.
|
||||
Se la versione in tale lingua del "tutor" non <20> disponibile,
|
||||
verr<EFBFBD> usata la versione inglese.
|
||||
.PP
|
||||
.B Vim
|
||||
<EFBFBD> sempre iniziato in Modo compatibile con vi.
|
||||
<EFBFBD> sempre iniziato in Modo compatibile con Vi.
|
||||
.SH FILE
|
||||
.TP 15
|
||||
/usr/local/lib/vim/tutor/tutor[.language]
|
||||
Il/I file di testo per
|
||||
I file di testo per
|
||||
.B Vimtutor
|
||||
|
||||
.
|
||||
.TP 15
|
||||
/usr/local/lib/vim/tutor/tutor.vim
|
||||
Lo script di Vim usato per copiare il file di testo
|
||||
.B Vimtutor
|
||||
.
|
||||
.SH AUTORE
|
||||
The
|
||||
Il corso introduttivo
|
||||
.B Vimtutor
|
||||
<EFBFBD> stato scritto in origine per Vi da Michael C. Pierce e Robert K. Ware,
|
||||
Colorado School of Mines, usando idee fornite da Charles Smith,
|
||||
Colorado State University.
|
||||
E\-mail: bware@mines.colorado.edu.
|
||||
E-mail: bware@mines.colorado.edu (non pi<70> valido).
|
||||
.br
|
||||
<EFBFBD> stato modificato per
|
||||
.B Vim
|
||||
da Bram Moolenaar.
|
||||
Per i nomi dei traduttori, vedere i file usati nelle rispettive lingue.
|
||||
Per i nomi dei traduttori, vedere i file nelle rispettive lingue.
|
||||
.SH VEDERE ANCHE
|
||||
vim(1)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.TH VIMTUTOR 1 "2 aprile 2001"
|
||||
.SH NOME
|
||||
vimtutor \- Un breve corso per imparare Vim
|
||||
vimtutor \- Un breve corso introduttivo a Vim
|
||||
.SH SINTASSI
|
||||
.br
|
||||
.B vimtutor [\-g] [lingua]
|
||||
@@ -8,51 +8,50 @@ vimtutor \- Un breve corso per imparare Vim
|
||||
.B Vimtutor
|
||||
inizia il
|
||||
.B Vim
|
||||
tutor (una breve corso per imparare Vim).
|
||||
Per prima cosa viene creata una copia del file di lavoro, che può così essere
|
||||
modificato senza alterare il file usato come modello.
|
||||
tutor (un breve corso introduttivo a Vim).
|
||||
Viene utilizzata una copia del file di lavoro, che può così essere modificato
|
||||
a piacere senza alterare il file usato come modello.
|
||||
.PP
|
||||
Il comando
|
||||
.B Vimtutor
|
||||
è utile a chi voglia imparare i primi comandi
|
||||
è utile a chi voglia imparare i primi comandi di
|
||||
.B Vim
|
||||
.
|
||||
.PP
|
||||
L'argomento opzionale \-g inizia vimtutor usando gvim invece che vim, se la
|
||||
versione GUI di vim è disponibile. oppure utilizza vim, se gvim non è
|
||||
disponibile.
|
||||
versione GUI di vim è disponibile; altrimenti viene utilizzato Vim.
|
||||
.PP
|
||||
L'arogmento opzionale [lingua] è l'abbreviazione di due lettere del nome
|
||||
L'argomento opzionale [lingua] è l'abbreviazione di due lettere del nome
|
||||
di una lingua, per esempio "it" oppure "es".
|
||||
se L'argomento [lingua] non viene specificato, si utilizza la lingua "locale"
|
||||
Se l'argomento [lingua] non viene specificato, si utilizza la lingua "locale"
|
||||
del computer.
|
||||
Se la versione in quella lingua del "tutor" è disponibile, sarà usata.
|
||||
Altrimenti sarà usata la versione inglese.
|
||||
Se la versione in tale lingua del "tutor" non è disponibile,
|
||||
verrà usata la versione inglese.
|
||||
.PP
|
||||
.B Vim
|
||||
è sempre iniziato in Modo compatibile con vi.
|
||||
è sempre iniziato in Modo compatibile con Vi.
|
||||
.SH FILE
|
||||
.TP 15
|
||||
/usr/local/lib/vim/tutor/tutor[.language]
|
||||
Il/I file di testo per
|
||||
I file di testo per
|
||||
.B Vimtutor
|
||||
|
||||
.
|
||||
.TP 15
|
||||
/usr/local/lib/vim/tutor/tutor.vim
|
||||
Lo script di Vim usato per copiare il file di testo
|
||||
.B Vimtutor
|
||||
.
|
||||
.SH AUTORE
|
||||
The
|
||||
Il corso introduttivo
|
||||
.B Vimtutor
|
||||
è stato scritto in origine per Vi da Michael C. Pierce e Robert K. Ware,
|
||||
Colorado School of Mines, usando idee fornite da Charles Smith,
|
||||
Colorado State University.
|
||||
E\-mail: bware@mines.colorado.edu.
|
||||
E-mail: bware@mines.colorado.edu (non più valido).
|
||||
.br
|
||||
È stato modificato per
|
||||
.B Vim
|
||||
da Bram Moolenaar.
|
||||
Per i nomi dei traduttori, vedere i file usati nelle rispettive lingue.
|
||||
Per i nomi dei traduttori, vedere i file nelle rispettive lingue.
|
||||
.SH VEDERE ANCHE
|
||||
vim(1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 9.0. Last change: 2022 Dec 04
|
||||
*visual.txt* For Vim version 9.0. Last change: 2023 Sep 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -183,6 +183,8 @@ If you want to highlight exactly the same area as the last time, you can use
|
||||
CTRL-C In Visual mode: Stop Visual mode. When insert mode is
|
||||
pending (the mode message shows
|
||||
"-- (insert) VISUAL --"), it is also stopped.
|
||||
On MS-Windows, you may need to press CTRL-Break
|
||||
|dos-CTRL-Break|.
|
||||
|
||||
==============================================================================
|
||||
3. Changing the Visual area *visual-change*
|
||||
|
||||
@@ -189,7 +189,7 @@ CTRL-W v *CTRL-W_v*
|
||||
it doesn't!
|
||||
|
||||
CTRL-W n *CTRL-W_n*
|
||||
CTRL-W CTRL_N *CTRL-W_CTRL-N*
|
||||
CTRL-W CTRL-N *CTRL-W_CTRL-N*
|
||||
:[N]new [++opt] [+cmd] *:new*
|
||||
Create a new window and start editing an empty file in it.
|
||||
Make new window N high (default is to use half the existing
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.\" Modificato da Bram Moolenaar <Bram@vim.org>
|
||||
.SH NOME
|
||||
.I xxd
|
||||
\- Produce esadecimale da un file binario o viceversa.
|
||||
\- Produce lista esadecimale da un file binario o viceversa.
|
||||
.SH SINTASSI
|
||||
.B xxd
|
||||
\-h[elp]
|
||||
@@ -18,36 +18,33 @@
|
||||
\-r[evert] [opzioni] [input_file [output_file]]
|
||||
.SH DESCRIZIONE
|
||||
.I xxd
|
||||
crea un'immagine esadecimale di un dato file o dello "standard input".
|
||||
Pu<EFBFBD> anche ottenere da un'immagine esadecimale il file binario originale.
|
||||
crea un'immagine esadecimale di un dato file o dello `standard input'.
|
||||
Pu<EFBFBD> anche ricostruire da un'immagine esadecimale il file binario originale.
|
||||
Come
|
||||
.BR uuencode (1)
|
||||
e
|
||||
.BR uudecode (1)
|
||||
permette di trasmettere dati binari in una rappresentazione ASCII "a prova
|
||||
di email", ma ha anche il vantaggio di poter decodificare sullo "standard
|
||||
output". Inoltre, pu<70> essere usato per effettuare delle modifiche (patch)
|
||||
a file binari.
|
||||
permette di trasmettere dati binari in una rappresentazione ASCII `a prova
|
||||
di email', ma ha anche il vantaggio di poter decodificare sullo `standard output'.
|
||||
Inoltre, pu<70> essere usato per effettuare delle modifiche (patch) a file binari.
|
||||
.SH OPZIONI
|
||||
Se non si specifica un
|
||||
.I input_file
|
||||
il programma legge dallo "standard input".
|
||||
il programma legge dallo `standard input'.
|
||||
Se
|
||||
.I input_file
|
||||
<EFBFBD> specificato come il carattere
|
||||
.RB \` \- '
|
||||
, l'input <20> letto dallo "standard input".
|
||||
, l'input <20> letto dallo `standard input'.
|
||||
Se non si specifica un
|
||||
.I output_file
|
||||
(o si mette al suo posto il carattere
|
||||
.RB \` \- '
|
||||
), i risultati sono inviati allo "standard output".
|
||||
), i risultati sono inviati allo `standard output'.
|
||||
.PP
|
||||
Si noti che la scansione dei caratteri <20> "pigra", e non controlla oltre
|
||||
la prima lettera dell'opzione, a meno che l'opzione sia seguita da un
|
||||
parametro.
|
||||
Gli spazi fra una singola lettera di opzione e il corrispondente parametro
|
||||
dopo di essa sono facoltativi.
|
||||
Si noti che la scansione dei caratteri <20> "pigra", e non controlla oltre la prima
|
||||
lettera di un'opzione, a meno che l'opzione sia seguita da un parametro.
|
||||
Gli spazi fra una singola lettera di opzione e il relativo parametro sono facoltativi.
|
||||
I parametri delle opzioni possono essere specificati usando la notazione
|
||||
decimale, esadecimale oppure ottale.
|
||||
Pertanto
|
||||
@@ -60,118 +57,129 @@ sono notazioni equivalenti fra loro.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Richiesta di autoskip: Un singolo '*' rimpiazza linee di zeri binari.
|
||||
Valore di default: off.
|
||||
Richiesta di omissione: Un singolo '*' rimpiazza righe a zeri binari. Default: off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Richiesta di una immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Questa opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni linea <20> preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ascii (o ebcdic). Le opzioni specificabili dalla
|
||||
linea comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
Quest'opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni riga <20> preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni specificabili dalla
|
||||
riga comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
.TP
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
In ogni linea sono formattate
|
||||
In ogni riga sono formattate
|
||||
.RI < colonne >
|
||||
colonne. Valore di default 16 (\-i: 12, \-ps: 30, \-b: 6).
|
||||
Valore massimo 256.
|
||||
Non c'<27> un valore massimo per \-ps; se si specifica 0 viene scritta un'unica lunga riga di output.
|
||||
.TP
|
||||
.IR \-C " | " \-capitalize
|
||||
Mette in maiuscolo i nomi di variabili nello stile delle `include' C, se si usa \-i.
|
||||
.TP
|
||||
.IR \-E " | " \-EBCDIC
|
||||
Cambia la codifica della colonna di destra da ASCII a EBCDIC.
|
||||
Questo non modifica la rappresentazione esadecimale. Non ha senso
|
||||
specificare questa opzione in combinazione con \-r, \-p o \-i.
|
||||
specificare quest'opzione in combinazione con \-r, \-p o \-i.
|
||||
.TP
|
||||
.IR "\-g numero_byte " | " \-groupsize numero_byte"
|
||||
Inserisci ogni
|
||||
.RI < numero_byte >
|
||||
byte di output (di due caratteri esadecimali o otto numeri binari ognuno)
|
||||
uno spazio bianco.
|
||||
.IR \-e
|
||||
Considera la lista esadecimale come avente codifica `little-endian'.
|
||||
Quest'opzione tratta i gruppi di byte come parole in codifica `little-endian'.
|
||||
Il raggruppamento di default dei byte a 4 a 4 pu<70> essere cambiato usando
|
||||
.RI "" \-g .
|
||||
Quest'opzione si applica solo alla lista esadecimale, Lasciando inalterata
|
||||
la rappresentazione ASCII (or EBCDIC).
|
||||
Le opzioni della riga di comando
|
||||
\-r, \-p, \-i non funzionano in questa modalit<69>.
|
||||
.TP
|
||||
.IR "\-g numero " | " \-groupsize numero"
|
||||
Separa ogni gruppo di
|
||||
.RI < numero >
|
||||
byte in output (di due caratteri esadecimali o otto caratteri binari ognuno) con uno spazio bianco.
|
||||
Specificando
|
||||
.I \-g 0
|
||||
i byte di output non sono separati da alcuno spazio.
|
||||
.RI < numero_byte > ha come valore di default " 2
|
||||
in modalit<69> normale [esadecimale] e \fI1\fP in modalit<69> binaria.
|
||||
Il raggruppamento non si applica agli stili "PostScript" e "include".
|
||||
.RI < Numero "> ha come valore di default " 2
|
||||
in modalit<69> normale [esadecimale], \fI4\fP in modalit<69> `little-endian' e \fI1\fP in modalit<69> binaria.
|
||||
Il raggruppamento non si applica agli stili `PostScript' e `include'.
|
||||
.TP
|
||||
.IR \-h " | " \-help
|
||||
stampa un sommario dei comandi disponibili ed esce. Non viene fatto
|
||||
null'altro.
|
||||
Stampa un sommario dei comandi disponibili ed esce. Non viene fatto null'altro.
|
||||
.TP
|
||||
.IR \-i " | " \-include
|
||||
L'output <20> nello stile dei file "include" in C. Viene preparata la
|
||||
definizione completa di un "array" [vettore], dandogli il nome del
|
||||
file di input), tranne che nel caso in cui xxd legga dallo "standard input".
|
||||
L'output <20> un file `include' in C. Viene preparata la definizione completa del
|
||||
vettore (col nome del file di input), tranne quando xxd legga dallo `standard input'.
|
||||
.TP
|
||||
.IR "\-l numero " | " \-len numero"
|
||||
Il programma esce dopo aver scritto
|
||||
.RI < numero >
|
||||
byte.
|
||||
.TP
|
||||
.I "\-n nome " | " \-name nome"
|
||||
Specifica il nome del vettore in output quando si usa \-i. Il vettore viene chiamato
|
||||
\fInome\fP e la sua lunghezza viene chiamata \fInome\fP_len.
|
||||
.TP
|
||||
.I \-o incremento
|
||||
Aggiunge
|
||||
.RI < incremento >
|
||||
alla posizione visualizzata dei byte del file.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
L'output <20> nello stile di un dump continuo sotto postscript.
|
||||
Noto anche come stile esadecimale semplice [plain].
|
||||
L'output <20> nello stile di un dump esadecimale continuo sotto postscript. Noto anche come stile esadecimale semplice.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
ricostruzione: converte (o mette una patch) a partire dall'immagine
|
||||
esadecimale, creando [o modificando] il file binario.
|
||||
Se non diretto allo "standard output", xxd scrive nel suo file di output
|
||||
in maniera continua, senza interruzioni. Usare la combinazione
|
||||
Ricostruisce: converte (o mette una patch) da immagine esadecimale, a file binario.
|
||||
Se non scrive sullo `standard output', xxd scrive nel file di output in maniera
|
||||
continua, senza interruzioni. Usare la combinazione
|
||||
.I \-r \-p
|
||||
per leggere dump in stile esadecimale semplice [plain], senza l'informazione
|
||||
di numero di linea e senza un particolare tracciato di colonna. Degli spazi
|
||||
o delle linee vuote possono essere inserite a piacere [e vengono ignorate].
|
||||
per leggere dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote possono
|
||||
essere presenti [e vengono ignorati].
|
||||
.TP
|
||||
.IR \-R " "[quando]
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a distinguere i caratteri stampabili da quello non stampabili.
|
||||
.I quando
|
||||
pu<EFBFBD> assumere i valori
|
||||
.BR never ", " always ", o " auto .
|
||||
.TP
|
||||
.I \-seek distanza
|
||||
Usato con l'opzione
|
||||
.IR \-r :
|
||||
(ricostruzione),
|
||||
.RI < distanza >
|
||||
viene aggiunta alla posizione nel file trovata nella immagine
|
||||
esadecimale.
|
||||
viene aggiunta alla posizione nel file trovata nella immagine esadecimale.
|
||||
.TP
|
||||
.I \-s [+][\-]seek
|
||||
Inizia a
|
||||
.RI < seek >
|
||||
byte assoluti (o relativi) di distanza all'interno di input_file.
|
||||
\fI+ \fRindica che il "seek" <20> relativo alla posizione corrente nel file
|
||||
"standard input" (non significativa quando non si legge da "standard input").
|
||||
\fI\- \fRindica che il "seek" dovrebbe posizionarsi ad quel numero di
|
||||
caratteri dalla fine dell'input (o se in combinazione con
|
||||
\fI+ \fR: prime della posizione corrente nel file "standard input").
|
||||
Se non si specifica una opzione \-s, xxd inizia alla posizione
|
||||
corrente all'interno del file.
|
||||
\fI+ \fRindica che il `seek' <20> relativo alla posizione corrente nel file `standard input'
|
||||
(non significativo quando non si legge da `standard input'). \fI\- \fRindica che il
|
||||
`seek' dovrebbe posizionarsi al numero specificato di caratteri dalla fine dell'input
|
||||
(o se in combinazione con \fI+ \fR: prima della posizione corrente nel file `standard input').
|
||||
Se non si specifica l'opzione \-s, xxd inizia dalla posizione corrente all'interno del file.
|
||||
.TP
|
||||
.I \-u
|
||||
usa lettere esadecimali maiuscole. Il valore di default <EFBFBD> di usare
|
||||
lettere minuscole.
|
||||
Usa lettere esadecimali maiuscole. Per default si usano lettere minuscole.
|
||||
.TP
|
||||
.IR \-v " | " \-version
|
||||
visualizza la stringa contenente la versione del programma.
|
||||
Visualizza la stringa contenente la versione del programma.
|
||||
.SH ATTENZIONE
|
||||
.PP
|
||||
.I xxd \-r
|
||||
<EFBFBD> capace di operare "magie" nell'utilizzare l'informazione "numero di linea".
|
||||
Se sul file di output ci si pu<70> posizionare usando la "seek", il numero di
|
||||
linea all'inizio di ogni riga esadecimale pu<70> essere non ordinato, delle
|
||||
linee possono mancare delle linee, oppure esserci delle sovrapposizioni.
|
||||
In simili casi xxd user<65> lseek(2) per raggiungere la posizione d'inizio.
|
||||
Se il file di output non consente di usare "seek", sono permessi solo dei
|
||||
"buchi", che saranno riempiti con zeri binari.
|
||||
<EFBFBD> capace di operare "magie" nell'utilizzare l'informazione "numero di riga".
|
||||
Se <EFBFBD> possibili posizionarsi tramite `seek' sul file di output, il numero di riga
|
||||
di ogni riga esadecimale pu<70> essere non ordinato, delle righe possono mancare, o
|
||||
sovrapporsi. In tal caso xxd user<65> lseek(2) per posizionarsi all'interno del file.
|
||||
Se per il file di output non si pu<70> usare `seek', sono permessi solo dei "buchi", che saranno riempiti con zeri binari.
|
||||
.PP
|
||||
.I xxd \-r
|
||||
non genera mai errori di specifica parametri. I parametri non riconosciuti
|
||||
sono silenziosamente ignorati.
|
||||
non genera mai errori per parametri errati. I parametri extra sono silenziosamente ignorati.
|
||||
.PP
|
||||
Nel modificare immagini esadecimali, tenete conto che
|
||||
Nel modificare immagini esadecimali, si tenga conto che
|
||||
.I xxd \-r
|
||||
salta il resto della linea, dopo aver letto abbastanza caratteri contenenti
|
||||
dati esadecimali (vedere opzione \-c). Ci<43> implica pure che le modifiche alle
|
||||
colonne di caratteri stampabili ascii (o ebcdic) sono sempre ignorate.
|
||||
La ricostruzione da un file immagine esadecimale in stile semplice
|
||||
(postscript) con xxd \-r \-p non dipende dal numero corretto di colonne.
|
||||
IN questo caso, qualsiasi cosa assomigli a una coppia di cifre esadecimali
|
||||
<EFBFBD> interpretata [e utilizzata].
|
||||
salta il resto della riga, dopo aver letto i caratteri contenenti dati esadecimali
|
||||
(vedere opzione \-c). Ci<43> implica pure che le modifiche alle colonne di caratteri
|
||||
stampabili ASCII (o EBCDIC) sono sempre ignorate. La ricostruzione da un file immagine
|
||||
esadecimale in stile semplice (postscript) con xxd \-r \-p non dipende dal numero corretto di colonne. In questo caso, qualsiasi cosa assomigli a una coppia di cifre esadecimali <20> interpretata [e utilizzata].
|
||||
.PP
|
||||
Notare la differenza fra
|
||||
.br
|
||||
@@ -183,53 +191,48 @@ e
|
||||
.PP
|
||||
.I xxd \-s \+seek
|
||||
pu<EFBFBD> comportarsi in modo diverso da
|
||||
.IR "xxd \-s seek"
|
||||
, perch<EFBFBD> lseek(2) <20> usata per tornare indietro nel file di input. Il '+'
|
||||
fa differenza se il file di input <20> lo "standard input", e se la posizione nel
|
||||
file di "standard input" non <20> all'inizio del file quando xxd <20> eseguito,
|
||||
con questo input.
|
||||
I seguenti esempi possono contribuire a chiarire il concetto
|
||||
(o ad oscurarlo!)...
|
||||
.IR "xxd \-s seek" ,
|
||||
perch<EFBFBD> lseek(2) <20> usata per tornare indietro nel file di input. Il '+'
|
||||
fa differenza se il file di input <20> lo `standard input', e se la posizione nel
|
||||
file di `standard input' non <20> all'inizio del file quando xxd <20> eseguito, e riceve input.
|
||||
I seguenti esempi possono contribuire a chiarire il concetto (o ad oscurarlo!)...
|
||||
.PP
|
||||
Riavvolge lo "standard input" prima di leggere; necessario perch<63> `cat'
|
||||
ha gi<67> letto lo stesso file ["file"] fino alla fine dello "standard input".
|
||||
Riavvolge lo `standard input' prima di leggere; necessario perch<63> `cat'
|
||||
ha gi<67> letto lo stesso file fino alla fine dello `standard input'.
|
||||
.br
|
||||
\fI% sh \-c 'cat > copia_normale; xxd \-s 0 > copia_esadecimale' < file
|
||||
\fI% sh \-c "cat > copia_normale; xxd \-s 0 > copia_esadecimale" < file\fR
|
||||
.PP
|
||||
Stampa immagine esadecimale dalla posizione file 0x480 (=1024+128) in poi.
|
||||
Il segno `+' vuol dire "rispetto alla posizione corrente", quindi il `128'
|
||||
si aggiunge a 1k (1024) dove `dd' si era fermato.
|
||||
.br
|
||||
\fI% sh \-c 'dd of=normale bs=1k count=1; xxd \-s +128 > esadecimale' < file
|
||||
\fI% sh \-c "dd of=normale bs=1k count=1; xxd \-s +128 > esadecimale" < file\fR
|
||||
.PP
|
||||
Immagine esadecimale dalla posizione 0x100 ( = 1024\-768 ) del file in avanti.
|
||||
Immagine esadecimale dalla posizione 0x100 (=1024\-768 ) del file in avanti.
|
||||
.br
|
||||
\fI% sh \-c 'dd of=normale bs=1k count=1; xxd \-s +\-768 > esadecimale' < file
|
||||
\fI% sh \-c "dd of=normale bs=1k count=1; xxd \-s +\-768 > esadecimale" < file
|
||||
.PP
|
||||
Comunque, questo capita raramente, e l'uso del `+' non serve quasi mai.
|
||||
L'autore preferisce monitorare il comportamento di xxd con strace(1) o
|
||||
truss(1), quando si usa l'opzione \-s.
|
||||
L'autore preferisce monitorare il comportamento di xxd con strace(1) o truss(1), quando si usa l'opzione \-s.
|
||||
.SH ESEMPI
|
||||
.PP
|
||||
.br
|
||||
Stampa tutto tranne le prime tre linee (0x30 byte esadecimali) di
|
||||
.B file
|
||||
Stampa tutto tranne le prime tre righe (0x30 byte in esadecimale) di
|
||||
.BR file
|
||||
\.
|
||||
.br
|
||||
\fI% xxd \-s 0x30 file
|
||||
\fI% xxd \-s 0x30 file\fR
|
||||
.PP
|
||||
.br
|
||||
Stampa 3 linee (0x30 byte esadecimali) alla fine di
|
||||
.B file
|
||||
\.
|
||||
Stampa 3 righe (0x30 byte in esadecimale) alla fine di
|
||||
.BR file .
|
||||
.br
|
||||
\fI% xxd \-s \-0x30 file
|
||||
.PP
|
||||
.br
|
||||
Stampa 120 byte come immagine esadecimale continua con 20 byte per linea.
|
||||
Stampa 120 byte come immagine esadecimale continua con 20 byte per riga.
|
||||
.br
|
||||
\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
|
||||
|
||||
.br
|
||||
2e54482058584420312022417567757374203139
|
||||
.br
|
||||
@@ -245,11 +248,9 @@ Stampa 120 byte come immagine esadecimale continua con 20 byte per linea.
|
||||
.br
|
||||
|
||||
.br
|
||||
Stampa i primi 120 byte della pagina di manuale vim.1 a 12 byte per linea.
|
||||
Stampa i primi 120 byte della pagina di manuale xxd.1 a 12 byte per riga.
|
||||
.br
|
||||
\fI% xxd \-l 120 \-c 12 xxd.1\fR
|
||||
|
||||
|
||||
.br
|
||||
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
|
||||
.br
|
||||
@@ -285,13 +286,13 @@ su
|
||||
.B output_file
|
||||
premettendogli 100 byte a 0x00.
|
||||
.br
|
||||
\fI% xxd input_file | xxd \-r \-s 100 \> output_file\fR
|
||||
\fI% xxd input_file | xxd \-r \-s 100 > output_file\fR
|
||||
.br
|
||||
|
||||
.br
|
||||
Modificare (patch) la data nel file xxd.1
|
||||
.br
|
||||
\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
|
||||
\fI% echo "0000037: 3574 68" | xxd \-r \- xxd.1\fR
|
||||
.br
|
||||
\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
|
||||
.br
|
||||
@@ -299,9 +300,9 @@ Modificare (patch) la data nel file xxd.1
|
||||
.PP
|
||||
.br
|
||||
Creare un file di 65537 byte tutto a 0x00,
|
||||
tranne che l'ultimo carattere che <20> una 'A' (esadecimale 0x41).
|
||||
tranne l'ultimo carattere che <20> una 'A' (esadecimale 0x41).
|
||||
.br
|
||||
\fI% echo '010000: 41' | xxd \-r \> file\fR
|
||||
\fI% echo "010000: 41" | xxd \-r > file\fR
|
||||
.PP
|
||||
.br
|
||||
Stampa una immagine esadecimale del file di cui sopra con opzione autoskip.
|
||||
@@ -314,34 +315,31 @@ Stampa una immagine esadecimale del file di cui sopra con opzione autoskip.
|
||||
.br
|
||||
000fffc: 0000 0000 40 ....A
|
||||
.PP
|
||||
Crea un file di 1 byte che contiene il solo carattere 'A'.
|
||||
Creare un file di 1 byte che contiene il solo carattere 'A'.
|
||||
Il numero dopo '\-r \-s' viene aggiunto a quello trovato nel file;
|
||||
in pratica, i byte precedenti non sono stampati.
|
||||
.br
|
||||
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> file\fR
|
||||
\fI% echo "010000: 41" | xxd \-r \-s \-0x10000 > file\fR
|
||||
.PP
|
||||
Usa xxd come filtro all'interno di un editor come
|
||||
Usare xxd come filtro all'interno di un editor come
|
||||
.B vim(1)
|
||||
per ottenere una immagine esadecimale di una parte di file
|
||||
delimitata dai marcatori `a' e `z'.
|
||||
per ottenere l'immagine esadecimale della parte di file fra i marcatori `a' e `z'.
|
||||
.br
|
||||
\fI:'a,'z!xxd\fR
|
||||
.PP
|
||||
Usare xxd come filtro all'interno di un editor come
|
||||
.B vim(1)
|
||||
per ricostruire un pezzo di file binario da una immagine esadecimale
|
||||
delimitata dai marcatori `a' e `z'.
|
||||
per ricostruire un pezzo di file binario da un'immagine esadecimale fra i marcatori `a' e `z'.
|
||||
.br
|
||||
\fI:'a,'z!xxd \-r\fR
|
||||
.PP
|
||||
Usare xxd come filtro all'interno di un editor come
|
||||
.B vim(1)
|
||||
per ricostruire una sola linea di file binario da una immagine esadecimale,
|
||||
Portare il cursore sopra la linea e battere:
|
||||
per ricostruire una sola riga di file binario da un'immagine esadecimale. Portare il cursore sopra la riga e battere:
|
||||
.br
|
||||
\fI!!xxd \-r\fR
|
||||
.PP
|
||||
Per leggere singoli caratteri da una linea seriale
|
||||
Leggere singoli caratteri da una linea seriale
|
||||
.br
|
||||
\fI% xxd \-c1 < /dev/term/b &\fR
|
||||
.br
|
||||
@@ -356,7 +354,8 @@ Il programma pu
|
||||
nessun errore rilevato.
|
||||
.TP
|
||||
\-1
|
||||
operazione non supportata (
|
||||
operazione non supportata
|
||||
\%(\c
|
||||
.I xxd \-r \-i
|
||||
non ancora possible).
|
||||
.TP
|
||||
@@ -370,14 +369,13 @@ problemi con il file di input.
|
||||
problemi con il file di output.
|
||||
.TP
|
||||
4,5
|
||||
posizione "seek" specificata non raggiungibile all'interno del file.
|
||||
posizione `seek' specificata non raggiungibile all'interno del file.
|
||||
.SH VEDERE ANCHE
|
||||
uuencode(1), uudecode(1), patch(1)
|
||||
.br
|
||||
.SH AVVERTIMENTI
|
||||
La stranezza dello strumento rispecchia la mente del suo creatore.
|
||||
Usate a vostro rischio e pericolo. Copiate i file. Tracciate l'esecuzione.
|
||||
Diventate un mago.
|
||||
Usate a vostro rischio e pericolo. Copiate i file. Tracciate l'esecuzione. Diventate un mago.
|
||||
.br
|
||||
.SH VERSIONE
|
||||
Questa pagina di manuale documenta la versione 1.7 di xxd.
|
||||
@@ -393,7 +391,7 @@ fate soldi e condivideteli con me
|
||||
.br
|
||||
perdete soldi e non venite a chiederli a me.
|
||||
.PP
|
||||
Pagina di manuale messa in piedi da Tony Nugent
|
||||
Pagina di manuale iniziata da Tony Nugent
|
||||
.br
|
||||
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
|
||||
.br
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.\" Modificato da Bram Moolenaar <Bram@vim.org>
|
||||
.SH NOME
|
||||
.I xxd
|
||||
\- Produce esadecimale da un file binario o viceversa.
|
||||
\- Produce lista esadecimale da un file binario o viceversa.
|
||||
.SH SINTASSI
|
||||
.B xxd
|
||||
\-h[elp]
|
||||
@@ -18,36 +18,33 @@
|
||||
\-r[evert] [opzioni] [input_file [output_file]]
|
||||
.SH DESCRIZIONE
|
||||
.I xxd
|
||||
crea un'immagine esadecimale di un dato file o dello "standard input".
|
||||
Può anche ottenere da un'immagine esadecimale il file binario originale.
|
||||
crea un'immagine esadecimale di un dato file o dello `standard input'.
|
||||
Può anche ricostruire da un'immagine esadecimale il file binario originale.
|
||||
Come
|
||||
.BR uuencode (1)
|
||||
e
|
||||
.BR uudecode (1)
|
||||
permette di trasmettere dati binari in una rappresentazione ASCII "a prova
|
||||
di email", ma ha anche il vantaggio di poter decodificare sullo "standard
|
||||
output". Inoltre, può essere usato per effettuare delle modifiche (patch)
|
||||
a file binari.
|
||||
permette di trasmettere dati binari in una rappresentazione ASCII `a prova
|
||||
di email', ma ha anche il vantaggio di poter decodificare sullo `standard output'.
|
||||
Inoltre, può essere usato per effettuare delle modifiche (patch) a file binari.
|
||||
.SH OPZIONI
|
||||
Se non si specifica un
|
||||
.I input_file
|
||||
il programma legge dallo "standard input".
|
||||
il programma legge dallo `standard input'.
|
||||
Se
|
||||
.I input_file
|
||||
è specificato come il carattere
|
||||
.RB \` \- '
|
||||
, l'input è letto dallo "standard input".
|
||||
, l'input è letto dallo `standard input'.
|
||||
Se non si specifica un
|
||||
.I output_file
|
||||
(o si mette al suo posto il carattere
|
||||
.RB \` \- '
|
||||
), i risultati sono inviati allo "standard output".
|
||||
), i risultati sono inviati allo `standard output'.
|
||||
.PP
|
||||
Si noti che la scansione dei caratteri è "pigra", e non controlla oltre
|
||||
la prima lettera dell'opzione, a meno che l'opzione sia seguita da un
|
||||
parametro.
|
||||
Gli spazi fra una singola lettera di opzione e il corrispondente parametro
|
||||
dopo di essa sono facoltativi.
|
||||
Si noti che la scansione dei caratteri è "pigra", e non controlla oltre la prima
|
||||
lettera di un'opzione, a meno che l'opzione sia seguita da un parametro.
|
||||
Gli spazi fra una singola lettera di opzione e il relativo parametro sono facoltativi.
|
||||
I parametri delle opzioni possono essere specificati usando la notazione
|
||||
decimale, esadecimale oppure ottale.
|
||||
Pertanto
|
||||
@@ -60,118 +57,129 @@ sono notazioni equivalenti fra loro.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Richiesta di autoskip: Un singolo '*' rimpiazza linee di zeri binari.
|
||||
Valore di default: off.
|
||||
Richiesta di omissione: Un singolo '*' rimpiazza righe a zeri binari. Default: off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Richiesta di una immagine binaria (cifre binarie), invece che esadecimale.
|
||||
Questa opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni linea è preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ascii (o ebcdic). Le opzioni specificabili dalla
|
||||
linea comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
Quest'opzione scrive un byte come otto cifre "1" e "0" invece di usare i
|
||||
numeri esadecimali. Ogni riga è preceduta da un indirizzo in esadecimale e
|
||||
seguita da una decodifica ASCII (o EBCDIC). Le opzioni specificabili dalla
|
||||
riga comando \-r, \-p, \-i non funzionano in questo modo.
|
||||
.TP
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
.IR "\-c colonne " | " \-cols colonne"
|
||||
In ogni linea sono formattate
|
||||
In ogni riga sono formattate
|
||||
.RI < colonne >
|
||||
colonne. Valore di default 16 (\-i: 12, \-ps: 30, \-b: 6).
|
||||
Valore massimo 256.
|
||||
Non c'è un valore massimo per \-ps; se si specifica 0 viene scritta un'unica lunga riga di output.
|
||||
.TP
|
||||
.IR \-C " | " \-capitalize
|
||||
Mette in maiuscolo i nomi di variabili nello stile delle `include' C, se si usa \-i.
|
||||
.TP
|
||||
.IR \-E " | " \-EBCDIC
|
||||
Cambia la codifica della colonna di destra da ASCII a EBCDIC.
|
||||
Questo non modifica la rappresentazione esadecimale. Non ha senso
|
||||
specificare questa opzione in combinazione con \-r, \-p o \-i.
|
||||
specificare quest'opzione in combinazione con \-r, \-p o \-i.
|
||||
.TP
|
||||
.IR "\-g numero_byte " | " \-groupsize numero_byte"
|
||||
Inserisci ogni
|
||||
.RI < numero_byte >
|
||||
byte di output (di due caratteri esadecimali o otto numeri binari ognuno)
|
||||
uno spazio bianco.
|
||||
.IR \-e
|
||||
Considera la lista esadecimale come avente codifica `little-endian'.
|
||||
Quest'opzione tratta i gruppi di byte come parole in codifica `little-endian'.
|
||||
Il raggruppamento di default dei byte a 4 a 4 può essere cambiato usando
|
||||
.RI "" \-g .
|
||||
Quest'opzione si applica solo alla lista esadecimale, Lasciando inalterata
|
||||
la rappresentazione ASCII (or EBCDIC).
|
||||
Le opzioni della riga di comando
|
||||
\-r, \-p, \-i non funzionano in questa modalità.
|
||||
.TP
|
||||
.IR "\-g numero " | " \-groupsize numero"
|
||||
Separa ogni gruppo di
|
||||
.RI < numero >
|
||||
byte in output (di due caratteri esadecimali o otto caratteri binari ognuno) con uno spazio bianco.
|
||||
Specificando
|
||||
.I \-g 0
|
||||
i byte di output non sono separati da alcuno spazio.
|
||||
.RI < numero_byte > ha come valore di default " 2
|
||||
in modalità normale [esadecimale] e \fI1\fP in modalità binaria.
|
||||
Il raggruppamento non si applica agli stili "PostScript" e "include".
|
||||
.RI < Numero "> ha come valore di default " 2
|
||||
in modalità normale [esadecimale], \fI4\fP in modalità `little-endian' e \fI1\fP in modalità binaria.
|
||||
Il raggruppamento non si applica agli stili `PostScript' e `include'.
|
||||
.TP
|
||||
.IR \-h " | " \-help
|
||||
stampa un sommario dei comandi disponibili ed esce. Non viene fatto
|
||||
null'altro.
|
||||
Stampa un sommario dei comandi disponibili ed esce. Non viene fatto null'altro.
|
||||
.TP
|
||||
.IR \-i " | " \-include
|
||||
L'output è nello stile dei file "include" in C. Viene preparata la
|
||||
definizione completa di un "array" [vettore], dandogli il nome del
|
||||
file di input), tranne che nel caso in cui xxd legga dallo "standard input".
|
||||
L'output è un file `include' in C. Viene preparata la definizione completa del
|
||||
vettore (col nome del file di input), tranne quando xxd legga dallo `standard input'.
|
||||
.TP
|
||||
.IR "\-l numero " | " \-len numero"
|
||||
Il programma esce dopo aver scritto
|
||||
.RI < numero >
|
||||
byte.
|
||||
.TP
|
||||
.I "\-n nome " | " \-name nome"
|
||||
Specifica il nome del vettore in output quando si usa \-i. Il vettore viene chiamato
|
||||
\fInome\fP e la sua lunghezza viene chiamata \fInome\fP_len.
|
||||
.TP
|
||||
.I \-o incremento
|
||||
Aggiunge
|
||||
.RI < incremento >
|
||||
alla posizione visualizzata dei byte del file.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
L'output è nello stile di un dump continuo sotto postscript.
|
||||
Noto anche come stile esadecimale semplice [plain].
|
||||
L'output è nello stile di un dump esadecimale continuo sotto postscript. Noto anche come stile esadecimale semplice.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
ricostruzione: converte (o mette una patch) a partire dall'immagine
|
||||
esadecimale, creando [o modificando] il file binario.
|
||||
Se non diretto allo "standard output", xxd scrive nel suo file di output
|
||||
in maniera continua, senza interruzioni. Usare la combinazione
|
||||
Ricostruisce: converte (o mette una patch) da immagine esadecimale, a file binario.
|
||||
Se non scrive sullo `standard output', xxd scrive nel file di output in maniera
|
||||
continua, senza interruzioni. Usare la combinazione
|
||||
.I \-r \-p
|
||||
per leggere dump in stile esadecimale semplice [plain], senza l'informazione
|
||||
di numero di linea e senza un particolare tracciato di colonna. Degli spazi
|
||||
o delle linee vuote possono essere inserite a piacere [e vengono ignorate].
|
||||
per leggere dump in stile esadecimale semplice, senza l'informazione del numero
|
||||
di riga e senza un particolare tracciato di colonna. Spazi o righe vuote possono
|
||||
essere presenti [e vengono ignorati].
|
||||
.TP
|
||||
.IR \-R " "[quando]
|
||||
Nell'output i valori esadecimali e i caratteri corrispondenti hanno entrambi lo stesso colore, a seconda del valore esadecimale. Utile soprattutto a distinguere i caratteri stampabili da quello non stampabili.
|
||||
.I quando
|
||||
può assumere i valori
|
||||
.BR never ", " always ", o " auto .
|
||||
.TP
|
||||
.I \-seek distanza
|
||||
Usato con l'opzione
|
||||
.IR \-r :
|
||||
(ricostruzione),
|
||||
.RI < distanza >
|
||||
viene aggiunta alla posizione nel file trovata nella immagine
|
||||
esadecimale.
|
||||
viene aggiunta alla posizione nel file trovata nella immagine esadecimale.
|
||||
.TP
|
||||
.I \-s [+][\-]seek
|
||||
Inizia a
|
||||
.RI < seek >
|
||||
byte assoluti (o relativi) di distanza all'interno di input_file.
|
||||
\fI+ \fRindica che il "seek" è relativo alla posizione corrente nel file
|
||||
"standard input" (non significativa quando non si legge da "standard input").
|
||||
\fI\- \fRindica che il "seek" dovrebbe posizionarsi ad quel numero di
|
||||
caratteri dalla fine dell'input (o se in combinazione con
|
||||
\fI+ \fR: prime della posizione corrente nel file "standard input").
|
||||
Se non si specifica una opzione \-s, xxd inizia alla posizione
|
||||
corrente all'interno del file.
|
||||
\fI+ \fRindica che il `seek' è relativo alla posizione corrente nel file `standard input'
|
||||
(non significativo quando non si legge da `standard input'). \fI\- \fRindica che il
|
||||
`seek' dovrebbe posizionarsi al numero specificato di caratteri dalla fine dell'input
|
||||
(o se in combinazione con \fI+ \fR: prima della posizione corrente nel file `standard input').
|
||||
Se non si specifica l'opzione \-s, xxd inizia dalla posizione corrente all'interno del file.
|
||||
.TP
|
||||
.I \-u
|
||||
usa lettere esadecimali maiuscole. Il valore di default è di usare
|
||||
lettere minuscole.
|
||||
Usa lettere esadecimali maiuscole. Per default si usano lettere minuscole.
|
||||
.TP
|
||||
.IR \-v " | " \-version
|
||||
visualizza la stringa contenente la versione del programma.
|
||||
Visualizza la stringa contenente la versione del programma.
|
||||
.SH ATTENZIONE
|
||||
.PP
|
||||
.I xxd \-r
|
||||
è capace di operare "magie" nell'utilizzare l'informazione "numero di linea".
|
||||
Se sul file di output ci si può posizionare usando la "seek", il numero di
|
||||
linea all'inizio di ogni riga esadecimale può essere non ordinato, delle
|
||||
linee possono mancare delle linee, oppure esserci delle sovrapposizioni.
|
||||
In simili casi xxd userà lseek(2) per raggiungere la posizione d'inizio.
|
||||
Se il file di output non consente di usare "seek", sono permessi solo dei
|
||||
"buchi", che saranno riempiti con zeri binari.
|
||||
è capace di operare "magie" nell'utilizzare l'informazione "numero di riga".
|
||||
Se è possibili posizionarsi tramite `seek' sul file di output, il numero di riga
|
||||
di ogni riga esadecimale può essere non ordinato, delle righe possono mancare, o
|
||||
sovrapporsi. In tal caso xxd userà lseek(2) per posizionarsi all'interno del file.
|
||||
Se per il file di output non si può usare `seek', sono permessi solo dei "buchi", che saranno riempiti con zeri binari.
|
||||
.PP
|
||||
.I xxd \-r
|
||||
non genera mai errori di specifica parametri. I parametri non riconosciuti
|
||||
sono silenziosamente ignorati.
|
||||
non genera mai errori per parametri errati. I parametri extra sono silenziosamente ignorati.
|
||||
.PP
|
||||
Nel modificare immagini esadecimali, tenete conto che
|
||||
Nel modificare immagini esadecimali, si tenga conto che
|
||||
.I xxd \-r
|
||||
salta il resto della linea, dopo aver letto abbastanza caratteri contenenti
|
||||
dati esadecimali (vedere opzione \-c). Ciò implica pure che le modifiche alle
|
||||
colonne di caratteri stampabili ascii (o ebcdic) sono sempre ignorate.
|
||||
La ricostruzione da un file immagine esadecimale in stile semplice
|
||||
(postscript) con xxd \-r \-p non dipende dal numero corretto di colonne.
|
||||
IN questo caso, qualsiasi cosa assomigli a una coppia di cifre esadecimali
|
||||
è interpretata [e utilizzata].
|
||||
salta il resto della riga, dopo aver letto i caratteri contenenti dati esadecimali
|
||||
(vedere opzione \-c). Ciò implica pure che le modifiche alle colonne di caratteri
|
||||
stampabili ASCII (o EBCDIC) sono sempre ignorate. La ricostruzione da un file immagine
|
||||
esadecimale in stile semplice (postscript) con xxd \-r \-p non dipende dal numero corretto di colonne. In questo caso, qualsiasi cosa assomigli a una coppia di cifre esadecimali è interpretata [e utilizzata].
|
||||
.PP
|
||||
Notare la differenza fra
|
||||
.br
|
||||
@@ -183,53 +191,48 @@ e
|
||||
.PP
|
||||
.I xxd \-s \+seek
|
||||
può comportarsi in modo diverso da
|
||||
.IR "xxd \-s seek"
|
||||
, perché lseek(2) è usata per tornare indietro nel file di input. Il '+'
|
||||
fa differenza se il file di input è lo "standard input", e se la posizione nel
|
||||
file di "standard input" non è all'inizio del file quando xxd è eseguito,
|
||||
con questo input.
|
||||
I seguenti esempi possono contribuire a chiarire il concetto
|
||||
(o ad oscurarlo!)...
|
||||
.IR "xxd \-s seek" ,
|
||||
perché lseek(2) è usata per tornare indietro nel file di input. Il '+'
|
||||
fa differenza se il file di input è lo `standard input', e se la posizione nel
|
||||
file di `standard input' non è all'inizio del file quando xxd è eseguito, e riceve input.
|
||||
I seguenti esempi possono contribuire a chiarire il concetto (o ad oscurarlo!)...
|
||||
.PP
|
||||
Riavvolge lo "standard input" prima di leggere; necessario perché `cat'
|
||||
ha già letto lo stesso file ["file"] fino alla fine dello "standard input".
|
||||
Riavvolge lo `standard input' prima di leggere; necessario perché `cat'
|
||||
ha già letto lo stesso file fino alla fine dello `standard input'.
|
||||
.br
|
||||
\fI% sh \-c 'cat > copia_normale; xxd \-s 0 > copia_esadecimale' < file
|
||||
\fI% sh \-c "cat > copia_normale; xxd \-s 0 > copia_esadecimale" < file\fR
|
||||
.PP
|
||||
Stampa immagine esadecimale dalla posizione file 0x480 (=1024+128) in poi.
|
||||
Il segno `+' vuol dire "rispetto alla posizione corrente", quindi il `128'
|
||||
si aggiunge a 1k (1024) dove `dd' si era fermato.
|
||||
.br
|
||||
\fI% sh \-c 'dd of=normale bs=1k count=1; xxd \-s +128 > esadecimale' < file
|
||||
\fI% sh \-c "dd of=normale bs=1k count=1; xxd \-s +128 > esadecimale" < file\fR
|
||||
.PP
|
||||
Immagine esadecimale dalla posizione 0x100 ( = 1024\-768 ) del file in avanti.
|
||||
Immagine esadecimale dalla posizione 0x100 (=1024\-768 ) del file in avanti.
|
||||
.br
|
||||
\fI% sh \-c 'dd of=normale bs=1k count=1; xxd \-s +\-768 > esadecimale' < file
|
||||
\fI% sh \-c "dd of=normale bs=1k count=1; xxd \-s +\-768 > esadecimale" < file
|
||||
.PP
|
||||
Comunque, questo capita raramente, e l'uso del `+' non serve quasi mai.
|
||||
L'autore preferisce monitorare il comportamento di xxd con strace(1) o
|
||||
truss(1), quando si usa l'opzione \-s.
|
||||
L'autore preferisce monitorare il comportamento di xxd con strace(1) o truss(1), quando si usa l'opzione \-s.
|
||||
.SH ESEMPI
|
||||
.PP
|
||||
.br
|
||||
Stampa tutto tranne le prime tre linee (0x30 byte esadecimali) di
|
||||
.B file
|
||||
Stampa tutto tranne le prime tre righe (0x30 byte in esadecimale) di
|
||||
.BR file
|
||||
\.
|
||||
.br
|
||||
\fI% xxd \-s 0x30 file
|
||||
\fI% xxd \-s 0x30 file\fR
|
||||
.PP
|
||||
.br
|
||||
Stampa 3 linee (0x30 byte esadecimali) alla fine di
|
||||
.B file
|
||||
\.
|
||||
Stampa 3 righe (0x30 byte in esadecimale) alla fine di
|
||||
.BR file .
|
||||
.br
|
||||
\fI% xxd \-s \-0x30 file
|
||||
.PP
|
||||
.br
|
||||
Stampa 120 byte come immagine esadecimale continua con 20 byte per linea.
|
||||
Stampa 120 byte come immagine esadecimale continua con 20 byte per riga.
|
||||
.br
|
||||
\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
|
||||
|
||||
.br
|
||||
2e54482058584420312022417567757374203139
|
||||
.br
|
||||
@@ -245,11 +248,9 @@ Stampa 120 byte come immagine esadecimale continua con 20 byte per linea.
|
||||
.br
|
||||
|
||||
.br
|
||||
Stampa i primi 120 byte della pagina di manuale vim.1 a 12 byte per linea.
|
||||
Stampa i primi 120 byte della pagina di manuale xxd.1 a 12 byte per riga.
|
||||
.br
|
||||
\fI% xxd \-l 120 \-c 12 xxd.1\fR
|
||||
|
||||
|
||||
.br
|
||||
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
|
||||
.br
|
||||
@@ -285,13 +286,13 @@ su
|
||||
.B output_file
|
||||
premettendogli 100 byte a 0x00.
|
||||
.br
|
||||
\fI% xxd input_file | xxd \-r \-s 100 \> output_file\fR
|
||||
\fI% xxd input_file | xxd \-r \-s 100 > output_file\fR
|
||||
.br
|
||||
|
||||
.br
|
||||
Modificare (patch) la data nel file xxd.1
|
||||
.br
|
||||
\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
|
||||
\fI% echo "0000037: 3574 68" | xxd \-r \- xxd.1\fR
|
||||
.br
|
||||
\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
|
||||
.br
|
||||
@@ -299,9 +300,9 @@ Modificare (patch) la data nel file xxd.1
|
||||
.PP
|
||||
.br
|
||||
Creare un file di 65537 byte tutto a 0x00,
|
||||
tranne che l'ultimo carattere che è una 'A' (esadecimale 0x41).
|
||||
tranne l'ultimo carattere che è una 'A' (esadecimale 0x41).
|
||||
.br
|
||||
\fI% echo '010000: 41' | xxd \-r \> file\fR
|
||||
\fI% echo "010000: 41" | xxd \-r > file\fR
|
||||
.PP
|
||||
.br
|
||||
Stampa una immagine esadecimale del file di cui sopra con opzione autoskip.
|
||||
@@ -314,34 +315,31 @@ Stampa una immagine esadecimale del file di cui sopra con opzione autoskip.
|
||||
.br
|
||||
000fffc: 0000 0000 40 ....A
|
||||
.PP
|
||||
Crea un file di 1 byte che contiene il solo carattere 'A'.
|
||||
Creare un file di 1 byte che contiene il solo carattere 'A'.
|
||||
Il numero dopo '\-r \-s' viene aggiunto a quello trovato nel file;
|
||||
in pratica, i byte precedenti non sono stampati.
|
||||
.br
|
||||
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> file\fR
|
||||
\fI% echo "010000: 41" | xxd \-r \-s \-0x10000 > file\fR
|
||||
.PP
|
||||
Usa xxd come filtro all'interno di un editor come
|
||||
Usare xxd come filtro all'interno di un editor come
|
||||
.B vim(1)
|
||||
per ottenere una immagine esadecimale di una parte di file
|
||||
delimitata dai marcatori `a' e `z'.
|
||||
per ottenere l'immagine esadecimale della parte di file fra i marcatori `a' e `z'.
|
||||
.br
|
||||
\fI:'a,'z!xxd\fR
|
||||
.PP
|
||||
Usare xxd come filtro all'interno di un editor come
|
||||
.B vim(1)
|
||||
per ricostruire un pezzo di file binario da una immagine esadecimale
|
||||
delimitata dai marcatori `a' e `z'.
|
||||
per ricostruire un pezzo di file binario da un'immagine esadecimale fra i marcatori `a' e `z'.
|
||||
.br
|
||||
\fI:'a,'z!xxd \-r\fR
|
||||
.PP
|
||||
Usare xxd come filtro all'interno di un editor come
|
||||
.B vim(1)
|
||||
per ricostruire una sola linea di file binario da una immagine esadecimale,
|
||||
Portare il cursore sopra la linea e battere:
|
||||
per ricostruire una sola riga di file binario da un'immagine esadecimale. Portare il cursore sopra la riga e battere:
|
||||
.br
|
||||
\fI!!xxd \-r\fR
|
||||
.PP
|
||||
Per leggere singoli caratteri da una linea seriale
|
||||
Leggere singoli caratteri da una linea seriale
|
||||
.br
|
||||
\fI% xxd \-c1 < /dev/term/b &\fR
|
||||
.br
|
||||
@@ -356,7 +354,8 @@ Il programma può restituire questi codici di errore:
|
||||
nessun errore rilevato.
|
||||
.TP
|
||||
\-1
|
||||
operazione non supportata (
|
||||
operazione non supportata
|
||||
\%(\c
|
||||
.I xxd \-r \-i
|
||||
non ancora possible).
|
||||
.TP
|
||||
@@ -370,14 +369,13 @@ problemi con il file di input.
|
||||
problemi con il file di output.
|
||||
.TP
|
||||
4,5
|
||||
posizione "seek" specificata non raggiungibile all'interno del file.
|
||||
posizione `seek' specificata non raggiungibile all'interno del file.
|
||||
.SH VEDERE ANCHE
|
||||
uuencode(1), uudecode(1), patch(1)
|
||||
.br
|
||||
.SH AVVERTIMENTI
|
||||
La stranezza dello strumento rispecchia la mente del suo creatore.
|
||||
Usate a vostro rischio e pericolo. Copiate i file. Tracciate l'esecuzione.
|
||||
Diventate un mago.
|
||||
Usate a vostro rischio e pericolo. Copiate i file. Tracciate l'esecuzione. Diventate un mago.
|
||||
.br
|
||||
.SH VERSIONE
|
||||
Questa pagina di manuale documenta la versione 1.7 di xxd.
|
||||
@@ -393,7 +391,7 @@ fate soldi e condivideteli con me
|
||||
.br
|
||||
perdete soldi e non venite a chiederli a me.
|
||||
.PP
|
||||
Pagina di manuale messa in piedi da Tony Nugent
|
||||
Pagina di manuale iniziata da Tony Nugent
|
||||
.br
|
||||
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
|
||||
.br
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.\" Changes by Bram Moolenaar <Bram@vim.org>
|
||||
.SH NAME
|
||||
.I xxd
|
||||
\- make a hexdump or do the reverse.
|
||||
\- make a hex dump or do the reverse.
|
||||
.SH SYNOPSIS
|
||||
.B xxd
|
||||
\-h[elp]
|
||||
@@ -57,20 +57,20 @@ are all equivalent.
|
||||
.PP
|
||||
.TP
|
||||
.IR \-a " | " \-autoskip
|
||||
Toggle autoskip: A single '*' replaces nul-lines. Default off.
|
||||
Toggle autoskip: A single '*' replaces NUL-lines. Default off.
|
||||
.TP
|
||||
.IR \-b " | " \-bits
|
||||
Switch to bits (binary digits) dump, rather than hexdump.
|
||||
Switch to bits (binary digits) dump, rather than hex dump.
|
||||
This option writes octets as eight digits "1"s and "0"s instead of a normal
|
||||
hexadecimal dump. Each line is preceded by a line number in hexadecimal and
|
||||
followed by an ascii (or ebcdic) representation. The command line switches
|
||||
followed by an ASCII (or EBCDIC) representation. The command line switches
|
||||
\-r, \-p, \-i do not work with this mode.
|
||||
.TP
|
||||
.IR "\-c cols " | " \-cols cols"
|
||||
Format
|
||||
.RI < cols >
|
||||
octets per line. Default 16 (\-i: 12, \-ps: 30, \-b: 6). Max 256.
|
||||
No maxmimum for \-ps. With \-ps, 0 results in one long line of output.
|
||||
No maximum for \-ps. With \-ps, 0 results in one long line of output.
|
||||
.TP
|
||||
.IR \-C " | " \-capitalize
|
||||
Capitalize variable names in C include file style, when using \-i.
|
||||
@@ -81,11 +81,11 @@ This does not change the hexadecimal representation. The option is
|
||||
meaningless in combinations with \-r, \-p or \-i.
|
||||
.TP
|
||||
.IR \-e
|
||||
Switch to little-endian hexdump.
|
||||
Switch to little-endian hex dump.
|
||||
This option treats byte groups as words in little-endian byte order.
|
||||
The default grouping of 4 bytes may be changed using
|
||||
.RI "" \-g .
|
||||
This option only applies to hexdump, leaving the ASCII (or EBCDIC)
|
||||
This option only applies to the hex dump, leaving the ASCII (or EBCDIC)
|
||||
representation unchanged.
|
||||
The command line switches
|
||||
\-r, \-p, \-i do not work with this mode.
|
||||
@@ -93,13 +93,13 @@ The command line switches
|
||||
.IR "\-g bytes " | " \-groupsize bytes"
|
||||
Separate the output of every
|
||||
.RI < bytes >
|
||||
bytes (two hex characters or eight bit-digits each) by a whitespace.
|
||||
bytes (two hex characters or eight bit digits each) by a whitespace.
|
||||
Specify
|
||||
.I \-g 0
|
||||
to suppress grouping.
|
||||
.RI < Bytes "> defaults to " 2
|
||||
in normal mode, \fI4\fP in little-endian mode and \fI1\fP in bits mode.
|
||||
Grouping does not apply to postscript or include style.
|
||||
Grouping does not apply to PostScript or include style.
|
||||
.TP
|
||||
.IR \-h " | " \-help
|
||||
Print a summary of available commands and exit. No hex dumping is performed.
|
||||
@@ -123,24 +123,30 @@ Add
|
||||
to the displayed file position.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
Output in postscript continuous hexdump style. Also known as plain hexdump
|
||||
Output in PostScript continuous hex dump style. Also known as plain hex dump
|
||||
style.
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
Reverse operation: convert (or patch) hexdump into binary.
|
||||
Reverse operation: convert (or patch) hex dump into binary.
|
||||
If not writing to stdout, xxd writes into its output file without truncating
|
||||
it. Use the combination
|
||||
.I \-r \-p
|
||||
to read plain hexadecimal dumps without line number information and without a
|
||||
particular column layout. Additional Whitespace and line-breaks are allowed
|
||||
particular column layout. Additional whitespace and line breaks are allowed
|
||||
anywhere.
|
||||
.TP
|
||||
.IR \-R " " when
|
||||
In output the hex-value and the value are both colored with the same color depending on the hex-value. Mostly helping to differentiate printable and non-printable characters.
|
||||
.I \fIwhen\fP
|
||||
is
|
||||
.BR never ", " always ", or " auto .
|
||||
.TP
|
||||
.I \-seek offset
|
||||
When used after
|
||||
.IR \-r :
|
||||
revert with
|
||||
.RI < offset >
|
||||
added to file positions found in hexdump.
|
||||
added to file positions found in hex dump.
|
||||
.TP
|
||||
.I \-s [+][\-]seek
|
||||
Start at
|
||||
@@ -153,28 +159,28 @@ should be that many characters from the end of the input (or if combined with
|
||||
Without \-s option, xxd starts at the current file position.
|
||||
.TP
|
||||
.I \-u
|
||||
Use upper case hex letters. Default is lower case.
|
||||
Use upper-case hex letters. Default is lower-case.
|
||||
.TP
|
||||
.IR \-v " | " \-version
|
||||
Show version string.
|
||||
.SH CAVEATS
|
||||
.PP
|
||||
.I xxd \-r
|
||||
has some builtin magic while evaluating line number information.
|
||||
If the output file is seekable, then the linenumbers at the start of each
|
||||
hexdump line may be out of order, lines may be missing, or overlapping. In
|
||||
has some built-in magic while evaluating line number information.
|
||||
If the output file is seekable, then the line numbers at the start of each
|
||||
hex dump line may be out of order, lines may be missing, or overlapping. In
|
||||
these cases xxd will lseek(2) to the next position. If the output file is not
|
||||
seekable, only gaps are allowed, which will be filled by null-bytes.
|
||||
.PP
|
||||
.I xxd \-r
|
||||
never generates parse errors. Garbage is silently skipped.
|
||||
.PP
|
||||
When editing hexdumps, please note that
|
||||
When editing hex dumps, please note that
|
||||
.I xxd \-r
|
||||
skips everything on the input line after reading enough columns of hexadecimal
|
||||
data (see option \-c). This also means, that changes to the printable ascii (or
|
||||
ebcdic) columns are always ignored. Reverting a plain (or postscript) style
|
||||
hexdump with xxd \-r \-p does not depend on the correct number of columns. Here anything that looks like a pair of hex-digits is interpreted.
|
||||
data (see option \-c). This also means that changes to the printable ASCII (or
|
||||
EBCDIC) columns are always ignored. Reverting a plain (or PostScript) style
|
||||
hex dump with xxd \-r \-p does not depend on the correct number of columns. Here, anything that looks like a pair of hex digits is interpreted.
|
||||
.PP
|
||||
Note the difference between
|
||||
.br
|
||||
@@ -190,20 +196,20 @@ may be different from
|
||||
as lseek(2) is used to "rewind" input. A '+'
|
||||
makes a difference if the input source is stdin, and if stdin's file position
|
||||
is not at the start of the file by the time xxd is started and given its input.
|
||||
The following examples may help to clarify (or further confuse!)...
|
||||
The following examples may help to clarify (or further confuse!):
|
||||
.PP
|
||||
Rewind stdin before reading; needed because the `cat' has already read to the
|
||||
end of stdin.
|
||||
.br
|
||||
\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR
|
||||
.PP
|
||||
Hexdump from file position 0x480 (=1024+128) onwards.
|
||||
Hex dump from file position 0x480 (=1024+128) onwards.
|
||||
The `+' sign means "relative to the current position", thus the `128' adds to
|
||||
the 1k where dd left off.
|
||||
.br
|
||||
\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR
|
||||
.PP
|
||||
Hexdump from file position 0x100 ( = 1024\-768) on.
|
||||
Hex dump from file position 0x100 (=1024\-768) onwards.
|
||||
.br
|
||||
\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR
|
||||
.PP
|
||||
@@ -224,7 +230,7 @@ Print 3 lines (hex 0x30 bytes) from the end of
|
||||
\fI% xxd \-s \-0x30 file\fR
|
||||
.PP
|
||||
.br
|
||||
Print 120 bytes as continuous hexdump with 20 octets per line.
|
||||
Print 120 bytes as a continuous hex dump with 20 octets per line.
|
||||
.br
|
||||
\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
|
||||
.br
|
||||
@@ -242,7 +248,7 @@ Print 120 bytes as continuous hexdump with 20 octets per line.
|
||||
.br
|
||||
|
||||
.br
|
||||
Hexdump the first 120 bytes of this man page with 12 octets per line.
|
||||
Hex dump the first 120 bytes of this man page with 12 octets per line.
|
||||
.br
|
||||
\fI% xxd \-l 120 \-c 12 xxd.1\fR
|
||||
.br
|
||||
@@ -299,7 +305,7 @@ except for the last one which is 'A' (hex 0x41).
|
||||
\fI% echo "010000: 41" | xxd \-r > file\fR
|
||||
.PP
|
||||
.br
|
||||
Hexdump this file with autoskip.
|
||||
Hex dump this file with autoskip.
|
||||
.br
|
||||
\fI% xxd \-a \-c 12 file\fR
|
||||
.br
|
||||
@@ -310,26 +316,26 @@ Hexdump this file with autoskip.
|
||||
000fffc: 0000 0000 40 ....A
|
||||
.PP
|
||||
Create a 1 byte file containing a single 'A' character.
|
||||
The number after '\-r \-s' adds to the linenumbers found in the file;
|
||||
The number after '\-r \-s' adds to the line numbers found in the file;
|
||||
in effect, the leading bytes are suppressed.
|
||||
.br
|
||||
\fI% echo "010000: 41" | xxd \-r \-s \-0x10000 > file\fR
|
||||
.PP
|
||||
Use xxd as a filter within an editor such as
|
||||
.B vim(1)
|
||||
to hexdump a region marked between `a' and `z'.
|
||||
to hex dump a region marked between `a' and `z'.
|
||||
.br
|
||||
\fI:'a,'z!xxd\fR
|
||||
.PP
|
||||
Use xxd as a filter within an editor such as
|
||||
.B vim(1)
|
||||
to recover a binary hexdump marked between `a' and `z'.
|
||||
to recover a binary hex dump marked between `a' and `z'.
|
||||
.br
|
||||
\fI:'a,'z!xxd \-r\fR
|
||||
.PP
|
||||
Use xxd as a filter within an editor such as
|
||||
.B vim(1)
|
||||
to recover one line of a hexdump. Move the cursor over the line and type:
|
||||
to recover one line of a hex dump. Move the cursor over the line and type:
|
||||
.br
|
||||
\fI!!xxd \-r\fR
|
||||
.PP
|
||||
@@ -348,8 +354,9 @@ The following error values are returned:
|
||||
no errors encountered.
|
||||
.TP
|
||||
\-1
|
||||
operation not supported (
|
||||
.I xxd \-r \-i
|
||||
operation not supported
|
||||
\%(\c
|
||||
.I \%xxd \-r \-i
|
||||
still impossible).
|
||||
.TP
|
||||
1
|
||||
@@ -367,7 +374,7 @@ desired seek position is unreachable.
|
||||
uuencode(1), uudecode(1), patch(1)
|
||||
.br
|
||||
.SH WARNINGS
|
||||
The tools weirdness matches its creators brain.
|
||||
The tool's weirdness matches its creator's brain.
|
||||
Use entirely at your own risk. Copy files. Trace it. Become a wizard.
|
||||
.br
|
||||
.SH VERSION
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Vim script for Evim key bindings
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2022 May 10
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Don't use Vi-compatible mode.
|
||||
set nocompatible
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2023 Jun 09
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -183,6 +184,9 @@ au BufNewFile,BufRead *.atl,*.as setf atlas
|
||||
" Atom is based on XML
|
||||
au BufNewFile,BufRead *.atom setf xml
|
||||
|
||||
" Authzed
|
||||
au BufNewFile,BufRead *.zed setf authzed
|
||||
|
||||
" Autoit v3
|
||||
au BufNewFile,BufRead *.au3 setf autoit
|
||||
|
||||
@@ -208,9 +212,6 @@ au BufNewFile,BufRead *.bi,*.bm call dist#ft#FTbas()
|
||||
" Bass
|
||||
au BufNewFile,BufRead *.bass setf bass
|
||||
|
||||
" Visual Basic Script (close to Visual Basic) or Visual Basic .NET
|
||||
au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb
|
||||
|
||||
" IBasic file (similar to QBasic)
|
||||
au BufNewFile,BufRead *.iba,*.ibi setf ibasic
|
||||
|
||||
@@ -244,7 +245,7 @@ au BufNewFile,BufRead *.bib setf bib
|
||||
au BufNewFile,BufRead *.bst setf bst
|
||||
|
||||
" Bicep
|
||||
au BufNewFile,BufRead *.bicep setf bicep
|
||||
au BufNewFile,BufRead *.bicep,*.bicepparam setf bicep
|
||||
|
||||
" BIND configuration
|
||||
" sudoedit uses namedXXXX.conf
|
||||
@@ -254,6 +255,9 @@ au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named
|
||||
au BufNewFile,BufRead named.root setf bindzone
|
||||
au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('')
|
||||
|
||||
" Blade
|
||||
au BufNewFile,BufRead *.blade.php setf blade
|
||||
|
||||
" Blank
|
||||
au BufNewFile,BufRead *.bl setf blank
|
||||
|
||||
@@ -720,16 +724,19 @@ au BufNewFile,BufRead auto.master setf conf
|
||||
au BufNewFile,BufRead *.mas,*.master setf master
|
||||
|
||||
" Forth
|
||||
au BufNewFile,BufRead *.ft,*.fth setf forth
|
||||
au BufNewFile,BufRead *.ft,*.fth,*.4th setf forth
|
||||
|
||||
" Reva Forth
|
||||
au BufNewFile,BufRead *.frt setf reva
|
||||
|
||||
" Fortran
|
||||
if has("fname_case")
|
||||
au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran
|
||||
au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran
|
||||
endif
|
||||
au BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran
|
||||
au BufNewFile,BufRead *.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran
|
||||
|
||||
" Fortran or Forth
|
||||
au BufNewFile,BufRead *.f call dist#ft#FTf()
|
||||
|
||||
" Framescript
|
||||
au BufNewFile,BufRead *.fsl setf framescript
|
||||
@@ -891,6 +898,7 @@ if exists('$XDG_CONFIG_HOME')
|
||||
endif
|
||||
au BufNewFile,BufRead $HOME/.config/cabal/config setf cabalconfig
|
||||
au BufNewFile,BufRead cabal.config setf cabalconfig
|
||||
au BufNewFile,BufRead *.persistentmodels setf haskellpersistent
|
||||
|
||||
" Haste
|
||||
au BufNewFile,BufRead *.ht setf haste
|
||||
@@ -945,6 +953,9 @@ au BufNewFile,BufRead */etc/host.conf setf hostconf
|
||||
" Hosts access
|
||||
au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess
|
||||
|
||||
" Hurl
|
||||
au BufRead,BufNewFile *.hurl setf hurl
|
||||
|
||||
" Hyper Builder
|
||||
au BufNewFile,BufRead *.hb setf hb
|
||||
|
||||
@@ -1057,6 +1068,9 @@ au BufNewFile,BufRead *.json5 setf json5
|
||||
" JSON Patch (RFC 6902)
|
||||
au BufNewFile,BufRead *.json-patch setf json
|
||||
|
||||
" Geojson is also json
|
||||
au BufNewFile,BufRead *.geojson setf json
|
||||
|
||||
" Jupyter Notebook is also json
|
||||
au BufNewFile,BufRead *.ipynb setf json
|
||||
|
||||
@@ -1170,6 +1184,9 @@ endif
|
||||
" SBCL implementation of Common Lisp
|
||||
au BufNewFile,BufRead sbclrc,.sbclrc setf lisp
|
||||
|
||||
" Liquidsoap
|
||||
au BufNewFile,BufRead *.liq setf liquidsoap
|
||||
|
||||
" Liquid
|
||||
au BufNewFile,BufRead *.liquid setf liquid
|
||||
|
||||
@@ -1357,6 +1374,10 @@ au BufNewFile,BufRead *.rc,*.rch
|
||||
\ setf rc |
|
||||
\ endif
|
||||
|
||||
" Mojo
|
||||
" Mojo files use either .mojo or .🔥 as extension
|
||||
au BufNewFile,BufRead *.mojo,*.🔥 setf mojo
|
||||
|
||||
" MuPAD source
|
||||
au BufRead,BufNewFile *.mu setf mupad
|
||||
|
||||
@@ -1396,6 +1417,9 @@ au BufNewFile,BufRead *.ninja setf ninja
|
||||
" Nix
|
||||
au BufRead,BufNewFile *.nix setf nix
|
||||
|
||||
" Norg
|
||||
au BufNewFile,BufRead *.norg setf norg
|
||||
|
||||
" NPM RC file
|
||||
au BufNewFile,BufRead npmrc,.npmrc setf dosini
|
||||
|
||||
@@ -1511,6 +1535,9 @@ au BufNewFile,BufRead *.pdf setf pdf
|
||||
" PCMK - HAE - crm configure edit
|
||||
au BufNewFile,BufRead *.pcmk setf pcmk
|
||||
|
||||
" PEM (Privacy-Enhanced Mail)
|
||||
au BufNewFile,BufRead *.pem,*.cer,*.crt,*.csr setf pem
|
||||
|
||||
" Perl
|
||||
if has("fname_case")
|
||||
au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()
|
||||
@@ -1555,6 +1582,10 @@ au BufNewFile,BufRead *.rcp setf pilrc
|
||||
" Pine config
|
||||
au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
|
||||
|
||||
" Pip requirements
|
||||
au BufNewFile,BufRead *.pip setf requirements
|
||||
au BufNewFile,BufRead requirements.txt setf requirements
|
||||
|
||||
" Pipenv Pipfiles
|
||||
au BufNewFile,BufRead Pipfile setf toml
|
||||
au BufNewFile,BufRead Pipfile.lock setf json
|
||||
@@ -1673,6 +1704,9 @@ au BufNewFile,BufRead *.pk setf poke
|
||||
" Protocols
|
||||
au BufNewFile,BufRead */etc/protocols setf protocols
|
||||
|
||||
" PyPA manifest files
|
||||
au BufNewFile,BufRead MANIFEST.in setf pymanifest
|
||||
|
||||
" Pyret
|
||||
au BufNewFile,BufRead *.arr setf pyret
|
||||
|
||||
@@ -1687,6 +1721,9 @@ au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
|
||||
" QL
|
||||
au BufRead,BufNewFile *.ql,*.qll setf ql
|
||||
|
||||
" QML
|
||||
au BufRead,BufNewFile *.qml,*.qbs setf qml
|
||||
|
||||
" QMLdir
|
||||
au BufRead,BufNewFile qmldir setf qmldir
|
||||
|
||||
@@ -2311,6 +2348,9 @@ au BufNewFile,BufRead */.config/upstart/*.override setf upstart
|
||||
" URL shortcut
|
||||
au BufNewFile,BufRead *.url setf urlshortcut
|
||||
|
||||
" V
|
||||
au BufNewFile,BufRead *.vsh,*.vv setf v
|
||||
|
||||
" Vala
|
||||
au BufNewFile,BufRead *.vala setf vala
|
||||
|
||||
@@ -2346,7 +2386,7 @@ au BufNewFile,BufRead *.tape setf vhs
|
||||
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho setf vhdl
|
||||
|
||||
" Vim script
|
||||
au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim
|
||||
au BufNewFile,BufRead *.vim,.exrc,_exrc setf vim
|
||||
|
||||
" Viminfo file
|
||||
au BufNewFile,BufRead .viminfo,_viminfo setf viminfo
|
||||
@@ -2359,10 +2399,31 @@ au BufRead,BufNewFile *.hw,*.module,*.pkg
|
||||
\ setf virata |
|
||||
\ endif
|
||||
|
||||
" Visual Basic (also uses *.bas) or FORM
|
||||
" Visual Basic (see also *.bas *.cls)
|
||||
|
||||
" Visual Basic or FORM
|
||||
au BufNewFile,BufRead *.frm call dist#ft#FTfrm()
|
||||
|
||||
" SaxBasic is close to Visual Basic
|
||||
" Visual Basic
|
||||
" user control, ActiveX document form, active designer, property page
|
||||
au BufNewFile,BufRead *.ctl,*.dob,*.dsr,*.pag setf vb
|
||||
|
||||
" Visual Basic or Vimball Archiver
|
||||
au BufNewFile,BufRead *.vba call dist#ft#FTvba()
|
||||
|
||||
" Visual Basic Project
|
||||
au BufNewFile,BufRead *.vbp setf dosini
|
||||
|
||||
" VBScript (close to Visual Basic)
|
||||
au BufNewFile,BufRead *.vbs setf vb
|
||||
|
||||
" Visual Basic .NET (close to Visual Basic)
|
||||
au BufNewFile,BufRead *.vb setf vb
|
||||
|
||||
" Visual Studio Macro
|
||||
au BufNewFile,BufRead *.dsm setf vb
|
||||
|
||||
" SaxBasic (close to Visual Basic)
|
||||
au BufNewFile,BufRead *.sba setf vb
|
||||
|
||||
" Vgrindefs file
|
||||
@@ -2393,6 +2454,9 @@ au BufNewFile,BufRead .wgetrc,wgetrc setf wget
|
||||
" Wget2 config
|
||||
au BufNewFile,BufRead .wget2rc,wget2rc setf wget2
|
||||
|
||||
" WebGPU Shading Language (WGSL)
|
||||
au BufNewFile,BufRead *.wgsl setf wgsl
|
||||
|
||||
" Website MetaLanguage
|
||||
au BufNewFile,BufRead *.wml setf wml
|
||||
|
||||
@@ -2481,6 +2545,9 @@ au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
|
||||
" VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files
|
||||
au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
|
||||
|
||||
" Unison Language
|
||||
au BufNewFile,BufRead *.u,*.uu setf unison
|
||||
|
||||
" Qt Linguist translation source and Qt User Interface Files are XML
|
||||
" However, for .ts TypeScript is more common.
|
||||
au BufNewFile,BufRead *.ui setf xml
|
||||
@@ -2526,7 +2593,7 @@ au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
|
||||
au BufNewFile,BufRead *.y call dist#ft#FTy()
|
||||
|
||||
" Yaml
|
||||
au BufNewFile,BufRead *.yaml,*.yml setf yaml
|
||||
au BufNewFile,BufRead *.yaml,*.yml,*.eyaml setf yaml
|
||||
|
||||
" Raml
|
||||
au BufNewFile,BufRead *.raml setf raml
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim support file to switch off detection of file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2001 Jun 11
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
if exists("did_load_filetypes")
|
||||
unlet did_load_filetypes
|
||||
|
||||
@@ -2,8 +2,9 @@ vim9script noclear
|
||||
|
||||
# Vim support file to switch on loading plugins for file types
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last change: 2022 Feb 11
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last change: 2023 Aug 10
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
if exists("g:did_load_ftplugin")
|
||||
finish
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Aap recipe
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Nov 14
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
" Author: Steven Oliver <oliver.steven@gmail.com>
|
||||
" Copyright: Copyright (c) 2013 Steven Oliver
|
||||
" License: You may redistribute this under the same terms as Vim itself
|
||||
" Last Change: 2023 Aug 28 by Vim Project (undo_ftplugin)
|
||||
" --------------------------------------------------------------------------
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
@@ -17,10 +18,13 @@ set cpo&vim
|
||||
setlocal softtabstop=2 shiftwidth=2
|
||||
setlocal suffixesadd=.abap
|
||||
|
||||
let b:undo_ftplugin = "setl sts< sua< sw<"
|
||||
|
||||
" Windows allows you to filter the open file dialog
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
" Maintainer: Dorai Sitaram <ds26@gte.com>
|
||||
" URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
|
||||
" Last Change: Apr 2, 2003
|
||||
" 2023 Aug 28 by Vim Project (undo_ftplugin)
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -13,3 +14,5 @@ run ftplugin/lisp.vim
|
||||
|
||||
setl lw-=if
|
||||
setl lw+=def-art-fun,deffacts,defglobal,defrule,defschema,for,schema,while
|
||||
|
||||
let b:undo_ftplugin ..= " | setl lw<"
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: asm
|
||||
" Maintainer: Colin Caine <cmcaine at the common googlemail domain>
|
||||
" Last Changed: 23 May 2020
|
||||
" Last Change: 23 May 2020
|
||||
" 2023 Aug 28 by Vim Project (undo_ftplugin)
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl comments=:;,s1:/*,mb:*,ex:*/,://
|
||||
setl commentstring=;%s
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
let b:undo_ftplugin = "setl commentstring< comments<"
|
||||
|
||||
@@ -37,11 +37,14 @@ if exists("g:awk_is_gawk")
|
||||
let b:undo_ftplugin .= " | setl fp<"
|
||||
endif
|
||||
|
||||
let path = system("gawk 'BEGIN { printf ENVIRON[\"AWKPATH\"] }'")
|
||||
let path = substitute(path, '^\.\=:\|:\.\=$\|:\.\=:', ',,', 'g') " POSIX cwd
|
||||
let path = substitute(path, ':', ',', 'g')
|
||||
" Disabled by default for security reasons.
|
||||
if get(g:, 'awk_exec', get(g:, 'plugin_exec', 0))
|
||||
let path = system("gawk 'BEGIN { printf ENVIRON[\"AWKPATH\"] }'")
|
||||
let path = substitute(path, '^\.\=:\|:\.\=$\|:\.\=:', ',,', 'g') " POSIX cwd
|
||||
let path = substitute(path, ':', ',', 'g')
|
||||
|
||||
let &l:path = path
|
||||
let &l:path = path
|
||||
endif
|
||||
let b:undo_ftplugin .= " | setl inc< path<"
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: bash
|
||||
" Maintainer: Bram Moolenaar
|
||||
" Last Changed: 2019 Jan 12
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Changed: 2023 Aug 13
|
||||
"
|
||||
" This is not a real filetype plugin. It allows for someone to set 'filetype'
|
||||
" to "bash" in the modeline, and gets the effect of filetype "sh" with
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: BTM
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2004 Jul 06
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
" Language: Bazel (http://bazel.io)
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||
" Last Change: 2021 Jan 19
|
||||
" 2023 Aug 28 by Vim Project (undo_ftplugin)
|
||||
|
||||
""
|
||||
" @section Introduction, intro
|
||||
@@ -41,6 +42,9 @@ let &l:tabstop = s:save_tabstop
|
||||
|
||||
setlocal formatoptions-=t
|
||||
|
||||
" Initially defined in the python ftplugin sourced above
|
||||
let b:undo_ftplugin .= " | setlocal fo<"
|
||||
|
||||
" Make gf work with imports in BUILD files.
|
||||
setlocal includeexpr=substitute(v:fname,'//','','')
|
||||
|
||||
@@ -48,6 +52,7 @@ setlocal includeexpr=substitute(v:fname,'//','','')
|
||||
if get(g:, 'ft_bzl_fold', 0)
|
||||
setlocal foldmethod=syntax
|
||||
setlocal foldtext=BzlFoldText()
|
||||
let b:undo_ftplugin .= " | setlocal fdm< fdt<"
|
||||
endif
|
||||
|
||||
if exists('*BzlFoldText')
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2022 Apr 08
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
||||
@@ -55,13 +55,19 @@ if &filetype == 'changelog'
|
||||
elseif $EMAIL_ADDRESS != ""
|
||||
return $EMAIL_ADDRESS
|
||||
endif
|
||||
let s:default_login = 'unknown'
|
||||
|
||||
let login = s:login()
|
||||
" Disabled by default for security reasons.
|
||||
if get(g:, 'changelog_exec', get(g:, 'plugin_exec', 0))
|
||||
let login = s:login()
|
||||
else
|
||||
let login = s:default_login
|
||||
endif
|
||||
return printf('%s <%s@%s>', s:name(login), login, s:hostname())
|
||||
endfunction
|
||||
|
||||
function! s:login()
|
||||
return s:trimmed_system_with_default('whoami', 'unknown')
|
||||
return s:trimmed_system_with_default('whoami', s:default_login)
|
||||
endfunction
|
||||
|
||||
function! s:trimmed_system_with_default(command, default)
|
||||
@@ -71,7 +77,7 @@ if &filetype == 'changelog'
|
||||
function! s:system_with_default(command, default)
|
||||
let output = system(a:command)
|
||||
if v:shell_error
|
||||
return default
|
||||
return a:default
|
||||
endif
|
||||
return output
|
||||
endfunction
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: C++
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Jul 26
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
||||
@@ -122,7 +122,7 @@ function NewVersion()
|
||||
normal! 1G0
|
||||
call search(')')
|
||||
normal! h
|
||||
" ':normal' doens't support key annotation (<c-a>) directly.
|
||||
" ':normal' doesn't support key annotation (<c-a>) directly.
|
||||
" Vim's manual recommends using ':exe' to use key annotation indirectly (backslash-escaping needed though).
|
||||
exe "normal! \<c-a>"
|
||||
call setline(1, substitute(getline(1), '-\$\$', '-', ''))
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Diff
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Nov 14
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||
" URL: https://github.com/ocaml/vim-ocaml
|
||||
" Last Change:
|
||||
" 2018 Nov 3 - Added commentstring (Markus Mottl)
|
||||
" 2017 Sep 6 - Initial version (Etienne Millon)
|
||||
" 2023 Aug 28 - Added undo_ftplugin (Vim Project)
|
||||
" 2018 Nov 03 - Added commentstring (Markus Mottl)
|
||||
" 2017 Sep 06 - Initial version (Etienne Millon)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -18,3 +19,5 @@ setl commentstring=;\ %s
|
||||
setl comments=:;
|
||||
|
||||
setl iskeyword+=#,?,.,/
|
||||
|
||||
let b:undo_ftplugin = "setl lisp< cms< com< isk<"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Jun 28
|
||||
" Last Change: 2022 May 15
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -86,8 +86,12 @@ runtime! ftplugin/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Combine the new set of values with those previously included.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
|
||||
if !exists('b:undo_ftplugin')
|
||||
" No-op
|
||||
let b:undo_ftplugin = 'exe'
|
||||
endif
|
||||
if !empty(s:undo_ftplugin)
|
||||
let b:undo_ftplugin .= '|' . s:undo_ftplugin
|
||||
endif
|
||||
if exists ("b:browsefilter")
|
||||
let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
|
||||
@@ -119,7 +123,7 @@ endif
|
||||
setlocal commentstring=<%#%s%>
|
||||
|
||||
let b:undo_ftplugin = "setl cms< " .
|
||||
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
|
||||
\ " | unlet! b:browsefilter b:match_words | " . b:undo_ftplugin
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
" Maintainer: Nicholas Boyle (github.com/nickeb96)
|
||||
" Repository: https://github.com/nickeb96/fish.vim
|
||||
" Last Change: February 1, 2023
|
||||
" 2023 Aug 28 by Vim Project (undo_ftplugin)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -13,3 +14,5 @@ setlocal iskeyword=@,48-57,_,192-255,-,.
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#%s
|
||||
setlocal formatoptions+=crjq
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com< fo< isk<"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user