Compare commits
343 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
745b938a48 | ||
|
|
b0ad2d92fd | ||
|
|
e939f5ebba | ||
|
|
fc4c44836a | ||
|
|
70c43d84be | ||
|
|
1080c48ec8 | ||
|
|
1a804528ab | ||
|
|
47d1666d60 | ||
|
|
a827bf3ea8 | ||
|
|
250155ae31 | ||
|
|
44db8213d3 | ||
|
|
806d037671 | ||
|
|
8d02ce1ed7 | ||
|
|
06b77229ca | ||
|
|
dc5490e2cb | ||
|
|
85b6747abc | ||
|
|
76687d2717 | ||
|
|
1450112eef | ||
|
|
3a8ad5918b | ||
|
|
a6c09a7c20 | ||
|
|
3e93a2b075 | ||
|
|
dff97e65eb | ||
|
|
50e0525445 | ||
|
|
fe6fb267e6 | ||
|
|
4663435074 | ||
|
|
7924a17791 | ||
|
|
502d8ae3e8 | ||
|
|
acc4b5648b | ||
|
|
8e4af851fd | ||
|
|
7e765a39b7 | ||
|
|
c351dc1e0c | ||
|
|
058ee7c569 | ||
|
|
2a7aa83458 | ||
|
|
428058ab32 | ||
|
|
79a6e25b79 | ||
|
|
abe628e1bd | ||
|
|
f4e88f2152 | ||
|
|
7ef4a2fe37 | ||
|
|
e15ebeffb3 | ||
|
|
206919191f | ||
|
|
d1c58999c8 | ||
|
|
6f4754b9f7 | ||
|
|
bcfa11b7df | ||
|
|
ff5cbe8133 | ||
|
|
36c2add7f8 | ||
|
|
28e60cc088 | ||
|
|
47bcc5f4c8 | ||
|
|
3ba685eeef | ||
|
|
39b8944539 | ||
|
|
7b29f6a394 | ||
|
|
5600a709f4 | ||
|
|
9530b580a7 | ||
|
|
0bfa84916d | ||
|
|
b697dc295d | ||
|
|
3d8e25a6d2 | ||
|
|
0bd663a380 | ||
|
|
19e69a6330 | ||
|
|
e70dd11ef4 | ||
|
|
6517f14165 | ||
|
|
f0e7e6365e | ||
|
|
b7057bdd09 | ||
|
|
45f9cfbdc7 | ||
|
|
e6a4200ff4 | ||
|
|
dd5893be34 | ||
|
|
e615db0604 | ||
|
|
05386ca1d4 | ||
|
|
6f0ddbf00d | ||
|
|
2017d6f3b1 | ||
|
|
9c7cae66bc | ||
|
|
21f0d6cbca | ||
|
|
4ede01f188 | ||
|
|
92000e2e71 | ||
|
|
14b8d6ac6b | ||
|
|
ae1bd87fe8 | ||
|
|
726f7f91fd | ||
|
|
7e93577a95 | ||
|
|
05b2761548 | ||
|
|
4ac893f321 | ||
|
|
fc6ccebea6 | ||
|
|
57df9e8a9f | ||
|
|
8aa0e6c60d | ||
|
|
ca34db3bde | ||
|
|
f61c89d2e6 | ||
|
|
bed34f0a8a | ||
|
|
f67c717e34 | ||
|
|
937610bc9f | ||
|
|
1a8825d7a3 | ||
|
|
b0b2b73dca | ||
|
|
b4868eddd9 | ||
|
|
17dd519633 | ||
|
|
a9528b39a6 | ||
|
|
94075b2b0e | ||
|
|
ef7aadbe36 | ||
|
|
d02dce2bb5 | ||
|
|
fd218c8a36 | ||
|
|
6079da7cfb | ||
|
|
113b8dc111 | ||
|
|
840f16202e | ||
|
|
1836d61578 | ||
|
|
cbbc48f64b | ||
|
|
31dcc8de46 | ||
|
|
1247126956 | ||
|
|
64283d5e1f | ||
|
|
78f60322f7 | ||
|
|
afa76e1cf2 | ||
|
|
b3d9ceed2b | ||
|
|
6389baa669 | ||
|
|
15d1635e50 | ||
|
|
3f3597be3f | ||
|
|
262898ae43 | ||
|
|
9f8c304c8a | ||
|
|
e8741a73e2 | ||
|
|
0023f82a76 | ||
|
|
47036b6bd7 | ||
|
|
c73499351a | ||
|
|
c665dabdf4 | ||
|
|
c84287d6d8 | ||
|
|
dc98776f89 | ||
|
|
d9b74a2a41 | ||
|
|
d648c01f2f | ||
|
|
8f9956994d | ||
|
|
fd31be29b8 | ||
|
|
c81e9bf4f0 | ||
|
|
f6ebc82004 | ||
|
|
a9725221ac | ||
|
|
fa1a457059 | ||
|
|
b5988e3656 | ||
|
|
bfac409d0b | ||
|
|
38ecd97226 | ||
|
|
857c8bb1bb | ||
|
|
d4e2f50901 | ||
|
|
04b871da80 | ||
|
|
e32c3c462c | ||
|
|
069613c9e8 | ||
|
|
f60a63485e | ||
|
|
1050476ead | ||
|
|
e3ce17a3ca | ||
|
|
e1833bfd01 | ||
|
|
c53b467473 | ||
|
|
ece07639f4 | ||
|
|
0f112052ac | ||
|
|
26ebf1f036 | ||
|
|
7bfa6d698e | ||
|
|
c0a1d370fa | ||
|
|
3e4fa3d7d3 | ||
|
|
d9d2fd0aa3 | ||
|
|
c43e6235c7 | ||
|
|
130f65d46b | ||
|
|
0e3e7ba05f | ||
|
|
3049fcf0a1 | ||
|
|
4050305bfd | ||
|
|
a00e622a29 | ||
|
|
33b25d1317 | ||
|
|
ced2b38a56 | ||
|
|
8d9e470aa9 | ||
|
|
71930f174d | ||
|
|
78a70533c3 | ||
|
|
de05bb2573 | ||
|
|
54598066ca | ||
|
|
d041f4208b | ||
|
|
53c296112e | ||
|
|
f5d639a8af | ||
|
|
5d9826973d | ||
|
|
f479cac084 | ||
|
|
f111cdfae6 | ||
|
|
17d36cbcd3 | ||
|
|
3cf21b3051 | ||
|
|
2284f6cca3 | ||
|
|
b8822442d7 | ||
|
|
0bbca540f7 | ||
|
|
0d47ad4027 | ||
|
|
d6f27c66cc | ||
|
|
19db9e6ba7 | ||
|
|
762838218f | ||
|
|
160aa86a9d | ||
|
|
6990b78f25 | ||
|
|
5e6b9882fe | ||
|
|
577bd85d55 | ||
|
|
fe2ef0b2cd | ||
|
|
ee63031b57 | ||
|
|
b06cfcf5a3 | ||
|
|
dc4451df61 | ||
|
|
5f25c38550 | ||
|
|
c14f667626 | ||
|
|
f85a424c83 | ||
|
|
2f0936cb9a | ||
|
|
b2810f123c | ||
|
|
782b43d894 | ||
|
|
7c24dfddc2 | ||
|
|
04935fb17e | ||
|
|
1433672568 | ||
|
|
aa9b3cacd5 | ||
|
|
9f1a39a5d1 | ||
|
|
67ffb41786 | ||
|
|
748b308eeb | ||
|
|
370791465e | ||
|
|
d844862bce | ||
|
|
48d0ac775c | ||
|
|
62a099cc6d | ||
|
|
a4c96252b1 | ||
|
|
e12406526a | ||
|
|
d1f34e64f0 | ||
|
|
71f21938bc | ||
|
|
b2d85e3784 | ||
|
|
cb1956d6f2 | ||
|
|
2b04d5f1ef | ||
|
|
e664a32701 | ||
|
|
834d41853e | ||
|
|
32884ad753 | ||
|
|
a909c48bec | ||
|
|
11de43d2d4 | ||
|
|
2ef01d929d | ||
|
|
84c62d59a3 | ||
|
|
d5f400c607 | ||
|
|
18f4740f04 | ||
|
|
a33737b6d8 | ||
|
|
58493cfae2 | ||
|
|
269dc63618 | ||
|
|
c689f8c3d9 | ||
|
|
e60b3c47d7 | ||
|
|
d82a47dd04 | ||
|
|
bb8cac56d9 | ||
|
|
9d00e4a814 | ||
|
|
d3a117814d | ||
|
|
677658ae49 | ||
|
|
8e7d9db32b | ||
|
|
c653e4a2bd | ||
|
|
a6f7929e62 | ||
|
|
548911ee14 | ||
|
|
d88be5be80 | ||
|
|
6cac77016b | ||
|
|
d94fbfc74a | ||
|
|
fcd1635a46 | ||
|
|
c024ed9233 | ||
|
|
48824e952f | ||
|
|
10d6f18b2f | ||
|
|
078a46161e | ||
|
|
9acf2d8be9 | ||
|
|
ad8f248585 | ||
|
|
c88e977862 | ||
|
|
0e2508d9e6 | ||
|
|
114dbda785 | ||
|
|
5c75eed758 | ||
|
|
e982586f8e | ||
|
|
475d9521ba | ||
|
|
1d423ef75f | ||
|
|
b09feaa86e | ||
|
|
ac78dd4a35 | ||
|
|
3d0da09bb2 | ||
|
|
eaaac014a0 | ||
|
|
8bfa0eb863 | ||
|
|
2b4ecc2c31 | ||
|
|
b3bd1d39e6 | ||
|
|
a6feb163f0 | ||
|
|
6b1a99dfe3 | ||
|
|
9a846fbaa5 | ||
|
|
b34689010a | ||
|
|
cbadefe25a | ||
|
|
1f4a3457a3 | ||
|
|
0f7a5e758c | ||
|
|
3a846e6bca | ||
|
|
0699b040e6 | ||
|
|
74409f6279 | ||
|
|
56200eed62 | ||
|
|
e70cec9760 | ||
|
|
460ae5dfca | ||
|
|
b37a65e4bf | ||
|
|
b79ee0c299 | ||
|
|
654b729c4c | ||
|
|
096ca73dac | ||
|
|
d0819d11ec | ||
|
|
436b5adc97 | ||
|
|
f1474d801b | ||
|
|
6d0570117a | ||
|
|
ef089f50f9 | ||
|
|
1a9922243a | ||
|
|
4b1478093e | ||
|
|
eb822a280c | ||
|
|
9a015111a5 | ||
|
|
6ad84ab3e4 | ||
|
|
1fa3de1ce8 | ||
|
|
04fb916684 | ||
|
|
d293981d2b | ||
|
|
94f3192b03 | ||
|
|
4c13e5e676 | ||
|
|
cfe3af284a | ||
|
|
f38aad85cf | ||
|
|
1c67f3a977 | ||
|
|
13789bf103 | ||
|
|
5d2e007ccb | ||
|
|
491669701c | ||
|
|
8e7cc6b920 | ||
|
|
ab16ad33ba | ||
|
|
94fb8274ca | ||
|
|
5a664fe57f | ||
|
|
ba26367fea | ||
|
|
edc6f10390 | ||
|
|
ccc1644f95 | ||
|
|
5d20fbf2e7 | ||
|
|
5ea5f37372 | ||
|
|
3d0abad5bf | ||
|
|
264d3ddac0 | ||
|
|
febb78fa17 | ||
|
|
c97f9a55bd | ||
|
|
10c75c4a09 | ||
|
|
11ceb7d949 | ||
|
|
8c697e3698 | ||
|
|
92f246e4f9 | ||
|
|
06f6095623 | ||
|
|
7473a84cf9 | ||
|
|
4bf1006cae | ||
|
|
8bb3fe4d4d | ||
|
|
d9da86e94e | ||
|
|
90c317f224 | ||
|
|
8b6256f6ec | ||
|
|
be4e223ead | ||
|
|
a4d131d110 | ||
|
|
1cae5a0a03 | ||
|
|
8dac2acd6a | ||
|
|
4b28ba3245 | ||
|
|
af4a61a85d | ||
|
|
5da36052a4 | ||
|
|
bf7ff61af4 | ||
|
|
ef8f04b1d1 | ||
|
|
23018f2d4b | ||
|
|
bbdd3fb804 | ||
|
|
27708e6c7b | ||
|
|
c553a21e18 | ||
|
|
1f318c6eac | ||
|
|
c88ac94a0b | ||
|
|
7319981f21 | ||
|
|
71c41255f6 | ||
|
|
9c23f9bb5f | ||
|
|
71eb3ad579 | ||
|
|
8bb65f230d | ||
|
|
ec86520f94 | ||
|
|
fb9dcb080b | ||
|
|
1802405d71 | ||
|
|
db8e5c21b9 | ||
|
|
ae1068afde | ||
|
|
223d0a6bc8 | ||
|
|
5cd647935d | ||
|
|
35cfd793aa |
97
.github/workflows/ci.yml
vendored
97
.github/workflows/ci.yml
vendored
@@ -64,23 +64,29 @@ jobs:
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y \
|
||||
autoconf \
|
||||
lcov \
|
||||
PKGS=( \
|
||||
gettext \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python-dev \
|
||||
python3-dev \
|
||||
liblua5.3-dev \
|
||||
lua5.3 \
|
||||
ruby-dev \
|
||||
tcl-dev \
|
||||
cscope \
|
||||
libgtk2.0-dev \
|
||||
desktop-file-utils \
|
||||
libtool-bin \
|
||||
libsodium-dev
|
||||
)
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
PKGS+=( \
|
||||
autoconf \
|
||||
lcov \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python-dev \
|
||||
python3-dev \
|
||||
liblua5.3-dev \
|
||||
lua5.3 \
|
||||
ruby-dev \
|
||||
tcl-dev \
|
||||
cscope \
|
||||
libsodium-dev \
|
||||
)
|
||||
fi
|
||||
sudo apt update && sudo apt install -y "${PKGS[@]}"
|
||||
|
||||
- name: Install clang-13
|
||||
if: matrix.compiler == 'clang'
|
||||
@@ -92,6 +98,7 @@ jobs:
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100
|
||||
sudo update-alternatives --set clang /usr/bin/clang-13
|
||||
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-13 100
|
||||
sudo update-alternatives --install /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-13 100
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
@@ -119,7 +126,6 @@ jobs:
|
||||
;;
|
||||
esac
|
||||
|
||||
CFLAGS=""
|
||||
if ${{ matrix.coverage == true }}; then
|
||||
CFLAGS="$CFLAGS --coverage -DUSE_GCOV_FLUSH"
|
||||
echo "LDFLAGS=--coverage"
|
||||
@@ -218,45 +224,51 @@ jobs:
|
||||
do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||
do_test make ${SHADOWOPT} ${TEST}
|
||||
|
||||
# - name: Coveralls
|
||||
# if: matrix.coverage && success() && github.event_name != 'pull_request'
|
||||
# env:
|
||||
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
# COVERALLS_PARALLEL: true
|
||||
# TRAVIS_JOB_ID: ${{ github.run_id }}
|
||||
# run: |
|
||||
# sudo apt-get install -y python3-setuptools python3-wheel
|
||||
# sudo -H pip3 install pip -U
|
||||
# # needed for https support for coveralls building cffi only works with gcc, not with clang
|
||||
# CC=gcc pip3 install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
|
||||
# ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
|
||||
# - name: Coveralls
|
||||
# if: matrix.coverage && success() && github.event_name != 'pull_request'
|
||||
# env:
|
||||
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
# COVERALLS_PARALLEL: true
|
||||
# TRAVIS_JOB_ID: ${{ github.run_id }}
|
||||
# run: |
|
||||
# sudo apt-get install -y python3-setuptools python3-wheel
|
||||
# sudo -H pip3 install pip -U
|
||||
# # needed for https support for coveralls building cffi only works with gcc, not with clang
|
||||
# CC=gcc pip3 install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
|
||||
# ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
|
||||
|
||||
- name: Codecov
|
||||
- name: Generate gcov files
|
||||
if: matrix.coverage && success()
|
||||
run: |
|
||||
cd "${SRCDIR}"
|
||||
bash <(curl -s https://codecov.io/bash) -F "${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }}"
|
||||
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
|
||||
|
||||
- name: Codecov
|
||||
if: matrix.coverage && success()
|
||||
uses: codecov/codecov-action@v2
|
||||
with:
|
||||
flags: ${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }}
|
||||
|
||||
- name: ASan logs
|
||||
if: contains(matrix.extra, 'asan') && !cancelled()
|
||||
run: |
|
||||
for f in $(grep -lR '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "${LOG_DIR}"); do
|
||||
asan_symbolize-13 -l "$f"
|
||||
asan_symbolize -l "$f"
|
||||
false # in order to fail a job
|
||||
done
|
||||
|
||||
# coveralls:
|
||||
# runs-on: ubuntu-18.04
|
||||
# coveralls:
|
||||
# runs-on: ubuntu-18.04
|
||||
#
|
||||
# needs: linux
|
||||
# if: always() && github.event_name != 'pull_request'
|
||||
# needs: linux
|
||||
# if: always() && github.event_name != 'pull_request'
|
||||
#
|
||||
# steps:
|
||||
# - name: Parallel finished
|
||||
# env:
|
||||
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
# run: |
|
||||
# curl -k "https://coveralls.io/webhook?repo_token=${COVERALLS_REPO_TOKEN}" -d "payload[build_num]=${GITHUB_RUN_ID}&payload[status]=done"
|
||||
# steps:
|
||||
# - name: Parallel finished
|
||||
# env:
|
||||
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
# run: |
|
||||
# curl -k "https://coveralls.io/webhook?repo_token=${COVERALLS_REPO_TOKEN}" -d "payload[build_num]=${GITHUB_RUN_ID}&payload[status]=done"
|
||||
|
||||
macos:
|
||||
runs-on: macos-latest
|
||||
@@ -277,6 +289,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.features == 'huge'
|
||||
env:
|
||||
HOMEBREW_NO_AUTO_UPDATE: 1
|
||||
run: |
|
||||
@@ -459,17 +472,15 @@ jobs:
|
||||
run: |
|
||||
call "%VCVARSALL%" ${{ matrix.vcarch }}
|
||||
cd src
|
||||
:: Filter out the progress bar from the build log
|
||||
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
|
||||
if "${{ matrix.features }}"=="HUGE" (
|
||||
nmake -nologo -f Make_mvc2.mak ^
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
FEATURES=${{ matrix.features }} ^
|
||||
GUI=yes IME=yes ICONV=yes VIMDLL=yes ^
|
||||
DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
|
||||
DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR%
|
||||
) else (
|
||||
nmake -nologo -f Make_mvc2.mak ^
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
FEATURES=${{ matrix.features }} ^
|
||||
GUI=yes IME=yes ICONV=yes VIMDLL=yes
|
||||
)
|
||||
|
||||
5
Filelist
5
Filelist
@@ -497,7 +497,6 @@ SRC_UNIX = \
|
||||
SRC_DOS_UNIX = \
|
||||
src/gui_xim.c \
|
||||
src/if_cscope.c \
|
||||
src/if_cscope.h \
|
||||
src/if_lua.c \
|
||||
src/if_mzsch.c \
|
||||
src/if_mzsch.h \
|
||||
@@ -544,18 +543,14 @@ SRC_DOS = \
|
||||
tools/rename.bat \
|
||||
src/bigvim.bat \
|
||||
src/bigvim64.bat \
|
||||
src/msvcsetup.bat \
|
||||
src/msvc2008.bat \
|
||||
src/msvc2010.bat \
|
||||
src/msvc2015.bat \
|
||||
src/msys32.bat \
|
||||
src/msys64.bat \
|
||||
src/dimm.idl \
|
||||
src/dlldata.c \
|
||||
src/dosinst.c \
|
||||
src/dosinst.h \
|
||||
src/glbl_ime.cpp \
|
||||
src/glbl_ime.h \
|
||||
src/gui_dwrite.cpp \
|
||||
src/gui_dwrite.h \
|
||||
src/gui_w32.c \
|
||||
|
||||
@@ -5,11 +5,9 @@ setlocal ENABLEDELAYEDEXPANSION
|
||||
cd %APPVEYOR_BUILD_FOLDER%
|
||||
|
||||
cd src
|
||||
:: Filter out the progress bar from the build log
|
||||
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
|
||||
|
||||
echo "Building MSVC 64bit console Version"
|
||||
nmake -f Make_mvc2.mak CPU=AMD64 ^
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
|
||||
FEATURES=%FEATURE%
|
||||
if not exist vim.exe (
|
||||
@@ -21,13 +19,13 @@ if not exist vim.exe (
|
||||
:: GUI needs to be last, so that testing works
|
||||
echo "Building MSVC 64bit GUI Version"
|
||||
if "%FEATURE%" == "HUGE" (
|
||||
nmake -f Make_mvc2.mak CPU=AMD64 ^
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
|
||||
PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
|
||||
PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 ^
|
||||
FEATURES=%FEATURE%
|
||||
) ELSE (
|
||||
nmake -f Make_mvc2.mak CPU=AMD64 ^
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
|
||||
FEATURES=%FEATURE%
|
||||
)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Clang 12 (or Apple clang 13) and later makes a warning '-Wcompound-token-split-by-macro' enable by default.
|
||||
/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
|
||||
/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
|
||||
/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unused-function/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
45
runtime/autoload/dist/ft.vim
vendored
45
runtime/autoload/dist/ft.vim
vendored
@@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Dec 17
|
||||
" Last Change: 2022 Jan 11
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
@@ -67,13 +67,29 @@ func dist#ft#FTasmsyntax()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Check if one of the first five lines contains "VB_Name". In that case it is
|
||||
" probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype.
|
||||
func dist#ft#FTVB(alt)
|
||||
if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
func dist#ft#FTbas()
|
||||
if exists("g:filetype_bas")
|
||||
exe "setf " . g:filetype_bas
|
||||
return
|
||||
endif
|
||||
|
||||
" most frequent FreeBASIC-specific keywords in distro files
|
||||
let fb_keywords = '\c^\s*\%(extern\|var\|enum\|private\|scope\|union\|byref\|operator\|constructor\|delete\|namespace\|public\|property\|with\|destructor\|using\)\>\%(\s*[:=(]\)\@!'
|
||||
let fb_preproc = '\c^\s*\%(#\a\+\|option\s\+\%(byval\|dynamic\|escape\|\%(no\)\=gosub\|nokeyword\|private\|static\)\>\)'
|
||||
let fb_comment = "^\\s*/'"
|
||||
" OPTION EXPLICIT, without the leading underscore, is common to many dialects
|
||||
let qb64_preproc = '\c^\s*\%($\a\+\|option\s\+\%(_explicit\|_\=explicitarray\)\>\)'
|
||||
|
||||
let lines = getline(1, min([line("$"), 100]))
|
||||
|
||||
if match(lines, fb_preproc) > -1 || match(lines, fb_comment) > -1 || match(lines, fb_keywords) > -1
|
||||
setf freebasic
|
||||
elseif match(lines, qb64_preproc) > -1
|
||||
setf qb64
|
||||
elseif match(lines, '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)') > -1
|
||||
setf vb
|
||||
else
|
||||
exe "setf " . a:alt
|
||||
setf basic
|
||||
endif
|
||||
endfunc
|
||||
|
||||
@@ -829,6 +845,23 @@ func dist#ft#Dep3patch()
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
" This function checks the first 15 lines for appearance of 'FoamFile'
|
||||
" and then 'object' in a following line.
|
||||
" In that case, it's probably an OpenFOAM file
|
||||
func dist#ft#FTfoam()
|
||||
let ffile = 0
|
||||
let lnum = 1
|
||||
while lnum <= 15
|
||||
if getline(lnum) =~# '^FoamFile'
|
||||
let ffile = 1
|
||||
elseif ffile == 1 && getline(lnum) =~# '^\s*object'
|
||||
setf foam
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
endfunc
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -16,6 +16,7 @@ include ../../src/auto/config.mk
|
||||
DOCS = \
|
||||
arabic.txt \
|
||||
autocmd.txt \
|
||||
builtin.txt \
|
||||
change.txt \
|
||||
channel.txt \
|
||||
cmdline.txt \
|
||||
@@ -161,6 +162,7 @@ DOCS = \
|
||||
HTMLS = \
|
||||
arabic.html \
|
||||
autocmd.html \
|
||||
builtin.html \
|
||||
change.html \
|
||||
channel.html \
|
||||
cmdline.html \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2021 Nov 20
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2022 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -51,10 +51,10 @@ effects. Be careful not to destroy your text.
|
||||
2. Defining autocommands *autocmd-define*
|
||||
|
||||
*:au* *:autocmd*
|
||||
:au[tocmd] [group] {event} {pat} [++once] [++nested] {cmd}
|
||||
:au[tocmd] [group] {event} {aupat} [++once] [++nested] {cmd}
|
||||
Add {cmd} to the list of commands that Vim will
|
||||
execute automatically on {event} for a file matching
|
||||
{pat} |autocmd-patterns|.
|
||||
{aupat} |autocmd-patterns|.
|
||||
Here {event} cannot be "*". *E1155*
|
||||
Note: A quote character is seen as argument to the
|
||||
:autocmd and won't start a comment.
|
||||
@@ -145,19 +145,19 @@ prompt. When one command outputs two messages this can happen anyway.
|
||||
==============================================================================
|
||||
3. Removing autocommands *autocmd-remove*
|
||||
|
||||
:au[tocmd]! [group] {event} {pat} [++once] [++nested] {cmd}
|
||||
:au[tocmd]! [group] {event} {aupat} [++once] [++nested] {cmd}
|
||||
Remove all autocommands associated with {event} and
|
||||
{pat}, and add the command {cmd}.
|
||||
{aupat}, and add the command {cmd}.
|
||||
See |autocmd-once| for [++once].
|
||||
See |autocmd-nested| for [++nested].
|
||||
|
||||
:au[tocmd]! [group] {event} {pat}
|
||||
:au[tocmd]! [group] {event} {aupat}
|
||||
Remove all autocommands associated with {event} and
|
||||
{pat}.
|
||||
{aupat}.
|
||||
|
||||
:au[tocmd]! [group] * {pat}
|
||||
Remove all autocommands associated with {pat} for all
|
||||
events.
|
||||
:au[tocmd]! [group] * {aupat}
|
||||
Remove all autocommands associated with {aupat} for
|
||||
all events.
|
||||
|
||||
:au[tocmd]! [group] {event}
|
||||
Remove ALL autocommands for {event}.
|
||||
@@ -177,12 +177,12 @@ with ":augroup"); otherwise, Vim uses the group defined with [group].
|
||||
==============================================================================
|
||||
4. Listing autocommands *autocmd-list*
|
||||
|
||||
:au[tocmd] [group] {event} {pat}
|
||||
:au[tocmd] [group] {event} {aupat}
|
||||
Show the autocommands associated with {event} and
|
||||
{pat}.
|
||||
{aupat}.
|
||||
|
||||
:au[tocmd] [group] * {pat}
|
||||
Show the autocommands associated with {pat} for all
|
||||
:au[tocmd] [group] * {aupat}
|
||||
Show the autocommands associated with {aupat} for all
|
||||
events.
|
||||
|
||||
:au[tocmd] [group] {event}
|
||||
@@ -1211,7 +1211,7 @@ TextYankPost After text has been yanked or deleted in the
|
||||
Not triggered when |quote_| is used nor when
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|.
|
||||
see |textlock|. *E1064*
|
||||
{only when compiled with the +eval feature}
|
||||
|
||||
*User*
|
||||
@@ -1279,8 +1279,8 @@ VimResume When the Vim instance is resumed after being
|
||||
:autocmd VimResume * checktime
|
||||
< *VimSuspend*
|
||||
VimSuspend When the Vim instance is suspended. Only when
|
||||
CTRL-Z was typed inside Vim, not when the
|
||||
SIGSTOP or SIGTSTP signal was sent to Vim.
|
||||
CTRL-Z was typed inside Vim, or when the SIGTSTP
|
||||
signal was sent to Vim, but not for SIGSTOP.
|
||||
*WinClosed*
|
||||
WinClosed After closing a window. The pattern is
|
||||
matched against the |window-ID|. Both
|
||||
@@ -1311,16 +1311,16 @@ WinNew When a new window was created. Not done for
|
||||
Before a WinEnter event.
|
||||
|
||||
==============================================================================
|
||||
6. Patterns *autocmd-patterns* *{pat}*
|
||||
6. Patterns *autocmd-patterns* *{aupat}*
|
||||
|
||||
The {pat} argument can be a comma separated list. This works as if the
|
||||
command was given with each pattern separately. Thus this command: >
|
||||
The {aupat} argument of `:autocmd` can be a comma separated list. This works as
|
||||
if the command was given with each pattern separately. Thus this command: >
|
||||
:autocmd BufRead *.txt,*.info set et
|
||||
Is equivalent to: >
|
||||
:autocmd BufRead *.txt set et
|
||||
:autocmd BufRead *.info set et
|
||||
|
||||
The file pattern {pat} is tested for a match against the file name in one of
|
||||
The file pattern {aupat} is tested for a match against the file name in one of
|
||||
two ways:
|
||||
1. When there is no '/' in the pattern, Vim checks for a match against only
|
||||
the tail part of the file name (without its leading directory path).
|
||||
|
||||
10175
runtime/doc/builtin.txt
Normal file
10175
runtime/doc/builtin.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.2. Last change: 2021 Jun 23
|
||||
*change.txt* For Vim version 8.2. Last change: 2021 Dec 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -259,6 +259,9 @@ Or use "caw" (see |aw|).
|
||||
line.
|
||||
Adding [!] toggles 'autoindent' for the time this
|
||||
command is executed.
|
||||
This command is not supported in |Vim9| script,
|
||||
because it is too easily confused with a variable
|
||||
name.
|
||||
|
||||
==============================================================================
|
||||
3. Simple changes *simple-change*
|
||||
@@ -1374,6 +1377,9 @@ The next three commands always work on whole lines.
|
||||
|
||||
*:t*
|
||||
:t Synonym for copy.
|
||||
This command is not supported in |Vim9| script,
|
||||
because it is too easily confused with a variable
|
||||
name.
|
||||
|
||||
:[range]m[ove] {address} *:m* *:mo* *:move* *E134*
|
||||
Move the lines given by [range] to below the line
|
||||
@@ -1671,7 +1677,8 @@ r Automatically insert the current comment leader after hitting
|
||||
<Enter> in Insert mode.
|
||||
*fo-o*
|
||||
o Automatically insert the current comment leader after hitting 'o' or
|
||||
'O' in Normal mode.
|
||||
'O' in Normal mode. In case comment is unwanted in a specific place
|
||||
use CTRL-U to quickly delete it. |i_CTRL-U|
|
||||
*fo-q*
|
||||
q Allow formatting of comments with "gq".
|
||||
Note that formatting will not change blank lines or lines containing
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2021 Dec 04
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -705,6 +705,15 @@ Some Ex commands accept a line range in front of them. This is noted as
|
||||
|
||||
The basics are explained in section |10.3| of the user manual.
|
||||
|
||||
In |Vim9| script a range needs to be prefixed with a colon to avoid ambiguity
|
||||
with continuation lines. For example, "+" can be used for a range but is also
|
||||
a continuation of an expression: >
|
||||
var result = start
|
||||
+ print
|
||||
If the "+" is a range then it must be prefixed with a colon: >
|
||||
var result = start
|
||||
:+ print
|
||||
<
|
||||
*:,* *:;*
|
||||
When separated with ';' the cursor position will be set to that line
|
||||
before interpreting the next line specifier. This doesn't happen for ','.
|
||||
@@ -739,7 +748,8 @@ Line numbers may be specified with: *:range* *{address}*
|
||||
|
||||
Each may be followed (several times) by '+' or '-' and an optional number.
|
||||
This number is added or subtracted from the preceding line number. If the
|
||||
number is omitted, 1 is used.
|
||||
number is omitted, 1 is used. If there is nothing before the '+' or '-' then
|
||||
the current line is used.
|
||||
|
||||
The "/" and "?" after {pattern} are required to separate the pattern from
|
||||
anything that follows.
|
||||
@@ -769,7 +779,7 @@ Some commands allow for a count after the command. This count is used as the
|
||||
number of lines to be used, starting with the line given in the last line
|
||||
specifier (the default is the cursor line). The commands that accept a count
|
||||
are the ones that use a range but do not have a file name argument (because
|
||||
a file name can also be a number).
|
||||
a file name can also be a number). The count cannot be negative.
|
||||
|
||||
Examples: >
|
||||
:s/x/X/g 5 substitute 'x' by 'X' in the current line and four
|
||||
@@ -940,6 +950,7 @@ Note: these are typed literally, they are not special keys!
|
||||
and "script {file-name}[{lnum}]" for a script line, and
|
||||
".." in between items. E.g.:
|
||||
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
|
||||
If there is no call stack you get error *E489* .
|
||||
*:<slnum>* *<slnum>*
|
||||
<slnum> When executing a ":source" command, is replaced with the
|
||||
line number. *E842*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 8.2. Last change: 2021 May 24
|
||||
*diff.txt* For Vim version 8.2. Last change: 2022 Jan 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -335,8 +335,9 @@ After setting this variable, reload the syntax script: >
|
||||
|
||||
FINDING THE DIFFERENCES *diff-diffexpr*
|
||||
|
||||
The 'diffexpr' option can be set to use something else than the standard
|
||||
"diff" program to compare two files and find the differences. *E959*
|
||||
The 'diffexpr' option can be set to use something else than the internal diff
|
||||
support or the standard "diff" program to compare two files and find the
|
||||
differences. *E959*
|
||||
|
||||
When 'diffexpr' is empty, Vim uses this command to find the differences
|
||||
between file1 and file2: >
|
||||
@@ -369,7 +370,7 @@ format mentioned. These variables are set to the file names used:
|
||||
|
||||
v:fname_in original file
|
||||
v:fname_new new version of the same file
|
||||
v:fname_out resulting diff file
|
||||
v:fname_out where to write the resulting diff file
|
||||
|
||||
Additionally, 'diffexpr' should take care of "icase" and "iwhite" in the
|
||||
'diffopt' option. 'diffexpr' cannot change the value of 'lines' and
|
||||
@@ -398,6 +399,13 @@ mode, so that a CTRL-Z doesn't end the text on DOS.
|
||||
The `redraw!` command may not be needed, depending on whether executing a
|
||||
shell command shows something on the display or not.
|
||||
|
||||
If the 'diffexpr' expression starts with s: or |<SID>|, then it is replaced
|
||||
with the script ID (|local-function|). Example: >
|
||||
set diffexpr=s:MyDiffExpr()
|
||||
set diffexpr=<SID>SomeDiffExpr()
|
||||
Otherwise, the expression is evaluated in the context of the script where the
|
||||
option was set, thus script-local items are available.
|
||||
|
||||
*E810* *E97*
|
||||
Vim will do a test if the diff output looks alright. If it doesn't, you will
|
||||
get an error message. Possible causes:
|
||||
@@ -449,4 +457,12 @@ evaluating 'patchexpr'. This hopefully avoids that files in the current
|
||||
directory are accidentally patched. Vim will also delete files starting with
|
||||
v:fname_in and ending in ".rej" and ".orig".
|
||||
|
||||
If the 'patchexpr' expression starts with s: or |<SID>|, then it is replaced
|
||||
with the script ID (|local-function|). Example: >
|
||||
set patchexpr=s:MyPatchExpr()
|
||||
set patchexpr=<SID>SomePatchExpr()
|
||||
Otherwise, the expression is evaluated in the context of the script where the
|
||||
option was set, thus script-local items are available.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.2. Last change: 2021 Dec 11
|
||||
*editing.txt* For Vim version 8.2. Last change: 2022 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -433,7 +433,7 @@ This also works for most other systems, with the restriction that the
|
||||
backticks must be around the whole item. It is not possible to have text
|
||||
directly before the first or just after the last backtick.
|
||||
|
||||
*`=*
|
||||
*`=* *E1083*
|
||||
You can have the backticks expanded as a Vim expression, instead of as an
|
||||
external command, by putting an equal sign right after the first backtick,
|
||||
e.g.: >
|
||||
@@ -890,7 +890,7 @@ Note: When the 'write' option is off, you are not able to write any file.
|
||||
|
||||
*:w* *:write*
|
||||
*E502* *E503* *E504* *E505*
|
||||
*E512* *E514* *E667* *E796* *E949*
|
||||
*E512* *E514* *E667* *E949*
|
||||
:w[rite] [++opt] Write the whole buffer to the current file. This is
|
||||
the normal way to save changes to a file. It fails
|
||||
when the 'readonly' option is set or when there is
|
||||
@@ -1147,6 +1147,9 @@ The names can be in upper- or lowercase.
|
||||
made.
|
||||
When 'hidden' is set and there are more windows, the
|
||||
current buffer becomes hidden, after writing the file.
|
||||
This command is not supported in |Vim9| script,
|
||||
because it is too easily confused with a variable
|
||||
name.
|
||||
|
||||
*:exi* *:exit*
|
||||
:[range]exi[t][!] [++opt] [file]
|
||||
@@ -1385,7 +1388,8 @@ becomes the current directory for that window. Windows where the |:lcd|
|
||||
command has not been used stick to the global or tab-local current directory.
|
||||
When jumping to another window the current directory is changed to the last
|
||||
specified local current directory. If none was specified, the global or
|
||||
tab-local current directory is used.
|
||||
tab-local current directory is used. When creating a new window it inherits
|
||||
the local directory of the current window.
|
||||
|
||||
When a |:tcd| command has been used for a tab page, the specified directory
|
||||
becomes the current directory for the current tab page and the current window.
|
||||
@@ -1767,7 +1771,7 @@ There are three different types of searching:
|
||||
/u/user_x/work/include
|
||||
/u/user_x/include
|
||||
|
||||
< Note: If your 'path' setting includes an non-existing directory, Vim will
|
||||
< Note: If your 'path' setting includes a non-existing directory, Vim will
|
||||
skip the non-existing directory, but continues searching in the parent of
|
||||
the non-existing directory if upwards searching is used. E.g. when
|
||||
searching "../include" and that doesn't exist, and upward searching is
|
||||
|
||||
10472
runtime/doc/eval.txt
10472
runtime/doc/eval.txt
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 8.2. Last change: 2021 Sep 22
|
||||
*filetype.txt* For Vim version 8.2. Last change: 2022 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -133,14 +133,15 @@ shell script: "#!/bin/csh".
|
||||
argument was used.
|
||||
|
||||
*filetype-overrule*
|
||||
When the same extension is used for two filetypes, Vim tries to guess 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:
|
||||
When the same extension is used for multiple filetypes, Vim tries to guess
|
||||
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|
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.inc g:filetype_inc
|
||||
@@ -358,12 +359,12 @@ define yourself. There are a few ways to avoid this:
|
||||
You need to define your own mapping before the plugin is loaded (before
|
||||
editing a file of that type). The plugin will then skip installing the
|
||||
default mapping.
|
||||
*no_mail_maps*
|
||||
*no_mail_maps* *g:no_mail_maps*
|
||||
3. Disable defining mappings for a specific filetype by setting a variable,
|
||||
which contains the name of the filetype. For the "mail" filetype this
|
||||
would be: >
|
||||
:let no_mail_maps = 1
|
||||
< *no_plugin_maps*
|
||||
< *no_plugin_maps* *g:no_plugin_maps*
|
||||
4. Disable defining mappings for all filetypes by setting a variable: >
|
||||
:let no_plugin_maps = 1
|
||||
<
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 8.2. Last change: 2021 Jul 13
|
||||
*fold.txt* For Vim version 8.2. Last change: 2022 Jan 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -121,6 +121,11 @@ method can be very slow!
|
||||
Try to avoid the "=", "a" and "s" return values, since Vim often has to search
|
||||
backwards for a line for which the fold level is defined. This can be slow.
|
||||
|
||||
If the 'foldexpr' expression starts with s: or |<SID>|, then it is replaced
|
||||
with the script ID (|local-function|). Examples: >
|
||||
set foldexpr=s:MyFoldExpr()
|
||||
set foldexpr=<SID>SomeFoldExpr()
|
||||
<
|
||||
An example of using "a1" and "s1": For a multi-line C comment, a line
|
||||
containing "/*" would return "a1" to start a fold, and a line containing "*/"
|
||||
would return "s1" to end the fold after that line: >
|
||||
@@ -506,7 +511,10 @@ Note the use of backslashes to avoid some characters to be interpreted by the
|
||||
:endfunction
|
||||
|
||||
Evaluating 'foldtext' is done in the |sandbox|. The current window is set to
|
||||
the window that displays the line. Errors are ignored.
|
||||
the window that displays the line. The context is set to the script where the
|
||||
option was last set.
|
||||
|
||||
Errors are ignored. For debugging set the 'debug' option to "throw".
|
||||
|
||||
The default value is |foldtext()|. This returns a reasonable text for most
|
||||
types of folding. If you don't like it, you can specify your own 'foldtext'
|
||||
@@ -524,6 +532,11 @@ The resulting line is truncated to fit in the window, it never wraps.
|
||||
When there is room after the text, it is filled with the character specified
|
||||
by 'fillchars'.
|
||||
|
||||
If the 'foldtext' expression starts with s: or |<SID>|, then it is replaced
|
||||
with the script ID (|local-function|). Examples: >
|
||||
set foldtext=s:MyFoldText()
|
||||
set foldtext=<SID>SomeFoldText()
|
||||
<
|
||||
Note that backslashes need to be used for characters that the ":set" command
|
||||
handles differently: Space, backslash and double-quote. |option-backslash|
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
*help.txt* For Vim version 8.2. Last change: 2021 Dec 27
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -136,6 +136,7 @@ Advanced editing ~
|
||||
|diff.txt| working with two to eight versions of the same file
|
||||
|autocmd.txt| automatically executing commands on an event
|
||||
|eval.txt| expression evaluation, conditional commands
|
||||
|builtin.txt| builtin functions
|
||||
|channel.txt| Jobs, Channels, inter-process communication
|
||||
|fold.txt| hide (fold) ranges of lines
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2021 Dec 13
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -224,7 +224,7 @@ command: >
|
||||
dialog. {only when compiled with |+GUI_GTK|}
|
||||
|
||||
*:helpt* *:helptags*
|
||||
*E154* *E150* *E151* *E152* *E153* *E670*
|
||||
*E150* *E151* *E152* *E153* *E154* *E670*
|
||||
:helpt[ags] [++t] {dir}
|
||||
Generate the help tags file(s) for directory {dir}.
|
||||
When {dir} is ALL then all "doc" directories in
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_cscop.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||
*if_cscop.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Andy Kahn
|
||||
@@ -89,7 +89,7 @@ suggested use.)
|
||||
==============================================================================
|
||||
2. Cscope related commands *cscope-commands*
|
||||
|
||||
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
|
||||
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E560* *E561*
|
||||
All cscope commands are accessed through suboptions to the cscope commands.
|
||||
`:cscope` or `:cs` is the main command
|
||||
`:scscope` or `:scs` does the same and splits the window
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_perl.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*if_perl.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||
@@ -104,7 +104,6 @@ Here are some things you can try: >
|
||||
:perl VIM::Msg("hello")
|
||||
:perl $line = $curbuf->Get(42)
|
||||
<
|
||||
*E299*
|
||||
Executing Perl commands in the |sandbox| is limited. ":perldo" will not be
|
||||
possible at all. ":perl" will be evaluated in the Safe environment, if
|
||||
possible.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_tcl.txt* For Vim version 8.2. Last change: 2021 May 27
|
||||
*if_tcl.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Ingo Wilken
|
||||
@@ -16,9 +16,9 @@ The Tcl Interface to Vim *tcl* *Tcl* *TCL*
|
||||
8. Examples |tcl-examples|
|
||||
9. Dynamic loading |tcl-dynamic|
|
||||
|
||||
*E280*
|
||||
{only available when Vim was compiled with the |+tcl| feature}
|
||||
|
||||
*E280*
|
||||
WARNING: There are probably still some bugs. Please send bug reports,
|
||||
comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
|
||||
|
||||
|
||||
@@ -879,7 +879,7 @@ For example, with N = 1, this will give:
|
||||
*PHP_outdentphpescape*
|
||||
To indent PHP escape tags as the surrounding non-PHP code (only affects the
|
||||
PHP escape tags): >
|
||||
:let g:PHP_outdentphpescape = 0
|
||||
:let g:PHP_outdentphpescape = 0
|
||||
-------------
|
||||
|
||||
*PHP_removeCRwhenUnix*
|
||||
@@ -1206,7 +1206,7 @@ comments will be indented according to the correctly indented code.
|
||||
|
||||
|
||||
VIM *ft-vim-indent*
|
||||
|
||||
*g:vim_indent_cont*
|
||||
For indenting Vim scripts there is one variable that specifies the amount of
|
||||
indent for a continuation line, a line that starts with a backslash: >
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.2. Last change: 2021 Oct 24
|
||||
*insert.txt* For Vim version 8.2. Last change: 2021 Dec 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -84,6 +84,8 @@ CTRL-U Delete all entered characters before the cursor in the current
|
||||
line. If there are no newly entered characters and
|
||||
'backspace' is not empty, delete all characters before the
|
||||
cursor in the current line.
|
||||
If C-indenting is enabled the indent will be adjusted if the
|
||||
line becomes blank.
|
||||
See |i_backspacing| about joining lines.
|
||||
*i_CTRL-I* *i_<Tab>* *i_Tab*
|
||||
<Tab> or CTRL-I Insert a tab. If the 'expandtab' option is on, the
|
||||
@@ -848,7 +850,7 @@ space is preferred). Maximum line length is 510 bytes.
|
||||
|
||||
For an example, imagine the 'thesaurus' file has a line like this: >
|
||||
angry furious mad enraged
|
||||
<Placing the cursor after the letters "ang" and typing CTRL-X CTRL-T would
|
||||
Placing the cursor after the letters "ang" and typing CTRL-X CTRL-T would
|
||||
complete the word "angry"; subsequent presses would change the word to
|
||||
"furious", "mad" etc.
|
||||
|
||||
@@ -860,7 +862,7 @@ https://github.com/vim/vim/issues/629#issuecomment-443293282
|
||||
Unpack thesaurus_pkg.zip, put the thesaurus.txt file somewhere, e.g.
|
||||
~/.vim/thesaurus/english.txt, and the 'thesaurus' option to this file name.
|
||||
|
||||
|
||||
|
||||
Completing keywords with 'thesaurusfunc' *compl-thesaurusfunc*
|
||||
|
||||
If the 'thesaurusfunc' option is set, then the user specified function is
|
||||
@@ -1945,6 +1947,9 @@ When 'autoindent' is on, the indent for a new line is obtained from the
|
||||
previous line. When 'smartindent' or 'cindent' is on, the indent for a line
|
||||
is automatically adjusted for C programs.
|
||||
|
||||
'formatoptions' can be set to copy the comment leader when opening a new
|
||||
line.
|
||||
|
||||
'textwidth' can be set to the maximum width for a line. When a line becomes
|
||||
too long when appending characters a line break is automatically inserted.
|
||||
|
||||
@@ -1958,6 +1963,9 @@ too long when appending characters a line break is automatically inserted.
|
||||
inserted after the current line.
|
||||
Adding [!] toggles 'autoindent' for the time this
|
||||
command is executed.
|
||||
This command is not supported in |Vim9| script,
|
||||
because it is too easily confused with a variable
|
||||
name.
|
||||
|
||||
*:i* *:in* *:insert*
|
||||
:{range}i[nsert][!] Insert several lines of text above the specified
|
||||
@@ -1965,6 +1973,9 @@ too long when appending characters a line break is automatically inserted.
|
||||
inserted before the current line.
|
||||
Adding [!] toggles 'autoindent' for the time this
|
||||
command is executed.
|
||||
This command is not supported in |Vim9| script,
|
||||
because it is too easily confused with a variable
|
||||
name.
|
||||
|
||||
These two commands will keep on asking for lines, until you type a line
|
||||
containing only a ".". Watch out for lines starting with a backslash, see
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.2. Last change: 2021 Dec 20
|
||||
*map.txt* For Vim version 8.2. Last change: 2022 Jan 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
Key mapping, abbreviations and user-defined commands.
|
||||
|
||||
This subject is introduced in sections |05.3|, |24.7| and |40.1| of the user
|
||||
This subject is introduced in sections |05.4|, |24.7| and |40.1| of the user
|
||||
manual.
|
||||
|
||||
1. Key mapping |key-mapping|
|
||||
@@ -97,8 +97,7 @@ modes.
|
||||
map command applies. The mapping may remain defined
|
||||
for other modes where it applies.
|
||||
It also works when {lhs} matches the {rhs} of a
|
||||
mapping. This is for when when an abbreviation
|
||||
applied.
|
||||
mapping. This is for when an abbreviation applied.
|
||||
Note: Trailing spaces are included in the {lhs}. This
|
||||
unmap does NOT work: >
|
||||
:map @@ foo
|
||||
@@ -271,7 +270,7 @@ input. Example: >
|
||||
endfunc
|
||||
nnoremap <expr> <F3> <SID>OpenPopup()
|
||||
|
||||
Also, keep in mind that the expression may be evaluated when looking for
|
||||
Keep in mind that the expression may be evaluated when looking for
|
||||
typeahead, before the previous command has been executed. For example: >
|
||||
func StoreColumn()
|
||||
let g:column = col('.')
|
||||
@@ -285,6 +284,10 @@ This can be solved by inserting <Ignore> before the character that is
|
||||
expression-mapped: >
|
||||
nmap ! f!<Ignore>x
|
||||
|
||||
When defining a mapping in a |Vim9| script, the expression will be evaluated
|
||||
in the context of that script. This means that script-local items can be
|
||||
accessed in the expression.
|
||||
|
||||
Be very careful about side effects! The expression is evaluated while
|
||||
obtaining characters, you may very well make the command dysfunctional.
|
||||
For this reason the following is blocked:
|
||||
@@ -343,9 +346,24 @@ Example of using <Cmd> halfway Insert mode: >
|
||||
Unlike <expr> mappings, there are no special restrictions on the <Cmd>
|
||||
command: it is executed as if an (unrestricted) |autocommand| was invoked.
|
||||
|
||||
*<ScriptCmd>*
|
||||
<ScriptCmd> is like <Cmd> but sets the context to the script the mapping was
|
||||
defined in, for the duration of the command execution. This is especially
|
||||
useful for |Vim9| script. It also works to access an import, which is useful
|
||||
in a plugin using an autoload script: >
|
||||
vim9script
|
||||
import autoload 'implementation.vim' as impl
|
||||
nnoremap <F4> <ScriptCmd>impl.DoTheWork()<CR>
|
||||
|
||||
No matter where <F4> is typed, the "impl" import will be found in the script
|
||||
context of where the mapping was defined. And since it's an autoload import,
|
||||
the "implementation.vim" script will only be loaded once <F4> is typed, not
|
||||
when the mapping is defined.
|
||||
|
||||
Note:
|
||||
- Because <Cmd> avoids mode-changes it does not trigger |CmdlineEnter| and
|
||||
|CmdlineLeave| events, because no user interaction is expected.
|
||||
- Because <Cmd> and <ScriptCmd> avoid mode-changes it does not trigger
|
||||
|CmdlineEnter| and |CmdlineLeave| events, because no user interaction is
|
||||
expected.
|
||||
- For the same reason, |keycodes| like <C-R><C-W> are interpreted as plain,
|
||||
unmapped keys.
|
||||
- The command is not echo'ed, no need for <silent>.
|
||||
@@ -356,13 +374,14 @@ Note:
|
||||
- In Select mode, |:map| and |:vmap| command mappings are executed in
|
||||
Visual mode. Use |:smap| to handle Select mode differently.
|
||||
|
||||
*E1135* *E1136*
|
||||
<Cmd> commands must terminate, that is, they must be followed by <CR> in the
|
||||
{rhs} of the mapping definition. |Command-line| mode is never entered.
|
||||
*E1255* *E1136*
|
||||
<Cmd> and <ScriptCmd> commands must terminate, that is, they must be followed
|
||||
by <CR> in the {rhs} of the mapping definition. |Command-line| mode is never
|
||||
entered.
|
||||
|
||||
*E1137*
|
||||
<Cmd> commands can have only normal characters and cannot contain special
|
||||
characters like function keys.
|
||||
<Cmd> and <ScriptCmd> commands can have only normal characters and cannot
|
||||
contain special characters like function keys.
|
||||
|
||||
|
||||
1.3 MAPPING AND MODES *:map-modes*
|
||||
@@ -1392,7 +1411,7 @@ scripts.
|
||||
|
||||
*:command-verbose*
|
||||
When 'verbose' is non-zero, listing a command will also display where it was
|
||||
last defined. Example: >
|
||||
last defined and any completion argument. Example: >
|
||||
|
||||
:verbose command TOhtml
|
||||
< Name Args Range Complete Definition ~
|
||||
@@ -1511,6 +1530,8 @@ completion can be enabled:
|
||||
-complete=custom,{func} custom completion, defined via {func}
|
||||
-complete=customlist,{func} custom completion, defined via {func}
|
||||
|
||||
If you specify completion while there is nothing to complete (-nargs=0, the
|
||||
default) then you get error *E1208* .
|
||||
Note: That some completion methods might expand environment variables.
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.2. Last change: 2021 Oct 04
|
||||
*mbyte.txt* For Vim version 8.2. Last change: 2022 Jan 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -862,8 +862,8 @@ Use the RPM or port for your system.
|
||||
window specific to the input method.
|
||||
|
||||
|
||||
USING XIM *multibyte-input* *E284* *E286* *E287* *E288*
|
||||
*E285* *E289*
|
||||
USING XIM *multibyte-input* *E284* *E285* *E286* *E287*
|
||||
*E288* *E289*
|
||||
|
||||
Note that Display and Input are independent. It is possible to see your
|
||||
language even though you have no input method for it. But when your Display
|
||||
@@ -955,32 +955,11 @@ replace mode.
|
||||
The options 'iminsert', 'imsearch' and 'imcmdline' can be used to choose
|
||||
the different input methods or disable them temporarily.
|
||||
|
||||
WHAT IS IME
|
||||
IME is a part of East asian version Windows. That helps you to input
|
||||
multibyte character. English and other language version Windows does not
|
||||
have any IME. (Also there is no need usually.) But there is one that
|
||||
called Microsoft Global IME. Global IME is a part of Internet Explorer
|
||||
4.0 or above. You can get more information about Global IME, at below
|
||||
URL.
|
||||
|
||||
WHAT IS GLOBAL IME *global-ime*
|
||||
Global IME makes capability to input Chinese, Japanese, and Korean text
|
||||
into Vim buffer on any language version of Windows 98, Windows 95, and
|
||||
Windows NT 4.0.
|
||||
On Windows 2000 and XP it should work as well (without downloading). On
|
||||
Windows 2000 Professional, Global IME is built in, and the Input Locales
|
||||
can be added through Control Panel/Regional Options/Input Locales.
|
||||
Please see below URL for detail of Global IME. You can also find various
|
||||
language version of Global IME at same place.
|
||||
|
||||
- Global IME detailed information.
|
||||
http://search.microsoft.com/results.aspx?q=global+ime
|
||||
|
||||
- Active Input Method Manager (Global IME)
|
||||
On Windows 9x and Windows NT 4.0 there was *global-ime* , but this is no
|
||||
longer supported. You can still find documentation for Active Input Method
|
||||
Manager (Global IME) here:
|
||||
http://msdn.microsoft.com/en-us/library/aa741221(v=VS.85).aspx
|
||||
|
||||
Support for Global IME is an experimental feature.
|
||||
|
||||
NOTE: For IME to work you must make sure the input locales of your language
|
||||
are added to your system. The exact location of this depends on the version
|
||||
of Windows you use. For example, on my Windows 2000 box:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.2. Last change: 2021 Dec 13
|
||||
*message.txt* For Vim version 8.2. Last change: 2022 Jan 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -46,13 +46,13 @@ maintains the messages or the translations. You can use this to contact the
|
||||
maintainer when you spot a mistake.
|
||||
|
||||
If you want to find help on a specific (error) message, use the ID at the
|
||||
start of the message. For example, to get help on the message: >
|
||||
start of the message. For example, to get help on the message:
|
||||
|
||||
E72: Close error on swap file
|
||||
E72: Close error on swap file ~
|
||||
|
||||
or (translated): >
|
||||
or (translated):
|
||||
|
||||
E72: Errore durante chiusura swap file
|
||||
E72: Errore durante chiusura swap file ~
|
||||
|
||||
Use: >
|
||||
|
||||
@@ -62,6 +62,8 @@ If you are lazy, it also works without the shift key: >
|
||||
|
||||
:help e72
|
||||
|
||||
The number in this ID has no meaning.
|
||||
|
||||
==============================================================================
|
||||
2. Error messages *error-messages* *errors*
|
||||
|
||||
@@ -76,116 +78,117 @@ See `:messages` above.
|
||||
LIST OF MESSAGES
|
||||
*E222* *E228* *E232* *E293* *E298* *E304* *E317*
|
||||
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
|
||||
*E323* *E341* *E473* *E570* *E685* *E292* >
|
||||
Add to read buffer
|
||||
makemap: Illegal mode
|
||||
Cannot create BalloonEval with both message and callback
|
||||
Hangul automata ERROR
|
||||
block was not locked
|
||||
Didn't get block nr {N}?
|
||||
ml_upd_block0(): Didn't get block 0??
|
||||
pointer block id wrong {N}
|
||||
Updated too many blocks?
|
||||
get_varp ERROR
|
||||
u_undo: line numbers wrong
|
||||
undo list corrupt
|
||||
undo line missing
|
||||
ml_get: cannot find line {N}
|
||||
cannot find line {N}
|
||||
line number out of range: {N} past the end
|
||||
line count wrong in block {N}
|
||||
Internal error
|
||||
Internal error: {function}
|
||||
fatal error in cs_manage_matches
|
||||
Invalid count for del_bytes(): {N}
|
||||
*E323* *E341* *E473* *E570* *E685* *E292*
|
||||
Add to read buffer ~
|
||||
makemap: Illegal mode ~
|
||||
Cannot create BalloonEval with both message and callback ~
|
||||
Hangul automata ERROR ~
|
||||
block was not locked ~
|
||||
Didn't get block nr {N}? ~
|
||||
ml_upd_block0(): Didn't get block 0?? ~
|
||||
pointer block id wrong {N} ~
|
||||
Updated too many blocks? ~
|
||||
get_varp ERROR ~
|
||||
u_undo: line numbers wrong ~
|
||||
undo list corrupt ~
|
||||
undo line missing ~
|
||||
ml_get: cannot find line {N} ~
|
||||
cannot find line {N} ~
|
||||
line number out of range: {N} past the end ~
|
||||
line count wrong in block {N} ~
|
||||
Internal error ~
|
||||
Internal error: {function} ~
|
||||
fatal error in cs_manage_matches ~
|
||||
Invalid count for del_bytes(): {N} ~
|
||||
|
||||
This is an internal error. If you can reproduce it, please send in a bug
|
||||
report. |bugs|
|
||||
|
||||
>
|
||||
ATTENTION
|
||||
Found a swap file by the name ...
|
||||
|
||||
ATTENTION ~
|
||||
Found a swap file by the name ... ~
|
||||
|
||||
See |ATTENTION|.
|
||||
|
||||
*E92* >
|
||||
Buffer {N} not found
|
||||
*E92*
|
||||
Buffer {N} not found ~
|
||||
|
||||
The buffer you requested does not exist. This can also happen when you have
|
||||
wiped out a buffer which contains a mark or is referenced in another way.
|
||||
|:bwipeout|
|
||||
|
||||
*E95* >
|
||||
Buffer with this name already exists
|
||||
*E95*
|
||||
Buffer with this name already exists ~
|
||||
|
||||
You cannot have two buffers with the same name.
|
||||
You cannot have two buffers with exactly the same name. This includes the
|
||||
path leading to the file.
|
||||
|
||||
*E72* >
|
||||
Close error on swap file
|
||||
*E72*
|
||||
Close error on swap file ~
|
||||
|
||||
The |swap-file|, that is used to keep a copy of the edited text, could not be
|
||||
closed properly. Mostly harmless.
|
||||
|
||||
*E169* >
|
||||
Command too recursive
|
||||
*E169*
|
||||
Command too recursive ~
|
||||
|
||||
This happens when an Ex command executes an Ex command that executes an Ex
|
||||
command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
|
||||
larger. When it's more there probably is an endless loop. Probably a
|
||||
|:execute| or |:source| command is involved.
|
||||
|
||||
*E254* >
|
||||
Cannot allocate color {name}
|
||||
*E254*
|
||||
Cannot allocate color {name} ~
|
||||
|
||||
The color name {name} is unknown. See |gui-colors| for a list of colors that
|
||||
are available on most systems.
|
||||
|
||||
*E1244* >
|
||||
Bad color string: {str}
|
||||
*E1244*
|
||||
Bad color string: {str} ~
|
||||
|
||||
The provided color did not conform to the pattern #rrggbb
|
||||
|
||||
*E458* >
|
||||
Cannot allocate colormap entry, some colors may be incorrect
|
||||
*E458*
|
||||
Cannot allocate colormap entry, some colors may be incorrect ~
|
||||
|
||||
This means that there are not enough colors available for Vim. It will still
|
||||
run, but some of the colors will not appear in the specified color. Try
|
||||
stopping other applications that use many colors, or start them after starting
|
||||
gvim.
|
||||
Browsers are known to consume a lot of colors. You can avoid this with
|
||||
netscape by telling it to use its own colormap: >
|
||||
netscape -install
|
||||
Or tell it to limit to a certain number of colors (64 should work well): >
|
||||
netscape -ncols 64
|
||||
This can also be done with a line in your Xdefaults file: >
|
||||
Netscape*installColormap: Yes
|
||||
or >
|
||||
Netscape*maxImageColors: 64
|
||||
<
|
||||
*E79* >
|
||||
Cannot expand wildcards
|
||||
netscape by telling it to use its own colormap:
|
||||
netscape -install ~
|
||||
Or tell it to limit to a certain number of colors (64 should work well):
|
||||
netscape -ncols 64 ~
|
||||
This can also be done with a line in your Xdefaults file:
|
||||
Netscape*installColormap: Yes ~
|
||||
or
|
||||
Netscape*maxImageColors: 64 ~
|
||||
|
||||
*E79*
|
||||
Cannot expand wildcards ~
|
||||
|
||||
A filename contains a strange combination of characters, which causes Vim to
|
||||
attempt expanding wildcards but this fails. This does NOT mean that no
|
||||
matching file names could be found, but that the pattern was illegal.
|
||||
|
||||
*E459* >
|
||||
Cannot go back to previous directory
|
||||
*E459*
|
||||
Cannot go back to previous directory ~
|
||||
|
||||
While expanding a file name, Vim failed to go back to the previously used
|
||||
directory. All file names being used may be invalid now! You need to have
|
||||
execute permission on the current directory.
|
||||
|
||||
*E190* *E212* >
|
||||
Cannot open "{filename}" for writing
|
||||
Can't open file for writing
|
||||
*E190* *E212*
|
||||
Cannot open "{filename}" for writing ~
|
||||
Can't open file for writing ~
|
||||
|
||||
For some reason the file you are writing to cannot be created or overwritten.
|
||||
The reason could be that you do not have permission to write in the directory
|
||||
or the file name is not valid.
|
||||
|
||||
*E166* >
|
||||
Can't open linked file for writing
|
||||
*E166*
|
||||
Can't open linked file for writing ~
|
||||
|
||||
You are trying to write to a file which can't be overwritten, and the file is
|
||||
a link (either a hard link or a symbolic link). Writing might still be
|
||||
@@ -196,20 +199,20 @@ place. If you really want to write the file under this name, you have to
|
||||
manually delete the link or the file, or change the permissions so that Vim
|
||||
can overwrite.
|
||||
|
||||
*E46* >
|
||||
Cannot change read-only variable "{name}"
|
||||
*E46*
|
||||
Cannot change read-only variable "{name}" ~
|
||||
|
||||
You are trying to assign a value to an argument of a function |a:var| or a Vim
|
||||
internal variable |v:var| which is read-only.
|
||||
|
||||
*E90* >
|
||||
Cannot unload last buffer
|
||||
*E90*
|
||||
Cannot unload last buffer ~
|
||||
|
||||
Vim always requires one buffer to be loaded, otherwise there would be nothing
|
||||
to display in the window.
|
||||
|
||||
*E40* >
|
||||
Can't open errorfile <filename>
|
||||
*E40*
|
||||
Can't open errorfile <filename> ~
|
||||
|
||||
When using the ":make" or ":grep" commands: The file used to save the error
|
||||
messages or grep output cannot be opened. This can have several causes:
|
||||
@@ -221,8 +224,8 @@ messages or grep output cannot be opened. This can have several causes:
|
||||
- The 'grepprg' or 'makeprg' could not be executed. This cannot always be
|
||||
detected (especially on MS-Windows). Check your $PATH.
|
||||
|
||||
>
|
||||
Can't open file C:\TEMP\VIoD243.TMP
|
||||
|
||||
Can't open file C:\TEMP\VIoD243.TMP ~
|
||||
|
||||
On MS-Windows, this message appears when the output of an external command was
|
||||
to be read, but the command didn't run successfully. This can be caused by
|
||||
@@ -230,21 +233,21 @@ many things. Check the 'shell', 'shellquote', 'shellxquote', 'shellslash' and
|
||||
related options. It might also be that the external command was not found,
|
||||
there is no different error message for that.
|
||||
|
||||
*E12* >
|
||||
Command not allowed from exrc/vimrc in current dir or tag search
|
||||
*E12*
|
||||
Command not allowed from exrc/vimrc in current dir or tag search ~
|
||||
|
||||
Some commands are not allowed for security reasons. These commands mostly
|
||||
come from a .exrc or .vimrc file in the current directory, or from a tags
|
||||
file. Also see 'secure'.
|
||||
|
||||
*E74* >
|
||||
Command too complex
|
||||
*E74*
|
||||
Command too complex ~
|
||||
|
||||
A mapping resulted in a very long command string. Could be caused by a
|
||||
mapping that indirectly calls itself.
|
||||
|
||||
>
|
||||
CONVERSION ERROR
|
||||
|
||||
CONVERSION ERROR ~
|
||||
|
||||
When writing a file and the text "CONVERSION ERROR" appears, this means that
|
||||
some bits were lost when converting text from the internally used UTF-8 to the
|
||||
@@ -256,51 +259,51 @@ If there is a backup file, when 'writebackup' or 'backup' is set, it will not
|
||||
be deleted, so you can move it back into place if you want to discard the
|
||||
changes.
|
||||
|
||||
*E302* >
|
||||
Could not rename swap file
|
||||
*E302*
|
||||
Could not rename swap file ~
|
||||
|
||||
When the file name changes, Vim tries to rename the |swap-file| as well.
|
||||
This failed and the old swap file is now still used. Mostly harmless.
|
||||
|
||||
*E43* *E44* >
|
||||
Damaged match string
|
||||
Corrupted regexp program
|
||||
*E43* *E44*
|
||||
Damaged match string ~
|
||||
Corrupted regexp program ~
|
||||
|
||||
Something inside Vim went wrong and resulted in a corrupted regexp. If you
|
||||
know how to reproduce this problem, please report it. |bugs|
|
||||
|
||||
*E208* *E209* *E210* >
|
||||
Error writing to "{filename}"
|
||||
Error closing "{filename}"
|
||||
Error reading "{filename}"
|
||||
*E208* *E209* *E210*
|
||||
Error writing to "{filename}" ~
|
||||
Error closing "{filename}" ~
|
||||
Error reading "{filename}" ~
|
||||
|
||||
This occurs when Vim is trying to rename a file, but a simple change of file
|
||||
name doesn't work. Then the file will be copied, but somehow this failed.
|
||||
The result may be that both the original file and the destination file exist
|
||||
and the destination file may be incomplete.
|
||||
|
||||
>
|
||||
Vim: Error reading input, exiting...
|
||||
|
||||
Vim: Error reading input, exiting... ~
|
||||
|
||||
This occurs when Vim cannot read typed characters while input is required.
|
||||
Vim got stuck, the only thing it can do is exit. This can happen when both
|
||||
stdin and stderr are redirected and executing a script that doesn't exit Vim.
|
||||
|
||||
*E47* >
|
||||
Error while reading errorfile
|
||||
*E47*
|
||||
Error while reading errorfile ~
|
||||
|
||||
Reading the error file was not possible. This is NOT caused by an error
|
||||
message that was not recognized.
|
||||
|
||||
*E80* >
|
||||
Error while writing
|
||||
*E80*
|
||||
Error while writing ~
|
||||
|
||||
Writing a file was not completed successfully. The file is probably
|
||||
incomplete.
|
||||
|
||||
*E13* *E189* >
|
||||
File exists (add ! to override)
|
||||
"{filename}" exists (add ! to override)
|
||||
*E13* *E189*
|
||||
File exists (add ! to override) ~
|
||||
"{filename}" exists (add ! to override) ~
|
||||
|
||||
You are protected from accidentally overwriting a file. When you want to
|
||||
write anyway, use the same command, but add a "!" just after the command.
|
||||
@@ -309,8 +312,8 @@ Example: >
|
||||
changes to: >
|
||||
:w! /tmp/test
|
||||
<
|
||||
*E768* >
|
||||
Swap file exists: {filename} (:silent! overrides)
|
||||
*E768*
|
||||
Swap file exists: {filename} (:silent! overrides) ~
|
||||
|
||||
You are protected from overwriting a file that is being edited by Vim. This
|
||||
happens when you use ":w! filename" and a swapfile is found.
|
||||
@@ -322,115 +325,115 @@ happens when you use ":w! filename" and a swapfile is found.
|
||||
< The special command is needed, since you already added the ! for overwriting
|
||||
an existing file.
|
||||
|
||||
*E139* >
|
||||
File is loaded in another buffer
|
||||
*E139*
|
||||
File is loaded in another buffer ~
|
||||
|
||||
You are trying to write a file under a name which is also used in another
|
||||
buffer. This would result in two versions of the same file.
|
||||
|
||||
*E142* >
|
||||
File not written: Writing is disabled by 'write' option
|
||||
*E142*
|
||||
File not written: Writing is disabled by 'write' option ~
|
||||
|
||||
The 'write' option is off. This makes all commands that try to write a file
|
||||
generate this message. This could be caused by a |-m| commandline argument.
|
||||
You can switch the 'write' option on with ":set write".
|
||||
|
||||
*E25* >
|
||||
GUI cannot be used: Not enabled at compile time
|
||||
*E25*
|
||||
GUI cannot be used: Not enabled at compile time ~
|
||||
|
||||
You are running a version of Vim that doesn't include the GUI code. Therefore
|
||||
"gvim" and ":gui" don't work.
|
||||
|
||||
*E49* >
|
||||
Invalid scroll size
|
||||
*E49*
|
||||
Invalid scroll size ~
|
||||
|
||||
This is caused by setting an invalid value for the 'scroll', 'scrolljump' or
|
||||
'scrolloff' options.
|
||||
|
||||
*E17* >
|
||||
"{filename}" is a directory
|
||||
*E17*
|
||||
"{filename}" is a directory ~
|
||||
|
||||
You tried to write a file with the name of a directory. This is not possible.
|
||||
You probably need to append a file name.
|
||||
|
||||
*E19* >
|
||||
Mark has invalid line number
|
||||
*E19*
|
||||
Mark has invalid line number ~
|
||||
|
||||
You are using a mark that has a line number that doesn't exist. This can
|
||||
happen when you have a mark in another file, and some other program has
|
||||
deleted lines from it.
|
||||
|
||||
*E219* *E220* >
|
||||
Missing {.
|
||||
Missing }.
|
||||
*E219* *E220*
|
||||
Missing {. ~
|
||||
Missing }. ~
|
||||
|
||||
Using a {} construct in a file name, but there is a { without a matching } or
|
||||
the other way around. It should be used like this: {foo,bar}. This matches
|
||||
"foo" and "bar".
|
||||
|
||||
*E315* >
|
||||
ml_get: invalid lnum: {number}
|
||||
*E315*
|
||||
ml_get: invalid lnum: {number} ~
|
||||
|
||||
This is an internal Vim error. Please try to find out how it can be
|
||||
reproduced, and submit a bug report |bugreport.vim|.
|
||||
|
||||
*E173* >
|
||||
{number} more files to edit
|
||||
*E173*
|
||||
{number} more files to edit ~
|
||||
|
||||
You are trying to exit, while the last item in the argument list has not been
|
||||
edited. This protects you from accidentally exiting when you still have more
|
||||
files to work on. See |argument-list|. If you do want to exit, just do it
|
||||
again and it will work.
|
||||
|
||||
*E23* *E194* >
|
||||
No alternate file
|
||||
No alternate file name to substitute for '#'
|
||||
*E23* *E194*
|
||||
No alternate file ~
|
||||
No alternate file name to substitute for '#' ~
|
||||
|
||||
The alternate file is not defined yet. See |alternate-file|.
|
||||
|
||||
*E32* >
|
||||
No file name
|
||||
*E32*
|
||||
No file name ~
|
||||
|
||||
The current buffer has no name. To write it, use ":w fname". Or give the
|
||||
buffer a name with ":file fname".
|
||||
|
||||
*E141* >
|
||||
No file name for buffer {number}
|
||||
*E141*
|
||||
No file name for buffer {number} ~
|
||||
|
||||
One of the buffers that was changed does not have a file name. Therefore it
|
||||
cannot be written. You need to give the buffer a file name: >
|
||||
:buffer {number}
|
||||
:file {filename}
|
||||
<
|
||||
*E33* >
|
||||
No previous substitute regular expression
|
||||
*E33*
|
||||
No previous substitute regular expression ~
|
||||
|
||||
When using the '~' character in a pattern, it is replaced with the previously
|
||||
used pattern in a ":substitute" command. This fails when no such command has
|
||||
been used yet. See |/~|. This also happens when using ":s/pat/%/", where the
|
||||
"%" stands for the previous substitute string.
|
||||
|
||||
*E35* >
|
||||
No previous regular expression
|
||||
*E35*
|
||||
No previous regular expression ~
|
||||
|
||||
When using an empty search pattern, the previous search pattern is used. But
|
||||
that is not possible if there was no previous search.
|
||||
|
||||
*E24* >
|
||||
No such abbreviation
|
||||
*E24*
|
||||
No such abbreviation ~
|
||||
|
||||
You have used an ":unabbreviate" command with an argument which is not an
|
||||
existing abbreviation. All variations of this command give the same message:
|
||||
":cunabbrev", ":iunabbrev", etc. Check for trailing white space.
|
||||
|
||||
>
|
||||
/dev/dsp: No such file or directory
|
||||
|
||||
/dev/dsp: No such file or directory ~
|
||||
|
||||
Only given for GTK GUI with Gnome support. Gnome tries to use the audio
|
||||
device and it isn't present. You can ignore this error.
|
||||
|
||||
*E31* >
|
||||
No such mapping
|
||||
*E31*
|
||||
No such mapping ~
|
||||
|
||||
You have used an ":unmap" command with an argument which is not an existing
|
||||
mapping. All variations of this command give the same message: ":cunmap",
|
||||
@@ -439,9 +442,9 @@ mapping. All variations of this command give the same message: ":cunmap",
|
||||
- If the mapping is buffer-local you need to use ":unmap <buffer>".
|
||||
|:map-<buffer>|
|
||||
|
||||
*E37* *E89* >
|
||||
No write since last change (add ! to override)
|
||||
No write since last change for buffer {N} (add ! to override)
|
||||
*E37* *E89*
|
||||
No write since last change (add ! to override) ~
|
||||
No write since last change for buffer {N} (add ! to override) ~
|
||||
|
||||
You are trying to |abandon| a file that has changes. Vim protects you from
|
||||
losing your work. You can either write the changed file with ":w", or, if you
|
||||
@@ -451,8 +454,8 @@ adding a '!' character just after the command you used. Example: >
|
||||
changes to: >
|
||||
:e! other_file
|
||||
<
|
||||
*E162* >
|
||||
No write since last change for buffer "{name}"
|
||||
*E162*
|
||||
No write since last change for buffer "{name}" ~
|
||||
|
||||
This appears when you try to exit Vim while some buffers are changed. You
|
||||
will either have to write the changed buffer (with |:w|), or use a command to
|
||||
@@ -460,23 +463,23 @@ abandon the buffer forcefully, e.g., with ":qa!". Careful, make sure you
|
||||
don't throw away changes you really want to keep. You might have forgotten
|
||||
about a buffer, especially when 'hidden' is set.
|
||||
|
||||
>
|
||||
[No write since last change]
|
||||
|
||||
[No write since last change] ~
|
||||
|
||||
This appears when executing a shell command while at least one buffer was
|
||||
changed. To avoid the message reset the 'warn' option.
|
||||
|
||||
*E38* >
|
||||
Null argument
|
||||
*E38*
|
||||
Null argument ~
|
||||
|
||||
Something inside Vim went wrong and resulted in a NULL pointer. If you know
|
||||
how to reproduce this problem, please report it. |bugs|
|
||||
|
||||
*E41* *E82* *E83* *E342* >
|
||||
Out of memory!
|
||||
Out of memory! (allocating {number} bytes)
|
||||
Cannot allocate any buffer, exiting...
|
||||
Cannot allocate buffer, using other one...
|
||||
*E41* *E82* *E83* *E342*
|
||||
Out of memory! ~
|
||||
Out of memory! (allocating {number} bytes) ~
|
||||
Cannot allocate any buffer, exiting... ~
|
||||
Cannot allocate buffer, using other one... ~
|
||||
|
||||
Oh, oh. You must have been doing something complicated, or some other program
|
||||
is consuming your memory. Be careful! Vim is not completely prepared for an
|
||||
@@ -494,16 +497,16 @@ in memory, you can reduce that with these options:
|
||||
helps for a change that affects all lines.
|
||||
- 'undoreload' Set to zero to disable.
|
||||
|
||||
*E339* >
|
||||
Pattern too long
|
||||
*E339*
|
||||
Pattern too long ~
|
||||
|
||||
This happens on systems with 16 bit ints: The compiled regexp pattern is
|
||||
longer than about 65000 characters. Try using a shorter pattern.
|
||||
It also happens when the offset of a rule doesn't fit in the space available.
|
||||
Try simplifying the pattern.
|
||||
|
||||
*E45* >
|
||||
'readonly' option is set (add ! to override)
|
||||
*E45*
|
||||
'readonly' option is set (add ! to override) ~
|
||||
|
||||
You are trying to write a file that was marked as read-only. To write the
|
||||
file anyway, either reset the 'readonly' option, or add a '!' character just
|
||||
@@ -512,18 +515,18 @@ after the command you used. Example: >
|
||||
changes to: >
|
||||
:w!
|
||||
<
|
||||
*E294* *E295* *E301* >
|
||||
Read error in swap file
|
||||
Seek error in swap file read
|
||||
Oops, lost the swap file!!!
|
||||
*E294* *E295* *E301*
|
||||
Read error in swap file ~
|
||||
Seek error in swap file read ~
|
||||
Oops, lost the swap file!!! ~
|
||||
|
||||
Vim tried to read text from the |swap-file|, but something went wrong. The
|
||||
text in the related buffer may now be corrupted! Check carefully before you
|
||||
write a buffer. You may want to write it in another file and check for
|
||||
differences.
|
||||
|
||||
*E192* >
|
||||
Recursive use of :normal too deep
|
||||
*E192*
|
||||
Recursive use of :normal too deep ~
|
||||
|
||||
You are using a ":normal" command, whose argument again uses a ":normal"
|
||||
command in a recursive way. This is restricted to 'maxmapdepth' levels. This
|
||||
@@ -531,16 +534,16 @@ example illustrates how to get this message: >
|
||||
:map gq :normal gq<CR>
|
||||
If you type "gq", it will execute this mapping, which will call "gq" again.
|
||||
|
||||
*E22* >
|
||||
Scripts nested too deep
|
||||
*E22*
|
||||
Scripts nested too deep ~
|
||||
|
||||
Scripts can be read with the "-s" command-line argument and with the ":source"
|
||||
command. The script can then again read another script. This can continue
|
||||
for about 14 levels. When more nesting is done, Vim assumes that there is a
|
||||
recursive loop somewhere and stops with this error message.
|
||||
Scripts can be read with the "-s" command-line argument and with the
|
||||
`:source!` command. The script can then again read another script. This can
|
||||
continue for about 14 levels. When more nesting is done, Vim assumes that
|
||||
there is a recursive loop and stops with this error message.
|
||||
|
||||
*E319* >
|
||||
Sorry, the command is not available in this version
|
||||
*E319*
|
||||
Sorry, the command is not available in this version ~
|
||||
|
||||
You have used a command that is not present in the version of Vim you are
|
||||
using. When compiling Vim, many different features can be enabled or
|
||||
@@ -548,8 +551,8 @@ disabled. This depends on how big Vim has chosen to be and the operating
|
||||
system. See |+feature-list| for when which feature is available. The
|
||||
|:version| command shows which feature Vim was compiled with.
|
||||
|
||||
*E300* >
|
||||
Swap file already exists (symlink attack?)
|
||||
*E300*
|
||||
Swap file already exists (symlink attack?) ~
|
||||
|
||||
This message appears when Vim is trying to open a swap file and finds it
|
||||
already exists or finds a symbolic link in its place. This shouldn't happen,
|
||||
@@ -558,8 +561,8 @@ opened the same file at exactly the same moment (very unlikely) or someone is
|
||||
attempting a symlink attack (could happen when editing a file in /tmp or when
|
||||
'directory' starts with "/tmp", which is a bad choice).
|
||||
|
||||
*E432* >
|
||||
Tags file not sorted: {file name}
|
||||
*E432*
|
||||
Tags file not sorted: {file name} ~
|
||||
|
||||
Vim (and Vi) expect tags files to be sorted in ASCII order. Binary searching
|
||||
can then be used, which is a lot faster than a linear search. If your tags
|
||||
@@ -568,21 +571,21 @@ This message is only given when Vim detects a problem when searching for a
|
||||
tag. Sometimes this message is not given, even though the tags file is not
|
||||
properly sorted.
|
||||
|
||||
*E424* >
|
||||
Too many different highlighting attributes in use
|
||||
*E424*
|
||||
Too many different highlighting attributes in use ~
|
||||
|
||||
Vim can only handle about 223 different kinds of highlighting. If you run
|
||||
into this limit, you have used too many |:highlight| commands with different
|
||||
arguments. A ":highlight link" is not counted.
|
||||
|
||||
*E77* >
|
||||
Too many file names
|
||||
*E77*
|
||||
Too many file names ~
|
||||
|
||||
When expanding file names, more than one match was found. Only one match is
|
||||
allowed for the command that was used.
|
||||
|
||||
*E303* >
|
||||
Unable to open swap file for "{filename}", recovery impossible
|
||||
*E303*
|
||||
Unable to open swap file for "{filename}", recovery impossible ~
|
||||
|
||||
Vim was not able to create a swap file. You can still edit the file, but if
|
||||
Vim unexpectedly exits the changes will be lost. And Vim may consume a lot of
|
||||
@@ -590,25 +593,25 @@ memory when editing a big file. You may want to change the 'directory' option
|
||||
to avoid this error. This error is not given when 'directory' is empty. See
|
||||
|swap-file|.
|
||||
|
||||
*E140* >
|
||||
Use ! to write partial buffer
|
||||
*E140*
|
||||
Use ! to write partial buffer ~
|
||||
|
||||
When using a range to write part of a buffer, it is unusual to overwrite the
|
||||
original file. It is probably a mistake (e.g., when Visual mode was active
|
||||
when using ":w"), therefore Vim requires using a ! after the command, e.g.:
|
||||
":3,10w!".
|
||||
>
|
||||
|
||||
Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type
|
||||
VirtualBinding
|
||||
|
||||
Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type ~
|
||||
VirtualBinding ~
|
||||
|
||||
Messages like this appear when starting up. This is not a Vim problem, your
|
||||
X11 configuration is wrong. You can find a hint on how to solve this here:
|
||||
http://groups.yahoo.com/group/solarisonintel/message/12179.
|
||||
[this URL is no longer valid]
|
||||
|
||||
*W10* >
|
||||
Warning: Changing a readonly file
|
||||
*W10*
|
||||
Warning: Changing a readonly file ~
|
||||
|
||||
The file is read-only and you are making a change to it anyway. You can use
|
||||
the |FileChangedRO| autocommand event to avoid this message (the autocommand
|
||||
@@ -616,15 +619,15 @@ must reset the 'readonly' option). See 'modifiable' to completely disallow
|
||||
making changes to a file.
|
||||
This message is only given for the first change after 'readonly' has been set.
|
||||
|
||||
*W13* >
|
||||
Warning: File "{filename}" has been created after editing started
|
||||
*W13*
|
||||
Warning: File "{filename}" has been created after editing started ~
|
||||
|
||||
You are editing a file in Vim when it didn't exist, but it does exist now.
|
||||
You will have to decide if you want to keep the version in Vim or the newly
|
||||
created file. This message is not given when 'buftype' is not empty.
|
||||
|
||||
*W11* >
|
||||
Warning: File "{filename}" has changed since editing started
|
||||
*W11*
|
||||
Warning: File "{filename}" has changed since editing started ~
|
||||
|
||||
The file which you have started editing has got another timestamp and the
|
||||
contents changed (more precisely: When reading the file again with the current
|
||||
@@ -647,15 +650,15 @@ starts. It can be fixed in one of these ways:
|
||||
If you get W11 all the time, you may need to disable "Acronis Active
|
||||
Protection" or register Vim as a trusted service/application.
|
||||
|
||||
*W12* >
|
||||
Warning: File "{filename}" has changed and the buffer was changed in Vim as well
|
||||
*W12*
|
||||
Warning: File "{filename}" has changed and the buffer was changed in Vim as well ~
|
||||
|
||||
Like the above, and the buffer for the file was changed in this Vim as well.
|
||||
You will have to decide if you want to keep the version in this Vim or the one
|
||||
on disk. This message is not given when 'buftype' is not empty.
|
||||
|
||||
*W16* >
|
||||
Warning: Mode of file "{filename}" has changed since editing started
|
||||
*W16*
|
||||
Warning: Mode of file "{filename}" has changed since editing started ~
|
||||
|
||||
When the timestamp for a buffer was changed and the contents are still the
|
||||
same but the mode (permissions) have changed. This usually occurs when
|
||||
@@ -663,37 +666,37 @@ checking out a file from a version control system, which causes the read-only
|
||||
bit to be reset. It should be safe to reload the file. Set 'autoread' to
|
||||
automatically reload the file.
|
||||
|
||||
*E211* >
|
||||
File "{filename}" no longer available
|
||||
*E211*
|
||||
File "{filename}" no longer available ~
|
||||
|
||||
The file which you have started editing has disappeared, or is no longer
|
||||
accessible. Make sure you write the buffer somewhere to avoid losing
|
||||
changes. This message is not given when 'buftype' is not empty.
|
||||
|
||||
*W14* >
|
||||
Warning: List of file names overflow
|
||||
*W14*
|
||||
Warning: List of file names overflow ~
|
||||
|
||||
You must be using an awful lot of buffers. It's now possible that two buffers
|
||||
have the same number, which causes various problems. You might want to exit
|
||||
Vim and restart it.
|
||||
|
||||
*E931* >
|
||||
Buffer cannot be registered
|
||||
*E931*
|
||||
Buffer cannot be registered ~
|
||||
|
||||
Out of memory or a duplicate buffer number. May happen after W14. Looking up
|
||||
a buffer will not always work, better restart Vim.
|
||||
|
||||
*E296* *E297* >
|
||||
Seek error in swap file write
|
||||
Write error in swap file
|
||||
*E296* *E297*
|
||||
Seek error in swap file write ~
|
||||
Write error in swap file ~
|
||||
|
||||
This mostly happens when the disk is full. Vim could not write text into the
|
||||
|swap-file|. It's not directly harmful, but when Vim unexpectedly exits some
|
||||
text may be lost without recovery being possible. Vim might run out of memory
|
||||
when this problem persists.
|
||||
|
||||
*connection-refused* >
|
||||
Xlib: connection to "<machine-name:0.0" refused by server
|
||||
*connection-refused*
|
||||
Xlib: connection to "<machine-name:0.0" refused by server ~
|
||||
|
||||
This happens when Vim tries to connect to the X server, but the X server does
|
||||
not allow a connection. The connection to the X server is needed to be able
|
||||
@@ -701,54 +704,55 @@ to restore the title and for the xterm clipboard support. Unfortunately this
|
||||
error message cannot be avoided, except by disabling the |+xterm_clipboard|
|
||||
and |+X11| features.
|
||||
|
||||
*E10* >
|
||||
\\ should be followed by /, ? or &
|
||||
*E10*
|
||||
\\ should be followed by /, ? or & ~
|
||||
|
||||
A command line started with a backslash or the range of a command contained a
|
||||
backslash in a wrong place. This is often caused by command-line continuation
|
||||
being disabled. Remove the 'C' flag from the 'cpoptions' option to enable it.
|
||||
Or use ":set nocp".
|
||||
|
||||
*E471* >
|
||||
Argument required
|
||||
*E471*
|
||||
Argument required ~
|
||||
|
||||
This happens when an Ex command with mandatory argument(s) was executed, but
|
||||
no argument has been specified.
|
||||
|
||||
*E474* *E475* *E983* >
|
||||
Invalid argument
|
||||
Invalid argument: {arg}
|
||||
Duplicate argument: {arg}
|
||||
*E474* *E475* *E983*
|
||||
Invalid argument ~
|
||||
Invalid argument: {arg} ~
|
||||
Duplicate argument: {arg} ~
|
||||
|
||||
An Ex command or function has been executed, but an invalid argument has been
|
||||
specified.
|
||||
|
||||
*E488* >
|
||||
Trailing characters
|
||||
*E488*
|
||||
Trailing characters ~
|
||||
|
||||
An argument has been added to an Ex command that does not permit one.
|
||||
Or the argument has invalid characters and has not been recognized.
|
||||
|
||||
*E477* *E478* >
|
||||
No ! allowed
|
||||
Don't panic!
|
||||
*E477* *E478*
|
||||
No ! allowed ~
|
||||
Don't panic! ~
|
||||
|
||||
You have added a "!" after an Ex command that doesn't permit one.
|
||||
|
||||
*E481* >
|
||||
No range allowed
|
||||
*E481*
|
||||
No range allowed ~
|
||||
|
||||
A range was specified for an Ex command that doesn't permit one. See
|
||||
|cmdline-ranges|.
|
||||
|
||||
*E482* *E483* >
|
||||
Can't create file {filename}
|
||||
Can't get temp file name
|
||||
*E482* *E483*
|
||||
Can't create file {filename} ~
|
||||
Can't get temp file name ~
|
||||
|
||||
Vim cannot create a temporary file.
|
||||
|
||||
*E484* *E485* >
|
||||
Can't open file {filename}
|
||||
Can't read file {filename}
|
||||
*E484* *E485*
|
||||
Can't open file {filename} ~
|
||||
Can't read file {filename} ~
|
||||
|
||||
Vim cannot read a temporary file. Especially on Windows, this can be caused
|
||||
by wrong escaping of special characters for cmd.exe; the approach was
|
||||
@@ -756,8 +760,8 @@ changed with patch 7.3.443. Try using |shellescape()| for all shell arguments
|
||||
given to |system()|, or explicitly add escaping with ^. Also see
|
||||
'shellxquote' and 'shellxescape'.
|
||||
|
||||
*E464* >
|
||||
Ambiguous use of user-defined command
|
||||
*E464*
|
||||
Ambiguous use of user-defined command ~
|
||||
|
||||
There are two user-defined commands with a common name prefix, and you used
|
||||
Command-line completion to execute one of them. |user-cmd-ambiguous|
|
||||
@@ -766,23 +770,22 @@ Example: >
|
||||
:command MyCommand2 echo "two"
|
||||
:MyCommand
|
||||
<
|
||||
*E492* >
|
||||
Not an editor command
|
||||
*E492*
|
||||
Not an editor command ~
|
||||
|
||||
You tried to execute a command that is neither an Ex command nor
|
||||
a user-defined command.
|
||||
|
||||
*E943* >
|
||||
Command table needs to be updated, run 'make cmdidxs'
|
||||
*E943*
|
||||
Command table needs to be updated, run 'make cmdidxs' ~
|
||||
|
||||
This can only happen when changing the source code, when adding a command in
|
||||
src/ex_cmds.h. The lookup table then needs to be updated, by running: >
|
||||
make cmdidxs
|
||||
<
|
||||
*E928* *E889* *E839* >
|
||||
E928: String required
|
||||
E889: Number required
|
||||
E839: Bool required
|
||||
*E928* *E889*
|
||||
E928: String required ~
|
||||
E889: Number required ~
|
||||
|
||||
These happen when a value or expression is used that does not have the
|
||||
expected type.
|
||||
@@ -839,9 +842,9 @@ Also see 'mouse'. The hit-enter message is highlighted with the |hl-Question|
|
||||
group.
|
||||
|
||||
|
||||
*more-prompt* *pager* >
|
||||
-- More --
|
||||
-- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit
|
||||
*more-prompt* *pager*
|
||||
-- More -- ~
|
||||
-- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit ~
|
||||
|
||||
This message is given when the screen is filled with messages. It is only
|
||||
given when the 'more' option is on. It is highlighted with the |hl-MoreMsg|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.2. Last change: 2021 Dec 13
|
||||
*motion.txt* For Vim version 8.2. Last change: 2021 Dec 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -788,6 +788,9 @@ m< or m> Set the |'<| or |'>| mark. Useful to change what the
|
||||
*:k*
|
||||
:[range]k{a-zA-Z'} Same as :mark, but the space before the mark name can
|
||||
be omitted.
|
||||
This command is not supported in |Vim9| script,
|
||||
because it is too easily confused with a variable
|
||||
name.
|
||||
|
||||
*'* *'a* *`* *`a*
|
||||
'{a-z} `{a-z} Jump to the mark {a-z} in the current buffer.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2021 Dec 21
|
||||
*options.txt* For Vim version 8.2. Last change: 2022 Jan 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -170,7 +170,7 @@ When a key code is not set, it's like it does not exist. Trying to get its
|
||||
value will result in an error: >
|
||||
:set t_kb=
|
||||
:set t_kb
|
||||
E846: Key code not set: t_kb
|
||||
< E846: Key code not set: t_kb ~
|
||||
|
||||
The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
@@ -369,7 +369,7 @@ value to the local value, it doesn't switch back to using the global value
|
||||
This will make the local value of 'path' empty, so that the global value is
|
||||
used. Thus it does the same as: >
|
||||
:setlocal path=
|
||||
Note: In the future more global options can be made global-local. Using
|
||||
Note: In the future more global options can be made |global-local|. Using
|
||||
":setlocal" on a global option might work differently then.
|
||||
|
||||
|
||||
@@ -877,11 +877,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
Write the contents of the file, if it has been modified, on each
|
||||
`:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,
|
||||
`:suspend`, `:tag, `:!`, ``:make`, CTRL-] and CTRL-^ command; and when
|
||||
a :buffer, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one
|
||||
`:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when
|
||||
a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one
|
||||
to another file.
|
||||
A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is
|
||||
set to "hide" and `:next` is used
|
||||
set to "hide" and `:next` is used.
|
||||
Note that for some commands the 'autowrite' option is not used, see
|
||||
'autowriteall' for that.
|
||||
Some buffers will not be written, specifically when 'buftype' is
|
||||
@@ -1225,6 +1225,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Vim does not try to send a message to an external debugger (Netbeans
|
||||
or Sun Workshop).
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
set bexpr=s:MyBalloonExpr()
|
||||
set bexpr=<SID>SomeBalloonExpr()
|
||||
< Otherwise, the expression is evaluated in the context of the script
|
||||
where the option was set, thus script-local items are available.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
@@ -1365,6 +1372,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
text should normally be narrower. This prevents
|
||||
text indented almost to the right window border
|
||||
occupying lot of vertical space when broken.
|
||||
(default: 20)
|
||||
shift:{n} After applying 'breakindent', the wrapped line's
|
||||
beginning will be shifted by the given number of
|
||||
characters. It permits dynamic French paragraph
|
||||
@@ -2128,8 +2136,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Commas can be added for readability.
|
||||
To avoid problems with flags that are added in the future, use the
|
||||
"+=" and "-=" feature of ":set" |add-option-flags|.
|
||||
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
NOTE: In a |Vim9| script, when `vim9script` is encountered, the value
|
||||
is saved, 'cpoptions' is set to the Vim default, and the saved value
|
||||
is restored at the end of the script. Changes to the value of
|
||||
'cpoptions' will be applied to the saved value, but keep in mind that
|
||||
removing a flag that is not present when 'cpoptions' is changed has no
|
||||
effect. In the |.vimrc| file the value is not restored, thus using
|
||||
`vim9script` in the |.vimrc| file results in using the Vim default.
|
||||
|
||||
NOTE: This option is set to the POSIX default value at startup when
|
||||
the Vi default value would be used and the $VIM_POSIX environment
|
||||
variable exists |posix|. This means Vim tries to behave like the
|
||||
@@ -3423,7 +3441,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not available when compiled without the |+folding|
|
||||
or |+eval| features}
|
||||
The expression used for when 'foldmethod' is "expr". It is evaluated
|
||||
for each line to obtain its fold level. See |fold-expr|.
|
||||
for each line to obtain its fold level. The context is set to the
|
||||
script where 'foldexpr' was set, script-local items can be accessed.
|
||||
See |fold-expr| for the usage.
|
||||
|
||||
The expression will be evaluated in the |sandbox| if set from a
|
||||
modeline, see |sandbox-option|.
|
||||
@@ -3557,7 +3577,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not available when compiled without the |+folding|
|
||||
feature}
|
||||
An expression which is used to specify the text displayed for a closed
|
||||
fold. See |fold-foldtext|.
|
||||
fold. The context is set to the script where 'foldexpr' was set,
|
||||
script-local items can be accessed. See |fold-foldtext| for the
|
||||
usage.
|
||||
|
||||
The expression will be evaluated in the |sandbox| if set from a
|
||||
modeline, see |sandbox-option|.
|
||||
@@ -3596,6 +3618,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
When the expression evaluates to non-zero Vim will fall back to using
|
||||
the internal format mechanism.
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
set formatexpr=s:MyFormatExpr()
|
||||
set formatexpr=<SID>SomeFormatExpr()
|
||||
< Otherwise, the expression is evaluated in the context of the script
|
||||
where the option was set, thus script-local items are available.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|. That stops the option from working,
|
||||
since changing the buffer text is not allowed.
|
||||
@@ -4438,6 +4467,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
found. Allows doing "gf" on the name after an 'include' statement.
|
||||
Also used for |<cfile>|.
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
set includeexpr=s:MyIncludeExpr(v:fname)
|
||||
set includeexpr=<SID>SomeIncludeExpr(v:fname)
|
||||
< Otherwise, the expression is evaluated in the context of the script
|
||||
where the option was set, thus script-local items are available.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
@@ -4511,6 +4547,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The expression is evaluated with |v:lnum| set to the line number for
|
||||
which the indent is to be computed. The cursor is also in this line
|
||||
when the expression is evaluated (but it may be moved around).
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
set indentexpr=s:MyIndentExpr()
|
||||
set indentexpr=<SID>SomeIndentExpr()
|
||||
< Otherwise, the expression is evaluated in the context of the script
|
||||
where the option was set, thus script-local items are available.
|
||||
|
||||
The expression must return the number of spaces worth of indent. It
|
||||
can return "-1" to keep the current indent (this means 'autoindent' is
|
||||
used for the indent).
|
||||
@@ -5654,7 +5698,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
|
||||
'opendevice' 'odev' boolean (default off)
|
||||
global
|
||||
{only for MS-Windows}
|
||||
{only for MS-Windows} *E796*
|
||||
Enable reading and writing from devices. This may get Vim stuck on a
|
||||
device that can be opened but doesn't actually do the I/O. Therefore
|
||||
it is off by default.
|
||||
@@ -6654,6 +6698,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Don't include both "curdir" and "sesdir".
|
||||
When neither "curdir" nor "sesdir" is included, file names are stored
|
||||
with absolute paths.
|
||||
If you leave out "options" many things won't work well after restoring
|
||||
the session.
|
||||
"slash" and "unix" are useful on Windows when sharing session files
|
||||
with Unix. The Unix version of Vim cannot source dos format scripts,
|
||||
but the Windows version of Vim can source unix format scripts.
|
||||
@@ -8096,7 +8142,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
another default. Backticks cannot be used in this option for security
|
||||
reasons.
|
||||
|
||||
*'thesaurusfunc'* *tsrfu'*
|
||||
*'thesaurusfunc'* *'tsrfu'*
|
||||
'thesaurusfunc' 'tsrfu' string (default: empty)
|
||||
global or local to buffer |global-local|
|
||||
{not available when compiled without the |+eval|
|
||||
|
||||
@@ -342,12 +342,12 @@ PowerShell Execution Policy settings.
|
||||
See |option-backslash| about including spaces in 'shellcmdflag' when using
|
||||
multiple flags.
|
||||
|
||||
The 'shellpipe' and 'shellredir' option values re-encode the UTF-16le output
|
||||
The 'shellpipe' and 'shellredir' option values re-encode the UTF-16LE output
|
||||
from PowerShell Desktop to your currently configured console codepage. The
|
||||
output can be forced into a different encoding by changing "default" to one of
|
||||
the following:
|
||||
|
||||
unicode - UTF-16le (default output from PowerShell 5.1)
|
||||
unicode - UTF-16LE (default output from PowerShell 5.1)
|
||||
bigendianunicode - UTF-16
|
||||
utf8 - UTF-8
|
||||
utf7 - UTF-7 (no BOM)
|
||||
@@ -356,7 +356,7 @@ the following:
|
||||
default - System's active code page (typically ANSI)
|
||||
oem - System's current OEM code page
|
||||
|
||||
Note The abovce multi-byte Unicode encodings include a leading BOM unless
|
||||
Note The above multi-byte Unicode encodings include a leading BOM unless
|
||||
otherwise indicated.
|
||||
|
||||
By default PowerShell Core's output is UTF-8 encoded without a BOM. If you
|
||||
@@ -365,10 +365,10 @@ want to force the output of PowerShell Core into a different encoding then set
|
||||
encoding is one of the following:
|
||||
|
||||
ascii - 7-bit ASCII character set
|
||||
bigendianunicode - UTF-16be
|
||||
bigendianutf32 - UTF-32be
|
||||
bigendianunicode - UTF-16BE
|
||||
bigendianutf32 - UTF-32BE
|
||||
oem - System's current OEM code page
|
||||
unicode - UTF-16le
|
||||
unicode - UTF-16LE
|
||||
utf7 - UTF-7
|
||||
utf8 - UTF-8
|
||||
utf8BOM - UTF-8, with BOM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 8.2. Last change: 2021 Jul 16
|
||||
*pattern.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -315,7 +315,7 @@ the pattern.
|
||||
==============================================================================
|
||||
2. The definition of a pattern *search-pattern* *pattern* *[pattern]*
|
||||
*regular-expression* *regexp* *Pattern*
|
||||
*E76* *E383* *E476*
|
||||
*E383* *E476*
|
||||
|
||||
For starters, read chapter 27 of the user manual |usr_27.txt|.
|
||||
|
||||
@@ -929,9 +929,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
\%23l Matches in a specific line.
|
||||
\%<23l Matches above a specific line (lower line number).
|
||||
\%>23l Matches below a specific line (higher line number).
|
||||
\%.l Matches at the cursor line.
|
||||
\%<.l Matches above the cursor line.
|
||||
\%>.l Matches below the cursor line.
|
||||
\%.l Matches at the cursor line.
|
||||
\%<.l Matches above the cursor line.
|
||||
\%>.l Matches below the cursor line.
|
||||
These six can be used to match specific lines in a buffer. The "23"
|
||||
can be any line number. The first line is 1.
|
||||
WARNING: When inserting or deleting lines Vim does not automatically
|
||||
@@ -950,9 +950,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
\%23c Matches in a specific column.
|
||||
\%<23c Matches before a specific column.
|
||||
\%>23c Matches after a specific column.
|
||||
\%.c Matches at the cursor column.
|
||||
\%<.c Matches before the cursor column.
|
||||
\%>.c Matches after the cursor column.
|
||||
\%.c Matches at the cursor column.
|
||||
\%<.c Matches before the cursor column.
|
||||
\%>.c Matches after the cursor column.
|
||||
These six can be used to match specific columns in a buffer or string.
|
||||
The "23" can be any column number. The first column is 1. Actually,
|
||||
the column is the byte number (thus it's not exactly right for
|
||||
@@ -976,9 +976,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
\%23v Matches in a specific virtual column.
|
||||
\%<23v Matches before a specific virtual column.
|
||||
\%>23v Matches after a specific virtual column.
|
||||
\%.v Matches at the current virtual column.
|
||||
\%<.v Matches before the current virtual column.
|
||||
\%>.v Matches after the current virtual column.
|
||||
\%.v Matches at the current virtual column.
|
||||
\%<.v Matches before the current virtual column.
|
||||
\%>.v Matches after the current virtual column.
|
||||
These six can be used to match specific virtual columns in a buffer or
|
||||
string. When not matching with a buffer in a window, the option
|
||||
values of the current window are used (e.g., 'tabstop').
|
||||
@@ -1070,6 +1070,8 @@ match ASCII characters, as indicated by the range.
|
||||
|
||||
\(\) A pattern enclosed by escaped parentheses. */\(* */\(\)* */\)*
|
||||
E.g., "\(^a\)" matches 'a' at the start of a line.
|
||||
There can only be ten of these. You can use "\%(" to add more, but
|
||||
not counting it as a sub-expression.
|
||||
*E51* *E54* *E55* *E872* *E873*
|
||||
|
||||
\1 Matches the same string that was matched by */\1* *E65*
|
||||
@@ -1092,7 +1094,7 @@ x A single character, with no special meaning, matches itself
|
||||
\x A backslash followed by a single character, with no special meaning,
|
||||
is reserved for future expansions
|
||||
|
||||
[] (with 'nomagic': \[]) */[]* */\[]* */\_[]* */collection*
|
||||
[] (with 'nomagic': \[]) */[]* */\[]* */\_[]* */collection* *E76*
|
||||
\_[]
|
||||
A collection. This is a sequence of characters enclosed in square
|
||||
brackets. It matches any single character in the collection.
|
||||
@@ -1488,5 +1490,4 @@ the matching positions and the fuzzy match scores.
|
||||
The "f" flag of `:vimgrep` enables fuzzy matching.
|
||||
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 8.2. Last change: 2021 Nov 29
|
||||
*popup.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -54,7 +54,7 @@ A popup window has a window-ID like other windows, but behaves differently.
|
||||
The size can be up to the whole Vim window and it overlaps other windows.
|
||||
Popup windows can also overlap each other. The "zindex" property specifies
|
||||
what goes on top of what.
|
||||
|
||||
*E366*
|
||||
The popup window contains a buffer, and that buffer is always associated with
|
||||
the popup window. The window cannot be in Normal, Visual or Insert mode, it
|
||||
does not get keyboard focus. You can use functions like `setbufline()` to
|
||||
@@ -262,7 +262,7 @@ popup_close({id} [, {result}]) *popup_close()*
|
||||
|
||||
|
||||
popup_create({what}, {options}) *popup_create()*
|
||||
Open a popup window showing {what}, which is either:
|
||||
Open a popup window showing {what}, which is either: *E450*
|
||||
- a buffer number
|
||||
- a string
|
||||
- a list of strings
|
||||
|
||||
@@ -174,6 +174,11 @@ an error message. In that case Vim will delete the file. In the default
|
||||
value for non-MS-Windows a trick is used: Adding "v:shell_error" will result
|
||||
in a non-zero number when the system() call fails.
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with the
|
||||
script ID (|local-function|). Example: >
|
||||
set printexpr=s:MyPrintFile()
|
||||
set printexpr=<SID>SomePrintFile()
|
||||
<
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for security
|
||||
reasons.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2021 Dec 03
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2022 Jan 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -244,7 +244,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
[!] is not used. It works like ":qall!" |:qall|,
|
||||
except that Vim returns a non-zero exit code.
|
||||
|
||||
*:cf* *:cfile*
|
||||
*:cf* *:cfi* *:cfile*
|
||||
:cf[ile][!] [errorfile] Read the error file and jump to the first error.
|
||||
This is done automatically when Vim is started with
|
||||
the -q option. You can use this command when you
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*remote.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||
*remote.txt* For Vim version 8.2. Last change: 2021 Dec 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -143,7 +143,7 @@ You can not put options there!
|
||||
FUNCTIONS
|
||||
*E240* *E573*
|
||||
There are a number of Vim functions for scripting the command server. See
|
||||
the description in |eval.txt| or use CTRL-] on the function name to jump to
|
||||
the description in |builtin.txt| or use CTRL-] on the function name to jump to
|
||||
the full explanation.
|
||||
|
||||
synopsis explanation ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2021 Nov 24
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2022 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -354,7 +354,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
<
|
||||
|
||||
:scriptv[ersion] {version} *:scriptv* *:scriptversion*
|
||||
*E999* *E984*
|
||||
*E999* *E984* *E1040*
|
||||
Specify the version of Vim for the lines that follow
|
||||
in the same file. Only applies at the toplevel of
|
||||
sourced scripts, not inside functions.
|
||||
@@ -367,8 +367,8 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
|
||||
:vim9s[cript] [noclear] *:vim9s* *:vim9script*
|
||||
Marks a script file as containing |Vim9-script|
|
||||
commands. Also see |vim9-namespace|.
|
||||
Must be the first command in the file.
|
||||
commands. Also see |vim9-namespace|. *E1038*
|
||||
Must be the first command in the file. *E1039*
|
||||
For [noclear] see |vim9-reload|.
|
||||
Without the |+eval| feature this changes the syntax
|
||||
for some commands.
|
||||
@@ -377,8 +377,11 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
|
||||
*:scr* *:scriptnames*
|
||||
:scr[iptnames] List all sourced script names, in the order they were
|
||||
first sourced. The number is used for the script ID
|
||||
|<SID>|.
|
||||
first encountered. The number is used for the script
|
||||
ID |<SID>|.
|
||||
For a script that was used with `import autoload` but
|
||||
was not actually sourced yet an "A" is shown after the
|
||||
script ID.
|
||||
{not available when compiled without the |+eval|
|
||||
feature}
|
||||
|
||||
@@ -495,6 +498,9 @@ space at the end of a line is hard to see and may be accidentally deleted. >
|
||||
\ "very long regexp"
|
||||
\ keepend
|
||||
|
||||
In |Vim9| script the backslash can often be omitted, but not always.
|
||||
See |vim9-line-continuation|.
|
||||
|
||||
There is a problem with the ":append" and ":insert" commands: >
|
||||
:1append
|
||||
\asdf
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.2. Last change: 2021 May 08
|
||||
*starting.txt* For Vim version 8.2. Last change: 2022 Jan 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -268,8 +268,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
started if possible.
|
||||
|
||||
*-e*
|
||||
-e Start Vim in Ex mode |Q|. Only makes a difference when the
|
||||
executable is not called "ex".
|
||||
-e Start Vim in Ex mode, see |Ex-mode|. Only makes a difference
|
||||
when the executable is not called "ex".
|
||||
|
||||
*-E*
|
||||
-E Start Vim in improved Ex mode |gQ|. Only makes a difference
|
||||
@@ -560,6 +560,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
":source!". When the "scriptout" file already exists, new
|
||||
characters are appended. See also |complex-repeat|.
|
||||
{scriptout} cannot start with a digit.
|
||||
If you want to record what is typed in a human readable for
|
||||
you can use |ch_logfile()|, It adds "raw key input" lines.
|
||||
|
||||
*-W*
|
||||
-W {scriptout} Like -w, but do not append, overwrite an existing file.
|
||||
|
||||
@@ -956,12 +956,16 @@ the options 'foldminlines' and 'foldnestmax' in |.vimrc| or use |:setlocal| in
|
||||
|
||||
BASIC *basic.vim* *vb.vim* *ft-basic-syntax* *ft-vb-syntax*
|
||||
|
||||
Both Visual Basic and "normal" basic use the extension ".bas". To detect
|
||||
Both Visual Basic and "normal" BASIC use the extension ".bas". To detect
|
||||
which one should be used, Vim checks for the string "VB_Name" in the first
|
||||
five lines of the file. If it is not found, filetype will be "basic",
|
||||
otherwise "vb". Files with the ".frm" extension will always be seen as Visual
|
||||
Basic.
|
||||
|
||||
If the automatic detection doesn't work for you or you only edit, for
|
||||
example, FreeBASIC files, use this in your startup vimrc: >
|
||||
:let filetype_bas = "freebasic"
|
||||
|
||||
|
||||
C *c.vim* *ft-c-syntax*
|
||||
|
||||
@@ -1442,7 +1446,7 @@ add the following line to your startup file: >
|
||||
|
||||
:let g:filetype_euphoria = "euphoria4"
|
||||
|
||||
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
||||
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
||||
specifically set as Euphoria with the g:filetype_euphoria variable, or the
|
||||
file is determined to be Euphoria based on keywords in the file, then the
|
||||
filetype will be set as Euphoria. Otherwise, the filetype will default to
|
||||
@@ -1473,7 +1477,7 @@ The following file extensions are auto-detected as Elixir file types:
|
||||
|
||||
*.ex, *.exs, *.eex, *.leex, *.lock
|
||||
|
||||
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
||||
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
||||
specifically set as Euphoria with the g:filetype_euphoria variable, or the
|
||||
file is determined to be Euphoria based on keywords in the file, then the
|
||||
filetype will be set as Euphoria. Otherwise, the filetype will default to
|
||||
|
||||
1131
runtime/doc/tags
1131
runtime/doc/tags
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2021 Dec 21
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2022 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -39,6 +39,7 @@ If the result is "1" you have it.
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Other commands |termdebug-commands|
|
||||
Events |termdebug-events|
|
||||
Prompt mode |termdebug-prompt|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
@@ -1177,7 +1178,7 @@ gdb window A terminal window in which "gdb vim" is executed. Here you
|
||||
program window A terminal window for the executed program. When "run" is
|
||||
used in gdb the program I/O will happen in this window, so
|
||||
that it does not interfere with controlling gdb. The buffer
|
||||
name is "gdb program".
|
||||
name is "debugged program".
|
||||
|
||||
The current window is used to show the source code. When gdb pauses the
|
||||
source file location will be displayed, if possible. A sign is used to
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 8.2. Last change: 2021 Dec 11
|
||||
*testing.txt* For Vim version 8.2. Last change: 2022 Jan 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -121,6 +121,24 @@ test_gui_mouse_event({button}, {row}, {col}, {multiclick}, {modifiers})
|
||||
|feedkeys()| to have them processed, e.g.: >
|
||||
call feedkeys("y", 'Lx!')
|
||||
|
||||
*test_gui_tabline_event()*
|
||||
test_gui_tabline_event({tabnr})
|
||||
Add an event that simulates a click on the tabline to select
|
||||
tabpage {tabnr} to the input buffer.
|
||||
Returns TRUE if the event is successfully added, FALSE if
|
||||
already in the tabpage {tabnr} or the cmdline window is open.
|
||||
After injecting the event you probably should call
|
||||
|feedkeys()| to have them processed, e.g.: >
|
||||
call feedkeys("y", 'Lx!')
|
||||
|
||||
*test_gui_tabmenu_event()*
|
||||
test_gui_tabmenu_event({tabnr}, {event})
|
||||
Add an event that simulates selecting a tabline menu entry for
|
||||
tabpage {tabnr} to the input buffer. {event} is 1 for the
|
||||
first menu entry, 2 for the second entry and so on.
|
||||
After injecting the event you probably should call
|
||||
|feedkeys()| to have them processed, e.g.: >
|
||||
call feedkeys("y", 'Lx!')
|
||||
|
||||
test_ignore_error({expr}) *test_ignore_error()*
|
||||
Ignore any error containing {expr}. A normal message is given
|
||||
@@ -188,24 +206,28 @@ test_override({name}, {val}) *test_override()*
|
||||
to run tests. Only to be used for testing Vim!
|
||||
The override is enabled when {val} is non-zero and removed
|
||||
when {val} is zero.
|
||||
Current supported values for name are:
|
||||
Current supported values for {name} are:
|
||||
|
||||
name effect when {val} is non-zero ~
|
||||
redraw disable the redrawing() function
|
||||
redraw_flag ignore the RedrawingDisabled flag
|
||||
{name} effect when {val} is non-zero ~
|
||||
autoload `import autoload` will load the script right
|
||||
away, not postponed until an item is used
|
||||
char_avail disable the char_avail() function
|
||||
starting reset the "starting" variable, see below
|
||||
nfa_fail makes the NFA regexp engine fail to force a
|
||||
fallback to the old engine
|
||||
no_query_mouse do not query the mouse position for "dec"
|
||||
terminals
|
||||
no_wait_return set the "no_wait_return" flag. Not restored
|
||||
with "ALL".
|
||||
ui_delay time in msec to use in ui_delay(); overrules a
|
||||
wait time of up to 3 seconds for messages
|
||||
redraw disable the redrawing() function
|
||||
redraw_flag ignore the RedrawingDisabled flag
|
||||
starting reset the "starting" variable, see below
|
||||
term_props reset all terminal properties when the version
|
||||
string is detected
|
||||
ui_delay time in msec to use in ui_delay(); overrules a
|
||||
wait time of up to 3 seconds for messages
|
||||
uptime overrules sysinfo.uptime
|
||||
vterm_title setting the window title by a job running in a
|
||||
terminal window
|
||||
ALL clear all overrides ({val} is not used)
|
||||
|
||||
"starting" is to be used when a test should behave like
|
||||
@@ -348,7 +370,7 @@ assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
||||
Run {cmd} and add an error message to |v:errors| if it does
|
||||
NOT produce an error or when {error} is not found in the
|
||||
error message. Also see |assert-return|.
|
||||
|
||||
*E856*
|
||||
When {error} is a string it must be found literally in the
|
||||
first reported error. Most often this will be the error code,
|
||||
including the colon, e.g. "E123:". >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2021 Dec 24
|
||||
*todo.txt* For Vim version 8.2. Last change: 2022 Jan 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,38 +38,22 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
type of v: vars should be more specific
|
||||
v:completed_item is dict<string>, not dict<any>
|
||||
|
||||
E1135 is used twice
|
||||
|
||||
"z=" in German can take a very long time, CTRL-C should interrupt it.
|
||||
|
||||
Vim9 - Make everything work:
|
||||
- For builtin functions using tv_get_string*() use check_for_string() to be
|
||||
more strict about the argument type (not a bool).
|
||||
done: balloon_()
|
||||
- Check many more builtin function arguments at compile time.
|
||||
map() could check that the return type of the function argument matches
|
||||
the type of the list or dict member. (#8092)
|
||||
Same for other functions, such as searchpair().
|
||||
- Test that a function defined inside a :def function is local to that
|
||||
function, g: functions can be defined and script-local functions cannot be
|
||||
defined.
|
||||
- Unexpected error message when using "var x: any | x.key = 9", because "x" is
|
||||
given the type number. Can we use VAR_ANY?
|
||||
- Check performance with callgrind and kcachegrind.
|
||||
Also set the script context for other "expr" options, like for 'foldexpr'?
|
||||
'printexpr' eval_printexpr()
|
||||
"expr:" part of 'spellsuggest eval_spell_expr()
|
||||
|
||||
Once Vim9 is stable:
|
||||
- Add the "vim9script" feature, can use has('vim9script')
|
||||
- Change the help to prefer Vim9 syntax where appropriate
|
||||
- Add all the error numbers in a good place in documentation.
|
||||
- In the generic eval docs, point out the Vim9 syntax where it differs.
|
||||
done until E1083
|
||||
- Check code coverage, add more tests if needed.
|
||||
- Use Vim9 for runtime files.
|
||||
PR #7497 for autoload/ccomplete.vim
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
- better implementation for partial and tests for that.
|
||||
- Check performance with callgrind and kcachegrind.
|
||||
- Better implementation for partial and tests for that.
|
||||
- when using "const" mark the variable type as const with TTFLAG_CONST, so
|
||||
that an error is given at compile time when trying to change it. E.g. for a
|
||||
const list and trying to call add().
|
||||
- Compile options that are an expression, e.g. "expr:" in 'spellsuggest',
|
||||
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
|
||||
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
|
||||
@@ -78,10 +62,9 @@ Further Vim9 improvements, possibly after launch:
|
||||
evaluation.
|
||||
Use the location where the option was set for deciding whether it's to be
|
||||
evaluated in Vim9 script context.
|
||||
- Handle command that is only a range more efficient than calling ISN_EXEC
|
||||
- implement :type, "import type"
|
||||
- implement enum, "import enum".
|
||||
- implement class and interface: See |vim9-classes|
|
||||
- implement :type
|
||||
- implement :enum
|
||||
- implement :class and :interface: See |vim9-classes|
|
||||
- For range: make table of first ASCII character with flag to quickly check if
|
||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||
- Inline call to map() and filter(), better type checking.
|
||||
@@ -219,6 +202,11 @@ Terminal emulator window:
|
||||
When using 'cryptmethod' xchaha20 the undo file is not encrypted.
|
||||
Need to handle extra bytes.
|
||||
|
||||
In Select mode the deleted text always goes into the unnamed register.
|
||||
Use CTRL-R to specify the register to use. (#9531)
|
||||
|
||||
Some prompts are not translated: #9495
|
||||
|
||||
Test_communicate_ipv6(): is flaky on many systems
|
||||
Fails in line 64 of Ch_communicate, no exception is thrown.
|
||||
|
||||
@@ -253,10 +241,10 @@ Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
|
||||
initialization to figure out the default value from 'shell'. Add a test for
|
||||
this.
|
||||
|
||||
Patch to add :argdedupe. (Nir Lichtman, #6235)
|
||||
|
||||
MS-Windows: did path modifier :p:8 stop working? #8600
|
||||
|
||||
Add support for "underdouble", "underdot" and "underdash". #9553
|
||||
|
||||
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
|
||||
|
||||
Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
|
||||
@@ -918,9 +906,6 @@ With 'foldmethod' "indent" and appending an empty line, what follows isn't
|
||||
included in the existing fold. Deleting the empty line and undo fixes it.
|
||||
(Oleg Koshovetc, 2018 Jul 15, #3214)
|
||||
|
||||
Patch to support "xxd -ps". (Erik Auerswald, 2018 May 1)
|
||||
Lacks a test.
|
||||
|
||||
Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018
|
||||
Jan 15, #2555)
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ You can specify #rrggbb hex colors and you can define new names for hex
|
||||
colors in |v:colornames| like so: >
|
||||
|
||||
let v:colornames['mine_red'] = '#aa0000'
|
||||
<
|
||||
|
||||
If you are authoring a color scheme for others to use, it is important
|
||||
to define these colors only when they do not exist: >
|
||||
|
||||
@@ -197,7 +197,7 @@ to define these colors only when they do not exist: >
|
||||
|
||||
This allows users of the color scheme to override the precise definition of
|
||||
that color prior to loading your color scheme. For example, in a |.vimrc|
|
||||
file:
|
||||
file: >
|
||||
|
||||
runtime colors/lists/css_colors.vim
|
||||
let v:colornames['your_red'] = v:colornames['css_red']
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_40.txt* For Vim version 8.2. Last change: 2020 Sep 02
|
||||
*usr_40.txt* For Vim version 8.2. Last change: 2022 Jan 03
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -20,7 +20,7 @@ Table of contents: |usr_toc.txt|
|
||||
==============================================================================
|
||||
*40.1* Key mapping
|
||||
|
||||
A simple mapping was explained in section |05.3|. The principle is that one
|
||||
A simple mapping was explained in section |05.4|. The principle is that one
|
||||
sequence of key strokes is translated into another sequence of key strokes.
|
||||
This is a simple, yet powerful mechanism.
|
||||
The simplest form is that one key is mapped to a sequence of keys. Since
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.2. Last change: 2021 Dec 20
|
||||
*various.txt* For Vim version 8.2. Last change: 2022 Jan 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -244,10 +244,10 @@ g8 Print the hex values of the bytes used in the
|
||||
compiler will have set stdin to a non-interactive
|
||||
mode.
|
||||
|
||||
*:!cmd* *:!* *E34*
|
||||
*:!cmd* *:!*
|
||||
:!{cmd} Execute {cmd} with the shell. See also the 'shell'
|
||||
and 'shelltype' option.
|
||||
|
||||
*E34*
|
||||
Any '!' in {cmd} is replaced with the previous
|
||||
external command (see also 'cpoptions'). But not when
|
||||
there is a backslash before the '!', then that
|
||||
@@ -476,9 +476,10 @@ N *+toolbar* |gui-toolbar|
|
||||
T *+user_commands* User-defined commands. |user-commands|
|
||||
Always enabled since 8.1.1210.
|
||||
B *+vartabs* Variable-width tabstops. |'vartabstop'|
|
||||
N *+viminfo* |'viminfo'|
|
||||
T *+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||
since 8.0.1118.
|
||||
T *+vim9script* |Vim9| script
|
||||
N *+viminfo* |'viminfo'|
|
||||
T *+virtualedit* |'virtualedit'| Always enabled since 8.1.826.
|
||||
T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
||||
T *+visualextra* extra Visual mode commands |blockwise-operators|
|
||||
@@ -569,19 +570,19 @@ N *+X11* Unix only: can restore window title |X11|
|
||||
:redi[r] END End redirecting messages.
|
||||
|
||||
*:filt* *:filter*
|
||||
:filt[er][!] {pat} {command}
|
||||
:filt[er][!] /{pat}/ {command}
|
||||
:filt[er][!] {pattern} {command}
|
||||
:filt[er][!] /{pattern}/ {command}
|
||||
Restrict the output of {command} to lines matching
|
||||
with {pat}. For example, to list only xml files: >
|
||||
with {pattern}. For example, to list only xml files: >
|
||||
:filter /\.xml$/ oldfiles
|
||||
< If the [!] is given, restrict the output of {command}
|
||||
to lines that do NOT match {pat}.
|
||||
to lines that do NOT match {pattern}.
|
||||
|
||||
{pat} is a Vim search pattern. Instead of enclosing
|
||||
{pattern} is a Vim search pattern. Instead of enclosing
|
||||
it in / any non-ID character (see |'isident'|) can be
|
||||
used, so long as it does not appear in {pat}. Without
|
||||
the enclosing character the pattern cannot include the
|
||||
bar character. 'ignorecase' is not used.
|
||||
used, so long as it does not appear in {pattern}.
|
||||
Without the enclosing character the pattern cannot
|
||||
include the bar character. 'ignorecase' is not used.
|
||||
|
||||
The pattern is matched against the relevant part of
|
||||
the output, not necessarily the whole line. Only some
|
||||
|
||||
@@ -166,7 +166,7 @@ Note: "+" と "\-c" は合わせて 10 個まで指定できます。
|
||||
.TP
|
||||
\-d
|
||||
差分モードで起動します。
|
||||
二つか三つの四つのファイルを引数に指定してください。
|
||||
2 個から 8 個のファイルを引数に指定してください。
|
||||
指定されたファイルが開かれ、それらのファイルの差分が表示されます。
|
||||
vimdiff(1) と同様の動作です。
|
||||
.TP
|
||||
@@ -217,8 +217,7 @@ GUI がサポートされている場合は、GUI で起動します。
|
||||
サポートされていない場合はエラーメッセージを表示して終了します。
|
||||
.TP
|
||||
\-i {viminfo}
|
||||
viminfo ファイルを使う設定になっている場合は、初期設定の "~/.viminfo"
|
||||
の代わりに、指定されたファイルを設定します。
|
||||
初期設定の "~/.viminfo" の代わりに、viminfo ファイルを読み書きする際に使うファイル名を指定します。
|
||||
"NONE" を指定すると、.viminfo ファイルを使わないように設定できます。
|
||||
.TP
|
||||
\-L
|
||||
@@ -356,6 +355,10 @@ X サーバーと通信しません。端末での起動時間を短くできま
|
||||
これ以降の引数はすべてファイル名として扱われます。
|
||||
ファイル名が '\-' で始まっているファイルを開くときに使ってください。
|
||||
.TP
|
||||
\-\-clean
|
||||
一切の個人設定 (vimrc、プラグイン、その他) を使用しません。
|
||||
ある問題がクリーンな Vim セットアップで再現するかを確認するのに有用です。
|
||||
.TP
|
||||
\-\-echo\-wid
|
||||
GTK GUI のみ: Window ID を標準出力に出力します。
|
||||
.TP
|
||||
@@ -398,6 +401,9 @@ Vim サーバーの一覧を表示します。
|
||||
\-\-socketid {id}
|
||||
GTK GUI のみ: GtkPlug メカニズムを使って gvim を別のウィンドウの中で実行します。
|
||||
.TP
|
||||
\-\-startuptime {file}
|
||||
起動処理の間、経過時間のメッセージをファイル {fname} に書き出します。
|
||||
.TP
|
||||
\-\-version
|
||||
バージョン情報を表示して終了します。
|
||||
.SH オンラインヘルプ
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH VIM 1 "2006 Apr 11"
|
||||
.TH VIM 1 "2021 Jun 13"
|
||||
.SH NAME
|
||||
vim \- Vi IMproved, a programmer's text editor
|
||||
.SH SYNOPSIS
|
||||
|
||||
@@ -432,4 +432,4 @@ BUGS
|
||||
|
||||
|
||||
|
||||
2006 Apr 11 VIM(1)
|
||||
2021 Jun 13 VIM(1)
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2021 Dec 22
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2022 Jan 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
Vim9 script commands and expressions. *Vim9* *vim9*
|
||||
|
||||
Most expression help is in |eval.txt|. This file is about the new syntax and
|
||||
features in Vim9 script.
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
|
||||
1. What is Vim9 script? |Vim9-script|
|
||||
@@ -27,8 +24,6 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
1. What is Vim9 script? *Vim9-script*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
Vim script has been growing over time, while preserving backwards
|
||||
compatibility. That means bad choices from the past often can't be changed
|
||||
and compatibility with Vi restricts possible solutions. Execution is quite
|
||||
@@ -76,8 +71,6 @@ rewrite old scripts, they keep working as before. You may want to use a few
|
||||
|
||||
2. Differences from legacy Vim script *vim9-differences*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
Overview ~
|
||||
|
||||
Brief summary of the differences you will most often encounter when using Vim9
|
||||
@@ -88,7 +81,7 @@ script and `:def` functions; details are below:
|
||||
echo "hello "
|
||||
.. yourName
|
||||
.. ", how are you?"
|
||||
- White space is required in many places.
|
||||
- White space is required in many places to improve readability.
|
||||
- Assign values without `:let`, declare variables with `:var`: >
|
||||
var count = 0
|
||||
count += 3
|
||||
@@ -101,8 +94,8 @@ script and `:def` functions; details are below:
|
||||
def CallMe(count: number, message: string): bool
|
||||
- Call functions without `:call`: >
|
||||
writefile(['done'], 'file.txt')
|
||||
- You cannot use `:xit`, `:t`, `:k`, `:append`, `:change`, `:insert`, `:open`,
|
||||
and `:s` or `:d` with only flags.
|
||||
- You cannot use old Ex commands `:xit`, `:t`, `:k`, `:append`, `:change`,
|
||||
`:insert`, `:open`, and `:s` or `:d` with only flags.
|
||||
- You cannot use curly-braces names.
|
||||
- A range before a command must be prefixed with a colon: >
|
||||
:%s/this/that
|
||||
@@ -110,6 +103,8 @@ script and `:def` functions; details are below:
|
||||
`:exe`: >
|
||||
:exe @a
|
||||
- Unless mentioned specifically, the highest |scriptversion| is used.
|
||||
- When defining an expression mapping, the expression will be evaluated in the
|
||||
context of the script where it was defined.
|
||||
|
||||
|
||||
Comments starting with # ~
|
||||
@@ -127,7 +122,7 @@ is the same as in shell scripts and Python programs.
|
||||
|
||||
In Vi # is a command to list text with numbers. In Vim9 script you can use
|
||||
`:number` for that. >
|
||||
101 number
|
||||
:101 number
|
||||
|
||||
To improve readability there must be a space between a command and the #
|
||||
that starts a comment: >
|
||||
@@ -195,7 +190,7 @@ functions.
|
||||
|
||||
Arguments are accessed by name, without "a:", just like any other language.
|
||||
There is no "a:" dictionary or "a:000" list.
|
||||
*vim9-variable-arguments*
|
||||
*vim9-variable-arguments* *E1055*
|
||||
Variable arguments are defined as the last argument, with a name and have a
|
||||
list type, similar to TypeScript. For example, a list of numbers: >
|
||||
def MyFunc(...itemlist: list<number>)
|
||||
@@ -232,7 +227,7 @@ the "name#" prefix is sufficient. >
|
||||
def s:ThisFunction() # script-local
|
||||
def g:ThatFunction() # global
|
||||
def scriptname#function() # autoload
|
||||
|
||||
< *E1058* *E1075*
|
||||
When using `:function` or `:def` to specify a nested function inside a `:def`
|
||||
function and no namespace was given, this nested function is local to the code
|
||||
block it is defined in. In a `:def` function it is not possible to define a
|
||||
@@ -294,7 +289,8 @@ some point when loaded again. E.g. when a buffer local option is set: >
|
||||
|
||||
|
||||
Variable declarations with :var, :final and :const ~
|
||||
*vim9-declaration* *:var*
|
||||
*vim9-declaration* *:var*
|
||||
*E1017* *E1020* *E1054*
|
||||
Local variables need to be declared with `:var`. Local constants need to be
|
||||
declared with `:final` or `:const`. We refer to both as "variables" in this
|
||||
section.
|
||||
@@ -325,7 +321,7 @@ The declaration must be done earlier: >
|
||||
inner = 0
|
||||
endif
|
||||
echo inner
|
||||
|
||||
< *E1025*
|
||||
To intentionally hide a variable from code that follows, a block can be
|
||||
used: >
|
||||
{
|
||||
@@ -352,13 +348,15 @@ And with autocommands: >
|
||||
}
|
||||
|
||||
Although using a :def function probably works better.
|
||||
|
||||
*E1022*
|
||||
Declaring a variable with a type but without an initializer will initialize to
|
||||
zero, false or empty.
|
||||
|
||||
false (for bool), empty (for string, list, dict, etc.) or zero (for number,
|
||||
any, etc.). This matters especially when using the "any" type, the value will
|
||||
default to the number zero.
|
||||
*E1016* *E1052* *E1066*
|
||||
In Vim9 script `:let` cannot be used. An existing variable is assigned to
|
||||
without any command. The same for global, window, tab, buffer and Vim
|
||||
variables, because they are not really declared. They can also be deleted
|
||||
variables, because they are not really declared. Those can also be deleted
|
||||
with `:unlet`.
|
||||
|
||||
`:lockvar` does not work on local variables. Use `:const` and `:final`
|
||||
@@ -366,7 +364,7 @@ instead.
|
||||
|
||||
The `exists()` and `exists_compiled()` functions do not work on local variables
|
||||
or arguments.
|
||||
|
||||
*E1006* *E1041*
|
||||
Variables, functions and function arguments cannot shadow previously defined
|
||||
or imported variables and functions in the same script file.
|
||||
Variables may shadow Ex commands, rename the variable if needed.
|
||||
@@ -396,8 +394,8 @@ later. Example: >
|
||||
endif
|
||||
enddef
|
||||
|
||||
If you would do it like this you get an error at compile time that
|
||||
"PluginFunc" does not exist, even when "g:loaded_plugin" does not exist: >
|
||||
If you do it like this, you get an error at compile time that "PluginFunc"
|
||||
does not exist, even when "g:loaded_plugin" does not exist: >
|
||||
def CallPluginFunc()
|
||||
if exists('g:loaded_plugin')
|
||||
PluginFunc() # Error - function not found
|
||||
@@ -434,7 +432,7 @@ How constants work varies between languages. Some consider a variable that
|
||||
can't be assigned another value a constant. JavaScript is an example. Others
|
||||
also make the value immutable, thus when a constant uses a list, the list
|
||||
cannot be changed. In Vim9 we can use both.
|
||||
|
||||
*E1021*
|
||||
`:const` is used for making both the variable and the value a constant. Use
|
||||
this for composite structures that you want to make sure will not be modified.
|
||||
Example: >
|
||||
@@ -567,7 +565,7 @@ characters, e.g.: >
|
||||
})
|
||||
No command can follow the "{", only a comment can be used there.
|
||||
|
||||
*command-block*
|
||||
*command-block* *E1026*
|
||||
The block can also be used for defining a user command. Inside the block Vim9
|
||||
syntax will be used.
|
||||
|
||||
@@ -602,7 +600,7 @@ Also when confused with the start of a command block: >
|
||||
|
||||
|
||||
Automatic line continuation ~
|
||||
|
||||
*vim9-line-continuation*
|
||||
In many cases it is obvious that an expression continues on the next line. In
|
||||
those cases there is no need to prefix the line with a backslash (see
|
||||
|line-continuation|). For example, when a list spans multiple lines: >
|
||||
@@ -687,6 +685,11 @@ This will assign "start" and print a line: >
|
||||
var result = start
|
||||
:+ print
|
||||
|
||||
After the range an Ex command must follow. Without the colon you can call a
|
||||
function without `:call`, but after a range you do need it: >
|
||||
MyFunc()
|
||||
:% call MyFunc()
|
||||
|
||||
Note that the colon is not required for the |+cmd| argument: >
|
||||
edit +6 fname
|
||||
|
||||
@@ -735,7 +738,7 @@ Notes:
|
||||
|
||||
|
||||
White space ~
|
||||
|
||||
*E1004* *E1068* *E1069* *E1074*
|
||||
Vim9 script enforces proper use of white space. This is no longer allowed: >
|
||||
var name=234 # Error!
|
||||
var name= 234 # Error!
|
||||
@@ -780,7 +783,7 @@ No curly braces expansion ~
|
||||
|
||||
|
||||
Dictionary literals ~
|
||||
|
||||
*vim9-literal-dict* *E1014*
|
||||
Traditionally Vim has supported dictionary literals with a {} syntax: >
|
||||
let dict = {'key': value}
|
||||
|
||||
@@ -870,7 +873,7 @@ first if needed.
|
||||
|
||||
|
||||
Conditions and expressions ~
|
||||
|
||||
*vim9-boolean*
|
||||
Conditions and expressions are mostly working like they do in other languages.
|
||||
Some values are different from legacy Vim script:
|
||||
value legacy Vim script Vim9 script ~
|
||||
@@ -922,9 +925,9 @@ always converted to string: >
|
||||
'hello ' .. 123 == 'hello 123'
|
||||
'hello ' .. v:true == 'hello true'
|
||||
|
||||
Simple types are string, float, special and bool. For other types |string()|
|
||||
can be used.
|
||||
*false* *true* *null*
|
||||
Simple types are Number, Float, Special and Bool. For other types |string()|
|
||||
should be used.
|
||||
*false* *true* *null* *E1034*
|
||||
In Vim9 script one can use "true" for v:true, "false" for v:false and "null"
|
||||
for v:null. When converting a boolean to a string "false" and "true" are
|
||||
used, not "v:false" and "v:true" like in legacy script. "v:none" is not
|
||||
@@ -1067,17 +1070,19 @@ Using ++var or --var in an expression is not supported yet.
|
||||
|
||||
3. New style functions *fast-functions*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
*:def*
|
||||
*:def* *E1028*
|
||||
:def[!] {name}([arguments])[: {return-type}]
|
||||
Define a new function by the name {name}. The body of
|
||||
the function follows in the next lines, until the
|
||||
matching `:enddef`.
|
||||
|
||||
When {return-type} is omitted or is "void" the
|
||||
function is not expected to return anything.
|
||||
|
||||
matching `:enddef`. *E1073*
|
||||
*E1011*
|
||||
The {name} must be less than 100 bytes long.
|
||||
*E1003* *E1027* *E1056* *E1059*
|
||||
The type of value used with `:return` must match
|
||||
{return-type}. When {return-type} is omitted or is
|
||||
"void" the function is not expected to return
|
||||
anything.
|
||||
*E1077*
|
||||
{arguments} is a sequence of zero or more argument
|
||||
declarations. There are three forms:
|
||||
{name}: {type}
|
||||
@@ -1101,7 +1106,7 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
later in Vim9 script. They can only be removed by
|
||||
reloading the same script.
|
||||
|
||||
*:enddef*
|
||||
*:enddef* *E1057*
|
||||
:enddef End of a function defined with `:def`. It should be on
|
||||
a line by its own.
|
||||
|
||||
@@ -1121,7 +1126,7 @@ prefix if they do not exist at the time of compiling.
|
||||
|
||||
*:disa* *:disassemble*
|
||||
:disa[ssemble] {func} Show the instructions generated for {func}.
|
||||
This is for debugging and testing.
|
||||
This is for debugging and testing. *E1061*
|
||||
Note that for command line completion of {func} you
|
||||
can prepend "s:" to find script-local functions.
|
||||
|
||||
@@ -1183,9 +1188,8 @@ for each closure call a function to define it: >
|
||||
==============================================================================
|
||||
|
||||
4. Types *vim9-types*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
*E1008* *E1009* *E1010* *E1012*
|
||||
*E1013* *E1029* *E1030*
|
||||
The following builtin types are supported:
|
||||
bool
|
||||
number
|
||||
@@ -1200,17 +1204,19 @@ The following builtin types are supported:
|
||||
func: {type}
|
||||
func({type}, ...)
|
||||
func({type}, ...): {type}
|
||||
void
|
||||
|
||||
Not supported yet:
|
||||
tuple<a: {type}, b: {type}, ...>
|
||||
|
||||
These types can be used in declarations, but no simple value will actually
|
||||
have the "void" type.
|
||||
have the "void" type. Trying to use a void (e.g. a function without a
|
||||
return value) results in error *E1031* .
|
||||
|
||||
There is no array type, use list<{type}> instead. For a list constant an
|
||||
efficient implementation is used that avoids allocating lot of small pieces of
|
||||
memory.
|
||||
|
||||
*E1005* *E1007*
|
||||
A partial and function can be declared in more or less specific ways:
|
||||
func any kind of function reference, no type
|
||||
checking for arguments or return value
|
||||
@@ -1366,14 +1372,20 @@ Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
|
||||
5. Namespace, Import and Export
|
||||
*vim9script* *vim9-export* *vim9-import*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
A Vim9 script can be written to be imported. This means that some items are
|
||||
intentionally exported, made available to other scripts. When the exporting
|
||||
script is imported in another script, these exported items can then be used in
|
||||
that script. All the other items remain script-local in the exporting script
|
||||
and cannot be accessed by the importing script.
|
||||
|
||||
A Vim9 script can be written to be imported. This means that everything in
|
||||
the script is local, unless exported. Those exported items, and only those
|
||||
items, can then be imported in another script.
|
||||
This mechanism exists for writing a script that can be sourced (imported) by
|
||||
other scripts, while making sure these other scripts only have access to what
|
||||
you want them to. This also avoids using the global namespace, which has a
|
||||
risc of name collisions. For example when you have two plugins with similar
|
||||
functionality.
|
||||
|
||||
You can cheat by using the global namespace explicitly. We will assume here
|
||||
that you don't do that.
|
||||
You can cheat by using the global namespace explicitly. That should be done
|
||||
only for things that really are global.
|
||||
|
||||
|
||||
Namespace ~
|
||||
@@ -1402,6 +1414,7 @@ One of the effects is that |line-continuation| is always enabled.
|
||||
The original value of 'cpoptions' is restored at the end of the script, while
|
||||
flags added or removed in the script are also added to or removed from the
|
||||
original value to get the same effect. The order of flags may change.
|
||||
In the |vimrc| file sourced on startup this does not happen.
|
||||
|
||||
*vim9-mix*
|
||||
There is one way to use both legacy and Vim9 syntax in one script file: >
|
||||
@@ -1421,9 +1434,6 @@ This can only work in two ways:
|
||||
2. The "if" statement evaluates to true, the commands up to `endif` are
|
||||
executed and `finish` bails out before reaching `vim9script`.
|
||||
|
||||
TODO: The "vim9script" feature does not exist yet, it will only be added once
|
||||
the Vim9 script syntax has been fully implemented.
|
||||
|
||||
|
||||
Export ~
|
||||
*:export* *:exp*
|
||||
@@ -1435,7 +1445,7 @@ Exporting an item can be written as: >
|
||||
export def MyFunc() ...
|
||||
export class MyClass ...
|
||||
export interface MyClass ...
|
||||
|
||||
< *E1043* *E1044*
|
||||
As this suggests, only constants, variables, `:def` functions and classes can
|
||||
be exported. {not implemented yet: class, interface}
|
||||
|
||||
@@ -1444,25 +1454,40 @@ be exported. {not implemented yet: class, interface}
|
||||
|
||||
|
||||
Import ~
|
||||
*:import* *:imp* *E1094*
|
||||
The exported items can be imported individually in another Vim9 script: >
|
||||
import EXPORTED_CONST from "thatscript.vim"
|
||||
import MyClass from "myclass.vim"
|
||||
*:import* *:imp* *E1094* *E1047*
|
||||
*E1048* *E1049* *E1053* *E1071*
|
||||
The exported items can be imported in another Vim9 script: >
|
||||
import "myscript.vim"
|
||||
|
||||
To import multiple items at the same time: >
|
||||
import {someValue, MyClass} from "thatscript.vim"
|
||||
This makes each item available as "myscript.item".
|
||||
*:import-as*
|
||||
In case the name is long or ambiguous, another name can be specified: >
|
||||
import "thatscript.vim" as that
|
||||
< *E1060*
|
||||
Then you can use "that.EXPORTED_CONST", "that.someValue", etc. You are free
|
||||
to choose the name "that". Use something that will be recognized as referring
|
||||
to the imported script. Avoid command names and builtin function names,
|
||||
because the name will shadow them. If the name starts with a capital letter
|
||||
it can also shadow global user commands and functions. Also, you cannot use
|
||||
the name for something else in the script, such as a function or variable
|
||||
name.
|
||||
|
||||
In case the name is ambiguous, another name can be specified: >
|
||||
import MyClass as ThatClass from "myclass.vim"
|
||||
import {someValue, MyClass as ThatClass} from "myclass.vim"
|
||||
In case the dot in the name is undesired, a local reference can be made for a
|
||||
function: >
|
||||
var LongFunc = that.LongFuncName
|
||||
|
||||
To import all exported items under a specific identifier: >
|
||||
import * as That from 'thatscript.vim'
|
||||
This also works for constants: >
|
||||
const MAXLEN = that.MAX_LEN_OF_NAME
|
||||
|
||||
Then you can use "That.EXPORTED_CONST", "That.someValue", etc. You are free
|
||||
to choose the name "That", but it is highly recommended to use the name of the
|
||||
script file to avoid confusion. Also avoid command names, because the name
|
||||
will shadow them.
|
||||
This does not work for variables, since the value would be copied once and
|
||||
when changing the variable the copy will change, not the original variable.
|
||||
You will need to use the full name, with the dot.
|
||||
|
||||
The full syntax of the command is:
|
||||
import {filename} [as {name}]
|
||||
Where {filename} is an expression that must evaluate to a string. Without the
|
||||
"as {name}" part it must end in ".vim". {name} must consist of letters,
|
||||
digits and '_', like |internal-variables|.
|
||||
|
||||
`:import` can also be used in legacy Vim script. The imported items still
|
||||
become script-local, even when the "s:" prefix is not given.
|
||||
@@ -1481,53 +1506,86 @@ The script name after `import` can be:
|
||||
longer and unique, to avoid loading the wrong file.
|
||||
Note that "after/import" is not used.
|
||||
|
||||
If the name does not end in ".vim" then the use of "as name" is required.
|
||||
|
||||
Once a vim9 script file has been imported, the result is cached and used the
|
||||
next time the same script is imported. It will not be read again.
|
||||
*:import-cycle*
|
||||
|
||||
It is not allowed to import the same script twice, also when using two
|
||||
different "as" names.
|
||||
|
||||
When using the imported name the dot and the item name must be in the same
|
||||
line, there can be no line break: >
|
||||
echo that.
|
||||
name # Error!
|
||||
echo that
|
||||
.name # Error!
|
||||
< *:import-cycle*
|
||||
The `import` commands are executed when encountered. If that script (directly
|
||||
or indirectly) imports the current script, then items defined after the
|
||||
`import` won't be processed yet. Therefore cyclic imports can exist, but may
|
||||
result in undefined items.
|
||||
|
||||
|
||||
Import in an autoload script ~
|
||||
|
||||
Importing an autoload script ~
|
||||
*vim9-autoload*
|
||||
For optimal startup speed, loading scripts should be postponed until they are
|
||||
actually needed. A recommended mechanism:
|
||||
actually needed. Using the autoload mechanism is recommended:
|
||||
|
||||
1. In the plugin define user commands, functions and/or mappings that refer to
|
||||
an autoload script. >
|
||||
command -nargs=1 SearchForStuff searchfor#Stuff(<f-args>)
|
||||
items imported from an autoload script. >
|
||||
import autoload 'for/search.vim'
|
||||
command -nargs=1 SearchForStuff search.Stuff(<f-args>)
|
||||
|
||||
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen.
|
||||
The "SearchForStuff" command is now available to the user.
|
||||
|
||||
2. In the autoload script do the actual work. You can import items from
|
||||
other files to split up functionality in appropriate pieces. >
|
||||
The "autoload" argument to `:import` means that the script is not loaded
|
||||
until one of the items is actually used. The script will be found under
|
||||
the "autoload" directory in 'runtimepath' instead of the "import"
|
||||
directory.
|
||||
|
||||
2. In the autoload script put the bulk of the code. >
|
||||
vim9script
|
||||
import FilterFunc from "../import/someother.vim"
|
||||
def searchfor#Stuff(arg: string)
|
||||
var filtered = FilterFunc(arg)
|
||||
export def Stuff(arg: string)
|
||||
...
|
||||
< This goes in .../autoload/searchfor.vim. "searchfor" in the file name
|
||||
must be exactly the same as the prefix for the function name, that is how
|
||||
Vim finds the file.
|
||||
|
||||
3. Other functionality, possibly shared between plugins, contains the exported
|
||||
items and any private items. >
|
||||
vim9script
|
||||
var localVar = 'local'
|
||||
export def FilterFunc(arg: string): string
|
||||
...
|
||||
< This goes in .../import/someother.vim.
|
||||
< This goes in .../autoload/for/search.vim.
|
||||
|
||||
Putting the "search.vim" script under the "/autoload/for/" directory has
|
||||
the effect that "for#search#" will be prefixed to every exported item. The
|
||||
prefix is obtained from the file name, as you would to manually in a
|
||||
legacy autoload script. Thus the exported function can be found with
|
||||
"for#search#Stuff", but you would normally use `import autoload` and not
|
||||
use the prefix.
|
||||
|
||||
You can split up the functionality and import other scripts from the
|
||||
autoload script as you like. This way you can share code between plugins.
|
||||
|
||||
For defining a mapping that uses the imported autoload script the special key
|
||||
|<ScriptCmd>| is useful. It allows for a command in a mapping to use the
|
||||
script context of where the mapping was defined.
|
||||
|
||||
When compiling a `:def` function and a function in an autoload script is
|
||||
encountered, the script is not loaded until the `:def` function is called.
|
||||
This also means you get any errors only at runtime, since the argument and
|
||||
return types are not known yet.
|
||||
|
||||
For testing the |test_override()| function can be used to have the
|
||||
`import autoload` load the script right away, so that the items and types can
|
||||
be checked without waiting for them to be actually used: >
|
||||
test_override('autoload', 1)
|
||||
Reset it later with: >
|
||||
test_override('autoload', 0)
|
||||
Or: >
|
||||
test_override('ALL', 0)
|
||||
|
||||
|
||||
Import in legacy Vim script ~
|
||||
|
||||
If an `import` statement is used in legacy Vim script, the script-local "s:"
|
||||
namespace will be used for the imported item, even when "s:" is not specified.
|
||||
namespace will be used for the imported items, even when "s:" is not
|
||||
specified.
|
||||
|
||||
|
||||
==============================================================================
|
||||
@@ -1681,7 +1739,8 @@ Specific items from TypeScript we avoid:
|
||||
- TypeScript can use an expression like "99 || 'yes'" in a condition, but
|
||||
cannot assign the value to a boolean. That is inconsistent and can be
|
||||
annoying. Vim recognizes an expression with && or || and allows using the
|
||||
result as a bool. TODO: to be reconsidered
|
||||
result as a bool. The |falsy-operator| was added for the mechanism to use a
|
||||
default value.
|
||||
- TypeScript considers an empty string as Falsy, but an empty list or dict as
|
||||
Truthy. That is inconsistent. In Vim an empty list and dict are also
|
||||
Falsy.
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
.TH VIMDIFF 1 "2001 March 30"
|
||||
.SH 名前
|
||||
vimdiff \- 二つか三つか四つのファイルを Vim で開いて、その差分を表示する
|
||||
vimdiff \- 2 個から 8 個のファイルを Vim で開いて、その差分を表示する
|
||||
.SH 書式
|
||||
.br
|
||||
.B vimdiff
|
||||
[options] file1 file2 [file3 [file4]]
|
||||
[options] file1 file2 [file3 [file4 [file5 [file6 [file7 [file8]]]]]]
|
||||
.PP
|
||||
.B gvimdiff
|
||||
.SH 説明
|
||||
.B Vimdiff
|
||||
は、二つ (か三つか四つ) のファイルを
|
||||
は、2 個から 8 個のファイルを
|
||||
.B Vim
|
||||
で開きます。
|
||||
ファイルは個別のウィンドウで開かれ、差分が強調表示されます。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 8.2. Last change: 2021 Nov 21
|
||||
*visual.txt* For Vim version 8.2. Last change: 2022 Jan 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -488,6 +488,11 @@ Commands in Select mode:
|
||||
- ESC stops Select mode.
|
||||
- CTRL-O switches to Visual mode for the duration of one command. *v_CTRL-O*
|
||||
- CTRL-G switches to Visual mode.
|
||||
- CTRL-R {register} selects the register to be used for the text that is
|
||||
deleted when typing text. *v_CTRL-R*
|
||||
Unless you specify the "_" (black hole) register, the unnamed register is
|
||||
also overwritten.
|
||||
|
||||
|
||||
Otherwise, typed characters are handled as in Visual mode.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.2. Last change: 2021 Nov 29
|
||||
*windows.txt* For Vim version 8.2. Last change: 2022 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -146,7 +146,7 @@ highlight group (|hl-EndOfBuffer|) can be used to change the highlighting of
|
||||
the filler characters.
|
||||
|
||||
==============================================================================
|
||||
3. Opening and closing a window *opening-window* *E36*
|
||||
3. Opening and closing a window *opening-window*
|
||||
|
||||
CTRL-W s *CTRL-W_s*
|
||||
CTRL-W S *CTRL-W_S*
|
||||
@@ -246,6 +246,10 @@ CTRL-W : Does the same as typing |:| - enter a command line. Useful in a
|
||||
|
||||
Note that the 'splitbelow' and 'splitright' options influence where a new
|
||||
window will appear.
|
||||
*E36*
|
||||
Creating a window will fail if there is not enough room. Every window needs
|
||||
at least one screen line and column, sometimes more. Options 'winminheight'
|
||||
and 'winminwidth' are relevant.
|
||||
|
||||
*:vert* *:vertical*
|
||||
:vert[ical] {cmd}
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
一行
|
||||
.RI < cols >
|
||||
オクテットで出力する。標準設定は 16 (\-i: 12, \-ps: 30, \-b: 6)。最大 256。
|
||||
\-ps には最大値がありません。 \-ps 付きの場合、0 を指定すると単一の長い行で出力されます。
|
||||
.TP
|
||||
.IR \-C " | " \-capitalize
|
||||
\-i を使用した際に、C インクルードファイル形式の変数名を大文字にする。
|
||||
|
||||
@@ -70,6 +70,7 @@ followed by an ascii (or ebcdic) representation. The command line switches
|
||||
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.
|
||||
.TP
|
||||
.IR \-C " | " \-capitalize
|
||||
Capitalize variable names in C include file style, when using \-i.
|
||||
|
||||
@@ -42,7 +42,8 @@ OPTIONS
|
||||
|
||||
-c cols | -cols cols
|
||||
Format <cols> octets per line. Default 16 (-i: 12, -ps: 30, -b:
|
||||
6). Max 256.
|
||||
6). Max 256. No maxmimum for -ps. With -ps, 0 results in one
|
||||
long line of output.
|
||||
|
||||
-C | -capitalize
|
||||
Capitalize variable names in C include file style, when using
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Dec 22
|
||||
" Last Change: 2022 Jan 23
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -193,7 +193,8 @@ au BufNewFile,BufRead *.awk,*.gawk setf awk
|
||||
au BufNewFile,BufRead *.mch,*.ref,*.imp setf b
|
||||
|
||||
" BASIC or Visual Basic
|
||||
au BufNewFile,BufRead *.bas call dist#ft#FTVB("basic")
|
||||
au BufNewFile,BufRead *.bas call dist#ft#FTbas()
|
||||
au BufNewFile,BufRead *.bi,*.bm call dist#ft#FTbas()
|
||||
|
||||
" Visual Basic Script (close to Visual Basic) or Visual Basic .NET
|
||||
au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb
|
||||
@@ -202,7 +203,7 @@ au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb
|
||||
au BufNewFile,BufRead *.iba,*.ibi setf ibasic
|
||||
|
||||
" FreeBasic file (similar to QBasic)
|
||||
au BufNewFile,BufRead *.fb,*.bi setf freebasic
|
||||
au BufNewFile,BufRead *.fb setf freebasic
|
||||
|
||||
" Batch file for MSDOS.
|
||||
au BufNewFile,BufRead *.bat,*.sys setf dosbatch
|
||||
@@ -397,6 +398,7 @@ au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||
au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||
|
||||
" Dockerfile; Podman uses the same syntax with name Containerfile
|
||||
" Also see Dockerfile.* below.
|
||||
au BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile setf dockerfile
|
||||
|
||||
" WildPackets EtherPeek Decoder
|
||||
@@ -496,7 +498,7 @@ au BufNewFile,BufRead */debian/patches/* call dist#ft#Dep3patch()
|
||||
" Diff files
|
||||
au BufNewFile,BufRead *.diff,*.rej setf diff
|
||||
au BufNewFile,BufRead *.patch
|
||||
\ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' |
|
||||
\ if getline(1) =~# '^From [0-9a-f]\{40,\} Mon Sep 17 00:00:00 2001$' |
|
||||
\ setf gitsendemail |
|
||||
\ else |
|
||||
\ setf diff |
|
||||
@@ -652,6 +654,9 @@ au BufNewFile,BufRead *.fsl setf framescript
|
||||
" FStab
|
||||
au BufNewFile,BufRead fstab,mtab setf fstab
|
||||
|
||||
" Fusion
|
||||
au BufRead,BufNewFile *.fusion setf fusion
|
||||
|
||||
" F# or Forth
|
||||
au BufNewFile,BufRead *.fs call dist#ft#FTfs()
|
||||
|
||||
@@ -664,6 +669,12 @@ au BufNewFile,BufRead .gdbinit,gdbinit setf gdb
|
||||
" GDMO
|
||||
au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
|
||||
|
||||
" GDscript
|
||||
au BufNewFile,BufRead *.gd setf gdscript
|
||||
|
||||
" Godot resource
|
||||
au BufRead,BufNewFile *.tscn,*.tres setf gdresource
|
||||
|
||||
" Gedcom
|
||||
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
|
||||
|
||||
@@ -675,26 +686,28 @@ autocmd BufRead,BufNewFile *.gift setf gift
|
||||
|
||||
" Git
|
||||
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
|
||||
au BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig setf gitconfig
|
||||
au BufNewFile,BufRead NOTES_EDITMSG,EDIT_DESCRIPTION setf gitcommit
|
||||
au BufNewFile,BufRead *.git/config,.gitconfig,*/etc/gitconfig setf gitconfig
|
||||
au BufNewFile,BufRead */.config/git/config setf gitconfig
|
||||
au BufNewFile,BufRead *.git/config.worktree setf gitconfig
|
||||
au BufNewFile,BufRead *.git/worktrees/*/config.worktree setf gitconfig
|
||||
au BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig
|
||||
if !empty($XDG_CONFIG_HOME)
|
||||
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
|
||||
endif
|
||||
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
||||
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
|
||||
au BufNewFile,BufRead .msg.[0-9]*
|
||||
\ if getline(1) =~ '^From.*# This line is ignored.$' |
|
||||
\ setf gitsendemail |
|
||||
\ endif
|
||||
au BufNewFile,BufRead *.git/*
|
||||
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
||||
\ if getline(1) =~# '^\x\{40,\}\>\|^ref: ' |
|
||||
\ setf git |
|
||||
\ endif
|
||||
|
||||
" Gkrellmrc
|
||||
au BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc
|
||||
|
||||
" GLSL
|
||||
au BufNewFile,BufRead *.glsl setf glsl
|
||||
|
||||
" GP scripts (2.0 and onward)
|
||||
au BufNewFile,BufRead *.gp,.gprc setf gp
|
||||
|
||||
@@ -715,15 +728,19 @@ au BufNewFile,BufRead gitolite.conf setf gitolite
|
||||
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
|
||||
|
||||
" Gnuplot scripts
|
||||
au BufNewFile,BufRead *.gpi setf gnuplot
|
||||
au BufNewFile,BufRead *.gpi,.gnuplot setf gnuplot
|
||||
|
||||
" Go (Google)
|
||||
au BufNewFile,BufRead *.go setf go
|
||||
au BufNewFile,BufRead Gopkg.lock setf toml
|
||||
au BufRead,BufNewFile go.work setf gowork
|
||||
|
||||
" GrADS scripts
|
||||
au BufNewFile,BufRead *.gs setf grads
|
||||
|
||||
" GraphQL
|
||||
au BufNewFile,BufRead *.graphql,*.graphqls,*.gql setf graphql
|
||||
|
||||
" Gretl
|
||||
au BufNewFile,BufRead *.gretl setf gretl
|
||||
|
||||
@@ -739,12 +756,18 @@ au BufNewFile,BufRead */etc/group,*/etc/group-,*/etc/group.edit,*/etc/gshadow,*/
|
||||
" GTK RC
|
||||
au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc
|
||||
|
||||
" Hack
|
||||
au BufRead,BufNewFile *.hack,*.hackpartial setf hack
|
||||
|
||||
" Haml
|
||||
au BufNewFile,BufRead *.haml setf haml
|
||||
|
||||
" Hamster Classic | Playground files
|
||||
au BufNewFile,BufRead *.hsm setf hamster
|
||||
|
||||
" Handlebars
|
||||
au BufNewFile,BufRead *.hbs setf handlebars
|
||||
|
||||
" Haskell
|
||||
au BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell
|
||||
au BufNewFile,BufRead *.lhs setf lhaskell
|
||||
@@ -757,12 +780,21 @@ au BufNewFile,BufRead cabal.config setf cabalconfig
|
||||
au BufNewFile,BufRead *.ht setf haste
|
||||
au BufNewFile,BufRead *.htpp setf hastepreproc
|
||||
|
||||
" HCL
|
||||
au BufRead,BufNewFile *.hcl setf hcl
|
||||
|
||||
" Hercules
|
||||
au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules
|
||||
|
||||
" HEEx
|
||||
au BufRead,BufNewFile *.heex setf heex
|
||||
|
||||
" HEX (Intel)
|
||||
au BufNewFile,BufRead *.hex,*.h32 setf hex
|
||||
|
||||
" Hjson
|
||||
au BufNewFile,BufRead *.hjson setf hjson
|
||||
|
||||
" Hollywood
|
||||
au BufRead,BufNewFile *.hws setf hollywood
|
||||
|
||||
@@ -887,6 +919,9 @@ au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial
|
||||
" JSON
|
||||
au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json
|
||||
|
||||
" JSON5
|
||||
au BufNewFile,BufRead *.json5 setf json5
|
||||
|
||||
" JSON Patch (RFC 6902)
|
||||
au BufNewFile,BufRead *.json-patch setf json
|
||||
|
||||
@@ -938,6 +973,9 @@ au BufNewFile,BufRead *.ldif setf ldif
|
||||
" Ld loader
|
||||
au BufNewFile,BufRead *.ld setf ld
|
||||
|
||||
" Ledger
|
||||
au BufRead,BufNewFile *.ldg,*.ledger,*.journal setf ledger
|
||||
|
||||
" Less
|
||||
au BufNewFile,BufRead *.less setf less
|
||||
|
||||
@@ -962,9 +1000,9 @@ au BufNewFile,BufRead lilo.conf setf lilo
|
||||
" Lisp (*.el = ELisp, *.cl = Common Lisp)
|
||||
" *.jl was removed, it's also used for Julia, better skip than guess wrong.
|
||||
if has("fname_case")
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp
|
||||
else
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,.emacs,.sawfishrc setf lisp
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,.emacs,.sawfishrc setf lisp
|
||||
endif
|
||||
|
||||
" SBCL implementation of Common Lisp
|
||||
@@ -1175,6 +1213,9 @@ au BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/
|
||||
" Ninja file
|
||||
au BufNewFile,BufRead *.ninja setf ninja
|
||||
|
||||
" Nix
|
||||
au BufRead,BufNewFile *.nix setf nix
|
||||
|
||||
" NPM RC file
|
||||
au BufNewFile,BufRead npmrc,.npmrc setf dosini
|
||||
|
||||
@@ -1216,6 +1257,9 @@ au BufNewFile,BufRead *.xom,*.xin setf omnimark
|
||||
" OPAM
|
||||
au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam
|
||||
|
||||
" OpenFOAM
|
||||
au BufNewFile,BufRead [a-zA-Z0-9]*Dict\(.*\)\=,[a-zA-Z]*Properties\(.*\)\=,*Transport\(.*\),fvSchemes,fvSolution,fvConstrains,fvModels,*/constant/g,*/0\(\.orig\)\=/* call dist#ft#FTfoam()
|
||||
|
||||
" OpenROAD
|
||||
au BufNewFile,BufRead *.or setf openroad
|
||||
|
||||
@@ -1357,6 +1401,9 @@ au BufNewFile,BufRead *printcap
|
||||
au BufNewFile,BufRead *termcap
|
||||
\ let b:ptcap_type = "term" | setf ptcap
|
||||
|
||||
" Prisma
|
||||
au BufRead,BufNewFile *.prisma setf prisma
|
||||
|
||||
" PCCTS / ANTLR
|
||||
"au BufNewFile,BufRead *.g setf antlr
|
||||
au BufNewFile,BufRead *.g setf pccts
|
||||
@@ -1364,6 +1411,9 @@ au BufNewFile,BufRead *.g setf pccts
|
||||
" PPWizard
|
||||
au BufNewFile,BufRead *.it,*.ih setf ppwiz
|
||||
|
||||
" Pug
|
||||
au BufRead,BufNewFile *.pug setf pug
|
||||
|
||||
" Puppet
|
||||
au BufNewFile,BufRead Puppetfile setf ruby
|
||||
|
||||
@@ -1429,6 +1479,9 @@ au BufNewFile,BufRead *.pyx,*.pxd setf pyrex
|
||||
au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc setf python
|
||||
au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
|
||||
|
||||
" QL
|
||||
au BufRead,BufNewFile *.ql,*.qll setf ql
|
||||
|
||||
" Radiance
|
||||
au BufNewFile,BufRead *.rad,*.mat setf radiance
|
||||
|
||||
@@ -1668,7 +1721,7 @@ au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
|
||||
au BufNewFile,BufRead *.zsh setf zsh
|
||||
|
||||
" Scheme
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.rkt,*.rktd,*.rktl setf scheme
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.sld,*.rkt,*.rktd,*.rktl setf scheme
|
||||
|
||||
" Screen RC
|
||||
au BufNewFile,BufRead .screenrc,screenrc setf screen
|
||||
@@ -1777,8 +1830,8 @@ au BufNewFile,BufRead *.sqr,*.sqi setf sqr
|
||||
au BufNewFile,BufRead *.nut setf squirrel
|
||||
|
||||
" OpenSSH configuration
|
||||
au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig
|
||||
au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig
|
||||
au BufNewFile,BufRead ssh_config,*/.ssh/config,*/.ssh/*.conf setf sshconfig
|
||||
au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig
|
||||
|
||||
" OpenSSH server configuration
|
||||
au BufNewFile,BufRead sshd_config setf sshdconfig
|
||||
@@ -1833,6 +1886,9 @@ au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers
|
||||
" SVG (Scalable Vector Graphics)
|
||||
au BufNewFile,BufRead *.svg setf svg
|
||||
|
||||
" Surface
|
||||
au BufRead,BufNewFile *.sface setf surface
|
||||
|
||||
" Tads (or Nroff or Perl test file)
|
||||
au BufNewFile,BufRead *.t
|
||||
\ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif
|
||||
@@ -1850,6 +1906,9 @@ au BufRead,BufNewFile *.task setf taskedit
|
||||
" Tcl (JACL too)
|
||||
au BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc setf tcl
|
||||
|
||||
" Teal
|
||||
au BufRead,BufNewFile *.tl setf teal
|
||||
|
||||
" TealInfo
|
||||
au BufNewFile,BufRead *.tli setf tli
|
||||
|
||||
@@ -1867,6 +1926,9 @@ au BufRead,BufNewFile *.ttl
|
||||
" Terminfo
|
||||
au BufNewFile,BufRead *.ti setf terminfo
|
||||
|
||||
" Terraform
|
||||
au BufRead,BufNewFile *.tfvars setf terraform
|
||||
|
||||
" TeX
|
||||
au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex
|
||||
au BufNewFile,BufRead *.tex call dist#ft#FTtex()
|
||||
@@ -1886,6 +1948,9 @@ au BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf setf tidy
|
||||
" TF mud client
|
||||
au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf
|
||||
|
||||
" TLA+
|
||||
au BufRead,BufNewFile *.tla setf tla
|
||||
|
||||
" tmux configuration
|
||||
au BufNewFile,BufRead {.,}tmux*.conf setf tmux
|
||||
|
||||
@@ -2144,6 +2209,9 @@ au BufNewFile,BufRead *.raml setf raml
|
||||
" yum conf (close enough to dosini)
|
||||
au BufNewFile,BufRead */etc/yum.conf setf dosini
|
||||
|
||||
" YANG
|
||||
au BufRead,BufNewFile *.yang setf yang
|
||||
|
||||
" Zimbu
|
||||
au BufNewFile,BufRead *.zu setf zimbu
|
||||
" Zimbu Templates
|
||||
@@ -2238,6 +2306,9 @@ au BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/* call s:StarSetf('crontab
|
||||
" dnsmasq(8) configuration
|
||||
au BufNewFile,BufRead */etc/dnsmasq.d/* call s:StarSetf('dnsmasq')
|
||||
|
||||
" Dockerfile
|
||||
au BufNewFile,BufRead Dockerfile.*,Containerfile.* call s:StarSetf('dockerfile')
|
||||
|
||||
" Dracula
|
||||
au BufNewFile,BufRead drac.* call s:StarSetf('dracula')
|
||||
|
||||
@@ -2282,6 +2353,9 @@ au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig')
|
||||
" Lilo: Linux loader
|
||||
au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo')
|
||||
|
||||
" Libsensors
|
||||
au BufNewFile,BufRead */etc/sensors.d/[^.]* call s:StarSetf('sensors')
|
||||
|
||||
" Logcheck
|
||||
au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck')
|
||||
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
" Vim filetype plugin
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2019 Dec 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
if !exists('b:git_dir')
|
||||
if expand('%:p') =~# '[\/]\.git[\/]modules[\/]\|:[\/][\/]\|^\a\a\+:'
|
||||
" Stay out of the way
|
||||
elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
|
||||
let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
|
||||
elseif expand('%:p') =~# '\.git\>'
|
||||
let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
|
||||
elseif $GIT_DIR != ''
|
||||
let b:git_dir = $GIT_DIR
|
||||
endif
|
||||
if (has('win32') || has('win64')) && exists('b:git_dir')
|
||||
let b:git_dir = substitute(b:git_dir,'\\','/','g')
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
|
||||
if b:git_dir =~# '/\.git$' " Not a bare repository
|
||||
let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
|
||||
endif
|
||||
let &l:path = escape(b:git_dir,'\, ').','.&l:path
|
||||
let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
|
||||
else
|
||||
setlocal keywordprg=git\ show
|
||||
endif
|
||||
if has('gui_running')
|
||||
let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','')
|
||||
endif
|
||||
|
||||
setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
|
||||
let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
|
||||
@@ -1,66 +1,57 @@
|
||||
" Vim filetype plugin
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2019 Dec 05
|
||||
" Last Change: 2022 Jan 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! ftplugin/git.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
|
||||
setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q formatoptions+=n
|
||||
setlocal formatlistpat+=\\\|^\\s*[-*+]\\s\\+
|
||||
setlocal include=^+++
|
||||
setlocal includeexpr=substitute(v:fname,'^[bi]/','','')
|
||||
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms< formatlistpat<'
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms< formatlistpat< inc< inex<'
|
||||
|
||||
if exists("g:no_gitcommit_commands") || v:version < 700
|
||||
let s:l = search('\C\m^[#;@!$%^&|:] -\{24,\} >8 -\{24,\}$', 'cnW', '', 100)
|
||||
let &l:comments = ':' . (matchstr(getline(s:l ? s:l : '$'), '^[#;@!$%^&|:]\S\@!') . '#')[0]
|
||||
let &l:commentstring = &l:comments[1] . ' %s'
|
||||
unlet s:l
|
||||
|
||||
if exists("g:no_gitcommit_commands")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("b:git_dir")
|
||||
let b:git_dir = expand("%:p:h")
|
||||
endif
|
||||
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
|
||||
|
||||
function! s:diffcomplete(A,L,P)
|
||||
function! s:diffcomplete(A, L, P) abort
|
||||
let args = ""
|
||||
if a:P <= match(a:L." -- "," -- ")+3
|
||||
let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
|
||||
end
|
||||
if exists("b:git_dir") && a:A !~ '^-'
|
||||
let tree = fnamemodify(b:git_dir,':h')
|
||||
if strpart(getcwd(),0,strlen(tree)) == tree
|
||||
let args = args."\n".system("git diff --cached --name-only")
|
||||
endif
|
||||
if a:A !~ '^-' && !empty(getftype('.git'))
|
||||
let args = args."\n".system("git diff --cached --name-only")
|
||||
endif
|
||||
return args
|
||||
endfunction
|
||||
|
||||
function! s:gitdiffcached(bang,gitdir,...)
|
||||
let tree = fnamemodify(a:gitdir,':h')
|
||||
function! s:gitdiffcached(bang, ...) abort
|
||||
let name = tempname()
|
||||
let git = "git"
|
||||
if strpart(getcwd(),0,strlen(tree)) != tree
|
||||
let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
|
||||
endif
|
||||
if a:0
|
||||
let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
|
||||
let extra = join(map(copy(a:000), 'shellescape(v:val)'))
|
||||
else
|
||||
let extra = "-p --stat=".&columns
|
||||
endif
|
||||
call system(git." diff --cached --no-color --no-ext-diff ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
|
||||
exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
|
||||
call system("git diff --cached --no-color --no-ext-diff ".extra." > ".shellescape(name))
|
||||
exe "pedit " . fnameescape(name)
|
||||
wincmd P
|
||||
let b:git_dir = a:gitdir
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
|
||||
nnoremap <buffer> <silent> q :q<CR>
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
|
||||
setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
|
||||
endfunction
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
" Vim filetype plugin
|
||||
" Language: git rebase --interactive
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2019 Dec 05
|
||||
" Last Change: 2022 Jan 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! ftplugin/git.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s formatoptions-=t
|
||||
let &l:comments = ':' . (matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0]
|
||||
let &l:commentstring = &l:comments[1] . ' %s'
|
||||
setlocal formatoptions-=t
|
||||
setlocal nomodeline
|
||||
if !exists("b:undo_ftplugin")
|
||||
let b:undo_ftplugin = ""
|
||||
endif
|
||||
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
|
||||
let b:undo_ftplugin = "setl com< cms< fo< ml<"
|
||||
|
||||
function! s:choose(word) abort
|
||||
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
|
||||
@@ -41,8 +39,7 @@ if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps")
|
||||
finish
|
||||
endif
|
||||
|
||||
nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K'
|
||||
nnoremap <buffer> <silent> <C-A> :<C-U><C-R>=v:count1<CR>Cycle<CR>
|
||||
nnoremap <buffer> <silent> <C-X> :<C-U><C-R>=v:count1<CR>Cycle!<CR>
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|exe 'nunmap <buffer> K'|exe 'nunmap <buffer> <C-A>'|exe 'nunmap <buffer> <C-X>'"
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|exe 'nunmap <buffer> <C-A>'|exe 'nunmap <buffer> <C-X>'"
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# Translators: This is the Application Name used in the GVim desktop file
|
||||
Name[de]=GVim
|
||||
Name[eo]=GVim
|
||||
Name[fi]=GVim
|
||||
Name[fr]=GVim
|
||||
Name[it]=GVim
|
||||
Name[ru]=GVim
|
||||
@@ -13,6 +14,7 @@ Name=GVim
|
||||
# Translators: This is the Generic Application Name used in the Vim desktop file
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[eo]=Tekstoredaktilo
|
||||
GenericName[fi]=Tekstinmuokkain
|
||||
GenericName[fr]=Éditeur de texte
|
||||
GenericName[it]=Editor di testi
|
||||
GenericName[ja]=テキストエディタ
|
||||
@@ -23,6 +25,7 @@ GenericName=Text Editor
|
||||
# Translators: This is the comment used in the Vim desktop file
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[eo]=Redakti tekstajn dosierojn
|
||||
Comment[fi]=Muokkaa tekstitiedostoja
|
||||
Comment[fr]=Éditer des fichiers texte
|
||||
Comment[it]=Edita file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
@@ -54,7 +57,6 @@ Comment[es]=Edita archivos de texto
|
||||
Comment[et]=Redigeeri tekstifaile
|
||||
Comment[eu]=Editatu testu-fitxategiak
|
||||
Comment[fa]=ویرایش پروندههای متنی
|
||||
Comment[fi]=Muokkaa tekstitiedostoja
|
||||
Comment[ga]=Eagar comhad Téacs
|
||||
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
|
||||
Comment[he]=ערוך קבצי טקסט
|
||||
@@ -103,6 +105,7 @@ Type=Application
|
||||
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
|
||||
Keywords[de]=Text;Editor;
|
||||
Keywords[eo]=Teksto;redaktilo;
|
||||
Keywords[fi]=Teksti;muokkain;editori;
|
||||
Keywords[fr]=Texte;éditeur;
|
||||
Keywords[it]=Testo;editor;
|
||||
Keywords[ja]=テキスト;エディタ;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"
|
||||
" Author: Bram Moolenaar
|
||||
" Copyright: Vim license applies, see ":help license"
|
||||
" Last Change: 2021 Dec 16
|
||||
" Last Change: 2022 Jan 17
|
||||
"
|
||||
" WORK IN PROGRESS - Only the basics work
|
||||
" Note: On MS-Windows you need a recent version of gdb. The one included with
|
||||
@@ -147,7 +147,7 @@ func s:StartDebug_internal(dict)
|
||||
if &columns < g:termdebug_wide
|
||||
let s:save_columns = &columns
|
||||
let &columns = g:termdebug_wide
|
||||
" If we make the Vim window wider, use the whole left halve for the debug
|
||||
" If we make the Vim window wider, use the whole left half for the debug
|
||||
" windows.
|
||||
let s:allleft = 1
|
||||
endif
|
||||
@@ -426,7 +426,7 @@ func s:StartDebug_prompt(dict)
|
||||
call s:SendCommand('set env COLORS = ' . &t_Co)
|
||||
call s:SendCommand('set env VIM_TERMINAL = ' . v:version)
|
||||
else
|
||||
" TODO: open a new terminal get get the tty name, pass on to gdb
|
||||
" TODO: open a new terminal, get the tty name, pass on to gdb
|
||||
call s:SendCommand('show inferior-tty')
|
||||
endif
|
||||
call s:SendCommand('set print pretty on')
|
||||
@@ -1067,10 +1067,10 @@ func s:GetEvaluationExpression(range, arg)
|
||||
return expr
|
||||
endfunc
|
||||
|
||||
" clean up expression that may got in because of range
|
||||
" clean up expression that may get in because of range
|
||||
" (newlines and surrounding whitespace)
|
||||
" As it can also be specified via ex-command for assignments this function
|
||||
" may not change the "content" parts (like replacing contained spaces
|
||||
" may not change the "content" parts (like replacing contained spaces)
|
||||
func s:CleanupExpr(expr)
|
||||
" replace all embedded newlines/tabs/...
|
||||
let expr = substitute(a:expr, '\_s', ' ', 'g')
|
||||
@@ -1099,7 +1099,7 @@ func s:HandleEvaluate(msg)
|
||||
\ ->substitute('.*value="\(.*\)"', '\1', '')
|
||||
\ ->substitute('\\"', '"', 'g')
|
||||
\ ->substitute('\\\\', '\\', 'g')
|
||||
"\ multi-byte characters arrive in octal form, replace everthing but NULL values
|
||||
"\ multi-byte characters arrive in octal form, replace everything but NULL values
|
||||
\ ->substitute('\\000', s:NullRepl, 'g')
|
||||
\ ->substitute('\\\o\o\o', {-> eval('"' .. submatch(0) .. '"')}, 'g')
|
||||
"\ Note: GDB docs also mention hex encodings - the translations below work
|
||||
@@ -1252,8 +1252,18 @@ func s:HandleCursor(msg)
|
||||
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
|
||||
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
|
||||
if lnum =~ '^[0-9]*$'
|
||||
call s:GotoSourcewinOrCreateIt()
|
||||
call s:GotoSourcewinOrCreateIt()
|
||||
if expand('%:p') != fnamemodify(fname, ':p')
|
||||
echomsg 'different fname: "' .. expand('%:p') .. '" vs "' .. fnamemodify(fname, ':p') .. '"'
|
||||
augroup Termdebug
|
||||
" Always open a file read-only instead of showing the ATTENTION
|
||||
" prompt, since we are unlikely to want to edit the file.
|
||||
" The file may be changed but not saved, warn for that.
|
||||
au SwapExists * echohl WarningMsg
|
||||
\ | echo 'Warning: file is being edited elsewhere'
|
||||
\ | echohl None
|
||||
\ | let v:swapchoice = '0'
|
||||
augroup END
|
||||
if &modified
|
||||
" TODO: find existing window
|
||||
exe 'split ' . fnameescape(fname)
|
||||
@@ -1262,6 +1272,9 @@ func s:HandleCursor(msg)
|
||||
else
|
||||
exe 'edit ' . fnameescape(fname)
|
||||
endif
|
||||
augroup Termdebug
|
||||
au! SwapExists
|
||||
augroup END
|
||||
endif
|
||||
exe lnum
|
||||
normal! zv
|
||||
|
||||
@@ -384,7 +384,7 @@ else
|
||||
set ft=scheme
|
||||
|
||||
" Git output
|
||||
elseif s:line1 =~# '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
|
||||
elseif s:line1 =~# '^\(commit\|tree\|object\) \x\{40,\}\>\|^tag \S\+$'
|
||||
set ft=git
|
||||
|
||||
" Gprof (gnu profiler)
|
||||
@@ -406,6 +406,12 @@ else
|
||||
elseif s:line1 =~# '^#.*by RouterOS.*$'
|
||||
set ft=routeros
|
||||
|
||||
" Sed scripts
|
||||
" #ncomment is allowed but most likely a false positive so require a space
|
||||
" before any trailing comment text
|
||||
elseif s:line1 =~# '^#n\%($\|\s\)'
|
||||
set ft=sed
|
||||
|
||||
" CVS diff
|
||||
else
|
||||
let s:lnum = 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2019 Dec 05
|
||||
" Last Change: 2022 Jan 05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -12,12 +12,28 @@ syn sync minlines=50
|
||||
|
||||
syn include @gitDiff syntax/diff.vim
|
||||
|
||||
syn region gitHead start=/\%^/ end=/^$/
|
||||
syn region gitHead start=/\%(^commit\%( \x\{40\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/
|
||||
|
||||
" For git reflog and git show ...^{tree}, avoid sync issues
|
||||
syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
|
||||
syn match gitHead /^\x\{40\} \x\{40}\t.*/
|
||||
syn region gitHead start=/\%^\%(tag \|tree \|object \)\@=/ end=/^$/ contains=@NoSpell
|
||||
syn region gitHead start=/\%(^commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ contains=@NoSpell
|
||||
" git log --oneline
|
||||
" minimize false positives by verifying contents of buffer
|
||||
if getline(1) =~# '^\x\{7,\} ' && getline('$') =~# '^\x\{7,\} '
|
||||
syn match gitHashAbbrev /^\x\{7,\} \@=/ contains=@NoSpell
|
||||
elseif getline(1) =~# '^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \x\{7,\} '
|
||||
syn match gitHashAbbrev /^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \zs\x\{7,\} \@=/ contains=@NoSpell
|
||||
endif
|
||||
" git log --graph
|
||||
syn region gitGraph start=/\%(^[|\/\\_ ]*\*[|\/\\_ ]\{-\} commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^\%([|\/\\_ ]*$\)\@=/ contains=@NoSpell
|
||||
" git blame --porcelain
|
||||
syn region gitHead start=/\%(^\x\{40,\} \d\+ \d\+\%( \d\+\)\=$\)\@=/ end=/^\t\@=/ contains=@NoSpell
|
||||
" git ls-tree
|
||||
syn match gitMode /^\d\{6\}\%( \%(blob\|tree\) \x\{4,\}\t\)\@=/ nextgroup=gitType skipwhite contains=@NoSpell
|
||||
" git ls-files --stage
|
||||
syn match gitMode /^\d\{6\}\%( \x\{4,\} [0-3]\t\)\@=/ nextgroup=gitHashStage skipwhite contains=@NoSpell
|
||||
" .git/HEAD, .git/refs/
|
||||
syn match gitKeyword /\%^ref: \@=/ nextgroup=gitReference skipwhite contains=@NoSpell
|
||||
syn match gitHash /\%^\x\{40,}\%$/ skipwhite contains=@NoSpell
|
||||
" .git/logs/
|
||||
syn match gitReflog /^\x\{40,\} \x\{40,\} .\{-\}\d\+\s-\d\{4\}\t.*/ skipwhite contains=@NoSpell,gitReflogOld
|
||||
|
||||
syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold
|
||||
syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff
|
||||
@@ -25,35 +41,47 @@ syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\)
|
||||
syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
|
||||
syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
|
||||
syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge
|
||||
syn match gitDiffAdded "{+.*+}" contained containedin=gitDiff
|
||||
syn match gitDiffAdded "{+[^}]*+}" contained containedin=gitDiff
|
||||
syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge
|
||||
syn match gitDiffRemoved "\[-.*-\]" contained containedin=gitDiff
|
||||
syn match gitDiffRemoved "\[-[^]]*-\]" contained containedin=gitDiff
|
||||
|
||||
syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
|
||||
syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
|
||||
syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitMode /^\d\{6\}\>/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
|
||||
syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
|
||||
syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
|
||||
syn match gitKeyword /^commit \@=/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitHead nextgroup=gitHash skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\|tagger\) \@=/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell
|
||||
syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell
|
||||
syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite contains=@NoSpell
|
||||
|
||||
syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
|
||||
syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
|
||||
syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity
|
||||
syn match gitKeyword /^[*|\/\\_ ]\+\zscommit \@=/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^[|\/\\_ ]\+\zs\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitGraph nextgroup=gitHash skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^[|\/\\_ ]\+\zsMerge:/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitIdentityKeyword /^[|\/\\_ ]\+\zs\%(author\|committer\|tagger\) \@=/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell
|
||||
syn match gitIdentityHeader /^[|\/\\_ ]\+\zs\%(Author\|Commit\|Tagger\):/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell
|
||||
syn match gitDateHeader /^[|\/\\_ ]\+\zs\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitGraph nextgroup=gitDate skipwhite contains=@NoSpell
|
||||
|
||||
syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
|
||||
syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained
|
||||
syn match gitDate /\<\d\+ \l\+ ago\>/ contained
|
||||
syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite
|
||||
syn match gitStage /\<\d\t\@=/ contained
|
||||
syn match gitReference /\S\+\S\@!/ contained
|
||||
syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage,gitHash skipwhite
|
||||
syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
|
||||
syn match gitHashAbbrev /\<\x\{4,40\}\>/ contained nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitKeyword /^type \@=/ contained containedin=gitHead nextgroup=gitType skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^\%(summary\|boundary\|filename\|\%(author\|committer\)-\%(time\|tz\)\) \@=/ contained containedin=gitHead skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^tag \@=/ contained containedin=gitHead nextgroup=gitReference skipwhite contains=@NoSpell
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\)-mail \@=/ contained containedin=gitHead nextgroup=gitEmail skipwhite contains=@NoSpell
|
||||
syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite contains=@NoSpell
|
||||
syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite contains=@NoSpell
|
||||
syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity contains=@NoSpell
|
||||
|
||||
syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite contains=@NoSpell
|
||||
syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity contains=@NoSpell
|
||||
syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained contains=@NoSpell
|
||||
syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained contains=@NoSpell
|
||||
syn match gitDate /\<\d\+ \l\+ ago\>/ contained contains=@NoSpell
|
||||
syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitReference /\S\+\S\@!/ contained contains=@NoSpell
|
||||
syn match gitHash /\<\x\{40,\}\>/ contained nextgroup=gitIdentity,gitHash skipwhite contains=@NoSpell
|
||||
syn match gitReflogOld /^\x\{40,\} \@=/ contained nextgroup=gitReflogNew skipwhite contains=@NoSpell
|
||||
syn match gitReflogNew /\<\x\{40,\} \@=/ contained nextgroup=gitIdentity skipwhite contains=@NoSpell
|
||||
syn match gitHashAbbrev /\<\x\{4,\}\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitHashStage /\<\x\{4,\}\>/ contained nextgroup=gitStage skipwhite contains=@NoSpell
|
||||
syn match gitStage /\<\d\t\@=/ contained contains=@NoSpell
|
||||
|
||||
syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
|
||||
syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
|
||||
|
||||
syn match gitNotesHeader /^Notes:\ze\n /
|
||||
|
||||
@@ -68,7 +96,10 @@ hi def link gitEmailDelimiter Delimiter
|
||||
hi def link gitEmail Special
|
||||
hi def link gitDate Number
|
||||
hi def link gitMode Number
|
||||
hi def link gitHashStage gitHash
|
||||
hi def link gitHashAbbrev gitHash
|
||||
hi def link gitReflogOld gitHash
|
||||
hi def link gitReflogNew gitHash
|
||||
hi def link gitHash Identifier
|
||||
hi def link gitReflogMiddle gitReference
|
||||
hi def link gitReference Function
|
||||
|
||||
@@ -2,71 +2,87 @@
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: *.git/COMMIT_EDITMSG
|
||||
" Last Change: 2019 Dec 05
|
||||
" Last Change: 2022 Jan 05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
syn case match
|
||||
syn sync minlines=50
|
||||
syn sync linebreaks=1
|
||||
|
||||
if has("spell")
|
||||
syn spell toplevel
|
||||
endif
|
||||
|
||||
syn include @gitcommitDiff syntax/diff.vim
|
||||
syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold contains=@gitcommitDiff
|
||||
syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@gitcommitDiff
|
||||
|
||||
syn match gitcommitSummary "^.*\%<51v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
|
||||
syn match gitcommitOverflow ".*" contained contains=@Spell
|
||||
syn match gitcommitBlank "^[^#].*" contained contains=@Spell
|
||||
syn match gitcommitBlank "^.\+" contained contains=@Spell
|
||||
syn match gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank,gitcommitComment skipnl
|
||||
|
||||
if get(g:, "gitcommit_cleanup") is# "scissors"
|
||||
syn match gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank skipnl
|
||||
syn region gitcommitComment start=/^# -\+ >8 -\+$/ end=/\%$/ contains=gitcommitDiff
|
||||
else
|
||||
syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl
|
||||
syn match gitcommitComment "^#.*"
|
||||
let s:scissors = 0
|
||||
let s:l = search('^[#;@!$%^&|:] -\{24,\} >8 -\{24,\}$', 'cnW', '', 100)
|
||||
if s:l == 0
|
||||
let s:l = line('$')
|
||||
elseif getline(s:l)[0] !=# getline(s:l - 1)[0]
|
||||
let s:scissors = 1
|
||||
endif
|
||||
let s:comment = escape((matchstr(getline(s:l), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')
|
||||
|
||||
syn match gitcommitHead "^\%(# .*\n\)\+#$" contained transparent
|
||||
syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
|
||||
syn match gitcommitOnBranch "\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
|
||||
if s:scissors
|
||||
let s:comment .= ' -\{24,\} >8 -\{24,\}$'
|
||||
exe 'syn region gitcommitComment start="^' . s:comment . '" end="\%$" contains=gitcommitDiff'
|
||||
else
|
||||
exe 'syn match gitcommitComment "^' . s:comment . '.*"'
|
||||
endif
|
||||
exe 'syn match gitcommitTrailers "\n\@<=\n\%([[:alnum:]-]\+\s*:.*\|(cherry picked from commit .*\)\%(\n\s.*\|\n[[:alnum:]-]\+\s*:.*\|\n(cherry picked from commit .*\)*\%(\n\n*\%(' . s:comment . '\)\|\n*\%$\)\@="'
|
||||
|
||||
unlet s:l s:comment s:scissors
|
||||
|
||||
syn match gitcommitTrailerToken "^[[:alnum:]-]\+\s*:" contained containedin=gitcommitTrailers
|
||||
|
||||
syn match gitcommitHash "\<\x\{40,}\>" contains=@NoSpell display
|
||||
syn match gitcommitOnBranch "\%(^. \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
|
||||
syn match gitcommitOnBranch "\%(^. \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
|
||||
syn match gitcommitBranch "[^ ']\+" contained
|
||||
syn match gitcommitNoBranch "\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment
|
||||
syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment
|
||||
syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^# \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
|
||||
syn match gitcommitNoChanges "\%(^# \)\@<=No changes$" contained containedin=gitcommitComment
|
||||
syn match gitcommitNoBranch "\%(^. \)\@<=Not currently on any branch." contained containedin=gitcommitComment
|
||||
syn match gitcommitHeader "\%(^. \)\@<=\S.*[::]\%(\n^$\)\@!$" contained containedin=gitcommitComment
|
||||
syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^. \)\@<=\%(Author\|Committer\|Date\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
|
||||
syn match gitcommitHeader "\%(^. \)\@<=commit\%( \x\{40,\}$\)\@=" contained containedin=gitcommitComment nextgroup=gitcommitHash skipwhite
|
||||
syn match gitcommitNoChanges "\%(^. \)\@<=No changes$" contained containedin=gitcommitComment
|
||||
|
||||
syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
|
||||
syn match gitcommitUntrackedFile "\t\@<=.*" contained
|
||||
syn match gitcommitType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained containedin=gitcommitComment nextgroup=gitcommitFile skipwhite
|
||||
syn match gitcommitFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitArrow
|
||||
syn match gitcommitArrow " -> " contained nextgroup=gitcommitFile
|
||||
syn match gitcommitUntrackedFile "\%(^.\t\)\@<=[^::/]*\%(/.*\)\=$" contained containedin=gitcommitComment
|
||||
|
||||
syn region gitcommitDiscarded start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
|
||||
syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
|
||||
syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
|
||||
syn region gitcommitUntracked start=/^\z(.\) Untracked files:$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
|
||||
syn region gitcommitDiscarded start=/^\z(.\) Change\%(s not staged for commit\|d but not updated\):$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader,gitcommitDiscardedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
|
||||
syn region gitcommitSelected start=/^\z(.\) Changes to be committed:$/ end=/^\z1$\|^\z1\@!/ contains=gitcommitHeader,gitcommitSelectedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
|
||||
syn region gitcommitUnmerged start=/^\z(.\) Unmerged paths:$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader,gitcommitUnmergedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
|
||||
|
||||
syn match gitcommitUntrackedFile "\%(^.\t\)\@<=.*" contained containedin=gitcommitUntracked
|
||||
|
||||
syn match gitcommitDiscardedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
|
||||
syn match gitcommitSelectedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
|
||||
syn match gitcommitUnmergedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
|
||||
syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
|
||||
syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
|
||||
syn match gitcommitUnmergedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
|
||||
syn match gitcommitDiscardedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitDiscardedFile skipwhite
|
||||
syn match gitcommitSelectedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitSelectedFile skipwhite
|
||||
syn match gitcommitUnmergedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitUnmergedFile skipwhite
|
||||
syn match gitcommitDiscardedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
|
||||
syn match gitcommitSelectedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
|
||||
syn match gitcommitUnmergedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitUnmergedArrow
|
||||
syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile
|
||||
syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile
|
||||
syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitSelectedFile
|
||||
|
||||
syn match gitcommitWarning "\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl
|
||||
syn match gitcommitWarning "^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
|
||||
syn match gitcommitWarning "^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"
|
||||
syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitUnmergedFile
|
||||
|
||||
hi def link gitcommitSummary Keyword
|
||||
hi def link gitcommitTrailerToken Label
|
||||
hi def link gitcommitComment Comment
|
||||
hi def link gitcommitUntracked gitcommitComment
|
||||
hi def link gitcommitDiscarded gitcommitComment
|
||||
hi def link gitcommitSelected gitcommitComment
|
||||
hi def link gitcommitUnmerged gitcommitComment
|
||||
hi def link gitcommitHash Identifier
|
||||
hi def link gitcommitOnBranch Comment
|
||||
hi def link gitcommitBranch Special
|
||||
hi def link gitcommitNoBranch gitCommitBranch
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: git rebase --interactive
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: git-rebase-todo
|
||||
" Last Change: 2019 Dec 06
|
||||
" Last Change: 2022 Jan 05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -10,8 +10,10 @@ endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn match gitrebaseHash "\v<\x{7,}>" contained
|
||||
syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite
|
||||
let s:c = escape((matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')
|
||||
|
||||
syn match gitrebaseHash "\v<\x{7,}>" contained contains=@NoSpell
|
||||
syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite contains=@NoSpell
|
||||
syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
@@ -26,12 +28,15 @@ syn match gitrebaseLabel "\v^l(abel)=>" nextgroup=gitrebaseName skipwhite
|
||||
syn match gitrebaseReset "\v^(t|reset)=>" nextgroup=gitrebaseName skipwhite
|
||||
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
|
||||
syn match gitrebaseCommand ".*" contained
|
||||
syn match gitrebaseComment "^\s*#.*" contains=gitrebaseHash
|
||||
exe 'syn match gitrebaseComment " \@<=' . s:c . ' empty$" containedin=gitrebaseSummary contained'
|
||||
exe 'syn match gitrebaseComment "^\s*' . s:c . '.*" contains=gitrebaseHash'
|
||||
syn match gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseMergeOption "\v-[Cc]>" nextgroup=gitrebaseMergeCommit skipwhite contained
|
||||
syn match gitrebaseMergeCommit "\v<\x{7,}>" nextgroup=gitrebaseName skipwhite contained
|
||||
syn match gitrebaseName "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained
|
||||
syn match gitrebaseMergeComment "#" nextgroup=gitrebaseSummary skipwhite contained
|
||||
exe 'syn match gitrebaseMergeComment "' . s:c . '" nextgroup=gitrebaseSummary skipwhite contained'
|
||||
|
||||
unlet s:c
|
||||
|
||||
hi def link gitrebaseCommit gitrebaseHash
|
||||
hi def link gitrebaseHash Identifier
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: i3 config file
|
||||
" Maintainer: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
|
||||
" Original Author: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
|
||||
" Maintainer: Quentin Hibon (github user hiqua)
|
||||
" Version: 0.4
|
||||
" Last Change: 2021 Dec 14
|
||||
" Last Change: 2022 Jan 15
|
||||
|
||||
" References:
|
||||
" http://i3wm.org/docs/userguide.html#configuring
|
||||
@@ -174,7 +175,7 @@ syn keyword i3ConfigDrawingMarksKeyword show_marks contained
|
||||
syn match i3ConfigDrawingMarks /^\s*show_marks\s\+\(yes\|no\)\s\?$/ contains=i3ConfigFocusWrappingType,i3ConfigDrawingMarksKeyword
|
||||
|
||||
" Group mode/bar
|
||||
syn keyword i3ConfigBlockKeyword mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
|
||||
syn keyword i3ConfigBlockKeyword mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_min_width workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
|
||||
syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
|
||||
" Line continuation
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: M$ Resource files (*.rc)
|
||||
" Maintainer: Christian Brabandt
|
||||
" Last Change: 2015-05-29
|
||||
" Last Change: 20220116
|
||||
" Repository: https://github.com/chrisbra/vim-rc-syntax
|
||||
" License: Vim (see :h license)
|
||||
" Previous Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>
|
||||
@@ -173,16 +173,17 @@ hi def link rcAttribute rcCommonAttribute
|
||||
hi def link rcStdId rcStatement
|
||||
hi def link rcStatement Statement
|
||||
|
||||
" Default color overrides
|
||||
hi def rcLanguage term=reverse ctermbg=Red ctermfg=Yellow guibg=Red guifg=Yellow
|
||||
hi def rcMainObject term=underline ctermfg=Blue guifg=Blue
|
||||
hi def rcSubObject ctermfg=Green guifg=Green
|
||||
hi def rcCaptionParam term=underline ctermfg=DarkGreen guifg=Green
|
||||
hi def rcParam ctermfg=DarkGreen guifg=DarkGreen
|
||||
hi def rcStatement ctermfg=DarkGreen guifg=DarkGreen
|
||||
hi def rcCommonAttribute ctermfg=Brown guifg=Brown
|
||||
hi def link rcLanguage Constant
|
||||
hi def link rcCaptionParam Constant
|
||||
hi def link rcCommonAttribute Constant
|
||||
|
||||
hi def link rcMainObject Identifier
|
||||
hi def link rcSubObject Define
|
||||
hi def link rcParam Constant
|
||||
hi def link rcStatement Statement
|
||||
"
|
||||
"hi def link rcIdentifier Identifier
|
||||
|
||||
"hi def link rcIdentifier Identifier
|
||||
|
||||
|
||||
let b:current_syntax = "rc"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Derek Wyatt
|
||||
" URL: https://github.com/derekwyatt/vim-scala
|
||||
" License: Same as Vim
|
||||
" Last Change: 23 August 2021
|
||||
" Last Change: 23 January 2022
|
||||
" ----------------------------------------------------------------------------
|
||||
|
||||
if !exists('main_syntax')
|
||||
@@ -43,55 +43,55 @@ syn keyword scalaKeyword class trait object extends with nextgroup=scalaInstance
|
||||
syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite
|
||||
syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite
|
||||
syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite
|
||||
hi link scalaKeyword Keyword
|
||||
hi def link scalaKeyword Keyword
|
||||
|
||||
exe 'syn region scalaBlock start=/{/ end=/}/ contains=' . s:ContainedGroup() . ' fold'
|
||||
|
||||
syn keyword scalaAkkaSpecialWord when goto using startWith initialize onTransition stay become unbecome
|
||||
hi link scalaAkkaSpecialWord PreProc
|
||||
hi def link scalaAkkaSpecialWord PreProc
|
||||
|
||||
syn keyword scalatestSpecialWord shouldBe
|
||||
syn match scalatestShouldDSLA /^\s\+\zsit should/
|
||||
syn match scalatestShouldDSLB /\<should\>/
|
||||
hi link scalatestSpecialWord PreProc
|
||||
hi link scalatestShouldDSLA PreProc
|
||||
hi link scalatestShouldDSLB PreProc
|
||||
hi def link scalatestSpecialWord PreProc
|
||||
hi def link scalatestShouldDSLA PreProc
|
||||
hi def link scalatestShouldDSLB PreProc
|
||||
|
||||
syn match scalaSymbol /'[_A-Za-z0-9$]\+/
|
||||
hi link scalaSymbol Number
|
||||
hi def link scalaSymbol Number
|
||||
|
||||
syn match scalaChar /'.'/
|
||||
syn match scalaChar /'\\[\\"'ntbrf]'/ contains=scalaEscapedChar
|
||||
syn match scalaChar /'\\u[A-Fa-f0-9]\{4}'/ contains=scalaUnicodeChar
|
||||
syn match scalaEscapedChar /\\[\\"'ntbrf]/
|
||||
syn match scalaUnicodeChar /\\u[A-Fa-f0-9]\{4}/
|
||||
hi link scalaChar Character
|
||||
hi link scalaEscapedChar Special
|
||||
hi link scalaUnicodeChar Special
|
||||
hi def link scalaChar Character
|
||||
hi def link scalaEscapedChar Special
|
||||
hi def link scalaUnicodeChar Special
|
||||
|
||||
syn match scalaOperator "||"
|
||||
syn match scalaOperator "&&"
|
||||
syn match scalaOperator "|"
|
||||
syn match scalaOperator "&"
|
||||
hi link scalaOperator Special
|
||||
hi def link scalaOperator Special
|
||||
|
||||
syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaPostNameDefinition,scalaVariableDeclarationList
|
||||
syn match scalaNameDefinition /`[^`]\+`/ contained nextgroup=scalaPostNameDefinition
|
||||
syn match scalaVariableDeclarationList /\s*,\s*/ contained nextgroup=scalaNameDefinition
|
||||
syn match scalaPostNameDefinition /\_s*:\_s*/ contained nextgroup=scalaTypeDeclaration
|
||||
hi link scalaNameDefinition Function
|
||||
hi def link scalaNameDefinition Function
|
||||
|
||||
syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaInstanceHash
|
||||
syn match scalaInstanceDeclaration /`[^`]\+`/ contained
|
||||
syn match scalaInstanceHash /#/ contained nextgroup=scalaInstanceDeclaration
|
||||
hi link scalaInstanceDeclaration Special
|
||||
hi link scalaInstanceHash Type
|
||||
hi def link scalaInstanceDeclaration Special
|
||||
hi def link scalaInstanceHash Type
|
||||
|
||||
syn match scalaUnimplemented /???/
|
||||
hi link scalaUnimplemented ERROR
|
||||
hi def link scalaUnimplemented ERROR
|
||||
|
||||
syn match scalaCapitalWord /\<[A-Z][A-Za-z0-9$]*\>/
|
||||
hi link scalaCapitalWord Special
|
||||
hi def link scalaCapitalWord Special
|
||||
|
||||
" Handle type declarations specially
|
||||
syn region scalaTypeStatement matchgroup=Keyword start=/\<type\_s\+\ze/ end=/$/ contains=scalaTypeTypeDeclaration,scalaSquareBrackets,scalaTypeTypeEquals,scalaTypeStatement
|
||||
@@ -105,18 +105,18 @@ syn match scalaTypeTypeEquals /=\ze[^>]/ contained nextgroup=scalaTypeTypePostDe
|
||||
syn match scalaTypeTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeTypeDeclaration skipwhite
|
||||
syn match scalaTypeTypePostDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypePostExtension skipwhite
|
||||
syn match scalaTypeTypePostExtension /\%(⇒\|=>\|<:\|:>\|=:=\|::\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeTypePostDeclaration skipwhite
|
||||
hi link scalaTypeTypeDeclaration Type
|
||||
hi link scalaTypeTypeExtension Keyword
|
||||
hi link scalaTypeTypePostDeclaration Special
|
||||
hi link scalaTypeTypePostExtension Keyword
|
||||
hi def link scalaTypeTypeDeclaration Type
|
||||
hi def link scalaTypeTypeExtension Keyword
|
||||
hi def link scalaTypeTypePostDeclaration Special
|
||||
hi def link scalaTypeTypePostExtension Keyword
|
||||
|
||||
syn match scalaTypeDeclaration /(/ contained nextgroup=scalaTypeExtension contains=scalaRoundBrackets skipwhite
|
||||
syn match scalaTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeDeclaration contains=scalaTypeExtension skipwhite
|
||||
syn match scalaTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension skipwhite
|
||||
syn match scalaTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeDeclaration skipwhite
|
||||
hi link scalaTypeDeclaration Type
|
||||
hi link scalaTypeExtension Keyword
|
||||
hi link scalaTypePostExtension Keyword
|
||||
hi def link scalaTypeDeclaration Type
|
||||
hi def link scalaTypeExtension Keyword
|
||||
hi def link scalaTypePostExtension Keyword
|
||||
|
||||
syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$\s]:\_s*\)\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration contains=scalaRoundBrackets
|
||||
syn match scalaTypeAnnotation /)\_s*:\_s*\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration
|
||||
@@ -124,51 +124,51 @@ hi clear scalaTypeAnnotation
|
||||
|
||||
syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained contains=scalaCapitalWord
|
||||
syn match scalaCaseFollowing /`[^`]\+`/ contained contains=scalaCapitalWord
|
||||
hi link scalaCaseFollowing Special
|
||||
hi def link scalaCaseFollowing Special
|
||||
|
||||
syn keyword scalaKeywordModifier abstract override final lazy implicit private protected sealed null super
|
||||
syn keyword scalaSpecialFunction implicitly require
|
||||
hi link scalaKeywordModifier Function
|
||||
hi link scalaSpecialFunction Function
|
||||
hi def link scalaKeywordModifier Function
|
||||
hi def link scalaSpecialFunction Function
|
||||
|
||||
syn keyword scalaSpecial this true false ne eq
|
||||
syn keyword scalaSpecial new nextgroup=scalaInstanceDeclaration skipwhite
|
||||
syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)"
|
||||
syn match scalaSpecial /`[^`]\+`/ " Backtick literals
|
||||
hi link scalaSpecial PreProc
|
||||
hi def link scalaSpecial PreProc
|
||||
|
||||
syn keyword scalaExternal package import
|
||||
hi link scalaExternal Include
|
||||
hi def link scalaExternal Include
|
||||
|
||||
syn match scalaStringEmbeddedQuote /\\"/ contained
|
||||
syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scalaEscapedChar,scalaUnicodeChar
|
||||
hi link scalaString String
|
||||
hi link scalaStringEmbeddedQuote String
|
||||
hi def link scalaString String
|
||||
hi def link scalaStringEmbeddedQuote String
|
||||
|
||||
syn region scalaIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
syn region scalaTripleIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\ze\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
hi link scalaIString String
|
||||
hi link scalaTripleIString String
|
||||
hi def link scalaIString String
|
||||
hi def link scalaTripleIString String
|
||||
|
||||
syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
|
||||
exe 'syn region scalaInterpolationB matchgroup=scalaInterpolationBoundary start=/\${/ end=/}/ contained contains=' . s:ContainedGroup()
|
||||
hi link scalaInterpolation Function
|
||||
hi def link scalaInterpolation Function
|
||||
hi clear scalaInterpolationB
|
||||
|
||||
syn region scalaFString matchgroup=scalaInterpolationBrackets start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained
|
||||
exe 'syn region scalaFInterpolationB matchgroup=scalaInterpolationBoundary start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=' . s:ContainedGroup()
|
||||
hi link scalaFString String
|
||||
hi link scalaFInterpolation Function
|
||||
hi def link scalaFString String
|
||||
hi def link scalaFInterpolation Function
|
||||
hi clear scalaFInterpolationB
|
||||
|
||||
syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
|
||||
syn region scalaTripleFString matchgroup=scalaInterpolationBrackets start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
hi link scalaTripleString String
|
||||
hi link scalaTripleFString String
|
||||
hi def link scalaTripleString String
|
||||
hi def link scalaTripleFString String
|
||||
|
||||
hi link scalaInterpolationBrackets Special
|
||||
hi link scalaInterpolationBoundary Function
|
||||
hi def link scalaInterpolationBrackets Special
|
||||
hi def link scalaInterpolationBoundary Function
|
||||
|
||||
syn match scalaNumber /\<0[dDfFlL]\?\>/ " Just a bare 0
|
||||
syn match scalaNumber /\<[1-9]\d*[dDfFlL]\?\>/ " A multi-digit number - octal numbers with leading 0's are deprecated in Scala
|
||||
@@ -176,16 +176,16 @@ syn match scalaNumber /\<0[xX][0-9a-fA-F]\+[dDfFlL]\?\>/ " Hex number
|
||||
syn match scalaNumber /\%(\<\d\+\.\d*\|\.\d\+\)\%([eE][-+]\=\d\+\)\=[fFdD]\=/ " exponential notation 1
|
||||
syn match scalaNumber /\<\d\+[eE][-+]\=\d\+[fFdD]\=\>/ " exponential notation 2
|
||||
syn match scalaNumber /\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>/ " exponential notation 3
|
||||
hi link scalaNumber Number
|
||||
hi def link scalaNumber Number
|
||||
|
||||
syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets,scalaRoundBrackets
|
||||
|
||||
syn region scalaSquareBrackets matchgroup=scalaSquareBracketsBrackets start="\[" end="\]" skipwhite nextgroup=scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter
|
||||
syn match scalaTypeOperator /[-+=:<>]\+/ contained
|
||||
syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
|
||||
hi link scalaSquareBracketsBrackets Type
|
||||
hi link scalaTypeOperator Keyword
|
||||
hi link scalaTypeAnnotationParameter Function
|
||||
hi def link scalaSquareBracketsBrackets Type
|
||||
hi def link scalaTypeOperator Keyword
|
||||
hi def link scalaTypeAnnotationParameter Function
|
||||
|
||||
syn match scalaShebang "\%^#!.*" display
|
||||
syn region scalaMultilineComment start="/\*" end="\*/" contains=scalaMultilineComment,scalaDocLinks,scalaParameterAnnotation,scalaCommentAnnotation,scalaTodo,scalaCommentCodeBlock,@Spell keepend fold
|
||||
@@ -195,20 +195,20 @@ syn match scalaParamAnnotationValue /[.`_A-Za-z0-9$]\+/ contained
|
||||
syn region scalaDocLinks start="\[\[" end="\]\]" contained
|
||||
syn region scalaCommentCodeBlock matchgroup=Keyword start="{{{" end="}}}" contained
|
||||
syn match scalaTodo "\vTODO|FIXME|XXX" contained
|
||||
hi link scalaShebang Comment
|
||||
hi link scalaMultilineComment Comment
|
||||
hi link scalaDocLinks Function
|
||||
hi link scalaParameterAnnotation Function
|
||||
hi link scalaParamAnnotationValue Keyword
|
||||
hi link scalaCommentAnnotation Function
|
||||
hi link scalaCommentCodeBlock String
|
||||
hi link scalaTodo Todo
|
||||
hi def link scalaShebang Comment
|
||||
hi def link scalaMultilineComment Comment
|
||||
hi def link scalaDocLinks Function
|
||||
hi def link scalaParameterAnnotation Function
|
||||
hi def link scalaParamAnnotationValue Keyword
|
||||
hi def link scalaCommentAnnotation Function
|
||||
hi def link scalaCommentCodeBlock String
|
||||
hi def link scalaTodo Todo
|
||||
|
||||
syn match scalaAnnotation /@\<[`_A-Za-z0-9$]\+\>/
|
||||
hi link scalaAnnotation PreProc
|
||||
hi def link scalaAnnotation PreProc
|
||||
|
||||
syn match scalaTrailingComment "//.*$" contains=scalaTodo,@Spell
|
||||
hi link scalaTrailingComment Comment
|
||||
hi def link scalaTrailingComment Comment
|
||||
|
||||
syn match scalaAkkaFSM /goto([^)]*)\_s\+\<using\>/ contains=scalaAkkaFSMGotoUsing
|
||||
syn match scalaAkkaFSM /stay\_s\+using/
|
||||
@@ -221,8 +221,8 @@ syn match scalaAkkaFSM /onTermination/
|
||||
syn match scalaAkkaFSM /whenUnhandled/
|
||||
syn match scalaAkkaFSMGotoUsing /\<using\>/
|
||||
syn match scalaAkkaFSMGotoUsing /\<goto\>/
|
||||
hi link scalaAkkaFSM PreProc
|
||||
hi link scalaAkkaFSMGotoUsing PreProc
|
||||
hi def link scalaAkkaFSM PreProc
|
||||
hi def link scalaAkkaFSMGotoUsing PreProc
|
||||
|
||||
let b:current_syntax = 'scala'
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.2 script
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: December 21, 2021
|
||||
" Version: 8.2-20
|
||||
" Last Change: January 11, 2022
|
||||
" Version: 8.2-24
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@@ -19,12 +19,12 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
|
||||
syn cluster vimCommentGroup contains=vimTodo,@Spell
|
||||
|
||||
" regular vim commands {{{2
|
||||
syn keyword vimCommand contained a ar[gs] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] em[enu] endw[hile] export filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] wh[ile] wn[ext] wv[iminfo] xmenu xunme
|
||||
syn keyword vimCommand contained ab arga[dd] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] en[dif] ene[w] exu[sage] fin[d] foldc[lose] g h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] win[size] wp[revious] x[it] xnoreme xunmenu
|
||||
syn keyword vimCommand contained abc[lear] argd[elete] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] enddef eval f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] winc[md] wq xa[ll] xnoremenu xwininfo
|
||||
syn keyword vimCommand contained abo[veleft] argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon endf[unction] ex files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] windo wqa[ll] xmapc[lear] xprop y[ank]
|
||||
syn keyword vimCommand contained addd arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier el[se] endfo[r] exi[t] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] winp[os] wundo xme xr[estore] z[^.=]
|
||||
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec elsei[f] endt[ry] exp filetype fix[del] for gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage]
|
||||
syn keyword vimCommand contained a ar[gs] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec elsei[f] endt[ry] exp filetype fix[del] for gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wn[ext] wv[iminfo] xmenu xunme
|
||||
syn keyword vimCommand contained ab arga[dd] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] em[enu] endw[hile] export filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wp[revious] x[it] xnoreme xunmenu
|
||||
syn keyword vimCommand contained abc[lear] argd[elete] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] en[dif] ene[w] exu[sage] fin[d] foldc[lose] g h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wq xa[ll] xnoremenu xwininfo
|
||||
syn keyword vimCommand contained abo[veleft] argded[upe] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] enddef eval f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wqa[ll] xmapc[lear] xprop y[ank]
|
||||
syn keyword vimCommand contained addd argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon endf[unction] ex files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wundo xme xr[estore] z[^.=]
|
||||
syn keyword vimCommand contained al[l] arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier el[se] endfo[r] exi[t] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll]
|
||||
syn match vimCommand contained "\<z[-+^.=]\=\>"
|
||||
syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Winbar XMLent XMLns
|
||||
|
||||
@@ -78,12 +78,12 @@ syn match vimHLGroup contained "Conceal"
|
||||
syn case match
|
||||
|
||||
" Function Names {{{2
|
||||
syn keyword vimFuncName contained abs argc assert_equal assert_match atan browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filter floor foldlevel function getchangelist getcmdline getcursorcharpos getftime getmarklist getreg gettabwinvar getwinposx globpath histadd hlget indent inputrestore invert items job_status json_decode libcallnr list2str log mapcheck matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_ignore_error test_null_job test_override test_srand_seed timer_start tr undofile visualmode win_execute winheight winnr win_splitmove
|
||||
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath extend finddir fmod foldtext garbagecollect getchar getcmdpos getcwd getftype getmatches getreginfo gettagstack getwinposy has histdel hlID index inputsave isdirectory job_getchannel job_stop json_encode line listener_add log10 mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_blob test_null_list test_refcount test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin winrestcmd winwidth
|
||||
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extendnew findfile fnameescape foldtextresult get getcharmod getcmdtype getenv getimstatus getmousepos getregtype gettext getwinvar has_key histget hlset input inputsecret isinf job_info join keys line2byte listener_flush luaeval mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winrestview wordcount
|
||||
syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdwintype getfontname getjumplist getpid gettabinfo getwininfo glob haslocaldir histnr hostname inputdialog insert islocked job_setoptions js_decode len lispindent listener_remove map match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_drop_files test_null_dict test_null_string test_setmouse timer_info tolower type values wincol win_gettype winlayout winsaveview writefile
|
||||
syn keyword vimFuncName contained append asin assert_false assert_report balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcompletion getfperm getline getpos gettabvar getwinpos glob2regpat hasmapto hlexists iconv inputlist interrupt isnan job_start js_encode libcall list2blob localtime maparg matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_gui_mouse_event test_null_function test_option_not_set test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline win_screenpos xor
|
||||
syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filewritable float2nr foldclosedend funcref getbufvar getcharstr getcurpos getfsize getloclist getqflist
|
||||
syn keyword vimFuncName contained abs argc assert_equal assert_match atan browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filter floor foldlevel function getchangelist getcmdline getcursorcharpos getftime getmarklist getreg gettagstack getwinvar has_key histget hlset input inputsecret isinf job_info join keys line2byte listener_flush luaeval mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winnr win_splitmove
|
||||
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath extend finddir fmod foldtext garbagecollect getchar getcmdpos getcwd getftype getmatches getreginfo gettext glob haslocaldir histnr hostname inputdialog insert islocked job_setoptions js_decode len lispindent listener_remove map match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_drop_files test_null_dict test_null_string test_setmouse timer_info tolower type values wincol win_gettype winlayout winrestcmd winwidth
|
||||
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extendnew findfile fnameescape foldtextresult get getcharmod getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat hasmapto hlexists iconv inputlist interrupt isnan job_start js_encode libcall list2blob localtime maparg matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_gui_mouse_event test_null_function test_option_not_set test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline winrestview wordcount
|
||||
syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histadd hlget indent inputrestore invert items job_status json_decode libcallnr list2str log mapcheck matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_ignore_error test_null_job test_override test_srand_seed timer_start tr undofile visualmode win_execute winheight win_move_separator winsaveview writefile
|
||||
syn keyword vimFuncName contained append asin assert_false assert_report balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcompletion getfperm getline getpos gettabvar getwinposx has histdel hlID index inputsave isdirectory job_getchannel job_stop json_encode line listener_add log10 mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_blob test_null_list test_refcount test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
|
||||
syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filewritable float2nr foldclosedend funcref getbufvar getcharstr getcurpos getfsize getloclist getqflist gettabwinvar getwinposy
|
||||
|
||||
"--- syntax here and above generated by mkvimvim ---
|
||||
" Special Vim Highlighting (not automatic) {{{1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
になっています。
|
||||
|
||||
チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
|
||||
け時間を使うのかにもよりますが、およそ25から30分です。
|
||||
け時間を使うのかにもよりますが、およそ30分です。
|
||||
|
||||
ATTENTION:
|
||||
以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前
|
||||
@@ -24,7 +24,7 @@
|
||||
レッスン 1.1: カーソルの移動
|
||||
|
||||
|
||||
** カーソルを移動するには、示される様に h,j,k,l を押します **
|
||||
** カーソルを移動するには、示される様に h,j,k,l を押します。 **
|
||||
^
|
||||
k ヒント: h キーは左方向に移動します。
|
||||
< h l > l キーは右方向に移動します。
|
||||
@@ -65,11 +65,12 @@ NOTE: :q! <ENTER>
|
||||
|
||||
5. 1.3までカーソルを移動させましょう。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.3: テキスト編集 - 削除
|
||||
|
||||
|
||||
** ノーマルモードにてカーソルの下の文字を削除するには x を押します **
|
||||
** ノーマルモードにてカーソルの下の文字を削除するには x を押します。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -87,12 +88,11 @@ NOTE:
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.4: テキスト編集 - 挿入
|
||||
|
||||
|
||||
** ノーマルモードにてテキストを挿入するには i を押します **
|
||||
** ノーマルモードにてテキストを挿入するには i を押します。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
@@ -115,10 +115,10 @@ NOTE:
|
||||
レッスン 1.5: テキスト編集 - 追加
|
||||
|
||||
|
||||
** テキストを追加するには A を押しましょう **
|
||||
** テキストを追加するには A を押しましょう。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
カーソルがその文字上にあってもかまいません。
|
||||
カーソルがその行のどの文字上にあってもかまいません。
|
||||
|
||||
2. 追加が必要な場所で A をタイプしましょう。
|
||||
|
||||
@@ -137,18 +137,17 @@ NOTE:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.6: ファイルの編集
|
||||
|
||||
|
||||
** ファイルを保存して終了するには :wq とタイプします **
|
||||
** ファイルを保存して終了するには :wq とタイプします。 **
|
||||
|
||||
!! NOTE: 以下のステップを実行する前に、まず全体を読んでください!!
|
||||
|
||||
1. レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
|
||||
します。あるいは、別の端末がある場合はそこで以下の内容を行ってもかまい
|
||||
ません。
|
||||
1. 別の端末がある場合はそこで以下の内容を行ってください。そうでなければ、
|
||||
レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
|
||||
します。
|
||||
|
||||
2. シェルプロンプトでこのコマンドをタイプします: vim tutor <ENTER>
|
||||
'vim' が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
|
||||
名前です。変更してもよいファイルを使いましょう。
|
||||
2. シェルプロンプトでこのコマンドをタイプします: vim file.txt <ENTER>
|
||||
'vim' が Vim エディタを起動するコマンド、'file.txt' は編集したいファイル
|
||||
の名前です。変更できるファイルの名前を使いましょう。
|
||||
|
||||
3. 前のレッスンで学んだように、テキストを挿入、削除します。
|
||||
|
||||
@@ -186,9 +185,9 @@ NOTE: <ESC>
|
||||
レッスン 2.1: 削除コマンド
|
||||
|
||||
|
||||
** 単語の末尾までを削除するには dw とタイプしましょう **
|
||||
** 単語の末尾までを削除するには dw とタイプしましょう。 **
|
||||
|
||||
1. ノーマルモードであることを確認するために <ESC> を押しましょう。
|
||||
1. 確実にノーマルモードにするため <ESC> を押しましょう。
|
||||
|
||||
2. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -196,22 +195,22 @@ NOTE: <ESC>
|
||||
|
||||
4. 単語を削除するために dw とタイプしましょう。
|
||||
|
||||
NOTE: タイプすると、dw という文字がスクリーンの最下行に現われます。
|
||||
タイプを間違ってしまった時には <ESC> を押してやり直しましょう。
|
||||
NOTE: d をタイプすると、その文字がスクリーンの最下行に現われます。Vim は
|
||||
あなたが w をタイプするのを待っています。もし d 以外の文字が表示された
|
||||
時は何か間違っています。 <ESC> を押してやり直しましょう。
|
||||
|
||||
---> この 文 紙 には いくつかの たのしい 必要のない 単語 が 含まれて います。
|
||||
|
||||
5. 3 から 4 までを文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.2: その他の削除コマンド
|
||||
|
||||
|
||||
** 行の末尾までを削除するには d$ とタイプしましょう **
|
||||
** 行の末尾までを削除するには d$ とタイプしましょう。 **
|
||||
|
||||
1. ノーマルモードであることを確認するのに <ESC> を押しましょう。
|
||||
1. 確実にノーマルモードにするため <ESC> を押しましょう。
|
||||
|
||||
2. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -232,7 +231,7 @@ NOTE: <ESC>
|
||||
レッスン 2.3: オペレータとモーション
|
||||
|
||||
|
||||
多くのコマンドはオペレータとモーションからテキストに変更を加えます。
|
||||
テキストに変更を加える多くのコマンドはオペレータとモーションからなります。
|
||||
削除コマンド d のオペレータは次の様になっています:
|
||||
|
||||
d モーション
|
||||
@@ -248,7 +247,7 @@ NOTE: <ESC>
|
||||
|
||||
つまり de とタイプすると、カーソル位置から単語の終わりまでを削除します。
|
||||
|
||||
NOTE: 冒険したい人は、ノーマルモードにてコマンドなしにモーションを押して
|
||||
NOTE: 冒険したい人は、ノーマルモードにてオペレータなしにモーションを押して
|
||||
みましょう。カーソルが目的語一覧で示される位置に移動するはずです。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -259,7 +258,7 @@ NOTE:
|
||||
|
||||
1. 以下の ---> と示された行の先頭にカーソルを移動します。
|
||||
|
||||
2. 2w をタイプして単語2つ分前に移動します。
|
||||
2. 2w をタイプして単語2つ分先に移動します。
|
||||
|
||||
3. 3e をタイプして3つ目の単語の終端に移動します。
|
||||
|
||||
@@ -284,24 +283,24 @@ NOTE:
|
||||
より多くの削除が行えます:
|
||||
d 数値 モーション
|
||||
|
||||
1. ---> と示された行の行頭部分にカーソルを移動しましょう。
|
||||
1. ---> と示された行の最初の大文字の単語にカーソルを移動しましょう。
|
||||
|
||||
2. UPPER CASE の単語2つを d2w とタイプして削除します。
|
||||
2. 大文字の単語2つを d2w とタイプして削除します。
|
||||
|
||||
3. UPPER CASE という連続した単語を、1つのコマンドと異なるカウントを指定し、
|
||||
3. 連続した大文字の単語を、異なるカウントを指定した1つのコマンドで削除し、
|
||||
ステップ 1 と 2 を繰り返します。
|
||||
|
||||
---> このABC DE行のFGHI JK LMN OP単語はQ RS TUV綺麗になった。
|
||||
|
||||
NOTE: オペレータ d とモーションの間にカウントを使った場合、オペレータのない
|
||||
場合のモーションのように動作します。
|
||||
例: 3dw と d3w は同等で、3w を削除します。
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.6: 行の操作
|
||||
|
||||
|
||||
** 行全体を削除するには dd とタイプします **
|
||||
** 行全体を削除するには dd とタイプします。 **
|
||||
|
||||
行全体を削除する頻度が多いので、Viのデザイナーは行の削除を d の2回タイプと
|
||||
いう簡単なものに決めました。
|
||||
@@ -319,24 +318,25 @@ NOTE:
|
||||
---> 6) 砂糖は甘い
|
||||
---> 7) オマエモナー
|
||||
|
||||
2回タイプで1行に対して作用させる方法は以下で述べるオペレータでも動作します。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.7: やり直しコマンド
|
||||
|
||||
|
||||
** 最後のコマンドを取り消すには u を押します。U は行全体の取消です。 **
|
||||
** 最後のコマンドを取り消すには u を押します。U は行全体の取り消しです。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動し、最初の間違いにカーソル
|
||||
を移動しましょう。
|
||||
2. x をタイプしていらない先頭の文字を削除しましょう。
|
||||
2. x をタイプして最初のいらない文字を削除しましょう。
|
||||
3. さぁ、u をタイプして最後に実行したコマンドを取り消しましょう。
|
||||
4. 今度は、x を使用して誤りを全て修正しましょう。
|
||||
4. 今度は、x を使用して行内の誤りを全て修正しましょう。
|
||||
5. 大文字の U をタイプして、行を元の状態に戻しましょう。
|
||||
6. u をタイプして直前の U コマンドを取消しましょう。
|
||||
6. u をタイプして直前の U コマンドを取り消しましょう。
|
||||
7. ではコマンドを再実行するのに CTRL-R (CTRL を押したまま R を打つ)を数回
|
||||
タイプしてみましょう(取消の取消)。
|
||||
タイプしてみましょう(取り消しの取り消し)。
|
||||
|
||||
---> このの行のの間違いを修正々し、後でそれらの修正をを取消しまますす。
|
||||
---> このの行のの間違いを修正々し、後でそれらの修正をを取り消しまますす。
|
||||
|
||||
8. これはとても便利なコマンドです。さぁレッスン 2 要約へ進みましょう。
|
||||
|
||||
@@ -347,45 +347,47 @@ NOTE:
|
||||
レッスン 2 要約
|
||||
|
||||
|
||||
1. カーソル位置から単語の末尾までを削除するには dw とタイプします。
|
||||
2. カーソル位置から行の末尾までを削除するには d$ とタイプします。
|
||||
3. 行全体を削除するには dd とタイプします。
|
||||
1. カーソル位置から次の単語までを削除するには dw とタイプします。
|
||||
2. カーソル位置から単語の末尾までを削除するには de とタイプします。
|
||||
3. カーソル位置から行の末尾までを削除するには d$ とタイプします。
|
||||
4. 行全体を削除するには dd とタイプします。
|
||||
|
||||
4. モーションを繰り返すには数値を付与します: 2w
|
||||
5. 変更に用いるコマンドの形式は
|
||||
5. モーションを繰り返すには数値を付与します: 2w
|
||||
6. 変更に用いるコマンドの形式は
|
||||
オペレータ [数値] モーション
|
||||
|
||||
それぞれ:
|
||||
オペレータ - 削除 d の類で何をするか。
|
||||
数値 - そのコマンドを何回繰り返すか。
|
||||
モーション - w (単語)や $ (行末)などの類で、テキストの何に対して働きか
|
||||
けるか。
|
||||
[数値] - そのコマンドを何回繰り返すか。
|
||||
モーション - w (単語)や e (単語末尾)、$ (行末)などの類で、テキストの
|
||||
何に対して働きかけるか。
|
||||
|
||||
6. 行の先頭に移動するにはゼロを使用します: 0
|
||||
7. 行の先頭に移動するにはゼロを使用します: 0
|
||||
|
||||
8. 前回の動作を取り消す: u (小文字 u)
|
||||
行全体の変更を取り消す: U (大文字 U)
|
||||
取り消しの取り消し: CTRL-R
|
||||
|
||||
7. 前回の動作を取消す: u (小文字 u)
|
||||
行全体の変更を取消す: U (大文字 U)
|
||||
取消しの取消し: CTRL-R
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 3.1: 貼り付けコマンド
|
||||
|
||||
|
||||
** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします **
|
||||
** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします。 **
|
||||
|
||||
1. 以下の段落の最初の行にカーソルを移動しましょう。
|
||||
1. ---> と示された以下の最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. dd とタイプして行を削除し、Vim のバッファに格納しましょう。
|
||||
2. dd とタイプして行を削除し、Vim のレジスタに格納しましょう。
|
||||
|
||||
3. 削除した行が本来あるべき位置の上の行まで、カーソルを移動させましょう。
|
||||
3. 削除した行が本来あるべき位置の上の行である c) 行まで、カーソルを移動させ
|
||||
ましょう。
|
||||
|
||||
4. ノーマルモードで p をタイプして格納した行を画面に戻します。
|
||||
4. ノーマルモードで p をタイプして格納した行をカーソルの下に戻します。
|
||||
|
||||
5. 順番が正しくなる様にステップ 2 から 4 を繰り返しましょう。
|
||||
|
||||
d) 貴方も学ぶことができる?
|
||||
b) スミレは青い、
|
||||
c) 知恵とは学ぶもの、
|
||||
a) バラは赤い、
|
||||
---> d) 貴方も学ぶことができる?
|
||||
---> b) スミレは青い、
|
||||
---> c) 知恵とは学ぶもの、
|
||||
---> a) バラは赤い、
|
||||
|
||||
|
||||
|
||||
@@ -393,7 +395,7 @@ NOTE:
|
||||
レッスン 3.2: 置き換えコマンド
|
||||
|
||||
|
||||
** カーソルの下の文字を置き換えるには r をタイプします **
|
||||
** カーソルの下の文字を x に置き換えるには rx をタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
@@ -416,38 +418,38 @@ NOTE:
|
||||
レッスン 3.3: 変更コマンド
|
||||
|
||||
|
||||
** 単語の一部、もしくは全体を変更するには cw とタイプします **
|
||||
** 単語の末尾までを変更するには ce とタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. lubw の u の位置にカーソルを移動しましょう。
|
||||
|
||||
3. cw とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。
|
||||
3. ce とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。
|
||||
|
||||
4. 次の間違い(変更すべき文字の先頭)に移動するために <ESC> をタイプします。
|
||||
4. <ESC> をタイプしてから次の間違い(変更すべき文字の先頭)に移動します。
|
||||
|
||||
5. 最初の行が次の行の様になるまでステップ 3 と 4 を繰り返します。
|
||||
|
||||
---> This lubw has a few wptfd that mrrf changing usf the change operator.
|
||||
---> This line has a few words that need changing using the change operator.
|
||||
|
||||
cw は単語を変更するだけでなく、挿入も行えることに注意しましょう。
|
||||
|
||||
ce は単語を削除した後、挿入モードに入ることに注意しましょう。
|
||||
cc は同じことを行全体に対して行います。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 3.4: c を使用したその他の変更
|
||||
|
||||
|
||||
** 変更コマンドは、削除コマンドと同じ様にオブジェクトを使用します **
|
||||
** 変更オペレータは、削除と同じ様にモーションを使用します。 **
|
||||
|
||||
1. 変更コマンドは、削除コマンドと同じような動作をします。その形式は
|
||||
1. 変更オペレータは、削除と同じような動作をします。その形式は
|
||||
|
||||
c [数値] モーション
|
||||
|
||||
2. オブジェクトも同じで、w は単語、 $ は行末などといったものです。
|
||||
2. モーションも同じで、w は単語、 $ は行末などといったものです。
|
||||
|
||||
3. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
3. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
4. 最初の間違いへカーソルを移動しましょう。
|
||||
|
||||
@@ -470,7 +472,7 @@ NOTE:
|
||||
文字をタイプします。
|
||||
|
||||
3. 変更コマンドではカーソル位置から特定のモーションで指定される終端までを変
|
||||
更することが可能です。例えば cw ならばカーソル位置から単語の終わりまで、
|
||||
更することが可能です。例えば ce ならばカーソル位置から単語の終わりまで、
|
||||
c$ ならば行の終わりまでを変更します。
|
||||
|
||||
4. 変更コマンドの形式は
|
||||
@@ -485,7 +487,7 @@ NOTE:
|
||||
レッスン 4.1: 位置とファイルの情報
|
||||
|
||||
** ファイル内での位置とファイルの状態を表示するには CTRL-G をタイプします。
|
||||
ファイル内のある行に移動するには G をタイプします **
|
||||
ファイル内のある行に移動するには G をタイプします。 **
|
||||
|
||||
NOTE: ステップを実行する前に、このレッスン全てに目を通しましょう!!
|
||||
|
||||
@@ -496,7 +498,7 @@ NOTE:
|
||||
NOTE: 画面の右下隅にカーソルの位置が表示されているかもしれません。これは
|
||||
'ruler' オプション(:help 'ruler' を参照)を設定することで表示されます。
|
||||
|
||||
2. 最下行に移動するために G をタイプしましょう。
|
||||
2. ファイルの最下行に移動するために G をタイプしましょう。
|
||||
ファイルの先頭に移動するには gg とタイプしましょう。
|
||||
|
||||
3. 先ほどの行の番号をタイプし G をタイプしましょう。最初に CTRL-G を押した行
|
||||
@@ -508,19 +510,19 @@ NOTE:
|
||||
レッスン 4.2: 検索コマンド
|
||||
|
||||
|
||||
** 語句を検索するには / と、前方検索する語句をタイプします。**
|
||||
** 語句を検索するには / と、前方検索する語句をタイプします。 **
|
||||
|
||||
1. ノーマルモードで / という文字をタイプします。画面一番下に : コマンドと
|
||||
同じ様に / が現れることに気づくでしょう。
|
||||
|
||||
2. では、'errroor' <ENTER> とタイプしましょう。これが検索したい単語です。
|
||||
|
||||
3. 同じ語をもう一度検索するときは 単に n をタイプします。
|
||||
3. 同じ語句をもう一度検索するときは 単に n をタイプします。
|
||||
逆方向に語句を検索するときは N をタイプします。
|
||||
|
||||
4. 逆方向に語句を検索する場合は、/ の代わりに ? コマンドを使用します。
|
||||
|
||||
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプし
|
||||
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら文字 o をタイプ)をタイプし
|
||||
ます。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。
|
||||
|
||||
---> "errroor" は error とスペルが違います; errroor はいわゆる error です。
|
||||
@@ -531,7 +533,7 @@ NOTE:
|
||||
レッスン 4.3: 対応する括弧を検索
|
||||
|
||||
|
||||
** 対応する ),] や } を検索するには % をタイプします **
|
||||
** 対応する ),] や } を検索するには % をタイプします。 **
|
||||
|
||||
1. 下の ---> で示された行で (,[ か { のどれかにカーソルを移動しましょう。
|
||||
|
||||
@@ -554,7 +556,7 @@ NOTE:
|
||||
レッスン 4.4: 間違いを変更する方法
|
||||
|
||||
|
||||
** 'old' を 'new' に置換するには :s/old/new/g とタイプします **
|
||||
** 'old' を 'new' に置換するには :s/old/new/g とタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -567,9 +569,8 @@ NOTE:
|
||||
|
||||
---> thee best time to see thee flowers is in thee spring.
|
||||
|
||||
4. 複数行から見つかる文字を変更するには
|
||||
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定しま
|
||||
す。
|
||||
4. 複数行から見つかる文字の全ての箇所を変更するには
|
||||
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定する。
|
||||
:%s/old/new/g ファイル全体で見つかるものに対して変更する。
|
||||
:%s/old/new/gc ファイル全体で見つかるものに対して、1つ1つ確認をとりな
|
||||
がら変更する。
|
||||
@@ -593,7 +594,7 @@ NOTE:
|
||||
|
||||
4. 現在行の最初の old を new に置換する。 :s/old/new
|
||||
現在行の全ての old を new に置換する。 :s/old/new/g
|
||||
2つの # 間で語句を置換する。 :#,#s/old/new/g
|
||||
2つの # 行の間で語句を置換する。 :#,#s/old/new/g
|
||||
ファイルの中の全ての検索語句を置換する。 :%s/old/new/g
|
||||
'c' を加えると置換の度に確認を求める。 :%s/old/new/gc
|
||||
|
||||
@@ -601,10 +602,10 @@ NOTE:
|
||||
レッスン 5.1: 外部コマンドを実行する方法
|
||||
|
||||
|
||||
** :! の後に実行する外部コマンドをタイプします **
|
||||
** :! の後に実行する外部コマンドをタイプします。 **
|
||||
|
||||
1. 画面の最下部にカーソルが移動するよう、慣れ親しんだ : をタイプしましょう。
|
||||
これでコマンドがタイプできる様になります。
|
||||
これでコマンドライン命令がタイプできる様になります。
|
||||
|
||||
2. ここで ! という文字(感嘆符)をタイプしましょう。
|
||||
これで外部シェルコマンドが実行できる様になります。
|
||||
@@ -624,7 +625,7 @@ NOTE:
|
||||
レッスン 5.2: その他のファイルへ書き込み
|
||||
|
||||
|
||||
** ファイルへ変更を保存するには :w ファイル名 とタイプします **
|
||||
** ファイルへ変更を保存するには :w ファイル名 とタイプします。 **
|
||||
|
||||
1. ディレクトリの一覧を得るために :!dir もしくは :!ls とタイプしましょう。
|
||||
このあと <ENTER> を押すのは既にご存知ですね。
|
||||
@@ -634,7 +635,7 @@ NOTE:
|
||||
3. では :w TEST とタイプしましょう (TEST は、選んだファイル名です)。
|
||||
|
||||
4. これによりファイル全体が TEST という名前で保存されます。
|
||||
もう一度 :!dir もしくは :!ls とタイプして確認してみましょう。
|
||||
もう一度 :!dir もしくは :!ls とタイプしてディレクトリを確認してみましょう。
|
||||
|
||||
NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
|
||||
チュートリアルの複製ができ上がるはずです。
|
||||
@@ -647,7 +648,7 @@ NOTE:
|
||||
レッスン 5.3: 選択した書き込み
|
||||
|
||||
|
||||
** ファイルの位置を保存するには、v モーションと :w FILENAME をタイプします。 **
|
||||
** ファイルの一部を保存するには、v モーションと :w FILENAME をタイプします。 **
|
||||
|
||||
1. この行にカーソルを移動します。
|
||||
|
||||
@@ -660,20 +661,20 @@ NOTE:
|
||||
<ENTER> を押す前に :'<,'>w TEST となっていることを確認して下さい。
|
||||
|
||||
5. Vim は TEST というファイルに選択された行を書き込むでしょう。
|
||||
!dir もしくは !ls でそれを確認します。
|
||||
:!dir もしくは :!ls でそれを確認します。
|
||||
それは削除しないでおいて下さい。次のレッスンで使用します。
|
||||
|
||||
NOTE: v を押すと、Visual 選択が始まります。カーソルを動かすことで、選択範囲を
|
||||
大きくも小さくもできます。さらに、その選択範囲に対してオペレータを適用
|
||||
きます。例えば d はテキストを削除します。
|
||||
できます。例えば d はテキストを削除します。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 5.4: ファイルの取込と合併
|
||||
|
||||
|
||||
** ファイルの中身を挿入するには :r ファイル名 とタイプします **
|
||||
** ファイルの中身を挿入するには :r ファイル名 とタイプします。 **
|
||||
|
||||
1. カーソルを以下の行に合わせます。
|
||||
1. カーソルをこの行のすぐ上に合わせます。
|
||||
|
||||
NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れます。下に下がってこ
|
||||
のレッスンに移動しましょう。
|
||||
@@ -682,19 +683,18 @@ NOTE:
|
||||
ここでいう TEST は使うファイルの名前のことです。
|
||||
読み込まれたファイルは、カーソル行の下にあります。
|
||||
|
||||
3. 取込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
|
||||
3. 取り込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
|
||||
オリジナルとファイルによるものの2つがあることがわかります。
|
||||
|
||||
NOTE: 外部コマンドの出力を読み込むことも出来ます。例えば、
|
||||
NOTE: 外部コマンドの出力を読み込むこともできます。例えば、
|
||||
:r !ls は ls コマンドの出力をカーソル以下に読み込みます。
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 5 要約
|
||||
|
||||
|
||||
1. :!command によって 外部コマンドを実行します。
|
||||
1. :!command によって 外部コマンドを実行する。
|
||||
|
||||
よく使う例:
|
||||
(Windows) (Unix)
|
||||
@@ -717,13 +717,14 @@ NOTE:
|
||||
レッスン 6.1: オープンコマンド
|
||||
|
||||
|
||||
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります **
|
||||
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。
|
||||
|
||||
3. さらに挿入モードを終了する為に <ESC> をタイプします。
|
||||
3. いくつか文字をタイプしてから、挿入モードを終了する為に <ESC> を
|
||||
タイプします。
|
||||
|
||||
---> o をタイプするとカーソルは開いた行へ移動し挿入モードに入ります。
|
||||
|
||||
@@ -735,12 +736,11 @@ NOTE:
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.2: 追加コマンド
|
||||
|
||||
|
||||
** カーソルの次の位置からテキストを追加するには a とタイプします **
|
||||
** カーソルの次の位置からテキストを追加するには a とタイプします。 **
|
||||
|
||||
1. カーソルを ---> で示された最初の行へ移動しましょう。
|
||||
|
||||
@@ -763,7 +763,7 @@ NOTE: a, i
|
||||
レッスン 6.3: その他の置換方法
|
||||
|
||||
|
||||
** 1文字以上を置き換えるには大文字の R とタイプしましょう **
|
||||
** 1文字以上を置き換えるには大文字の R とタイプしましょう。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動します。最初の xxx の先頭に移動し
|
||||
ます。
|
||||
@@ -781,12 +781,11 @@ NOTE: a, i
|
||||
NOTE: 置換モードは挿入モードに似ていますが、全てのタイプされた文字は既存の文字
|
||||
を削除します。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.4: テキストのコピーとペースト
|
||||
|
||||
|
||||
** テキストのコピーにはオペレータ y を、ペーストには p を使います **
|
||||
** テキストのコピーにはオペレータ y を、ペーストには p を使います。 **
|
||||
|
||||
1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。
|
||||
|
||||
@@ -804,12 +803,13 @@ NOTE:
|
||||
---> a) this is the first item.
|
||||
b)
|
||||
|
||||
NOTE: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。
|
||||
NOTE: y をオペレータとして使うこともできます。yw は単語を1つ yank します。
|
||||
yy は行を1つ yank し、p でその行を put します。
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.5: オプションの設定
|
||||
|
||||
|
||||
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します **
|
||||
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します。 **
|
||||
|
||||
1. 次の様に入力して 'ignore' を検索しましょう: /ignore <ENTER>
|
||||
n を押して何度か検索を繰り返します。
|
||||
@@ -826,7 +826,7 @@ NOTE:
|
||||
6. 大文字小文字の区別を無効にするには次の様に入力します: :set noic
|
||||
|
||||
NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
|
||||
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
|
||||
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、語句内で \c
|
||||
を使用します: /ignore\c <ENTER>
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6 要約
|
||||
@@ -835,13 +835,13 @@ NOTE: 1
|
||||
O (大文字) をタイプするとカーソルの上の行で挿入モードになる。
|
||||
|
||||
2. カーソル上の文字の次からテキストを追加するには a とタイプする。
|
||||
行末に自動でテキストを挿入するには大文字 A をタイプする。
|
||||
行末にテキストを挿入するには大文字 A をタイプする。
|
||||
|
||||
3. e コマンドは単語の終端部カーソルを移動する。
|
||||
3. e コマンドは単語の終端にカーソルを移動する。
|
||||
|
||||
4. y オペレータはテキストを yank (コピー)し、p はそれを put (ペースト)する。
|
||||
|
||||
5. 大文字の R をタイプすると置換モードに入り、<ESC>を押すと抜ける。
|
||||
5. 大文字の R をタイプすると置換モードに入り、<ESC> を押すと抜ける。
|
||||
|
||||
6. ":set xxx" とタイプするとオプション "xxx" が設定される。
|
||||
'ic' 'ignorecase' 検索時に大文字小文字の区別しない
|
||||
@@ -849,7 +849,7 @@ NOTE: 1
|
||||
'hls' 'hlsearch' マッチするすべてを強調表示する
|
||||
長い方、短い方、どちらのオプション名でも使用できます。
|
||||
|
||||
7. オプションを無効にするには "no" を付与します: :set noic
|
||||
7. オプションを無効にするには "no" を付与する: :set noic
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 7.1: オンラインヘルプコマンド
|
||||
@@ -883,15 +883,15 @@ NOTE: 1
|
||||
使用不可となっています。より多くの特徴を使いはじめるには "vimrc" ファイル
|
||||
を作成します。
|
||||
|
||||
1. "vimrc" ファイルの編集を開始する。これはシステムに依存します。
|
||||
:edit ~/.vimrc UNIX 向け
|
||||
:edit ~/_vimrc Windows 向け
|
||||
1. "vimrc" ファイルの編集を開始します。これはシステムに依存します。
|
||||
:e ~/.vimrc UNIX 向け
|
||||
:e ~/_vimrc Windows 向け
|
||||
|
||||
2. ここでサンプルの "vimrc" を読み込みます。
|
||||
:read $VIMRUNTIME/vimrc_example.vim
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. 以下のようにファイルへ書き込みます。
|
||||
:write
|
||||
:w
|
||||
|
||||
次回 Vim を起動すると、色づけ構文が使えるようになるでしょう。
|
||||
この "vimrc" ファイルへ、お好みの設定を追加することができます。
|
||||
@@ -907,7 +907,7 @@ NOTE: 1
|
||||
|
||||
2. 現在のディレクトリに在るファイルを :!ls か :!dir で確認します。
|
||||
|
||||
3. コマンドの開始をタイプします: :e
|
||||
3. コマンドの先頭をタイプします: :e
|
||||
|
||||
4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
になっています。
|
||||
|
||||
チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
|
||||
け時間を使うのかにもよりますが、およそ25から30分です。
|
||||
け時間を使うのかにもよりますが、およそ30分です。
|
||||
|
||||
ATTENTION:
|
||||
以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前
|
||||
@@ -24,7 +24,7 @@
|
||||
レッスン 1.1: カーソルの移動
|
||||
|
||||
|
||||
** カーソルを移動するには、示される様に h,j,k,l を押します **
|
||||
** カーソルを移動するには、示される様に h,j,k,l を押します。 **
|
||||
^
|
||||
k ヒント: h キーは左方向に移動します。
|
||||
< h l > l キーは右方向に移動します。
|
||||
@@ -65,11 +65,12 @@ NOTE: :q! <ENTER>
|
||||
|
||||
5. 1.3までカーソルを移動させましょう。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.3: テキスト編集 - 削除
|
||||
|
||||
|
||||
** ノーマルモードにてカーソルの下の文字を削除するには x を押します **
|
||||
** ノーマルモードにてカーソルの下の文字を削除するには x を押します。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -87,12 +88,11 @@ NOTE:
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.4: テキスト編集 - 挿入
|
||||
|
||||
|
||||
** ノーマルモードにてテキストを挿入するには i を押します **
|
||||
** ノーマルモードにてテキストを挿入するには i を押します。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
@@ -115,10 +115,10 @@ NOTE:
|
||||
レッスン 1.5: テキスト編集 - 追加
|
||||
|
||||
|
||||
** テキストを追加するには A を押しましょう **
|
||||
** テキストを追加するには A を押しましょう。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
カーソルがその文字上にあってもかまいません。
|
||||
カーソルがその行のどの文字上にあってもかまいません。
|
||||
|
||||
2. 追加が必要な場所で A をタイプしましょう。
|
||||
|
||||
@@ -137,18 +137,17 @@ NOTE:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.6: ファイルの編集
|
||||
|
||||
|
||||
** ファイルを保存して終了するには :wq とタイプします **
|
||||
** ファイルを保存して終了するには :wq とタイプします。 **
|
||||
|
||||
!! NOTE: 以下のステップを実行する前に、まず全体を読んでください!!
|
||||
|
||||
1. レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
|
||||
します。あるいは、別の端末がある場合はそこで以下の内容を行ってもかまい
|
||||
ません。
|
||||
1. 別の端末がある場合はそこで以下の内容を行ってください。そうでなければ、
|
||||
レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
|
||||
します。
|
||||
|
||||
2. シェルプロンプトでこのコマンドをタイプします: vim tutor <ENTER>
|
||||
'vim' が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
|
||||
名前です。変更してもよいファイルを使いましょう。
|
||||
2. シェルプロンプトでこのコマンドをタイプします: vim file.txt <ENTER>
|
||||
'vim' が Vim エディタを起動するコマンド、'file.txt' は編集したいファイル
|
||||
の名前です。変更できるファイルの名前を使いましょう。
|
||||
|
||||
3. 前のレッスンで学んだように、テキストを挿入、削除します。
|
||||
|
||||
@@ -186,9 +185,9 @@ NOTE: <ESC>
|
||||
レッスン 2.1: 削除コマンド
|
||||
|
||||
|
||||
** 単語の末尾までを削除するには dw とタイプしましょう **
|
||||
** 単語の末尾までを削除するには dw とタイプしましょう。 **
|
||||
|
||||
1. ノーマルモードであることを確認するために <ESC> を押しましょう。
|
||||
1. 確実にノーマルモードにするため <ESC> を押しましょう。
|
||||
|
||||
2. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -196,22 +195,22 @@ NOTE: <ESC>
|
||||
|
||||
4. 単語を削除するために dw とタイプしましょう。
|
||||
|
||||
NOTE: タイプすると、dw という文字がスクリーンの最下行に現われます。
|
||||
タイプを間違ってしまった時には <ESC> を押してやり直しましょう。
|
||||
NOTE: d をタイプすると、その文字がスクリーンの最下行に現われます。Vim は
|
||||
あなたが w をタイプするのを待っています。もし d 以外の文字が表示された
|
||||
時は何か間違っています。 <ESC> を押してやり直しましょう。
|
||||
|
||||
---> この 文 紙 には いくつかの たのしい 必要のない 単語 が 含まれて います。
|
||||
|
||||
5. 3 から 4 までを文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.2: その他の削除コマンド
|
||||
|
||||
|
||||
** 行の末尾までを削除するには d$ とタイプしましょう **
|
||||
** 行の末尾までを削除するには d$ とタイプしましょう。 **
|
||||
|
||||
1. ノーマルモードであることを確認するのに <ESC> を押しましょう。
|
||||
1. 確実にノーマルモードにするため <ESC> を押しましょう。
|
||||
|
||||
2. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -232,7 +231,7 @@ NOTE: <ESC>
|
||||
レッスン 2.3: オペレータとモーション
|
||||
|
||||
|
||||
多くのコマンドはオペレータとモーションからテキストに変更を加えます。
|
||||
テキストに変更を加える多くのコマンドはオペレータとモーションからなります。
|
||||
削除コマンド d のオペレータは次の様になっています:
|
||||
|
||||
d モーション
|
||||
@@ -248,7 +247,7 @@ NOTE: <ESC>
|
||||
|
||||
つまり de とタイプすると、カーソル位置から単語の終わりまでを削除します。
|
||||
|
||||
NOTE: 冒険したい人は、ノーマルモードにてコマンドなしにモーションを押して
|
||||
NOTE: 冒険したい人は、ノーマルモードにてオペレータなしにモーションを押して
|
||||
みましょう。カーソルが目的語一覧で示される位置に移動するはずです。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -259,7 +258,7 @@ NOTE:
|
||||
|
||||
1. 以下の ---> と示された行の先頭にカーソルを移動します。
|
||||
|
||||
2. 2w をタイプして単語2つ分前に移動します。
|
||||
2. 2w をタイプして単語2つ分先に移動します。
|
||||
|
||||
3. 3e をタイプして3つ目の単語の終端に移動します。
|
||||
|
||||
@@ -284,24 +283,24 @@ NOTE:
|
||||
より多くの削除が行えます:
|
||||
d 数値 モーション
|
||||
|
||||
1. ---> と示された行の行頭部分にカーソルを移動しましょう。
|
||||
1. ---> と示された行の最初の大文字の単語にカーソルを移動しましょう。
|
||||
|
||||
2. UPPER CASE の単語2つを d2w とタイプして削除します。
|
||||
2. 大文字の単語2つを d2w とタイプして削除します。
|
||||
|
||||
3. UPPER CASE という連続した単語を、1つのコマンドと異なるカウントを指定し、
|
||||
3. 連続した大文字の単語を、異なるカウントを指定した1つのコマンドで削除し、
|
||||
ステップ 1 と 2 を繰り返します。
|
||||
|
||||
---> このABC DE行のFGHI JK LMN OP単語はQ RS TUV綺麗になった。
|
||||
|
||||
NOTE: オペレータ d とモーションの間にカウントを使った場合、オペレータのない
|
||||
場合のモーションのように動作します。
|
||||
例: 3dw と d3w は同等で、3w を削除します。
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.6: 行の操作
|
||||
|
||||
|
||||
** 行全体を削除するには dd とタイプします **
|
||||
** 行全体を削除するには dd とタイプします。 **
|
||||
|
||||
行全体を削除する頻度が多いので、Viのデザイナーは行の削除を d の2回タイプと
|
||||
いう簡単なものに決めました。
|
||||
@@ -319,24 +318,25 @@ NOTE:
|
||||
---> 6) 砂糖は甘い
|
||||
---> 7) オマエモナー
|
||||
|
||||
2回タイプで1行に対して作用させる方法は以下で述べるオペレータでも動作します。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.7: やり直しコマンド
|
||||
|
||||
|
||||
** 最後のコマンドを取り消すには u を押します。U は行全体の取消です。 **
|
||||
** 最後のコマンドを取り消すには u を押します。U は行全体の取り消しです。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動し、最初の間違いにカーソル
|
||||
を移動しましょう。
|
||||
2. x をタイプしていらない先頭の文字を削除しましょう。
|
||||
2. x をタイプして最初のいらない文字を削除しましょう。
|
||||
3. さぁ、u をタイプして最後に実行したコマンドを取り消しましょう。
|
||||
4. 今度は、x を使用して誤りを全て修正しましょう。
|
||||
4. 今度は、x を使用して行内の誤りを全て修正しましょう。
|
||||
5. 大文字の U をタイプして、行を元の状態に戻しましょう。
|
||||
6. u をタイプして直前の U コマンドを取消しましょう。
|
||||
6. u をタイプして直前の U コマンドを取り消しましょう。
|
||||
7. ではコマンドを再実行するのに CTRL-R (CTRL を押したまま R を打つ)を数回
|
||||
タイプしてみましょう(取消の取消)。
|
||||
タイプしてみましょう(取り消しの取り消し)。
|
||||
|
||||
---> このの行のの間違いを修正々し、後でそれらの修正をを取消しまますす。
|
||||
---> このの行のの間違いを修正々し、後でそれらの修正をを取り消しまますす。
|
||||
|
||||
8. これはとても便利なコマンドです。さぁレッスン 2 要約へ進みましょう。
|
||||
|
||||
@@ -347,45 +347,47 @@ NOTE:
|
||||
レッスン 2 要約
|
||||
|
||||
|
||||
1. カーソル位置から単語の末尾までを削除するには dw とタイプします。
|
||||
2. カーソル位置から行の末尾までを削除するには d$ とタイプします。
|
||||
3. 行全体を削除するには dd とタイプします。
|
||||
1. カーソル位置から次の単語までを削除するには dw とタイプします。
|
||||
2. カーソル位置から単語の末尾までを削除するには de とタイプします。
|
||||
3. カーソル位置から行の末尾までを削除するには d$ とタイプします。
|
||||
4. 行全体を削除するには dd とタイプします。
|
||||
|
||||
4. モーションを繰り返すには数値を付与します: 2w
|
||||
5. 変更に用いるコマンドの形式は
|
||||
5. モーションを繰り返すには数値を付与します: 2w
|
||||
6. 変更に用いるコマンドの形式は
|
||||
オペレータ [数値] モーション
|
||||
|
||||
それぞれ:
|
||||
オペレータ - 削除 d の類で何をするか。
|
||||
数値 - そのコマンドを何回繰り返すか。
|
||||
モーション - w (単語)や $ (行末)などの類で、テキストの何に対して働きか
|
||||
けるか。
|
||||
[数値] - そのコマンドを何回繰り返すか。
|
||||
モーション - w (単語)や e (単語末尾)、$ (行末)などの類で、テキストの
|
||||
何に対して働きかけるか。
|
||||
|
||||
6. 行の先頭に移動するにはゼロを使用します: 0
|
||||
7. 行の先頭に移動するにはゼロを使用します: 0
|
||||
|
||||
8. 前回の動作を取り消す: u (小文字 u)
|
||||
行全体の変更を取り消す: U (大文字 U)
|
||||
取り消しの取り消し: CTRL-R
|
||||
|
||||
7. 前回の動作を取消す: u (小文字 u)
|
||||
行全体の変更を取消す: U (大文字 U)
|
||||
取消しの取消し: CTRL-R
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 3.1: 貼り付けコマンド
|
||||
|
||||
|
||||
** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします **
|
||||
** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします。 **
|
||||
|
||||
1. 以下の段落の最初の行にカーソルを移動しましょう。
|
||||
1. ---> と示された以下の最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. dd とタイプして行を削除し、Vim のバッファに格納しましょう。
|
||||
2. dd とタイプして行を削除し、Vim のレジスタに格納しましょう。
|
||||
|
||||
3. 削除した行が本来あるべき位置の上の行まで、カーソルを移動させましょう。
|
||||
3. 削除した行が本来あるべき位置の上の行である c) 行まで、カーソルを移動させ
|
||||
ましょう。
|
||||
|
||||
4. ノーマルモードで p をタイプして格納した行を画面に戻します。
|
||||
4. ノーマルモードで p をタイプして格納した行をカーソルの下に戻します。
|
||||
|
||||
5. 順番が正しくなる様にステップ 2 から 4 を繰り返しましょう。
|
||||
|
||||
d) 貴方も学ぶことができる?
|
||||
b) スミレは青い、
|
||||
c) 知恵とは学ぶもの、
|
||||
a) バラは赤い、
|
||||
---> d) 貴方も学ぶことができる?
|
||||
---> b) スミレは青い、
|
||||
---> c) 知恵とは学ぶもの、
|
||||
---> a) バラは赤い、
|
||||
|
||||
|
||||
|
||||
@@ -393,7 +395,7 @@ NOTE:
|
||||
レッスン 3.2: 置き換えコマンド
|
||||
|
||||
|
||||
** カーソルの下の文字を置き換えるには r をタイプします **
|
||||
** カーソルの下の文字を x に置き換えるには rx をタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
@@ -416,38 +418,38 @@ NOTE:
|
||||
レッスン 3.3: 変更コマンド
|
||||
|
||||
|
||||
** 単語の一部、もしくは全体を変更するには cw とタイプします **
|
||||
** 単語の末尾までを変更するには ce とタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. lubw の u の位置にカーソルを移動しましょう。
|
||||
|
||||
3. cw とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。
|
||||
3. ce とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。
|
||||
|
||||
4. 次の間違い(変更すべき文字の先頭)に移動するために <ESC> をタイプします。
|
||||
4. <ESC> をタイプしてから次の間違い(変更すべき文字の先頭)に移動します。
|
||||
|
||||
5. 最初の行が次の行の様になるまでステップ 3 と 4 を繰り返します。
|
||||
|
||||
---> This lubw has a few wptfd that mrrf changing usf the change operator.
|
||||
---> This line has a few words that need changing using the change operator.
|
||||
|
||||
cw は単語を変更するだけでなく、挿入も行えることに注意しましょう。
|
||||
|
||||
ce は単語を削除した後、挿入モードに入ることに注意しましょう。
|
||||
cc は同じことを行全体に対して行います。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 3.4: c を使用したその他の変更
|
||||
|
||||
|
||||
** 変更コマンドは、削除コマンドと同じ様にオブジェクトを使用します **
|
||||
** 変更オペレータは、削除と同じ様にモーションを使用します。 **
|
||||
|
||||
1. 変更コマンドは、削除コマンドと同じような動作をします。その形式は
|
||||
1. 変更オペレータは、削除と同じような動作をします。その形式は
|
||||
|
||||
c [数値] モーション
|
||||
|
||||
2. オブジェクトも同じで、w は単語、 $ は行末などといったものです。
|
||||
2. モーションも同じで、w は単語、 $ は行末などといったものです。
|
||||
|
||||
3. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
3. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
4. 最初の間違いへカーソルを移動しましょう。
|
||||
|
||||
@@ -470,7 +472,7 @@ NOTE:
|
||||
文字をタイプします。
|
||||
|
||||
3. 変更コマンドではカーソル位置から特定のモーションで指定される終端までを変
|
||||
更することが可能です。例えば cw ならばカーソル位置から単語の終わりまで、
|
||||
更することが可能です。例えば ce ならばカーソル位置から単語の終わりまで、
|
||||
c$ ならば行の終わりまでを変更します。
|
||||
|
||||
4. 変更コマンドの形式は
|
||||
@@ -485,7 +487,7 @@ NOTE:
|
||||
レッスン 4.1: 位置とファイルの情報
|
||||
|
||||
** ファイル内での位置とファイルの状態を表示するには CTRL-G をタイプします。
|
||||
ファイル内のある行に移動するには G をタイプします **
|
||||
ファイル内のある行に移動するには G をタイプします。 **
|
||||
|
||||
NOTE: ステップを実行する前に、このレッスン全てに目を通しましょう!!
|
||||
|
||||
@@ -496,7 +498,7 @@ NOTE:
|
||||
NOTE: 画面の右下隅にカーソルの位置が表示されているかもしれません。これは
|
||||
'ruler' オプション(:help 'ruler' を参照)を設定することで表示されます。
|
||||
|
||||
2. 最下行に移動するために G をタイプしましょう。
|
||||
2. ファイルの最下行に移動するために G をタイプしましょう。
|
||||
ファイルの先頭に移動するには gg とタイプしましょう。
|
||||
|
||||
3. 先ほどの行の番号をタイプし G をタイプしましょう。最初に CTRL-G を押した行
|
||||
@@ -508,19 +510,19 @@ NOTE:
|
||||
レッスン 4.2: 検索コマンド
|
||||
|
||||
|
||||
** 語句を検索するには / と、前方検索する語句をタイプします。**
|
||||
** 語句を検索するには / と、前方検索する語句をタイプします。 **
|
||||
|
||||
1. ノーマルモードで / という文字をタイプします。画面一番下に : コマンドと
|
||||
同じ様に / が現れることに気づくでしょう。
|
||||
|
||||
2. では、'errroor' <ENTER> とタイプしましょう。これが検索したい単語です。
|
||||
|
||||
3. 同じ語をもう一度検索するときは 単に n をタイプします。
|
||||
3. 同じ語句をもう一度検索するときは 単に n をタイプします。
|
||||
逆方向に語句を検索するときは N をタイプします。
|
||||
|
||||
4. 逆方向に語句を検索する場合は、/ の代わりに ? コマンドを使用します。
|
||||
|
||||
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプし
|
||||
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら文字 o をタイプ)をタイプし
|
||||
ます。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。
|
||||
|
||||
---> "errroor" は error とスペルが違います; errroor はいわゆる error です。
|
||||
@@ -531,7 +533,7 @@ NOTE:
|
||||
レッスン 4.3: 対応する括弧を検索
|
||||
|
||||
|
||||
** 対応する ),] や } を検索するには % をタイプします **
|
||||
** 対応する ),] や } を検索するには % をタイプします。 **
|
||||
|
||||
1. 下の ---> で示された行で (,[ か { のどれかにカーソルを移動しましょう。
|
||||
|
||||
@@ -554,7 +556,7 @@ NOTE:
|
||||
レッスン 4.4: 間違いを変更する方法
|
||||
|
||||
|
||||
** 'old' を 'new' に置換するには :s/old/new/g とタイプします **
|
||||
** 'old' を 'new' に置換するには :s/old/new/g とタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -567,9 +569,8 @@ NOTE:
|
||||
|
||||
---> thee best time to see thee flowers is in thee spring.
|
||||
|
||||
4. 複数行から見つかる文字を変更するには
|
||||
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定しま
|
||||
す。
|
||||
4. 複数行から見つかる文字の全ての箇所を変更するには
|
||||
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定する。
|
||||
:%s/old/new/g ファイル全体で見つかるものに対して変更する。
|
||||
:%s/old/new/gc ファイル全体で見つかるものに対して、1つ1つ確認をとりな
|
||||
がら変更する。
|
||||
@@ -593,7 +594,7 @@ NOTE:
|
||||
|
||||
4. 現在行の最初の old を new に置換する。 :s/old/new
|
||||
現在行の全ての old を new に置換する。 :s/old/new/g
|
||||
2つの # 間で語句を置換する。 :#,#s/old/new/g
|
||||
2つの # 行の間で語句を置換する。 :#,#s/old/new/g
|
||||
ファイルの中の全ての検索語句を置換する。 :%s/old/new/g
|
||||
'c' を加えると置換の度に確認を求める。 :%s/old/new/gc
|
||||
|
||||
@@ -601,10 +602,10 @@ NOTE:
|
||||
レッスン 5.1: 外部コマンドを実行する方法
|
||||
|
||||
|
||||
** :! の後に実行する外部コマンドをタイプします **
|
||||
** :! の後に実行する外部コマンドをタイプします。 **
|
||||
|
||||
1. 画面の最下部にカーソルが移動するよう、慣れ親しんだ : をタイプしましょう。
|
||||
これでコマンドがタイプできる様になります。
|
||||
これでコマンドライン命令がタイプできる様になります。
|
||||
|
||||
2. ここで ! という文字(感嘆符)をタイプしましょう。
|
||||
これで外部シェルコマンドが実行できる様になります。
|
||||
@@ -624,7 +625,7 @@ NOTE:
|
||||
レッスン 5.2: その他のファイルへ書き込み
|
||||
|
||||
|
||||
** ファイルへ変更を保存するには :w ファイル名 とタイプします **
|
||||
** ファイルへ変更を保存するには :w ファイル名 とタイプします。 **
|
||||
|
||||
1. ディレクトリの一覧を得るために :!dir もしくは :!ls とタイプしましょう。
|
||||
このあと <ENTER> を押すのは既にご存知ですね。
|
||||
@@ -634,7 +635,7 @@ NOTE:
|
||||
3. では :w TEST とタイプしましょう (TEST は、選んだファイル名です)。
|
||||
|
||||
4. これによりファイル全体が TEST という名前で保存されます。
|
||||
もう一度 :!dir もしくは :!ls とタイプして確認してみましょう。
|
||||
もう一度 :!dir もしくは :!ls とタイプしてディレクトリを確認してみましょう。
|
||||
|
||||
NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
|
||||
チュートリアルの複製ができ上がるはずです。
|
||||
@@ -647,7 +648,7 @@ NOTE:
|
||||
レッスン 5.3: 選択した書き込み
|
||||
|
||||
|
||||
** ファイルの位置を保存するには、v モーションと :w FILENAME をタイプします。 **
|
||||
** ファイルの一部を保存するには、v モーションと :w FILENAME をタイプします。 **
|
||||
|
||||
1. この行にカーソルを移動します。
|
||||
|
||||
@@ -660,20 +661,20 @@ NOTE:
|
||||
<ENTER> を押す前に :'<,'>w TEST となっていることを確認して下さい。
|
||||
|
||||
5. Vim は TEST というファイルに選択された行を書き込むでしょう。
|
||||
!dir もしくは !ls でそれを確認します。
|
||||
:!dir もしくは :!ls でそれを確認します。
|
||||
それは削除しないでおいて下さい。次のレッスンで使用します。
|
||||
|
||||
NOTE: v を押すと、Visual 選択が始まります。カーソルを動かすことで、選択範囲を
|
||||
大きくも小さくもできます。さらに、その選択範囲に対してオペレータを適用
|
||||
きます。例えば d はテキストを削除します。
|
||||
できます。例えば d はテキストを削除します。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 5.4: ファイルの取込と合併
|
||||
|
||||
|
||||
** ファイルの中身を挿入するには :r ファイル名 とタイプします **
|
||||
** ファイルの中身を挿入するには :r ファイル名 とタイプします。 **
|
||||
|
||||
1. カーソルを以下の行に合わせます。
|
||||
1. カーソルをこの行のすぐ上に合わせます。
|
||||
|
||||
NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れます。下に下がってこ
|
||||
のレッスンに移動しましょう。
|
||||
@@ -682,19 +683,18 @@ NOTE:
|
||||
ここでいう TEST は使うファイルの名前のことです。
|
||||
読み込まれたファイルは、カーソル行の下にあります。
|
||||
|
||||
3. 取込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
|
||||
3. 取り込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
|
||||
オリジナルとファイルによるものの2つがあることがわかります。
|
||||
|
||||
NOTE: 外部コマンドの出力を読み込むことも出来ます。例えば、
|
||||
NOTE: 外部コマンドの出力を読み込むこともできます。例えば、
|
||||
:r !ls は ls コマンドの出力をカーソル以下に読み込みます。
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 5 要約
|
||||
|
||||
|
||||
1. :!command によって 外部コマンドを実行します。
|
||||
1. :!command によって 外部コマンドを実行する。
|
||||
|
||||
よく使う例:
|
||||
(Windows) (Unix)
|
||||
@@ -717,13 +717,14 @@ NOTE:
|
||||
レッスン 6.1: オープンコマンド
|
||||
|
||||
|
||||
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります **
|
||||
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。
|
||||
|
||||
3. さらに挿入モードを終了する為に <ESC> をタイプします。
|
||||
3. いくつか文字をタイプしてから、挿入モードを終了する為に <ESC> を
|
||||
タイプします。
|
||||
|
||||
---> o をタイプするとカーソルは開いた行へ移動し挿入モードに入ります。
|
||||
|
||||
@@ -735,12 +736,11 @@ NOTE:
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.2: 追加コマンド
|
||||
|
||||
|
||||
** カーソルの次の位置からテキストを追加するには a とタイプします **
|
||||
** カーソルの次の位置からテキストを追加するには a とタイプします。 **
|
||||
|
||||
1. カーソルを ---> で示された最初の行へ移動しましょう。
|
||||
|
||||
@@ -763,7 +763,7 @@ NOTE: a, i
|
||||
レッスン 6.3: その他の置換方法
|
||||
|
||||
|
||||
** 1文字以上を置き換えるには大文字の R とタイプしましょう **
|
||||
** 1文字以上を置き換えるには大文字の R とタイプしましょう。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動します。最初の xxx の先頭に移動し
|
||||
ます。
|
||||
@@ -781,12 +781,11 @@ NOTE: a, i
|
||||
NOTE: 置換モードは挿入モードに似ていますが、全てのタイプされた文字は既存の文字
|
||||
を削除します。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.4: テキストのコピーとペースト
|
||||
|
||||
|
||||
** テキストのコピーにはオペレータ y を、ペーストには p を使います **
|
||||
** テキストのコピーにはオペレータ y を、ペーストには p を使います。 **
|
||||
|
||||
1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。
|
||||
|
||||
@@ -804,12 +803,13 @@ NOTE:
|
||||
---> a) this is the first item.
|
||||
b)
|
||||
|
||||
NOTE: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。
|
||||
NOTE: y をオペレータとして使うこともできます。yw は単語を1つ yank します。
|
||||
yy は行を1つ yank し、p でその行を put します。
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.5: オプションの設定
|
||||
|
||||
|
||||
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します **
|
||||
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します。 **
|
||||
|
||||
1. 次の様に入力して 'ignore' を検索しましょう: /ignore <ENTER>
|
||||
n を押して何度か検索を繰り返します。
|
||||
@@ -826,7 +826,7 @@ NOTE:
|
||||
6. 大文字小文字の区別を無効にするには次の様に入力します: :set noic
|
||||
|
||||
NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
|
||||
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
|
||||
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、語句内で \c
|
||||
を使用します: /ignore\c <ENTER>
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6 要約
|
||||
@@ -835,13 +835,13 @@ NOTE: 1
|
||||
O (大文字) をタイプするとカーソルの上の行で挿入モードになる。
|
||||
|
||||
2. カーソル上の文字の次からテキストを追加するには a とタイプする。
|
||||
行末に自動でテキストを挿入するには大文字 A をタイプする。
|
||||
行末にテキストを挿入するには大文字 A をタイプする。
|
||||
|
||||
3. e コマンドは単語の終端部カーソルを移動する。
|
||||
3. e コマンドは単語の終端にカーソルを移動する。
|
||||
|
||||
4. y オペレータはテキストを yank (コピー)し、p はそれを put (ペースト)する。
|
||||
|
||||
5. 大文字の R をタイプすると置換モードに入り、<ESC>を押すと抜ける。
|
||||
5. 大文字の R をタイプすると置換モードに入り、<ESC> を押すと抜ける。
|
||||
|
||||
6. ":set xxx" とタイプするとオプション "xxx" が設定される。
|
||||
'ic' 'ignorecase' 検索時に大文字小文字の区別しない
|
||||
@@ -849,7 +849,7 @@ NOTE: 1
|
||||
'hls' 'hlsearch' マッチするすべてを強調表示する
|
||||
長い方、短い方、どちらのオプション名でも使用できます。
|
||||
|
||||
7. オプションを無効にするには "no" を付与します: :set noic
|
||||
7. オプションを無効にするには "no" を付与する: :set noic
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 7.1: オンラインヘルプコマンド
|
||||
@@ -883,15 +883,15 @@ NOTE: 1
|
||||
使用不可となっています。より多くの特徴を使いはじめるには "vimrc" ファイル
|
||||
を作成します。
|
||||
|
||||
1. "vimrc" ファイルの編集を開始する。これはシステムに依存します。
|
||||
:edit ~/.vimrc UNIX 向け
|
||||
:edit ~/_vimrc Windows 向け
|
||||
1. "vimrc" ファイルの編集を開始します。これはシステムに依存します。
|
||||
:e ~/.vimrc UNIX 向け
|
||||
:e ~/_vimrc Windows 向け
|
||||
|
||||
2. ここでサンプルの "vimrc" を読み込みます。
|
||||
:read $VIMRUNTIME/vimrc_example.vim
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. 以下のようにファイルへ書き込みます。
|
||||
:write
|
||||
:w
|
||||
|
||||
次回 Vim を起動すると、色づけ構文が使えるようになるでしょう。
|
||||
この "vimrc" ファイルへ、お好みの設定を追加することができます。
|
||||
@@ -907,7 +907,7 @@ NOTE: 1
|
||||
|
||||
2. 現在のディレクトリに在るファイルを :!ls か :!dir で確認します。
|
||||
|
||||
3. コマンドの開始をタイプします: :e
|
||||
3. コマンドの先頭をタイプします: :e
|
||||
|
||||
4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
になっています。
|
||||
|
||||
チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
|
||||
け時間を使うのかにもよりますが、およそ25から30分です。
|
||||
け時間を使うのかにもよりますが、およそ30分です。
|
||||
|
||||
ATTENTION:
|
||||
以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前
|
||||
@@ -24,7 +24,7 @@
|
||||
レッスン 1.1: カーソルの移動
|
||||
|
||||
|
||||
** カーソルを移動するには、示される様に h,j,k,l を押します **
|
||||
** カーソルを移動するには、示される様に h,j,k,l を押します。 **
|
||||
^
|
||||
k ヒント: h キーは左方向に移動します。
|
||||
< h l > l キーは右方向に移動します。
|
||||
@@ -65,11 +65,12 @@ NOTE: :q! <ENTER> は全ての変更を破棄します。レッスンにて変
|
||||
|
||||
5. 1.3までカーソルを移動させましょう。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.3: テキスト編集 - 削除
|
||||
|
||||
|
||||
** ノーマルモードにてカーソルの下の文字を削除するには x を押します **
|
||||
** ノーマルモードにてカーソルの下の文字を削除するには x を押します。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -87,12 +88,11 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.4: テキスト編集 - 挿入
|
||||
|
||||
|
||||
** ノーマルモードにてテキストを挿入するには i を押します **
|
||||
** ノーマルモードにてテキストを挿入するには i を押します。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
@@ -115,10 +115,10 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
|
||||
レッスン 1.5: テキスト編集 - 追加
|
||||
|
||||
|
||||
** テキストを追加するには A を押しましょう **
|
||||
** テキストを追加するには A を押しましょう。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
カーソルがその文字上にあってもかまいません。
|
||||
カーソルがその行のどの文字上にあってもかまいません。
|
||||
|
||||
2. 追加が必要な場所で A をタイプしましょう。
|
||||
|
||||
@@ -137,18 +137,17 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 1.6: ファイルの編集
|
||||
|
||||
|
||||
** ファイルを保存して終了するには :wq とタイプします **
|
||||
** ファイルを保存して終了するには :wq とタイプします。 **
|
||||
|
||||
!! NOTE: 以下のステップを実行する前に、まず全体を読んでください!!
|
||||
|
||||
1. レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
|
||||
します。あるいは、別の端末がある場合はそこで以下の内容を行ってもかまい
|
||||
ません。
|
||||
1. 別の端末がある場合はそこで以下の内容を行ってください。そうでなければ、
|
||||
レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
|
||||
します。
|
||||
|
||||
2. シェルプロンプトでこのコマンドをタイプします: vim tutor <ENTER>
|
||||
'vim' が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
|
||||
名前です。変更してもよいファイルを使いましょう。
|
||||
2. シェルプロンプトでこのコマンドをタイプします: vim file.txt <ENTER>
|
||||
'vim' が Vim エディタを起動するコマンド、'file.txt' は編集したいファイル
|
||||
の名前です。変更できるファイルの名前を使いましょう。
|
||||
|
||||
3. 前のレッスンで学んだように、テキストを挿入、削除します。
|
||||
|
||||
@@ -186,9 +185,9 @@ NOTE: <ESC> キーを押すとノーマルモードに移行します。その
|
||||
レッスン 2.1: 削除コマンド
|
||||
|
||||
|
||||
** 単語の末尾までを削除するには dw とタイプしましょう **
|
||||
** 単語の末尾までを削除するには dw とタイプしましょう。 **
|
||||
|
||||
1. ノーマルモードであることを確認するために <ESC> を押しましょう。
|
||||
1. 確実にノーマルモードにするため <ESC> を押しましょう。
|
||||
|
||||
2. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -196,22 +195,22 @@ NOTE: <ESC> キーを押すとノーマルモードに移行します。その
|
||||
|
||||
4. 単語を削除するために dw とタイプしましょう。
|
||||
|
||||
NOTE: タイプすると、dw という文字がスクリーンの最下行に現われます。
|
||||
タイプを間違ってしまった時には <ESC> を押してやり直しましょう。
|
||||
NOTE: d をタイプすると、その文字がスクリーンの最下行に現われます。Vim は
|
||||
あなたが w をタイプするのを待っています。もし d 以外の文字が表示された
|
||||
時は何か間違っています。 <ESC> を押してやり直しましょう。
|
||||
|
||||
---> この 文 紙 には いくつかの たのしい 必要のない 単語 が 含まれて います。
|
||||
|
||||
5. 3 から 4 までを文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.2: その他の削除コマンド
|
||||
|
||||
|
||||
** 行の末尾までを削除するには d$ とタイプしましょう **
|
||||
** 行の末尾までを削除するには d$ とタイプしましょう。 **
|
||||
|
||||
1. ノーマルモードであることを確認するのに <ESC> を押しましょう。
|
||||
1. 確実にノーマルモードにするため <ESC> を押しましょう。
|
||||
|
||||
2. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -232,7 +231,7 @@ NOTE: <ESC> キーを押すとノーマルモードに移行します。その
|
||||
レッスン 2.3: オペレータとモーション
|
||||
|
||||
|
||||
多くのコマンドはオペレータとモーションからテキストに変更を加えます。
|
||||
テキストに変更を加える多くのコマンドはオペレータとモーションからなります。
|
||||
削除コマンド d のオペレータは次の様になっています:
|
||||
|
||||
d モーション
|
||||
@@ -248,7 +247,7 @@ NOTE: <ESC> キーを押すとノーマルモードに移行します。その
|
||||
|
||||
つまり de とタイプすると、カーソル位置から単語の終わりまでを削除します。
|
||||
|
||||
NOTE: 冒険したい人は、ノーマルモードにてコマンドなしにモーションを押して
|
||||
NOTE: 冒険したい人は、ノーマルモードにてオペレータなしにモーションを押して
|
||||
みましょう。カーソルが目的語一覧で示される位置に移動するはずです。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -259,7 +258,7 @@ NOTE: 冒険したい人は、ノーマルモードにてコマンドなしに
|
||||
|
||||
1. 以下の ---> と示された行の先頭にカーソルを移動します。
|
||||
|
||||
2. 2w をタイプして単語2つ分前に移動します。
|
||||
2. 2w をタイプして単語2つ分先に移動します。
|
||||
|
||||
3. 3e をタイプして3つ目の単語の終端に移動します。
|
||||
|
||||
@@ -284,24 +283,24 @@ NOTE: 冒険したい人は、ノーマルモードにてコマンドなしに
|
||||
より多くの削除が行えます:
|
||||
d 数値 モーション
|
||||
|
||||
1. ---> と示された行の行頭部分にカーソルを移動しましょう。
|
||||
1. ---> と示された行の最初の大文字の単語にカーソルを移動しましょう。
|
||||
|
||||
2. UPPER CASE の単語2つを d2w とタイプして削除します。
|
||||
2. 大文字の単語2つを d2w とタイプして削除します。
|
||||
|
||||
3. UPPER CASE という連続した単語を、1つのコマンドと異なるカウントを指定し、
|
||||
3. 連続した大文字の単語を、異なるカウントを指定した1つのコマンドで削除し、
|
||||
ステップ 1 と 2 を繰り返します。
|
||||
|
||||
---> このABC DE行のFGHI JK LMN OP単語はQ RS TUV綺麗になった。
|
||||
|
||||
NOTE: オペレータ d とモーションの間にカウントを使った場合、オペレータのない
|
||||
場合のモーションのように動作します。
|
||||
例: 3dw と d3w は同等で、3w を削除します。
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.6: 行の操作
|
||||
|
||||
|
||||
** 行全体を削除するには dd とタイプします **
|
||||
** 行全体を削除するには dd とタイプします。 **
|
||||
|
||||
行全体を削除する頻度が多いので、Viのデザイナーは行の削除を d の2回タイプと
|
||||
いう簡単なものに決めました。
|
||||
@@ -319,24 +318,25 @@ NOTE: オペレータ d とモーションの間にカウントを使った場
|
||||
---> 6) 砂糖は甘い
|
||||
---> 7) オマエモナー
|
||||
|
||||
2回タイプで1行に対して作用させる方法は以下で述べるオペレータでも動作します。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 2.7: やり直しコマンド
|
||||
|
||||
|
||||
** 最後のコマンドを取り消すには u を押します。U は行全体の取消です。 **
|
||||
** 最後のコマンドを取り消すには u を押します。U は行全体の取り消しです。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動し、最初の間違いにカーソル
|
||||
を移動しましょう。
|
||||
2. x をタイプしていらない先頭の文字を削除しましょう。
|
||||
2. x をタイプして最初のいらない文字を削除しましょう。
|
||||
3. さぁ、u をタイプして最後に実行したコマンドを取り消しましょう。
|
||||
4. 今度は、x を使用して誤りを全て修正しましょう。
|
||||
4. 今度は、x を使用して行内の誤りを全て修正しましょう。
|
||||
5. 大文字の U をタイプして、行を元の状態に戻しましょう。
|
||||
6. u をタイプして直前の U コマンドを取消しましょう。
|
||||
6. u をタイプして直前の U コマンドを取り消しましょう。
|
||||
7. ではコマンドを再実行するのに CTRL-R (CTRL を押したまま R を打つ)を数回
|
||||
タイプしてみましょう(取消の取消)。
|
||||
タイプしてみましょう(取り消しの取り消し)。
|
||||
|
||||
---> このの行のの間違いを修正々し、後でそれらの修正をを取消しまますす。
|
||||
---> このの行のの間違いを修正々し、後でそれらの修正をを取り消しまますす。
|
||||
|
||||
8. これはとても便利なコマンドです。さぁレッスン 2 要約へ進みましょう。
|
||||
|
||||
@@ -347,45 +347,47 @@ NOTE: オペレータ d とモーションの間にカウントを使った場
|
||||
レッスン 2 要約
|
||||
|
||||
|
||||
1. カーソル位置から単語の末尾までを削除するには dw とタイプします。
|
||||
2. カーソル位置から行の末尾までを削除するには d$ とタイプします。
|
||||
3. 行全体を削除するには dd とタイプします。
|
||||
1. カーソル位置から次の単語までを削除するには dw とタイプします。
|
||||
2. カーソル位置から単語の末尾までを削除するには de とタイプします。
|
||||
3. カーソル位置から行の末尾までを削除するには d$ とタイプします。
|
||||
4. 行全体を削除するには dd とタイプします。
|
||||
|
||||
4. モーションを繰り返すには数値を付与します: 2w
|
||||
5. 変更に用いるコマンドの形式は
|
||||
5. モーションを繰り返すには数値を付与します: 2w
|
||||
6. 変更に用いるコマンドの形式は
|
||||
オペレータ [数値] モーション
|
||||
|
||||
それぞれ:
|
||||
オペレータ - 削除 d の類で何をするか。
|
||||
数値 - そのコマンドを何回繰り返すか。
|
||||
モーション - w (単語)や $ (行末)などの類で、テキストの何に対して働きか
|
||||
けるか。
|
||||
[数値] - そのコマンドを何回繰り返すか。
|
||||
モーション - w (単語)や e (単語末尾)、$ (行末)などの類で、テキストの
|
||||
何に対して働きかけるか。
|
||||
|
||||
6. 行の先頭に移動するにはゼロを使用します: 0
|
||||
7. 行の先頭に移動するにはゼロを使用します: 0
|
||||
|
||||
8. 前回の動作を取り消す: u (小文字 u)
|
||||
行全体の変更を取り消す: U (大文字 U)
|
||||
取り消しの取り消し: CTRL-R
|
||||
|
||||
7. 前回の動作を取消す: u (小文字 u)
|
||||
行全体の変更を取消す: U (大文字 U)
|
||||
取消しの取消し: CTRL-R
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 3.1: 貼り付けコマンド
|
||||
|
||||
|
||||
** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします **
|
||||
** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします。 **
|
||||
|
||||
1. 以下の段落の最初の行にカーソルを移動しましょう。
|
||||
1. ---> と示された以下の最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. dd とタイプして行を削除し、Vim のバッファに格納しましょう。
|
||||
2. dd とタイプして行を削除し、Vim のレジスタに格納しましょう。
|
||||
|
||||
3. 削除した行が本来あるべき位置の上の行まで、カーソルを移動させましょう。
|
||||
3. 削除した行が本来あるべき位置の上の行である c) 行まで、カーソルを移動させ
|
||||
ましょう。
|
||||
|
||||
4. ノーマルモードで p をタイプして格納した行を画面に戻します。
|
||||
4. ノーマルモードで p をタイプして格納した行をカーソルの下に戻します。
|
||||
|
||||
5. 順番が正しくなる様にステップ 2 から 4 を繰り返しましょう。
|
||||
|
||||
d) 貴方も学ぶことができる?
|
||||
b) スミレは青い、
|
||||
c) 知恵とは学ぶもの、
|
||||
a) バラは赤い、
|
||||
---> d) 貴方も学ぶことができる?
|
||||
---> b) スミレは青い、
|
||||
---> c) 知恵とは学ぶもの、
|
||||
---> a) バラは赤い、
|
||||
|
||||
|
||||
|
||||
@@ -393,7 +395,7 @@ NOTE: オペレータ d とモーションの間にカウントを使った場
|
||||
レッスン 3.2: 置き換えコマンド
|
||||
|
||||
|
||||
** カーソルの下の文字を置き換えるには r をタイプします **
|
||||
** カーソルの下の文字を x に置き換えるには rx をタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
@@ -416,38 +418,38 @@ NOTE: 実際に試しましょう。決して覚えるだけにはしないこ
|
||||
レッスン 3.3: 変更コマンド
|
||||
|
||||
|
||||
** 単語の一部、もしくは全体を変更するには cw とタイプします **
|
||||
** 単語の末尾までを変更するには ce とタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. lubw の u の位置にカーソルを移動しましょう。
|
||||
|
||||
3. cw とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。
|
||||
3. ce とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。
|
||||
|
||||
4. 次の間違い(変更すべき文字の先頭)に移動するために <ESC> をタイプします。
|
||||
4. <ESC> をタイプしてから次の間違い(変更すべき文字の先頭)に移動します。
|
||||
|
||||
5. 最初の行が次の行の様になるまでステップ 3 と 4 を繰り返します。
|
||||
|
||||
---> This lubw has a few wptfd that mrrf changing usf the change operator.
|
||||
---> This line has a few words that need changing using the change operator.
|
||||
|
||||
cw は単語を変更するだけでなく、挿入も行えることに注意しましょう。
|
||||
|
||||
ce は単語を削除した後、挿入モードに入ることに注意しましょう。
|
||||
cc は同じことを行全体に対して行います。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 3.4: c を使用したその他の変更
|
||||
|
||||
|
||||
** 変更コマンドは、削除コマンドと同じ様にオブジェクトを使用します **
|
||||
** 変更オペレータは、削除と同じ様にモーションを使用します。 **
|
||||
|
||||
1. 変更コマンドは、削除コマンドと同じような動作をします。その形式は
|
||||
1. 変更オペレータは、削除と同じような動作をします。その形式は
|
||||
|
||||
c [数値] モーション
|
||||
|
||||
2. オブジェクトも同じで、w は単語、 $ は行末などといったものです。
|
||||
2. モーションも同じで、w は単語、 $ は行末などといったものです。
|
||||
|
||||
3. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
3. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
4. 最初の間違いへカーソルを移動しましょう。
|
||||
|
||||
@@ -470,7 +472,7 @@ NOTE: タイプ中の間違いはバックスペースキーを使って直す
|
||||
文字をタイプします。
|
||||
|
||||
3. 変更コマンドではカーソル位置から特定のモーションで指定される終端までを変
|
||||
更することが可能です。例えば cw ならばカーソル位置から単語の終わりまで、
|
||||
更することが可能です。例えば ce ならばカーソル位置から単語の終わりまで、
|
||||
c$ ならば行の終わりまでを変更します。
|
||||
|
||||
4. 変更コマンドの形式は
|
||||
@@ -485,7 +487,7 @@ NOTE: タイプ中の間違いはバックスペースキーを使って直す
|
||||
レッスン 4.1: 位置とファイルの情報
|
||||
|
||||
** ファイル内での位置とファイルの状態を表示するには CTRL-G をタイプします。
|
||||
ファイル内のある行に移動するには G をタイプします **
|
||||
ファイル内のある行に移動するには G をタイプします。 **
|
||||
|
||||
NOTE: ステップを実行する前に、このレッスン全てに目を通しましょう!!
|
||||
|
||||
@@ -496,7 +498,7 @@ NOTE: タイプ中の間違いはバックスペースキーを使って直す
|
||||
NOTE: 画面の右下隅にカーソルの位置が表示されているかもしれません。これは
|
||||
'ruler' オプション(:help 'ruler' を参照)を設定することで表示されます。
|
||||
|
||||
2. 最下行に移動するために G をタイプしましょう。
|
||||
2. ファイルの最下行に移動するために G をタイプしましょう。
|
||||
ファイルの先頭に移動するには gg とタイプしましょう。
|
||||
|
||||
3. 先ほどの行の番号をタイプし G をタイプしましょう。最初に CTRL-G を押した行
|
||||
@@ -508,19 +510,19 @@ NOTE: 画面の右下隅にカーソルの位置が表示されているかも
|
||||
レッスン 4.2: 検索コマンド
|
||||
|
||||
|
||||
** 語句を検索するには / と、前方検索する語句をタイプします。**
|
||||
** 語句を検索するには / と、前方検索する語句をタイプします。 **
|
||||
|
||||
1. ノーマルモードで / という文字をタイプします。画面一番下に : コマンドと
|
||||
同じ様に / が現れることに気づくでしょう。
|
||||
|
||||
2. では、'errroor' <ENTER> とタイプしましょう。これが検索したい単語です。
|
||||
|
||||
3. 同じ語をもう一度検索するときは 単に n をタイプします。
|
||||
3. 同じ語句をもう一度検索するときは 単に n をタイプします。
|
||||
逆方向に語句を検索するときは N をタイプします。
|
||||
|
||||
4. 逆方向に語句を検索する場合は、/ の代わりに ? コマンドを使用します。
|
||||
|
||||
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプし
|
||||
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら文字 o をタイプ)をタイプし
|
||||
ます。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。
|
||||
|
||||
---> "errroor" は error とスペルが違います; errroor はいわゆる error です。
|
||||
@@ -531,7 +533,7 @@ NOTE: 検索がファイルの終わりに達すると、オプション 'wrapsc
|
||||
レッスン 4.3: 対応する括弧を検索
|
||||
|
||||
|
||||
** 対応する ),] や } を検索するには % をタイプします **
|
||||
** 対応する ),] や } を検索するには % をタイプします。 **
|
||||
|
||||
1. 下の ---> で示された行で (,[ か { のどれかにカーソルを移動しましょう。
|
||||
|
||||
@@ -554,7 +556,7 @@ NOTE: この機能は括弧が一致していないプログラムをデバッ
|
||||
レッスン 4.4: 間違いを変更する方法
|
||||
|
||||
|
||||
** 'old' を 'new' に置換するには :s/old/new/g とタイプします **
|
||||
** 'old' を 'new' に置換するには :s/old/new/g とタイプします。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動しましょう。
|
||||
|
||||
@@ -567,9 +569,8 @@ NOTE: この機能は括弧が一致していないプログラムをデバッ
|
||||
|
||||
---> thee best time to see thee flowers is in thee spring.
|
||||
|
||||
4. 複数行から見つかる文字を変更するには
|
||||
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定しま
|
||||
す。
|
||||
4. 複数行から見つかる文字の全ての箇所を変更するには
|
||||
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定する。
|
||||
:%s/old/new/g ファイル全体で見つかるものに対して変更する。
|
||||
:%s/old/new/gc ファイル全体で見つかるものに対して、1つ1つ確認をとりな
|
||||
がら変更する。
|
||||
@@ -593,7 +594,7 @@ NOTE: この機能は括弧が一致していないプログラムをデバッ
|
||||
|
||||
4. 現在行の最初の old を new に置換する。 :s/old/new
|
||||
現在行の全ての old を new に置換する。 :s/old/new/g
|
||||
2つの # 間で語句を置換する。 :#,#s/old/new/g
|
||||
2つの # 行の間で語句を置換する。 :#,#s/old/new/g
|
||||
ファイルの中の全ての検索語句を置換する。 :%s/old/new/g
|
||||
'c' を加えると置換の度に確認を求める。 :%s/old/new/gc
|
||||
|
||||
@@ -601,10 +602,10 @@ NOTE: この機能は括弧が一致していないプログラムをデバッ
|
||||
レッスン 5.1: 外部コマンドを実行する方法
|
||||
|
||||
|
||||
** :! の後に実行する外部コマンドをタイプします **
|
||||
** :! の後に実行する外部コマンドをタイプします。 **
|
||||
|
||||
1. 画面の最下部にカーソルが移動するよう、慣れ親しんだ : をタイプしましょう。
|
||||
これでコマンドがタイプできる様になります。
|
||||
これでコマンドライン命令がタイプできる様になります。
|
||||
|
||||
2. ここで ! という文字(感嘆符)をタイプしましょう。
|
||||
これで外部シェルコマンドが実行できる様になります。
|
||||
@@ -624,7 +625,7 @@ NOTE: 全ての : コマンドは <ENTER> を押して終了しなければな
|
||||
レッスン 5.2: その他のファイルへ書き込み
|
||||
|
||||
|
||||
** ファイルへ変更を保存するには :w ファイル名 とタイプします **
|
||||
** ファイルへ変更を保存するには :w ファイル名 とタイプします。 **
|
||||
|
||||
1. ディレクトリの一覧を得るために :!dir もしくは :!ls とタイプしましょう。
|
||||
このあと <ENTER> を押すのは既にご存知ですね。
|
||||
@@ -634,7 +635,7 @@ NOTE: 全ての : コマンドは <ENTER> を押して終了しなければな
|
||||
3. では :w TEST とタイプしましょう (TEST は、選んだファイル名です)。
|
||||
|
||||
4. これによりファイル全体が TEST という名前で保存されます。
|
||||
もう一度 :!dir もしくは :!ls とタイプして確認してみましょう。
|
||||
もう一度 :!dir もしくは :!ls とタイプしてディレクトリを確認してみましょう。
|
||||
|
||||
NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
|
||||
チュートリアルの複製ができ上がるはずです。
|
||||
@@ -647,7 +648,7 @@ NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると
|
||||
レッスン 5.3: 選択した書き込み
|
||||
|
||||
|
||||
** ファイルの位置を保存するには、v モーションと :w FILENAME をタイプします。 **
|
||||
** ファイルの一部を保存するには、v モーションと :w FILENAME をタイプします。 **
|
||||
|
||||
1. この行にカーソルを移動します。
|
||||
|
||||
@@ -660,20 +661,20 @@ NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると
|
||||
<ENTER> を押す前に :'<,'>w TEST となっていることを確認して下さい。
|
||||
|
||||
5. Vim は TEST というファイルに選択された行を書き込むでしょう。
|
||||
!dir もしくは !ls でそれを確認します。
|
||||
:!dir もしくは :!ls でそれを確認します。
|
||||
それは削除しないでおいて下さい。次のレッスンで使用します。
|
||||
|
||||
NOTE: v を押すと、Visual 選択が始まります。カーソルを動かすことで、選択範囲を
|
||||
大きくも小さくもできます。さらに、その選択範囲に対してオペレータを適用
|
||||
きます。例えば d はテキストを削除します。
|
||||
できます。例えば d はテキストを削除します。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 5.4: ファイルの取込と合併
|
||||
|
||||
|
||||
** ファイルの中身を挿入するには :r ファイル名 とタイプします **
|
||||
** ファイルの中身を挿入するには :r ファイル名 とタイプします。 **
|
||||
|
||||
1. カーソルを以下の行に合わせます。
|
||||
1. カーソルをこの行のすぐ上に合わせます。
|
||||
|
||||
NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れます。下に下がってこ
|
||||
のレッスンに移動しましょう。
|
||||
@@ -682,19 +683,18 @@ NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れ
|
||||
ここでいう TEST は使うファイルの名前のことです。
|
||||
読み込まれたファイルは、カーソル行の下にあります。
|
||||
|
||||
3. 取込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
|
||||
3. 取り込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の
|
||||
オリジナルとファイルによるものの2つがあることがわかります。
|
||||
|
||||
NOTE: 外部コマンドの出力を読み込むことも出来ます。例えば、
|
||||
NOTE: 外部コマンドの出力を読み込むこともできます。例えば、
|
||||
:r !ls は ls コマンドの出力をカーソル以下に読み込みます。
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 5 要約
|
||||
|
||||
|
||||
1. :!command によって 外部コマンドを実行します。
|
||||
1. :!command によって 外部コマンドを実行する。
|
||||
|
||||
よく使う例:
|
||||
(Windows) (Unix)
|
||||
@@ -717,13 +717,14 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
|
||||
レッスン 6.1: オープンコマンド
|
||||
|
||||
|
||||
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります **
|
||||
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります。 **
|
||||
|
||||
1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
|
||||
|
||||
2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。
|
||||
|
||||
3. さらに挿入モードを終了する為に <ESC> をタイプします。
|
||||
3. いくつか文字をタイプしてから、挿入モードを終了する為に <ESC> を
|
||||
タイプします。
|
||||
|
||||
---> o をタイプするとカーソルは開いた行へ移動し挿入モードに入ります。
|
||||
|
||||
@@ -735,12 +736,11 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
|
||||
|
||||
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.2: 追加コマンド
|
||||
|
||||
|
||||
** カーソルの次の位置からテキストを追加するには a とタイプします **
|
||||
** カーソルの次の位置からテキストを追加するには a とタイプします。 **
|
||||
|
||||
1. カーソルを ---> で示された最初の行へ移動しましょう。
|
||||
|
||||
@@ -763,7 +763,7 @@ NOTE: a, i と A は同じ挿入モードへ移りますが、文字が挿入さ
|
||||
レッスン 6.3: その他の置換方法
|
||||
|
||||
|
||||
** 1文字以上を置き換えるには大文字の R とタイプしましょう **
|
||||
** 1文字以上を置き換えるには大文字の R とタイプしましょう。 **
|
||||
|
||||
1. 以下の ---> と示された行にカーソルを移動します。最初の xxx の先頭に移動し
|
||||
ます。
|
||||
@@ -781,12 +781,11 @@ NOTE: a, i と A は同じ挿入モードへ移りますが、文字が挿入さ
|
||||
NOTE: 置換モードは挿入モードに似ていますが、全てのタイプされた文字は既存の文字
|
||||
を削除します。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.4: テキストのコピーとペースト
|
||||
|
||||
|
||||
** テキストのコピーにはオペレータ y を、ペーストには p を使います **
|
||||
** テキストのコピーにはオペレータ y を、ペーストには p を使います。 **
|
||||
|
||||
1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。
|
||||
|
||||
@@ -804,12 +803,13 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
|
||||
---> a) this is the first item.
|
||||
b)
|
||||
|
||||
NOTE: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。
|
||||
NOTE: y をオペレータとして使うこともできます。yw は単語を1つ yank します。
|
||||
yy は行を1つ yank し、p でその行を put します。
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6.5: オプションの設定
|
||||
|
||||
|
||||
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します **
|
||||
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します。 **
|
||||
|
||||
1. 次の様に入力して 'ignore' を検索しましょう: /ignore <ENTER>
|
||||
n を押して何度か検索を繰り返します。
|
||||
@@ -826,7 +826,7 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
|
||||
6. 大文字小文字の区別を無効にするには次の様に入力します: :set noic
|
||||
|
||||
NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
|
||||
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
|
||||
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、語句内で \c
|
||||
を使用します: /ignore\c <ENTER>
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 6 要約
|
||||
@@ -835,13 +835,13 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
|
||||
O (大文字) をタイプするとカーソルの上の行で挿入モードになる。
|
||||
|
||||
2. カーソル上の文字の次からテキストを追加するには a とタイプする。
|
||||
行末に自動でテキストを挿入するには大文字 A をタイプする。
|
||||
行末にテキストを挿入するには大文字 A をタイプする。
|
||||
|
||||
3. e コマンドは単語の終端部カーソルを移動する。
|
||||
3. e コマンドは単語の終端にカーソルを移動する。
|
||||
|
||||
4. y オペレータはテキストを yank (コピー)し、p はそれを put (ペースト)する。
|
||||
|
||||
5. 大文字の R をタイプすると置換モードに入り、<ESC>を押すと抜ける。
|
||||
5. 大文字の R をタイプすると置換モードに入り、<ESC> を押すと抜ける。
|
||||
|
||||
6. ":set xxx" とタイプするとオプション "xxx" が設定される。
|
||||
'ic' 'ignorecase' 検索時に大文字小文字の区別しない
|
||||
@@ -849,7 +849,7 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
|
||||
'hls' 'hlsearch' マッチするすべてを強調表示する
|
||||
長い方、短い方、どちらのオプション名でも使用できます。
|
||||
|
||||
7. オプションを無効にするには "no" を付与します: :set noic
|
||||
7. オプションを無効にするには "no" を付与する: :set noic
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
レッスン 7.1: オンラインヘルプコマンド
|
||||
@@ -883,15 +883,15 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
|
||||
使用不可となっています。より多くの特徴を使いはじめるには "vimrc" ファイル
|
||||
を作成します。
|
||||
|
||||
1. "vimrc" ファイルの編集を開始する。これはシステムに依存します。
|
||||
:edit ~/.vimrc UNIX 向け
|
||||
:edit ~/_vimrc Windows 向け
|
||||
1. "vimrc" ファイルの編集を開始します。これはシステムに依存します。
|
||||
:e ~/.vimrc UNIX 向け
|
||||
:e ~/_vimrc Windows 向け
|
||||
|
||||
2. ここでサンプルの "vimrc" を読み込みます。
|
||||
:read $VIMRUNTIME/vimrc_example.vim
|
||||
:r $VIMRUNTIME/vimrc_example.vim
|
||||
|
||||
3. 以下のようにファイルへ書き込みます。
|
||||
:write
|
||||
:w
|
||||
|
||||
次回 Vim を起動すると、色づけ構文が使えるようになるでしょう。
|
||||
この "vimrc" ファイルへ、お好みの設定を追加することができます。
|
||||
@@ -907,7 +907,7 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
|
||||
|
||||
2. 現在のディレクトリに在るファイルを :!ls か :!dir で確認します。
|
||||
|
||||
3. コマンドの開始をタイプします: :e
|
||||
3. コマンドの先頭をタイプします: :e
|
||||
|
||||
4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# Translators: This is the Application Name used in the Vim desktop file
|
||||
Name[de]=Vim
|
||||
Name[eo]=Vim
|
||||
Name[fi]=Vim
|
||||
Name[fr]=Vim
|
||||
Name[it]=Vim
|
||||
Name[ru]=Vim
|
||||
@@ -13,6 +14,7 @@ Name=Vim
|
||||
# Translators: This is the Generic Application Name used in the Vim desktop file
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[eo]=Tekstoredaktilo
|
||||
GenericName[fi]=Tekstinmuokkain
|
||||
GenericName[fr]=Éditeur de texte
|
||||
GenericName[it]=Editor di testi
|
||||
GenericName[ja]=テキストエディタ
|
||||
@@ -23,6 +25,7 @@ GenericName=Text Editor
|
||||
# Translators: This is the comment used in the Vim desktop file
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[eo]=Redakti tekstajn dosierojn
|
||||
Comment[fi]=Muokkaa tekstitiedostoja
|
||||
Comment[fr]=Éditer des fichiers texte
|
||||
Comment[it]=Edita file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
@@ -54,7 +57,6 @@ Comment[es]=Edita archivos de texto
|
||||
Comment[et]=Redigeeri tekstifaile
|
||||
Comment[eu]=Editatu testu-fitxategiak
|
||||
Comment[fa]=ویرایش پروندههای متنی
|
||||
Comment[fi]=Muokkaa tekstitiedostoja
|
||||
Comment[ga]=Eagar comhad Téacs
|
||||
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
|
||||
Comment[he]=ערוך קבצי טקסט
|
||||
@@ -103,6 +105,7 @@ Type=Application
|
||||
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
|
||||
Keywords[de]=Text;Editor;
|
||||
Keywords[eo]=Teksto;redaktilo;
|
||||
Keywords[fi]=Teksti;muokkain;editori;
|
||||
Keywords[fr]=Texte;éditeur;
|
||||
Keywords[it]=Testo;editor;
|
||||
Keywords[ja]=テキスト;エディタ;
|
||||
|
||||
@@ -44,12 +44,6 @@
|
||||
#include <shlobj.h>
|
||||
#include <wchar.h>
|
||||
|
||||
/* Accommodate old versions of VC that don't have a modern Platform SDK */
|
||||
#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
|
||||
# undef UINT_PTR
|
||||
# define UINT_PTR UINT
|
||||
#endif
|
||||
|
||||
#define ResultFromShort(i) ResultFromScode(MAKE_SCODE(SEVERITY_SUCCESS, 0, (USHORT)(i)))
|
||||
|
||||
// Initialize GUIDs (should be done only and at-least once per DLL/EXE)
|
||||
|
||||
@@ -155,83 +155,8 @@ OLDER VERSIONS
|
||||
The minimal supported version is Windows XP. Building with older compilers
|
||||
might still work, but these instructions might be outdated.
|
||||
|
||||
If you need the executable to run on Windows 98 or ME, use the 2003 one
|
||||
|msvc-2003-toolkit| or |msvc-2005-express|, and use the source code before
|
||||
8.0.0029.
|
||||
|
||||
Visual C++ Toolkit 2003 *msvc-2003-toolkit*
|
||||
-----------------------
|
||||
|
||||
NOTE: this most likely does not work
|
||||
|
||||
You could download the Microsoft Visual C++ Toolkit 2003 from
|
||||
http://msdn.microsoft.com/visualc/vctoolkit2003/
|
||||
Unfortunately this URL is no longer valid. Unofficial downloads appear to be
|
||||
available from links mentioned on these pages (use at your own risk):
|
||||
http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
|
||||
http://feargame.net/wiki/index.php?title=Building_Source_with_the_VC2003_Toolkit
|
||||
|
||||
This contains the command-line tools (compiler, linker, CRT headers,
|
||||
and libraries) for Visual Studio .NET 2003, but not the Visual Studio IDE.
|
||||
To compile and debug Vim with the VC2003 Toolkit, you will also need
|
||||
|ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
|
||||
and |windbg-download|.
|
||||
|
||||
It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
|
||||
which is freely available in perpetuity.
|
||||
|
||||
The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
|
||||
http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
|
||||
(This site also takes you through configuring a number of other
|
||||
free C compilers for Win32.)
|
||||
|
||||
To compile Vim using the VC2003 Toolkit and Make_mvc.mak, you must first
|
||||
execute the following commands in a cmd.exe window (the msvcsetup.bat batch
|
||||
file can be used):
|
||||
|
||||
set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
|
||||
call "%VCToolkitInstallDir%vcvars32.bat"
|
||||
set MSVCVer=7.1
|
||||
call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
|
||||
set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
|
||||
|
||||
Now you can build Vim with Make_mvc.mak.
|
||||
|
||||
|
||||
Getting the Windows Platform SDK *ms-platform-sdk*
|
||||
|
||||
You will also need a copy of the Windows Platform SDK. Specifically, you need
|
||||
the Windows Core SDK subset of the Platform SDK, which contains the Windows
|
||||
headers and libraries. You need to search for it, Microsoft keeps changing
|
||||
the URL.
|
||||
|
||||
|
||||
Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
|
||||
|
||||
You need the .NET Framework 1.1 Redistributable Package from
|
||||
http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3
|
||||
or from Windows Update:
|
||||
http://windowsupdate.microsoft.com/
|
||||
This is needed to install |dotnet-1.1-sdk|. It also contains cvtres.exe,
|
||||
which is needed to link Vim.
|
||||
|
||||
|
||||
Getting the .NET Framework 1.1 SDK *dotnet-1.1-sdk*
|
||||
|
||||
You need the .NET Framework 1.1 SDK from
|
||||
http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d
|
||||
This contains some additional libraries needed to compile Vim,
|
||||
such as msvcrt.lib. You must install |dotnet-1.1-redist| before
|
||||
installing the .NET 1.1 SDK.
|
||||
|
||||
|
||||
Getting the WinDbg debugger *windbg-download*
|
||||
|
||||
The Debugging Tools for Windows can be downloaded from
|
||||
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
|
||||
This includes the WinDbg debugger, which you will want if you ever need
|
||||
to debug Vim itself. An earlier version of the Debugging Tools
|
||||
is also available through the Platform SDK, |ms-platform-sdk|.
|
||||
If you need the executable to run on Windows 98 or ME, use the 2005 one
|
||||
|msvc-2005-express|, and use the source code before 8.0.0029.
|
||||
|
||||
|
||||
Visual C++ 2005 Express Edition *msvc-2005-express*
|
||||
|
||||
@@ -668,7 +668,14 @@ DEFINES += -DFEAT_DIRECTX_COLOR_EMOJI
|
||||
endif
|
||||
|
||||
ifeq ($(SODIUM),yes)
|
||||
ifndef DYNAMIC_SODIUM
|
||||
DYNAMIC_SODIUM=yes
|
||||
endif
|
||||
ifeq ($(DYNAMIC_SODIUM),yes)
|
||||
DEFINES += -DDYNAMIC_SODIUM
|
||||
else
|
||||
SODIUMLIB = -lsodium
|
||||
endif
|
||||
endif
|
||||
|
||||
# Only allow XPM for a GUI build.
|
||||
@@ -1237,7 +1244,7 @@ $(OUTDIR)/gui_beval.o: gui_beval.c $(INCL) $(GUI_INCL)
|
||||
$(OUTDIR)/gui_w32.o: gui_w32.c $(INCL) $(GUI_INCL) version.h
|
||||
$(CC) -c $(CFLAGS) gui_w32.c -o $@
|
||||
|
||||
$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
|
||||
$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL)
|
||||
$(CC) -c $(CFLAGS) if_cscope.c -o $@
|
||||
|
||||
$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) $(MZSCHEME_INCL) $(MZ_EXTRA_DEP)
|
||||
|
||||
199
src/Make_mvc.mak
199
src/Make_mvc.mak
@@ -34,7 +34,6 @@
|
||||
# IME support: IME=yes (default is yes)
|
||||
# DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default
|
||||
# is yes)
|
||||
# Global IME support: GIME=yes (requires GUI=yes)
|
||||
#
|
||||
# Terminal support: TERMINAL=yes (default is yes if FEATURES is HUGE)
|
||||
# Will also enable CHANNEL
|
||||
@@ -42,10 +41,10 @@
|
||||
# Sound support: SOUND=yes (default is yes)
|
||||
#
|
||||
# Sodium support: SODIUM=[Path to Sodium directory]
|
||||
# Dynamic built with libsodium
|
||||
# You need to install the msvc package from
|
||||
# https://download.libsodium.org/libsodium/releases/
|
||||
# and package the libsodium.dll with Vim
|
||||
# DYNAMIC_SODIUM=yes (to load the Sodium DLL dynamically)
|
||||
# You need to install the msvc package from
|
||||
# https://download.libsodium.org/libsodium/releases/
|
||||
# and package the libsodium.dll with Vim
|
||||
#
|
||||
#
|
||||
# DLL support (EXPERIMENTAL): VIMDLL=yes (default is no)
|
||||
@@ -275,17 +274,15 @@ MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
|
||||
MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
|
||||
!endif
|
||||
|
||||
# Calculate MSVC_FULL for Visual C++ 8 and up.
|
||||
!if $(MSVC_MAJOR) >= 8
|
||||
! if [echo MSVC_FULL=_MSC_FULL_VER> msvcfullver.c && $(CC) /EP msvcfullver.c > msvcfullver.~ 2> nul]
|
||||
! message *** ERROR
|
||||
! message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
|
||||
! message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
|
||||
! error Make aborted.
|
||||
! else
|
||||
! include msvcfullver.~
|
||||
! if [del msvcfullver.c msvcfullver.~]
|
||||
! endif
|
||||
# Calculate MSVC_FULL.
|
||||
!if [echo MSVC_FULL=_MSC_FULL_VER> msvcfullver.c && $(CC) /EP msvcfullver.c > msvcfullver.~ 2> nul]
|
||||
! message *** ERROR
|
||||
! message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
|
||||
! message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
|
||||
! error Make aborted.
|
||||
!else
|
||||
! include msvcfullver.~
|
||||
! if [del msvcfullver.c msvcfullver.~]
|
||||
! endif
|
||||
!endif
|
||||
|
||||
@@ -306,18 +303,11 @@ MSVCRT_NAME = msvcr$(MSVCRT_VER)
|
||||
MSVCRT_NAME = vcruntime$(MSVCRT_VER)
|
||||
!endif
|
||||
|
||||
!if $(MSVC_MAJOR) == 6
|
||||
CPU = ix86
|
||||
!endif
|
||||
|
||||
### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
|
||||
!ifndef WINVER
|
||||
WINVER = 0x0501
|
||||
!endif
|
||||
|
||||
# Flag to turn on Win64 compatibility warnings for VC7.x and VC8.
|
||||
WP64CHECK = /Wp64
|
||||
|
||||
# Use multiprocess build
|
||||
USE_MP = yes
|
||||
|
||||
@@ -384,6 +374,9 @@ SOUND = no
|
||||
!ifndef SODIUM
|
||||
SODIUM = no
|
||||
!endif
|
||||
!ifndef DYNAMIC_SODIUM
|
||||
DYNAMIC_SODIUM = yes
|
||||
!endif
|
||||
|
||||
!if "$(SODIUM)" != "no"
|
||||
! if "$(CPU)" == "AMD64"
|
||||
@@ -397,8 +390,13 @@ SODIUM = no
|
||||
|
||||
!if "$(SODIUM)" != "no"
|
||||
SOD_INC = /I "$(SODIUM)\include"
|
||||
! if "$(DYNAMIC_SODIUM)" == "yes"
|
||||
SOD_DEFS = -DHAVE_SODIUM -DDYNAMIC_SODIUM
|
||||
SOD_LIB =
|
||||
! else
|
||||
SOD_DEFS = -DHAVE_SODIUM
|
||||
SOD_LIB = $(SOD_LIB)\libsodium.lib
|
||||
! endif
|
||||
!endif
|
||||
|
||||
!ifndef NETBEANS
|
||||
@@ -492,23 +490,14 @@ CHANNEL_DEFS = $(CHANNEL_DEFS) -DHAVE_INET_NTOP
|
||||
NETBEANS_LIB = WSock32.lib Ws2_32.lib
|
||||
!endif
|
||||
|
||||
# Set which version of the CRT to use
|
||||
!if defined(USE_MSVCRT)
|
||||
# CVARS = $(cvarsdll)
|
||||
# !elseif defined(MULTITHREADED)
|
||||
# CVARS = $(cvarsmt)
|
||||
!else
|
||||
# CVARS = $(cvars)
|
||||
# CVARS = $(cvarsmt)
|
||||
!endif
|
||||
|
||||
# need advapi32.lib for GetUserName()
|
||||
# need shell32.lib for ExtractIcon()
|
||||
# need netapi32.lib for NetUserEnum()
|
||||
# gdi32.lib and comdlg32.lib for printing support
|
||||
# ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
|
||||
CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
|
||||
comdlg32.lib ole32.lib netapi32.lib uuid.lib /machine:$(CPU)
|
||||
comdlg32.lib ole32.lib netapi32.lib uuid.lib user32.lib \
|
||||
/machine:$(CPU)
|
||||
!if "$(DELAYLOAD)" == "yes"
|
||||
CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
|
||||
!endif
|
||||
@@ -518,7 +507,7 @@ CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
|
||||
#VIMRCLOC = somewhere
|
||||
#VIMRUNTIMEDIR = somewhere
|
||||
|
||||
CFLAGS = -c /W3 /GF /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
|
||||
CFLAGS = -c /W3 /GF /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
|
||||
$(CSCOPE_DEFS) $(TERM_DEFS) $(SOUND_DEFS) $(NETBEANS_DEFS) $(CHANNEL_DEFS) \
|
||||
$(NBDEBUG_DEFS) $(XPM_DEFS) $(SOD_DEFS) $(SOD_INC) \
|
||||
$(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
|
||||
@@ -552,68 +541,50 @@ CPUNR = sse2
|
||||
!endif
|
||||
|
||||
# Convert processor ID to MVC-compatible number
|
||||
!if $(MSVC_MAJOR) < 8
|
||||
! if "$(CPUNR)" == "i586"
|
||||
CPUARG = /G5
|
||||
! elseif "$(CPUNR)" == "i686"
|
||||
CPUARG = /G6
|
||||
! elseif "$(CPUNR)" == "sse"
|
||||
CPUARG = /G6 /arch:SSE
|
||||
! elseif "$(CPUNR)" == "sse2"
|
||||
CPUARG = /G7 /arch:SSE2
|
||||
! elseif "$(CPUNR)" == "avx" || "$(CPUNR)" == "avx2"
|
||||
! message AVX/AVX2 Instruction Sets are not supported by Visual C++ v$(MSVC_MAJOR)
|
||||
! message Falling back to SSE2
|
||||
CPUARG = /G7 /arch:SSE2
|
||||
! elseif "$(CPUNR)" == "any"
|
||||
CPUARG =
|
||||
! endif
|
||||
!else
|
||||
# IA32/SSE/SSE2 are only supported on x86
|
||||
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386" && ("$(CPUNR)" == "i586" || "$(CPUNR)" == "i686" || "$(CPUNR)" == "any")
|
||||
!if "$(ASSEMBLY_ARCHITECTURE)" == "i386" && ("$(CPUNR)" == "i586" || "$(CPUNR)" == "i686" || "$(CPUNR)" == "any")
|
||||
# VC<11 generates fp87 code by default
|
||||
! if $(MSVC_MAJOR) < 11
|
||||
! if $(MSVC_MAJOR) < 11
|
||||
CPUARG =
|
||||
# VC>=11 needs explicit instructions to generate fp87 code
|
||||
! else
|
||||
! else
|
||||
CPUARG = /arch:IA32
|
||||
! endif
|
||||
! elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse"
|
||||
! endif
|
||||
!elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse"
|
||||
CPUARG = /arch:SSE
|
||||
! elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse2"
|
||||
!elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse2"
|
||||
CPUARG = /arch:SSE2
|
||||
! elseif "$(CPUNR)" == "avx"
|
||||
!elseif "$(CPUNR)" == "avx"
|
||||
# AVX is only supported by VC 10 and up
|
||||
! if $(MSVC_MAJOR) < 10
|
||||
! message AVX Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
|
||||
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
|
||||
! message Falling back to SSE2
|
||||
! if $(MSVC_MAJOR) < 10
|
||||
! message AVX Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
|
||||
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
|
||||
! message Falling back to SSE2
|
||||
CPUARG = /arch:SSE2
|
||||
! else
|
||||
CPUARG =
|
||||
! endif
|
||||
! else
|
||||
CPUARG = /arch:AVX
|
||||
! endif
|
||||
! elseif "$(CPUNR)" == "avx2"
|
||||
# AVX is only supported by VC 10 and up
|
||||
! if $(MSVC_MAJOR) < 10
|
||||
! message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
|
||||
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
|
||||
! message Falling back to SSE2
|
||||
CPUARG = /arch:SSE2
|
||||
! else
|
||||
CPUARG =
|
||||
! endif
|
||||
! endif
|
||||
! else
|
||||
CPUARG = /arch:AVX
|
||||
! endif
|
||||
!elseif "$(CPUNR)" == "avx2"
|
||||
# AVX is only supported by VC 10 and up
|
||||
! if $(MSVC_MAJOR) < 10
|
||||
! message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
|
||||
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
|
||||
! message Falling back to SSE2
|
||||
CPUARG = /arch:SSE2
|
||||
! else
|
||||
CPUARG =
|
||||
! endif
|
||||
# AVX2 is only supported by VC 12U2 and up
|
||||
# 180030501 is the full version number for Visual Studio 2013/VC 12 Update 2
|
||||
! elseif $(MSVC_FULL) < 180030501
|
||||
! message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)-$(MSVC_FULL)
|
||||
! message Falling back to AVX
|
||||
! elseif $(MSVC_FULL) < 180030501
|
||||
! message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)-$(MSVC_FULL)
|
||||
! message Falling back to AVX
|
||||
CPUARG = /arch:AVX
|
||||
! else
|
||||
! else
|
||||
CPUARG = /arch:AVX2
|
||||
! endif
|
||||
! endif
|
||||
!endif
|
||||
|
||||
@@ -671,6 +642,7 @@ CFLAGS = $(CFLAGS) /fsanitize=address
|
||||
!endif
|
||||
|
||||
!ifdef NODEBUG
|
||||
|
||||
VIM = vim
|
||||
! if "$(OPTIMIZE)" == "SPACE"
|
||||
OPTFLAG = /O1
|
||||
@@ -680,58 +652,48 @@ OPTFLAG = /O2
|
||||
OPTFLAG = /Ox
|
||||
! endif
|
||||
|
||||
! if $(MSVC_MAJOR) >= 8
|
||||
# Use link time code generation if not worried about size
|
||||
! if "$(OPTIMIZE)" != "SPACE"
|
||||
! if "$(OPTIMIZE)" != "SPACE"
|
||||
OPTFLAG = $(OPTFLAG) /GL
|
||||
! endif
|
||||
! endif
|
||||
|
||||
# (/Wp64 is deprecated in VC9 and generates an obnoxious warning.)
|
||||
! if ($(MSVC_MAJOR) == 7) || ($(MSVC_MAJOR) == 8)
|
||||
CFLAGS = $(CFLAGS) $(WP64CHECK)
|
||||
! endif
|
||||
|
||||
CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
|
||||
RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
|
||||
RCFLAGS = -DNDEBUG
|
||||
! ifdef USE_MSVCRT
|
||||
CFLAGS = $(CFLAGS) /MD
|
||||
LIBC = msvcrt.lib
|
||||
! else
|
||||
LIBC = libcmt.lib
|
||||
CFLAGS = $(CFLAGS) /Zl /MT
|
||||
LIBC = libcmt.lib
|
||||
! endif
|
||||
|
||||
!else # DEBUG
|
||||
|
||||
VIM = vimd
|
||||
! if ("$(CPU)" == "i386") || ("$(CPU)" == "ix86")
|
||||
DEBUGINFO = /ZI
|
||||
! endif
|
||||
CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
|
||||
RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
|
||||
# The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0.
|
||||
! if $(MSVC_MAJOR) == 4
|
||||
LIBC =
|
||||
! else
|
||||
RCFLAGS = -D_DEBUG -DDEBUG
|
||||
# The /fixed:no is needed for Quantify.
|
||||
LIBC = /fixed:no
|
||||
! endif
|
||||
! ifdef USE_MSVCRT
|
||||
CFLAGS = $(CFLAGS) /MDd
|
||||
LIBC = $(LIBC) msvcrtd.lib
|
||||
! else
|
||||
LIBC = $(LIBC) libcmtd.lib
|
||||
CFLAGS = $(CFLAGS) /Zl /MTd
|
||||
LIBC = $(LIBC) libcmtd.lib
|
||||
! endif
|
||||
|
||||
!endif # DEBUG
|
||||
|
||||
!if "$(CL)" == "/D_USING_V110_SDK71_"
|
||||
RCFLAGS = $(RCFLAGS) /D_USING_V110_SDK71_
|
||||
!endif
|
||||
|
||||
!if $(MSVC_MAJOR) >= 8
|
||||
# Visual Studio 2005 has 'deprecated' many of the standard CRT functions
|
||||
CFLAGS_DEPR = /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
|
||||
CFLAGS = $(CFLAGS) $(CFLAGS_DEPR)
|
||||
!endif
|
||||
|
||||
!include Make_all.mak
|
||||
!include testdir\Make_all.mak
|
||||
@@ -787,7 +749,7 @@ OBJ = \
|
||||
$(OUTDIR)\hashtab.obj \
|
||||
$(OUTDIR)\help.obj \
|
||||
$(OUTDIR)\highlight.obj \
|
||||
$(OBJDIR)\if_cscope.obj \
|
||||
$(OUTDIR)\if_cscope.obj \
|
||||
$(OUTDIR)\indent.obj \
|
||||
$(OUTDIR)\insexpand.obj \
|
||||
$(OUTDIR)\json.obj \
|
||||
@@ -885,11 +847,6 @@ IME_LIB = imm32.lib
|
||||
! endif
|
||||
!endif
|
||||
|
||||
!if "$(GIME)" == "yes"
|
||||
CFLAGS = $(CFLAGS) -DGLOBAL_IME
|
||||
OBJ = $(OBJ) $(OUTDIR)\dimm_i.obj $(OUTDIR)\glbl_ime.obj
|
||||
!endif
|
||||
|
||||
!if "$(GUI)" == "yes"
|
||||
SUBSYSTEM = windows
|
||||
CFLAGS = $(CFLAGS) -DFEAT_GUI_MSWIN
|
||||
@@ -910,9 +867,7 @@ GUI_OBJ = \
|
||||
$(OUTDIR)\gui_beval.obj \
|
||||
$(OUTDIR)\gui_w32.obj
|
||||
GUI_LIB = \
|
||||
gdi32.lib version.lib $(IME_LIB) \
|
||||
winspool.lib comctl32.lib advapi32.lib shell32.lib netapi32.lib \
|
||||
/machine:$(CPU)
|
||||
version.lib $(IME_LIB) winspool.lib comctl32.lib
|
||||
!else
|
||||
SUBSYSTEM = console
|
||||
CUI_INCL = iscygpty.h
|
||||
@@ -1320,14 +1275,18 @@ conflags = $(conflags) /map /mapinfo:lines
|
||||
!ENDIF
|
||||
|
||||
LINKARGS1 = $(linkdebug) $(conflags)
|
||||
LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib \
|
||||
LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) \
|
||||
$(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \
|
||||
$(TCL_LIB) $(SOUND_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(SOD_LIB) $(LINK_PDB)
|
||||
|
||||
# Report link time code generation progress if used.
|
||||
# Enable link time code generation if needed.
|
||||
!ifdef NODEBUG
|
||||
! if $(MSVC_MAJOR) >= 8
|
||||
! if "$(OPTIMIZE)" != "SPACE"
|
||||
! if "$(OPTIMIZE)" != "SPACE"
|
||||
! if "$(CI)" == "true" || "$(CI)" == "True"
|
||||
# Enable link time code generation, but do not show the progress.
|
||||
LINKARGS1 = $(LINKARGS1) /LTCG
|
||||
! else
|
||||
# Report link time code generation progress.
|
||||
LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
|
||||
! endif
|
||||
! endif
|
||||
@@ -1464,9 +1423,6 @@ clean: testclean
|
||||
- if exist uninstall.exe del uninstall.exe
|
||||
- if exist if_perl.c del if_perl.c
|
||||
- if exist auto\if_perl.c del auto\if_perl.c
|
||||
- if exist dimm.h del dimm.h
|
||||
- if exist dimm_i.c del dimm_i.c
|
||||
- if exist dimm.tlb del dimm.tlb
|
||||
- if exist dosinst.exe del dosinst.exe
|
||||
cd xxd
|
||||
$(MAKE) /NOLOGO -f Make_mvc.mak clean
|
||||
@@ -1670,7 +1626,7 @@ $(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c $(INCL) $(GUI_INCL) version.h
|
||||
|
||||
$(OUTDIR)/gui_dwrite.obj: $(OUTDIR) gui_dwrite.cpp gui_dwrite.h
|
||||
|
||||
$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL) if_cscope.h
|
||||
$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL)
|
||||
|
||||
$(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c $(INCL)
|
||||
$(CC) $(CFLAGS_OUTDIR) $(LUA_INC) if_lua.c
|
||||
@@ -1882,13 +1838,6 @@ iid_ole.c if_ole.h vim.tlb: if_ole.idl
|
||||
midl /nologo /error none /proxy nul /iid iid_ole.c /tlb vim.tlb \
|
||||
/header if_ole.h if_ole.idl
|
||||
|
||||
dimm.h dimm_i.c: dimm.idl
|
||||
midl /nologo /error none /proxy nul dimm.idl
|
||||
|
||||
$(OUTDIR)/dimm_i.obj: $(OUTDIR) dimm_i.c $(INCL)
|
||||
|
||||
$(OUTDIR)/glbl_ime.obj: $(OUTDIR) glbl_ime.cpp dimm.h $(INCL)
|
||||
|
||||
|
||||
CCCTERM = $(CC) $(CFLAGS) -Ilibvterm/include -DINLINE="" \
|
||||
-DVSNPRINTF=vim_vsnprintf \
|
||||
|
||||
@@ -908,7 +908,7 @@ highlight.obj : highlight.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
errors.h globals.h if_cscope.h
|
||||
errors.h globals.h
|
||||
if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
|
||||
29
src/Makefile
29
src/Makefile
@@ -1491,13 +1491,14 @@ POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(EXTRA_DEFS)
|
||||
|
||||
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(SANITIZER_CFLAGS) $(LEAK_CFLAGS) $(ABORT_CFLAGS) $(POST_DEFS)
|
||||
|
||||
ALL_IF_CFLAGS = $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS)
|
||||
ALL_IF_CFLAGS_EXTRA = $(LUA_CFLAGS_EXTRA) $(PERL_CFLAGS_EXTRA) $(PYTHON_CFLAGS_EXTRA) $(PYTHON3_CFLAGS_EXTRA) $(RUBY_CFLAGS_EXTRA) $(TCL_CFLAGS_EXTRA)
|
||||
|
||||
# Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
|
||||
# with "-E".
|
||||
OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
|
||||
|
||||
LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) \
|
||||
$(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) \
|
||||
$(PYTHON3_CFLAGS) $(TCL_CFLAGS) $(VTERM_CFLAGS) \
|
||||
LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(ALL_IF_CFLAGS) $(VTERM_CFLAGS) \
|
||||
-Dinline= -D__extension__= -Dalloca=alloca
|
||||
|
||||
LINT_EXTRA = -D"__attribute__(x)="
|
||||
@@ -1873,7 +1874,7 @@ OBJ_COMMON = \
|
||||
$(OS_EXTRA_OBJ) \
|
||||
$(NETBEANS_OBJ) \
|
||||
$(CHANNEL_OBJ) \
|
||||
$(XDIFF_OBJS)
|
||||
$(XDIFF_OBJS_USED)
|
||||
|
||||
# The files included by tests are not in OBJ_COMMON.
|
||||
OBJ_MAIN = \
|
||||
@@ -3357,7 +3358,7 @@ objects/if_xcmdsrv.o: if_xcmdsrv.c
|
||||
$(CCC) -o $@ if_xcmdsrv.c
|
||||
|
||||
objects/if_lua.o: if_lua.c
|
||||
$(CCC_NF) $(LUA_CFLAGS) $(ALL_CFLAGS) -o $@ if_lua.c
|
||||
$(CCC_NF) $(LUA_CFLAGS) $(ALL_CFLAGS) $(LUA_CFLAGS_EXTRA) -o $@ if_lua.c
|
||||
|
||||
objects/if_mzsch.o: if_mzsch.c $(MZSCHEME_EXTRA)
|
||||
$(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c
|
||||
@@ -3366,22 +3367,22 @@ mzscheme_base.c:
|
||||
$(MZSCHEME_MZC) --c-mods mzscheme_base.c ++lib scheme/base
|
||||
|
||||
objects/if_perl.o: auto/if_perl.c
|
||||
$(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) -o $@ auto/if_perl.c
|
||||
$(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) $(PERL_CFLAGS_EXTRA) -o $@ auto/if_perl.c
|
||||
|
||||
objects/if_perlsfio.o: if_perlsfio.c
|
||||
$(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) -o $@ if_perlsfio.c
|
||||
$(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) $(PERL_CFLAGS_EXTRA) -o $@ if_perlsfio.c
|
||||
|
||||
objects/if_python.o: if_python.c if_py_both.h
|
||||
$(CCC_NF) $(PYTHON_CFLAGS) $(PYTHON_CFLAGS_EXTRA) $(ALL_CFLAGS) -o $@ if_python.c
|
||||
$(CCC_NF) $(PYTHON_CFLAGS) $(ALL_CFLAGS) $(PYTHON_CFLAGS_EXTRA) -o $@ if_python.c
|
||||
|
||||
objects/if_python3.o: if_python3.c if_py_both.h
|
||||
$(CCC_NF) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) $(ALL_CFLAGS) -o $@ if_python3.c
|
||||
$(CCC_NF) $(PYTHON3_CFLAGS) $(ALL_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
|
||||
|
||||
objects/if_ruby.o: if_ruby.c
|
||||
$(CCC_NF) $(RUBY_CFLAGS) $(ALL_CFLAGS) -o $@ if_ruby.c
|
||||
$(CCC_NF) $(RUBY_CFLAGS) $(ALL_CFLAGS) $(RUBY_CFLAGS_EXTRA) -o $@ if_ruby.c
|
||||
|
||||
objects/if_tcl.o: if_tcl.c
|
||||
$(CCC_NF) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ if_tcl.c
|
||||
$(CCC_NF) $(TCL_CFLAGS) $(ALL_CFLAGS) $(TCL_CFLAGS_EXTRA) -o $@ if_tcl.c
|
||||
|
||||
objects/indent.o: indent.c
|
||||
$(CCC) -o $@ indent.c
|
||||
@@ -3459,10 +3460,10 @@ objects/ops.o: ops.c
|
||||
$(CCC) -o $@ ops.c
|
||||
|
||||
objects/option.o: option.c optiondefs.h
|
||||
$(CCC_NF) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ option.c
|
||||
$(CCC_NF) $(ALL_IF_CFLAGS) $(ALL_CFLAGS) $(ALL_IF_CFLAGS_EXTRA) -o $@ option.c
|
||||
|
||||
objects/optionstr.o: optionstr.c
|
||||
$(CCC_NF) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ optionstr.c
|
||||
$(CCC_NF) $(ALL_IF_CFLAGS) $(ALL_CFLAGS) $(ALL_IF_CFLAGS_EXTRA) -o $@ optionstr.c
|
||||
|
||||
objects/os_qnx.o: os_qnx.c $(VIM_H_DEPENDENCIES)
|
||||
$(CCC) -o $@ os_qnx.c
|
||||
@@ -3921,7 +3922,7 @@ objects/highlight.o: highlight.c vim.h protodef.h auto/config.h feature.h \
|
||||
objects/if_cscope.o: if_cscope.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h termdefs.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h errors.h if_cscope.h
|
||||
proto.h globals.h errors.h
|
||||
objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h termdefs.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
|
||||
31
src/alloc.c
31
src/alloc.c
@@ -151,6 +151,7 @@ alloc(size_t size)
|
||||
return lalloc(size, TRUE);
|
||||
}
|
||||
|
||||
#if defined(FEAT_QUICKFIX) || defined(PROTO)
|
||||
/*
|
||||
* alloc() with an ID for alloc_fail().
|
||||
*/
|
||||
@@ -163,6 +164,7 @@ alloc_id(size_t size, alloc_id_T id UNUSED)
|
||||
#endif
|
||||
return lalloc(size, TRUE);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Allocate memory and set all bytes to zero.
|
||||
@@ -178,6 +180,7 @@ alloc_clear(size_t size)
|
||||
return p;
|
||||
}
|
||||
|
||||
#if defined(FEAT_SIGNS) || defined(PROTO)
|
||||
/*
|
||||
* Same as alloc_clear() but with allocation id for testing
|
||||
*/
|
||||
@@ -190,6 +193,7 @@ alloc_clear_id(size_t size, alloc_id_T id UNUSED)
|
||||
#endif
|
||||
return alloc_clear(size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Allocate memory like lalloc() and set all bytes to zero.
|
||||
@@ -224,7 +228,7 @@ lalloc(size_t size, int message)
|
||||
{
|
||||
// Don't hide this message
|
||||
emsg_silent = 0;
|
||||
iemsg(_("E341: Internal error: lalloc(0, )"));
|
||||
iemsg(_(e_internal_error_lalloc_zero));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -236,7 +240,7 @@ lalloc(size_t size, int message)
|
||||
// if some blocks are released call malloc again.
|
||||
for (;;)
|
||||
{
|
||||
// Handle three kind of systems:
|
||||
// Handle three kinds of systems:
|
||||
// 1. No check for available memory: Just return.
|
||||
// 2. Slow check for available memory: call mch_avail_mem() after
|
||||
// allocating KEEP_ROOM amount of memory.
|
||||
@@ -339,7 +343,7 @@ do_outofmem_msg(size_t size)
|
||||
// message fails, e.g. when setting v:errmsg.
|
||||
did_outofmem_msg = TRUE;
|
||||
|
||||
semsg(_("E342: Out of memory! (allocating %lu bytes)"), (long_u)size);
|
||||
semsg(_(e_out_of_memory_allocating_nr_bytes), (long_u)size);
|
||||
|
||||
if (starting == NO_SCREEN)
|
||||
// Not even finished with initializations and already out of
|
||||
@@ -648,6 +652,7 @@ ga_clear_strings(garray_T *gap)
|
||||
ga_clear(gap);
|
||||
}
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* Copy a growing array that contains a list of strings.
|
||||
*/
|
||||
@@ -682,6 +687,7 @@ ga_copy_strings(garray_T *from, garray_T *to)
|
||||
to->ga_len = from->ga_len;
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Initialize a growing array. Don't forget to set ga_itemsize and
|
||||
@@ -696,10 +702,10 @@ ga_init(garray_T *gap)
|
||||
}
|
||||
|
||||
void
|
||||
ga_init2(garray_T *gap, int itemsize, int growsize)
|
||||
ga_init2(garray_T *gap, size_t itemsize, int growsize)
|
||||
{
|
||||
ga_init(gap);
|
||||
gap->ga_itemsize = itemsize;
|
||||
gap->ga_itemsize = (int)itemsize;
|
||||
gap->ga_growsize = growsize;
|
||||
}
|
||||
|
||||
@@ -783,7 +789,7 @@ ga_concat_strings(garray_T *gap, char *sep)
|
||||
* When out of memory nothing changes and FAIL is returned.
|
||||
*/
|
||||
int
|
||||
ga_add_string(garray_T *gap, char_u *p)
|
||||
ga_copy_string(garray_T *gap, char_u *p)
|
||||
{
|
||||
char_u *cp = vim_strsave(p);
|
||||
|
||||
@@ -799,6 +805,19 @@ ga_add_string(garray_T *gap, char_u *p)
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add string "p" to "gap".
|
||||
* When out of memory "p" is freed and FAIL is returned.
|
||||
*/
|
||||
int
|
||||
ga_add_string(garray_T *gap, char_u *p)
|
||||
{
|
||||
if (ga_grow(gap, 1) == FAIL)
|
||||
return FAIL;
|
||||
((char_u **)(gap->ga_data))[gap->ga_len++] = p;
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Concatenate a string to a growarray which contains bytes.
|
||||
* When "s" is NULL does not do anything.
|
||||
|
||||
@@ -51,7 +51,7 @@ alist_clear(alist_T *al)
|
||||
void
|
||||
alist_init(alist_T *al)
|
||||
{
|
||||
ga_init2(&al->al_ga, (int)sizeof(aentry_T), 5);
|
||||
ga_init2(&al->al_ga, sizeof(aentry_T), 5);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -275,7 +275,7 @@ do_one_arg(char_u *str)
|
||||
static int
|
||||
get_arglist(garray_T *gap, char_u *str, int escaped)
|
||||
{
|
||||
ga_init2(gap, (int)sizeof(char_u *), 20);
|
||||
ga_init2(gap, sizeof(char_u *), 20);
|
||||
while (*str != NUL)
|
||||
{
|
||||
if (ga_grow(gap, 1) == FAIL)
|
||||
@@ -460,7 +460,7 @@ do_arglist(
|
||||
vim_regfree(regmatch.regprog);
|
||||
vim_free(p);
|
||||
if (!didone)
|
||||
semsg(_(e_nomatch2), ((char_u **)new_ga.ga_data)[i]);
|
||||
semsg(_(e_no_match_str_2), ((char_u **)new_ga.ga_data)[i]);
|
||||
}
|
||||
ga_clear(&new_ga);
|
||||
}
|
||||
@@ -471,7 +471,7 @@ do_arglist(
|
||||
ga_clear(&new_ga);
|
||||
if (i == FAIL || exp_count == 0)
|
||||
{
|
||||
emsg(_(e_nomatch));
|
||||
emsg(_(e_no_match));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -673,11 +673,11 @@ do_argfile(exarg_T *eap, int argn)
|
||||
if (argn < 0 || argn >= ARGCOUNT)
|
||||
{
|
||||
if (ARGCOUNT <= 1)
|
||||
emsg(_("E163: There is only one file to edit"));
|
||||
emsg(_(e_there_is_only_one_file_to_edit));
|
||||
else if (argn < 0)
|
||||
emsg(_("E164: Cannot go before first file"));
|
||||
emsg(_(e_cannot_go_before_first_file));
|
||||
else
|
||||
emsg(_("E165: Cannot go beyond last file"));
|
||||
emsg(_(e_cannot_go_beyond_last_file));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -839,7 +839,7 @@ ex_argdelete(exarg_T *eap)
|
||||
{
|
||||
if (curwin->w_arg_idx >= ARGCOUNT)
|
||||
{
|
||||
emsg(_("E610: No argument to delete"));
|
||||
emsg(_(e_no_argument_to_delete));
|
||||
return;
|
||||
}
|
||||
eap->line1 = eap->line2 = curwin->w_arg_idx + 1;
|
||||
@@ -850,7 +850,7 @@ ex_argdelete(exarg_T *eap)
|
||||
n = eap->line2 - eap->line1 + 1;
|
||||
if (*eap->arg != NUL)
|
||||
// Can't have both a range and an argument.
|
||||
emsg(_(e_invarg));
|
||||
emsg(_(e_invalid_argument));
|
||||
else if (n <= 0)
|
||||
{
|
||||
// Don't give an error for ":%argdel" if the list is empty.
|
||||
@@ -1129,7 +1129,7 @@ do_arg_all(
|
||||
else if (wpnext->w_frame->fr_parent
|
||||
!= curwin->w_frame->fr_parent)
|
||||
{
|
||||
emsg(_("E249: window layout changed unexpectedly"));
|
||||
emsg(_(e_window_layout_changed_unexpectedly));
|
||||
i = count;
|
||||
break;
|
||||
}
|
||||
|
||||
59
src/auto/configure
vendored
59
src/auto/configure
vendored
@@ -662,12 +662,14 @@ CHANNEL_SRC
|
||||
NETBEANS_OBJ
|
||||
NETBEANS_SRC
|
||||
RUBY_LIBS
|
||||
RUBY_CFLAGS_EXTRA
|
||||
RUBY_CFLAGS
|
||||
RUBY_PRO
|
||||
RUBY_OBJ
|
||||
RUBY_SRC
|
||||
vi_cv_path_ruby
|
||||
TCL_LIBS
|
||||
TCL_CFLAGS_EXTRA
|
||||
TCL_CFLAGS
|
||||
TCL_PRO
|
||||
TCL_OBJ
|
||||
@@ -675,15 +677,18 @@ TCL_SRC
|
||||
vi_cv_path_tcl
|
||||
PYTHON3_OBJ
|
||||
PYTHON3_SRC
|
||||
PYTHON3_CFLAGS_EXTRA
|
||||
PYTHON3_CFLAGS
|
||||
PYTHON3_LIBS
|
||||
vi_cv_path_python3
|
||||
PYTHON_OBJ
|
||||
PYTHON_SRC
|
||||
PYTHON_CFLAGS_EXTRA
|
||||
PYTHON_CFLAGS
|
||||
PYTHON_LIBS
|
||||
vi_cv_path_python
|
||||
PERL_LIBS
|
||||
PERL_CFLAGS_EXTRA
|
||||
PERL_CFLAGS
|
||||
PERL_PRO
|
||||
PERL_OBJ
|
||||
@@ -700,6 +705,7 @@ MZSCHEME_PRO
|
||||
MZSCHEME_OBJ
|
||||
MZSCHEME_SRC
|
||||
vi_cv_path_mzscheme
|
||||
LUA_CFLAGS_EXTRA
|
||||
LUA_CFLAGS
|
||||
LUA_LIBS
|
||||
LUA_PRO
|
||||
@@ -708,6 +714,7 @@ LUA_SRC
|
||||
vi_cv_path_plain_lua
|
||||
vi_cv_path_luajit
|
||||
vi_cv_path_lua
|
||||
XDIFF_OBJS_USED
|
||||
compiledby
|
||||
dogvimdiff
|
||||
dovimdiff
|
||||
@@ -5249,6 +5256,12 @@ esac
|
||||
|
||||
|
||||
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
has_eval=no
|
||||
else
|
||||
has_eval=yes
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-compiledby argument" >&5
|
||||
$as_echo_n "checking --with-compiledby argument... " >&6; }
|
||||
|
||||
@@ -5299,6 +5312,20 @@ else
|
||||
$as_echo "yes" >&6; }
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking diff feature" >&5
|
||||
$as_echo_n "checking diff feature... " >&6; }
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled in $features version" >&5
|
||||
$as_echo "disabled in $features version" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled" >&5
|
||||
$as_echo "enabled" >&6; }
|
||||
$as_echo "#define FEAT_DIFF 1" >>confdefs.h
|
||||
|
||||
XDIFF_OBJS_USED="\$(XDIFF_OBJS)"
|
||||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-luainterp argument" >&5
|
||||
$as_echo_n "checking --enable-luainterp argument... " >&6; }
|
||||
# Check whether --enable-luainterp was given.
|
||||
@@ -5312,7 +5339,7 @@ fi
|
||||
$as_echo "$enable_luainterp" >&6; }
|
||||
|
||||
if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
as_fn_error $? "cannot use Lua with tiny or small features" "$LINENO" 5
|
||||
fi
|
||||
|
||||
@@ -5658,6 +5685,7 @@ $as_echo "yes" >&6; }
|
||||
|
||||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
@@ -6081,7 +6109,7 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_perlinterp" >&5
|
||||
$as_echo "$enable_perlinterp" >&6; }
|
||||
if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
as_fn_error $? "cannot use Perl with tiny or small features" "$LINENO" 5
|
||||
fi
|
||||
|
||||
@@ -6273,6 +6301,7 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-pythoninterp argument" >&5
|
||||
$as_echo_n "checking --enable-pythoninterp argument... " >&6; }
|
||||
# Check whether --enable-pythoninterp was given.
|
||||
@@ -6285,7 +6314,7 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pythoninterp" >&5
|
||||
$as_echo "$enable_pythoninterp" >&6; }
|
||||
if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
as_fn_error $? "cannot use Python with tiny or small features" "$LINENO" 5
|
||||
fi
|
||||
|
||||
@@ -6623,6 +6652,7 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-python3interp argument" >&5
|
||||
$as_echo_n "checking --enable-python3interp argument... " >&6; }
|
||||
# Check whether --enable-python3interp was given.
|
||||
@@ -6635,7 +6665,7 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_python3interp" >&5
|
||||
$as_echo "$enable_python3interp" >&6; }
|
||||
if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
as_fn_error $? "cannot use Python with tiny or small features" "$LINENO" 5
|
||||
fi
|
||||
|
||||
@@ -6969,6 +6999,7 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
if test "$python_ok" = yes && test "$python3_ok" = yes; then
|
||||
$as_echo "#define DYNAMIC_PYTHON 1" >>confdefs.h
|
||||
|
||||
@@ -7549,6 +7580,7 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-rubyinterp argument" >&5
|
||||
$as_echo_n "checking --enable-rubyinterp argument... " >&6; }
|
||||
# Check whether --enable-rubyinterp was given.
|
||||
@@ -7561,7 +7593,7 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
|
||||
$as_echo "$enable_rubyinterp" >&6; }
|
||||
if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
as_fn_error $? "cannot use Ruby with tiny or small features" "$LINENO" 5
|
||||
fi
|
||||
|
||||
@@ -7712,6 +7744,7 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-cscope argument" >&5
|
||||
$as_echo_n "checking --enable-cscope argument... " >&6; }
|
||||
# Check whether --enable-cscope was given.
|
||||
@@ -7738,7 +7771,7 @@ else
|
||||
fi
|
||||
|
||||
if test "$enable_netbeans" = "yes"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use NetBeans with tiny or small features" >&5
|
||||
$as_echo "cannot use NetBeans with tiny or small features" >&6; }
|
||||
enable_netbeans="no"
|
||||
@@ -7761,7 +7794,7 @@ else
|
||||
fi
|
||||
|
||||
if test "$enable_channel" = "yes"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use channels with tiny or small features" >&5
|
||||
$as_echo "cannot use channels with tiny or small features" >&6; }
|
||||
enable_channel="no"
|
||||
@@ -8065,7 +8098,7 @@ else
|
||||
fi
|
||||
|
||||
if test "$enable_terminal" = "yes" || test "$enable_terminal" = "auto" -a "x$features" = "xhuge" ; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use terminal emulator with tiny or small features" >&5
|
||||
$as_echo "cannot use terminal emulator with tiny or small features" >&6; }
|
||||
enable_terminal="no"
|
||||
@@ -13024,8 +13057,14 @@ $as_echo "Defaulting to no" >&6; }
|
||||
enable_canberra="no"
|
||||
fi
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_canberra" >&5
|
||||
if test "$enable_canberra" = "yes" -a "$has_eval" = "no"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use sound with tiny or small features" >&5
|
||||
$as_echo "cannot use sound with tiny or small features" >&6; }
|
||||
enable_canberra="no"
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_canberra" >&5
|
||||
$as_echo "$enable_canberra" >&6; }
|
||||
fi
|
||||
fi
|
||||
if test "$enable_canberra" = "yes"; then
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
@@ -13040,7 +13079,7 @@ if test "$enable_canberra" = "yes"; then
|
||||
$as_echo_n "checking for libcanberra... " >&6; }
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
if `echo "$CFLAGS" | grep -v "$canberra_cflags" >/dev/null`; then
|
||||
if `echo "$CFLAGS" | grep -v "$canberra_cflags" 2>/dev/null`; then
|
||||
CFLAGS="$CFLAGS $canberra_cflags"
|
||||
fi
|
||||
LIBS="$LIBS $canberra_lib"
|
||||
|
||||
@@ -515,9 +515,9 @@ au_del_group(char_u *name)
|
||||
|
||||
i = au_find_group(name);
|
||||
if (i == AUGROUP_ERROR) // the group doesn't exist
|
||||
semsg(_("E367: No such group: \"%s\""), name);
|
||||
semsg(_(e_no_such_group_str), name);
|
||||
else if (i == current_augroup)
|
||||
emsg(_("E936: Cannot delete the current group"));
|
||||
emsg(_(e_cannot_delete_current_group));
|
||||
else
|
||||
{
|
||||
event_T event;
|
||||
@@ -580,7 +580,7 @@ do_augroup(char_u *arg, int del_group)
|
||||
if (del_group)
|
||||
{
|
||||
if (*arg == NUL)
|
||||
emsg(_(e_argreq));
|
||||
emsg(_(e_argument_required));
|
||||
else
|
||||
au_del_group(arg);
|
||||
}
|
||||
@@ -687,7 +687,7 @@ find_end_event(
|
||||
{
|
||||
if (arg[1] && !VIM_ISWHITE(arg[1]))
|
||||
{
|
||||
semsg(_("E215: Illegal character after *: %s"), arg);
|
||||
semsg(_(e_illegal_character_after_star_str), arg);
|
||||
return NULL;
|
||||
}
|
||||
pat = arg + 1;
|
||||
@@ -699,9 +699,9 @@ find_end_event(
|
||||
if ((int)event_name2nr(pat, &p) >= NUM_EVENTS)
|
||||
{
|
||||
if (have_group)
|
||||
semsg(_("E216: No such event: %s"), pat);
|
||||
semsg(_(e_no_such_event_str), pat);
|
||||
else
|
||||
semsg(_("E216: No such group or event: %s"), pat);
|
||||
semsg(_(e_no_such_group_or_event_str), pat);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -911,7 +911,7 @@ do_autocmd(exarg_T *eap, char_u *arg_in, int forceit)
|
||||
if (STRNCMP(cmd, "++once", 6) == 0 && VIM_ISWHITE(cmd[6]))
|
||||
{
|
||||
if (once)
|
||||
semsg(_(e_duparg2), "++once");
|
||||
semsg(_(e_duplicate_argument_str), "++once");
|
||||
once = TRUE;
|
||||
cmd = skipwhite(cmd + 6);
|
||||
}
|
||||
@@ -920,7 +920,7 @@ do_autocmd(exarg_T *eap, char_u *arg_in, int forceit)
|
||||
if ((STRNCMP(cmd, "++nested", 8) == 0 && VIM_ISWHITE(cmd[8])))
|
||||
{
|
||||
if (nested)
|
||||
semsg(_(e_duparg2), "++nested");
|
||||
semsg(_(e_duplicate_argument_str), "++nested");
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 8);
|
||||
}
|
||||
@@ -929,7 +929,7 @@ do_autocmd(exarg_T *eap, char_u *arg_in, int forceit)
|
||||
if (STRNCMP(cmd, "nested", 6) == 0 && VIM_ISWHITE(cmd[6]))
|
||||
{
|
||||
if (nested)
|
||||
semsg(_(e_duparg2), "nested");
|
||||
semsg(_(e_duplicate_argument_str), "nested");
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 6);
|
||||
}
|
||||
@@ -1205,8 +1205,7 @@ do_autocmd_event(
|
||||
if (is_buflocal && (buflocal_nr == 0
|
||||
|| buflist_findnr(buflocal_nr) == NULL))
|
||||
{
|
||||
semsg(_("E680: <buffer=%d>: invalid buffer number "),
|
||||
buflocal_nr);
|
||||
semsg(_(e_buffer_nr_invalid_buffer_number), buflocal_nr);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -1329,7 +1328,7 @@ do_doautocmd(
|
||||
|
||||
if (*arg == '*')
|
||||
{
|
||||
emsg(_("E217: Can't execute autocommands for ALL events"));
|
||||
emsg(_(e_cant_execute_autocommands_for_all_events));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -1425,8 +1424,6 @@ ex_doautoall(exarg_T *eap)
|
||||
if (call_do_modelines && did_aucmd)
|
||||
do_modelines(0);
|
||||
}
|
||||
|
||||
check_cursor(); // just in case lines got deleted
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1521,7 +1518,10 @@ aucmd_prepbuf(
|
||||
p_acd = FALSE;
|
||||
#endif
|
||||
|
||||
// no redrawing and don't set the window title
|
||||
++RedrawingDisabled;
|
||||
(void)win_split_ins(0, WSP_TOP, aucmd_win, 0);
|
||||
--RedrawingDisabled;
|
||||
(void)win_comp_pos(); // recompute window positions
|
||||
p_ea = save_ea;
|
||||
#ifdef FEAT_AUTOCHDIR
|
||||
@@ -1533,6 +1533,10 @@ aucmd_prepbuf(
|
||||
curbuf = buf;
|
||||
aco->new_curwin_id = curwin->w_id;
|
||||
set_bufref(&aco->new_curbuf, curbuf);
|
||||
|
||||
// disable the Visual area, the position may be invalid in another buffer
|
||||
aco->save_VIsual_active = VIsual_active;
|
||||
VIsual_active = FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1657,6 +1661,11 @@ win_found:
|
||||
check_cursor();
|
||||
}
|
||||
}
|
||||
|
||||
check_cursor(); // just in case lines got deleted
|
||||
VIsual_active = aco->save_VIsual_active;
|
||||
if (VIsual_active)
|
||||
check_pos(curbuf, &VIsual);
|
||||
}
|
||||
|
||||
static int autocmd_nested = FALSE;
|
||||
@@ -1942,7 +1951,7 @@ apply_autocmds_group(
|
||||
*/
|
||||
if (nesting == 10)
|
||||
{
|
||||
emsg(_("E218: autocommand nesting too deep"));
|
||||
emsg(_(e_autocommand_nesting_too_deep));
|
||||
goto BYPASS_AU;
|
||||
}
|
||||
|
||||
|
||||
13
src/beval.c
13
src/beval.c
@@ -259,6 +259,8 @@ general_beval_cb(BalloonEval *beval, int state UNUSED)
|
||||
: wp->w_buffer->b_p_bexpr;
|
||||
if (*bexpr != NUL)
|
||||
{
|
||||
sctx_T save_sctx = current_sctx;
|
||||
|
||||
// Convert window pointer to number.
|
||||
for (cw = firstwin; cw != wp; cw = cw->w_next)
|
||||
++winnr;
|
||||
@@ -284,6 +286,16 @@ general_beval_cb(BalloonEval *beval, int state UNUSED)
|
||||
++sandbox;
|
||||
++textwinlock;
|
||||
|
||||
if (bexpr == p_bexpr)
|
||||
{
|
||||
sctx_T *sp = get_option_sctx("balloonexpr");
|
||||
|
||||
if (sp != NULL)
|
||||
current_sctx = *sp;
|
||||
}
|
||||
else
|
||||
current_sctx = curbuf->b_p_script_ctx[BV_BEXPR];
|
||||
|
||||
vim_free(result);
|
||||
result = eval_to_string(bexpr, TRUE);
|
||||
|
||||
@@ -300,6 +312,7 @@ general_beval_cb(BalloonEval *beval, int state UNUSED)
|
||||
if (use_sandbox)
|
||||
--sandbox;
|
||||
--textwinlock;
|
||||
current_sctx = save_sctx;
|
||||
|
||||
set_vim_var_string(VV_BEVAL_TEXT, NULL, -1);
|
||||
if (result != NULL && result[0] != NUL)
|
||||
|
||||
20
src/blob.c
20
src/blob.c
@@ -350,7 +350,7 @@ blob_slice_or_index(
|
||||
}
|
||||
else
|
||||
{
|
||||
semsg(_(e_blobidx), n1);
|
||||
semsg(_(e_blob_index_out_of_range_nr), n1);
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
@@ -366,7 +366,7 @@ check_blob_index(long bloblen, varnumber_T n1, int quiet)
|
||||
if (n1 < 0 || n1 > bloblen)
|
||||
{
|
||||
if (!quiet)
|
||||
semsg(_(e_blobidx), n1);
|
||||
semsg(_(e_blob_index_out_of_range_nr), n1);
|
||||
return FAIL;
|
||||
}
|
||||
return OK;
|
||||
@@ -381,7 +381,7 @@ check_blob_range(long bloblen, varnumber_T n1, varnumber_T n2, int quiet)
|
||||
if (n2 < 0 || n2 >= bloblen || n2 < n1)
|
||||
{
|
||||
if (!quiet)
|
||||
semsg(_(e_blobidx), n2);
|
||||
semsg(_(e_blob_index_out_of_range_nr), n2);
|
||||
return FAIL;
|
||||
}
|
||||
return OK;
|
||||
@@ -399,7 +399,7 @@ blob_set_range(blob_T *dest, long n1, long n2, typval_T *src)
|
||||
|
||||
if (n2 - n1 + 1 != blob_len(src->vval.v_blob))
|
||||
{
|
||||
emsg(_("E972: Blob value does not have the right number of bytes"));
|
||||
emsg(_(e_blob_value_does_not_have_right_number_of_bytes));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -465,7 +465,7 @@ blob_remove(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg)
|
||||
idx = len + idx;
|
||||
if (idx < 0 || idx >= len)
|
||||
{
|
||||
semsg(_(e_blobidx), idx);
|
||||
semsg(_(e_blob_index_out_of_range_nr), idx);
|
||||
return;
|
||||
}
|
||||
if (argvars[2].v_type == VAR_UNKNOWN)
|
||||
@@ -487,7 +487,7 @@ blob_remove(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg)
|
||||
end = len + end;
|
||||
if (end >= len || idx > end)
|
||||
{
|
||||
semsg(_(e_blobidx), end);
|
||||
semsg(_(e_blob_index_out_of_range_nr), end);
|
||||
return;
|
||||
}
|
||||
newblob = blob_alloc();
|
||||
@@ -563,7 +563,7 @@ blob_filter_map(
|
||||
if (newtv.v_type != VAR_NUMBER && newtv.v_type != VAR_BOOL)
|
||||
{
|
||||
clear_tv(&newtv);
|
||||
emsg(_(e_invalblob));
|
||||
emsg(_(e_invalid_operation_for_blob));
|
||||
break;
|
||||
}
|
||||
if (filtermap != FILTERMAP_FILTER)
|
||||
@@ -614,7 +614,7 @@ blob_insert_func(typval_T *argvars, typval_T *rettv)
|
||||
return; // type error; errmsg already given
|
||||
if (before < 0 || before > len)
|
||||
{
|
||||
semsg(_(e_invarg2), tv_get_string(&argvars[2]));
|
||||
semsg(_(e_invalid_argument_str), tv_get_string(&argvars[2]));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -623,7 +623,7 @@ blob_insert_func(typval_T *argvars, typval_T *rettv)
|
||||
return;
|
||||
if (val < 0 || val > 255)
|
||||
{
|
||||
semsg(_(e_invarg2), tv_get_string(&argvars[1]));
|
||||
semsg(_(e_invalid_argument_str), tv_get_string(&argvars[1]));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -660,7 +660,7 @@ blob_reduce(
|
||||
{
|
||||
if (b == NULL || b->bv_ga.ga_len == 0)
|
||||
{
|
||||
semsg(_(e_reduceempty), "Blob");
|
||||
semsg(_(e_reduce_of_an_empty_str_with_no_initial_value), "Blob");
|
||||
return;
|
||||
}
|
||||
initial.v_type = VAR_NUMBER;
|
||||
|
||||
@@ -416,7 +416,7 @@ bf_key_init(
|
||||
keylen = (int)STRLEN(key) / 2;
|
||||
if (keylen == 0)
|
||||
{
|
||||
iemsg(_("E831: bf_key_init() called with empty password"));
|
||||
iemsg(_(e_bf_key_init_called_with_empty_password));
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < keylen; i++)
|
||||
@@ -519,7 +519,7 @@ bf_self_test(void)
|
||||
// warning.
|
||||
if (ui != 0xffffffffUL || ui + 1 != 0) {
|
||||
err++;
|
||||
emsg(_("E820: sizeof(uint32_t) != 4"));
|
||||
emsg(_(e_sizeof_uint32_isnot_four));
|
||||
}
|
||||
|
||||
if (!bf_check_tables(pax_init, sbx_init, 0x6ffa520a))
|
||||
@@ -540,7 +540,7 @@ bf_self_test(void)
|
||||
if (memcmp(bk.uc, bf_test_data[i].cryptxt, 8) != 0)
|
||||
{
|
||||
if (err == 0 && memcmp(bk.uc, bf_test_data[i].badcryptxt, 8) == 0)
|
||||
emsg(_("E817: Blowfish big/little endian use wrong"));
|
||||
emsg(_(e_blowfish_big_little_endian_use_wrong));
|
||||
err++;
|
||||
}
|
||||
}
|
||||
@@ -651,7 +651,7 @@ crypt_blowfish_init(
|
||||
state->method_state = bfs;
|
||||
|
||||
// "blowfish" uses a 64 byte buffer, causing it to repeat 8 byte groups 8
|
||||
// times. "blowfish2" uses a 8 byte buffer to avoid repeating.
|
||||
// times. "blowfish2" uses an 8 byte buffer to avoid repeating.
|
||||
bfs->cfb_len = state->method_nr == CRYPT_M_BF ? BF_MAX_CFB_LEN : BF_BLOCK;
|
||||
|
||||
if (blowfish_self_test() == FAIL)
|
||||
@@ -672,12 +672,12 @@ blowfish_self_test(void)
|
||||
{
|
||||
if (sha256_self_test() == FAIL)
|
||||
{
|
||||
emsg(_("E818: sha256 test failed"));
|
||||
emsg(_(e_sha256_test_failed));
|
||||
return FAIL;
|
||||
}
|
||||
if (bf_self_test() == FAIL)
|
||||
{
|
||||
emsg(_("E819: Blowfish test failed"));
|
||||
emsg(_(e_blowfish_test_failed));
|
||||
return FAIL;
|
||||
}
|
||||
return OK;
|
||||
|
||||
57
src/buffer.c
57
src/buffer.c
@@ -63,7 +63,6 @@ static void clear_wininfo(buf_T *buf);
|
||||
static char *msg_loclist = N_("[Location List]");
|
||||
static char *msg_qflist = N_("[Quickfix List]");
|
||||
#endif
|
||||
static char *e_auabort = N_("E855: Autocommands caused command to abort");
|
||||
|
||||
// Number of times free_buffer() was called.
|
||||
static int buf_free_count = 0;
|
||||
@@ -139,6 +138,7 @@ read_buffer(
|
||||
return retval;
|
||||
}
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* Ensure buffer "buf" is loaded. Does not trigger the swap-exists action.
|
||||
*/
|
||||
@@ -155,6 +155,7 @@ buffer_ensure_loaded(buf_T *buf)
|
||||
aucmd_restbuf(&aco);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Open current buffer, that is: open the memfile and read the file into
|
||||
@@ -427,7 +428,7 @@ buf_hashtab_add(buf_T *buf)
|
||||
{
|
||||
sprintf((char *)buf->b_key, "%x", buf->b_fnum);
|
||||
if (hash_add(&buf_hashtab, buf->b_key) == FAIL)
|
||||
emsg(_("E931: Buffer cannot be registered"));
|
||||
emsg(_(e_buffer_cannot_be_registered));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -461,8 +462,7 @@ can_unload_buffer(buf_T *buf)
|
||||
}
|
||||
}
|
||||
if (!can_unload)
|
||||
semsg(_("E937: Attempt to delete a buffer that is in use: %s"),
|
||||
buf->b_fname);
|
||||
semsg(_(e_attempt_to_delete_buffer_that_is_in_use_str), buf->b_fname);
|
||||
return can_unload;
|
||||
}
|
||||
|
||||
@@ -594,7 +594,7 @@ close_buffer(
|
||||
{
|
||||
// Autocommands deleted the buffer.
|
||||
aucmd_abort:
|
||||
emsg(_(e_auabort));
|
||||
emsg(_(e_autocommands_caused_command_to_abort));
|
||||
return FALSE;
|
||||
}
|
||||
--buf->b_locked;
|
||||
@@ -1610,7 +1610,7 @@ do_bufdel(
|
||||
if (addr_count == 2)
|
||||
{
|
||||
if (*arg) // both range and argument is not allowed
|
||||
return ex_errmsg(e_trailing_arg, arg);
|
||||
return ex_errmsg(e_trailing_characters_str, arg);
|
||||
bnr = start_bnr;
|
||||
}
|
||||
else // addr_count == 1
|
||||
@@ -1660,11 +1660,11 @@ do_bufdel(
|
||||
if (deleted == 0)
|
||||
{
|
||||
if (command == DOBUF_UNLOAD)
|
||||
STRCPY(IObuff, _("E515: No buffers were unloaded"));
|
||||
STRCPY(IObuff, _(e_no_buffers_were_unloaded));
|
||||
else if (command == DOBUF_DEL)
|
||||
STRCPY(IObuff, _("E516: No buffers were deleted"));
|
||||
STRCPY(IObuff, _(e_no_buffers_were_deleted));
|
||||
else
|
||||
STRCPY(IObuff, _("E517: No buffers were wiped out"));
|
||||
STRCPY(IObuff, _(e_no_buffers_were_wiped_out));
|
||||
errormsg = (char *)IObuff;
|
||||
}
|
||||
else if (deleted >= p_report)
|
||||
@@ -1744,7 +1744,11 @@ set_curbuf(buf_T *buf, int action)
|
||||
{
|
||||
win_T *previouswin = curwin;
|
||||
|
||||
if (prevbuf == curbuf)
|
||||
// Do not sync when in Insert mode and the buffer is open in
|
||||
// another window, might be a timer doing something in another
|
||||
// window.
|
||||
if (prevbuf == curbuf
|
||||
&& ((State & INSERT) == 0 || curbuf->b_nwindows <= 1))
|
||||
u_sync(FALSE);
|
||||
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
|
||||
unload ? action : (action == DOBUF_GOTO
|
||||
@@ -1823,7 +1827,7 @@ enter_buffer(buf_T *buf)
|
||||
if (curbuf->b_ml.ml_mfp == NULL) // need to load the file
|
||||
{
|
||||
// If there is no filetype, allow for detecting one. Esp. useful for
|
||||
// ":ball" used in a autocommand. If there already is a filetype we
|
||||
// ":ball" used in an autocommand. If there already is a filetype we
|
||||
// might prefer to keep it.
|
||||
if (*curbuf->b_p_ft == NUL)
|
||||
did_filetype = FALSE;
|
||||
@@ -1905,7 +1909,7 @@ no_write_message(void)
|
||||
{
|
||||
#ifdef FEAT_TERMINAL
|
||||
if (term_job_running(curbuf->b_term))
|
||||
emsg(_("E948: Job still running (add ! to end the job)"));
|
||||
emsg(_(e_job_still_running_add_bang_to_end_the_job));
|
||||
else
|
||||
#endif
|
||||
emsg(_(e_no_write_since_last_change_add_bang_to_override));
|
||||
@@ -1916,7 +1920,7 @@ no_write_message_nobang(buf_T *buf UNUSED)
|
||||
{
|
||||
#ifdef FEAT_TERMINAL
|
||||
if (term_job_running(buf->b_term))
|
||||
emsg(_("E948: Job still running"));
|
||||
emsg(_(e_job_still_running));
|
||||
else
|
||||
#endif
|
||||
emsg(_(e_no_write_since_last_change));
|
||||
@@ -2269,8 +2273,9 @@ free_buf_options(
|
||||
#endif
|
||||
#ifdef FEAT_CRYPT
|
||||
# ifdef FEAT_SODIUM
|
||||
if (buf->b_p_key != NULL && (crypt_get_method_nr(buf) == CRYPT_M_SOD))
|
||||
sodium_munlock(buf->b_p_key, STRLEN(buf->b_p_key));
|
||||
if ((buf->b_p_key != NULL) && (*buf->b_p_key != NUL) &&
|
||||
(crypt_get_method_nr(buf) == CRYPT_M_SOD))
|
||||
crypt_sodium_munlock(buf->b_p_key, STRLEN(buf->b_p_key));
|
||||
# endif
|
||||
clear_string_option(&buf->b_p_key);
|
||||
#endif
|
||||
@@ -4157,7 +4162,7 @@ build_stl_str_hl(
|
||||
tv.vval.v_number = wp->w_id;
|
||||
set_var((char_u *)"g:statusline_winid", &tv, FALSE);
|
||||
|
||||
usefmt = eval_to_string_safe(fmt + 2, use_sandbox);
|
||||
usefmt = eval_to_string_safe(fmt + 2, use_sandbox, FALSE);
|
||||
if (usefmt == NULL)
|
||||
usefmt = fmt;
|
||||
|
||||
@@ -4541,7 +4546,7 @@ build_stl_str_hl(
|
||||
if (curwin != save_curwin)
|
||||
VIsual_active = FALSE;
|
||||
|
||||
str = eval_to_string_safe(p, use_sandbox);
|
||||
str = eval_to_string_safe(p, use_sandbox, FALSE);
|
||||
|
||||
curwin = save_curwin;
|
||||
curbuf = save_curbuf;
|
||||
@@ -4610,15 +4615,7 @@ build_stl_str_hl(
|
||||
|
||||
case STL_VIRTCOL:
|
||||
case STL_VIRTCOL_ALT:
|
||||
// In list mode virtcol needs to be recomputed
|
||||
virtcol = wp->w_virtcol;
|
||||
if (wp->w_p_list && wp->w_lcs_chars.tab1 == NUL)
|
||||
{
|
||||
wp->w_p_list = FALSE;
|
||||
getvcol(wp, &wp->w_cursor, NULL, &virtcol, NULL);
|
||||
wp->w_p_list = TRUE;
|
||||
}
|
||||
++virtcol;
|
||||
virtcol = wp->w_virtcol + 1;
|
||||
// Don't display %V if it's the same as %c.
|
||||
if (opt == STL_VIRTCOL_ALT
|
||||
&& (virtcol == (colnr_T)(!(State & INSERT) && empty_line
|
||||
@@ -5031,7 +5028,7 @@ build_stl_str_hl(
|
||||
sp->userhl = 0;
|
||||
}
|
||||
|
||||
// When inside update_screen we do not want redrawing a stausline, ruler,
|
||||
// When inside update_screen we do not want redrawing a statusline, ruler,
|
||||
// title, etc. to trigger another redraw, it may cause an endless loop.
|
||||
if (updating_screen)
|
||||
{
|
||||
@@ -5611,6 +5608,7 @@ bt_prompt(buf_T *buf)
|
||||
return buf != NULL && buf->b_p_bt[0] == 'p' && buf->b_p_bt[1] == 'r';
|
||||
}
|
||||
|
||||
#if defined(FEAT_PROP_POPUP) || defined(PROTO)
|
||||
/*
|
||||
* Return TRUE if "buf" is a buffer for a popup window.
|
||||
*/
|
||||
@@ -5620,6 +5618,7 @@ bt_popup(buf_T *buf)
|
||||
return buf != NULL && buf->b_p_bt != NULL
|
||||
&& buf->b_p_bt[0] == 'p' && buf->b_p_bt[1] == 'o';
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Return TRUE if "buf" is a "nofile", "acwrite", "terminal" or "prompt"
|
||||
@@ -5634,6 +5633,7 @@ bt_nofilename(buf_T *buf)
|
||||
|| buf->b_p_bt[0] == 'p');
|
||||
}
|
||||
|
||||
#if defined(FEAT_QUICKFIX) || defined(PROTO)
|
||||
/*
|
||||
* Return TRUE if "buf" has 'buftype' set to "nofile".
|
||||
*/
|
||||
@@ -5642,6 +5642,7 @@ bt_nofile(buf_T *buf)
|
||||
{
|
||||
return buf != NULL && buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f';
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Return TRUE if "buf" is a "nowrite", "nofile", "terminal" or "prompt"
|
||||
@@ -5661,7 +5662,7 @@ bt_dontwrite_msg(buf_T *buf)
|
||||
{
|
||||
if (bt_dontwrite(buf))
|
||||
{
|
||||
emsg(_("E382: Cannot write, 'buftype' option is set"));
|
||||
emsg(_(e_cannot_write_buftype_option_is_set));
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
@@ -667,7 +667,6 @@ buf_write(
|
||||
int prev_got_int = got_int;
|
||||
int checking_conversion;
|
||||
int file_readonly = FALSE; // overwritten file is read-only
|
||||
static char *err_readonly = "is read-only (cannot override: \"W\" in 'cpoptions')";
|
||||
#if defined(UNIX) // XXX fix me sometime?
|
||||
int made_writable = FALSE; // 'w' bit has been set
|
||||
#endif
|
||||
@@ -701,7 +700,7 @@ buf_write(
|
||||
{
|
||||
// This can happen during startup when there is a stray "w" in the
|
||||
// vimrc file.
|
||||
emsg(_(e_emptybuf));
|
||||
emsg(_(e_empty_buffer));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -897,7 +896,7 @@ buf_write(
|
||||
--no_wait_return;
|
||||
msg_scroll = msg_save;
|
||||
if (nofile_err)
|
||||
emsg(_("E676: No matching autocommands for acwrite buffer"));
|
||||
emsg(_(e_no_matching_autocommands_for_acwrite_buffer));
|
||||
|
||||
if (nofile_err
|
||||
#ifdef FEAT_EVAL
|
||||
@@ -932,7 +931,7 @@ buf_write(
|
||||
#ifdef FEAT_EVAL
|
||||
if (!aborting())
|
||||
#endif
|
||||
emsg(_("E203: Autocommands deleted or unloaded buffer to be written"));
|
||||
emsg(_(e_autocommands_deleted_or_unloaded_buffer_to_be_written));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -953,7 +952,7 @@ buf_write(
|
||||
{
|
||||
--no_wait_return;
|
||||
msg_scroll = msg_save;
|
||||
emsg(_("E204: Autocommand changed number of lines in unexpected way"));
|
||||
emsg(_(e_autocommands_changed_number_of_lines_in_unexpected_way));
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
@@ -995,7 +994,7 @@ buf_write(
|
||||
else
|
||||
{
|
||||
errnum = (char_u *)"E656: ";
|
||||
errmsg = (char_u *)_("NetBeans disallows writes of unmodified buffers");
|
||||
errmsg = (char_u *)_(e_netbeans_disallows_writes_of_unmodified_buffers);
|
||||
buffer = NULL;
|
||||
goto fail;
|
||||
}
|
||||
@@ -1003,7 +1002,7 @@ buf_write(
|
||||
else
|
||||
{
|
||||
errnum = (char_u *)"E657: ";
|
||||
errmsg = (char_u *)_("Partial writes disallowed for NetBeans buffers");
|
||||
errmsg = (char_u *)_(e_partial_writes_disallowed_for_netbeans_buffers);
|
||||
buffer = NULL;
|
||||
goto fail;
|
||||
}
|
||||
@@ -1050,13 +1049,13 @@ buf_write(
|
||||
if (S_ISDIR(st_old.st_mode))
|
||||
{
|
||||
errnum = (char_u *)"E502: ";
|
||||
errmsg = (char_u *)_("is a directory");
|
||||
errmsg = (char_u *)_(e_is_a_directory);
|
||||
goto fail;
|
||||
}
|
||||
if (mch_nodetype(fname) != NODE_WRITABLE)
|
||||
{
|
||||
errnum = (char_u *)"E503: ";
|
||||
errmsg = (char_u *)_("is not a file or writable device");
|
||||
errmsg = (char_u *)_(e_is_not_file_or_writable_device);
|
||||
goto fail;
|
||||
}
|
||||
// It's a device of some kind (or a fifo) which we can write to
|
||||
@@ -1072,7 +1071,7 @@ buf_write(
|
||||
if (c == NODE_OTHER)
|
||||
{
|
||||
errnum = (char_u *)"E503: ";
|
||||
errmsg = (char_u *)_("is not a file or writable device");
|
||||
errmsg = (char_u *)_(e_is_not_file_or_writable_device);
|
||||
goto fail;
|
||||
}
|
||||
if (c == NODE_WRITABLE)
|
||||
@@ -1083,7 +1082,7 @@ buf_write(
|
||||
if (!p_odev)
|
||||
{
|
||||
errnum = (char_u *)"E796: ";
|
||||
errmsg = (char_u *)_("writing to device disabled with 'opendevice' option");
|
||||
errmsg = (char_u *)_(e_writing_to_device_disabled_with_opendevice_option);
|
||||
goto fail;
|
||||
}
|
||||
# endif
|
||||
@@ -1099,7 +1098,7 @@ buf_write(
|
||||
else if (mch_isdir(fname))
|
||||
{
|
||||
errnum = (char_u *)"E502: ";
|
||||
errmsg = (char_u *)_("is a directory");
|
||||
errmsg = (char_u *)_(e_is_a_directory);
|
||||
goto fail;
|
||||
}
|
||||
if (overwriting)
|
||||
@@ -1118,12 +1117,12 @@ buf_write(
|
||||
if (vim_strchr(p_cpo, CPO_FWRITE) != NULL)
|
||||
{
|
||||
errnum = (char_u *)"E504: ";
|
||||
errmsg = (char_u *)_(err_readonly);
|
||||
errmsg = (char_u *)_(e_is_read_only_cannot_override_W_in_cpoptions);
|
||||
}
|
||||
else
|
||||
{
|
||||
errnum = (char_u *)"E505: ";
|
||||
errmsg = (char_u *)_("is read-only (add ! to override)");
|
||||
errmsg = (char_u *)_(e_is_read_only_add_bang_to_override);
|
||||
}
|
||||
goto fail;
|
||||
}
|
||||
@@ -1477,21 +1476,21 @@ buf_write(
|
||||
{
|
||||
if (buf_write_bytes(&write_info) == FAIL)
|
||||
{
|
||||
errmsg = (char_u *)_("E506: Can't write to backup file (add ! to override)");
|
||||
errmsg = (char_u *)_(e_canot_write_to_backup_file_add_bang_to_override);
|
||||
break;
|
||||
}
|
||||
ui_breakcheck();
|
||||
if (got_int)
|
||||
{
|
||||
errmsg = (char_u *)_(e_interr);
|
||||
errmsg = (char_u *)_(e_interrupted);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (close(bfd) < 0 && errmsg == NULL)
|
||||
errmsg = (char_u *)_("E507: Close error for backup file (add ! to override)");
|
||||
errmsg = (char_u *)_(e_close_error_for_backup_file_add_bang_to_write_anyway);
|
||||
if (write_info.bw_len < 0)
|
||||
errmsg = (char_u *)_("E508: Can't read file for backup (add ! to override)");
|
||||
errmsg = (char_u *)_(e_cant_read_file_for_backup_add_bang_to_write_anyway);
|
||||
#ifdef UNIX
|
||||
set_file_time(backup, st_old.st_atime, st_old.st_mtime);
|
||||
#endif
|
||||
@@ -1513,7 +1512,7 @@ buf_write(
|
||||
vim_free(copybuf);
|
||||
|
||||
if (backup == NULL && errmsg == NULL)
|
||||
errmsg = (char_u *)_("E509: Cannot create backup file (add ! to override)");
|
||||
errmsg = (char_u *)_(e_cannot_create_backup_file_add_bang_to_write_anyway);
|
||||
// ignore errors when forceit is TRUE
|
||||
if ((some_error || errmsg != NULL) && !forceit)
|
||||
{
|
||||
@@ -1536,7 +1535,7 @@ buf_write(
|
||||
if (file_readonly && vim_strchr(p_cpo, CPO_FWRITE) != NULL)
|
||||
{
|
||||
errnum = (char_u *)"E504: ";
|
||||
errmsg = (char_u *)_(err_readonly);
|
||||
errmsg = (char_u *)_(e_is_read_only_cannot_override_W_in_cpoptions);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -1608,7 +1607,7 @@ buf_write(
|
||||
}
|
||||
if (backup == NULL && !forceit)
|
||||
{
|
||||
errmsg = (char_u *)_("E510: Can't make backup file (add ! to override)");
|
||||
errmsg = (char_u *)_(e_cant_make_backup_file_add_bang_to_write_anyway);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
@@ -1650,7 +1649,7 @@ buf_write(
|
||||
ml_preserve(buf, FALSE);
|
||||
if (got_int)
|
||||
{
|
||||
errmsg = (char_u *)_(e_interr);
|
||||
errmsg = (char_u *)_(e_interrupted);
|
||||
goto restore_backup;
|
||||
}
|
||||
}
|
||||
@@ -1746,7 +1745,7 @@ buf_write(
|
||||
wfname = vim_tempname('w', FALSE);
|
||||
if (wfname == NULL) // Can't write without a tempfile!
|
||||
{
|
||||
errmsg = (char_u *)_("E214: Can't find temp file for writing");
|
||||
errmsg = (char_u *)_(e_cant_find_temp_file_for_writing);
|
||||
goto restore_backup;
|
||||
}
|
||||
}
|
||||
@@ -1764,7 +1763,7 @@ buf_write(
|
||||
{
|
||||
if (!forceit)
|
||||
{
|
||||
errmsg = (char_u *)_("E213: Cannot convert (add ! to write without conversion)");
|
||||
errmsg = (char_u *)_(e_cannot_convert_add_bang_to_write_without_conversion);
|
||||
goto restore_backup;
|
||||
}
|
||||
notconverted = TRUE;
|
||||
@@ -1821,11 +1820,12 @@ buf_write(
|
||||
|| (mch_lstat((char *)fname, &st) == 0
|
||||
&& (st.st_dev != st_old.st_dev
|
||||
|| st.st_ino != st_old.st_ino)))
|
||||
errmsg = (char_u *)_("E166: Can't open linked file for writing");
|
||||
errmsg =
|
||||
(char_u *)_(e_cant_open_linked_file_for_writing);
|
||||
else
|
||||
#endif
|
||||
{
|
||||
errmsg = (char_u *)_("E212: Can't open file for writing");
|
||||
errmsg = (char_u *)_(e_cant_open_file_for_writing);
|
||||
if (forceit && vim_strchr(p_cpo, CPO_FWRITE) == NULL
|
||||
&& perm >= 0)
|
||||
{
|
||||
@@ -1902,7 +1902,7 @@ restore_backup:
|
||||
&& st.st_ino != st_old.st_ino)
|
||||
{
|
||||
close(fd);
|
||||
errmsg = (char_u *)_("E949: File changed while writing");
|
||||
errmsg = (char_u *)_(e_file_changed_while_writing);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
@@ -2178,7 +2178,7 @@ restore_backup:
|
||||
// If the 'fsync' option is FALSE, don't fsync(). Useful for laptops.
|
||||
if (p_fs && vim_fsync(fd) != 0 && !device)
|
||||
{
|
||||
errmsg = (char_u *)_(e_fsync);
|
||||
errmsg = (char_u *)_(e_fsync_failed);
|
||||
end = 0;
|
||||
}
|
||||
#endif
|
||||
@@ -2228,7 +2228,7 @@ restore_backup:
|
||||
#endif
|
||||
if (close(fd) != 0)
|
||||
{
|
||||
errmsg = (char_u *)_("E512: Close failed");
|
||||
errmsg = (char_u *)_(e_close_failed);
|
||||
end = 0;
|
||||
}
|
||||
|
||||
@@ -2285,19 +2285,19 @@ restore_backup:
|
||||
if (write_info.bw_conv_error)
|
||||
{
|
||||
if (write_info.bw_conv_error_lnum == 0)
|
||||
errmsg = (char_u *)_("E513: write error, conversion failed (make 'fenc' empty to override)");
|
||||
errmsg = (char_u *)_(e_write_error_conversion_failed_make_fenc_empty_to_override);
|
||||
else
|
||||
{
|
||||
errmsg_allocated = TRUE;
|
||||
errmsg = alloc(300);
|
||||
vim_snprintf((char *)errmsg, 300, _("E513: write error, conversion failed in line %ld (make 'fenc' empty to override)"),
|
||||
vim_snprintf((char *)errmsg, 300, _(e_write_error_conversion_failed_in_line_nr_make_fenc_empty_to_override),
|
||||
(long)write_info.bw_conv_error_lnum);
|
||||
}
|
||||
}
|
||||
else if (got_int)
|
||||
errmsg = (char_u *)_(e_interr);
|
||||
errmsg = (char_u *)_(e_interrupted);
|
||||
else
|
||||
errmsg = (char_u *)_("E514: write error (file system full?)");
|
||||
errmsg = (char_u *)_(e_write_error_file_system_full);
|
||||
}
|
||||
|
||||
// If we have a backup file, try to put it in place of the new file,
|
||||
@@ -2315,7 +2315,7 @@ restore_backup:
|
||||
// know we got the message.
|
||||
if (got_int)
|
||||
{
|
||||
msg(_(e_interr));
|
||||
msg(_(e_interrupted));
|
||||
out_flush();
|
||||
}
|
||||
if ((fd = mch_open((char *)backup, O_RDONLY | O_EXTRA, 0)) >= 0)
|
||||
@@ -2453,7 +2453,7 @@ restore_backup:
|
||||
// If the original file does not exist yet
|
||||
// the current backup file becomes the original file
|
||||
if (org == NULL)
|
||||
emsg(_("E205: Patchmode: can't save original file"));
|
||||
emsg(_(e_patchmode_cant_save_original_file));
|
||||
else if (mch_stat(org, &st) < 0)
|
||||
{
|
||||
vim_rename(backup, (char_u *)org);
|
||||
@@ -2473,7 +2473,7 @@ restore_backup:
|
||||
|| (empty_fd = mch_open(org,
|
||||
O_CREAT | O_EXTRA | O_EXCL | O_NOFOLLOW,
|
||||
perm < 0 ? 0666 : (perm & 0777))) < 0)
|
||||
emsg(_("E206: patchmode: can't touch empty original file"));
|
||||
emsg(_(e_patchmode_cant_touch_empty_original_file));
|
||||
else
|
||||
close(empty_fd);
|
||||
}
|
||||
@@ -2488,7 +2488,7 @@ restore_backup:
|
||||
// conversion error.
|
||||
if (!p_bk && backup != NULL && !write_info.bw_conv_error
|
||||
&& mch_remove(backup) != 0)
|
||||
emsg(_("E207: Can't delete backup file"));
|
||||
emsg(_(e_cant_delete_backup_file));
|
||||
|
||||
goto nofail;
|
||||
|
||||
|
||||
@@ -1247,7 +1247,7 @@ del_bytes(
|
||||
// If "count" is negative the caller must be doing something wrong.
|
||||
if (count < 1)
|
||||
{
|
||||
siemsg("E292: Invalid count for del_bytes(): %ld", count);
|
||||
siemsg(e_invalid_count_for_del_bytes_nr, count);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -1655,13 +1655,14 @@ open_line(
|
||||
lead_len = get_leader_len(saved_line, &lead_flags,
|
||||
dir == BACKWARD, TRUE);
|
||||
#ifdef FEAT_CINDENT
|
||||
if (lead_len == 0 && do_cindent)
|
||||
if (lead_len == 0 && do_cindent && dir == FORWARD)
|
||||
{
|
||||
// Check for a line comment after code.
|
||||
comment_start = check_linecomment(saved_line);
|
||||
if (comment_start != MAXCOL)
|
||||
{
|
||||
lead_len = get_leader_len(saved_line + comment_start,
|
||||
&lead_flags, dir == BACKWARD, TRUE);
|
||||
&lead_flags, FALSE, TRUE);
|
||||
if (lead_len != 0)
|
||||
{
|
||||
lead_len += comment_start;
|
||||
|
||||
@@ -161,7 +161,7 @@ ch_logfile(char_u *fname, char_u *opt)
|
||||
file = fopen((char *)fname, *opt == 'w' ? "w" : "a");
|
||||
if (file == NULL)
|
||||
{
|
||||
semsg(_(e_notopen), fname);
|
||||
semsg(_(e_cant_open_file_str), fname);
|
||||
return;
|
||||
}
|
||||
vim_free(log_name);
|
||||
@@ -707,8 +707,6 @@ channel_gui_unregister(channel_T *channel)
|
||||
|
||||
#endif // FEAT_GUI
|
||||
|
||||
static char *e_cannot_connect = N_("E902: Cannot connect to port");
|
||||
|
||||
/*
|
||||
* For Unix we need to call connect() again after connect() failed.
|
||||
* On Win32 one time is sufficient.
|
||||
@@ -737,7 +735,7 @@ channel_connect(
|
||||
if (sd == -1)
|
||||
{
|
||||
ch_error(channel, "in socket() in channel_connect().");
|
||||
PERROR(_("E898: socket() in channel_connect()"));
|
||||
PERROR(_(e_socket_in_channel_connect));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -778,7 +776,7 @@ channel_connect(
|
||||
{
|
||||
ch_error(channel,
|
||||
"channel_connect: Connect failed with errno %d", errno);
|
||||
PERROR(_(e_cannot_connect));
|
||||
PERROR(_(e_cannot_connect_to_port));
|
||||
sock_close(sd);
|
||||
return -1;
|
||||
}
|
||||
@@ -824,7 +822,7 @@ channel_connect(
|
||||
SOCK_ERRNO;
|
||||
ch_error(channel,
|
||||
"channel_connect: Connect failed with errno %d", errno);
|
||||
PERROR(_(e_cannot_connect));
|
||||
PERROR(_(e_cannot_connect_to_port));
|
||||
sock_close(sd);
|
||||
return -1;
|
||||
}
|
||||
@@ -863,7 +861,7 @@ channel_connect(
|
||||
ch_error(channel,
|
||||
"channel_connect: Connect failed with errno %d",
|
||||
so_error);
|
||||
PERROR(_(e_cannot_connect));
|
||||
PERROR(_(e_cannot_connect_to_port));
|
||||
sock_close(sd);
|
||||
return -1;
|
||||
}
|
||||
@@ -982,8 +980,7 @@ channel_open(
|
||||
if ((err = getaddrinfo(hostname, NULL, &hints, &res)) != 0)
|
||||
{
|
||||
ch_error(channel, "in getaddrinfo() in channel_open()");
|
||||
semsg(_("E901: getaddrinfo() in channel_open(): %s"),
|
||||
gai_strerror(err));
|
||||
semsg(_(e_getaddrinfo_in_channel_open_str), gai_strerror(err));
|
||||
channel_free(channel);
|
||||
return NULL;
|
||||
}
|
||||
@@ -1047,7 +1044,7 @@ channel_open(
|
||||
if ((host = gethostbyname(hostname)) == NULL)
|
||||
{
|
||||
ch_error(channel, "in gethostbyname() in channel_open()");
|
||||
PERROR(_("E901: gethostbyname() in channel_open()"));
|
||||
PERROR(_(e_gethostbyname_in_channel_open));
|
||||
channel_free(channel);
|
||||
return NULL;
|
||||
}
|
||||
@@ -1318,7 +1315,7 @@ channel_open_func(typval_T *argvars)
|
||||
if (argvars[1].v_type != VAR_UNKNOWN
|
||||
&& (argvars[1].v_type != VAR_DICT || argvars[1].vval.v_dict == NULL))
|
||||
{
|
||||
emsg(_(e_invarg));
|
||||
emsg(_(e_invalid_argument));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1330,7 +1327,7 @@ channel_open_func(typval_T *argvars)
|
||||
p = vim_strchr(address + 1, ']');
|
||||
if (p == NULL || *++p != ':')
|
||||
{
|
||||
semsg(_(e_invarg2), address);
|
||||
semsg(_(e_invalid_argument_str), address);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -1339,14 +1336,14 @@ channel_open_func(typval_T *argvars)
|
||||
p = vim_strchr(address, ':');
|
||||
if (p == NULL)
|
||||
{
|
||||
semsg(_(e_invarg2), address);
|
||||
semsg(_(e_invalid_argument_str), address);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
port = strtol((char *)(p + 1), &rest, 10);
|
||||
if (*address == NUL || port <= 0 || port >= 65536 || *rest != NUL)
|
||||
{
|
||||
semsg(_(e_invarg2), address);
|
||||
semsg(_(e_invalid_argument_str), address);
|
||||
return NULL;
|
||||
}
|
||||
if (is_ipv6)
|
||||
@@ -1367,7 +1364,7 @@ channel_open_func(typval_T *argvars)
|
||||
goto theend;
|
||||
if (opt.jo_timeout < 0)
|
||||
{
|
||||
emsg(_(e_invarg));
|
||||
emsg(_(e_invalid_argument));
|
||||
goto theend;
|
||||
}
|
||||
|
||||
@@ -2309,7 +2306,7 @@ channel_add_block_id(chanpart_T *chanpart, int id)
|
||||
garray_T *gap = &chanpart->ch_block_ids;
|
||||
|
||||
if (gap->ga_growsize == 0)
|
||||
ga_init2(gap, (int)sizeof(int), 10);
|
||||
ga_init2(gap, sizeof(int), 10);
|
||||
if (ga_grow(gap, 1) == OK)
|
||||
{
|
||||
((int *)gap->ga_data)[gap->ga_len] = id;
|
||||
@@ -2480,7 +2477,7 @@ channel_exe_cmd(channel_T *channel, ch_part_T part, typval_T *argv)
|
||||
{
|
||||
ch_error(channel, "received command with non-string argument");
|
||||
if (p_verbose > 2)
|
||||
emsg(_("E903: received command with non-string argument"));
|
||||
emsg(_(e_received_command_with_non_string_argument));
|
||||
return;
|
||||
}
|
||||
arg = argv[1].vval.v_string;
|
||||
@@ -2537,13 +2534,13 @@ channel_exe_cmd(channel_T *channel, ch_part_T part, typval_T *argv)
|
||||
{
|
||||
ch_error(channel, "last argument for expr/call must be a number");
|
||||
if (p_verbose > 2)
|
||||
emsg(_("E904: last argument for expr/call must be a number"));
|
||||
emsg(_(e_last_argument_for_expr_call_must_be_number));
|
||||
}
|
||||
else if (is_call && argv[2].v_type != VAR_LIST)
|
||||
{
|
||||
ch_error(channel, "third argument for call must be a list");
|
||||
if (p_verbose > 2)
|
||||
emsg(_("E904: third argument for call must be a list"));
|
||||
emsg(_(e_third_argument_for_call_must_be_list));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2600,7 +2597,7 @@ channel_exe_cmd(channel_T *channel, ch_part_T part, typval_T *argv)
|
||||
else if (p_verbose > 2)
|
||||
{
|
||||
ch_error(channel, "Received unknown command: %s", (char *)cmd);
|
||||
semsg(_("E905: received unknown command: %s"), cmd);
|
||||
semsg(_(e_received_unknown_command_str), cmd);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3833,7 +3830,7 @@ get_channel_arg(typval_T *tv, int check_open, int reading, ch_part_T part)
|
||||
}
|
||||
else
|
||||
{
|
||||
semsg(_(e_invarg2), tv_get_string(tv));
|
||||
semsg(_(e_invalid_argument_str), tv_get_string(tv));
|
||||
return NULL;
|
||||
}
|
||||
if (channel != NULL && reading)
|
||||
@@ -3843,7 +3840,7 @@ get_channel_arg(typval_T *tv, int check_open, int reading, ch_part_T part)
|
||||
if (check_open && (channel == NULL || (!channel_is_open(channel)
|
||||
&& !(reading && has_readahead))))
|
||||
{
|
||||
emsg(_("E906: not an open channel"));
|
||||
emsg(_(e_not_an_open_channel));
|
||||
return NULL;
|
||||
}
|
||||
return channel;
|
||||
@@ -4051,7 +4048,7 @@ channel_send(
|
||||
if (!channel->ch_error && fun != NULL)
|
||||
{
|
||||
ch_error(channel, "%s(): write while not connected", fun);
|
||||
semsg(_("E630: %s(): write while not connected"), fun);
|
||||
semsg(_(e_str_write_while_not_connected), fun);
|
||||
}
|
||||
channel->ch_error = TRUE;
|
||||
return FAIL;
|
||||
@@ -4197,7 +4194,7 @@ channel_send(
|
||||
if (!channel->ch_error && fun != NULL)
|
||||
{
|
||||
ch_error(channel, "%s(): write failed", fun);
|
||||
semsg(_("E631: %s(): write failed"), fun);
|
||||
semsg(_(e_str_write_failed), fun);
|
||||
}
|
||||
channel->ch_error = TRUE;
|
||||
return FAIL;
|
||||
@@ -4245,7 +4242,7 @@ send_common(
|
||||
{
|
||||
if (eval)
|
||||
{
|
||||
semsg(_("E917: Cannot use a callback with %s()"), fun);
|
||||
semsg(_(e_cannot_use_callback_with_str), fun);
|
||||
return NULL;
|
||||
}
|
||||
channel_set_req_callback(channel, *part_read, &opt->jo_callback, id);
|
||||
@@ -4290,7 +4287,7 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
ch_mode = channel_get_mode(channel, part_send);
|
||||
if (ch_mode == MODE_RAW || ch_mode == MODE_NL)
|
||||
{
|
||||
emsg(_("E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"));
|
||||
emsg(_(e_cannot_use_evalexpr_sendexpr_with_raw_or_nl_channel));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1240,10 +1240,15 @@ getvcol(
|
||||
posptr = NULL; // continue until the NUL
|
||||
else
|
||||
{
|
||||
// Special check for an empty line, which can happen on exit, when
|
||||
// ml_get_buf() always returns an empty string.
|
||||
if (*ptr == NUL)
|
||||
pos->col = 0;
|
||||
colnr_T i;
|
||||
|
||||
// In a few cases the position can be beyond the end of the line.
|
||||
for (i = 0; i < pos->col; ++i)
|
||||
if (ptr[i] == NUL)
|
||||
{
|
||||
pos->col = i;
|
||||
break;
|
||||
}
|
||||
posptr = ptr + pos->col;
|
||||
if (has_mbyte)
|
||||
// always start on the first byte
|
||||
@@ -1471,6 +1476,7 @@ skipwhite(char_u *q)
|
||||
return p;
|
||||
}
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* skip over ' ', '\t' and '\n'.
|
||||
*/
|
||||
@@ -1483,6 +1489,7 @@ skipwhite_and_nl(char_u *q)
|
||||
++p;
|
||||
return p;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* getwhitecols: return the number of whitespace
|
||||
|
||||
@@ -66,8 +66,6 @@ cin_is_cinword(char_u *line)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_CINDENT) || defined(FEAT_SYN_HL)
|
||||
|
||||
/*
|
||||
* Skip to the end of a "string" and a 'c' character.
|
||||
* If there is no string or character, return argument unmodified.
|
||||
@@ -137,6 +135,21 @@ skip_string(char_u *p)
|
||||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if "line[col]" is inside a C string.
|
||||
*/
|
||||
int
|
||||
is_pos_in_string(char_u *line, colnr_T col)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
for (p = line; *p && (colnr_T)(p - line) < col; ++p)
|
||||
p = skip_string(p);
|
||||
return !((colnr_T)(p - line) <= col);
|
||||
}
|
||||
|
||||
#if defined(FEAT_CINDENT) || defined(FEAT_SYN_HL)
|
||||
|
||||
/*
|
||||
* Find the start of a comment, not knowing if we are in a comment right now.
|
||||
* Search starts at w_cursor.lnum and goes backwards.
|
||||
@@ -152,8 +165,6 @@ ind_find_start_comment(void) // XXX
|
||||
find_start_comment(int ind_maxcomment) // XXX
|
||||
{
|
||||
pos_T *pos;
|
||||
char_u *line;
|
||||
char_u *p;
|
||||
int cur_maxcomment = ind_maxcomment;
|
||||
|
||||
for (;;)
|
||||
@@ -164,10 +175,7 @@ find_start_comment(int ind_maxcomment) // XXX
|
||||
|
||||
// Check if the comment start we found is inside a string.
|
||||
// If it is then restrict the search to below this line and try again.
|
||||
line = ml_get(pos->lnum);
|
||||
for (p = line; *p && (colnr_T)(p - line) < pos->col; ++p)
|
||||
p = skip_string(p);
|
||||
if ((colnr_T)(p - line) <= pos->col)
|
||||
if (!is_pos_in_string(ml_get(pos->lnum), pos->col))
|
||||
break;
|
||||
cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1;
|
||||
if (cur_maxcomment <= 0)
|
||||
@@ -188,8 +196,6 @@ find_start_comment(int ind_maxcomment) // XXX
|
||||
find_start_rawstring(int ind_maxcomment) // XXX
|
||||
{
|
||||
pos_T *pos;
|
||||
char_u *line;
|
||||
char_u *p;
|
||||
int cur_maxcomment = ind_maxcomment;
|
||||
|
||||
for (;;)
|
||||
@@ -200,10 +206,7 @@ find_start_rawstring(int ind_maxcomment) // XXX
|
||||
|
||||
// Check if the raw string start we found is inside a string.
|
||||
// If it is then restrict the search to below this line and try again.
|
||||
line = ml_get(pos->lnum);
|
||||
for (p = line; *p && (colnr_T)(p - line) < pos->col; ++p)
|
||||
p = skip_string(p);
|
||||
if ((colnr_T)(p - line) <= pos->col)
|
||||
if (!is_pos_in_string(ml_get(pos->lnum), pos->col))
|
||||
break;
|
||||
cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1;
|
||||
if (cur_maxcomment <= 0)
|
||||
@@ -1223,7 +1226,7 @@ cin_isfuncdecl(
|
||||
if (*s == ')' && cin_nocode(s + 1))
|
||||
{
|
||||
// ')' at the end: may have found a match
|
||||
// Check for he previous line not to end in a backslash:
|
||||
// Check for the previous line not to end in a backslash:
|
||||
// #if defined(x) && {backslash}
|
||||
// defined(y)
|
||||
lnum = first_lnum - 1;
|
||||
@@ -1792,7 +1795,7 @@ parse_cino(buf_T *buf)
|
||||
buf->b_ind_unclosed2 = sw;
|
||||
|
||||
// Suppress ignoring spaces from the indent of a line starting with an
|
||||
// unclosed parentheses.
|
||||
// unclosed parenthesis.
|
||||
buf->b_ind_unclosed_noignore = 0;
|
||||
|
||||
// If the opening paren is the last nonwhite character on the line, and
|
||||
@@ -1804,11 +1807,11 @@ parse_cino(buf_T *buf)
|
||||
// an unclosed parenthesis.
|
||||
buf->b_ind_unclosed_whiteok = 0;
|
||||
|
||||
// Indent a closing parentheses under the line start of the matching
|
||||
// opening parentheses.
|
||||
// Indent a closing parenthesis under the line start of the matching
|
||||
// opening parenthesis.
|
||||
buf->b_ind_matching_paren = 0;
|
||||
|
||||
// Indent a closing parentheses under the previous line.
|
||||
// Indent a closing parenthesis under the previous line.
|
||||
buf->b_ind_paren_prev = 0;
|
||||
|
||||
// Extra indent for comments.
|
||||
|
||||
@@ -119,7 +119,7 @@ sendToLocalVim(char_u *cmd, int asExpr, char_u **result)
|
||||
{
|
||||
if (ret == NULL)
|
||||
{
|
||||
char *err = _(e_invexprmsg);
|
||||
char *err = _(e_invalid_expression_received);
|
||||
size_t len = STRLEN(cmd) + STRLEN(err) + 5;
|
||||
char_u *msg;
|
||||
|
||||
@@ -709,7 +709,7 @@ check_connection(void)
|
||||
make_connection();
|
||||
if (X_DISPLAY == NULL)
|
||||
{
|
||||
emsg(_("E240: No connection to the X server"));
|
||||
emsg(_(e_no_connection_to_x_server));
|
||||
return FAIL;
|
||||
}
|
||||
return OK;
|
||||
@@ -759,7 +759,7 @@ remote_common(typval_T *argvars, typval_T *rettv, int expr)
|
||||
vim_free(r);
|
||||
}
|
||||
else
|
||||
semsg(_("E241: Unable to send to %s"), server_name);
|
||||
semsg(_(e_unable_to_send_to_str), server_name);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -929,7 +929,7 @@ f_remote_read(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
|| serverReadReply(X_DISPLAY, serverStrToWin(serverid),
|
||||
&r, FALSE, timeout) < 0)
|
||||
# endif
|
||||
emsg(_("E277: Unable to read a server reply"));
|
||||
emsg(_(e_unable_to_read_server_reply));
|
||||
}
|
||||
#endif
|
||||
rettv->v_type = VAR_STRING;
|
||||
@@ -972,7 +972,7 @@ f_remote_startserver(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
||||
if (server == NULL)
|
||||
return; // type error; errmsg already given
|
||||
if (serverName != NULL)
|
||||
emsg(_("E941: already started a server"));
|
||||
emsg(_(e_already_started_server));
|
||||
else
|
||||
{
|
||||
# ifdef FEAT_X11
|
||||
@@ -983,7 +983,7 @@ f_remote_startserver(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
||||
# endif
|
||||
}
|
||||
#else
|
||||
emsg(_("E942: +clientserver feature not available"));
|
||||
emsg(_(e_clientserver_feature_not_available));
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1016,7 +1016,7 @@ f_server2client(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
|
||||
if (serverSendReply(server, reply) < 0)
|
||||
{
|
||||
emsg(_("E258: Unable to send to client"));
|
||||
emsg(_(e_unable_to_send_to_client));
|
||||
return;
|
||||
}
|
||||
rettv->vval.v_number = 0;
|
||||
|
||||
@@ -567,7 +567,7 @@ clip_get_word_boundaries(Clipboard_T *cb, int row, int col)
|
||||
return;
|
||||
|
||||
p = ScreenLines + LineOffset[row];
|
||||
// Correct for starting in the right halve of a double-wide char
|
||||
// Correct for starting in the right half of a double-wide char
|
||||
if (enc_dbcs != 0)
|
||||
col -= dbcs_screen_head_off(p, p + col);
|
||||
else if (enc_utf8 && p[col] == 0)
|
||||
@@ -1030,7 +1030,7 @@ clip_copy_modeless_selection(int both UNUSED)
|
||||
if (row2 > clip_star.max_row)
|
||||
row2 = clip_star.max_row;
|
||||
#endif
|
||||
// correct starting point for being on right halve of double-wide char
|
||||
// correct starting point for being on right half of double-wide char
|
||||
p = ScreenLines + LineOffset[row1];
|
||||
if (enc_dbcs != 0)
|
||||
col1 -= (*mb_head_off)(p, p + col1);
|
||||
@@ -1140,7 +1140,7 @@ clip_copy_modeless_selection(int both UNUSED)
|
||||
bufp);
|
||||
}
|
||||
}
|
||||
// Skip right halve of double-wide character.
|
||||
// Skip right half of double-wide character.
|
||||
if (ScreenLines[off + i + 1] == 0)
|
||||
++i;
|
||||
}
|
||||
@@ -1305,12 +1305,12 @@ check_clipboard_option(void)
|
||||
p += 8;
|
||||
new_exclude_prog = vim_regcomp(p, RE_MAGIC);
|
||||
if (new_exclude_prog == NULL)
|
||||
errmsg = e_invarg;
|
||||
errmsg = e_invalid_argument;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
errmsg = e_invarg;
|
||||
errmsg = e_invalid_argument;
|
||||
break;
|
||||
}
|
||||
if (*p == ',')
|
||||
@@ -1540,6 +1540,7 @@ clip_x11_notify_cb(Widget w UNUSED, Atom *sel_atom UNUSED, Atom *target UNUSED)
|
||||
/*
|
||||
* Property callback to get a timestamp for XtOwnSelection.
|
||||
*/
|
||||
# if (defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)) || defined(PROTO)
|
||||
static void
|
||||
clip_x11_timestamp_cb(
|
||||
Widget w,
|
||||
@@ -1592,6 +1593,7 @@ x11_setup_selection(Widget w)
|
||||
XtAddEventHandler(w, PropertyChangeMask, False,
|
||||
/*(XtEventHandler)*/clip_x11_timestamp_cb, (XtPointer)NULL);
|
||||
}
|
||||
# endif
|
||||
|
||||
static void
|
||||
clip_x11_request_selection_cb(
|
||||
|
||||
@@ -366,13 +366,13 @@ ExpandOne(
|
||||
// are wildcards, the real problem is that there was no match,
|
||||
// causing the pattern to be added, which has illegal characters.
|
||||
if (!(options & WILD_SILENT) && (options & WILD_LIST_NOTFOUND))
|
||||
semsg(_(e_nomatch2), str);
|
||||
semsg(_(e_no_match_str_2), str);
|
||||
#endif
|
||||
}
|
||||
else if (xp->xp_numfiles == 0)
|
||||
{
|
||||
if (!(options & WILD_SILENT))
|
||||
semsg(_(e_nomatch2), str);
|
||||
semsg(_(e_no_match_str_2), str);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2342,7 +2342,7 @@ expand_shellcmd(
|
||||
// Go over all directories in $PATH. Expand matches in that directory and
|
||||
// collect them in "ga". When "." is not in $PATH also expand for the
|
||||
// current directory, to find "subdir/cmd".
|
||||
ga_init2(&ga, (int)sizeof(char *), 10);
|
||||
ga_init2(&ga, sizeof(char *), 10);
|
||||
hash_init(&found_ht);
|
||||
for (s = path; ; s = e)
|
||||
{
|
||||
@@ -2497,7 +2497,7 @@ ExpandUserDefined(
|
||||
if (retstr == NULL)
|
||||
return FAIL;
|
||||
|
||||
ga_init2(&ga, (int)sizeof(char *), 3);
|
||||
ga_init2(&ga, sizeof(char *), 3);
|
||||
for (s = retstr; *s != NUL; s = e)
|
||||
{
|
||||
e = vim_strchr(s, '\n');
|
||||
@@ -2543,7 +2543,7 @@ ExpandUserList(
|
||||
if (retlist == NULL)
|
||||
return FAIL;
|
||||
|
||||
ga_init2(&ga, (int)sizeof(char *), 3);
|
||||
ga_init2(&ga, sizeof(char *), 3);
|
||||
// Loop over the items in the list.
|
||||
FOR_ALL_LIST_ITEMS(retlist, li)
|
||||
{
|
||||
@@ -2903,7 +2903,7 @@ f_getcompletion(typval_T *argvars, typval_T *rettv)
|
||||
pat = tv_get_string(&argvars[0]);
|
||||
if (argvars[1].v_type != VAR_STRING)
|
||||
{
|
||||
semsg(_(e_invarg2), "type must be a string");
|
||||
semsg(_(e_invalid_argument_str), "type must be a string");
|
||||
return;
|
||||
}
|
||||
type = tv_get_string(&argvars[1]);
|
||||
@@ -2933,7 +2933,7 @@ f_getcompletion(typval_T *argvars, typval_T *rettv)
|
||||
xpc.xp_context = cmdcomplete_str_to_type(type);
|
||||
if (xpc.xp_context == EXPAND_NOTHING)
|
||||
{
|
||||
semsg(_(e_invarg2), type);
|
||||
semsg(_(e_invalid_argument_str), type);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,11 +37,13 @@ get_histentry(int hist_type)
|
||||
return history[hist_type];
|
||||
}
|
||||
|
||||
#if defined(FEAT_VIMINFO) || defined(PROTO)
|
||||
void
|
||||
set_histentry(int hist_type, histentry_T *entry)
|
||||
{
|
||||
history[hist_type] = entry;
|
||||
}
|
||||
#endif
|
||||
|
||||
int *
|
||||
get_hisidx(int hist_type)
|
||||
@@ -49,11 +51,13 @@ get_hisidx(int hist_type)
|
||||
return &hisidx[hist_type];
|
||||
}
|
||||
|
||||
#if defined(FEAT_VIMINFO) || defined(PROTO)
|
||||
int *
|
||||
get_hisnum(int hist_type)
|
||||
{
|
||||
return &hisnum[hist_type];
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Translate a history character to the associated type number.
|
||||
@@ -724,7 +728,7 @@ ex_history(exarg_T *eap)
|
||||
else
|
||||
{
|
||||
*end = i;
|
||||
semsg(_(e_trailing_arg), arg);
|
||||
semsg(_(e_trailing_characters_str), arg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -736,7 +740,7 @@ ex_history(exarg_T *eap)
|
||||
end = arg;
|
||||
if (!get_list_range(&end, &hisidx1, &hisidx2) || *end != NUL)
|
||||
{
|
||||
semsg(_(e_trailing_arg), end);
|
||||
semsg(_(e_trailing_characters_str), end);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,10 +37,13 @@ X_PRE_LIBS = @X_PRE_LIBS@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_LIBS = @X_LIB@
|
||||
|
||||
XDIFF_OBJS_USED = @XDIFF_OBJS_USED@
|
||||
|
||||
LUA_LIBS = @LUA_LIBS@
|
||||
LUA_SRC = @LUA_SRC@
|
||||
LUA_OBJ = @LUA_OBJ@
|
||||
LUA_CFLAGS = @LUA_CFLAGS@
|
||||
LUA_CFLAGS_EXTRA = @LUA_CFLAGS_EXTRA@
|
||||
LUA_PRO = @LUA_PRO@
|
||||
|
||||
MZSCHEME_LIBS = @MZSCHEME_LIBS@
|
||||
@@ -60,15 +63,18 @@ PERL_SRC = @PERL_SRC@
|
||||
PERL_OBJ = @PERL_OBJ@
|
||||
PERL_PRO = @PERL_PRO@
|
||||
PERL_CFLAGS = @PERL_CFLAGS@
|
||||
PERL_CFLAGS_EXTRA = @PERL_CFLAGS_EXTRA@
|
||||
|
||||
PYTHON_SRC = @PYTHON_SRC@
|
||||
PYTHON_OBJ = @PYTHON_OBJ@
|
||||
PYTHON_CFLAGS = @PYTHON_CFLAGS@
|
||||
PYTHON_CFLAGS_EXTRA = @PYTHON_CFLAGS_EXTRA@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
|
||||
PYTHON3_SRC = @PYTHON3_SRC@
|
||||
PYTHON3_OBJ = @PYTHON3_OBJ@
|
||||
PYTHON3_CFLAGS = @PYTHON3_CFLAGS@
|
||||
PYTHON3_CFLAGS_EXTRA = @PYTHON3_CFLAGS_EXTRA@
|
||||
PYTHON3_LIBS = @PYTHON3_LIBS@
|
||||
|
||||
TCL = @vi_cv_path_tcl@
|
||||
@@ -76,6 +82,7 @@ TCL_SRC = @TCL_SRC@
|
||||
TCL_OBJ = @TCL_OBJ@
|
||||
TCL_PRO = @TCL_PRO@
|
||||
TCL_CFLAGS = @TCL_CFLAGS@
|
||||
TCL_CFLAGS_EXTRA = @TCL_CFLAGS_EXTRA@
|
||||
TCL_LIBS = @TCL_LIBS@
|
||||
|
||||
NETBEANS_SRC = @NETBEANS_SRC@
|
||||
@@ -91,6 +98,7 @@ RUBY_SRC = @RUBY_SRC@
|
||||
RUBY_OBJ = @RUBY_OBJ@
|
||||
RUBY_PRO = @RUBY_PRO@
|
||||
RUBY_CFLAGS = @RUBY_CFLAGS@
|
||||
RUBY_CFLAGS_EXTRA = @RUBY_CFLAGS_EXTRA@
|
||||
RUBY_LIBS = @RUBY_LIBS@
|
||||
|
||||
AWK = @AWK@
|
||||
|
||||
@@ -540,6 +540,12 @@ esac
|
||||
AC_SUBST(dovimdiff)
|
||||
AC_SUBST(dogvimdiff)
|
||||
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
has_eval=no
|
||||
else
|
||||
has_eval=yes
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(--with-compiledby argument)
|
||||
AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
|
||||
compiledby="$withval"; AC_MSG_RESULT($withval),
|
||||
@@ -567,6 +573,16 @@ else
|
||||
AC_MSG_RESULT(yes)
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([diff feature])
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
AC_MSG_RESULT([disabled in $features version])
|
||||
else
|
||||
AC_MSG_RESULT(enabled)
|
||||
AC_DEFINE(FEAT_DIFF)
|
||||
XDIFF_OBJS_USED="\$(XDIFF_OBJS)"
|
||||
AC_SUBST(XDIFF_OBJS_USED)
|
||||
fi
|
||||
|
||||
dnl Check for Lua feature.
|
||||
AC_MSG_CHECKING(--enable-luainterp argument)
|
||||
AC_ARG_ENABLE(luainterp,
|
||||
@@ -575,7 +591,7 @@ AC_ARG_ENABLE(luainterp,
|
||||
AC_MSG_RESULT($enable_luainterp)
|
||||
|
||||
if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_ERROR([cannot use Lua with tiny or small features])
|
||||
fi
|
||||
|
||||
@@ -781,6 +797,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
AC_SUBST(LUA_PRO)
|
||||
AC_SUBST(LUA_LIBS)
|
||||
AC_SUBST(LUA_CFLAGS)
|
||||
AC_SUBST(LUA_CFLAGS_EXTRA)
|
||||
fi
|
||||
|
||||
|
||||
@@ -1061,7 +1078,7 @@ AC_ARG_ENABLE(perlinterp,
|
||||
[enable_perlinterp="no"])
|
||||
AC_MSG_RESULT($enable_perlinterp)
|
||||
if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_ERROR([cannot use Perl with tiny or small features])
|
||||
fi
|
||||
AC_SUBST(vi_cv_path_perl)
|
||||
@@ -1201,6 +1218,7 @@ AC_SUBST(PERL_SRC)
|
||||
AC_SUBST(PERL_OBJ)
|
||||
AC_SUBST(PERL_PRO)
|
||||
AC_SUBST(PERL_CFLAGS)
|
||||
AC_SUBST(PERL_CFLAGS_EXTRA)
|
||||
AC_SUBST(PERL_LIBS)
|
||||
|
||||
AC_MSG_CHECKING(--enable-pythoninterp argument)
|
||||
@@ -1209,7 +1227,7 @@ AC_ARG_ENABLE(pythoninterp,
|
||||
[enable_pythoninterp="no"])
|
||||
AC_MSG_RESULT($enable_pythoninterp)
|
||||
if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_ERROR([cannot use Python with tiny or small features])
|
||||
fi
|
||||
|
||||
@@ -1433,6 +1451,7 @@ fi
|
||||
|
||||
AC_SUBST(PYTHON_LIBS)
|
||||
AC_SUBST(PYTHON_CFLAGS)
|
||||
AC_SUBST(PYTHON_CFLAGS_EXTRA)
|
||||
AC_SUBST(PYTHON_SRC)
|
||||
AC_SUBST(PYTHON_OBJ)
|
||||
|
||||
@@ -1443,7 +1462,7 @@ AC_ARG_ENABLE(python3interp,
|
||||
[enable_python3interp="no"])
|
||||
AC_MSG_RESULT($enable_python3interp)
|
||||
if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_ERROR([cannot use Python with tiny or small features])
|
||||
fi
|
||||
|
||||
@@ -1650,6 +1669,7 @@ fi
|
||||
|
||||
AC_SUBST(PYTHON3_LIBS)
|
||||
AC_SUBST(PYTHON3_CFLAGS)
|
||||
AC_SUBST(PYTHON3_CFLAGS_EXTRA)
|
||||
AC_SUBST(PYTHON3_SRC)
|
||||
AC_SUBST(PYTHON3_OBJ)
|
||||
|
||||
@@ -1946,6 +1966,7 @@ AC_SUBST(TCL_SRC)
|
||||
AC_SUBST(TCL_OBJ)
|
||||
AC_SUBST(TCL_PRO)
|
||||
AC_SUBST(TCL_CFLAGS)
|
||||
AC_SUBST(TCL_CFLAGS_EXTRA)
|
||||
AC_SUBST(TCL_LIBS)
|
||||
|
||||
AC_MSG_CHECKING(--enable-rubyinterp argument)
|
||||
@@ -1954,7 +1975,7 @@ AC_ARG_ENABLE(rubyinterp,
|
||||
[enable_rubyinterp="no"])
|
||||
AC_MSG_RESULT($enable_rubyinterp)
|
||||
if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_ERROR([cannot use Ruby with tiny or small features])
|
||||
fi
|
||||
|
||||
@@ -2050,6 +2071,7 @@ AC_SUBST(RUBY_SRC)
|
||||
AC_SUBST(RUBY_OBJ)
|
||||
AC_SUBST(RUBY_PRO)
|
||||
AC_SUBST(RUBY_CFLAGS)
|
||||
AC_SUBST(RUBY_CFLAGS_EXTRA)
|
||||
AC_SUBST(RUBY_LIBS)
|
||||
|
||||
AC_MSG_CHECKING(--enable-cscope argument)
|
||||
@@ -2066,7 +2088,7 @@ AC_ARG_ENABLE(netbeans,
|
||||
[ --disable-netbeans Disable NetBeans integration support.],
|
||||
, [enable_netbeans="yes"])
|
||||
if test "$enable_netbeans" = "yes"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_RESULT([cannot use NetBeans with tiny or small features])
|
||||
enable_netbeans="no"
|
||||
else
|
||||
@@ -2081,7 +2103,7 @@ AC_ARG_ENABLE(channel,
|
||||
[ --disable-channel Disable process communication support.],
|
||||
, [enable_channel="yes"])
|
||||
if test "$enable_channel" = "yes"; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_RESULT([cannot use channels with tiny or small features])
|
||||
enable_channel="no"
|
||||
else
|
||||
@@ -2189,7 +2211,7 @@ AC_ARG_ENABLE(terminal,
|
||||
[ --enable-terminal Enable terminal emulation support.],
|
||||
, [enable_terminal="auto"])
|
||||
if test "$enable_terminal" = "yes" || test "$enable_terminal" = "auto" -a "x$features" = "xhuge" ; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
if test "$has_eval" = "no"; then
|
||||
AC_MSG_RESULT([cannot use terminal emulator with tiny or small features])
|
||||
enable_terminal="no"
|
||||
else
|
||||
@@ -3778,7 +3800,12 @@ if test "$enable_canberra" = "maybe"; then
|
||||
enable_canberra="no"
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT($enable_canberra)
|
||||
if test "$enable_canberra" = "yes" -a "$has_eval" = "no"; then
|
||||
AC_MSG_RESULT([cannot use sound with tiny or small features])
|
||||
enable_canberra="no"
|
||||
else
|
||||
AC_MSG_RESULT($enable_canberra)
|
||||
fi
|
||||
fi
|
||||
if test "$enable_canberra" = "yes"; then
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
@@ -3792,7 +3819,7 @@ if test "$enable_canberra" = "yes"; then
|
||||
AC_MSG_CHECKING(for libcanberra)
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
if `echo "$CFLAGS" | grep -v "$canberra_cflags" >/dev/null`; then
|
||||
if `echo "$CFLAGS" | grep -v "$canberra_cflags" 2>/dev/null`; then
|
||||
CFLAGS="$CFLAGS $canberra_cflags"
|
||||
fi
|
||||
LIBS="$LIBS $canberra_lib"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user