mirror of
https://github.com/vim/vim
synced 2025-08-01 19:31:52 +00:00
Compare commits
49 Commits
Author | SHA1 | Date | |
---|---|---|---|
6e28703a8e | |||
90a57168a4 | |||
2a9b62dfa2 | |||
620d8edba0 | |||
0f7ff851cb | |||
d68b2fc034 | |||
18f7593e57 | |||
0c3cc2fec3 | |||
41ee5b1913 | |||
29c70f612f | |||
c9e3187d05 | |||
5b1d6e98c6 | |||
bd89d44063 | |||
481acb1141 | |||
f6246f51e3 | |||
14f23122bf | |||
8196e94a8b | |||
92f645bef7 | |||
bece72785d | |||
414acd342f | |||
949b35d83b | |||
560dff49c0 | |||
74a0a5b26d | |||
9da17d7c57 | |||
78a8404f8b | |||
769f5895eb | |||
28e8f73ae2 | |||
68cc2b8a37 | |||
b6a138eb33 | |||
dce2441a60 | |||
3a5988c025 | |||
779aeff5c3 | |||
e023d49937 | |||
73a16c22a4 | |||
e3537aec2f | |||
51ab7c7d0d | |||
3908ef5017 | |||
3787f26c2e | |||
f681cfb90b | |||
7aca5ca676 | |||
92368aad61 | |||
28f1a51bde | |||
4e713bafc0 | |||
54969f4ef5 | |||
63ff72aab9 | |||
b247e0622e | |||
6bf821e8ab | |||
8cbf249917 | |||
5f4ef5f5e5 |
52
.github/workflows/ci.yml
vendored
52
.github/workflows/ci.yml
vendored
@ -225,7 +225,7 @@ jobs:
|
||||
do_test make ${SHADOWOPT} ${TEST}
|
||||
|
||||
# - name: Coveralls
|
||||
# if: matrix.coverage && success() && github.event_name != 'pull_request'
|
||||
# if: matrix.coverage && github.event_name != 'pull_request'
|
||||
# env:
|
||||
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
# COVERALLS_PARALLEL: true
|
||||
@ -238,21 +238,21 @@ jobs:
|
||||
# ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
|
||||
|
||||
- name: Generate gcov files
|
||||
if: matrix.coverage && success()
|
||||
if: matrix.coverage
|
||||
run: |
|
||||
cd "${SRCDIR}"
|
||||
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
|
||||
|
||||
- name: Codecov
|
||||
if: matrix.coverage && success()
|
||||
if: matrix.coverage
|
||||
uses: codecov/codecov-action@v2
|
||||
with:
|
||||
flags: ${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }}
|
||||
flags: linux,${{ 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
|
||||
for f in $(grep -lR '#[[:digit:]]* *0x[[:xdigit:]]*' "${LOG_DIR}"); do
|
||||
asan_symbolize -l "$f"
|
||||
false # in order to fail a job
|
||||
done
|
||||
@ -344,7 +344,7 @@ jobs:
|
||||
make ${TEST}
|
||||
|
||||
windows:
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2019
|
||||
|
||||
env:
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
|
||||
@ -352,7 +352,7 @@ jobs:
|
||||
# Lua
|
||||
LUA_VER: 54
|
||||
LUA_VER_DOT: '5.4'
|
||||
LUA_RELEASE: 5.4.0
|
||||
LUA_RELEASE: 5.4.2
|
||||
LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
|
||||
LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
|
||||
LUA_DIR: D:\Lua
|
||||
@ -360,8 +360,8 @@ jobs:
|
||||
PYTHON_VER: 27
|
||||
PYTHON_VER_DOT: '2.7'
|
||||
# Python 3
|
||||
PYTHON3_VER: 38
|
||||
PYTHON3_VER_DOT: '3.8'
|
||||
PYTHON3_VER: 310
|
||||
PYTHON3_VER_DOT: '3.10'
|
||||
# Other dependencies
|
||||
# winpty
|
||||
WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
|
||||
@ -410,6 +410,9 @@ jobs:
|
||||
python3_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ matrix.pyreg }}/InstallPath/@")
|
||||
echo "PYTHON_DIR=$python_dir" >> $GITHUB_ENV
|
||||
echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
|
||||
if ${{ matrix.toolchain == 'mingw' && matrix.arch == 'x64' && matrix.features == 'HUGE' }}; then
|
||||
echo "COVERAGE=yes" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- uses: msys2/setup-msys2@v2
|
||||
if: matrix.toolchain == 'mingw'
|
||||
@ -501,7 +504,7 @@ jobs:
|
||||
DYNAMIC_LUA=yes LUA=${LUA_DIR} \
|
||||
DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
|
||||
STATIC_STDCPLUS=yes
|
||||
STATIC_STDCPLUS=yes COVERAGE=${COVERAGE}
|
||||
else
|
||||
mingw32-make -f Make_ming.mak -j2 \
|
||||
FEATURES=${{ matrix.features }} \
|
||||
@ -522,6 +525,12 @@ jobs:
|
||||
# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
|
||||
# path: ./artifacts
|
||||
|
||||
- name: Copy gcov data files to src2
|
||||
if: env.COVERAGE
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
find src -name '*.gcno' | tar -c -T - | tar -x -C src2 --strip-components 1
|
||||
|
||||
- name: Test
|
||||
shell: cmd
|
||||
timeout-minutes: 20
|
||||
@ -562,3 +571,26 @@ jobs:
|
||||
exit 1
|
||||
)
|
||||
echo ::endgroup::
|
||||
|
||||
- name: Generate gcov files
|
||||
if: env.COVERAGE
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd src
|
||||
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
|
||||
cd ../src2
|
||||
find . -type f -name '*.gcno' -exec gcov -pb {} + || true
|
||||
|
||||
- name: Codecov (gvim)
|
||||
if: env.COVERAGE
|
||||
uses: codecov/codecov-action@v2
|
||||
with:
|
||||
directory: src
|
||||
flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }}-gui
|
||||
|
||||
- name: Codecov (vim)
|
||||
if: env.COVERAGE
|
||||
uses: codecov/codecov-action@v2
|
||||
with:
|
||||
directory: src2
|
||||
flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }}
|
||||
|
@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2022 Jan 21
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2022 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -326,6 +326,7 @@ Name triggered by ~
|
||||
|FileChangedRO| before making the first change to a read-only file
|
||||
|
||||
|DiffUpdated| after diffs have been updated
|
||||
|DirChangedPre| before the working directory will change
|
||||
|DirChanged| after the working directory has changed
|
||||
|
||||
|ShellCmdPost| after executing a shell command
|
||||
@ -738,6 +739,11 @@ DiffUpdated After diffs have been updated. Depending on
|
||||
what kind of diff is being used (internal or
|
||||
external) this can be triggered on every
|
||||
change or when doing |:diffupdate|.
|
||||
*DirChangedPre*
|
||||
DirChangedPre The working directory is going to be changed,
|
||||
as with |DirChanged|. The pattern is like
|
||||
with |DirChanged|. The new directory can be
|
||||
found in v:event.directory.
|
||||
*DirChanged*
|
||||
DirChanged The working directory has changed in response
|
||||
to the |:cd| or |:tcd| or |:lcd| commands, or
|
||||
|
@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*builtin.txt* For Vim version 8.2. Last change: 2022 Feb 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -4670,9 +4670,11 @@ islocked({expr}) *islocked()* *E786*
|
||||
:echo islocked('alist') " 1
|
||||
:echo islocked('alist[1]') " 0
|
||||
|
||||
< When {expr} is a variable that does not exist you get an error
|
||||
message. Use |exists()| to check for existence.
|
||||
In Vim9 script it does not work for local variables.
|
||||
< When {expr} is a variable that does not exist -1 is returned.
|
||||
If {expr} uses a range, list or dict index that is out of
|
||||
range or does not exist you get an error message. Use
|
||||
|exists()| to check for existence.
|
||||
In Vim9 script it does not work for local function variables.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetName()->islocked()
|
||||
|
@ -1650,6 +1650,11 @@ If you don't get warned often enough you can use the following command.
|
||||
if it exists now.
|
||||
Once a file has been checked the timestamp is reset,
|
||||
you will not be warned again.
|
||||
Syntax highlighting, marks, diff status,
|
||||
'fileencoding', 'fileformat' and 'binary' options
|
||||
are not changed. See |v:fcs_choice| to reload these
|
||||
too (for example, if a code formatting tools has
|
||||
changed the file).
|
||||
|
||||
:[N]checkt[ime] {filename}
|
||||
:[N]checkt[ime] [N]
|
||||
|
@ -2070,6 +2070,11 @@ v:fcs_choice What should happen after a |FileChangedShell| event was
|
||||
do with the affected buffer:
|
||||
reload Reload the buffer (does not work if
|
||||
the file was deleted).
|
||||
edit Reload the buffer and detect the
|
||||
values for options such as
|
||||
'fileformat', 'fileencoding', 'binary'
|
||||
(does not work if the file was
|
||||
deleted).
|
||||
ask Ask the user what to do, as if there
|
||||
was no autocommand. Except that when
|
||||
only the timestamp changed nothing
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 8.2. Last change: 2021 Nov 12
|
||||
*if_pyth.txt* For Vim version 8.2. Last change: 2022 Feb 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@ -65,7 +65,7 @@ There is no need to import sys, it's done by default.
|
||||
|
||||
*python-environment*
|
||||
Environment variables set in Vim are not always available in Python. This
|
||||
depends on how Vim and Python were build. Also see
|
||||
depends on how Vim and Python were built. Also see
|
||||
https://docs.python.org/3/library/os.html#os.environ
|
||||
|
||||
Note: Python is very sensitive to the indenting. Make sure the "class" line
|
||||
@ -834,6 +834,19 @@ To work around such problems there are these options:
|
||||
Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
|
||||
:py vim.command("qall!")
|
||||
<
|
||||
*E1266*
|
||||
This error can occur when python 3 cannot load the required modules. This
|
||||
means that your python 3 is not correctly installed or there are some mistakes
|
||||
in your settings. Please check the following items:
|
||||
1. Make sure that python 3 is correctly installed. Also check the version of
|
||||
python.
|
||||
2. Check the 'pythonthreedll' option.
|
||||
3. Check the 'pythonthreehome' option.
|
||||
4. Check the PATH environment variable if you don't set 'pythonthreedll'.
|
||||
On MS-Windows, you can use where.exe to check which dll will be loaded.
|
||||
E.g. >
|
||||
where.exe python310.dll
|
||||
5. Check the PYTHONPATH and PYTHONHOME environment variables.
|
||||
|
||||
*has-python*
|
||||
You can test what Python version is available with: >
|
||||
|
@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.2. Last change: 2022 Jan 28
|
||||
*index.txt* For Vim version 8.2. Last change: 2022 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1152,7 +1152,7 @@ tag command action ~
|
||||
|:&| :& repeat last ":substitute"
|
||||
|:star| :* execute contents of a register
|
||||
|:<| :< shift lines one 'shiftwidth' left
|
||||
|:=| := print the cursor line number
|
||||
|:=| := print the last line number
|
||||
|:>| :> shift lines one 'shiftwidth' right
|
||||
|:@| :@ execute contents of a register
|
||||
|:@@| :@@ repeat the previous ":@"
|
||||
|
@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*options.txt* For Vim version 8.2. Last change: 2022 Feb 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -8974,7 +8974,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
mode. On pressing 'wildchar' (usually <Tab>) to invoke completion,
|
||||
the possible matches are shown just above the command line, with the
|
||||
first match highlighted (overwriting the status line, if there is
|
||||
one). Keys that show the previous/next match, such as <Tab> or
|
||||
one). This is the behavior without "pum" in 'wildoptions.
|
||||
Keys that show the previous/next match, such as <Tab> or
|
||||
CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
|
||||
When 'wildmode' is used, "wildmenu" mode is used where "full" is
|
||||
specified. "longest" and "list" do not start "wildmenu" mode.
|
||||
@ -8982,10 +8983,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
If there are more matches than can fit in the line, a ">" is shown on
|
||||
the right and/or a "<" is shown on the left. The status line scrolls
|
||||
as needed.
|
||||
When 'wildoptions' contains "pum", then the completion matches are
|
||||
shown in a popup menu.
|
||||
The "wildmenu" mode is abandoned when a key is hit that is not used
|
||||
for selecting a completion.
|
||||
While the "wildmenu" is active the following keys have special
|
||||
meanings:
|
||||
While the "wildmenu" is active, not using the popup menu, the
|
||||
following keys have special meanings:
|
||||
|
||||
<Left> <Right> - select previous/next match (like CTRL-P/CTRL-N)
|
||||
<Down> - in filename/menu name completion: move into a
|
||||
@ -8995,6 +8998,21 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<Up> - in filename/menu name completion: move up into
|
||||
parent directory or parent menu.
|
||||
|
||||
When using the popup menu for command line completion, the following
|
||||
keys have special meanings:
|
||||
<Down> - select next match (like CTRL-N)
|
||||
<Left> - in filename/menu name completion: move up into
|
||||
parent directory or parent menu.
|
||||
<Right> - in filename/menu name completion: move into a
|
||||
subdirectory or submenu.
|
||||
<Up> - select previous match (like CTRL-P)
|
||||
CTRL-E - end completion, go back to what was there before
|
||||
selecting a match.
|
||||
CTRL-N - go to the next entry
|
||||
CTRL-P - go to the previous entry
|
||||
CTRL-Y - accept the currently selected match and stop
|
||||
completion.
|
||||
|
||||
This makes the menus accessible from the console |console-menus|.
|
||||
|
||||
If you prefer the <Left> and <Right> keys to move the cursor instead
|
||||
@ -9057,14 +9075,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
{not available when compiled without the |+wildignore|
|
||||
feature}
|
||||
A list of words that change how command line completion is done.
|
||||
Currently only one word is allowed:
|
||||
A list of words that change how |cmdline-completion| is done.
|
||||
The following values are supported:
|
||||
pum Display the completion matches using the popupmenu
|
||||
in the same style as the |ins-completion-menu|.
|
||||
tagfile When using CTRL-D to list matching tags, the kind of
|
||||
tag and the file of the tag is listed. Only one match
|
||||
is displayed per line. Often used tag kinds are:
|
||||
d #define
|
||||
f function
|
||||
Also see |cmdline-completion|.
|
||||
|
||||
*'winaltkeys'* *'wak'*
|
||||
'winaltkeys' 'wak' string (default "menu")
|
||||
|
@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2022 Jan 04
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2022 Feb 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1385,12 +1385,17 @@ Basic items
|
||||
%f file name (finds a string)
|
||||
%o module name (finds a string)
|
||||
%l line number (finds a number)
|
||||
%e end line number (finds a number)
|
||||
%c column number (finds a number representing character
|
||||
column of the error, byte index, a <tab> is 1
|
||||
character column)
|
||||
%v virtual column number (finds a number representing
|
||||
screen column of the error (1 <tab> == 8 screen
|
||||
columns))
|
||||
%k end column number (finds a number representing
|
||||
the character column of the error, byte index, or a
|
||||
number representing screen end column of the error if
|
||||
it's used with %v)
|
||||
%t error type (finds a single character):
|
||||
e - error message
|
||||
w - warning message
|
||||
|
@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2022 Feb 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -3713,12 +3713,13 @@ DEFINING CASE *:syn-case* *E390*
|
||||
items until the next ":syntax case" command are affected.
|
||||
|
||||
:sy[ntax] case
|
||||
Show either "syntax case match" or "syntax case ignore" (translated).
|
||||
Show either "syntax case match" or "syntax case ignore".
|
||||
|
||||
|
||||
DEFINING FOLDLEVEL *:syn-foldlevel*
|
||||
|
||||
:sy[ntax] foldlevel [start | minimum]
|
||||
:sy[ntax] foldlevel start
|
||||
:sy[ntax] foldlevel minimum
|
||||
This defines how the foldlevel of a line is computed when using
|
||||
foldmethod=syntax (see |fold-syntax| and |:syn-fold|):
|
||||
|
||||
@ -3731,13 +3732,16 @@ DEFINING FOLDLEVEL *:syn-foldlevel*
|
||||
may close and open horizontally within a line.
|
||||
|
||||
:sy[ntax] foldlevel
|
||||
Show either "syntax foldlevel start" or "syntax foldlevel minimum".
|
||||
Show the current foldlevel method, either "syntax foldlevel start" or
|
||||
"syntax foldlevel minimum".
|
||||
|
||||
{not meaningful when Vim was compiled without |+folding| feature}
|
||||
|
||||
SPELL CHECKING *:syn-spell*
|
||||
|
||||
:sy[ntax] spell [toplevel | notoplevel | default]
|
||||
:sy[ntax] spell toplevel
|
||||
:sy[ntax] spell notoplevel
|
||||
:sy[ntax] spell default
|
||||
This defines where spell checking is to be done for text that is not
|
||||
in a syntax item:
|
||||
|
||||
@ -3752,8 +3756,8 @@ SPELL CHECKING *:syn-spell*
|
||||
To activate spell checking the 'spell' option must be set.
|
||||
|
||||
:sy[ntax] spell
|
||||
Show either "syntax spell toplevel", "syntax spell notoplevel" or
|
||||
"syntax spell default" (translated).
|
||||
Show the current syntax spell checking method, either "syntax spell
|
||||
toplevel", "syntax spell notoplevel" or "syntax spell default".
|
||||
|
||||
|
||||
SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
|
||||
@ -4352,7 +4356,7 @@ IMPLICIT CONCEAL *:syn-conceal-implicit*
|
||||
given explicitly.
|
||||
|
||||
:sy[ntax] conceal
|
||||
Show either "syntax conceal on" or "syntax conceal off" (translated).
|
||||
Show either "syntax conceal on" or "syntax conceal off".
|
||||
|
||||
==============================================================================
|
||||
8. Syntax patterns *:syn-pattern* *E401* *E402*
|
||||
|
@ -3948,6 +3948,7 @@ Dictionary-function eval.txt /*Dictionary-function*
|
||||
DiffUpdated autocmd.txt /*DiffUpdated*
|
||||
Digraphs digraph.txt /*Digraphs*
|
||||
DirChanged autocmd.txt /*DirChanged*
|
||||
DirChangedPre autocmd.txt /*DirChangedPre*
|
||||
E motion.txt /*E*
|
||||
E10 message.txt /*E10*
|
||||
E100 diff.txt /*E100*
|
||||
@ -4234,6 +4235,7 @@ E1262 vim9.txt /*E1262*
|
||||
E1263 eval.txt /*E1263*
|
||||
E1264 vim9.txt /*E1264*
|
||||
E1265 eval.txt /*E1265*
|
||||
E1266 if_pyth.txt /*E1266*
|
||||
E127 eval.txt /*E127*
|
||||
E128 eval.txt /*E128*
|
||||
E129 eval.txt /*E129*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*testing.txt* For Vim version 8.2. Last change: 2022 Feb 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*todo.txt* For Vim version 8.2. Last change: 2022 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -38,9 +38,18 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Disallow using "s:" in Vim9 script at the script level.
|
||||
Disallow a legacy function creating an s: variable in Vim9 script.
|
||||
|
||||
Once Vim9 is stable:
|
||||
- Check code coverage, add more tests if needed.
|
||||
- Use Vim9 for runtime files.
|
||||
- Check code coverage, add more tests if needed.
|
||||
vim9compile.c
|
||||
vim9execute.c
|
||||
vim9expr.c
|
||||
vim9instr.c
|
||||
vim9script.c
|
||||
vim9type.c
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
- Check performance with callgrind and kcachegrind.
|
||||
@ -4834,9 +4843,6 @@ Autocommands:
|
||||
CursorHoldC - CursorHold while command-line editing
|
||||
WinMoved - when windows have been moved around, e.g, ":wincmd J"
|
||||
SearchPost - After doing a search command (e.g. to do "M")
|
||||
PreDirChanged/PostDirChanged
|
||||
- Before/after ":cd" has been used (for changing the
|
||||
window title)
|
||||
ShutDown - when the system is about to shut down
|
||||
InsertCharPost - user typed a character in Insert mode, after inserting
|
||||
the char.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*uganda.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*uganda.txt* For Vim version 8.2. Last change: 2022 Feb 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -223,7 +223,7 @@ Canada: Contact Kuwasha in Surrey, Canada. They take care of the
|
||||
forwards 100% of the money to the project in Uganda. You can
|
||||
send them a one time donation directly.
|
||||
Please send me a note so that I know what has been donated
|
||||
because of Vim. Look on their for information about
|
||||
because of Vim. Look on their site for information about
|
||||
sponsorship: https://www.kuwasha.net/
|
||||
If you make a donation to Kuwasha you will receive a tax
|
||||
receipt which can be submitted with your tax return.
|
||||
@ -248,7 +248,7 @@ Credit Card: You can use PayPal to send money with a Credit card. This is
|
||||
The e-mail address for sending the money to is:
|
||||
Bram@iccf-holland.org
|
||||
|
||||
Others: Transfer to one of these accounts if possible:
|
||||
Others: Transfer to this account if possible:
|
||||
ING bank: IBAN: NL95 INGB 0004 5487 74
|
||||
Swift code: INGBNL2A
|
||||
under the name "stichting ICCF Holland", Amersfoort
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.2. Last change: 2022 Jan 28
|
||||
*usr_41.txt* For Vim version 8.2. Last change: 2022 Feb 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -2512,6 +2512,8 @@ continuation, as mentioned above |use-cpo-save|.
|
||||
For undoing the effect of an indent script, the b:undo_indent variable should
|
||||
be set accordingly.
|
||||
|
||||
Both these variables use legacy script syntax, not |Vim9| syntax.
|
||||
|
||||
|
||||
FILE NAME
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2022 Feb 04
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2022 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -57,13 +57,13 @@ rewrite old scripts, they keep working as before. You may want to use a few
|
||||
`:def` functions for code that needs to be fast.
|
||||
|
||||
:vim9[cmd] {cmd} *:vim9* *:vim9cmd* *E1164*
|
||||
Execute {cmd} using Vim9 script syntax and semantics.
|
||||
Useful when typing a command and in a legacy script or
|
||||
function.
|
||||
Evaluate and execute {cmd} using Vim9 script syntax and
|
||||
semantics. Useful when typing a command and in a legacy
|
||||
script or function.
|
||||
|
||||
:leg[acy] {cmd} *:leg* *:legacy* *E1189* *E1234*
|
||||
Execute {cmd} using legacy script syntax and semantics. Only
|
||||
useful in a Vim9 script or a :def function.
|
||||
Evaluate and execute {cmd} using legacy script syntax and
|
||||
semantics. Only useful in a Vim9 script or a :def function.
|
||||
Note that {cmd} cannot use local variables, since it is parsed
|
||||
with legacy expression syntax.
|
||||
|
||||
@ -219,20 +219,18 @@ be given.
|
||||
Functions and variables are script-local by default ~
|
||||
*vim9-scopes*
|
||||
When using `:function` or `:def` to specify a new function at the script level
|
||||
in a Vim9 script, the function is local to the script, as if "s:" was
|
||||
prefixed. Using the "s:" prefix is optional. To define a global function or
|
||||
variable the "g:" prefix must be used. For functions in an autoload script
|
||||
the "name#" prefix is sufficient. >
|
||||
in a Vim9 script, the function is local to the script. Like prefixing "s:" in
|
||||
legacy script. To define a global function or variable the "g:" prefix must
|
||||
be used. For functions in a script that is to be imported and in an autoload
|
||||
script "export" needs to be used. >
|
||||
def ThisFunction() # script-local
|
||||
def s:ThisFunction() # script-local
|
||||
def g:ThatFunction() # global
|
||||
def scriptname#function() # autoload
|
||||
export def Function() # for import and import 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
|
||||
script-local function. It is possible to define a global function by using
|
||||
the "g:" prefix.
|
||||
block it is defined in. It is not possible to define a script-local function.
|
||||
It is possible to define a global function by using the "g:" prefix.
|
||||
|
||||
When referring to a function and no "s:" or "g:" prefix is used, Vim will
|
||||
search for the function:
|
||||
@ -244,6 +242,13 @@ start with an upper case letter even when using the "s:" prefix. In legacy
|
||||
script "s:funcref" could be used, because it could not be referred to with
|
||||
"funcref". In Vim9 script it can, therefore "s:Funcref" must be used to avoid
|
||||
that the name interferes with builtin functions.
|
||||
*vim9-s-namespace*
|
||||
The use of the "s:" prefix is not supported at the Vim9 script level. All
|
||||
functions and variables without a prefix are script-local.
|
||||
In :def functions the use of "s:" is optional. This is because in legacy
|
||||
script the "s:" might be needed. Disallowing the use of "s:" only in a :def
|
||||
function in Vim9 script would be a bit confusing.
|
||||
In legacy functions the use of "s:" for script items is required, as before.
|
||||
|
||||
In all cases the function must be defined before used. That is when it is
|
||||
called, when `:defcompile` causes it to be compiled, or when code that calls
|
||||
@ -280,7 +285,9 @@ You want to use this in scripts that use a `finish` command to bail out at
|
||||
some point when loaded again. E.g. when a buffer local option is set: >
|
||||
vim9script noclear
|
||||
setlocal completefunc=SomeFunc
|
||||
if exists('*g:SomeFunc') | finish | endif
|
||||
if exists('*g:SomeFunc')
|
||||
finish
|
||||
endif
|
||||
def g:SomeFunc()
|
||||
....
|
||||
|
||||
@ -1398,14 +1405,24 @@ Results in:
|
||||
For script-local variables in Vim9 script the type is checked, also when the
|
||||
variable was declared in a legacy function.
|
||||
|
||||
When a type has been declared this is attached to a list or string. When
|
||||
When a type has been declared this is attached to a List or Dictionary. When
|
||||
later some expression attempts to change the type an error will be given: >
|
||||
var ll: list<number> = [1, 2, 3]
|
||||
ll->extend(['x']) # Error, 'x' is not a number
|
||||
|
||||
If the type is inferred then the type is allowed to change: >
|
||||
If the type is not declared then it is allowed to change: >
|
||||
[1, 2, 3]->extend(['x']) # result: [1, 2, 3, 'x']
|
||||
|
||||
For a variable declaration an inferred type matters: >
|
||||
var ll = [1, 2, 3]
|
||||
ll->extend(['x']) # Error, 'x' is not a number
|
||||
That is because the declaration looks like a list of numbers, thus is
|
||||
equivalent to: >
|
||||
var ll: list<number> = [1, 2, 3]
|
||||
If you do want a more permissive list you need to declare the type: >
|
||||
var ll: list<any = [1, 2, 3]
|
||||
ll->extend(['x']) # OK
|
||||
|
||||
|
||||
Stricter type checking ~
|
||||
*type-checking*
|
||||
|
@ -1547,6 +1547,9 @@ au BufNewFile,BufRead *.r,*.R call dist#ft#FTr()
|
||||
" Remind
|
||||
au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind
|
||||
|
||||
" ReScript
|
||||
au BufNewFile,BufRead *.res,*.resi setf rescript
|
||||
|
||||
" Resolv.conf
|
||||
au BufNewFile,BufRead resolv.conf setf resolv
|
||||
|
||||
|
@ -1,20 +1,28 @@
|
||||
" Vim support file to switch on loading plugins for file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2022 Feb 04
|
||||
vim9script noclear
|
||||
|
||||
if exists("did_load_ftplugin")
|
||||
# Vim support file to switch on loading plugins for file types
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last change: 2022 Feb 11
|
||||
|
||||
if exists("g:did_load_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let did_load_ftplugin = 1
|
||||
g:did_load_ftplugin = 1
|
||||
|
||||
augroup filetypeplugin
|
||||
au FileType * call s:LoadFTPlugin()
|
||||
au FileType * call LoadFTPlugin()
|
||||
augroup END
|
||||
|
||||
def s:LoadFTPlugin()
|
||||
if exists('*LoadFTPlugin')
|
||||
# No need to define the function again.
|
||||
finish
|
||||
endif
|
||||
|
||||
def LoadFTPlugin()
|
||||
if exists("b:undo_ftplugin")
|
||||
exe b:undo_ftplugin
|
||||
# We assume b:undo_ftplugin is using legacy script syntax
|
||||
legacy exe b:undo_ftplugin
|
||||
unlet! b:undo_ftplugin b:did_ftplugin
|
||||
endif
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
" Vim support file to switch off loading plugins for file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2011 Oct 20
|
||||
vim9script
|
||||
|
||||
if exists("did_load_ftplugin")
|
||||
unlet did_load_ftplugin
|
||||
# Vim support file to switch off loading plugins for file types
|
||||
#
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2022 Feb 09
|
||||
|
||||
if exists("g:did_load_ftplugin")
|
||||
unlet g:did_load_ftplugin
|
||||
endif
|
||||
|
||||
" Remove all autocommands in the filetypeplugin group, if any exist.
|
||||
# Remove all autocommands in the filetypeplugin group, if any exist.
|
||||
if exists("#filetypeplugin")
|
||||
silent! au! filetypeplugin *
|
||||
endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim support file to switch on loading indent files for file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2022 Feb 04
|
||||
" Last Change: 2022 Feb 11
|
||||
|
||||
if exists("did_indent_on")
|
||||
finish
|
||||
@ -14,7 +14,7 @@ augroup END
|
||||
|
||||
def s:LoadIndent()
|
||||
if exists("b:undo_indent")
|
||||
exe b:undo_indent
|
||||
legacy exe b:undo_indent
|
||||
unlet! b:undo_indent b:did_indent
|
||||
endif
|
||||
var s = expand("<amatch>")
|
||||
|
@ -1201,8 +1201,8 @@ an 50.710 &Syntax.Co&lor\ Test :sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR
|
||||
an 50.720 &Syntax.&Highlight\ Test :runtime syntax/hitest.vim<CR>
|
||||
an 50.730 &Syntax.&Convert\ to\ HTML :runtime syntax/2html.vim<CR>
|
||||
|
||||
" Uncomment this to compile the functions early to find any mistakes
|
||||
defcompile
|
||||
" Uncomment the next line to compile the functions early to find any mistakes
|
||||
" defcompile
|
||||
|
||||
endif " !exists("did_install_syntax_menu")
|
||||
|
||||
|
102
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim
vendored
102
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim
vendored
@ -7,51 +7,57 @@
|
||||
" Attached is a Vim script file for turning gvim into a shell script editor.
|
||||
" It may also be used as an example how to use menus in Vim.
|
||||
"
|
||||
" Written by: Lennart Schultz <les@dmi.min.dk>
|
||||
" Maintainer: Ada (Haowen) Yu <me@yuhaowen.com>
|
||||
" Original author: Lennart Schultz <les@dmi.min.dk> (mail unreachable)
|
||||
|
||||
imenu Stmts.for for in
|
||||
do
|
||||
|
||||
doneki kk0elli
|
||||
imenu Stmts.case case in
|
||||
) ;;
|
||||
" Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
|
||||
" <CR> would not be recognized. See ":help 'cpoptions'".
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
imenu Stmts.for for in <CR>do<CR><CR>done<esc>ki <esc>kk0elli
|
||||
imenu Stmts.case case in<CR>) ;;<CR>esac<esc>bki <esc>k0elli
|
||||
imenu Stmts.if if <CR>then<CR><CR>fi<esc>ki <esc>kk0elli
|
||||
imenu Stmts.if-else if <CR>then<CR><CR>else<CR><CR>fi<esc>ki <esc>kki <esc>kk0elli
|
||||
imenu Stmts.elif elif <CR>then<CR><CR><esc>ki <esc>kk0elli
|
||||
imenu Stmts.while while do<CR><CR>done<esc>ki <esc>kk0elli
|
||||
imenu Stmts.break break
|
||||
imenu Stmts.continue continue
|
||||
then
|
||||
imenu Stmts.function () {<CR><CR>}<esc>ki <esc>k0i
|
||||
imenu Stmts.return return
|
||||
imenu Stmts.return-true return 0
|
||||
imenu Stmts.return-false return 1
|
||||
imenu Stmts.exit exit
|
||||
imenu Stmts.shift shift
|
||||
imenu Stmts.trap trap
|
||||
|
||||
fiki kki kk0elli
|
||||
imenu Stmts.elif elif
|
||||
then
|
||||
|
||||
ki kk0elli
|
||||
imenu Stmts.while while
|
||||
do
|
||||
|
||||
doneki kk0elli
|
||||
imenu Stmts.break break
|
||||
imenu Stmts.continue continue
|
||||
imenu Stmts.function () {
|
||||
|
||||
}ki k0i
|
||||
imenu Stmts.return return
|
||||
imenu Stmts.return-true return 0
|
||||
imenu Stmts.return-false return 1
|
||||
imenu Stmts.exit exit
|
||||
imenu Stmts.shift shift
|
||||
imenu Stmts.trap trap
|
||||
imenu Test.existence [ -e ]hi
|
||||
imenu Test.existence - file [ -f ]hi
|
||||
imenu Test.existence - file (not empty) [ -s ]hi
|
||||
imenu Test.existence - directory [ -d ]hi
|
||||
imenu Test.existence - executable [ -x ]hi
|
||||
imenu Test.existence - readable [ -r ]hi
|
||||
imenu Test.existence - writable [ -w ]hi
|
||||
imenu Test.existence [ -e ]<esc>hi
|
||||
imenu Test.existence\ -\ file [ -f ]<esc>hi
|
||||
imenu Test.existence\ -\ file\ (not\ empty) [ -s ]<esc>hi
|
||||
imenu Test.existence\ -\ directory [ -d ]<esc>hi
|
||||
imenu Test.existence\ -\ executable [ -x ]<esc>hi
|
||||
imenu Test.existence\ -\ readable [ -r ]<esc>hi
|
||||
imenu Test.existence\ -\ writable [ -w ]<esc>hi
|
||||
imenu Test.String\ is\ empty [ x = "x$" ]<esc>hhi
|
||||
imenu Test.String\ is\ not\ empty [ x != "x$" ]<esc>hhi
|
||||
imenu Test.Strings\ is\ equal [ "" = "" ]<esc>hhhhhhhi
|
||||
imenu Test.Strings\ is\ not\ equal [ "" != "" ]<esc>hhhhhhhhi
|
||||
imenu Test.Values\ is\ greater\ than [ -gt ]<esc>hhhhhhi
|
||||
imenu Test.Values\ is\ greater\ equal [ -ge ]<esc>hhhhhhi
|
||||
imenu Test.Values\ is\ equal [ -eq ]<esc>hhhhhhi
|
||||
imenu Test.Values\ is\ not\ equal [ -ne ]<esc>hhhhhhi
|
||||
imenu Test.Values\ is\ less\ than [ -lt ]<esc>hhhhhhi
|
||||
imenu Test.Values\ is\ less\ equal [ -le ]<esc>hhhhhhi
|
||||
imenu ParmSub.Substitute\ word\ if\ parm\ not\ set ${:-}<esc>hhi
|
||||
imenu ParmSub.Set\ parm\ to\ word\ if\ not\ set ${:=}<esc>hhi
|
||||
imenu ParmSub.Substitute\ word\ if\ parm\ set\ else\ nothing ${:+}<esc>hhi
|
||||
imenu ParmSub.If\ parm\ not\ set\ print\ word\ and\ exit ${:?}<esc>hhi
|
||||
imenu SpShVars.Number\ of\ positional\ parameters ${#}
|
||||
imenu SpShVars.All\ positional\ parameters\ (quoted\ spaces) ${*}
|
||||
imenu SpShVars.All\ positional\ parameters\ (unquoted\ spaces) ${@}
|
||||
imenu SpShVars.Flags\ set ${-}
|
||||
imenu SpShVars.Return\ code\ of\ last\ command ${?}
|
||||
imenu SpShVars.Process\ number\ of\ this\ shell ${$}
|
||||
imenu SpShVars.Process\ number\ of\ last\ background\ command ${!}
|
||||
imenu Environ.HOME ${HOME}
|
||||
imenu Environ.PATH ${PATH}
|
||||
imenu Environ.CDPATH ${CDPATH}
|
||||
@ -82,13 +88,17 @@ imenu Builtins.umask umask
|
||||
imenu Builtins.wait wait
|
||||
imenu Set.set set
|
||||
imenu Set.unset unset
|
||||
imenu Environ.SHELL ${SHELL}
|
||||
imenu Environ.LC_CTYPE ${LC_CTYPE}
|
||||
imenu Environ.LC_MESSAGES ${LC_MESSAGES}
|
||||
imenu Builtins.cd cd
|
||||
imenu Builtins.echo echo
|
||||
imenu Builtins.eval eval
|
||||
imenu Builtins.exec exec
|
||||
imenu Builtins.export export
|
||||
imenu Builtins.getopts getopts
|
||||
imenu Builtins.hash hash
|
||||
imenu Set.mark\ modified\ or\ modified\ variables set -a
|
||||
imenu Set.exit\ when\ command\ returns\ non-zero\ exit\ code set -e
|
||||
imenu Set.Disable\ file\ name\ generation set -f
|
||||
imenu Set.remember\ function\ commands set -h
|
||||
imenu Set.All\ keyword\ arguments\ are\ placed\ in\ the\ environment set -k
|
||||
imenu Set.Read\ commands\ but\ do\ not\ execute\ them set -n
|
||||
imenu Set.Exit\ after\ reading\ and\ executing\ one\ command set -t
|
||||
imenu Set.Treat\ unset\ variables\ as\ an\ error\ when\ substituting set -u
|
||||
imenu Set.Print\ shell\ input\ lines\ as\ they\ are\ read set -v
|
||||
imenu Set.Print\ commands\ and\ their\ arguments\ as\ they\ are\ executed set -x
|
||||
|
||||
" Restore the previous value of 'cpoptions'.
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.2 script
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: February 01, 2022
|
||||
" Version: 8.2-27
|
||||
" Last Change: February 09, 2022
|
||||
" Version: 8.2-28
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@ -66,8 +66,8 @@ syn keyword vimErrSetting contained bioskey biosk conskey consk autoprint beauti
|
||||
|
||||
" AutoCmd Events {{{2
|
||||
syn case ignore
|
||||
syn keyword vimAutoEvent contained BufAdd BufDelete BufFilePost BufHidden BufNew BufRead BufReadPost BufUnload BufWinLeave BufWrite BufWritePost CmdlineChanged CmdlineLeave CmdwinEnter ColorScheme ColorSchemePre CompleteChanged CompleteDone CompleteDonePre CursorHold CursorHoldI CursorMoved CursorMovedI DiffUpdated DirChanged EncodingChanged ExitPre FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileExplorer FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave InsertLeavePre MenuPopup ModeChanged OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SafeState SafeStateAgain SessionLoadPost ShellCmdPost ShellFilterPost SigUSR1 SourceCmd SourcePost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TerminalOpen TerminalWinOpen TermResponse TextChanged TextChangedI TextChangedP TextYankPost User VimEnter VimLeave VimLeavePre VimResized VimResume VimSuspend WinClosed WinEnter WinLeave WinNew
|
||||
syn keyword vimAutoEvent contained BufCreate BufEnter BufFilePre BufLeave BufNewFile BufReadCmd BufReadPre BufWinEnter BufWipeout BufWriteCmd BufWritePre CmdlineEnter CmdUndefined CmdwinLeave
|
||||
syn keyword vimAutoEvent contained BufAdd BufDelete BufFilePost BufHidden BufNew BufRead BufReadPost BufUnload BufWinLeave BufWrite BufWritePost CmdlineChanged CmdlineLeave CmdwinEnter ColorScheme CompleteChanged CompleteDone CompleteDonePre CursorHold CursorHoldI CursorMoved CursorMovedI DiffUpdated DirChanged DirChangedPre EncodingChanged ExitPre FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileExplorer FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave InsertLeavePre MenuPopup ModeChanged OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SafeState SafeStateAgain SessionLoadPost ShellCmdPost ShellFilterPost SigUSR1 SourceCmd SourcePost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TerminalOpen TerminalWinOpen TermResponse TextChanged TextChangedI TextChangedP TextYankPost User VimEnter VimLeave VimLeavePre VimResized VimResume VimSuspend WinClosed WinEnter WinLeave WinNew
|
||||
syn keyword vimAutoEvent contained BufCreate BufEnter BufFilePre BufLeave BufNewFile BufReadCmd BufReadPre BufWinEnter BufWipeout BufWriteCmd BufWritePre CmdlineEnter CmdUndefined CmdwinLeave ColorSchemePre
|
||||
|
||||
" Highlight commonly used Groupnames {{{2
|
||||
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
|
||||
|
@ -955,7 +955,7 @@ NOTE: Completion works for many commands. Just try pressing CTRL-D and
|
||||
Publisher: New Riders
|
||||
The first book completely dedicated to Vim. Especially useful for beginners.
|
||||
There are many examples and pictures.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
This book is older and more about Vi than Vim, but also recommended:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -954,7 +954,7 @@ Anm
|
||||
Verlaag: New Riders
|
||||
D<>s ist d<>s eerste Buech, wo ganz yn n Wimm gwidmt ist, netty d<>s Grechte f<>r
|
||||
Anf<6E>nger. Es haat ayn W<>sn Beispiler und aau Bilder drinn.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
D<>s folgete Buech ist schoon <20>lter und meerer <20>ber n Urwimm als wie <20>ber n
|
||||
Wimm, aber aau zo n Empfelhen: Textbearbeitung mit dem vi-Editor - von dyr
|
||||
@ -968,7 +968,7 @@ Anm
|
||||
mitp-Verlaag, Buechlaittzal 978-3-8266-1781-2
|
||||
Trotz dyr recht pfrengen Darst<73>llung ist s durch seine viln n<>tzlichnen Bei-
|
||||
spiler aau f<>r Einsteiger grad grecht. Probhaeupster und de Beispilschripfer
|
||||
seind zesig zo n Kriegn; see http://iccf-holland.org/click5.html
|
||||
seind zesig zo n Kriegn; see https://iccf-holland.org/click5.html
|
||||
|
||||
Verfasst habnd d<>nn Schainer dyr PIERCE Michael C. und WARE Robert K. von dyr
|
||||
Kolraader Knappnschuel (Colorado School of Mines). Er beruet auf Entw<74>rff, wo
|
||||
|
@ -954,7 +954,7 @@ Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfa
|
||||
Verlaag: New Riders
|
||||
Dös ist dös eerste Buech, wo ganz yn n Wimm gwidmt ist, netty dös Grechte für
|
||||
Anfönger. Es haat ayn Wösn Beispiler und aau Bilder drinn.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
Dös folgete Buech ist schoon ölter und meerer über n Urwimm als wie über n
|
||||
Wimm, aber aau zo n Empfelhen: Textbearbeitung mit dem vi-Editor - von dyr
|
||||
@ -968,7 +968,7 @@ Anmörkung: D Vergöntzung geit s für aynn Hauffen Faudungen. Versuech ainfa
|
||||
mitp-Verlaag, Buechlaittzal 978-3-8266-1781-2
|
||||
Trotz dyr recht pfrengen Darstöllung ist s durch seine viln nützlichnen Bei-
|
||||
spiler aau für Einsteiger grad grecht. Probhaeupster und de Beispilschripfer
|
||||
seind zesig zo n Kriegn; see http://iccf-holland.org/click5.html
|
||||
seind zesig zo n Kriegn; see https://iccf-holland.org/click5.html
|
||||
|
||||
Verfasst habnd dönn Schainer dyr PIERCE Michael C. und WARE Robert K. von dyr
|
||||
Kolraader Knappnschuel (Colorado School of Mines). Er beruet auf Entwürff, wo
|
||||
|
@ -1017,7 +1017,7 @@
|
||||
Издател: New Riders
|
||||
Това е първата книга, изцяло посветена на Vim. Особено полезна е за
|
||||
начинаещи. В нея ще намерите много примери и картинки.
|
||||
Вижте http://iccf-holland.org/click5.html
|
||||
Вижте https://iccf-holland.org/click5.html
|
||||
|
||||
Следната книга е по-стара и по-скоро за Vi отколкото за Vim, но също се препоръчва:
|
||||
Learning the Vi Editor - от Linda Lamb
|
||||
|
@ -792,7 +792,7 @@ Nota: Aix
|
||||
Editorial: New Riders
|
||||
<20>s el primer llibre dedicat completament al Vim, especialment <20>til per a
|
||||
usuaris novells. Cont<6E> molts exemples i diagrames.
|
||||
Vegeu http://iccf-holland.org/click5.html
|
||||
Vegeu https://iccf-holland.org/click5.html
|
||||
|
||||
Aquest altre <20>s m<>s vell i tracta m<>s sobre el Vi que sobre el Vim:
|
||||
Learning the Vi Editor - de Linda Lamb
|
||||
|
@ -792,7 +792,7 @@ Nota: Així s'evita haver de prémer i , l'últim caràcter, el text a inserir,
|
||||
Editorial: New Riders
|
||||
És el primer llibre dedicat completament al Vim, especialment útil per a
|
||||
usuaris novells. Conté molts exemples i diagrames.
|
||||
Vegeu http://iccf-holland.org/click5.html
|
||||
Vegeu https://iccf-holland.org/click5.html
|
||||
|
||||
Aquest altre és més vell i tracta més sobre el Vi que sobre el Vim:
|
||||
Learning the Vi Editor - de Linda Lamb
|
||||
|
@ -791,7 +791,7 @@ Pozn
|
||||
Nakladatel: New Riders
|
||||
Prvn<EFBFBD> kniha ur<EFBFBD>en<EFBFBD> pro Vim. Obzvl<EFBFBD><EFBFBD>t<EFBFBD> vhodn<EFBFBD> pro za<EFBFBD><EFBFBD>te<EFBFBD>n<EFBFBD>ky.
|
||||
Obsahuje mno<EFBFBD>stv<EFBFBD> p<EFBFBD><EFBFBD>klad<EFBFBD> a obr<EFBFBD>zk<EFBFBD>.
|
||||
viz http://iccf-holland.org/click5.html
|
||||
viz https://iccf-holland.org/click5.html
|
||||
|
||||
Tato kniha je star<EFBFBD><EFBFBD> a v<EFBFBD>ce v<EFBFBD>novan<EFBFBD> Vi ne<EFBFBD> Vim, ale tak<EFBFBD> doporu<EFBFBD>en<EFBFBD>:
|
||||
Learning the Vi Editor - od Linda Lamb
|
||||
|
@ -791,7 +791,7 @@ Pozn
|
||||
Nakladatel: New Riders
|
||||
Prvn<76> kniha ur<75>en<65> pro Vim. Obzvl<76><6C>t<EFBFBD> vhodn<64> pro za<7A><61>te<74>n<EFBFBD>ky.
|
||||
Obsahuje mno<6E>stv<74> p<><70>klad<61> a obr<62>zk<7A>.
|
||||
viz http://iccf-holland.org/click5.html
|
||||
viz https://iccf-holland.org/click5.html
|
||||
|
||||
Tato kniha je star<61><72> a v<>ce v<>novan<61> Vi ne<6E> Vim, ale tak<61> doporu<72>en<65>:
|
||||
Learning the Vi Editor - od Linda Lamb
|
||||
|
@ -791,7 +791,7 @@ Poznámka: Tímto se vyhneš stisknutí i , posledního znaku, textu na vlože
|
||||
Nakladatel: New Riders
|
||||
První kniha určená pro Vim. Obzvláště vhodná pro začátečníky.
|
||||
Obsahuje množství příkladů a obrázků.
|
||||
viz http://iccf-holland.org/click5.html
|
||||
viz https://iccf-holland.org/click5.html
|
||||
|
||||
Tato kniha je starší a více věnovaná Vi než Vim, ale také doporučená:
|
||||
Learning the Vi Editor - od Linda Lamb
|
||||
|
@ -953,7 +953,7 @@ BEM
|
||||
Forlag: New Riders
|
||||
Den f<>rste bog som helt er tilegnet Vim. Specielt nyttig for begyndere.
|
||||
Der er mange eksempler og billeder.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Denne bog er <20>ldre og mere om Vi end Vim, men anbefales ogs<67>:
|
||||
Learning the Vi Editor - af Linda Lamb
|
||||
|
@ -953,7 +953,7 @@ BEMÆRK: Fuldførelse virker til mange kommandoer. Prøv blot at trykke på
|
||||
Forlag: New Riders
|
||||
Den første bog som helt er tilegnet Vim. Specielt nyttig for begyndere.
|
||||
Der er mange eksempler og billeder.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Denne bog er ældre og mere om Vi end Vim, men anbefales også:
|
||||
Learning the Vi Editor - af Linda Lamb
|
||||
|
@ -956,7 +956,7 @@ Anmerkung: Vervollst
|
||||
Verlag: New Riders
|
||||
Das erste Buch, welches durchg<68>ngig Vim gewidmet ist. Besonders n<>tzlich
|
||||
f<>r Anf<6E>nger. Viele Beispiele und Bilder sind enthalten.
|
||||
Siehe http://iccf-holland.org/click5.html
|
||||
Siehe https://iccf-holland.org/click5.html
|
||||
|
||||
Folgendes Buch ist <20>lter und mehr <20>ber Vi als Vim, aber auch empfehlenswert:
|
||||
Textbearbeitung mit dem Vi-Editor - von Linda Lamb und Arnold Robbins
|
||||
@ -970,7 +970,7 @@ Anmerkung: Vervollst
|
||||
mitp-Verlag, ISBN 3-8266-1425-9
|
||||
Trotz der kompakten Darstellung ist es durch viele n<>tzliche Beispiele auch
|
||||
f<>r Einsteiger empfehlenswert. Probekapitel und die Beispielskripte sind
|
||||
online erh<72>ltlich. Siehe http://iccf-holland.org/click5.html
|
||||
online erh<72>ltlich. Siehe https://iccf-holland.org/click5.html
|
||||
|
||||
Dieses Tutorial wurde geschrieben von Michael C. Pierce und Robert K. Ware,
|
||||
Colorado School of Mines. Es benutzt Ideen, die Charles Smith, Colorado State
|
||||
|
@ -956,7 +956,7 @@ Anmerkung: Vervollständigung funktioniert für viele Kommandos. Probiere
|
||||
Verlag: New Riders
|
||||
Das erste Buch, welches durchgängig Vim gewidmet ist. Besonders nützlich
|
||||
für Anfänger. Viele Beispiele und Bilder sind enthalten.
|
||||
Siehe http://iccf-holland.org/click5.html
|
||||
Siehe https://iccf-holland.org/click5.html
|
||||
|
||||
Folgendes Buch ist älter und mehr über Vi als Vim, aber auch empfehlenswert:
|
||||
Textbearbeitung mit dem Vi-Editor - von Linda Lamb und Arnold Robbins
|
||||
@ -970,7 +970,7 @@ Anmerkung: Vervollständigung funktioniert für viele Kommandos. Probiere
|
||||
mitp-Verlag, ISBN 3-8266-1425-9
|
||||
Trotz der kompakten Darstellung ist es durch viele nützliche Beispiele auch
|
||||
für Einsteiger empfehlenswert. Probekapitel und die Beispielskripte sind
|
||||
online erhältlich. Siehe http://iccf-holland.org/click5.html
|
||||
online erhältlich. Siehe https://iccf-holland.org/click5.html
|
||||
|
||||
Dieses Tutorial wurde geschrieben von Michael C. Pierce und Robert K. Ware,
|
||||
Colorado School of Mines. Es benutzt Ideen, die Charles Smith, Colorado State
|
||||
|
@ -796,7 +796,7 @@
|
||||
<09><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Vim.
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> http://iccf-holland.org/click5.html
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> Vi <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> Vim,
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
@ -796,7 +796,7 @@
|
||||
<09><> <20><>髦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⤦ <20><><EFBFBD><EFBFBD> Vim.
|
||||
<09><><EFBFBD><EFBFBD>嫜<EFBFBD><E5AB9C> <20><>㩠<EFBFBD><E3A9A0> <20><><EFBFBD> <20><><EFBFBD>ᨠ<EFBFBD><E1A8A0><EFBFBD>.
|
||||
<09><>ᨮ<EFBFBD><E1A8AE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚣<EFBFBD><E59AA3><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>検<EFBFBD>.
|
||||
<09><>嫜 <20><><EFBFBD> http://iccf-holland.org/click5.html
|
||||
<09><>嫜 <20><><EFBFBD> https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>夘<EFBFBD> <20><><EFBFBD><EFBFBD>櫜<EFBFBD><E6AB9C> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>櫜<EFBFBD><E6AB9C> <20><><EFBFBD> <20><><EFBFBD> Vi <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> Vim,
|
||||
<20><><EFBFBD><EFBFBD> <20><>婞<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飜<EFBFBD><E9A39C>:
|
||||
|
@ -796,7 +796,7 @@
|
||||
Το πρώτο βιβλίο πλήρως αφιερωμένο στον Vim.
|
||||
Ιδιαίτερα χρήσιμο για αρχάριους.
|
||||
Υπάρχουν πολλά παραδείγματα και εικόνες.
|
||||
Δείτε την http://iccf-holland.org/click5.html
|
||||
Δείτε την https://iccf-holland.org/click5.html
|
||||
|
||||
Αυτό το βιβλίο είναι παλιότερο και περισσότερο για τον Vi παρά για τον Vim,
|
||||
αλλά επίσης συνιστώμενο:
|
||||
|
@ -951,7 +951,7 @@ NAPOMENA: Mogu
|
||||
Izdava<76>: New Riders
|
||||
Prva knjiga potpuno posve<76>ena Vim-u. Vrlo korisna za po<70>etnike.
|
||||
Sa mnogo primjera i slika.
|
||||
Posjetite http://iccf-holland.org/click5.html
|
||||
Posjetite https://iccf-holland.org/click5.html
|
||||
|
||||
Sljede<64>a knjiga je ne<6E>to starija i vi<76>e o Vi-u nego o Vim-u, preporu<72>amo:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -951,7 +951,7 @@ NAPOMENA: Mogu
|
||||
Izdava<76>: New Riders
|
||||
Prva knjiga potpuno posve<76>ena Vim-u. Vrlo korisna za po<70>etnike.
|
||||
Sa mnogo primjera i slika.
|
||||
Posjetite http://iccf-holland.org/click5.html
|
||||
Posjetite https://iccf-holland.org/click5.html
|
||||
|
||||
Sljede<64>a knjiga je ne<6E>to starija i vi<76>e o Vi-u nego o Vim-u, preporu<72>amo:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -951,7 +951,7 @@ NAPOMENA: Moguće je dopuniti mnoge naredbe. Koristite CTRL-D i <TAB>.
|
||||
Izdavač: New Riders
|
||||
Prva knjiga potpuno posvećena Vim-u. Vrlo korisna za početnike.
|
||||
Sa mnogo primjera i slika.
|
||||
Posjetite http://iccf-holland.org/click5.html
|
||||
Posjetite https://iccf-holland.org/click5.html
|
||||
|
||||
Sljedeća knjiga je nešto starija i više o Vi-u nego o Vim-u, preporučamo:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -810,7 +810,7 @@ Megj: A Vimben a sor legv
|
||||
Publisher: New Riders
|
||||
The first book completely dedicated to Vim. Especially useful for beginners.
|
||||
There are many examples and pictures.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
This book is older and more about Vi than Vim, but also recommended:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -810,7 +810,7 @@ Megj: A Vimben a sor legv
|
||||
Publisher: New Riders
|
||||
The first book completely dedicated to Vim. Especially useful for beginners.
|
||||
There are many examples and pictures.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
This book is older and more about Vi than Vim, but also recommended:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -810,7 +810,7 @@ Megj: A Vimben a sor legvégére is lehet állni, azonban ez elődjében
|
||||
Publisher: New Riders
|
||||
The first book completely dedicated to Vim. Especially useful for beginners.
|
||||
There are many examples and pictures.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
This book is older and more about Vi than Vim, but also recommended:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -951,7 +951,7 @@ NOTA: Il completamento
|
||||
Vim - Vi Improved - di Steve Oualline Editore: New Riders
|
||||
Il primo libro completamente dedicato a Vim. Utile specie per principianti.
|
||||
Contiene molti esempi e figure.
|
||||
Vedi http://iccf-holland.org/click5.html
|
||||
Vedi https://iccf-holland.org/click5.html
|
||||
|
||||
Quest'altro libro <20> pi<70> su Vi che su Vim, ma <20> pure consigliato:
|
||||
Learning the Vi Editor - di Linda Lamb e Arnold Robbins
|
||||
|
@ -951,7 +951,7 @@ NOTA: Il completamento è disponibile per molti comandi. Prova a battere
|
||||
Vim - Vi Improved - di Steve Oualline Editore: New Riders
|
||||
Il primo libro completamente dedicato a Vim. Utile specie per principianti.
|
||||
Contiene molti esempi e figure.
|
||||
Vedi http://iccf-holland.org/click5.html
|
||||
Vedi https://iccf-holland.org/click5.html
|
||||
|
||||
Quest'altro libro è più su Vi che su Vim, ma è pure consigliato:
|
||||
Learning the Vi Editor - di Linda Lamb e Arnold Robbins
|
||||
|
@ -955,7 +955,7 @@ NOTE:
|
||||
<09><><EFBFBD>Ǽ<EFBFBD>: New Riders
|
||||
<20>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD>ܤϴ<DCA4><CFB4><EFBFBD><EFBFBD><EFBFBD> Vim <20>Τ<EFBFBD><CEA4><EFBFBD><EFBFBD>˽<CBBD><F1A4ABA4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>櫓<EFBFBD>鿴<EFBFBD>ԤˤϤ<CBA4><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>
|
||||
¿<><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4>Ǻܤ<C7BA><DCA4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>URL<52>Ȥ<F2BBB2BE><C8A4>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD> http://iccf-holland.org/click5.html
|
||||
<20><><EFBFBD><EFBFBD>URL<52>Ȥ<F2BBB2BE><C8A4>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD> https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD> Vim <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vi <20>ˤĤ<CBA4><C4A4>ƽ줿<F1A4ABA4>Ť<EFBFBD><C5A4>ܤǤ<DCA4><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -955,7 +955,7 @@ NOTE:
|
||||
<09>o<EFBFBD>Ŏ<EFBFBD>: New Riders
|
||||
<20>ŏ<EFBFBD><C58F>̖{<7B>͊<EFBFBD><CD8A>S<EFBFBD><53> Vim <20>̂<EFBFBD><CC82>߂ɏ<DF82><C98F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B<EFBFBD>Ƃ<EFBFBD><C682>킯<EFBFBD><ED82AF><EFBFBD>S<EFBFBD>҂ɂ͂<C982><CD82><EFBFBD><EFBFBD>߂ł<DF82><C582>B
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>̗<EFBFBD><CC97><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>ł<EFBFBD><C582>f<EFBFBD>ڂ<EFBFBD><DA82><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B
|
||||
<20><><EFBFBD><EFBFBD>URL<52><4C><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD> http://iccf-holland.org/click5.html
|
||||
<20><><EFBFBD><EFBFBD>URL<52><4C><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD> https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD> Vim <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vi <20>ɂ<C982><C282>ď<EFBFBD><C48F><EFBFBD><EFBFBD>ꂽ<EFBFBD>Â<EFBFBD><C382>{<7B>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD><45><EFBFBD>܂<EFBFBD>:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -955,7 +955,7 @@ NOTE: 補完は多くのコマンドで動作します。そして CTRL-D と <T
|
||||
出版社: New Riders
|
||||
最初の本は完全に Vim のために書かれました。とりわけ初心者にはお奨めです。
|
||||
多くの例題や図版が掲載されています。
|
||||
次のURLを参照して下さい http://iccf-holland.org/click5.html
|
||||
次のURLを参照して下さい https://iccf-holland.org/click5.html
|
||||
|
||||
次は Vim よりも Vi について書かれた古い本ですが推薦します:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -949,7 +949,7 @@ ce 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
출판사: New Riders
|
||||
이 책은 완전히 빔에 대해서만 다루고 있습니다. 특히 초보자들에게 유용합니다.
|
||||
많은 예제와 그림이 있습니다.
|
||||
다음을 참고하십시오: http://iccf-holland.org/click5.html
|
||||
다음을 참고하십시오: https://iccf-holland.org/click5.html
|
||||
|
||||
다음 책은 좀 오래된 책으로 빔보다는 Vi에 대해 다루고 있지만, 역시 추천할 만
|
||||
합니다:
|
||||
|
@ -949,7 +949,7 @@ ce
|
||||
<20><><EFBFBD>ǻ<EFBFBD>: New Riders
|
||||
<20><> å<><C3A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> <20>ٷ<EFBFBD><D9B7><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>. Ư<><C6AF> <20>ʺ<EFBFBD><CABA>ڵ鿡<DAB5><E9BFA1> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B8><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>: http://iccf-holland.org/click5.html
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>: https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD> å<><C3A5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> å<><C3A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD> Vi<56><69> <20><><EFBFBD><EFBFBD> <20>ٷ<EFBFBD><D9B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>õ<EFBFBD><C3B5> <20><>
|
||||
<20>մϴ<D5B4>:
|
||||
|
@ -949,7 +949,7 @@ ce 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
|
||||
출판사: New Riders
|
||||
이 책은 완전히 빔에 대해서만 다루고 있습니다. 특히 초보자들에게 유용합니다.
|
||||
많은 예제와 그림이 있습니다.
|
||||
다음을 참고하십시오: http://iccf-holland.org/click5.html
|
||||
다음을 참고하십시오: https://iccf-holland.org/click5.html
|
||||
|
||||
다음 책은 좀 오래된 책으로 빔보다는 Vi에 대해 다루고 있지만, 역시 추천할 만
|
||||
합니다:
|
||||
|
@ -986,7 +986,7 @@ PIEZĪME: Pabeigšana strādā dažādām komandām.
|
||||
Vim - Vi Improved, Steve Oualline, New Riders
|
||||
|
||||
Šī grāmata ir tieši par Vim, un ir ļoti ieteicama iesācējiem.
|
||||
Daudzi piemēri un attēli no tās pieejami: http://iccf-holland.org/click5.html
|
||||
Daudzi piemēri un attēli no tās pieejami: https://iccf-holland.org/click5.html
|
||||
|
||||
Otra, vecāka grāmata ir par Vi, nevis Vim, bet arī ir ļoti noderīga:
|
||||
|
||||
|
@ -953,7 +953,7 @@ MERK: Fullf
|
||||
Utgiver: New Riders
|
||||
Den f<EFBFBD>rste boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
|
||||
nybegynnere. Inneholder mange eksempler og illustrasjoner.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Denne boken er eldre og handler mer om Vi enn Vim, men anbefales ogs<EFBFBD>:
|
||||
<EFBFBD>Learning the Vi Editor<EFBFBD> av Linda Lamb
|
||||
|
@ -953,7 +953,7 @@ MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og
|
||||
Utgiver: New Riders
|
||||
Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
|
||||
nybegynnere. Inneholder mange eksempler og illustrasjoner.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også:
|
||||
«Learning the Vi Editor» av Linda Lamb
|
||||
|
@ -927,7 +927,7 @@
|
||||
Uitgever: New Riders
|
||||
Dit is het eerste boek dat geheel aan Vim is gewijd. Speciaal geschikt
|
||||
voor beginners. Met veel voorbeelden en afbeeldingen.
|
||||
Zie http://iccf-holland.org/click5.html
|
||||
Zie https://iccf-holland.org/click5.html
|
||||
|
||||
Het volgende boek is ouder en gaat meer over Vi dan Vim, maar het wordt
|
||||
toch aanbevolen:
|
||||
|
@ -927,7 +927,7 @@
|
||||
Uitgever: New Riders
|
||||
Dit is het eerste boek dat geheel aan Vim is gewijd. Speciaal geschikt
|
||||
voor beginners. Met veel voorbeelden en afbeeldingen.
|
||||
Zie http://iccf-holland.org/click5.html
|
||||
Zie https://iccf-holland.org/click5.html
|
||||
|
||||
Het volgende boek is ouder en gaat meer over Vi dan Vim, maar het wordt
|
||||
toch aanbevolen:
|
||||
|
@ -953,7 +953,7 @@ MERK: Fullf
|
||||
Utgiver: New Riders
|
||||
Den f<>rste boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
|
||||
nybegynnere. Inneholder mange eksempler og illustrasjoner.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Denne boken er eldre og handler mer om Vi enn Vim, men anbefales ogs<67>:
|
||||
<20>Learning the Vi Editor<6F> av Linda Lamb
|
||||
|
@ -953,7 +953,7 @@ MERK: Fullføring fungerer for mange kommandoer. Prøv ved å trykke CTRL-D og
|
||||
Utgiver: New Riders
|
||||
Den første boken som er fullt og helt dedisert til Vim. Spesielt nyttig for
|
||||
nybegynnere. Inneholder mange eksempler og illustrasjoner.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Denne boken er eldre og handler mer om Vi enn Vim, men anbefales også:
|
||||
«Learning the Vi Editor» av Linda Lamb
|
||||
|
@ -954,7 +954,7 @@ UWAGA: Uzupe
|
||||
Wydawca: New Riders
|
||||
Pierwsza ksi<EFBFBD><EFBFBD>ka ca<EFBFBD>kowicie po<EFBFBD>wi<EFBFBD>cona Vimowi. U<EFBFBD>yteczna zw<EFBFBD>aszcza dla
|
||||
pocz<EFBFBD>tkuj<EFBFBD>cych. Zawiera wiele przyk<EFBFBD>ad<EFBFBD>w i ilustracji.
|
||||
Zobacz http://iccf-holland.org./click5.html
|
||||
Zobacz https://iccf-holland.org./click5.html
|
||||
|
||||
Starsza pozycja i bardziej o Vi ni<EFBFBD> o Vimie, ale tak<EFBFBD>e warta
|
||||
polecenia:
|
||||
|
@ -954,7 +954,7 @@ UWAGA: Uzupe
|
||||
Wydawca: New Riders
|
||||
Pierwsza ksi<73><69>ka ca<63>kowicie po<70>wi<77>cona Vimowi. U<>yteczna zw<7A>aszcza dla
|
||||
pocz<63>tkuj<75>cych. Zawiera wiele przyk<79>ad<61>w i ilustracji.
|
||||
Zobacz http://iccf-holland.org./click5.html
|
||||
Zobacz https://iccf-holland.org./click5.html
|
||||
|
||||
Starsza pozycja i bardziej o Vi ni<6E> o Vimie, ale tak<61>e warta
|
||||
polecenia:
|
||||
|
@ -954,7 +954,7 @@ UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TA
|
||||
Wydawca: New Riders
|
||||
Pierwsza książka całkowicie poświęcona Vimowi. Użyteczna zwłaszcza dla
|
||||
początkujących. Zawiera wiele przykładów i ilustracji.
|
||||
Zobacz http://iccf-holland.org./click5.html
|
||||
Zobacz https://iccf-holland.org./click5.html
|
||||
|
||||
Starsza pozycja i bardziej o Vi niż o Vimie, ale także warta
|
||||
polecenia:
|
||||
|
@ -975,7 +975,7 @@ NOTA: A completa
|
||||
Editora: New Riders
|
||||
Este <20> o primeiro livro completamente dedicado ao Vim. Especialmente <20>til
|
||||
para iniciantes, com muitos exemplos e ilustra<72><61>es.
|
||||
Veja http://iccf-holland.org/click5.html
|
||||
Veja https://iccf-holland.org/click5.html
|
||||
|
||||
Esse livro <20> mais antigo e mais sobre o Vi do que sobre o Vim, mas tamb<6D>m <20>
|
||||
recomendado:
|
||||
|
@ -975,7 +975,7 @@ NOTA: A completação funciona com muitos comandos. Basta pressionar CTRL-D e
|
||||
Editora: New Riders
|
||||
Este é o primeiro livro completamente dedicado ao Vim. Especialmente útil
|
||||
para iniciantes, com muitos exemplos e ilustrações.
|
||||
Veja http://iccf-holland.org/click5.html
|
||||
Veja https://iccf-holland.org/click5.html
|
||||
|
||||
Esse livro é mais antigo e mais sobre o Vi do que sobre o Vim, mas também é
|
||||
recomendado:
|
||||
|
@ -980,7 +980,7 @@
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><>. http://iccf-holland.org/click5.html
|
||||
<20><>. https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vi, <20><><EFBFBD> Vim,
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
@ -980,7 +980,7 @@
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><>. http://iccf-holland.org/click5.html
|
||||
<20><>. https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vi, <20><><EFBFBD> Vim,
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
@ -980,7 +980,7 @@
|
||||
|
||||
Эта книга полностью посвящена Vim. Особенно полезна она будет новичкам.
|
||||
Содержит множество примеров и иллюстраций.
|
||||
См. http://iccf-holland.org/click5.html
|
||||
См. https://iccf-holland.org/click5.html
|
||||
|
||||
Следующая книга более почтенного возраста и посвящена больше Vi, чем Vim,
|
||||
однако также рекомендуется:
|
||||
|
@ -986,7 +986,7 @@ POZN
|
||||
Vydavate<74>: New Riders
|
||||
Prv<72> kniha ur<75>en<65> pre Vim. <20>peci<63>lne vhodn<64> pre za<7A>iato<74>n<EFBFBD>kov.
|
||||
Obsahuje mno<6E>stvo pr<70>kladov a obr<62>zkov.
|
||||
Pozri na http://iccf-holland.org/click5.html
|
||||
Pozri na https://iccf-holland.org/click5.html
|
||||
|
||||
T<>to kniha je star<61>ia a je viac o Vi ako o Vim, ale je tie<69> odpor<6F><72>an<61>:
|
||||
Learning the Vi Editor - od Linda Lamb
|
||||
|
@ -986,7 +986,7 @@ POZN
|
||||
Vydavate<74>: New Riders
|
||||
Prv<72> kniha ur<75>en<65> pre Vim. <20>peci<63>lne vhodn<64> pre za<7A>iato<74>n<EFBFBD>kov.
|
||||
Obsahuje mno<6E>stvo pr<70>kladov a obr<62>zkov.
|
||||
Pozri na http://iccf-holland.org/click5.html
|
||||
Pozri na https://iccf-holland.org/click5.html
|
||||
|
||||
T<>to kniha je star<61>ia a je viac o Vi ako o Vim, ale je tie<69> odpor<6F><72>an<61>:
|
||||
Learning the Vi Editor - od Linda Lamb
|
||||
|
@ -986,7 +986,7 @@ POZNÁMKA: Dokončovanie funguje pre veľa príkazov. Vyskúšaj stlačenie
|
||||
Vydavateľ: New Riders
|
||||
Prvá kniha určená pre Vim. Špeciálne vhodná pre začiatočníkov.
|
||||
Obsahuje množstvo príkladov a obrázkov.
|
||||
Pozri na http://iccf-holland.org/click5.html
|
||||
Pozri na https://iccf-holland.org/click5.html
|
||||
|
||||
Táto kniha je staršia a je viac o Vi ako o Vim, ale je tiež odporúčaná:
|
||||
Learning the Vi Editor - od Linda Lamb
|
||||
|
@ -951,7 +951,7 @@ NAPOMENA: Mogu
|
||||
Izdava<76>: New Riders
|
||||
Prva knjiga potpuno posve<76>ena Vim-u. Naro<72>ito korisna za po<70>etnike.
|
||||
Ima mno<6E>tvo primera i slika.
|
||||
Vidite http://iccf-holland.org/click5.html
|
||||
Vidite https://iccf-holland.org/click5.html
|
||||
|
||||
Slede<64>a knjiga je starija i vi<76>e govori o Vi-u nego o Vim-u, ali je tako<6B>e
|
||||
preporu<72>ujemo:
|
||||
|
@ -951,7 +951,7 @@ NAPOMENA: Moguće je dopuniti mnoge komande. Samo probajte CTRL-D i <TAB>.
|
||||
Izdavač: New Riders
|
||||
Prva knjiga potpuno posvećena Vim-u. Naročito korisna za početnike.
|
||||
Ima mnoštvo primera i slika.
|
||||
Vidite http://iccf-holland.org/click5.html
|
||||
Vidite https://iccf-holland.org/click5.html
|
||||
|
||||
Sledeća knjiga je starija i više govori o Vi-u nego o Vim-u, ali je takođe
|
||||
preporučujemo:
|
||||
|
@ -812,7 +812,7 @@ Notera: Detta undviker att beh
|
||||
F<EFBFBD>rlag: New Riders
|
||||
Den f<EFBFBD>rsta boken som <EFBFBD>r endast behandlar Vim. Speciellt anv<EFBFBD>ndbar f<EFBFBD>r
|
||||
nyb<EFBFBD>rjare. Det finns m<EFBFBD>nga exempel och bilder.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Den h<EFBFBD>r boken <EFBFBD>r <EFBFBD>ldre och behandlar mer Vi <EFBFBD>n Vim, men rekommenderas ocks<EFBFBD>:
|
||||
Learning the Vi Editor - av Linda Lamb
|
||||
|
@ -812,7 +812,7 @@ Notera: Detta undviker att behöva skriva i , det sista tecknet, texten att
|
||||
Förlag: New Riders
|
||||
Den första boken som är endast behandlar Vim. Speciellt användbar för
|
||||
nybörjare. Det finns många exempel och bilder.
|
||||
Se http://iccf-holland.org/click5.html
|
||||
Se https://iccf-holland.org/click5.html
|
||||
|
||||
Den här boken är äldre och behandlar mer Vi än Vim, men rekommenderas också:
|
||||
Learning the Vi Editor - av Linda Lamb
|
||||
|
@ -956,7 +956,7 @@ Not: Arama dosyan
|
||||
T<>m<EFBFBD>yle Vim i<>in haz<61>rlanm<6E><6D> ilk kitapt<70>r. <20>zellikle ilk kullan<61>c<EFBFBD>lar i<>in
|
||||
<20>ok uygundur.
|
||||
Kitapta bir<69>ok <20>rnek ve resim bulunmaktad<61>r.
|
||||
http://iccf-holland.org/click5.html adresine bakabilirsiniz.
|
||||
https://iccf-holland.org/click5.html adresine bakabilirsiniz.
|
||||
|
||||
Bu kitap daha eskidir ve Vim'den daha <20>ok Vi i<>indir ancak tavsiye edilir:
|
||||
|
||||
|
@ -956,7 +956,7 @@ Not: Arama dosyanın sonuna ulaştığında dosyanın başından sürecektir. Bu
|
||||
Tümüyle Vim için hazırlanmış ilk kitaptır. Özellikle ilk kullanıcılar için
|
||||
çok uygundur.
|
||||
Kitapta birçok örnek ve resim bulunmaktadır.
|
||||
http://iccf-holland.org/click5.html adresine bakabilirsiniz.
|
||||
https://iccf-holland.org/click5.html adresine bakabilirsiniz.
|
||||
|
||||
Bu kitap daha eskidir ve Vim'den daha çok Vi içindir ancak tavsiye edilir:
|
||||
|
||||
|
@ -965,7 +965,7 @@
|
||||
Publisher: New Riders
|
||||
Особливо корисна для початківців.
|
||||
Там багато прикладів і ілюстрацій.
|
||||
Дивіться http://iccf-holland.org/click5.html
|
||||
Дивіться https://iccf-holland.org/click5.html
|
||||
|
||||
Ці уроки були написані Майклом С. Пірсом та Робертом Уаром.
|
||||
|
||||
|
@ -955,7 +955,7 @@ NOTE: Completion works for many commands. Just try pressing CTRL-D and
|
||||
Publisher: New Riders
|
||||
The first book completely dedicated to Vim. Especially useful for beginners.
|
||||
There are many examples and pictures.
|
||||
See http://iccf-holland.org/click5.html
|
||||
See https://iccf-holland.org/click5.html
|
||||
|
||||
This book is older and more about Vi than Vim, but also recommended:
|
||||
Learning the Vi Editor - by Linda Lamb
|
||||
|
@ -792,7 +792,7 @@ Chú ý: Lệnh này thay cho việc gõ i , ký tự cuối cùng, văn bản
|
||||
Nhà xuất bản: New Riders
|
||||
Cuốn sách đầu tiên dành hoàn toàn cho Vim. Đặc biệt có ích cho người mới.
|
||||
Có rất nhiều ví dụ và tranh ảnh.
|
||||
Hãy xem: http://iccf-holland.org/click5.html
|
||||
Hãy xem: https://iccf-holland.org/click5.html
|
||||
|
||||
Cuốn sách tiếp theo này xuất bản sớm hơn và nói nhiều về Vi hơn là Vim,
|
||||
nhưng cũng rất nên đọc:
|
||||
|
@ -805,7 +805,7 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
<09>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD>JNew Riders
|
||||
|
||||
<20>o<EFBFBD>O<EFBFBD>Ĥ@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vim<69><6D><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD>C<EFBFBD><43><EFBFBD>_<EFBFBD><5F><EFBFBD>ǎͯS<CDAF>O<EFBFBD><4F><EFBFBD>ΡC<CEA1>䤤<EFBFBD>٥]<5D>t<EFBFBD><74><EFBFBD>j<EFBFBD>q<EFBFBD><71><EFBFBD><EFBFBD>
|
||||
<20>M<EFBFBD>ϥܡC<DCA1><43><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>A<EFBFBD>гX<D0B3><58> http://iccf-holland.org/click5.html
|
||||
<20>M<EFBFBD>ϥܡC<DCA1><43><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>A<EFBFBD>гX<D0B3><58> https://iccf-holland.org/click5.html
|
||||
|
||||
<20>H<EFBFBD>U<EFBFBD>o<EFBFBD><6F><EFBFBD>Ѥ<EFBFBD><D1A4><EFBFBD><EFBFBD>ѤF<D1A4>ӥB<D3A5><42><EFBFBD>e<EFBFBD>D<EFBFBD>n<EFBFBD>Ovi<76>Ӥ<EFBFBD><D3A4>Ovim<69>A<EFBFBD><41><EFBFBD>O<EFBFBD>]<5D>ȱo<C8B1><6F><EFBFBD>ˡJ
|
||||
|
||||
|
@ -953,7 +953,7 @@
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD>磺New Riders
|
||||
<20><><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD> Vim <20><><EFBFBD>鼮<EFBFBD><E9BCAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>á<EFBFBD><C3A1><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ʵ<EFBFBD><CAB5>
|
||||
<20><>ͼʾ<CDBC><CABE>
|
||||
<20><>֪<EFBFBD><D6AA><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://iccf-holland.org/click5.html
|
||||
<20><>֪<EFBFBD><D6AA><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://iccf-holland.org/click5.html
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>Ȿ<EFBFBD><E2B1BE><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD> Vi <20><><EFBFBD><EFBFBD> Vim<69><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳֵ<D2B2><D6B5><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>
|
||||
Learning the Vi Editor - <20><><EFBFBD>ߣ<EFBFBD>Linda Lamb
|
||||
|
@ -805,7 +805,7 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
出版社︰New Riders
|
||||
|
||||
這是第一本完全講解vim的書籍。對于初學者特別有用。其中還包含有大量實例
|
||||
和圖示。欲知詳情,請訪問 http://iccf-holland.org/click5.html
|
||||
和圖示。欲知詳情,請訪問 https://iccf-holland.org/click5.html
|
||||
|
||||
以下這本書比較老了而且內容主要是vi而不是vim,但是也值得推薦︰
|
||||
|
||||
|
@ -953,7 +953,7 @@
|
||||
出版社:New Riders
|
||||
这是第一本完全讲解 Vim 的书籍。它对于初学者特别有用。其中包含有大量实例
|
||||
和图示。
|
||||
欲知详情,请访问 http://iccf-holland.org/click5.html
|
||||
欲知详情,请访问 https://iccf-holland.org/click5.html
|
||||
|
||||
以下这本书比较老了而且内容更多是关于 Vi 而非 Vim,但是也值得推荐:
|
||||
Learning the Vi Editor - 作者:Linda Lamb
|
||||
|
@ -805,7 +805,7 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
|
||||
出版社︰New Riders
|
||||
|
||||
這是第一本完全講解vim的書籍。對于初學者特別有用。其中還包含有大量實例
|
||||
和圖示。欲知詳情,請訪問 http://iccf-holland.org/click5.html
|
||||
和圖示。欲知詳情,請訪問 https://iccf-holland.org/click5.html
|
||||
|
||||
以下這本書比較老了而且內容主要是vi而不是vim,但是也值得推薦︰
|
||||
|
||||
|
@ -119,6 +119,7 @@ static struct event_name
|
||||
{"CursorMovedI", EVENT_CURSORMOVEDI},
|
||||
{"DiffUpdated", EVENT_DIFFUPDATED},
|
||||
{"DirChanged", EVENT_DIRCHANGED},
|
||||
{"DirChangedPre", EVENT_DIRCHANGEDPRE},
|
||||
{"EncodingChanged", EVENT_ENCODINGCHANGED},
|
||||
{"ExitPre", EVENT_EXITPRE},
|
||||
{"FileEncoding", EVENT_ENCODINGCHANGED},
|
||||
@ -2042,7 +2043,7 @@ apply_autocmds_group(
|
||||
{
|
||||
sfname = vim_strsave(fname);
|
||||
// Don't try expanding FileType, Syntax, FuncUndefined, WindowID,
|
||||
// ColorScheme, QuickFixCmd* or DirChanged
|
||||
// ColorScheme, QuickFixCmd*, DirChanged and similar.
|
||||
if (event == EVENT_FILETYPE
|
||||
|| event == EVENT_SYNTAX
|
||||
|| event == EVENT_CMDLINECHANGED
|
||||
@ -2060,7 +2061,9 @@ apply_autocmds_group(
|
||||
|| event == EVENT_OPTIONSET
|
||||
|| event == EVENT_QUICKFIXCMDPOST
|
||||
|| event == EVENT_DIRCHANGED
|
||||
|| event == EVENT_DIRCHANGEDPRE
|
||||
|| event == EVENT_MODECHANGED
|
||||
|| event == EVENT_USER
|
||||
|| event == EVENT_WINCLOSED)
|
||||
{
|
||||
fname = vim_strsave(fname);
|
||||
|
26
src/buffer.c
26
src/buffer.c
@ -1430,8 +1430,14 @@ do_buffer_ext(
|
||||
buf = buflist_findnr(curwin->w_jumplist[jumpidx].fmark.fnum);
|
||||
if (buf != NULL)
|
||||
{
|
||||
if (buf == curbuf || !buf->b_p_bl)
|
||||
buf = NULL; // skip current and unlisted bufs
|
||||
// Skip current and unlisted bufs. Also skip a quickfix
|
||||
// buffer, it might be deleted soon.
|
||||
if (buf == curbuf || !buf->b_p_bl
|
||||
#if defined(FEAT_QUICKFIX)
|
||||
|| bt_quickfix(buf)
|
||||
#endif
|
||||
)
|
||||
buf = NULL;
|
||||
else if (buf->b_ml.ml_mfp == NULL)
|
||||
{
|
||||
// skip unloaded buf, but may keep it for later
|
||||
@ -1467,7 +1473,11 @@ do_buffer_ext(
|
||||
continue;
|
||||
}
|
||||
// in non-help buffer, try to skip help buffers, and vv
|
||||
if (buf->b_help == curbuf->b_help && buf->b_p_bl)
|
||||
if (buf->b_help == curbuf->b_help && buf->b_p_bl
|
||||
#if defined(FEAT_QUICKFIX)
|
||||
&& !bt_quickfix(buf)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
if (buf->b_ml.ml_mfp != NULL) // found loaded buffer
|
||||
break;
|
||||
@ -1485,7 +1495,11 @@ do_buffer_ext(
|
||||
if (buf == NULL) // No loaded buffer, find listed one
|
||||
{
|
||||
FOR_ALL_BUFFERS(buf)
|
||||
if (buf->b_p_bl && buf != curbuf)
|
||||
if (buf->b_p_bl && buf != curbuf
|
||||
#if defined(FEAT_QUICKFIX)
|
||||
&& !bt_quickfix(buf)
|
||||
#endif
|
||||
)
|
||||
break;
|
||||
}
|
||||
if (buf == NULL) // Still no buffer, just take one
|
||||
@ -1494,6 +1508,10 @@ do_buffer_ext(
|
||||
buf = curbuf->b_next;
|
||||
else
|
||||
buf = curbuf->b_prev;
|
||||
#if defined(FEAT_QUICKFIX)
|
||||
if (bt_quickfix(buf))
|
||||
buf = NULL;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -651,7 +651,7 @@ build_drop_cmd(
|
||||
ga_concat(&ga, (char_u *)":");
|
||||
if (inicmd != NULL)
|
||||
{
|
||||
// Can't use <CR> after "inicmd", because an "startinsert" would cause
|
||||
// Can't use <CR> after "inicmd", because a "startinsert" would cause
|
||||
// the following commands to be inserted as text. Use a "|",
|
||||
// hopefully "inicmd" does allow this...
|
||||
ga_concat(&ga, inicmd);
|
||||
|
1387
src/cmdexpand.c
1387
src/cmdexpand.c
File diff suppressed because it is too large
Load Diff
79
src/crypt.c
79
src/crypt.c
@ -162,6 +162,22 @@ typedef struct {
|
||||
|
||||
|
||||
# ifdef DYNAMIC_SODIUM
|
||||
# ifdef MSWIN
|
||||
# define SODIUM_PROC FARPROC
|
||||
# define load_dll vimLoadLib
|
||||
# define symbol_from_dll GetProcAddress
|
||||
# define close_dll FreeLibrary
|
||||
# define load_dll_error GetWin32Error
|
||||
# else
|
||||
# error Dynamic loading of libsodium is not supported for now.
|
||||
//# define HINSTANCE void*
|
||||
//# define SODIUM_PROC void*
|
||||
//# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
|
||||
//# define symbol_from_dll dlsym
|
||||
//# define close_dll dlclose
|
||||
//# define load_dll_error dlerror
|
||||
# endif
|
||||
|
||||
# define sodium_init load_sodium
|
||||
# define sodium_free dll_sodium_free
|
||||
# define sodium_malloc dll_sodium_malloc
|
||||
@ -214,53 +230,72 @@ static void (*dll_randombytes_buf)(void * const buf, const size_t size);
|
||||
|
||||
static struct {
|
||||
const char *name;
|
||||
FARPROC *ptr;
|
||||
SODIUM_PROC *ptr;
|
||||
} sodium_funcname_table[] = {
|
||||
{"sodium_init", (FARPROC*)&dll_sodium_init},
|
||||
{"sodium_free", (FARPROC*)&dll_sodium_free},
|
||||
{"sodium_malloc", (FARPROC*)&dll_sodium_malloc},
|
||||
{"sodium_memzero", (FARPROC*)&dll_sodium_memzero},
|
||||
{"sodium_mlock", (FARPROC*)&dll_sodium_mlock},
|
||||
{"sodium_munlock", (FARPROC*)&dll_sodium_munlock},
|
||||
{"crypto_secretstream_xchacha20poly1305_init_push", (FARPROC*)&dll_crypto_secretstream_xchacha20poly1305_init_push},
|
||||
{"crypto_secretstream_xchacha20poly1305_push", (FARPROC*)&dll_crypto_secretstream_xchacha20poly1305_push},
|
||||
{"crypto_secretstream_xchacha20poly1305_init_pull", (FARPROC*)&dll_crypto_secretstream_xchacha20poly1305_init_pull},
|
||||
{"crypto_secretstream_xchacha20poly1305_pull", (FARPROC*)&dll_crypto_secretstream_xchacha20poly1305_pull},
|
||||
{"crypto_pwhash", (FARPROC*)&dll_crypto_pwhash},
|
||||
{"randombytes_buf", (FARPROC*)&dll_randombytes_buf},
|
||||
{"sodium_init", (SODIUM_PROC*)&dll_sodium_init},
|
||||
{"sodium_free", (SODIUM_PROC*)&dll_sodium_free},
|
||||
{"sodium_malloc", (SODIUM_PROC*)&dll_sodium_malloc},
|
||||
{"sodium_memzero", (SODIUM_PROC*)&dll_sodium_memzero},
|
||||
{"sodium_mlock", (SODIUM_PROC*)&dll_sodium_mlock},
|
||||
{"sodium_munlock", (SODIUM_PROC*)&dll_sodium_munlock},
|
||||
{"crypto_secretstream_xchacha20poly1305_init_push", (SODIUM_PROC*)&dll_crypto_secretstream_xchacha20poly1305_init_push},
|
||||
{"crypto_secretstream_xchacha20poly1305_push", (SODIUM_PROC*)&dll_crypto_secretstream_xchacha20poly1305_push},
|
||||
{"crypto_secretstream_xchacha20poly1305_init_pull", (SODIUM_PROC*)&dll_crypto_secretstream_xchacha20poly1305_init_pull},
|
||||
{"crypto_secretstream_xchacha20poly1305_pull", (SODIUM_PROC*)&dll_crypto_secretstream_xchacha20poly1305_pull},
|
||||
{"crypto_pwhash", (SODIUM_PROC*)&dll_crypto_pwhash},
|
||||
{"randombytes_buf", (SODIUM_PROC*)&dll_randombytes_buf},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
static int
|
||||
load_sodium(void)
|
||||
sodium_runtime_link_init(int verbose)
|
||||
{
|
||||
static HANDLE hsodium = NULL;
|
||||
static HINSTANCE hsodium = NULL;
|
||||
const char *libname = "libsodium.dll";
|
||||
int i;
|
||||
|
||||
if (hsodium != NULL)
|
||||
return 0;
|
||||
return OK;
|
||||
|
||||
hsodium = vimLoadLib("libsodium.dll");
|
||||
hsodium = load_dll(libname);
|
||||
if (hsodium == NULL)
|
||||
{
|
||||
// TODO: Show error message.
|
||||
return -1;
|
||||
if (verbose)
|
||||
semsg(_(e_could_not_load_library_str_str), libname, load_dll_error());
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
for (i = 0; sodium_funcname_table[i].ptr; ++i)
|
||||
{
|
||||
if ((*sodium_funcname_table[i].ptr = GetProcAddress(hsodium,
|
||||
if ((*sodium_funcname_table[i].ptr = symbol_from_dll(hsodium,
|
||||
sodium_funcname_table[i].name)) == NULL)
|
||||
{
|
||||
FreeLibrary(hsodium);
|
||||
hsodium = NULL;
|
||||
// TODO: Show error message.
|
||||
return -1;
|
||||
if (verbose)
|
||||
semsg(_(e_could_not_load_library_function_str), sodium_funcname_table[i].name);
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
static int
|
||||
load_sodium(void)
|
||||
{
|
||||
if (sodium_runtime_link_init(TRUE) == FAIL)
|
||||
return -1;
|
||||
return dll_sodium_init();
|
||||
}
|
||||
# endif
|
||||
|
||||
# if defined(DYNAMIC_SODIUM) || defined(PROTO)
|
||||
int
|
||||
sodium_enabled(int verbose)
|
||||
{
|
||||
return sodium_runtime_link_init(verbose) == OK;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define CRYPT_MAGIC_LEN 12 // cannot change
|
||||
|
@ -571,6 +571,7 @@ redraw_custom_statusline(win_T *wp)
|
||||
{
|
||||
static int entered = FALSE;
|
||||
int saved_did_emsg = did_emsg;
|
||||
int saved_KeyTyped = KeyTyped;
|
||||
|
||||
// When called recursively return. This can happen when the statusline
|
||||
// contains an expression that triggers a redraw.
|
||||
@ -591,6 +592,9 @@ redraw_custom_statusline(win_T *wp)
|
||||
}
|
||||
did_emsg |= saved_did_emsg;
|
||||
entered = FALSE;
|
||||
|
||||
// A user function may reset KeyTyped, restore it.
|
||||
KeyTyped = saved_KeyTyped;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -3048,6 +3052,10 @@ redraw_after_callback(int call_update_screen, int do_message)
|
||||
}
|
||||
else if (State & CMDLINE)
|
||||
{
|
||||
#ifdef FEAT_WILDMENU
|
||||
if (pum_visible())
|
||||
cmdline_pum_display();
|
||||
#endif
|
||||
// Don't redraw when in prompt_for_number().
|
||||
if (cmdline_row > 0)
|
||||
{
|
||||
|
11
src/errors.h
11
src/errors.h
@ -2802,7 +2802,8 @@ EXTERN char e_function_reference_invalid[]
|
||||
INIT(= N_("E1086: Function reference invalid"));
|
||||
EXTERN char e_cannot_use_index_when_declaring_variable[]
|
||||
INIT(= N_("E1087: Cannot use an index when declaring a variable"));
|
||||
// E1088 unused
|
||||
EXTERN char e_script_cannot_import_itself[]
|
||||
INIT(= N_("E1088: Script cannot import itself"));
|
||||
EXTERN char e_unknown_variable_str[]
|
||||
INIT(= N_("E1089: Unknown variable: %s"));
|
||||
EXTERN char e_cannot_assign_to_argument[]
|
||||
@ -3224,3 +3225,11 @@ EXTERN char e_autoload_import_cannot_use_absolute_or_relative_path[]
|
||||
EXTERN char e_cannot_use_partial_here[]
|
||||
INIT(= N_("E1265: Cannot use a partial here"));
|
||||
#endif
|
||||
#if defined(FEAT_PYTHON3) && defined(MSWIN)
|
||||
EXTERN char e_critical_error_in_python3_initialization_check_your_installation[]
|
||||
INIT(= N_("E1266: Critical error in python3 initialization, check your python3 installation"));
|
||||
#endif
|
||||
#ifdef FEAT_EVAL
|
||||
EXTERN char e_function_name_must_start_with_capital_str[]
|
||||
INIT(= N_("E1267: Function name must start with a capital: %s"));
|
||||
#endif
|
||||
|
25
src/eval.c
25
src/eval.c
@ -629,10 +629,10 @@ eval_expr(char_u *arg, exarg_T *eap)
|
||||
*/
|
||||
static char_u *
|
||||
deref_function_name(
|
||||
char_u **arg,
|
||||
char_u **tofree,
|
||||
evalarg_T *evalarg,
|
||||
int verbose)
|
||||
char_u **arg,
|
||||
char_u **tofree,
|
||||
evalarg_T *evalarg,
|
||||
int verbose)
|
||||
{
|
||||
typval_T ref;
|
||||
char_u *name = *arg;
|
||||
@ -975,7 +975,7 @@ get_lval(
|
||||
cc = *p;
|
||||
*p = NUL;
|
||||
if (find_exported(import->imp_sid, lp->ll_name, &ufunc, &type,
|
||||
NULL, TRUE) == -1)
|
||||
NULL, NULL, TRUE) == -1)
|
||||
{
|
||||
*p = cc;
|
||||
return NULL;
|
||||
@ -2955,7 +2955,7 @@ eval_addlist(typval_T *tv1, typval_T *tv2)
|
||||
|
||||
/*
|
||||
* Handle fourth level expression:
|
||||
* + number addition
|
||||
* + number addition, concatenation of list or blob
|
||||
* - number subtraction
|
||||
* . string concatenation (if script version is 1)
|
||||
* .. string concatenation
|
||||
@ -4526,6 +4526,9 @@ partial_free(partial_T *pt)
|
||||
// "out_up" is no longer used, decrement refcount on partial that owns it.
|
||||
partial_unref(pt->pt_outer.out_up_partial);
|
||||
|
||||
// Using pt_outer from another partial.
|
||||
partial_unref(pt->pt_outer_partial);
|
||||
|
||||
// Decrease the reference count for the context of a closure. If down
|
||||
// to the minimum it may be time to free it.
|
||||
if (pt->pt_funcstack != NULL)
|
||||
@ -6053,7 +6056,7 @@ handle_subscript(
|
||||
**arg = NUL;
|
||||
|
||||
idx = find_exported(rettv->vval.v_number, exp_name, &ufunc, &type,
|
||||
evalarg->eval_cctx, verbose);
|
||||
evalarg->eval_cctx, evalarg->eval_cstack, verbose);
|
||||
**arg = cc;
|
||||
|
||||
if (idx < 0 && ufunc == NULL)
|
||||
@ -6488,8 +6491,16 @@ ex_execute(exarg_T *eap)
|
||||
did_emsg = save_did_emsg;
|
||||
}
|
||||
else if (eap->cmdidx == CMD_execute)
|
||||
{
|
||||
int save_sticky_cmdmod_flags = sticky_cmdmod_flags;
|
||||
|
||||
// "legacy exe cmd" and "vim9cmd exe cmd" applies to "cmd".
|
||||
sticky_cmdmod_flags = cmdmod.cmod_flags
|
||||
& (CMOD_LEGACY | CMOD_VIM9CMD);
|
||||
do_cmdline((char_u *)ga.ga_data,
|
||||
eap->getline, eap->cookie, DOCMD_NOWAIT|DOCMD_VERBOSE);
|
||||
sticky_cmdmod_flags = save_sticky_cmdmod_flags;
|
||||
}
|
||||
}
|
||||
|
||||
ga_clear(&ga);
|
||||
|
@ -4454,6 +4454,12 @@ common_function(typval_T *argvars, typval_T *rettv, int is_funcref)
|
||||
pt->pt_name = name;
|
||||
func_ref(name);
|
||||
}
|
||||
|
||||
if (arg_pt != NULL)
|
||||
{
|
||||
pt->pt_outer_partial = arg_pt;
|
||||
++arg_pt->pt_refcount;
|
||||
}
|
||||
}
|
||||
rettv->v_type = VAR_PARTIAL;
|
||||
rettv->vval.v_partial = pt;
|
||||
@ -5991,7 +5997,7 @@ f_has(typval_T *argvars, typval_T *rettv)
|
||||
#endif
|
||||
},
|
||||
{"sodium",
|
||||
#ifdef FEAT_SODIUM
|
||||
#if defined(FEAT_SODIUM) && !defined(DYNAMIC_SODIUM)
|
||||
1
|
||||
#else
|
||||
0
|
||||
@ -6312,6 +6318,10 @@ f_has(typval_T *argvars, typval_T *rettv)
|
||||
else if (STRICMP(name, "tcl") == 0)
|
||||
n = tcl_enabled(FALSE);
|
||||
#endif
|
||||
#ifdef DYNAMIC_SODIUM
|
||||
else if (STRICMP(name, "sodium") == 0)
|
||||
n = sodium_enabled(FALSE);
|
||||
#endif
|
||||
#if defined(FEAT_TERMINAL) && defined(MSWIN)
|
||||
else if (STRICMP(name, "terminal") == 0)
|
||||
n = terminal_enabled();
|
||||
@ -10330,7 +10340,7 @@ f_visualmode(typval_T *argvars, typval_T *rettv)
|
||||
f_wildmenumode(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
||||
{
|
||||
#ifdef FEAT_WILDMENU
|
||||
if (wild_menu_showing)
|
||||
if (wild_menu_showing || ((State & CMDLINE) && cmdline_pum_active()))
|
||||
rettv->vval.v_number = 1;
|
||||
#endif
|
||||
}
|
||||
|
@ -3461,7 +3461,8 @@ set_var_const(
|
||||
semsg(_(e_illegal_variable_name_str), name);
|
||||
goto failed;
|
||||
}
|
||||
is_script_local = ht == get_script_local_ht() || sid != 0 || var_in_autoload;
|
||||
is_script_local = ht == get_script_local_ht() || sid != 0
|
||||
|| var_in_autoload;
|
||||
|
||||
if (vim9script
|
||||
&& !is_script_local
|
||||
|
@ -2786,6 +2786,7 @@ parse_command_modifiers(
|
||||
int starts_with_colon = FALSE;
|
||||
|
||||
CLEAR_POINTER(cmod);
|
||||
cmod->cmod_flags = sticky_cmdmod_flags;
|
||||
|
||||
// Repeat until no more command modifiers are found.
|
||||
for (;;)
|
||||
@ -7342,6 +7343,26 @@ post_chdir(cdscope_T scope)
|
||||
shorten_fnames(TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Trigger DirChangedPre for "acmd_fname" with directory "new_dir".
|
||||
*/
|
||||
void
|
||||
trigger_DirChangedPre(char_u *acmd_fname, char_u *new_dir)
|
||||
{
|
||||
#ifdef FEAT_EVAL
|
||||
dict_T *v_event;
|
||||
save_v_event_T save_v_event;
|
||||
|
||||
v_event = get_v_event(&save_v_event);
|
||||
(void)dict_add_string(v_event, "directory", new_dir);
|
||||
dict_set_items_ro(v_event);
|
||||
#endif
|
||||
apply_autocmds(EVENT_DIRCHANGEDPRE, acmd_fname, new_dir, FALSE, curbuf);
|
||||
#ifdef FEAT_EVAL
|
||||
restore_v_event(v_event, &save_v_event);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Change directory function used by :cd/:tcd/:lcd Ex commands and the
|
||||
* chdir() function.
|
||||
@ -7358,7 +7379,7 @@ changedir_func(
|
||||
{
|
||||
char_u *pdir = NULL;
|
||||
int dir_differs;
|
||||
char_u *acmd_fname;
|
||||
char_u *acmd_fname = NULL;
|
||||
char_u **pp;
|
||||
|
||||
if (new_dir == NULL || allbuf_locked())
|
||||
@ -7411,12 +7432,23 @@ changedir_func(
|
||||
new_dir = NameBuff;
|
||||
}
|
||||
dir_differs = pdir == NULL
|
||||
|| pathcmp((char *)pdir, (char *)new_dir, -1) != 0;
|
||||
if (dir_differs && vim_chdir(new_dir))
|
||||
|| pathcmp((char *)pdir, (char *)new_dir, -1) != 0;
|
||||
if (dir_differs)
|
||||
{
|
||||
emsg(_(e_command_failed));
|
||||
vim_free(pdir);
|
||||
return FALSE;
|
||||
if (scope == CDSCOPE_WINDOW)
|
||||
acmd_fname = (char_u *)"window";
|
||||
else if (scope == CDSCOPE_TABPAGE)
|
||||
acmd_fname = (char_u *)"tabpage";
|
||||
else
|
||||
acmd_fname = (char_u *)"global";
|
||||
trigger_DirChangedPre(acmd_fname, new_dir);
|
||||
|
||||
if (vim_chdir(new_dir))
|
||||
{
|
||||
emsg(_(e_command_failed));
|
||||
vim_free(pdir);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (scope == CDSCOPE_WINDOW)
|
||||
@ -7431,16 +7463,7 @@ changedir_func(
|
||||
post_chdir(scope);
|
||||
|
||||
if (dir_differs)
|
||||
{
|
||||
if (scope == CDSCOPE_WINDOW)
|
||||
acmd_fname = (char_u *)"window";
|
||||
else if (scope == CDSCOPE_TABPAGE)
|
||||
acmd_fname = (char_u *)"tabpage";
|
||||
else
|
||||
acmd_fname = (char_u *)"global";
|
||||
apply_autocmds(EVENT_DIRCHANGED, acmd_fname, new_dir, FALSE,
|
||||
curbuf);
|
||||
}
|
||||
apply_autocmds(EVENT_DIRCHANGED, acmd_fname, new_dir, FALSE, curbuf);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -924,9 +924,18 @@ cmdline_wildchar_complete(
|
||||
// if 'wildmode' contains "list" may still need to list
|
||||
if (xp->xp_numfiles > 1
|
||||
&& !*did_wild_list
|
||||
&& (wim_flags[wim_index] & WIM_LIST))
|
||||
&& ((wim_flags[wim_index] & WIM_LIST)
|
||||
#ifdef FEAT_WILDMENU
|
||||
|| (p_wmnu && (wim_flags[wim_index] & WIM_FULL) != 0)
|
||||
#endif
|
||||
))
|
||||
{
|
||||
#ifdef FEAT_WILDMENU
|
||||
(void)showmatches(xp,
|
||||
p_wmnu && ((wim_flags[wim_index] & WIM_LIST) == 0));
|
||||
#else
|
||||
(void)showmatches(xp, FALSE);
|
||||
#endif
|
||||
redrawcmd();
|
||||
*did_wild_list = TRUE;
|
||||
}
|
||||
@ -1848,15 +1857,37 @@ getcmdline_int(
|
||||
|
||||
#ifdef FEAT_WILDMENU
|
||||
c = wildmenu_translate_key(&ccline, c, &xpc, did_wild_list);
|
||||
|
||||
if (cmdline_pum_active())
|
||||
{
|
||||
// Ctrl-Y: Accept the current selection and close the popup menu.
|
||||
// Ctrl-E: cancel the cmdline popup menu and return the original
|
||||
// text.
|
||||
if (c == Ctrl_E || c == Ctrl_Y)
|
||||
{
|
||||
int wild_type;
|
||||
|
||||
wild_type = (c == Ctrl_E) ? WILD_CANCEL : WILD_APPLY;
|
||||
|
||||
if (nextwild(&xpc, wild_type, WILD_NO_BEEP,
|
||||
firstc != '@') == FAIL)
|
||||
break;
|
||||
c = Ctrl_E;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// free expanded names when finished walking through matches
|
||||
if (xpc.xp_numfiles != -1
|
||||
&& !(c == p_wc && KeyTyped) && c != p_wcm
|
||||
if (!(c == p_wc && KeyTyped) && c != p_wcm
|
||||
&& c != Ctrl_N && c != Ctrl_P && c != Ctrl_A
|
||||
&& c != Ctrl_L)
|
||||
{
|
||||
(void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE);
|
||||
#ifdef FEAT_WILDMENU
|
||||
if (cmdline_pum_active())
|
||||
cmdline_pum_remove();
|
||||
#endif
|
||||
if (xpc.xp_numfiles != -1)
|
||||
(void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE);
|
||||
did_wild_list = FALSE;
|
||||
#ifdef FEAT_WILDMENU
|
||||
if (!p_wmnu || (c != K_UP && c != K_DOWN))
|
||||
@ -1950,10 +1981,22 @@ getcmdline_int(
|
||||
// <S-Tab> goes to last match, in a clumsy way
|
||||
if (c == K_S_TAB && KeyTyped)
|
||||
{
|
||||
if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK
|
||||
&& nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
|
||||
&& nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
|
||||
goto cmdline_changed;
|
||||
if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK)
|
||||
{
|
||||
if (xpc.xp_numfiles > 1)
|
||||
{
|
||||
#ifdef FEAT_WILDMENU
|
||||
// Trigger the popup menu when wildoptions=pum
|
||||
showmatches(&xpc, p_wmnu
|
||||
&& ((wim_flags[wim_index] & WIM_LIST) == 0));
|
||||
#else
|
||||
(void)showmatches(&xpc, FALSE);
|
||||
#endif
|
||||
}
|
||||
if (nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
|
||||
&& nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
|
||||
goto cmdline_changed;
|
||||
}
|
||||
}
|
||||
|
||||
if (c == NUL || c == K_ZERO) // NUL is stored as NL
|
||||
@ -2220,8 +2263,16 @@ getcmdline_int(
|
||||
goto cmdline_not_changed;
|
||||
|
||||
case Ctrl_A: // all matches
|
||||
#ifdef FEAT_WILDMENU
|
||||
if (cmdline_pum_active())
|
||||
// As Ctrl-A completes all the matches, close the popup
|
||||
// menu (if present)
|
||||
cmdline_pum_cleanup(&ccline);
|
||||
#endif
|
||||
if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
|
||||
break;
|
||||
xpc.xp_context = EXPAND_NOTHING;
|
||||
did_wild_list = FALSE;
|
||||
goto cmdline_changed;
|
||||
|
||||
case Ctrl_L:
|
||||
|
50
src/fileio.c
50
src/fileio.c
@ -2697,7 +2697,7 @@ readfile_linenr(
|
||||
}
|
||||
|
||||
/*
|
||||
* Fill "*eap" to force the 'fileencoding', 'fileformat' and 'binary to be
|
||||
* Fill "*eap" to force the 'fileencoding', 'fileformat' and 'binary' to be
|
||||
* equal to the buffer "buf". Used for calling readfile().
|
||||
* Returns OK or FAIL.
|
||||
*/
|
||||
@ -4041,7 +4041,11 @@ buf_check_timestamp(
|
||||
char *mesg = NULL;
|
||||
char *mesg2 = "";
|
||||
int helpmesg = FALSE;
|
||||
int reload = FALSE;
|
||||
enum {
|
||||
RELOAD_NONE,
|
||||
RELOAD_NORMAL,
|
||||
RELOAD_DETECT
|
||||
} reload = RELOAD_NONE;
|
||||
char *reason;
|
||||
#if defined(FEAT_CON_DIALOG) || defined(FEAT_GUI_DIALOG)
|
||||
int can_reload = FALSE;
|
||||
@ -4117,7 +4121,7 @@ buf_check_timestamp(
|
||||
*/
|
||||
else if ((buf->b_p_ar >= 0 ? buf->b_p_ar : p_ar)
|
||||
&& !bufIsChanged(buf) && stat_res >= 0)
|
||||
reload = TRUE;
|
||||
reload = RELOAD_NORMAL;
|
||||
else
|
||||
{
|
||||
if (stat_res < 0)
|
||||
@ -4158,7 +4162,9 @@ buf_check_timestamp(
|
||||
#ifdef FEAT_EVAL
|
||||
s = get_vim_var_str(VV_FCS_CHOICE);
|
||||
if (STRCMP(s, "reload") == 0 && *reason != 'd')
|
||||
reload = TRUE;
|
||||
reload = RELOAD_NORMAL;
|
||||
else if (STRCMP(s, "edit") == 0)
|
||||
reload = RELOAD_DETECT;
|
||||
else if (STRCMP(s, "ask") == 0)
|
||||
n = FALSE;
|
||||
else
|
||||
@ -4239,10 +4245,18 @@ buf_check_timestamp(
|
||||
STRCAT(tbuf, "\n");
|
||||
STRCAT(tbuf, mesg2);
|
||||
}
|
||||
if (do_dialog(VIM_WARNING, (char_u *)_("Warning"),
|
||||
(char_u *)tbuf,
|
||||
(char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
|
||||
reload = TRUE;
|
||||
switch (do_dialog(VIM_WARNING, (char_u *)_("Warning"),
|
||||
(char_u *)tbuf,
|
||||
(char_u *)_("&OK\n&Load File\nLoad File &and Options"),
|
||||
1, NULL, TRUE))
|
||||
{
|
||||
case 2:
|
||||
reload = RELOAD_NORMAL;
|
||||
break;
|
||||
case 3:
|
||||
reload = RELOAD_DETECT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -4287,10 +4301,10 @@ buf_check_timestamp(
|
||||
}
|
||||
}
|
||||
|
||||
if (reload)
|
||||
if (reload != RELOAD_NONE)
|
||||
{
|
||||
// Reload the buffer.
|
||||
buf_reload(buf, orig_mode);
|
||||
buf_reload(buf, orig_mode, reload == RELOAD_DETECT);
|
||||
#ifdef FEAT_PERSISTENT_UNDO
|
||||
if (buf->b_p_udf && buf->b_ffname != NULL)
|
||||
{
|
||||
@ -4326,7 +4340,7 @@ buf_check_timestamp(
|
||||
* buf->b_orig_mode may have been reset already.
|
||||
*/
|
||||
void
|
||||
buf_reload(buf_T *buf, int orig_mode)
|
||||
buf_reload(buf_T *buf, int orig_mode, int reload_options)
|
||||
{
|
||||
exarg_T ea;
|
||||
pos_T old_cursor;
|
||||
@ -4337,14 +4351,20 @@ buf_reload(buf_T *buf, int orig_mode)
|
||||
int saved = OK;
|
||||
aco_save_T aco;
|
||||
int flags = READ_NEW;
|
||||
int prepped = OK;
|
||||
|
||||
// set curwin/curbuf for "buf" and save some things
|
||||
aucmd_prepbuf(&aco, buf);
|
||||
|
||||
// We only want to read the text from the file, not reset the syntax
|
||||
// highlighting, clear marks, diff status, etc. Force the fileformat
|
||||
// and encoding to be the same.
|
||||
if (prep_exarg(&ea, buf) == OK)
|
||||
// Unless reload_options is set, we only want to read the text from the
|
||||
// file, not reset the syntax highlighting, clear marks, diff status, etc.
|
||||
// Force the fileformat and encoding to be the same.
|
||||
if (reload_options)
|
||||
memset(&ea, 0, sizeof(ea));
|
||||
else
|
||||
prepped = prep_exarg(&ea, buf);
|
||||
|
||||
if (prepped == OK)
|
||||
{
|
||||
old_cursor = curwin->w_cursor;
|
||||
old_topline = curwin->w_topline;
|
||||
|
@ -416,7 +416,7 @@ repeat:
|
||||
// Need full path first (use expand_env() to remove a "~/")
|
||||
if (!has_fullname && !has_homerelative)
|
||||
{
|
||||
if ((c == '.' || c == '~') && **fnamep == '~')
|
||||
if (**fnamep == '~')
|
||||
p = pbuf = expand_env_save(*fnamep);
|
||||
else
|
||||
p = pbuf = FullName_save(*fnamep, FALSE);
|
||||
|
@ -2840,6 +2840,7 @@ handle_mapping(
|
||||
int save_may_garbage_collect = may_garbage_collect;
|
||||
int was_screen_col = screen_cur_col;
|
||||
int was_screen_row = screen_cur_row;
|
||||
int prev_did_emsg = did_emsg;
|
||||
|
||||
vgetc_busy = 0;
|
||||
may_garbage_collect = FALSE;
|
||||
@ -2852,6 +2853,29 @@ handle_mapping(
|
||||
windgoto(was_screen_row, was_screen_col);
|
||||
out_flush();
|
||||
|
||||
// If an error was displayed and the expression returns an empty
|
||||
// string, generate a <Nop> to allow for a redraw.
|
||||
if (prev_did_emsg != did_emsg
|
||||
&& (map_str == NULL || *map_str == NUL))
|
||||
{
|
||||
char_u buf[4];
|
||||
|
||||
vim_free(map_str);
|
||||
buf[0] = K_SPECIAL;
|
||||
buf[1] = KS_EXTRA;
|
||||
buf[2] = KE_IGNORE;
|
||||
buf[3] = NUL;
|
||||
map_str = vim_strsave(buf);
|
||||
if (State & CMDLINE)
|
||||
{
|
||||
// redraw the command below the error
|
||||
msg_didout = TRUE;
|
||||
if (msg_row < cmdline_row)
|
||||
msg_row = cmdline_row;
|
||||
redrawcmd();
|
||||
}
|
||||
}
|
||||
|
||||
vgetc_busy = save_vgetc_busy;
|
||||
may_garbage_collect = save_may_garbage_collect;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user