mirror of
https://github.com/zoriya/vim.git
synced 2025-12-10 01:06:16 +00:00
Compare commits
163 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eead75c5e8 | ||
|
|
911ead1269 | ||
|
|
ad3ec76bb8 | ||
|
|
037c54f261 | ||
|
|
4c25bd785a | ||
|
|
0fdd943595 | ||
|
|
93a4879c20 | ||
|
|
abc7c7fc5a | ||
|
|
d2e716e6df | ||
|
|
3a4c53ba51 | ||
|
|
334ad41504 | ||
|
|
86ec6d7e1e | ||
|
|
137c14bb4f | ||
|
|
b49e3563b9 | ||
|
|
b9cdb37176 | ||
|
|
2b00b9b0f3 | ||
|
|
113bf0672b | ||
|
|
696d637728 | ||
|
|
4945219b99 | ||
|
|
1a4dce7cad | ||
|
|
7f27976589 | ||
|
|
e3e3828f93 | ||
|
|
8dc4c72923 | ||
|
|
a8356bc173 | ||
|
|
74e3d4ec11 | ||
|
|
316c16797a | ||
|
|
a0aaf3c4df | ||
|
|
837854d1bc | ||
|
|
87dcfd75c2 | ||
|
|
39f76c6ac0 | ||
|
|
9c35d05f45 | ||
|
|
ca57ab54d7 | ||
|
|
700dfaa86a | ||
|
|
5d48e0d99a | ||
|
|
f587ef345e | ||
|
|
1d79ce81e7 | ||
|
|
c8b3ddab51 | ||
|
|
a8d22e3a40 | ||
|
|
04af19637c | ||
|
|
f9b89b4679 | ||
|
|
d489c9801b | ||
|
|
3fbd2d7c31 | ||
|
|
496555fd18 | ||
|
|
9a419ffb93 | ||
|
|
7edf0baef4 | ||
|
|
679beba800 | ||
|
|
29a9baa077 | ||
|
|
26096cc96f | ||
|
|
730f48fe36 | ||
|
|
a60e536a29 | ||
|
|
ef8c83c550 | ||
|
|
a7be0f2451 | ||
|
|
862f1e17ea | ||
|
|
8f130eda47 | ||
|
|
3fb01a53c6 | ||
|
|
1b55797e90 | ||
|
|
46ad288b9b | ||
|
|
9845f36aa6 | ||
|
|
d7f246c68c | ||
|
|
62e1bb4a11 | ||
|
|
049736fa8a | ||
|
|
905dd905de | ||
|
|
d85c396d51 | ||
|
|
39803d82db | ||
|
|
08499f5a4d | ||
|
|
616aeef21f | ||
|
|
16c34c3765 | ||
|
|
1164023828 | ||
|
|
2d7260d665 | ||
|
|
94a7242ad1 | ||
|
|
6bc9305a02 | ||
|
|
3d3f21764a | ||
|
|
fa1e90cd4d | ||
|
|
d9eefe3155 | ||
|
|
73655cf0ca | ||
|
|
9d40128afd | ||
|
|
4a5711b5ea | ||
|
|
543c9b1921 | ||
|
|
577fadfc10 | ||
|
|
652de23dc7 | ||
|
|
1cd4dc444a | ||
|
|
558ca4ae55 | ||
|
|
8f4aeb5572 | ||
|
|
0f248b006c | ||
|
|
eb93f3f0e2 | ||
|
|
87f59b09ea | ||
|
|
fda1bff39f | ||
|
|
e5e4e22c1c | ||
|
|
39b76b7df8 | ||
|
|
723dd946f9 | ||
|
|
7a66627cf4 | ||
|
|
b4e6a2d075 | ||
|
|
449ac47f93 | ||
|
|
5da04ef1b4 | ||
|
|
796cc42d3a | ||
|
|
0eb035c974 | ||
|
|
b26705afb5 | ||
|
|
690a905a01 | ||
|
|
fd700393be | ||
|
|
b4a6020ac6 | ||
|
|
95946f1209 | ||
|
|
4fc8e2f8bb | ||
|
|
b70a47b774 | ||
|
|
8662189736 | ||
|
|
5209334c55 | ||
|
|
96428dd4e9 | ||
|
|
372674fca3 | ||
|
|
f0908e6fe1 | ||
|
|
2d04a91d69 | ||
|
|
b44b7add8a | ||
|
|
9e1e358d37 | ||
|
|
7559dcef6c | ||
|
|
abab0b0fdd | ||
|
|
bd9bf266fc | ||
|
|
aff749145e | ||
|
|
8bb41b3d06 | ||
|
|
ab62c19ea0 | ||
|
|
433a5eb9de | ||
|
|
ef7f0e367e | ||
|
|
48aed0824e | ||
|
|
5f8069bbf5 | ||
|
|
9a2c091a74 | ||
|
|
7591bb39d5 | ||
|
|
de5b380042 | ||
|
|
bfd3603670 | ||
|
|
e73f911c53 | ||
|
|
8ee4c01b8c | ||
|
|
2912abb3a2 | ||
|
|
e46736b23b | ||
|
|
8ac8a77f24 | ||
|
|
fd133323d4 | ||
|
|
723d165c2f | ||
|
|
89828e9fe6 | ||
|
|
47cf1cc257 | ||
|
|
c701f320e8 | ||
|
|
37db642083 | ||
|
|
a16123a666 | ||
|
|
0e97b94875 | ||
|
|
760285dd4f | ||
|
|
90d0cf69aa | ||
|
|
3a731ee0c2 | ||
|
|
6a95c889bf | ||
|
|
e99be0e6d2 | ||
|
|
75bf3d22f4 | ||
|
|
6fb5c97242 | ||
|
|
d6c3f1fa2b | ||
|
|
553e5a5c56 | ||
|
|
a4c2a24cc7 | ||
|
|
3dd174abbf | ||
|
|
a84a3dd663 | ||
|
|
b45125b374 | ||
|
|
63b74a8362 | ||
|
|
db77b84ac2 | ||
|
|
82b033eff8 | ||
|
|
63dbfd33c1 | ||
|
|
c3e92c161d | ||
|
|
b782869033 | ||
|
|
832615be12 | ||
|
|
295e3ba31f | ||
|
|
b99abaa480 | ||
|
|
e37368c496 | ||
|
|
dc4fa190e7 | ||
|
|
6b6f7aae4a |
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve Vim
|
||||
title: ''
|
||||
labels: ''
|
||||
|
||||
---
|
||||
|
||||
_Instructions: Replace the template text and remove irrelevant text (including this line)_
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
(Issues related to the runtime files should be reported to their maintainer, check the file header.)
|
||||
|
||||
**To Reproduce**
|
||||
Detailed steps to reproduce the behavior:
|
||||
1. Run `vim --clean` (or `gvim --clean`, etc.)
|
||||
2. Edit `filename`
|
||||
3. Type '....'
|
||||
4. Describe the error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, copy/paste the text or add screenshots to help explain your problem.
|
||||
|
||||
**Environment (please complete the following information):**
|
||||
- Vim version [e.g. 8.1.1234] (Or paste the result of `vim --version`.)
|
||||
- OS: [e.g. Ubuntu 18.04, Windows 10 1809, macOS 10.14]
|
||||
- Terminal: [e.g. GNOME Terminal, mintty, iTerm2, tmux, GNU screen] (Use GUI if you use the GUI.)
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
22
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
22
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an enhancement for Vim
|
||||
title: ''
|
||||
labels: enhancement
|
||||
|
||||
---
|
||||
|
||||
_Instructions: Replace the template text and remove irrelevant text (including this line)_
|
||||
|
||||
**Is your feature request related something that is currently hard to do? Please describe.**
|
||||
A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...]
|
||||
(If it is related to runtime files, please check their header for where to discuss enhancements.)
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -69,10 +69,14 @@ branches:
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
# Need msgfmt 0.19.8 to be able to generate .desktop files
|
||||
- sourceline: 'ppa:ricotz/toolchain'
|
||||
packages:
|
||||
- autoconf
|
||||
- clang
|
||||
- lcov
|
||||
- gettext
|
||||
- libperl-dev
|
||||
- python-dev
|
||||
- python3-dev
|
||||
|
||||
@@ -21,9 +21,9 @@ maillist is also fine.
|
||||
|
||||
Please use the GitHub issues only for actual issues. If you are not 100% sure
|
||||
that your problem is a Vim issue, please first discuss this on the Vim user
|
||||
maillist. Try reproducing the problem without any plugins or settings:
|
||||
maillist. Try reproducing the problem without any of your plugins or settings:
|
||||
|
||||
vim -N -u NONE
|
||||
vim --clean
|
||||
|
||||
If you report an issue, please describe exactly how to reproduce it.
|
||||
For example, don't say "insert some text" but say what you did exactly:
|
||||
@@ -56,12 +56,14 @@ If the maintainer does not respond, contact the vim-dev maillist.
|
||||
|
||||
# Translations
|
||||
|
||||
Translating messages and runtime files is very much appreciated! These things can be translated:
|
||||
Translating messages and runtime files is very much appreciated! These things
|
||||
can be translated:
|
||||
* Messages in Vim, see [src/po/README.txt][1]
|
||||
Also used for the desktop icons.
|
||||
* Menus, see [runtime/lang/README.txt][2]
|
||||
* Vim tutor, see [runtime/tutor/README.txt][3]
|
||||
* Manual pages, see [runtime/doc/\*.1][4] for examples
|
||||
* Desktop icon, see [runtime/vim.desktop][5] and [runtime/gvim.desktop][6]
|
||||
* Installer, see [nsis/lang/\*.nsi][5] for examples
|
||||
|
||||
The help files can be translated and made available separately.
|
||||
See https://www.vim.org/translations.php for examples.
|
||||
@@ -70,5 +72,4 @@ See https://www.vim.org/translations.php for examples.
|
||||
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
|
||||
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
|
||||
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
|
||||
[5]: https://github.com/vim/vim/blob/master/runtime/vim.desktop
|
||||
[6]: https://github.com/vim/vim/blob/master/runtime/gvim.desktop
|
||||
[5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi
|
||||
|
||||
15
Filelist
15
Filelist
@@ -9,10 +9,9 @@ SRC_ALL = \
|
||||
appveyor.yml \
|
||||
ci/appveyor.bat \
|
||||
src/Make_all.mak \
|
||||
src/README.txt \
|
||||
src/README.md \
|
||||
src/alloc.h \
|
||||
src/arabic.c \
|
||||
src/arabic.h \
|
||||
src/ascii.h \
|
||||
src/autocmd.c \
|
||||
src/beval.c \
|
||||
@@ -24,6 +23,7 @@ SRC_ALL = \
|
||||
src/charset.c \
|
||||
src/crypt.c \
|
||||
src/crypt_zip.c \
|
||||
src/debugger.c \
|
||||
src/dict.c \
|
||||
src/diff.c \
|
||||
src/digraph.c \
|
||||
@@ -49,6 +49,7 @@ SRC_ALL = \
|
||||
src/hardcopy.c \
|
||||
src/hashtab.c \
|
||||
src/indent.c \
|
||||
src/insexpand.c \
|
||||
src/json.c \
|
||||
src/json_test.c \
|
||||
src/kword_test.c \
|
||||
@@ -156,6 +157,7 @@ SRC_ALL = \
|
||||
src/proto/charset.pro \
|
||||
src/proto/crypt.pro \
|
||||
src/proto/crypt_zip.pro \
|
||||
src/proto/debugger.pro \
|
||||
src/proto/dict.pro \
|
||||
src/proto/diff.pro \
|
||||
src/proto/digraph.pro \
|
||||
@@ -176,6 +178,7 @@ SRC_ALL = \
|
||||
src/proto/hardcopy.pro \
|
||||
src/proto/hashtab.pro \
|
||||
src/proto/indent.pro \
|
||||
src/proto/insexpand.pro \
|
||||
src/proto/json.pro \
|
||||
src/proto/list.pro \
|
||||
src/proto/main.pro \
|
||||
@@ -449,7 +452,6 @@ SRC_DOS = \
|
||||
src/iscygpty.h \
|
||||
src/iid_ole.c \
|
||||
src/os_dos.h \
|
||||
src/os_w32dll.c \
|
||||
src/os_w32exe.c \
|
||||
src/os_win32.c \
|
||||
src/os_mswin.c \
|
||||
@@ -508,13 +510,14 @@ SRC_DOS_BIN = \
|
||||
src/vim.tlb \
|
||||
src/xpm/COPYRIGHT \
|
||||
src/xpm/README.txt \
|
||||
src/xpm/arm64/lib-vc14/libXpm.lib \
|
||||
src/xpm/include/*.h \
|
||||
src/xpm/x64/lib-vc14/libXpm.lib \
|
||||
src/xpm/x64/lib/libXpm.a \
|
||||
src/xpm/x64/lib/libXpm.lib \
|
||||
src/xpm/x64/lib-vc14/libXpm.lib \
|
||||
src/xpm/x86/lib-vc14/libXpm.lib \
|
||||
src/xpm/x86/lib/libXpm.a \
|
||||
src/xpm/x86/lib/libXpm.lib \
|
||||
src/xpm/x86/lib-vc14/libXpm.lib \
|
||||
nsis/icons.zip \
|
||||
|
||||
# source files for Amiga, DOS, etc. (also in the extra archive)
|
||||
@@ -936,6 +939,8 @@ LANG_SRC = \
|
||||
src/po/Make_cyg.mak \
|
||||
src/po/Make_ming.mak \
|
||||
src/po/Make_mvc.mak \
|
||||
src/po/vim.desktop.in \
|
||||
src/po/gvim.desktop.in \
|
||||
src/po/sjiscorr.c \
|
||||
src/po/*.po \
|
||||
|
||||
|
||||
@@ -354,42 +354,10 @@ Section "$(str_section_exe)" id_section_exe
|
||||
File ${VIMRT}\indent\*.*
|
||||
|
||||
SetOutPath $0\macros
|
||||
File ${VIMRT}\macros\*.*
|
||||
SetOutPath $0\macros\hanoi
|
||||
File ${VIMRT}\macros\hanoi\*.*
|
||||
SetOutPath $0\macros\life
|
||||
File ${VIMRT}\macros\life\*.*
|
||||
SetOutPath $0\macros\maze
|
||||
File ${VIMRT}\macros\maze\*.*
|
||||
SetOutPath $0\macros\urm
|
||||
File ${VIMRT}\macros\urm\*.*
|
||||
File /r ${VIMRT}\macros\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\dvorak\dvorak
|
||||
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
|
||||
SetOutPath $0\pack\dist\opt\dvorak\plugin
|
||||
File ${VIMRT}\pack\dist\opt\dvorak\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\editexisting\plugin
|
||||
File ${VIMRT}\pack\dist\opt\editexisting\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\justify\plugin
|
||||
File ${VIMRT}\pack\dist\opt\justify\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\matchit\doc
|
||||
File ${VIMRT}\pack\dist\opt\matchit\doc\*.*
|
||||
SetOutPath $0\pack\dist\opt\matchit\plugin
|
||||
File ${VIMRT}\pack\dist\opt\matchit\plugin\*.*
|
||||
SetOutPath $0\pack\dist\opt\matchit\autoload
|
||||
File ${VIMRT}\pack\dist\opt\matchit\autoload\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\shellmenu\plugin
|
||||
File ${VIMRT}\pack\dist\opt\shellmenu\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\swapmouse\plugin
|
||||
File ${VIMRT}\pack\dist\opt\swapmouse\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\termdebug\plugin
|
||||
File ${VIMRT}\pack\dist\opt\termdebug\plugin\*.*
|
||||
SetOutPath $0\pack
|
||||
File /r ${VIMRT}\pack\*.*
|
||||
|
||||
SetOutPath $0\plugin
|
||||
File ${VIMRT}\plugin\*.*
|
||||
@@ -1128,7 +1096,9 @@ Section "un.$(str_unsection_rootdir)" id_unsection_rootdir
|
||||
Call un.GetParent
|
||||
Pop $0
|
||||
|
||||
Delete $0\_vimrc
|
||||
${IfNot} ${Silent}
|
||||
Delete $0\_vimrc
|
||||
${Endif}
|
||||
RMDir $0
|
||||
SectionEnd
|
||||
|
||||
|
||||
2
runtime/autoload/dist/ft.vim
vendored
2
runtime/autoload/dist/ft.vim
vendored
@@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Jan 18
|
||||
" Last Change: 2019 Mar 08
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Mar 13
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Apr 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -52,7 +52,7 @@ effects. Be careful not to destroy your text.
|
||||
2. Defining autocommands *autocmd-define*
|
||||
|
||||
*:au* *:autocmd*
|
||||
:au[tocmd] [group] {event} {pat} [nested] {cmd}
|
||||
:au[tocmd] [group] {event} {pat} [++once] [++nested] {cmd}
|
||||
Add {cmd} to the list of commands that Vim will
|
||||
execute automatically on {event} for a file matching
|
||||
{pat} |autocmd-patterns|.
|
||||
@@ -60,7 +60,13 @@ effects. Be careful not to destroy your text.
|
||||
:autocmd and won't start a comment.
|
||||
Vim always adds the {cmd} after existing autocommands,
|
||||
so that the autocommands execute in the order in which
|
||||
they were given. See |autocmd-nested| for [nested].
|
||||
they were given.
|
||||
See |autocmd-nested| for [++nested]. "nested"
|
||||
(without the ++) can also be used, for backwards
|
||||
compatibility.
|
||||
*autocmd-once*
|
||||
If [++once] is supplied the command is executed once,
|
||||
then removed ("one shot").
|
||||
|
||||
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
|
||||
See |autocmd-buflocal|.
|
||||
@@ -128,10 +134,11 @@ prompt. When one command outputs two messages this can happen anyway.
|
||||
==============================================================================
|
||||
3. Removing autocommands *autocmd-remove*
|
||||
|
||||
:au[tocmd]! [group] {event} {pat} [nested] {cmd}
|
||||
:au[tocmd]! [group] {event} {pat} [++once] [++nested] {cmd}
|
||||
Remove all autocommands associated with {event} and
|
||||
{pat}, and add the command {cmd}. See
|
||||
|autocmd-nested| for [nested].
|
||||
{pat}, and add the command {cmd}.
|
||||
See |autocmd-once| for [++once].
|
||||
See |autocmd-nested| for [++nested].
|
||||
|
||||
:au[tocmd]! [group] {event} {pat}
|
||||
Remove all autocommands associated with {event} and
|
||||
@@ -360,6 +367,7 @@ Name triggered by ~
|
||||
|SessionLoadPost| after loading a session file
|
||||
|
||||
|MenuPopup| just before showing the popup menu
|
||||
|CompleteChanged| after Insert mode completion menu changed
|
||||
|CompleteDone| after Insert mode completion is done
|
||||
|
||||
|User| to be used in combination with ":doautocmd"
|
||||
@@ -572,7 +580,22 @@ ColorScheme After loading a color scheme. |:colorscheme|
|
||||
ColorSchemePre Before loading a color scheme. |:colorscheme|
|
||||
Useful to setup removing things added by a
|
||||
color scheme, before another one is loaded.
|
||||
CompleteChanged *CompleteChanged*
|
||||
After each time the Insert mode completion
|
||||
menu changed. Not fired on popup menu hide,
|
||||
use |CompleteDone| for that. Never triggered
|
||||
recursively.
|
||||
|
||||
Sets these |v:event| keys:
|
||||
completed_item See |complete-items|.
|
||||
height nr of items visible
|
||||
width screen cells
|
||||
row top screen row
|
||||
col leftmost screen column
|
||||
size total nr of items
|
||||
scrollbar TRUE if visible
|
||||
|
||||
It is not allowed to change the text |textlock|.
|
||||
*CompleteDone*
|
||||
CompleteDone After Insert mode completion is done. Either
|
||||
when something was completed or abandoning
|
||||
@@ -872,7 +895,6 @@ OptionSet After setting an option. The pattern is
|
||||
|
||||
When using |:set| in the autocommand the event
|
||||
is not triggered again.
|
||||
|
||||
*QuickFixCmdPre*
|
||||
QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
|
||||
@@ -1473,7 +1495,7 @@ By default, autocommands do not nest. For example, if you use ":e" or ":w" in
|
||||
an autocommand, Vim does not execute the BufRead and BufWrite autocommands for
|
||||
those commands. If you do want this, use the "nested" flag for those commands
|
||||
in which you want nesting. For example: >
|
||||
:autocmd FileChangedShell *.c nested e!
|
||||
:autocmd FileChangedShell *.c ++nested e!
|
||||
The nesting is limited to 10 levels to get out of recursive loops.
|
||||
|
||||
It's possible to use the ":au" command in an autocommand. This can be a
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 8.1. Last change: 2018 Apr 18
|
||||
*channel.txt* For Vim version 8.1. Last change: 2019 Mar 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -308,9 +308,10 @@ higher.
|
||||
|
||||
Command "redraw" ~
|
||||
|
||||
The other commands do not update the screen, so that you can send a sequence
|
||||
of commands without the cursor moving around. You must end with the "redraw"
|
||||
command to show any changed text and show the cursor where it belongs.
|
||||
The other commands do not explicitly update the screen, so that you can send a
|
||||
sequence of commands without the cursor moving around. A redraw can happen as
|
||||
a side effect of some commands. You must end with the "redraw" command to
|
||||
show any changed text and show the cursor where it belongs.
|
||||
|
||||
The argument is normally an empty string:
|
||||
["redraw", ""] ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.1. Last change: 2019 Mar 02
|
||||
*eval.txt* For Vim version 8.1. Last change: 2019 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -27,10 +27,11 @@ done, the features in this document are not available. See |+eval| and
|
||||
7. Commands |expression-commands|
|
||||
8. Exception handling |exception-handling|
|
||||
9. Examples |eval-examples|
|
||||
10. No +eval feature |no-eval-feature|
|
||||
11. The sandbox |eval-sandbox|
|
||||
12. Textlock |textlock|
|
||||
13. Testing |testing|
|
||||
10. Vim script version |vimscript-version|
|
||||
11. No +eval feature |no-eval-feature|
|
||||
12. The sandbox |eval-sandbox|
|
||||
13. Textlock |textlock|
|
||||
14. Testing |testing|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
|
||||
@@ -625,8 +626,11 @@ Functions that can be used with a Dictionary: >
|
||||
|
||||
1.5 Blobs ~
|
||||
*blob* *Blob* *Blobs* *E978*
|
||||
A Blob mostly behaves like a |List| of numbers, where the numbers have an
|
||||
8-bit value, from 0 to 255.
|
||||
A Blob is a binary object. It can be used to read an image from a file and
|
||||
send it over a channel, for example.
|
||||
|
||||
A Blob mostly behaves like a |List| of numbers, where each number has the
|
||||
value of an 8-bit byte, from 0 to 255.
|
||||
|
||||
|
||||
Blob creation ~
|
||||
@@ -783,10 +787,10 @@ Expression syntax summary, from least to most significant:
|
||||
expr2 ? expr1 : expr1 if-then-else
|
||||
|
||||
|expr2| expr3
|
||||
expr3 || expr3 .. logical OR
|
||||
expr3 || expr3 ... logical OR
|
||||
|
||||
|expr3| expr4
|
||||
expr4 && expr4 .. logical AND
|
||||
expr4 && expr4 ... logical AND
|
||||
|
||||
|expr4| expr5
|
||||
expr5 == expr5 equal
|
||||
@@ -808,14 +812,15 @@ Expression syntax summary, from least to most significant:
|
||||
instance
|
||||
|
||||
|expr5| expr6
|
||||
expr6 + expr6 .. number addition, list or blob concatenation
|
||||
expr6 - expr6 .. number subtraction
|
||||
expr6 . expr6 .. string concatenation
|
||||
expr6 + expr6 ... number addition, list or blob concatenation
|
||||
expr6 - expr6 ... number subtraction
|
||||
expr6 . expr6 ... string concatenation
|
||||
expr6 .. expr6 ... string concatenation
|
||||
|
||||
|expr6| expr7
|
||||
expr7 * expr7 .. number multiplication
|
||||
expr7 / expr7 .. number division
|
||||
expr7 % expr7 .. number modulo
|
||||
expr7 * expr7 ... number multiplication
|
||||
expr7 / expr7 ... number division
|
||||
expr7 % expr7 ... number modulo
|
||||
|
||||
|expr7| expr8
|
||||
! expr7 logical NOT
|
||||
@@ -844,7 +849,7 @@ Expression syntax summary, from least to most significant:
|
||||
{args -> expr1} lambda expression
|
||||
|
||||
|
||||
".." indicates that the operations in this level can be concatenated.
|
||||
"..." indicates that the operations in this level can be concatenated.
|
||||
Example: >
|
||||
&nu || &list && &shell == "csh"
|
||||
|
||||
@@ -1023,18 +1028,23 @@ can be matched like an ordinary character. Examples:
|
||||
|
||||
expr5 and expr6 *expr5* *expr6*
|
||||
---------------
|
||||
expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+*
|
||||
expr6 - expr6 Number subtraction *expr--*
|
||||
expr6 . expr6 String concatenation *expr-.*
|
||||
expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+*
|
||||
expr6 - expr6 Number subtraction *expr--*
|
||||
expr6 . expr6 String concatenation *expr-.*
|
||||
expr6 .. expr6 String concatenation *expr-..*
|
||||
|
||||
For |Lists| only "+" is possible and then both expr6 must be a list. The
|
||||
result is a new list with the two lists Concatenated.
|
||||
|
||||
For String concatenation ".." is preferred, since "." is ambiguous, it is also
|
||||
used for |Dict| member access and floating point numbers.
|
||||
When |vimscript-version| is 2 or higher, using "." is not allowed.
|
||||
|
||||
expr7 * expr7 Number multiplication *expr-star*
|
||||
expr7 / expr7 Number division *expr-/*
|
||||
expr7 % expr7 Number modulo *expr-%*
|
||||
|
||||
For all, except ".", Strings are converted to Numbers.
|
||||
For all, except "." and "..", Strings are converted to Numbers.
|
||||
For bitwise operators see |and()|, |or()| and |xor()|.
|
||||
|
||||
Note the difference between "+" and ".":
|
||||
@@ -1678,7 +1688,8 @@ v:count The count given for the last Normal mode command. Can be used
|
||||
When there are two counts, as in "3d2w", they are multiplied,
|
||||
just like what happens in the command, "d6w" for the example.
|
||||
Also used for evaluating the 'formatexpr' option.
|
||||
"count" also works, for backwards compatibility.
|
||||
"count" also works, for backwards compatibility, unless
|
||||
|scriptversion| is 3 or higher.
|
||||
|
||||
*v:count1* *count1-variable*
|
||||
v:count1 Just like "v:count", but defaults to one when no count is
|
||||
@@ -1710,7 +1721,8 @@ v:errmsg Last given error message. It's allowed to set this variable.
|
||||
:silent! next
|
||||
:if v:errmsg != ""
|
||||
: ... handle error
|
||||
< "errmsg" also works, for backwards compatibility.
|
||||
< "errmsg" also works, for backwards compatibility, unless
|
||||
|scriptversion| is 3 or higher.
|
||||
|
||||
*v:errors* *errors-variable* *assert-return*
|
||||
v:errors Errors found by assert functions, such as |assert_true()|.
|
||||
@@ -2013,7 +2025,8 @@ v:shell_error Result of the last shell command. When non-zero, the last
|
||||
:if v:shell_error
|
||||
: echo 'could not rename "foo" to "bar"!'
|
||||
:endif
|
||||
< "shell_error" also works, for backwards compatibility.
|
||||
< "shell_error" also works, for backwards compatibility, unless
|
||||
|scriptversion| is 3 or higher.
|
||||
|
||||
*v:statusmsg* *statusmsg-variable*
|
||||
v:statusmsg Last given status message. It's allowed to set this variable.
|
||||
@@ -2113,7 +2126,8 @@ v:testing Must be set before using `test_garbagecollect_now()`.
|
||||
v:this_session Full filename of the last loaded or saved session file. See
|
||||
|:mksession|. It is allowed to set this variable. When no
|
||||
session file has been saved, this variable is empty.
|
||||
"this_session" also works, for backwards compatibility.
|
||||
"this_session" also works, for backwards compatibility, unless
|
||||
|scriptversion| is 3 or higher
|
||||
|
||||
*v:throwpoint* *throwpoint-variable*
|
||||
v:throwpoint The point where the exception most recently caught and not
|
||||
@@ -2144,7 +2158,7 @@ v:val Value of the current item of a |List| or |Dictionary|. Only
|
||||
v:version Version number of Vim: Major version number times 100 plus
|
||||
minor version number. Version 5.0 is 500. Version 5.1 (5.01)
|
||||
is 501. Read-only. "version" also works, for backwards
|
||||
compatibility.
|
||||
compatibility, unless |scriptversion| is 3 or higher.
|
||||
Use |has()| to check if a certain patch was included, e.g.: >
|
||||
if has("patch-7.4.123")
|
||||
< Note that patch numbers are specific to the version, thus both
|
||||
@@ -2262,11 +2276,12 @@ ch_status({handle} [, {options}])
|
||||
changenr() Number current change number
|
||||
char2nr({expr} [, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
|
||||
cindent({lnum}) Number C indent for line {lnum}
|
||||
clearmatches() none clear all matches
|
||||
clearmatches([{win}]) none clear all matches
|
||||
col({expr}) Number column nr of cursor or mark
|
||||
complete({startcol}, {matches}) none set Insert mode completion
|
||||
complete_add({expr}) Number add completion match
|
||||
complete_check() Number check for key typed during completion
|
||||
complete_info([{what}]) Dict get current completion information
|
||||
confirm({msg} [, {choices} [, {default} [, {type}]]])
|
||||
Number number of choice picked by user
|
||||
copy({expr}) any make a shallow copy of {expr}
|
||||
@@ -2355,7 +2370,7 @@ getjumplist([{winnr} [, {tabnr}]])
|
||||
getline({lnum}) String line {lnum} of current buffer
|
||||
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
|
||||
getloclist({nr} [, {what}]) List list of location list items
|
||||
getmatches() List list of current matches
|
||||
getmatches([{win}]) List list of current matches
|
||||
getpid() Number process ID of Vim
|
||||
getpos({expr}) List position of cursor, mark, etc.
|
||||
getqflist([{what}]) List list of quickfix items
|
||||
@@ -2407,6 +2422,8 @@ inputsecret({prompt} [, {text}]) String like input() but hiding the text
|
||||
insert({object}, {item} [, {idx}]) List insert {item} in {object} [before {idx}]
|
||||
invert({expr}) Number bitwise invert
|
||||
isdirectory({directory}) Number |TRUE| if {directory} is a directory
|
||||
isinf({expr}) Number determine if {expr} is infinity value
|
||||
(positive or negative)
|
||||
islocked({expr}) Number |TRUE| if {expr} is locked
|
||||
isnan({expr}) Number |TRUE| if {expr} is NaN
|
||||
items({dict}) List key-value pairs in {dict}
|
||||
@@ -2429,6 +2446,7 @@ libcallnr({lib}, {func}, {arg}) Number idem, but return a Number
|
||||
line({expr}) Number line nr of cursor, last line or mark
|
||||
line2byte({lnum}) Number byte count of line {lnum}
|
||||
lispindent({lnum}) Number Lisp indent for line {lnum}
|
||||
list2str({list} [, {utf8}]) String turn numbers in {list} into a String
|
||||
localtime() Number current time
|
||||
log({expr}) Float natural logarithm (base e) of {expr}
|
||||
log10({expr}) Float logarithm of Float {expr} to base 10
|
||||
@@ -2446,7 +2464,7 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
|
||||
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
||||
Number highlight positions with {group}
|
||||
matcharg({nr}) List arguments of |:match|
|
||||
matchdelete({id}) Number delete match identified by {id}
|
||||
matchdelete({id} [, {win}]) Number delete match identified by {id}
|
||||
matchend({expr}, {pat} [, {start} [, {count}]])
|
||||
Number position where {pat} ends in {expr}
|
||||
matchlist({expr}, {pat} [, {start} [, {count}]])
|
||||
@@ -2494,6 +2512,7 @@ py3eval({expr}) any evaluate |python3| expression
|
||||
pyxeval({expr}) any evaluate |python_x| expression
|
||||
range({expr} [, {max} [, {stride}]])
|
||||
List items from {expr} to {max}
|
||||
readdir({dir} [, {expr}]) List file names in {dir} selected by {expr}
|
||||
readfile({fname} [, {type} [, {max}]])
|
||||
List get list of lines from file {fname}
|
||||
reg_executing() String get the executing register name
|
||||
@@ -2521,10 +2540,13 @@ repeat({expr}, {count}) String repeat {expr} {count} times
|
||||
resolve({filename}) String get filename a shortcut points to
|
||||
reverse({list}) List reverse {list} in-place
|
||||
round({expr}) Float round off {expr}
|
||||
rubyeval({expr}) any evaluate |Ruby| expression
|
||||
screenattr({row}, {col}) Number attribute at screen position
|
||||
screenchar({row}, {col}) Number character at screen position
|
||||
screenchars({row}, {col}) List List of characters at screen position
|
||||
screencol() Number current cursor column
|
||||
screenrow() Number current cursor row
|
||||
screenstring({row}, {col}) String characters at screen position
|
||||
search({pattern} [, {flags} [, {stopline} [, {timeout}]]])
|
||||
Number search for {pattern}
|
||||
searchdecl({name} [, {global} [, {thisblock}]])
|
||||
@@ -2549,7 +2571,7 @@ setfperm({fname}, {mode}) Number set {fname} file permissions to {mode}
|
||||
setline({lnum}, {line}) Number set line {lnum} to {line}
|
||||
setloclist({nr}, {list} [, {action} [, {what}]])
|
||||
Number modify location list using {list}
|
||||
setmatches({list}) Number restore a list of matches
|
||||
setmatches({list} [, {win}]) Number restore a list of matches
|
||||
setpos({expr}, {list}) Number set the {expr} position to {list}
|
||||
setqflist({list} [, {action} [, {what}]])
|
||||
Number modify quickfix list using {list}
|
||||
@@ -2590,6 +2612,8 @@ split({expr} [, {pat} [, {keepempty}]])
|
||||
List make |List| from {pat} separated {expr}
|
||||
sqrt({expr}) Float square root of {expr}
|
||||
str2float({expr}) Float convert String to Float
|
||||
str2list({expr} [, {utf8}]) List convert each character of {expr} to
|
||||
ASCII/UTF8 value
|
||||
str2nr({expr} [, {base}]) Number convert String to Number
|
||||
strchars({expr} [, {skipcc}]) Number character length of the String {expr}
|
||||
strcharpart({str}, {start} [, {len}])
|
||||
@@ -2655,7 +2679,7 @@ term_setkill({buf}, {how}) none set signal to stop job in terminal
|
||||
term_setrestore({buf}, {command}) none set command to restore terminal
|
||||
term_setsize({buf}, {rows}, {cols})
|
||||
none set the size of a terminal
|
||||
term_start({cmd}, {options}) Number open a terminal window and run a job
|
||||
term_start({cmd} [, {options}]) Number open a terminal window and run a job
|
||||
term_wait({buf} [, {time}]) Number wait for screen to be updated
|
||||
test_alloc_fail({id}, {countdown}, {repeat})
|
||||
none make memory allocation fail
|
||||
@@ -2672,6 +2696,7 @@ test_null_partial() Funcref null value for testing
|
||||
test_null_string() String null value for testing
|
||||
test_option_not_set({name}) none reset flag indicating option was set
|
||||
test_override({expr}, {val}) none test with Vim internal overrides
|
||||
test_refcount({expr}) Number get the reference count of {expr}
|
||||
test_scrollbar({which}, {value}, {dragging})
|
||||
none scroll in the GUI for testing
|
||||
test_settime({expr}) none set current time for testing
|
||||
@@ -3439,6 +3464,10 @@ char2nr({expr} [, {utf8}]) *char2nr()*
|
||||
< With {utf8} set to 1, always treat as utf-8 characters.
|
||||
A combining character is a separate character.
|
||||
|nr2char()| does the opposite.
|
||||
To turn a string into a list of character numbers: >
|
||||
let str = "ABC"
|
||||
let list = map(split(str, '\zs'), {_, val -> char2nr(val)})
|
||||
< Result: [65, 66, 67]
|
||||
|
||||
cindent({lnum}) *cindent()*
|
||||
Get the amount of indent for line {lnum} according the C
|
||||
@@ -3449,9 +3478,11 @@ cindent({lnum}) *cindent()*
|
||||
feature, -1 is returned.
|
||||
See |C-indenting|.
|
||||
|
||||
clearmatches() *clearmatches()*
|
||||
Clears all matches previously defined by |matchadd()| and the
|
||||
|:match| commands.
|
||||
clearmatches([{win}]) *clearmatches()*
|
||||
Clears all matches previously defined for the current window
|
||||
by |matchadd()| and the |:match| commands.
|
||||
If {win} is specified, use the window with this number or
|
||||
window ID instead of the current window.
|
||||
|
||||
*col()*
|
||||
col({expr}) The result is a Number, which is the byte index of the column
|
||||
@@ -3536,6 +3567,55 @@ complete_check() *complete_check()*
|
||||
Only to be used by the function specified with the
|
||||
'completefunc' option.
|
||||
|
||||
*complete_info()*
|
||||
complete_info([{what}])
|
||||
Returns a Dictionary with information about Insert mode
|
||||
completion. See |ins-completion|.
|
||||
The items are:
|
||||
mode Current completion mode name string.
|
||||
See |complete_info_mode| for the values.
|
||||
pum_visible |TRUE| if popup menu is visible.
|
||||
See |pumvisible()|.
|
||||
items List of completion matches. Each item is a
|
||||
dictionary containing the entries "word",
|
||||
"abbr", "menu", "kind", "info" and "user_data".
|
||||
See |complete-items|.
|
||||
selected Selected item index. First index is zero.
|
||||
Index is -1 if no item is selected (showing
|
||||
typed text only)
|
||||
inserted Inserted string. [NOT IMPLEMENT YET]
|
||||
|
||||
*complete_info_mode*
|
||||
mode values are:
|
||||
"" Not in completion mode
|
||||
"keyword" Keyword completion |i_CTRL-X_CTRL-N|
|
||||
"ctrl_x" Just pressed CTRL-X |i_CTRL-X|
|
||||
"whole_line" Whole lines |i_CTRL-X_CTRL-L|
|
||||
"files" File names |i_CTRL-X_CTRL-F|
|
||||
"tags" Tags |i_CTRL-X_CTRL-]|
|
||||
"path_defines" Definition completion |i_CTRL-X_CTRL-D|
|
||||
"path_patterns" Include completion |i_CTRL-X_CTRL-I|
|
||||
"dictionary" Dictionary |i_CTRL-X_CTRL-K|
|
||||
"thesaurus" Thesaurus |i_CTRL-X_CTRL-T|
|
||||
"cmdline" Vim Command line |i_CTRL-X_CTRL-V|
|
||||
"function" User defined completion |i_CTRL-X_CTRL-U|
|
||||
"omni" Omni completion |i_CTRL-X_CTRL-O|
|
||||
"spell" Spelling suggestions |i_CTRL-X_s|
|
||||
"eval" |complete()| completion
|
||||
"unknown" Other internal modes
|
||||
|
||||
If the optional {what} list argument is supplied, then only
|
||||
the items listed in {what} are returned. Unsupported items in
|
||||
{what} are silently ignored.
|
||||
|
||||
Examples: >
|
||||
" Get all items
|
||||
call complete_info()
|
||||
" Get only 'mode'
|
||||
call complete_info(['mode'])
|
||||
" Get only 'mode' and 'pum_visible'
|
||||
call complete_info(['mode', 'pum_visible'])
|
||||
<
|
||||
*confirm()*
|
||||
confirm({msg} [, {choices} [, {default} [, {type}]]])
|
||||
confirm() offers the user a dialog, from which a choice can be
|
||||
@@ -4975,11 +5055,12 @@ getloclist({nr} [, {what}]) *getloclist()*
|
||||
|location-list-file-window| for more
|
||||
details.
|
||||
|
||||
getmatches() *getmatches()*
|
||||
Returns a |List| with all matches previously defined by
|
||||
|matchadd()| and the |:match| commands. |getmatches()| is
|
||||
useful in combination with |setmatches()|, as |setmatches()|
|
||||
can restore a list of matches saved by |getmatches()|.
|
||||
getmatches([{win}]) *getmatches()*
|
||||
Returns a |List| with all matches previously defined for the
|
||||
current window by |matchadd()| and the |:match| commands.
|
||||
|getmatches()| is useful in combination with |setmatches()|,
|
||||
as |setmatches()| can restore a list of matches saved by
|
||||
|getmatches()|.
|
||||
Example: >
|
||||
:echo getmatches()
|
||||
< [{'group': 'MyGroup1', 'pattern': 'TODO',
|
||||
@@ -5319,6 +5400,9 @@ glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) *glob()*
|
||||
|
||||
If the expansion fails, the result is an empty String or List.
|
||||
|
||||
You can also use |readdir()| if you need to do complicated
|
||||
things, such as limiting the number of matches.
|
||||
|
||||
A name for a non-existing file is not included. A symbolic
|
||||
link is only included if it points to an existing file.
|
||||
However, when the {alllinks} argument is present and it is
|
||||
@@ -5708,6 +5792,16 @@ isdirectory({directory}) *isdirectory()*
|
||||
exist, or isn't a directory, the result is |FALSE|. {directory}
|
||||
is any expression, which is used as a String.
|
||||
|
||||
isinf({expr}) *isinf()*
|
||||
Return 1 if {expr} is a positive infinity, or -1 a negative
|
||||
infinity, otherwise 0. >
|
||||
:echo isinf(1.0 / 0.0)
|
||||
< 1 >
|
||||
:echo isinf(-1.0 / 0.0)
|
||||
< -1
|
||||
|
||||
{only available when compiled with the |+float| feature}
|
||||
|
||||
islocked({expr}) *islocked()* *E786*
|
||||
The result is a Number, which is |TRUE| when {expr} is the
|
||||
name of a locked variable.
|
||||
@@ -5724,7 +5818,7 @@ islocked({expr}) *islocked()* *E786*
|
||||
isnan({expr}) *isnan()*
|
||||
Return |TRUE| if {expr} is a float with value NaN. >
|
||||
echo isnan(0.0 / 0.0)
|
||||
< 1 ~
|
||||
< 1
|
||||
|
||||
{only available when compiled with the |+float| feature}
|
||||
|
||||
@@ -6107,6 +6201,20 @@ lispindent({lnum}) *lispindent()*
|
||||
When {lnum} is invalid or Vim was not compiled the
|
||||
|+lispindent| feature, -1 is returned.
|
||||
|
||||
list2str({list} [, {utf8}]) *list2str()*
|
||||
Convert each number in {list} to a character string can
|
||||
concatenate them all. Examples: >
|
||||
list2str([32]) returns " "
|
||||
list2str([65, 66, 67]) returns "ABC"
|
||||
< The same can be done (slowly) with: >
|
||||
join(map(list, {nr, val -> nr2char(val)}), '')
|
||||
< |str2list()| does the opposite.
|
||||
|
||||
When {utf8} is omitted or zero, the current 'encoding' is used.
|
||||
With {utf8} is 1, always return utf-8 characters.
|
||||
With utf-8 composing characters work as expected: >
|
||||
list2str([97, 769]) returns "á"
|
||||
<
|
||||
localtime() *localtime()*
|
||||
Return the current time, measured as seconds since 1st Jan
|
||||
1970. See also |strftime()| and |getftime()|.
|
||||
@@ -6344,7 +6452,7 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
|
||||
Defines a pattern to be highlighted in the current window (a
|
||||
"match"). It will be highlighted with {group}. Returns an
|
||||
identification number (ID), which can be used to delete the
|
||||
match using |matchdelete()|.
|
||||
match using |matchdelete()|. The ID is bound to the window.
|
||||
Matching is case sensitive and magic, unless case sensitivity
|
||||
or magicness are explicitly overridden in {pattern}. The
|
||||
'magic', 'smartcase' and 'ignorecase' options are not used.
|
||||
@@ -6440,11 +6548,13 @@ matcharg({nr}) *matcharg()*
|
||||
Highlighting matches using the |:match| commands are limited
|
||||
to three matches. |matchadd()| does not have this limitation.
|
||||
|
||||
matchdelete({id}) *matchdelete()* *E802* *E803*
|
||||
matchdelete({id} [, {win}) *matchdelete()* *E802* *E803*
|
||||
Deletes a match with ID {id} previously defined by |matchadd()|
|
||||
or one of the |:match| commands. Returns 0 if successful,
|
||||
otherwise -1. See example for |matchadd()|. All matches can
|
||||
be deleted in one operation by |clearmatches()|.
|
||||
If {win} is specified, use the window with this number or
|
||||
window ID instead of the current window.
|
||||
|
||||
matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
|
||||
Same as |match()|, but return the index of first character
|
||||
@@ -6633,6 +6743,10 @@ nr2char({expr} [, {utf8}]) *nr2char()*
|
||||
nr2char(10), because NULs are represented with newline
|
||||
characters. nr2char(0) is a real NUL and terminates the
|
||||
string, thus results in an empty string.
|
||||
To turn a list of character numbers into a string: >
|
||||
let list = [65, 66, 67]
|
||||
let str = join(map(list, {_, val -> nr2char(val)}), '')
|
||||
< Result: "ABC"
|
||||
|
||||
or({expr}, {expr}) *or()*
|
||||
Bitwise OR on the two arguments. The arguments are converted
|
||||
@@ -7166,6 +7280,35 @@ range({expr} [, {max} [, {stride}]]) *range()*
|
||||
range(2, -2, -1) " [2, 1, 0, -1, -2]
|
||||
range(0) " []
|
||||
range(2, 0) " error!
|
||||
<
|
||||
*readdir()*
|
||||
readdir({directory} [, {expr}])
|
||||
Return a list with file and directory names in {directory}.
|
||||
You can also use |glob()| if you don't need to do complicated
|
||||
things, such as limiting the number of matches.
|
||||
|
||||
When {expr} is omitted all entries are included.
|
||||
When {expr} is given, it is evaluated to check what to do:
|
||||
If {expr} results in -1 then no further entries will
|
||||
be handled.
|
||||
If {expr} results in 0 then this entry will not be
|
||||
added to the list.
|
||||
If {expr} results in 1 then this entry will be added
|
||||
to the list.
|
||||
Each time {expr} is evaluated |v:val| is set to the entry name.
|
||||
When {expr} is a function the name is passed as the argument.
|
||||
For example, to get a list of files ending in ".txt": >
|
||||
readdir(dirname, {n -> n =~ '.txt$'})
|
||||
< To skip hidden and backup files: >
|
||||
readdir(dirname, {n -> n !~ '^\.\|\~$'})
|
||||
|
||||
< If you want to get a directory tree: >
|
||||
function! s:tree(dir)
|
||||
return {a:dir : map(readdir(a:dir),
|
||||
\ {_, x -> isdirectory(x) ?
|
||||
\ {x : s:tree(a:dir . '/' . x)} : x})}
|
||||
endfunction
|
||||
echo s:tree(".")
|
||||
<
|
||||
*readfile()*
|
||||
readfile({fname} [, {type} [, {max}]])
|
||||
@@ -7208,7 +7351,7 @@ reg_executing() *reg_executing()*
|
||||
|
||||
reg_recording() *reg_recording()*
|
||||
Returns the single letter name of the register being recorded.
|
||||
Returns an empty string string when not recording. See |q|.
|
||||
Returns an empty string when not recording. See |q|.
|
||||
|
||||
reltime([{start} [, {end}]]) *reltime()*
|
||||
Return an item that represents a time value. The format of
|
||||
@@ -7431,6 +7574,17 @@ round({expr}) *round()*
|
||||
< -5.0
|
||||
{only available when compiled with the |+float| feature}
|
||||
|
||||
rubyeval({expr}) *rubyeval()*
|
||||
Evaluate Ruby expression {expr} and return its result
|
||||
converted to Vim data structures.
|
||||
Numbers, floats and strings are returned as they are (strings
|
||||
are copied though).
|
||||
Arrays are represented as Vim |List| type.
|
||||
Hashes are represented as Vim |Dictionary| type.
|
||||
Other objects are represented as strings resulted from their
|
||||
"Object#to_s" method.
|
||||
{only available when compiled with the |+ruby| feature}
|
||||
|
||||
screenattr({row}, {col}) *screenattr()*
|
||||
Like |screenchar()|, but return the attribute. This is a rather
|
||||
arbitrary number that can only be used to compare to the
|
||||
@@ -7446,6 +7600,13 @@ screenchar({row}, {col}) *screenchar()*
|
||||
This is mainly to be used for testing.
|
||||
Returns -1 when row or col is out of range.
|
||||
|
||||
screenchars({row}, {col}) *screenchars()*
|
||||
The result is a List of Numbers. The first number is the same
|
||||
as what |screenchar()| returns. Further numbers are
|
||||
composing characters on top of the base character.
|
||||
This is mainly to be used for testing.
|
||||
Returns an empty List when row or col is out of range.
|
||||
|
||||
screencol() *screencol()*
|
||||
The result is a Number, which is the current screen column of
|
||||
the cursor. The leftmost column has number 1.
|
||||
@@ -7467,6 +7628,14 @@ screenrow() *screenrow()*
|
||||
|
||||
Note: Same restrictions as with |screencol()|.
|
||||
|
||||
screenstring({row}, {col}) *screenstring()*
|
||||
The result is a String that contains the base character and
|
||||
any composing characters at position [row, col] on the screen.
|
||||
This is like |screenchars()| but returning a String with the
|
||||
characters.
|
||||
This is mainly to be used for testing.
|
||||
Returns an empty String when row or col is out of range.
|
||||
|
||||
search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
|
||||
Search for regexp pattern {pattern}. The search starts at the
|
||||
cursor position (you can use |cursor()| to set it).
|
||||
@@ -7825,10 +7994,13 @@ setloclist({nr}, {list} [, {action} [, {what}]]) *setloclist()*
|
||||
only the items listed in {what} are set. Refer to |setqflist()|
|
||||
for the list of supported keys in {what}.
|
||||
|
||||
setmatches({list}) *setmatches()*
|
||||
Restores a list of matches saved by |getmatches()|. Returns 0
|
||||
if successful, otherwise -1. All current matches are cleared
|
||||
before the list is restored. See example for |getmatches()|.
|
||||
setmatches({list} [, {win}]) *setmatches()*
|
||||
Restores a list of matches saved by |getmatches() for the
|
||||
current window|. Returns 0 if successful, otherwise -1. All
|
||||
current matches are cleared before the list is restored. See
|
||||
example for |getmatches()|.
|
||||
If {win} is specified, use the window with this number or
|
||||
window ID instead of the current window.
|
||||
|
||||
*setpos()*
|
||||
setpos({expr}, {list})
|
||||
@@ -8574,6 +8746,18 @@ str2float({expr}) *str2float()*
|
||||
let f = str2float(substitute(text, ',', '', 'g'))
|
||||
< {only available when compiled with the |+float| feature}
|
||||
|
||||
str2list({expr} [, {utf8}]) *str2list()*
|
||||
Return a list containing the number values which represent
|
||||
each character in String {expr}. Examples: >
|
||||
str2list(" ") returns [32]
|
||||
str2list("ABC") returns [65, 66, 67]
|
||||
< |list2str()| does the opposite.
|
||||
|
||||
When {utf8} is omitted or zero, the current 'encoding' is used.
|
||||
With {utf8} set to 1, always treat the String as utf-8
|
||||
characters. With utf-8 composing characters are handled
|
||||
properly: >
|
||||
str2list("á") returns [97, 769]
|
||||
|
||||
str2nr({expr} [, {base}]) *str2nr()*
|
||||
Convert string {expr} to a number.
|
||||
@@ -9256,6 +9440,7 @@ term_getcursor({buf}) *term_getcursor()*
|
||||
is not blinking.
|
||||
"shape" 1 for a block cursor, 2 for underline and 3
|
||||
for a vertical bar.
|
||||
"color" color of the cursor, e.g. "green"
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
@@ -9426,7 +9611,7 @@ term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
||||
exist or is not a terminal window, an error is given.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_start({cmd}, {options}) *term_start()*
|
||||
term_start({cmd} [, {options}]) *term_start()*
|
||||
Open a terminal window and run {cmd} in it.
|
||||
|
||||
{cmd} can be a string or a List, like with |job_start()|. The
|
||||
@@ -9589,6 +9774,11 @@ test_override({name}, {val}) *test_override()*
|
||||
< The value of "starting" is saved. It is restored by: >
|
||||
call test_override('starting', 0)
|
||||
|
||||
test_refcount({expr}) *test_refcount()*
|
||||
Return the reference count of {expr}. When {expr} is of a
|
||||
type that does not have a reference count, returns -1. Only
|
||||
to be used for testing.
|
||||
|
||||
test_scrollbar({which}, {value}, {dragging}) *test_scrollbar()*
|
||||
Pretend using scrollbar {which} to move it to position
|
||||
{value}. {which} can be:
|
||||
@@ -10013,17 +10203,30 @@ winline() The result is a Number, which is the screen line of the cursor
|
||||
*winnr()*
|
||||
winnr([{arg}]) The result is a Number, which is the number of the current
|
||||
window. The top window has number 1.
|
||||
When the optional argument is "$", the number of the
|
||||
last window is returned (the window count). >
|
||||
let window_count = winnr('$')
|
||||
< When the optional argument is "#", the number of the last
|
||||
accessed window is returned (where |CTRL-W_p| goes to).
|
||||
If there is no previous window or it is in another tab page 0
|
||||
is returned.
|
||||
|
||||
The optional argument {arg} supports the following values:
|
||||
$ the number of the last window (the window
|
||||
count).
|
||||
# the number of the last accessed window (where
|
||||
|CTRL-W_p| goes to). If there is no previous
|
||||
window or it is in another tab page 0 is
|
||||
returned.
|
||||
{N}j the number of the Nth window below the
|
||||
current window (where |CTRL-W_j| goes to).
|
||||
{N}k the number of the Nth window above the current
|
||||
window (where |CTRL-W_k| goes to).
|
||||
{N}h the number of the Nth window left of the
|
||||
current window (where |CTRL-W_h| goes to).
|
||||
{N}l the number of the Nth window right of the
|
||||
current window (where |CTRL-W_l| goes to).
|
||||
The number can be used with |CTRL-W_w| and ":wincmd w"
|
||||
|:wincmd|.
|
||||
Also see |tabpagewinnr()| and |win_getid()|.
|
||||
|
||||
Examples: >
|
||||
let window_count = winnr('$')
|
||||
let prev_window = winnr('#')
|
||||
let wnum = winnr('3k')
|
||||
<
|
||||
*winrestcmd()*
|
||||
winrestcmd() Returns a sequence of |:resize| commands that should restore
|
||||
the current window sizes. Only works properly when no windows
|
||||
@@ -10329,10 +10532,8 @@ syntax_items There are active syntax highlighting items for the
|
||||
system Compiled to use system() instead of fork()/exec().
|
||||
tag_binary Compiled with binary searching in tags files
|
||||
|tag-binary-search|.
|
||||
tag_old_static Compiled with support for old static tags
|
||||
tag_old_static Support for old static tags was removed, see
|
||||
|tag-old-static|.
|
||||
tag_any_white Compiled with support for any white characters in tags
|
||||
files |tag-any-white|.
|
||||
tcl Compiled with Tcl interface.
|
||||
termguicolors Compiled with true color in terminal support.
|
||||
terminal Compiled with |terminal| support.
|
||||
@@ -10357,6 +10558,9 @@ vertsplit Compiled with vertically split windows |:vsplit|.
|
||||
vim_starting True while initial source'ing takes place. |startup|
|
||||
*vim_starting*
|
||||
viminfo Compiled with viminfo support.
|
||||
vimscript-1 Compiled Vim script version 1 support
|
||||
vimscript-2 Compiled Vim script version 2 support
|
||||
vimscript-3 Compiled Vim script version 3 support
|
||||
virtualedit Compiled with 'virtualedit' option. (always true)
|
||||
visual Compiled with Visual mode. (always true)
|
||||
visualextra Compiled with extra Visual mode commands. (always
|
||||
@@ -10847,16 +11051,19 @@ This does NOT work: >
|
||||
When the selected range of items is partly past the
|
||||
end of the list, items will be added.
|
||||
|
||||
*:let+=* *:let-=* *:letstar=*
|
||||
*:let/=* *:let%=* *:let.=* *E734*
|
||||
*:let+=* *:let-=* *:letstar=*
|
||||
*:let/=* *:let%=* *:let.=* *:let..=* *E734* *E985*
|
||||
:let {var} += {expr1} Like ":let {var} = {var} + {expr1}".
|
||||
:let {var} -= {expr1} Like ":let {var} = {var} - {expr1}".
|
||||
:let {var} *= {expr1} Like ":let {var} = {var} * {expr1}".
|
||||
:let {var} /= {expr1} Like ":let {var} = {var} / {expr1}".
|
||||
:let {var} %= {expr1} Like ":let {var} = {var} % {expr1}".
|
||||
:let {var} .= {expr1} Like ":let {var} = {var} . {expr1}".
|
||||
:let {var} ..= {expr1} Like ":let {var} = {var} .. {expr1}".
|
||||
These fail if {var} was not set yet and when the type
|
||||
of {var} and {expr1} don't fit the operator.
|
||||
`.=` is not supported with Vim script version 2 and
|
||||
later, see |vimscript-version|.
|
||||
|
||||
|
||||
:let ${env-name} = {expr1} *:let-environment* *:let-$*
|
||||
@@ -12490,7 +12697,39 @@ code can be used: >
|
||||
unlet scriptnames_output
|
||||
|
||||
==============================================================================
|
||||
10. No +eval feature *no-eval-feature*
|
||||
10. Vim script versions *vimscript-version* *vimscript-versions*
|
||||
*scriptversion*
|
||||
Over time many features have been added to Vim script. This includes Ex
|
||||
commands, functions, variable types, etc. Each individual feature can be
|
||||
checked with the |has()| and |exists()| functions.
|
||||
|
||||
Sometimes old syntax of functionality gets in the way of making Vim better.
|
||||
When support is taken away this will break older Vim scripts. To make this
|
||||
explicit the |:scriptversion| command can be used. When a Vim script is not
|
||||
compatible with older versions of Vim this will give an explicit error,
|
||||
instead of failing in mysterious ways. >
|
||||
|
||||
:scriptversion 1
|
||||
< This is the original Vim script, same as not using a |:scriptversion|
|
||||
command. Can be used to go back to old syntax for a range of lines.
|
||||
Test for support with: >
|
||||
has('vimscript-1')
|
||||
|
||||
:scriptversion 2
|
||||
< String concatenation with "." is not supported, use ".." instead.
|
||||
This avoids the ambiguity using "." for Dict member access and
|
||||
floating point numbers. Now ".5" means the number 0.5.
|
||||
>
|
||||
:scriptversion 3
|
||||
< All |vim-variable|s must be prefixed by "v:". E.g. "version" doesn't
|
||||
work as |v:version| anymore, it can be used as a normal variable.
|
||||
Same for some obvious names as "count" and others.
|
||||
|
||||
Test for support with: >
|
||||
has('vimscript-3')
|
||||
|
||||
==============================================================================
|
||||
11. No +eval feature *no-eval-feature*
|
||||
|
||||
When the |+eval| feature was disabled at compile time, none of the expression
|
||||
evaluation commands are available. To prevent this from causing Vim scripts
|
||||
@@ -12521,7 +12760,7 @@ When the |+eval| feature is available the command is skipped because of the
|
||||
silently ignored, and the command is executed.
|
||||
|
||||
==============================================================================
|
||||
11. The sandbox *eval-sandbox* *sandbox* *E48*
|
||||
12. The sandbox *eval-sandbox* *sandbox* *E48*
|
||||
|
||||
The 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' and
|
||||
'foldtext' options may be evaluated in a sandbox. This means that you are
|
||||
@@ -12560,7 +12799,7 @@ Note that when in the sandbox and saving an option value and restoring it, the
|
||||
option will still be marked as it was set in the sandbox.
|
||||
|
||||
==============================================================================
|
||||
12. Textlock *textlock*
|
||||
13. Textlock *textlock*
|
||||
|
||||
In a few situations it is not allowed to change the text in the buffer, jump
|
||||
to another window and some other things that might confuse or break what Vim
|
||||
@@ -12576,7 +12815,7 @@ This is not allowed when the textlock is active:
|
||||
- etc.
|
||||
|
||||
==============================================================================
|
||||
13. Testing *testing*
|
||||
14. Testing *testing*
|
||||
|
||||
Vim can be tested after building it, usually with "make test".
|
||||
The tests are located in the directory "src/testdir".
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 8.1. Last change: 2018 May 06
|
||||
*gui_x11.txt* For Vim version 8.1. Last change: 2019 Apr 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -48,7 +48,7 @@ that waits for gvim to exit), start gvim with "gvim -f", "vim -gf" or use
|
||||
":gui -f". Don't use "vim -fg", because "-fg" specifies the foreground
|
||||
color.
|
||||
|
||||
When using "gvim -f" and then ":gui", Vim will run in the foreground. The
|
||||
When using "vim -f" and then ":gui", Vim will run in the foreground. The
|
||||
"-f" argument will be remembered. To force running Vim in the background use
|
||||
":gui -b".
|
||||
|
||||
|
||||
@@ -10,11 +10,12 @@ The Lua Interface to Vim *lua* *Lua*
|
||||
2. The vim module |lua-vim|
|
||||
3. List userdata |lua-list|
|
||||
4. Dict userdata |lua-dict|
|
||||
5. Funcref userdata |lua-funcref|
|
||||
6. Buffer userdata |lua-buffer|
|
||||
7. Window userdata |lua-window|
|
||||
8. The luaeval function |lua-luaeval|
|
||||
9. Dynamic loading |lua-dynamic|
|
||||
5. Blob userdata |lua-blob|
|
||||
6. Funcref userdata |lua-funcref|
|
||||
7. Buffer userdata |lua-buffer|
|
||||
8. Window userdata |lua-window|
|
||||
9. luaeval() Vim function |lua-luaeval|
|
||||
10. Dynamic loading |lua-dynamic|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
|
||||
@@ -140,6 +141,14 @@ Vim evaluation and command execution, and others.
|
||||
:echo luaeval('vim.dict(t)')
|
||||
:" {'1': 3.141593, '2': v:false,
|
||||
:" 'say': 'hi'}
|
||||
<
|
||||
vim.blob([arg]) Returns an empty blob or, if "arg" is a Lua
|
||||
string, returns a blob b such that b is
|
||||
equivalent to "arg" as a byte string.
|
||||
Examples: >
|
||||
:lua s = "12ab\x00\x80\xfe\xff"
|
||||
:echo luaeval('vim.blob(s)')
|
||||
:" 0z31326162.0080FEFF
|
||||
<
|
||||
vim.funcref({name}) Returns a Funcref to function {name} (see
|
||||
|Funcref|). It is equivalent to Vim's
|
||||
@@ -260,7 +269,34 @@ Examples:
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
5. Funcref userdata *lua-funcref*
|
||||
5. Blob userdata *lua-blob*
|
||||
|
||||
Blob userdata represent vim blobs. A blob "b" has the following properties:
|
||||
|
||||
Properties
|
||||
----------
|
||||
o "#b" is the length of blob "b", equivalent to "len(b)" in Vim.
|
||||
o "b[k]" returns the k-th item in "b"; "b" is zero-indexed, as in Vim.
|
||||
To modify the k-th item, simply do "b[k] = number"; in particular,
|
||||
"b[#b] = number" can append a byte to tail.
|
||||
|
||||
Methods
|
||||
-------
|
||||
o "b:add(bytes)" appends "bytes" to the end of "b".
|
||||
|
||||
Examples:
|
||||
>
|
||||
:let b = 0z001122
|
||||
:lua b = vim.eval('b') -- same 'b'
|
||||
:lua print(b, b[0], #b)
|
||||
:lua b[1] = 32
|
||||
:lua b[#b] = 0x33 -- append a byte to tail
|
||||
:lua b:add("\x80\x81\xfe\xff")
|
||||
:echo b
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
6. Funcref userdata *lua-funcref*
|
||||
|
||||
Funcref userdata represent funcref variables in Vim. Funcrefs that were
|
||||
defined with a "dict" attribute need to be obtained as a dictionary key
|
||||
@@ -293,7 +329,7 @@ Examples:
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
6. Buffer userdata *lua-buffer*
|
||||
7. Buffer userdata *lua-buffer*
|
||||
|
||||
Buffer userdata represent vim buffers. A buffer userdata "b" has the following
|
||||
properties and methods:
|
||||
@@ -345,7 +381,7 @@ Examples:
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
7. Window userdata *lua-window*
|
||||
8. Window userdata *lua-window*
|
||||
|
||||
Window objects represent vim windows. A window userdata "w" has the following
|
||||
properties and methods:
|
||||
@@ -377,7 +413,7 @@ Examples:
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
8. The luaeval function *lua-luaeval* *lua-eval*
|
||||
9. luaeval() Vim function *lua-luaeval* *lua-eval*
|
||||
|
||||
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
|
||||
"luaeval". "luaeval" takes an expression string and an optional argument and
|
||||
@@ -390,10 +426,10 @@ returns the result of the expression. It is semantically equivalent in Lua to:
|
||||
end
|
||||
<
|
||||
Note that "_A" receives the argument to "luaeval". Lua numbers, strings, and
|
||||
list, dict, and funcref userdata are converted to their Vim respective types,
|
||||
while Lua booleans are converted to numbers. An error is thrown if conversion
|
||||
of any of the remaining Lua types, including userdata other than lists, dicts,
|
||||
and funcrefs, is attempted.
|
||||
list, dict, blob, and funcref userdata are converted to their Vim respective
|
||||
types, while Lua booleans are converted to numbers. An error is thrown if
|
||||
conversion of any of the remaining Lua types, including userdata other than
|
||||
lists, dicts, blobs, and funcrefs, is attempted.
|
||||
|
||||
Examples: >
|
||||
|
||||
@@ -408,7 +444,7 @@ Examples: >
|
||||
|
||||
|
||||
==============================================================================
|
||||
9. Dynamic loading *lua-dynamic*
|
||||
10. Dynamic loading *lua-dynamic*
|
||||
|
||||
On MS-Windows and Unix the Lua library can be loaded dynamically. The
|
||||
|:version| output then includes |+lua/dyn|.
|
||||
|
||||
@@ -11,7 +11,8 @@ The Ruby Interface to Vim *ruby* *Ruby*
|
||||
3. Vim::Buffer objects |ruby-buffer|
|
||||
4. Vim::Window objects |ruby-window|
|
||||
5. Global variables |ruby-globals|
|
||||
6. Dynamic loading |ruby-dynamic|
|
||||
6. rubyeval() Vim function |ruby-rubyeval|
|
||||
7. Dynamic loading |ruby-dynamic|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
|
||||
@@ -198,7 +199,16 @@ $curwin The current window object.
|
||||
$curbuf The current buffer object.
|
||||
|
||||
==============================================================================
|
||||
6. Dynamic loading *ruby-dynamic*
|
||||
6. rubyeval() Vim function *ruby-rubyeval*
|
||||
|
||||
To facilitate bi-directional interface, you can use |rubyeval()| function to
|
||||
evaluate Ruby expressions and pass their values to Vim script.
|
||||
|
||||
The Ruby value "true", "false" and "nil" are converted to v:true, v:false and
|
||||
v:null, respectively.
|
||||
|
||||
==============================================================================
|
||||
7. Dynamic loading *ruby-dynamic*
|
||||
|
||||
On MS-Windows and Unix the Ruby library can be loaded dynamically. The
|
||||
|:version| output then includes |+ruby/dyn|.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Mar 17
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Apr 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1042,10 +1042,11 @@ tag command action in Command-line editing mode ~
|
||||
command-line from history.
|
||||
|c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal
|
||||
control flow
|
||||
|c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
|
||||
|c_CTRL-R| CTRL-R {regname}
|
||||
insert the contents of a register or object
|
||||
under the cursor as if typed
|
||||
|c_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
|
||||
|c_CTRL-R_CTRL-R| CTRL-R CTRL-R {regname}
|
||||
|c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname}
|
||||
insert the contents of a register or object
|
||||
under the cursor literally
|
||||
CTRL-S (used for terminal control flow)
|
||||
@@ -1106,10 +1107,10 @@ tag char action in Terminal-Job mode ~
|
||||
|t_CTRL-W_:| CTRL-W : enter an Ex command
|
||||
|t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal
|
||||
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
|
||||
|t_CTRL-W_quote| CTRL-W " {0-9a-z"%#*:=}
|
||||
|t_CTRL-W_quote| CTRL-W " {0-9a-z"%#*:=}
|
||||
paste register in the terminal
|
||||
|t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job
|
||||
|t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
|
||||
|t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
|
||||
|t_CTRL-W_gt| CTRL-W gt go to next tabpage, same as `gt`
|
||||
|t_CTRL-W_gT| CTRL-W gT go to previous tabpage, same as `gT`
|
||||
|
||||
@@ -1546,7 +1547,8 @@ tag command action ~
|
||||
|:sbrewind| :sbr[ewind] split window and go to first file in the
|
||||
buffer list
|
||||
|:scriptnames| :scr[iptnames] list names of all sourced Vim scripts
|
||||
|:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script
|
||||
|:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script
|
||||
|:scriptversion| :scriptv[ersion] version of Vim script used
|
||||
|:scscope| :scs[cope] split window and execute cscope command
|
||||
|:set| :se[t] show or set options
|
||||
|:setfiletype| :setf[iletype] set 'filetype', unless it was set already
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.1. Last change: 2019 Jan 29
|
||||
*insert.txt* For Vim version 8.1. Last change: 2019 Apr 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -379,8 +379,8 @@ CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
|
||||
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
|
||||
CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
|
||||
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
|
||||
movement (but only if the cursor stays
|
||||
within same the line)
|
||||
movement, if the cursor stays within
|
||||
same the line
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
|
||||
@@ -642,6 +642,7 @@ and one of the CTRL-X commands. You exit CTRL-X mode by typing a key that is
|
||||
not a valid CTRL-X mode command. Valid keys are the CTRL-X command itself,
|
||||
CTRL-N (next), and CTRL-P (previous).
|
||||
|
||||
To get the current completion information, |complete_info()| can be used.
|
||||
Also see the 'infercase' option if you want to adjust the case of the match.
|
||||
|
||||
*complete_CTRL-E*
|
||||
@@ -1104,6 +1105,9 @@ items:
|
||||
icase when non-zero case is to be ignored when comparing
|
||||
items to be equal; when omitted zero is used, thus
|
||||
items that only differ in case are added
|
||||
equal when non-zero, always treat this item to be equal when
|
||||
comparing. Which means, "equal=1" disables filtering
|
||||
of this item.
|
||||
dup when non-zero this match will be added even when an
|
||||
item with the same word is already present.
|
||||
empty when non-zero this match will be added even when it is
|
||||
@@ -1111,10 +1115,10 @@ items:
|
||||
user_data custom data which is associated with the item and
|
||||
available in |v:completed_item|
|
||||
|
||||
All of these except "icase", "dup" and "empty" must be a string. If an item
|
||||
does not meet these requirements then an error message is given and further
|
||||
items in the list are not used. You can mix string and Dictionary items in
|
||||
the returned list.
|
||||
All of these except "icase", "equal", "dup" and "empty" must be a string. If
|
||||
an item does not meet these requirements then an error message is given and
|
||||
further items in the list are not used. You can mix string and Dictionary
|
||||
items in the returned list.
|
||||
|
||||
The "menu" item is used in the popup menu and may be truncated, thus it should
|
||||
be relatively short. The "info" item can be longer, it will be displayed in
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.1. Last change: 2018 Dec 30
|
||||
*message.txt* For Vim version 8.1. Last change: 2019 Apr 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -703,11 +703,13 @@ Or use ":set nocp".
|
||||
This happens when an Ex command with mandatory argument(s) was executed, but
|
||||
no argument has been specified.
|
||||
|
||||
*E474* *E475* >
|
||||
*E474* *E475* *E983* >
|
||||
Invalid argument
|
||||
Invalid argument: {arg}
|
||||
Duplicate argument: {arg}
|
||||
|
||||
An Ex command has been executed, but an invalid argument has been specified.
|
||||
An Ex command or function has been executed, but an invalid argument has been
|
||||
specified.
|
||||
|
||||
*E488* >
|
||||
Trailing characters
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.1. Last change: 2019 Mar 08
|
||||
*options.txt* For Vim version 8.1. Last change: 2019 Apr 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2538,7 +2538,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The default value is for C programs. For C++ this value would be
|
||||
useful, to include const type declarations: >
|
||||
^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\)
|
||||
< You can also use "\ze" just before the name and continue the pattern
|
||||
to check what is following. E.g. for Javascript, if a function is
|
||||
defined with "func_name = function(args)": >
|
||||
^\s*\ze\i\+\s*=\s*function(
|
||||
< If the function is defined with "func_name : function() {...": >
|
||||
^\s*\ze\i\+\s*[:]\s*(*function\s*(
|
||||
< When using the ":set" command, you need to double the backslashes!
|
||||
To avoid that use `:let` with a single quote string: >
|
||||
let &l:define = '^\s*\ze\k\+\s*=\s*function('
|
||||
<
|
||||
|
||||
*'delcombine'* *'deco'* *'nodelcombine'* *'nodeco'*
|
||||
'delcombine' 'deco' boolean (default off)
|
||||
@@ -7303,7 +7312,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set spelllang=en_us,nl,medical
|
||||
< This means US English, Dutch and medical words are recognized. Words
|
||||
that are not recognized will be highlighted.
|
||||
The word list name must not include a comma or dot. Using a dash is
|
||||
The word list name must consist of alphanumeric characters, a dash or
|
||||
an underscore. It should not include a comma or dot. Using a dash is
|
||||
recommended to separate the two letter language name from a
|
||||
specification. Thus "en-rare" is used for rare English words.
|
||||
A region name must come last and have the form "_xx", where "xx" is
|
||||
@@ -7682,7 +7692,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
pages.
|
||||
split If included, split the current window before loading
|
||||
a buffer for a |quickfix| command that display errors.
|
||||
Otherwise: do not split, use current window.
|
||||
Otherwise: do not split, use current window (when used
|
||||
in the quickfix window: the previously used window or
|
||||
split if there is no other window).
|
||||
vsplit Just like "split" but split vertically.
|
||||
newtab Like "split", but open a new tab page. Overrules
|
||||
"split" when both are present.
|
||||
|
||||
@@ -254,9 +254,9 @@ possible. The following tables show the valid combinations:
|
||||
Japanese JIS_C_1978 x x
|
||||
JIS_X_1983 x x
|
||||
JIS_X_1990 x x x
|
||||
MSWINDOWS x
|
||||
KANJITALK6 x
|
||||
KANJITALK7 x
|
||||
MSWINDOWS x
|
||||
KANJITALK6 x
|
||||
KANJITALK7 x
|
||||
|
||||
euc-kr cp949 ucs-2 utf-8 ~
|
||||
Korean KS_X_1992 x
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.1. Last change: 2018 Dec 18
|
||||
*repeat.txt* For Vim version 8.1. Last change: 2019 Apr 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -325,6 +325,18 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
<
|
||||
{not in Vi}
|
||||
|
||||
:scriptv[ersion] {version} *:scriptv* *:scriptversion*
|
||||
*E999* *E984*
|
||||
Specify the version of Vim for the lines that follow
|
||||
in the same file. Only applies at the toplevel of
|
||||
sourced scripts, not inside functions.
|
||||
|
||||
If {version} is higher than what the current Vim
|
||||
version supports E999 will be given. You either need
|
||||
to rewrite the script to make it work with an older
|
||||
Vim version, or update Vim to a newer version. See
|
||||
|vimscript-version| for what changed between versions.
|
||||
|
||||
*:scr* *:scriptnames*
|
||||
:scr[iptnames] List all sourced script names, in the order they were
|
||||
first sourced. The number is used for the script ID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.1. Last change: 2018 Dec 27
|
||||
*syntax.txt* For Vim version 8.1. Last change: 2019 Mar 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1962,7 +1962,7 @@ The g:lisp_rainbow option provides 10 levels of individual colorization for
|
||||
the parentheses and backquoted parentheses. Because of the quantity of
|
||||
colorization levels, unlike non-rainbow highlighting, the rainbow mode
|
||||
specifies its highlighting using ctermfg and guifg, thereby bypassing the
|
||||
usual colorscheme control using standard highlighting groups. The actual
|
||||
usual color scheme control using standard highlighting groups. The actual
|
||||
highlighting used depends on the dark/bright setting (see |'bg'|).
|
||||
|
||||
|
||||
@@ -4694,9 +4694,9 @@ in their own color.
|
||||
Doesn't work recursively, thus you can't use
|
||||
":colorscheme" in a color scheme script.
|
||||
|
||||
To customize a colorscheme use another name, e.g.
|
||||
To customize a color scheme use another name, e.g.
|
||||
"~/.vim/colors/mine.vim", and use `:runtime` to load
|
||||
the original colorscheme: >
|
||||
the original color scheme: >
|
||||
runtime colors/evening.vim
|
||||
hi Statement ctermfg=Blue guifg=Blue
|
||||
|
||||
@@ -4704,7 +4704,7 @@ in their own color.
|
||||
|ColorSchemePre| autocommand event is triggered.
|
||||
After the color scheme has been loaded the
|
||||
|ColorScheme| autocommand event is triggered.
|
||||
For info about writing a colorscheme file: >
|
||||
For info about writing a color scheme file: >
|
||||
:edit $VIMRUNTIME/colors/README.txt
|
||||
|
||||
:hi[ghlight] List all the current highlight groups that have
|
||||
@@ -4901,7 +4901,7 @@ ctermbg={color-nr} *highlight-ctermbg*
|
||||
explicitly. This causes the highlight groups that depend on
|
||||
'background' to change! This means you should set the colors for
|
||||
Normal first, before setting other colors.
|
||||
When a colorscheme is being used, changing 'background' causes it to
|
||||
When a color scheme is being used, changing 'background' causes it to
|
||||
be reloaded, which may reset all colors (including Normal). First
|
||||
delete the "g:colors_name" variable when you don't want this.
|
||||
|
||||
|
||||
@@ -2531,6 +2531,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:let-option eval.txt /*:let-option*
|
||||
:let-register eval.txt /*:let-register*
|
||||
:let-unpack eval.txt /*:let-unpack*
|
||||
:let..= eval.txt /*:let..=*
|
||||
:let.= eval.txt /*:let.=*
|
||||
:let/= eval.txt /*:let\/=*
|
||||
:letstar= eval.txt /*:letstar=*
|
||||
@@ -2936,6 +2937,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:scripte repeat.txt /*:scripte*
|
||||
:scriptencoding repeat.txt /*:scriptencoding*
|
||||
:scriptnames repeat.txt /*:scriptnames*
|
||||
:scriptv repeat.txt /*:scriptv*
|
||||
:scriptversion repeat.txt /*:scriptversion*
|
||||
:scs if_cscop.txt /*:scs*
|
||||
:scscope if_cscop.txt /*:scscope*
|
||||
:se options.txt /*:se*
|
||||
@@ -3745,6 +3748,7 @@ ColorScheme autocmd.txt /*ColorScheme*
|
||||
ColorSchemePre autocmd.txt /*ColorSchemePre*
|
||||
Command-line cmdline.txt /*Command-line*
|
||||
Command-line-mode cmdline.txt /*Command-line-mode*
|
||||
CompleteChanged autocmd.txt /*CompleteChanged*
|
||||
CompleteDone autocmd.txt /*CompleteDone*
|
||||
ConPTY terminal.txt /*ConPTY*
|
||||
Contents quickref.txt /*Contents*
|
||||
@@ -4692,7 +4696,11 @@ E98 diff.txt /*E98*
|
||||
E980 eval.txt /*E980*
|
||||
E981 starting.txt /*E981*
|
||||
E982 terminal.txt /*E982*
|
||||
E983 message.txt /*E983*
|
||||
E984 repeat.txt /*E984*
|
||||
E985 eval.txt /*E985*
|
||||
E99 diff.txt /*E99*
|
||||
E999 repeat.txt /*E999*
|
||||
EX intro.txt /*EX*
|
||||
EXINIT starting.txt /*EXINIT*
|
||||
Elvis intro.txt /*Elvis*
|
||||
@@ -5242,6 +5250,7 @@ autocmd-groups autocmd.txt /*autocmd-groups*
|
||||
autocmd-intro autocmd.txt /*autocmd-intro*
|
||||
autocmd-list autocmd.txt /*autocmd-list*
|
||||
autocmd-nested autocmd.txt /*autocmd-nested*
|
||||
autocmd-once autocmd.txt /*autocmd-once*
|
||||
autocmd-osfiletypes filetype.txt /*autocmd-osfiletypes*
|
||||
autocmd-patterns autocmd.txt /*autocmd-patterns*
|
||||
autocmd-remove autocmd.txt /*autocmd-remove*
|
||||
@@ -5677,6 +5686,8 @@ complete_CTRL-E insert.txt /*complete_CTRL-E*
|
||||
complete_CTRL-Y insert.txt /*complete_CTRL-Y*
|
||||
complete_add() eval.txt /*complete_add()*
|
||||
complete_check() eval.txt /*complete_check()*
|
||||
complete_info() eval.txt /*complete_info()*
|
||||
complete_info_mode eval.txt /*complete_info_mode*
|
||||
completed_item-variable eval.txt /*completed_item-variable*
|
||||
completion-functions usr_41.txt /*completion-functions*
|
||||
complex-change change.txt /*complex-change*
|
||||
@@ -6069,6 +6080,7 @@ expr-' eval.txt /*expr-'*
|
||||
expr-+ eval.txt /*expr-+*
|
||||
expr-- eval.txt /*expr--*
|
||||
expr-. eval.txt /*expr-.*
|
||||
expr-.. eval.txt /*expr-..*
|
||||
expr-/ eval.txt /*expr-\/*
|
||||
expr-< eval.txt /*expr-<*
|
||||
expr-<# eval.txt /*expr-<#*
|
||||
@@ -7238,6 +7250,7 @@ ip motion.txt /*ip*
|
||||
iquote motion.txt /*iquote*
|
||||
is motion.txt /*is*
|
||||
isdirectory() eval.txt /*isdirectory()*
|
||||
isinf() eval.txt /*isinf()*
|
||||
islocked() eval.txt /*islocked()*
|
||||
isnan() eval.txt /*isnan()*
|
||||
it motion.txt /*it*
|
||||
@@ -7365,6 +7378,7 @@ list-identity eval.txt /*list-identity*
|
||||
list-index eval.txt /*list-index*
|
||||
list-modification eval.txt /*list-modification*
|
||||
list-repeat windows.txt /*list-repeat*
|
||||
list2str() eval.txt /*list2str()*
|
||||
lite.vim syntax.txt /*lite.vim*
|
||||
literal-string eval.txt /*literal-string*
|
||||
lnum-variable eval.txt /*lnum-variable*
|
||||
@@ -7401,6 +7415,7 @@ love intro.txt /*love*
|
||||
lowercase change.txt /*lowercase*
|
||||
lpc.vim syntax.txt /*lpc.vim*
|
||||
lua if_lua.txt /*lua*
|
||||
lua-blob if_lua.txt /*lua-blob*
|
||||
lua-buffer if_lua.txt /*lua-buffer*
|
||||
lua-commands if_lua.txt /*lua-commands*
|
||||
lua-dict if_lua.txt /*lua-dict*
|
||||
@@ -8313,6 +8328,7 @@ read-in-close-cb channel.txt /*read-in-close-cb*
|
||||
read-messages insert.txt /*read-messages*
|
||||
read-only-share editing.txt /*read-only-share*
|
||||
read-stdin version5.txt /*read-stdin*
|
||||
readdir() eval.txt /*readdir()*
|
||||
readfile() eval.txt /*readfile()*
|
||||
readline.vim syntax.txt /*readline.vim*
|
||||
recording repeat.txt /*recording*
|
||||
@@ -8385,6 +8401,7 @@ ruby-dynamic if_ruby.txt /*ruby-dynamic*
|
||||
ruby-evaluate if_ruby.txt /*ruby-evaluate*
|
||||
ruby-globals if_ruby.txt /*ruby-globals*
|
||||
ruby-message if_ruby.txt /*ruby-message*
|
||||
ruby-rubyeval if_ruby.txt /*ruby-rubyeval*
|
||||
ruby-set_option if_ruby.txt /*ruby-set_option*
|
||||
ruby-vim if_ruby.txt /*ruby-vim*
|
||||
ruby-window if_ruby.txt /*ruby-window*
|
||||
@@ -8396,6 +8413,7 @@ ruby_no_expensive syntax.txt /*ruby_no_expensive*
|
||||
ruby_operators syntax.txt /*ruby_operators*
|
||||
ruby_space_errors syntax.txt /*ruby_space_errors*
|
||||
ruby_spellcheck_strings syntax.txt /*ruby_spellcheck_strings*
|
||||
rubyeval() eval.txt /*rubyeval()*
|
||||
russian russian.txt /*russian*
|
||||
russian-intro russian.txt /*russian-intro*
|
||||
russian-issues russian.txt /*russian-issues*
|
||||
@@ -8444,14 +8462,17 @@ scheme.vim syntax.txt /*scheme.vim*
|
||||
scp pi_netrw.txt /*scp*
|
||||
screenattr() eval.txt /*screenattr()*
|
||||
screenchar() eval.txt /*screenchar()*
|
||||
screenchars() eval.txt /*screenchars()*
|
||||
screencol() eval.txt /*screencol()*
|
||||
screenrow() eval.txt /*screenrow()*
|
||||
screenstring() eval.txt /*screenstring()*
|
||||
script usr_41.txt /*script*
|
||||
script-here if_perl.txt /*script-here*
|
||||
script-local map.txt /*script-local*
|
||||
script-variable eval.txt /*script-variable*
|
||||
scriptnames-dictionary eval.txt /*scriptnames-dictionary*
|
||||
scriptout-changed version4.txt /*scriptout-changed*
|
||||
scriptversion eval.txt /*scriptversion*
|
||||
scroll-binding scroll.txt /*scroll-binding*
|
||||
scroll-cursor scroll.txt /*scroll-cursor*
|
||||
scroll-down scroll.txt /*scroll-down*
|
||||
@@ -8727,6 +8748,7 @@ static-tag tagsrch.txt /*static-tag*
|
||||
status-line windows.txt /*status-line*
|
||||
statusmsg-variable eval.txt /*statusmsg-variable*
|
||||
str2float() eval.txt /*str2float()*
|
||||
str2list() eval.txt /*str2list()*
|
||||
str2nr() eval.txt /*str2nr()*
|
||||
strcasestr() eval.txt /*strcasestr()*
|
||||
strcharpart() eval.txt /*strcharpart()*
|
||||
@@ -9023,7 +9045,6 @@ tabpagenr() eval.txt /*tabpagenr()*
|
||||
tabpagewinnr() eval.txt /*tabpagewinnr()*
|
||||
tag tagsrch.txt /*tag*
|
||||
tag-! tagsrch.txt /*tag-!*
|
||||
tag-any-white tagsrch.txt /*tag-any-white*
|
||||
tag-binary-search tagsrch.txt /*tag-binary-search*
|
||||
tag-blocks motion.txt /*tag-blocks*
|
||||
tag-commands tagsrch.txt /*tag-commands*
|
||||
@@ -9203,6 +9224,7 @@ test_null_partial() eval.txt /*test_null_partial()*
|
||||
test_null_string() eval.txt /*test_null_string()*
|
||||
test_option_not_set() eval.txt /*test_option_not_set()*
|
||||
test_override() eval.txt /*test_override()*
|
||||
test_refcount() eval.txt /*test_refcount()*
|
||||
test_scrollbar() eval.txt /*test_scrollbar()*
|
||||
test_settime() eval.txt /*test_settime()*
|
||||
testing eval.txt /*testing*
|
||||
@@ -9672,6 +9694,8 @@ vimrc-filetype usr_05.txt /*vimrc-filetype*
|
||||
vimrc-intro usr_05.txt /*vimrc-intro*
|
||||
vimrc-option-example starting.txt /*vimrc-option-example*
|
||||
vimrc_example.vim usr_05.txt /*vimrc_example.vim*
|
||||
vimscript-version eval.txt /*vimscript-version*
|
||||
vimscript-versions eval.txt /*vimscript-versions*
|
||||
vimtutor usr_01.txt /*vimtutor*
|
||||
virtcol() eval.txt /*virtcol()*
|
||||
visual-block visual.txt /*visual-block*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Feb 25
|
||||
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Mar 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -529,28 +529,21 @@ gnatxref For Ada. See http://www.gnuada.org/. gnatxref is
|
||||
part of the gnat package.
|
||||
|
||||
|
||||
The lines in the tags file must have one of these three formats:
|
||||
The lines in the tags file must have one of these two formats:
|
||||
|
||||
1. {tagname} {TAB} {tagfile} {TAB} {tagaddress}
|
||||
2. {tagfile}:{tagname} {TAB} {tagfile} {TAB} {tagaddress}
|
||||
3. {tagname} {TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..
|
||||
2. {tagname} {TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..
|
||||
|
||||
The first is a normal tag, which is completely compatible with Vi. It is the
|
||||
only format produced by traditional ctags implementations. This is often used
|
||||
for functions that are global, also referenced in other files.
|
||||
Previously an old format was supported, see |tag-old-static|.
|
||||
|
||||
The first format is a normal tag, which is completely compatible with Vi. It
|
||||
is the only format produced by traditional ctags implementations. This is
|
||||
often used for functions that are global, also referenced in other files.
|
||||
|
||||
The lines in the tags file can end in <LF> or <CR><LF>. On the Macintosh <CR>
|
||||
also works. The <CR> and <NL> characters can never appear inside a line.
|
||||
|
||||
*tag-old-static*
|
||||
The second format is for a static tag only. It is obsolete now, replaced by
|
||||
the third format. It is only supported by Elvis 1.x and Vim and a few
|
||||
versions of ctags. A static tag is often used for functions that are local,
|
||||
only referenced in the file {tagfile}. Note that for the static tag, the two
|
||||
occurrences of {tagfile} must be exactly the same. Also see |tags-option|
|
||||
below, for how static tags are used.
|
||||
|
||||
The third format is new. It includes additional information in optional
|
||||
The second format is new. It includes additional information in optional
|
||||
fields at the end of each line. It is backwards compatible with Vi. It is
|
||||
only supported by new versions of ctags (such as Exuberant ctags).
|
||||
|
||||
@@ -558,8 +551,7 @@ only supported by new versions of ctags (such as Exuberant ctags).
|
||||
be any identifier. It cannot contain a <Tab>.
|
||||
{TAB} One <Tab> character. Note: previous versions allowed any
|
||||
white space here. This has been abandoned to allow spaces in
|
||||
{tagfile}. It can be re-enabled by including the
|
||||
|+tag_any_white| feature at compile time. *tag-any-white*
|
||||
{tagfile}.
|
||||
{tagfile} The file that contains the definition of {tagname}. It can
|
||||
have an absolute or relative path. It may contain environment
|
||||
variables and wildcards (although the use of wildcards is
|
||||
@@ -599,6 +591,7 @@ only supported by new versions of ctags (such as Exuberant ctags).
|
||||
The only other field currently recognized by Vim is "file:"
|
||||
(with an empty value). It is used for a static tag.
|
||||
|
||||
|
||||
The first lines in the tags file can contain lines that start with
|
||||
!_TAG_
|
||||
These are sorted to the first lines, only rare tags that start with "!" can
|
||||
@@ -652,6 +645,21 @@ If the command is a normal search command (it starts and ends with "/" or
|
||||
followed by white space and a '('. This will find macro names and function
|
||||
names with a type prepended. {the extra searches are not in Vi}
|
||||
|
||||
|
||||
*tag-old-static*
|
||||
Until March 2019 (patch 8.1.1092) an outdated format was supported:
|
||||
{tagfile}:{tagname} {TAB} {tagfile} {TAB} {tagaddress}
|
||||
|
||||
This format is for a static tag only. It is obsolete now, replaced by
|
||||
the second format. It is only supported by Elvis 1.x, older Vim versions and
|
||||
a few versions of ctags. A static tag is often used for functions that are
|
||||
local, only referenced in the file {tagfile}. Note that for the static tag,
|
||||
the two occurrences of {tagfile} must be exactly the same. Also see
|
||||
|tags-option| below, for how static tags are used.
|
||||
|
||||
The support was removed, since when you can update to the new Vim version you
|
||||
should also be able to update ctags to one that supports the second format.
|
||||
|
||||
==============================================================================
|
||||
6. Include file searches *include-search* *definition-search*
|
||||
*E387* *E388* *E389*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 8.1. Last change: 2019 Jan 19
|
||||
*term.txt* For Vim version 8.1. Last change: 2019 Apr 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -539,7 +539,7 @@ there should be a tick at allow-window-ops.
|
||||
Note about colors: The 't_Co' option tells Vim the number of colors available.
|
||||
When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
|
||||
If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
|
||||
to reset to the default colors.
|
||||
to reset to the default colors. Also see 'termguicolors'.
|
||||
|
||||
*termcap-cursor-shape* *termcap-cursor-color*
|
||||
When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.1. Last change: 2019 Mar 14
|
||||
*todo.txt* For Vim version 8.1. Last change: 2019 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,16 +38,6 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Patch to add Farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
|
||||
Added test, updates, June 23.
|
||||
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
|
||||
Remark from Ameretat Reith (2014 Oct 13) with patch on top.
|
||||
Updated patch from Ameretat Reith, 2019 Mar 1.
|
||||
|
||||
Timer test doesn't work on MS-Windows console, any way to make it work?
|
||||
|
||||
Drop FEAT_TAG_ANYWHITE ? It should not be a compile time option.
|
||||
|
||||
'incsearch' with :s: (#3321)
|
||||
- Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
|
||||
was set. (#3837)
|
||||
@@ -118,25 +108,19 @@ Support for popup widows:
|
||||
- Use text properties to define highlighting.
|
||||
- Proposal on issue #4063
|
||||
|
||||
Notifications for text changes, could be used for LSP.
|
||||
- New event, similar to TextChanged, but guaranteed to provide sequential
|
||||
information of all text changes.
|
||||
Possibly build on undo info (but undo itself is also a change).
|
||||
How to deal with ":%s/this/that" ?
|
||||
|
||||
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
|
||||
(#4087)
|
||||
|
||||
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
|
||||
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
|
||||
Nov 17) Asked about this, Dec 22. Christian will have a look.
|
||||
|
||||
Does not build with MinGW out of the box:
|
||||
- _stat64 is not defined, need to use "struct stat" in vim.h
|
||||
- WINVER conflict, should use 0x0600 by default?
|
||||
|
||||
Patch for 'listchars' when there is a composing character on a space.
|
||||
How about when there is a double-width composing character on a space?
|
||||
(Yasuhiro Matsumoto, #4046)
|
||||
Test doesn't fail without patch?
|
||||
|
||||
Patch to add ruby cflags. (#4050, fixes #1081)
|
||||
Needs modification.
|
||||
|
||||
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
|
||||
13, #2910) Can't reproduce?
|
||||
|
||||
@@ -165,34 +149,13 @@ Bug: script written with "-W scriptout" contains Key codes, while the script
|
||||
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
|
||||
be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
|
||||
|
||||
Patch to move insert-expand code to insexpand.c. (Yegappan Lakshmanan, #4044)
|
||||
|
||||
Patch for larger icons in installer. (#978) Still not good.
|
||||
|
||||
Patch on issue #3964 to let sign column stop at the last buffer line.
|
||||
(Christian Brabandt, 2019 Feb 24)
|
||||
|
||||
Patch to use wide font functions. (Ken Takata, 2019 Feb 18, #4000)
|
||||
|
||||
Patch on #4073, Andy Massimino. Is this a real problem?
|
||||
|
||||
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
|
||||
Mar 5)
|
||||
|
||||
Patch to add blob2str() and str2blob(). (Yasuhiro Matsumoto, #4049)
|
||||
Make docs clearer. Is it symmetric?
|
||||
|
||||
When using a timer callback vgetc_busy is reset, allowing for using input().
|
||||
But in a channel callback this does not happen. We need to do something
|
||||
similar to check_due_timer(). Also see #3809.
|
||||
|
||||
Using "5gj" starting inside a closed fold does not work on screen lines but on
|
||||
text lines. (Julius Hulsmann, #4095)
|
||||
|
||||
Add "-once" to ":autocmd". Also add "-nested" as an alias for "nested".
|
||||
(Justin M. Keyes, #4100) Syntax of -once may be strange. ++once and ++nested
|
||||
is better?
|
||||
|
||||
C syntax: {} inside () causes following {} to be highlighted as error.
|
||||
(Michalis Giannakidis, 2006 Jun 1)
|
||||
|
||||
@@ -202,7 +165,8 @@ Support setting the character displayed below the last line? Neovim uses
|
||||
Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this
|
||||
added?
|
||||
|
||||
Patch to remove some unneeded {}. (Hirohito Higashi, #3982)
|
||||
This modeline throws unexpected errors: (#4165)
|
||||
vim: syn=nosyntax
|
||||
|
||||
Make balloon_show() work outside of 'balloonexpr'? Users expect it to work:
|
||||
#2948. (related to #1512?)
|
||||
@@ -215,93 +179,65 @@ balloonexpr() on MS-Windows GUI doesn't handle accented chars? (nivaemail,
|
||||
2018 Sep 14)
|
||||
Another request: #3811.
|
||||
|
||||
Patch for autoconf to add -fPIC for Fedora. (#4047)
|
||||
|
||||
Height of quickfix window is not retained with vertical splits. (Lifepillar,
|
||||
2018 Aug 24, #2998)
|
||||
Patch on the issue by Hongbo Liu, 2019 Feb 19 #4013
|
||||
|
||||
More warnings from static analysis:
|
||||
https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
|
||||
|
||||
Still a E315 error when using terminal. (Masato Nishihata, #3959)
|
||||
|
||||
When using 'k' in 'guioptions' gvim may open with a tiny window. (#3808)
|
||||
Suggested patch on the issue.
|
||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||
manager. Problem with Motif? Now test_gui crashes in submenu_change().
|
||||
Athena is OK.
|
||||
Motif: Build on Ubuntu can't enter any text in dialog text fields.
|
||||
|
||||
nvo-mode mapping works on Windows, not on Linux. (#3678)
|
||||
|
||||
Patch to fix modify_fname() does not work well with some 'encoding's.
|
||||
(Ken Takata, #4007)
|
||||
Patch to make Command-V use CTRL-R_CTRL-O* on Mac, like on Windows.
|
||||
(Ken Takata, #4266)
|
||||
|
||||
Patch to make vim_getenv() work with wide API. (Ken Takata, #4008)
|
||||
No test for NULL after allocating memory: #4174 (martinkunevtoptal does this?)
|
||||
src/crypt.c line 256;
|
||||
src/crypt_zip.c line 93;
|
||||
src/gui_gtk_f.c line 132;
|
||||
src/gui_gtk_x11 line 1578;
|
||||
src/libvterm/src/state.c line 332;
|
||||
src/libvterm/src/state.c line 255;
|
||||
src/libvterm/src/state.c line 1618;
|
||||
src/libvterm/src/state.c line 1643
|
||||
src/libvterm/src/termscreen.c line 83;
|
||||
src/ops.c line 6185;
|
||||
src/option.c line 12980;
|
||||
src/popupmnu.c line 1090;
|
||||
|
||||
How to make (async) complete function depending on completion type?
|
||||
Patch on #4083 to do this with an autocommand. Probably want something else,
|
||||
like 'ominfunc'.
|
||||
|
||||
Patch to add equal field to complete items. (#3887)
|
||||
Missing tests for:
|
||||
- add_termcap_entry()
|
||||
|
||||
When using exclusive selection and vi" that fails, cursor moves to the left.
|
||||
Cursor should not move. (#4024)
|
||||
|
||||
Patch to fix handling long line in tags file. #4051, #4084 (Andy Massimino)
|
||||
|
||||
Patch to fix that executable() may fail on very long filename in MS-Windows.
|
||||
(Ken Takata, 2016 Feb 1, update 2018 Oct 7, update 2019 Feb 19)
|
||||
Now in pull request #4015.
|
||||
|
||||
Patch to be able to separately map CTRL-H and BS on Windows.
|
||||
(Linwei, 2017 Jul 11, #1833)
|
||||
|
||||
Patch to fix encoding of messages on MS-Windows. (Yasuhiro Matsumoto, 2019 Feb
|
||||
13, #3914)
|
||||
|
||||
Patch to fix encoding conversion in messages. (#3969)
|
||||
Check that this is fixed: (ichizok)
|
||||
vim --clean -X -V1 -es -c 'echo "hello"' -c quit
|
||||
|
||||
Incsearch test fails when locale is "C". (Dominique Pelle, #3986)
|
||||
Also run all tests with C locale?
|
||||
|
||||
Patch to improve readability of complicated if(). (ichizok, 2019 Jan 29,
|
||||
#3879)
|
||||
|
||||
"vat" doesn't work well on XML when the closing > is on another line.
|
||||
#3927
|
||||
|
||||
Patch to include ARM64 support. (Leendert van Doorn, 2019 Feb 9)
|
||||
|
||||
Patch to fix hang when opening file where an intermediate directory is not
|
||||
readable on MS-Windows. (link on #3923)
|
||||
|
||||
Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
|
||||
Related to bracketed paste. I cannot reproduce it.
|
||||
|
||||
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
|
||||
New update 2017 Apr 10, #1628
|
||||
https://github.com/chrisbra/vim-mq-patches/blob/master/tagfunc
|
||||
Updated by Andy Massimino, 2018 Feb 7:
|
||||
https://github.com/andymass/vim/commit/4e3aa0a5dab96d2799567622f3f537e357aa479e
|
||||
Or should we make it asynchronous?
|
||||
Patch by Andy Massimino: #4010 - needs a bit more work
|
||||
|
||||
When 'confirm' is set a "silent q" doesn't show the prompt. It should in this
|
||||
case. (Nate Peterson, 2019 Jan 31, #3892)
|
||||
For "silent! q" it should not prompt and just fail.
|
||||
|
||||
Patch to add readdir(). (Yasuhiro Matsumoto, #2439)
|
||||
Add <aevent>, which expands to the currently triggered autocommand event name.
|
||||
(Daniel Hahler, #4232) Or add it to v:event (easier to use but slightly more
|
||||
expensive).
|
||||
|
||||
Using CTRL-L to add a character to the search string doesn't work for the last
|
||||
character in the file. (Smylers, 2018 Nov 17, #3620)
|
||||
Suggested patch by Hirohito Higashi, 2018 Nov 18.
|
||||
Some xterm responses are not properly handled: (Markus Gömmel, 2019 Apr 1)
|
||||
DCS 0 $ r Pt ST should be ignored.
|
||||
DCS 0 + r/Pt/ ST already ignored?
|
||||
|
||||
Using CTRL-L to add a character to the search string that contains \v,
|
||||
punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
|
||||
|
||||
Using CTRL-L during search only picks up the base character, not a combining
|
||||
character. (Rick, 2018 Dec 11, #3682)
|
||||
|
||||
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
|
||||
|
||||
Problem with two buffers with the same name a/b, if it didn't exist before and
|
||||
@@ -315,14 +251,6 @@ Invalid memory access with old regexp engine. (Dominique Pelle, 2018 Sep 3,
|
||||
#3405) Introduced by 8.0.1517, which was fixing another memory access error.
|
||||
(Sep 8)
|
||||
|
||||
Patch to add complete_info Shougo - #3866. Ready to include.
|
||||
|
||||
Patch to make winnr() return the window above/below/beside a window.
|
||||
(Yegappan Lakshmanan, #3993)
|
||||
|
||||
Patch for ConPTY support, new one: #3794 Does this work now? It should.
|
||||
(Nobuhiro Takasaki)
|
||||
|
||||
Add function to make use of internal diff, working on two lists and returning
|
||||
unified diff (list of lines).
|
||||
|
||||
@@ -330,8 +258,8 @@ When splitting a window with few text lines, the relative cursor position is
|
||||
kept, which means part of the text isn't displayed. Better show all the text
|
||||
when possible. (Dylan Lloyd, #3973)
|
||||
|
||||
Tag stack is incorrect after CTRL-T and then :tag. (Andy Massimino, 2019 Feb
|
||||
12, #3944) With Patch for a solution (Feb 23). Needs a test.
|
||||
Patch to not recognize "version" as "v:version", "count" as "v:count".
|
||||
Ken Takata, #4274.
|
||||
|
||||
Patch to implement 'diffref' option. (#3535)
|
||||
Easier to use a 'diffmaster' option, is the extra complexity needed?
|
||||
@@ -358,6 +286,35 @@ Add buffer argument to undotree(). (#4001)
|
||||
Patch to add optional arguments with default values.
|
||||
(Andy Massimino, #3952) under development
|
||||
|
||||
Patch to add tab-local directories. (Yegappan, #4212)
|
||||
Good now?
|
||||
|
||||
Patch to add more info to OptionSet. Should mention what triggered the change
|
||||
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
|
||||
#4118. Proposed implementation: 2019 Mar 27. Tests fail, help update
|
||||
missing. Updated 2019 Apr 9
|
||||
|
||||
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
|
||||
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
|
||||
Nov 17) Asked about this, Dec 22. Christian will have a look.
|
||||
|
||||
Patch to add ruby cflags. (#4050, fixes #1081)
|
||||
Needs modification.
|
||||
|
||||
Patch for larger icons in installer. (#978) Still not good.
|
||||
|
||||
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
|
||||
New update 2017 Apr 10, #1628
|
||||
https://github.com/chrisbra/vim-mq-patches/blob/master/tagfunc
|
||||
Updated by Andy Massimino, 2018 Feb 7:
|
||||
https://github.com/andymass/vim/commit/4e3aa0a5dab96d2799567622f3f537e357aa479e
|
||||
Or should we make it asynchronous?
|
||||
Patch by Andy Massimino: #4010 - needs a bit more work: produce errors when
|
||||
something is wrong.
|
||||
|
||||
Patch to fix that using "5gj" starting inside a closed fold does not work on
|
||||
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
|
||||
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
Using uninitialized value in test_crypt.
|
||||
Memory leak in test_terminal:
|
||||
@@ -386,6 +343,9 @@ Does #2405 do this?
|
||||
Patch to add an interrupt() function: sets got_int. Useful in an autocommand
|
||||
such as BufWritePre that checks the file name or contents.
|
||||
|
||||
More patches to check:
|
||||
- #4098 improve Travis config
|
||||
|
||||
Should make 'listchars' global-local. Local to window or to buffer?
|
||||
Probably window.
|
||||
Add something like 'fillchars' local to window, but allow for specifying a
|
||||
@@ -840,9 +800,6 @@ Use gvimext.dll from the nightly build? (Issue #249)
|
||||
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
||||
8, #1690)
|
||||
|
||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||
manager. Problem with Motif?
|
||||
|
||||
Bogus characters inserted when triggering indent while changing text.
|
||||
(Vitor Antunes, 2016 Nov 22, #1269)
|
||||
|
||||
@@ -2229,8 +2186,6 @@ for GTK, how about others? (Ron Aaron, 2010 Apr 10)
|
||||
|
||||
Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010 Aug 9)
|
||||
|
||||
Motif: Build on Ubuntu can't enter any text in dialog text fields.
|
||||
|
||||
":tab split fname" doesn't set the alternate file in the original window,
|
||||
because win_valid() always returns FALSE. Below win_new_tabpage() in
|
||||
ex_docmd.c.
|
||||
@@ -3103,6 +3058,10 @@ Awaiting updated patches:
|
||||
and GTK by degreneir (nov 10 and nov 18).
|
||||
- Patch for "paranoid mode" by Kevin Collins, March 7. Needs much more work.
|
||||
|
||||
Better 'rightleft' or BIDI support:
|
||||
- Minimal Vi with bidi support: https://github.com/aligrudi/neatvi
|
||||
By Ali Gholami Rudi, also worked on arabic.c
|
||||
|
||||
Quickfix/Location List:
|
||||
- Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
|
||||
#2999)
|
||||
@@ -3948,8 +3907,6 @@ Tab pages:
|
||||
8 Add local options for each tab page? E.g., 'diffopt' could differ between
|
||||
tab pages.
|
||||
7 Add local highlighting for each tab page?
|
||||
7 Add local directory for tab pages? How would this interfere with
|
||||
window-local directories?
|
||||
|
||||
|
||||
Spell checking:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.1. Last change: 2019 Jan 29
|
||||
*usr_41.txt* For Vim version 8.1. Last change: 2019 Apr 06
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -577,8 +577,10 @@ used for. You can find an alphabetical list here: |functions|. Use CTRL-] on
|
||||
the function name to jump to detailed help on it.
|
||||
|
||||
String manipulation: *string-functions*
|
||||
nr2char() get a character by its ASCII value
|
||||
char2nr() get ASCII value of a character
|
||||
nr2char() get a character by its number value
|
||||
list2str() get a character string from a list of numbers
|
||||
char2nr() get number value of a character
|
||||
str2list() get list of numbers from a string
|
||||
str2nr() convert a string to a Number
|
||||
str2float() convert a string to a Float
|
||||
printf() format a string according to % items
|
||||
@@ -723,6 +725,8 @@ Cursor and mark position: *cursor-functions* *mark-functions*
|
||||
diff_filler() get the number of filler lines above a line
|
||||
screenattr() get attribute at a screen line/row
|
||||
screenchar() get character code at a screen line/row
|
||||
screenchars() get character codes at a screen line/row
|
||||
screenstring() get string of characters at a screen line/row
|
||||
|
||||
Working with text in the current buffer: *text-functions*
|
||||
getline() get a line or list of lines from the buffer
|
||||
@@ -771,6 +775,7 @@ System functions and manipulation of files:
|
||||
systemlist() get the result of a shell command as a list
|
||||
hostname() name of the system
|
||||
readfile() read a file into a List of lines
|
||||
readdir() get a List of file names in a directory
|
||||
writefile() write a List of lines or Blob into a file
|
||||
|
||||
Date and Time: *date-functions* *time-functions*
|
||||
@@ -834,6 +839,7 @@ Insert mode completion: *completion-functions*
|
||||
complete() set found matches
|
||||
complete_add() add to found matches
|
||||
complete_check() check if completion should be aborted
|
||||
complete_info() get current completion information
|
||||
pumvisible() check if the popup menu is displayed
|
||||
|
||||
Folding: *folding-functions*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.1. Last change: 2019 Jan 17
|
||||
*various.txt* For Vim version 8.1. Last change: 2019 Mar 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -443,7 +443,7 @@ N *+syntax* Syntax highlighting |syntax|
|
||||
*+system()* Unix only: opposite of |+fork|
|
||||
T *+tag_binary* binary searching in tags file |tag-binary-search|
|
||||
N *+tag_old_static* old method for static tags |tag-old-static|
|
||||
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
|
||||
m *+tag_any_white* Removed; was to allow any white space in tags files
|
||||
m *+tcl* Tcl interface |tcl|
|
||||
m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
|
||||
m *+terminal* Support for terminal window |terminal|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Feb 07
|
||||
" Last Change: 2019 Apr 19
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -42,6 +42,8 @@ endif
|
||||
|
||||
" Function used for patterns that end in a star: don't set the filetype if the
|
||||
" file name matches ft_ignore_pat.
|
||||
" When using this, the entry should probably be further down below with the
|
||||
" other StarSetf() calls.
|
||||
func! s:StarSetf(ft)
|
||||
if expand("<amatch>") !~ g:ft_ignore_pat
|
||||
exe 'setf ' . a:ft
|
||||
@@ -95,9 +97,6 @@ au BufNewFile,BufRead build.xml setf ant
|
||||
" Arduino
|
||||
au BufNewFile,BufRead *.ino,*.pde setf arduino
|
||||
|
||||
" Apache style config file
|
||||
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
|
||||
|
||||
" Apache config file
|
||||
au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache
|
||||
au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache
|
||||
@@ -655,7 +654,6 @@ au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
|
||||
|
||||
" Gitolite
|
||||
au BufNewFile,BufRead gitolite.conf setf gitolite
|
||||
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
|
||||
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
|
||||
|
||||
" Gnuplot scripts
|
||||
@@ -804,7 +802,6 @@ au BufNewFile,BufRead *.jsp setf jsp
|
||||
|
||||
" Java Properties resource file (note: doesn't catch font.properties.pl)
|
||||
au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties
|
||||
au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties')
|
||||
|
||||
" Jess
|
||||
au BufNewFile,BufRead *.clp setf jess
|
||||
@@ -1177,6 +1174,10 @@ au BufNewFile,BufRead *.rcp setf pilrc
|
||||
" Pine config
|
||||
au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
|
||||
|
||||
" Pipenv Pipfiles
|
||||
au BufNewFile,BufRead Pipfile setf config
|
||||
au BufNewFile,BufRead Pipfile.lock setf json
|
||||
|
||||
" PL/1, PL/I
|
||||
au BufNewFile,BufRead *.pli,*.pl1 setf pli
|
||||
|
||||
@@ -1462,7 +1463,6 @@ au BufNewFile,BufRead *.decl,*.dcl,*.dec
|
||||
|
||||
" SGML catalog file
|
||||
au BufNewFile,BufRead catalog setf catalog
|
||||
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
|
||||
|
||||
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
|
||||
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
|
||||
@@ -1617,6 +1617,10 @@ au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
|
||||
|
||||
" Systemd unit files
|
||||
au BufNewFile,BufRead */systemd/*.{automount,mount,path,service,socket,swap,target,timer} setf systemd
|
||||
" Systemd overrides
|
||||
au BufNewFile,BufRead /etc/systemd/system/*.d/*.conf setf systemd
|
||||
" Systemd temp files
|
||||
au BufNewFile,BufRead /etc/systemd/system/*.d/.#* setf systemd
|
||||
|
||||
" Synopsys Design Constraints
|
||||
au BufNewFile,BufRead *.sdc setf sdc
|
||||
@@ -1699,6 +1703,9 @@ au BufNewFile,BufReadPost *.tsscl setf tsscl
|
||||
" TWIG files
|
||||
au BufNewFile,BufReadPost *.twig setf twig
|
||||
|
||||
" Typescript
|
||||
au BufNewFile,BufReadPost *.ts setf typescript
|
||||
|
||||
" Motif UIT/UIL files
|
||||
au BufNewFile,BufRead *.uit,*.uil setf uil
|
||||
|
||||
@@ -1739,7 +1746,6 @@ au BufNewFile,BufRead *.sv,*.svh setf systemverilog
|
||||
|
||||
" VHDL
|
||||
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl
|
||||
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
|
||||
|
||||
" Vim script
|
||||
au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim
|
||||
@@ -1861,7 +1867,8 @@ au BufNewFile,BufRead *.xmi setf xml
|
||||
au BufNewFile,BufRead *.csproj,*.csproj.user setf xml
|
||||
|
||||
" Qt Linguist translation source and Qt User Interface Files are XML
|
||||
au BufNewFile,BufRead *.ts,*.ui setf xml
|
||||
" However, for .ts Typescript is more common.
|
||||
au BufNewFile,BufRead *.ui setf xml
|
||||
|
||||
" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull)
|
||||
au BufNewFile,BufRead *.tpm setf xml
|
||||
@@ -1952,6 +1959,7 @@ au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
|
||||
|
||||
" More Apache style config files
|
||||
au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle')
|
||||
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
|
||||
|
||||
" More Apache config files
|
||||
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
|
||||
@@ -2008,6 +2016,12 @@ au BufNewFile,BufRead *fvwm2rc*
|
||||
" Gedcom
|
||||
au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom')
|
||||
|
||||
" Git
|
||||
au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* call s:StarSetf('gitconfig')
|
||||
|
||||
" Gitolite
|
||||
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
|
||||
|
||||
" GTK RC
|
||||
au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc')
|
||||
|
||||
@@ -2020,6 +2034,9 @@ au! BufNewFile,BufRead *jarg*
|
||||
\| call s:StarSetf('jargon')
|
||||
\|endif
|
||||
|
||||
" Java Properties resource file (note: doesn't catch font.properties.pl)
|
||||
au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties')
|
||||
|
||||
" Kconfig
|
||||
au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig')
|
||||
|
||||
@@ -2081,6 +2098,9 @@ au BufRead,BufNewFile *.rdf call dist#ft#Redif()
|
||||
" Remind
|
||||
au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
|
||||
|
||||
" SGML catalog file
|
||||
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
|
||||
|
||||
" Shell scripts ending in a star
|
||||
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD* call dist#ft#SetFileTypeSH("bash")
|
||||
au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
|
||||
@@ -2092,6 +2112,9 @@ au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
|
||||
" csh scripts ending in a star
|
||||
au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH()
|
||||
|
||||
" VHDL
|
||||
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
|
||||
|
||||
" Vim script
|
||||
au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: cobol
|
||||
" Author: Tim Pope <vimNOSPAM@tpope.info>
|
||||
" Last Update: By ZyX: use shiftwidth()
|
||||
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
|
||||
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
|
||||
" Last Update: By Ankit Jain (changed maintainer) on 22.03.2019
|
||||
|
||||
" Insert mode mappings: <C-T> <C-D> <Tab>
|
||||
" Normal mode mappings: < > << >> [[ ]] [] ][
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: MS-DOS .bat files
|
||||
" Maintainer: Mike Williams <mrw@eandem.co.uk>
|
||||
" Last Change: 8th May 2012
|
||||
" Last Change: 14th April 2019
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -16,6 +16,7 @@ set cpo&vim
|
||||
|
||||
" BAT comment formatting
|
||||
setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
|
||||
setlocal commentstring=::\ %s
|
||||
setlocal formatoptions-=t formatoptions+=rol
|
||||
|
||||
" Define patterns for the browse file filter
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Make
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2013 Apr 22
|
||||
" Last Change: 2019 Apr 02
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -27,7 +27,7 @@ setlocal commentstring=#\ %s
|
||||
" Including files.
|
||||
let &l:include = '^\s*include'
|
||||
|
||||
" For matchit.vim, suggested by Albert Netymk.
|
||||
" For matchit.vim, suggested by Albert Netymk and Ken Takata.
|
||||
if exists("loaded_matchit")
|
||||
let b:match_words = '\<if\(n\)\=\(eq\|def\)\>:\<else\>:\<endif\>,\<define\>:\<endef\>'
|
||||
let b:match_words = '^ *ifn\=\(eq\|def\)\>:^ *else\(\s\+ifn\=\(eq\|def\)\)\=\>:^ *endif\>,\<define\>:\<endef\>,^!\s*if\(n\=def\)\=\>:^!\s*else\(if\(n\=def\)\=\)\=\>:^!\s*endif\>'
|
||||
endif
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Tom Picton <tom@tompicton.co.uk>
|
||||
" Previous Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Sun, 15 April 2018
|
||||
" Last Change: Sun 17 Mar 2019
|
||||
" https://github.com/tpict/vim-ftplugin-python
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
@@ -37,9 +37,10 @@ setlocal suffixesadd=.py
|
||||
setlocal comments=b:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal omnifunc=pythoncomplete#Complete
|
||||
if has('python3')
|
||||
setlocal omnifunc=python3complete#Complete
|
||||
setlocal omnifunc=python3complete#Complete
|
||||
elseif has('python')
|
||||
setlocal omnifunc=pythoncomplete#Complete
|
||||
endif
|
||||
|
||||
set wildignore+=*.pyc
|
||||
@@ -53,32 +54,34 @@ let b:prev='\v^\s*(class\|def\|async def)>'
|
||||
let b:next_end='\v\S\n*(%$\|^(\s*\n*)*(class\|def\|async def)\|^\S)'
|
||||
let b:prev_end='\v\S\n*(^(\s*\n*)*(class\|def\|async def)\|^\S)'
|
||||
|
||||
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0, v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
|
||||
if !exists('g:no_plugin_maps') && !exists('g:no_python_maps')
|
||||
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', v:count1, 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
|
||||
|
||||
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0, v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb', v:count1)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', v:count1, 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
|
||||
|
||||
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0, v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb', v:count1)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', v:count1, 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
|
||||
endif
|
||||
|
||||
if !exists('*<SID>Python_jump')
|
||||
fun! <SID>Python_jump(mode, motion, flags, count, ...) range
|
||||
@@ -123,10 +126,80 @@ if !exists('g:pydoc_executable')
|
||||
let g:pydoc_executable = 0
|
||||
endif
|
||||
endif
|
||||
|
||||
" Windows-specific pydoc setup
|
||||
if has('win32') || has('win64')
|
||||
if executable('python')
|
||||
" available as Tools\scripts\pydoc.py
|
||||
let g:pydoc_executable = 1
|
||||
else
|
||||
let g:pydoc_executable = 0
|
||||
endif
|
||||
endif
|
||||
|
||||
" If "pydoc" was found use it for keywordprg.
|
||||
if g:pydoc_executable
|
||||
setlocal keywordprg=pydoc
|
||||
if has('win32') || has('win64')
|
||||
setlocal keywordprg=python\ -m\ pydoc\
|
||||
else
|
||||
setlocal keywordprg=pydoc
|
||||
endif
|
||||
endif
|
||||
|
||||
" Script for filetype switching to undo the local stuff we may have changed
|
||||
let b:undo_ftplugin = 'setlocal cinkeys<'
|
||||
\ . '|setlocal comments<'
|
||||
\ . '|setlocal commentstring<'
|
||||
\ . '|setlocal expandtab<'
|
||||
\ . '|setlocal include<'
|
||||
\ . '|setlocal includeexpr<'
|
||||
\ . '|setlocal indentkeys<'
|
||||
\ . '|setlocal keywordprg<'
|
||||
\ . '|setlocal omnifunc<'
|
||||
\ . '|setlocal shiftwidth<'
|
||||
\ . '|setlocal softtabstop<'
|
||||
\ . '|setlocal suffixesadd<'
|
||||
\ . '|setlocal tabstop<'
|
||||
\ . '|silent! nunmap <buffer> [M'
|
||||
\ . '|silent! nunmap <buffer> [['
|
||||
\ . '|silent! nunmap <buffer> []'
|
||||
\ . '|silent! nunmap <buffer> [m'
|
||||
\ . '|silent! nunmap <buffer> ]M'
|
||||
\ . '|silent! nunmap <buffer> ]['
|
||||
\ . '|silent! nunmap <buffer> ]]'
|
||||
\ . '|silent! nunmap <buffer> ]m'
|
||||
\ . '|silent! ounmap <buffer> [M'
|
||||
\ . '|silent! ounmap <buffer> [['
|
||||
\ . '|silent! ounmap <buffer> []'
|
||||
\ . '|silent! ounmap <buffer> [m'
|
||||
\ . '|silent! ounmap <buffer> ]M'
|
||||
\ . '|silent! ounmap <buffer> ]['
|
||||
\ . '|silent! ounmap <buffer> ]]'
|
||||
\ . '|silent! ounmap <buffer> ]m'
|
||||
\ . '|silent! xunmap <buffer> [M'
|
||||
\ . '|silent! xunmap <buffer> [['
|
||||
\ . '|silent! xunmap <buffer> []'
|
||||
\ . '|silent! xunmap <buffer> [m'
|
||||
\ . '|silent! xunmap <buffer> ]M'
|
||||
\ . '|silent! xunmap <buffer> ]['
|
||||
\ . '|silent! xunmap <buffer> ]]'
|
||||
\ . '|silent! xunmap <buffer> ]m'
|
||||
\ . '|unlet! b:browsefilter'
|
||||
\ . '|unlet! b:child_match'
|
||||
\ . '|unlet! b:child_sub'
|
||||
\ . '|unlet! b:grandparent_match'
|
||||
\ . '|unlet! b:grandparent_sub'
|
||||
\ . '|unlet! b:next'
|
||||
\ . '|unlet! b:next_end'
|
||||
\ . '|unlet! b:next_endtoplevel'
|
||||
\ . '|unlet! b:next_toplevel'
|
||||
\ . '|unlet! b:parent_match'
|
||||
\ . '|unlet! b:parent_sub'
|
||||
\ . '|unlet! b:prev'
|
||||
\ . '|unlet! b:prev_end'
|
||||
\ . '|unlet! b:prev_endtoplevel'
|
||||
\ . '|unlet! b:prev_toplevel'
|
||||
\ . '|unlet! b:undo_ftplugin'
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
# The gvim.desktop file is generated by src/po/Makefile, do NOT edit.
|
||||
# Edit the src/po/gvim.desktop.in file instead.
|
||||
[Desktop Entry]
|
||||
Name=gVim
|
||||
# Translators: This is the Application Name used in the GVim desktop file
|
||||
Name[de]=GVim
|
||||
Name=GVim
|
||||
# Translators: This is the Generic Application Name used in the Vim desktop file
|
||||
GenericName[de]=Texteditor
|
||||
GenericName=Text Editor
|
||||
# Translators: This is the comment used in the Vim desktop file
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment=Edit text files
|
||||
# The translations should come from the po file. Leave them here for now, they will
|
||||
# be overwritten by the po file when generating the desktop.file!
|
||||
GenericName[da]=Teksteditor
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[eo]=Tekstoredaktilo
|
||||
GenericName[fr]=Éditeur de texte
|
||||
GenericName[pl]=Edytor tekstu
|
||||
Comment=Edit text files
|
||||
GenericName[is]=Ritvinnsluforrit
|
||||
Comment[af]=Redigeer tekslêers
|
||||
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
|
||||
Comment[ar]=حرّر ملفات نصية
|
||||
@@ -37,6 +48,7 @@ Comment[hi]=पाठ फ़ाइलें संपादित करें
|
||||
Comment[hr]=Uređivanje tekstualne datoteke
|
||||
Comment[hu]=Szövegfájlok szerkesztése
|
||||
Comment[id]=Edit file teks
|
||||
Comment[is]=Vinna með textaskrár
|
||||
Comment[it]=Modifica file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
|
||||
@@ -79,7 +91,11 @@ TryExec=gvim
|
||||
Exec=gvim -f %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
|
||||
Keywords[de]=Text;Editor;
|
||||
Keywords=Text;editor;
|
||||
# Translators: This is the Icon file name. Do NOT translate
|
||||
Icon[de]=gvim
|
||||
Icon=gvim
|
||||
Categories=Utility;TextEditor;
|
||||
StartupNotify=true
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
" Vim indent file
|
||||
" Language: cobol
|
||||
" Author: Tim Pope <vimNOSPAM@tpope.info>
|
||||
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
|
||||
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
|
||||
" $Id: cobol.vim,v 1.1 2007/05/05 18:08:19 vimboss Exp $
|
||||
" Last Update: By Ankit Jain on 22.03.2019
|
||||
" Ankit Jain 22.03.2019 Changes & fixes:
|
||||
" Allow chars in 1st 6 columns
|
||||
" #C22032019
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -66,7 +71,9 @@ function! GetCobolIndent(lnum) abort
|
||||
let ashft = minshft + 1
|
||||
let bshft = ashft + 4
|
||||
" (Obsolete) numbered lines
|
||||
if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)'
|
||||
" #C22032019: Columns 1-6 could have alphabets as well as numbers
|
||||
"if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)'
|
||||
if getline(a:lnum) =~? '^\s*[a-zA-Z0-9]\{6\}\%($\|[ */$CD-]\)'
|
||||
return 0
|
||||
endif
|
||||
let cline = s:stripped(a:lnum)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Header: "{{{
|
||||
" Maintainer: Bram Moolenaar
|
||||
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
||||
" Last Change: 2018 Mar 28
|
||||
" Last Change: 2019 Mar 20
|
||||
" Version: 1.0
|
||||
" Description: HTML indent script with cached state for faster indenting on a
|
||||
" range of lines.
|
||||
@@ -902,12 +902,19 @@ func! s:InsideTag(foundHtmlString)
|
||||
"{{{
|
||||
if a:foundHtmlString
|
||||
" Inside an attribute string.
|
||||
" Align with the previous line or use an external function.
|
||||
" Align with the opening quote or use an external function.
|
||||
let lnum = v:lnum - 1
|
||||
if lnum > 1
|
||||
if exists('b:html_indent_tag_string_func')
|
||||
return b:html_indent_tag_string_func(lnum)
|
||||
endif
|
||||
" If there is a double quote in the previous line, indent with the
|
||||
" character after it.
|
||||
if getline(lnum) =~ '"'
|
||||
call cursor(lnum, 0)
|
||||
normal f"
|
||||
return virtcol('.')
|
||||
endif
|
||||
return indent(lnum)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -3,10 +3,16 @@
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Original Author: Nikolai Weibull <now@bitwi.se>
|
||||
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
|
||||
" Latest Revision: 2019-02-02
|
||||
" Latest Revision: 2019-03-25
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-sh-indent
|
||||
" Changelog:
|
||||
" 20190325 - Indent fi; correctly
|
||||
" https://github.com/chrisbra/vim-sh-indent/issues/14
|
||||
" 20190319 - Indent arrays (only zsh and bash)
|
||||
" https://github.com/chrisbra/vim-sh-indent/issues/13
|
||||
" 20190316 - Make use of searchpairpos for nested if sections
|
||||
" fixes https://github.com/chrisbra/vim-sh-indent/issues/11
|
||||
" 20190201 - Better check for closing if sections
|
||||
" 20180724 - make check for zsh syntax more rigid (needs word-boundaries)
|
||||
" 20180326 - better support for line continuation
|
||||
@@ -86,6 +92,12 @@ function! GetShIndent()
|
||||
if line !~ '}\s*\%(#.*\)\=$'
|
||||
let ind += s:indent_value('default')
|
||||
endif
|
||||
" array (only works for zsh or bash)
|
||||
elseif s:is_array(line) && line !~ ')\s*$' && (&ft is# 'zsh' || s:is_bash())
|
||||
let ind += s:indent_value('continuation-line')
|
||||
" end of array
|
||||
elseif curline =~ '^\s*)$'
|
||||
let ind -= s:indent_value('continuation-line')
|
||||
elseif s:is_continuation_line(line)
|
||||
if pnum == 0 || !s:is_continuation_line(pline)
|
||||
let ind += s:indent_value('continuation-line')
|
||||
@@ -114,8 +126,8 @@ function! GetShIndent()
|
||||
let line = curline
|
||||
" Current line is a endif line, so get indent from start of "if condition" line
|
||||
" TODO: should we do the same for other "end" lines?
|
||||
if curline =~ '^\s*\%(fi\)\s*\%(#.*\)\=$'
|
||||
let previous_line = search('if.\{-\};\s*then\s*\%(#.*\)\=$', 'bnW')
|
||||
if curline =~ '^\s*\%(fi\);\?\s*\%(#.*\)\=$'
|
||||
let previous_line = searchpair('\<if\>', '', '\<fi\>', 'bnW')
|
||||
if previous_line > 0
|
||||
let ind = indent(previous_line)
|
||||
endif
|
||||
@@ -179,6 +191,10 @@ function! s:is_function_definition(line)
|
||||
\ a:line =~ '^\s*function\s*\w\S\+\s*\%(()\)\?\s*{'
|
||||
endfunction
|
||||
|
||||
function! s:is_array(line)
|
||||
return a:line =~ '^\s*\<\k\+\>=('
|
||||
endfunction
|
||||
|
||||
function! s:is_case_label(line, pnum)
|
||||
if a:line !~ '^\s*(\=.*)'
|
||||
return 0
|
||||
@@ -272,5 +288,9 @@ function! s:is_end_expression(line)
|
||||
return a:line =~ '\<\%(fi\|esac\|done\|end\)\>\s*\%(#.*\)\=$'
|
||||
endfunction
|
||||
|
||||
function! s:is_bash()
|
||||
return get(g:, 'is_bash', 0) || get(b:, 'is_bash', 0)
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -82,9 +82,9 @@ RUNNING THE TEST
|
||||
Before running the test, create a FILETYPE.ok file. You can leave it empty at
|
||||
first.
|
||||
|
||||
Now run "make test". After Vim has done the indenting you will see a
|
||||
FILETYPE.fail file. This contains the actual result of indenting, and it's
|
||||
different from the FILETYPE.ok file.
|
||||
Now run "make test" from the parent directory. After Vim has done the
|
||||
indenting you will see a FILETYPE.fail file. This contains the actual result
|
||||
of indenting, and it's different from the FILETYPE.ok file.
|
||||
|
||||
Check the contents of the FILETYPE.fail file. If it is perfectly OK, then
|
||||
rename it to overwrite the FILETYPE.ok file. If you now run "make test" again,
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="foo bar">
|
||||
class="foo bar">
|
||||
text
|
||||
</div>
|
||||
|
||||
<div class="foo bar"
|
||||
data="something">
|
||||
data="something">
|
||||
text
|
||||
</div>
|
||||
|
||||
<div class="foo
|
||||
bar">
|
||||
bar">
|
||||
text
|
||||
</div>
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ if 1
|
||||
|
||||
set nocp
|
||||
filetype indent on
|
||||
syn on
|
||||
set nowrapscan
|
||||
set report=9999
|
||||
|
||||
@@ -111,7 +112,6 @@ for fname in glob('testdir/*.in', 1, 1)
|
||||
if failed
|
||||
exe 'write ' . root . '.fail'
|
||||
echoerr 'Test ' . fname . ' FAILED!'
|
||||
sleep 2
|
||||
else
|
||||
exe 'write ' . root . '.out'
|
||||
endif
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
<!-- text comment -->
|
||||
|
||||
<!--
|
||||
text comment
|
||||
text comment
|
||||
-->
|
||||
</tag1>
|
||||
<!--
|
||||
text comment
|
||||
text comment
|
||||
end coment -->
|
||||
</tag0>
|
||||
<!-- END_INDENT -->
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
" Language: xml
|
||||
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
|
||||
" Last Changed: Jan 28, 2019
|
||||
" Last Changed: Feb 04, 2019
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change:
|
||||
" 20190204 - correctly handle wrap tags
|
||||
" https://github.com/chrisbra/vim-xml-ftplugin/issues/5
|
||||
" 20190128 - Make sure to find previous tag
|
||||
" https://github.com/chrisbra/vim-xml-ftplugin/issues/4
|
||||
" 20181116 - Fix indentation when tags start with a colon or an underscore
|
||||
@@ -74,13 +76,20 @@ fun! <SID>XmlIndentSynCheck(lnum)
|
||||
endfun
|
||||
|
||||
" [-- return the sum of indents of a:lnum --]
|
||||
fun! <SID>XmlIndentSum(lnum, style, add)
|
||||
let line = getline(a:lnum)
|
||||
if a:style == match(line, '^\s*</')
|
||||
fun! <SID>XmlIndentSum(line, style, add)
|
||||
if <SID>IsXMLContinuation(a:line) && a:style == 0
|
||||
" no complete tag, add one additional indent level
|
||||
" but only for the current line
|
||||
return a:add + shiftwidth()
|
||||
elseif <SID>HasNoTagEnd(a:line)
|
||||
" no complete tag, return initial indent
|
||||
return a:add
|
||||
endif
|
||||
if a:style == match(a:line, '^\s*</')
|
||||
return (shiftwidth() *
|
||||
\ (<SID>XmlIndentWithPattern(line, b:xml_indent_open)
|
||||
\ - <SID>XmlIndentWithPattern(line, b:xml_indent_close)
|
||||
\ - <SID>XmlIndentWithPattern(line, '.\{-}/>'))) + a:add
|
||||
\ (<SID>XmlIndentWithPattern(a:line, b:xml_indent_open)
|
||||
\ - <SID>XmlIndentWithPattern(a:line, b:xml_indent_close)
|
||||
\ - <SID>XmlIndentWithPattern(a:line, '.\{-}/>'))) + a:add
|
||||
else
|
||||
return a:add
|
||||
endif
|
||||
@@ -89,19 +98,24 @@ endfun
|
||||
" Main indent function
|
||||
fun! XmlIndentGet(lnum, use_syntax_check)
|
||||
" Find a non-empty line above the current line.
|
||||
let plnum = prevnonblank(a:lnum - 1)
|
||||
" Hit the start of the file, use zero indent.
|
||||
if plnum == 0
|
||||
if prevnonblank(a:lnum - 1) == 0
|
||||
" Hit the start of the file, use zero indent.
|
||||
return 0
|
||||
endif
|
||||
" Find previous line with a tag (regardless whether open or closed,
|
||||
" but always start restrict the match to a line before the current one
|
||||
" Note: xml declaration: <?xml version="1.0"?>
|
||||
" won't be found, as it is not a legal tag name
|
||||
let ptag_pattern = '\%(.\{-}<[/:A-Z_a-z]\)'. '\%(\&\%<'. line('.').'l\)'
|
||||
let ptag = search(ptag_pattern, 'bnw')
|
||||
let ptag = search(ptag_pattern, 'bnW')
|
||||
" no previous tag
|
||||
if ptag == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let syn_name = ''
|
||||
if a:use_syntax_check
|
||||
let check_lnum = <SID>XmlIndentSynCheck(plnum)
|
||||
let check_lnum = <SID>XmlIndentSynCheck(ptag)
|
||||
let check_alnum = <SID>XmlIndentSynCheck(a:lnum)
|
||||
if check_lnum == 0 || check_alnum == 0
|
||||
return indent(a:lnum)
|
||||
@@ -113,18 +127,31 @@ fun! XmlIndentGet(lnum, use_syntax_check)
|
||||
return <SID>XmlIndentComment(a:lnum)
|
||||
endif
|
||||
|
||||
let pline = getline(ptag)
|
||||
let pind = indent(ptag)
|
||||
" Get indent from previous tag line
|
||||
let ind = <SID>XmlIndentSum(ptag, -1, indent(ptag))
|
||||
let ind = <SID>XmlIndentSum(pline, -1, pind)
|
||||
let t_ind = ind
|
||||
" Determine indent from current line
|
||||
let ind = <SID>XmlIndentSum(a:lnum, 0, ind)
|
||||
let ind = <SID>XmlIndentSum(getline(a:lnum), 0, ind)
|
||||
return ind
|
||||
endfun
|
||||
|
||||
func! <SID>IsXMLContinuation(line)
|
||||
" Checks, whether or not the line matches a start-of-tag
|
||||
return a:line !~ '^\s*<'
|
||||
endfunc
|
||||
|
||||
func! <SID>HasNoTagEnd(line)
|
||||
" Checks whether or not the line matches '>' (so finishes a tag)
|
||||
return a:line !~ '>\s*$'
|
||||
endfunc
|
||||
|
||||
" return indent for a commented line,
|
||||
" the middle part might be indented on additional level
|
||||
func! <SID>XmlIndentComment(lnum)
|
||||
let ptagopen = search(b:xml_indent_open, 'bnw')
|
||||
let ptagclose = search(b:xml_indent_close, 'bnw')
|
||||
let ptagopen = search(b:xml_indent_open, 'bnW')
|
||||
let ptagclose = search(b:xml_indent_close, 'bnW')
|
||||
if getline(a:lnum) =~ '<!--'
|
||||
" if previous tag was a closing tag, do not add
|
||||
" one additional level of indent
|
||||
@@ -136,10 +163,10 @@ func! <SID>XmlIndentComment(lnum)
|
||||
endif
|
||||
elseif getline(a:lnum) =~ '-->'
|
||||
" end of comment, same as start of comment
|
||||
return indent(search('<!--', 'bnw'))
|
||||
return indent(search('<!--', 'bnW'))
|
||||
else
|
||||
" middle part of comment, add one additional level
|
||||
return indent(search('<!--', 'bnw')) + shiftwidth()
|
||||
return indent(search('<!--', 'bnW')) + shiftwidth()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
" Menu Translations: German / Deutsch
|
||||
" Maintainer: Georg Dahn <gorgyd@yahoo.co.uk>
|
||||
" Originally By: Marcin Dalecki <dalecki@cs.net.pl>
|
||||
" Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Sat, 11 Mar 2006 22:40:00 CEST
|
||||
" Maintainer: J<EFBFBD>n Arnar Briem <jonbriem@gmail.com>
|
||||
" Originally By: Georg Dahn <gorgyd@yahoo.co.uk>
|
||||
" Marcin Dalecki <dalecki@cs.net.pl>
|
||||
" Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Mon, 1 April 2019
|
||||
" vim:set foldmethod=marker tabstop=8:
|
||||
|
||||
" Quit when menu translations have already been done.
|
||||
@@ -60,8 +61,8 @@ menutrans &Global\ Settings &Globale\ Einstellungen
|
||||
menutrans Startup\ &Settings &Starteinstellungen
|
||||
|
||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! &Hervorhebungen\ ein-\ und\ ausschalten<Tab>:set\ hls!
|
||||
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Gro<EFBFBD>schreibung\ &ignorieren\ oder\ benutzen<Tab>:set\ ic!
|
||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Anzeige\ des\ passenden\ &Symbols\ ein-\ und\ ausschalten<Tab>:set\ sm!
|
||||
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Gro<EFBFBD>schreibung\ &ignorieren\ oder\ benutzen<Tab>:set\ ic!
|
||||
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Anzeige\ des\ passenden\ &Symbols\ ein-\ und\ ausschalten<Tab>:set\ sm!
|
||||
|
||||
menutrans &Context\ lines &Zusammenhang
|
||||
|
||||
@@ -87,13 +88,13 @@ menutrans F&ile\ Settings &Datei-Einstellungen
|
||||
|
||||
" Boolean options
|
||||
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Anzeige\ der\ Zeilen&nummer\ ein-\ und\ ausschalten<Tab>:set\ nu!
|
||||
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Anzeige\ der\ relati&ven\ Zeilennummer\ ein-\ und\ ausschalten<Tab>:set\ rnu!
|
||||
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Anzeige\ der\ relati&ven\ Zeilennummer\ ein-\ und\ ausschalten<Tab>:set\ rnu!
|
||||
menutrans Toggle\ &List\ Mode<Tab>:set\ list! &List-Modus\ ein-\ und\ ausschalten<Tab>:set\ list!
|
||||
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! &Zeilenumbruch\ ein-\ und\ ausschalten<Tab>:set\ wrap!
|
||||
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Umbruch\ an\ &Wortgrenzen\ ein-\ und\ ausschalten<Tab>:set\ lbr!
|
||||
menutrans Toggle\ &expand-tab<Tab>:set\ et! &Erweiterung\ von\ Tabulatoren\ ein-\ und\ ausschalten<Tab>:set\ et!
|
||||
menutrans Toggle\ &auto-indent<Tab>:set\ ai! &Automatische\ Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ ai!
|
||||
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &C-Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ cin!
|
||||
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! &Zeilenumbruch\ ein-\ und\ ausschalten<Tab>:set\ wrap!
|
||||
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! Umbruch\ an\ &Wortgrenzen\ ein-\ und\ ausschalten<Tab>:set\ lbr!
|
||||
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! &Erweiterung\ von\ Tabulatoren\ ein-\ und\ ausschalten<Tab>:set\ et!
|
||||
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! &Automatische\ Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ ai!
|
||||
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-Einr<EFBFBD>ckung\ ein-\ und\ ausschalten<Tab>:set\ cin!
|
||||
|
||||
" other options
|
||||
menutrans &Shiftwidth &Schiebeweite
|
||||
@@ -146,7 +147,7 @@ if has("folding")
|
||||
menutrans &Delete\ Fold<Tab>zd Faltung\ l<EFBFBD>schen<Tab>zd
|
||||
menutrans Delete\ &All\ Folds<Tab>zD Alle\ Faltungen\ l<EFBFBD>schen<Tab>zD
|
||||
" moving around in folds
|
||||
menutrans Fold\ column\ &width &Breite\ der\ Faltungsspalte
|
||||
menutrans Fold\ col&umn\ width &Breite\ der\ Faltungsspalte
|
||||
endif " has folding
|
||||
|
||||
if has("diff")
|
||||
@@ -236,6 +237,7 @@ menutrans &How-to\ links How-to\ &Index
|
||||
menutrans &GUI &Graphische\ Oberfl<EFBFBD>che
|
||||
menutrans &Credits &Autoren
|
||||
menutrans Co&pying &Urheberrecht
|
||||
menutrans &Sponsor/Register Sponsern/&Registrieren
|
||||
menutrans O&rphans &Waisen
|
||||
menutrans &Find\.\.\. &Suchen\.\.\. " conflicts with Edit.Find
|
||||
menutrans &Version &Version
|
||||
|
||||
3
runtime/lang/menu_is.latin1.vim
Normal file
3
runtime/lang/menu_is.latin1.vim
Normal file
@@ -0,0 +1,3 @@
|
||||
" Menu Translations: Icelandic for iso-8859-1 encoding
|
||||
|
||||
source <sfile>:p:h/menu_is_is.latin1.vim
|
||||
3
runtime/lang/menu_is.utf-8.vim
Normal file
3
runtime/lang/menu_is.utf-8.vim
Normal file
@@ -0,0 +1,3 @@
|
||||
" Menu Translations: Icelandic for UTF-8 encoding
|
||||
|
||||
source <sfile>:p:h/menu_is_is.latin1.vim
|
||||
305
runtime/lang/menu_is_is.latin1.vim
Normal file
305
runtime/lang/menu_is_is.latin1.vim
Normal file
@@ -0,0 +1,305 @@
|
||||
" Menu Translations: Icelandic / <20>slenska
|
||||
" Maintainer: J<>n Arnar Briem <jonbriem@gmail.com>
|
||||
" Originally By: J<>n Arnar Briem <jonbriem@gmail.com>
|
||||
" Last Change: Sun, 24 Mar 2019 22:40:00 CEST
|
||||
" vim:set foldmethod=marker tabstop=8:
|
||||
|
||||
" Quit when menu translations have already been done.
|
||||
if exists("did_menu_trans")
|
||||
finish
|
||||
endif
|
||||
let did_menu_trans = 1
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" The translations below are in latin1, but they work for cp1252 and
|
||||
" iso-8859-15 without conversion as well.
|
||||
if &enc != "cp1252" && &enc != "iso-8859-15"
|
||||
scriptencoding latin1
|
||||
endif
|
||||
|
||||
" {{{ FILE / SKR<4B>
|
||||
menutrans &File Skr<EFBFBD>
|
||||
menutrans &Open\.\.\.<Tab>:e Opna\.\.\.<Tab>:e
|
||||
menutrans Sp&lit-Open\.\.\.<Tab>:sp Splitt\ opna\.\.\.<Tab>:sp
|
||||
menutrans Open\ Tab\.\.\.<Tab>:tabnew Opna\ flipa\.\.\.<Tab>:tabnew
|
||||
menutrans &New<Tab>:enew N<EFBFBD>\ Skr<EFBFBD><Tab>:enew
|
||||
menutrans &Close<Tab>:close Loka<Tab>:close
|
||||
menutrans &Save<Tab>:w Vista<Tab>:w
|
||||
menutrans Save\ &As\.\.\.<Tab>:sav Vista\ sem\.\.\.<Tab>:sav
|
||||
menutrans &Print Prenta
|
||||
menutrans Sa&ve-Exit<Tab>:wqa Vista\ og\ Loka<Tab>:wqa
|
||||
menutrans E&xit<Tab>:qa Loka<Tab>:qa
|
||||
|
||||
if has("diff")
|
||||
menutrans Split\ &Diff\ with\.\.\. Splitt\ opna\ mismun\ vi<EFBFBD>\.\.\.
|
||||
menutrans Split\ Patched\ &By\.\.\. Splitt\ opna\ pl<EFBFBD>stra<EFBFBD>\ af\.\.\.
|
||||
endif
|
||||
" }}} FILE / SKR<4B>
|
||||
|
||||
" {{{ EDIT / BREYTA
|
||||
menutrans &Edit Breyta
|
||||
menutrans &Undo<Tab>u Afturkalla<Tab>u
|
||||
menutrans &Redo<Tab>^R Endurkalla<Tab>^R
|
||||
menutrans Rep&eat<Tab>\. Endurtaka<Tab>\.
|
||||
menutrans Cu&t<Tab>"+x Klippa<Tab>"+x
|
||||
menutrans &Copy<Tab>"+y Afrita<Tab>"+y
|
||||
menutrans &Paste<Tab>"+gP L<>ma<Tab>"+gP
|
||||
menutrans Put\ &Before<Tab>[p L<EFBFBD>ma\ Fyrir<Tab>[p
|
||||
menutrans Put\ &After<Tab>]p L<EFBFBD>ma\ Eftir<Tab>]p
|
||||
menutrans &Delete<Tab>x Ey<EFBFBD>a<Tab>x
|
||||
menutrans &Select\ All<Tab>ggVG Velja\ Allt<Tab>ggVG
|
||||
menutrans &Find\.\.\. Finna\.\.\.
|
||||
menutrans Find\ and\ Rep&lace\.\.\. Finna\ og\ Skipta\.\.\.
|
||||
|
||||
" [-- SETTINGS --]
|
||||
menutrans Settings\ &Window Stillingar\ Glugga
|
||||
menutrans &Global\ Settings V<EFBFBD><EFBFBD>v<EFBFBD>rar\ Stillingar
|
||||
menutrans Startup\ &Settings R<EFBFBD>sistillingar
|
||||
|
||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Munsturau<EFBFBD>kenning\ <20>\/af<Tab>:set\ hls!
|
||||
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Hunsa\ h<EFBFBD>-l<EFBFBD>gstafi\ <20>\/af<Tab>:set\ ic!
|
||||
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! S<EFBFBD>na\ P<EFBFBD>run <20>\/af<Tab>:set\ sm!
|
||||
|
||||
menutrans &Context\ lines Samhengisl<EFBFBD>nur
|
||||
|
||||
menutrans &Virtual\ Edit Skinbreytihamur
|
||||
menutrans Never Aldrei
|
||||
menutrans Block\ Selection B<EFBFBD>lkval
|
||||
menutrans Insert\ mode Innskotshamur
|
||||
menutrans Block\ and\ Insert B<EFBFBD>lkval\ og\ Innskotshamur
|
||||
menutrans Always Alltaf
|
||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Innskotshamur\ <20>\/af<Tab>:set\ im!
|
||||
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! Vi\ Samh<EFBFBD>fanleiki <20>\/af<Tab>:set\ cp!
|
||||
|
||||
menutrans Search\ &Path\.\.\. Leita\ <20>\ Sl<EFBFBD><EFBFBD>\.\.\.
|
||||
menutrans Ta&g\ Files\.\.\. Merkja\ Skr<EFBFBD>r\.\.\.
|
||||
|
||||
menutrans Toggle\ &Toolbar T<EFBFBD>labor<EFBFBD>\ <20>\/af
|
||||
menutrans Toggle\ &Bottom\ Scrollbar Ne<EFBFBD>ri\ Skrunbor<EFBFBD>i\ <20>\/af
|
||||
menutrans Toggle\ &Left\ Scrollbar Vinstri\ Skrunbor<EFBFBD>i\ <20>\/af
|
||||
menutrans Toggle\ &Right\ Scrollbar H<EFBFBD>gri\ Skrunbor<EFBFBD>i\ <20>\/af
|
||||
|
||||
" Edit/File Settings
|
||||
menutrans F&ile\ Settings Skr<EFBFBD>ar-Stilingar
|
||||
|
||||
" Boolean options
|
||||
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! L<EFBFBD>nun<EFBFBD>mering\ <20>\/af<Tab>:set\ nu!
|
||||
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Afst<EFBFBD><EFBFBD>\ L<EFBFBD>nun<EFBFBD>mering\ <20>\/af<Tab>:set\ rnu!
|
||||
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Listahamur\ <20>\/af<Tab>:set\ list!
|
||||
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! L<EFBFBD>nuhlaup\ <20>\/af<Tab>:set\ wrap!
|
||||
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! L<EFBFBD>nuhlaup\ <20>\ or<EFBFBD>i\ <20>\/af<Tab>:set\ lbr!
|
||||
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Tab-v<EFBFBD>kkun\ <20>\/af<Tab>:set\ et!
|
||||
menutrans Toggle\ &Auto Indenting<Tab>:set\ ai! Sj<EFBFBD>lfvirkur\ Inndr<EFBFBD>ttur\ <20>\/af<Tab>:set\ ai!
|
||||
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! C-Inndr<EFBFBD>ttur\ <20>\/af<Tab>:set\ cin!
|
||||
|
||||
" other options
|
||||
menutrans &Shiftwidth Shiftbreidd
|
||||
menutrans Soft\ &Tabstop Mj<EFBFBD>k\ Tabstopp
|
||||
menutrans Te&xt\ Width\.\.\. Textabreidd\.\.\.
|
||||
menutrans &File\ Format\.\.\. Skr<EFBFBD>arform\.\.\.
|
||||
menutrans C&olor\ Scheme Lita<EFBFBD>ema\.\.\.
|
||||
menutrans &Keymap Lyklaskipan
|
||||
" }}} EDIT / BREYTA
|
||||
|
||||
" {{{ TOOLS / T<>l
|
||||
if has("spell")
|
||||
menutrans &Spelling Stafsetning
|
||||
menutrans &Spell\ Check\ On Villuleit\ <20>
|
||||
menutrans Spell\ Check\ &Off Villuleit\ af
|
||||
menutrans To\ &Next\ error<Tab>]s N<EFBFBD>sta\ Villa<Tab>]s
|
||||
menutrans To\ &Previous\ error<Tab>[s Fyrri\ Villa<Tab>[s
|
||||
menutrans Suggest\ &Corrections<Tab>z= Leggja\ til\ Lei<EFBFBD>r<EFBFBD>ttingar<Tab>z=
|
||||
menutrans &Repeat\ correction<Tab>:spellrepall Endurtaka\ Lei<EFBFBD>r<EFBFBD>ttingu<Tab>:spellrepall
|
||||
menutrans Set\ language\ to\ "en" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en"
|
||||
menutrans Set\ language\ to\ "en_au" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_au"
|
||||
menutrans Set\ language\ to\ "en_ca" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_ca"
|
||||
menutrans Set\ language\ to\ "en_gb" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_gb"
|
||||
menutrans Set\ language\ to\ "en_nz" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_nz"
|
||||
menutrans Set\ language\ to\ "en_us" Stilla\ Or<EFBFBD>ab<EFBFBD>k\ <20> "en_us"
|
||||
menutrans &Find\ More\ Languages Finna\ fleiri\ Or<EFBFBD>ab<EFBFBD>kur
|
||||
endif
|
||||
if has("folding")
|
||||
menutrans &Folding F<EFBFBD>ldun
|
||||
" open close folds
|
||||
menutrans &Enable/Disable\ folds<Tab>zi F<>ldun\ <20>\/af<Tab>zi
|
||||
menutrans &View\ Cursor\ Line<Tab>zv Sj<EFBFBD>\ L<EFBFBD>nu\ Bendils<Tab>zv
|
||||
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Sj<EFBFBD>\ Eing<EFBFBD>ngu\ L<EFBFBD>nu\ Bendils<Tab>zMzx
|
||||
menutrans C&lose\ more\ folds<Tab>zm Loka\ Fleiri\ F<EFBFBD>ldunum<Tab>zm
|
||||
menutrans &Close\ all\ folds<Tab>zM Loka\ <20>llum\ F<EFBFBD>ldunum<Tab>zM
|
||||
menutrans O&pen\ more\ folds<Tab>zr Opna\ Fleiri\ Faldanir<Tab>zr
|
||||
menutrans &Open\ all\ folds<Tab>zR Opna\ Allar\ Faldanir<Tab>zR
|
||||
" fold method
|
||||
menutrans Fold\ Met&hod F<EFBFBD>ldunar-h<EFBFBD>ttur
|
||||
menutrans M&anual Handvirkur
|
||||
menutrans I&ndent Inndr<EFBFBD>ttur
|
||||
menutrans E&xpression Seg<EFBFBD>
|
||||
menutrans S&yntax M<EFBFBD>lskipan
|
||||
menutrans &Diff Mismunur
|
||||
menutrans Ma&rker Merking
|
||||
" create and delete folds
|
||||
menutrans Create\ &Fold<Tab>zf B<EFBFBD>a\ til\ F<EFBFBD>ldun<Tab>zf
|
||||
menutrans &Delete\ Fold<Tab>zd Ey<EFBFBD>a\ F<EFBFBD>ldun<Tab>zd
|
||||
menutrans Delete\ &All\ Folds<Tab>zD Ey<EFBFBD>a\ <20>llum\ F<EFBFBD>ldunum<Tab>zD
|
||||
" moving around in folds
|
||||
menutrans Fold\ Col&umn\ Width Breidd\ F<EFBFBD>ldunar
|
||||
endif " has folding
|
||||
|
||||
if has("diff")
|
||||
menutrans &Diff Mismunur
|
||||
menutrans &Update Uppf<EFBFBD>ra
|
||||
menutrans &Get\ Block S<EFBFBD>kja\ B<EFBFBD>lk
|
||||
menutrans &Put\ Block Setja\ B<EFBFBD>lk
|
||||
endif
|
||||
|
||||
menutrans &Tools T<EFBFBD>l
|
||||
menutrans &Jump\ to\ this\ tag<Tab>g^] St<EFBFBD>kkva\ <20>\ Merki<Tab>g^]
|
||||
menutrans Jump\ &back<Tab>^T St<EFBFBD>kkva\ til\ baka<Tab>^T
|
||||
menutrans Build\ &Tags\ File B<EFBFBD>a\ til\ Merkjaskr<EFBFBD>
|
||||
menutrans &Make<Tab>:make Sm<EFBFBD><EFBFBD>a<Tab>:make
|
||||
menutrans &List\ Errors<Tab>:cl Birta\ Villur<Tab>:cl
|
||||
menutrans L&ist\ Messages<Tab>:cl! Birta\ Skilabo<EFBFBD><Tab>:cl!
|
||||
menutrans &Next\ Error<Tab>:cn N<EFBFBD>sta\ Villa<Tab>:cn
|
||||
menutrans &Previous\ Error<Tab>:cp Fyrri\ Villa<Tab>:cp
|
||||
menutrans &Older\ List<Tab>:cold Eldri\ Listi<Tab>:cold
|
||||
menutrans N&ewer\ List<Tab>:cnew N<EFBFBD>rri\ Listi<Tab>:cnew
|
||||
|
||||
menutrans Error\ &Window Villugluggi
|
||||
menutrans Se&t\ Compiler Smi<EFBFBD>ur
|
||||
menutrans &Update<Tab>:cwin Uppf<EFBFBD>ra<Tab>:cwin
|
||||
menutrans &Open<Tab>:copen Opna<Tab>:copen
|
||||
menutrans &Close<Tab>:cclose Loka<Tab>:cclose
|
||||
|
||||
menutrans &Convert\ to\ HEX<Tab>:%!xxd Breyta\ <20>\ HEX<Tab>:%!xxd
|
||||
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Breyta\ til\ baka<Tab>:%!xxd\ -r
|
||||
" }}} TOOLS / T<>L
|
||||
|
||||
" {{{ SYNTAX / M<>LSKIPAN
|
||||
menutrans &Syntax M<EFBFBD>lskipan
|
||||
menutrans &Show\ filetypes\ in\ menu S<EFBFBD>na\ Skr<EFBFBD>artegundir
|
||||
menutrans Set\ '&syntax'\ only Stilla\ a<EFBFBD>eins\ 'm<>lskipan'\
|
||||
menutrans Set\ '&filetype'\ too Stilla\ einnig\ 'skr<6B>artegund'\
|
||||
menutrans &Off Af
|
||||
menutrans &Manual Handvirkt
|
||||
menutrans A&utomatic Sj<EFBFBD>lfvirkt
|
||||
menutrans on/off\ for\ &This\ file <20>/af\ fyrir\ <20>essa\ skr<EFBFBD>
|
||||
menutrans Co&lor\ test Litapr<EFBFBD>fun
|
||||
menutrans &Highlight\ test Au<EFBFBD>kenningarpr<EFBFBD>fun
|
||||
menutrans &Convert\ to\ HTML Breyta\ <20>\ HTML
|
||||
" }}} SYNTAX / M<>LSKIPAN
|
||||
|
||||
" {{{ BUFFERS / BI<42>MINNI
|
||||
menutrans &Buffers Bi<EFBFBD>minni
|
||||
menutrans &Refresh\ menu Uppf<EFBFBD>ra\ valmynd
|
||||
menutrans Delete Ey<EFBFBD>a
|
||||
menutrans &Alternate Skipta
|
||||
menutrans &Next N<EFBFBD>sta
|
||||
menutrans &Previous Fyrra
|
||||
" }}} BUFFERS / BI<42>MINNI
|
||||
|
||||
" {{{ WINDOW / GLUGGI
|
||||
menutrans &Window Gluggi
|
||||
menutrans &New<Tab>^Wn N<EFBFBD>r<Tab>^Wn
|
||||
menutrans S&plit<Tab>^Ws Splitta<Tab>^Ws
|
||||
menutrans Split\ &Vertically<Tab>^Wv Splitta\ L<EFBFBD><EFBFBD>r<EFBFBD>tt<Tab>^Wv
|
||||
menutrans Split\ File\ E&xplorer Splitta\ Skr<EFBFBD>arvafra
|
||||
menutrans Sp&lit\ To\ #<Tab>^W^^ Splitta\ <20>\ Flipa\ #<Tab>^W^^
|
||||
menutrans &Close<Tab>^Wc Loka\ Flipa<Tab>^Wc
|
||||
menutrans Close\ &Other(s)<Tab>^Wo Loka\ <20><>rum\ Flipum<Tab>^Wo
|
||||
menutrans Ne&xt<Tab>^Ww N<EFBFBD>sti<Tab>^Ww
|
||||
menutrans P&revious<Tab>^WW Fyrri<Tab>^WW
|
||||
menutrans &Equal\ Size<Tab>^W= Jafn\ St<EFBFBD>r<Tab>^W=
|
||||
menutrans &Max\ Height<Tab>^W_ H<EFBFBD>marksh<EFBFBD><EFBFBD><Tab>^W_
|
||||
menutrans M&in\ Height<Tab>^W1_ L<EFBFBD>gmarksh<EFBFBD><EFBFBD><Tab>^W1_
|
||||
menutrans Max\ &Width<Tab>^W\| H<EFBFBD>marksbreidd<Tab>^W\|
|
||||
menutrans Min\ Widt&h<Tab>^W1\| L<EFBFBD>gmarksbreidd<Tab>^W1\|
|
||||
menutrans Move\ &To F<EFBFBD>ra
|
||||
menutrans &Top<Tab>^WK Upp<Tab>^WK
|
||||
menutrans &Bottom<Tab>^WJ Ni<EFBFBD>ur<Tab>^WJ
|
||||
menutrans &Left\ side<Tab>^WH Til\ Vinstri<Tab>^WH
|
||||
menutrans &Right\ side<Tab>^WL Til\ H<EFBFBD>gri<Tab>^WL
|
||||
menutrans Rotate\ &Up<Tab>^WR R<EFBFBD>lla\ upp<Tab>^WR
|
||||
menutrans Rotate\ &Down<Tab>^Wr R<EFBFBD>lla\ ni<EFBFBD>ur<Tab>^Wr
|
||||
menutrans Select\ Fo&nt\.\.\. Velja\ Leturger<EFBFBD>\.\.\.
|
||||
" }}} WINDOW / GLUGGI
|
||||
|
||||
" {{{ HELP / HJ<48>LP
|
||||
menutrans &Help Hj<EFBFBD>lp
|
||||
menutrans &Overview<Tab><F1> Yfirlit<Tab><F1>
|
||||
menutrans &User\ Manual Notendahandb<EFBFBD>k
|
||||
menutrans &How-to\ links Hj<EFBFBD>lparhlekkir
|
||||
menutrans &GUI Myndr<EFBFBD>nt\ Vi<EFBFBD>m<EFBFBD>t
|
||||
menutrans &Credits H<EFBFBD>fundar
|
||||
menutrans Co&pying Afritun
|
||||
menutrans &Sponsor/Register Styrkja/Skr<EFBFBD>ning
|
||||
menutrans O&rphans G<EFBFBD><EFBFBD>ger<EFBFBD>arstarf
|
||||
menutrans &Find\.\.\. Leit\.\.\. " conflicts with Edit.Find
|
||||
menutrans &Version <20>tg<EFBFBD>fa
|
||||
menutrans &About Um\ Forriti<EFBFBD>
|
||||
" }}} HELP / HJ<48>LP
|
||||
|
||||
" {{{ POPUP
|
||||
menutrans &Undo Til\ Baka
|
||||
menutrans Cu&t Klippa
|
||||
menutrans &Copy Afrita
|
||||
menutrans &Paste L<EFBFBD>ma
|
||||
menutrans &Delete Ey<EFBFBD>a
|
||||
menutrans Select\ Blockwise Velja\ B<EFBFBD>lkv<EFBFBD>st
|
||||
menutrans Select\ &Word Velja\ Or<EFBFBD>
|
||||
menutrans Select\ &Sentence Velja\ Setningu
|
||||
menutrans Select\ Pa&ragraph Velja\ Efnisgrein
|
||||
menutrans Select\ &Line Velja\ L<EFBFBD>nu
|
||||
menutrans Select\ &Block Velja\ B<EFBFBD>lk
|
||||
menutrans Select\ &All Velja\ Allt
|
||||
" }}} POPUP
|
||||
|
||||
" {{{ TOOLBAR
|
||||
if has("toolbar")
|
||||
if exists("*Do_toolbar_tmenu")
|
||||
delfun Do_toolbar_tmenu
|
||||
endif
|
||||
fun Do_toolbar_tmenu()
|
||||
tmenu ToolBar.Open Opna Skr<EFBFBD>
|
||||
tmenu ToolBar.Save Vista Skr<EFBFBD>
|
||||
tmenu ToolBar.SaveAll Vista Allar Skr<EFBFBD>r
|
||||
tmenu ToolBar.Print Prenta
|
||||
tmenu ToolBar.Undo Afturkalla
|
||||
tmenu ToolBar.Redo Endurkalla
|
||||
tmenu ToolBar.Cut Klippa
|
||||
tmenu ToolBar.Copy Afrita
|
||||
tmenu ToolBar.Paste L<EFBFBD>ma
|
||||
tmenu ToolBar.Find Finna...
|
||||
tmenu ToolBar.FindNext Finna N<EFBFBD>sta
|
||||
tmenu ToolBar.FindPrev Finna fyrri
|
||||
tmenu ToolBar.Replace Finna og Skipta...
|
||||
if 0 " disabled; These are in the Windows menu
|
||||
tmenu ToolBar.New N<EFBFBD>r
|
||||
tmenu ToolBar.WinSplit Splitta Glugga
|
||||
tmenu ToolBar.WinMax H<EFBFBD>marksst<EFBFBD>r<EFBFBD> Glugga
|
||||
tmenu ToolBar.WinMin L<EFBFBD>gmarksst<EFBFBD>r<EFBFBD> Glugga
|
||||
tmenu ToolBar.WinClose Loka Glugga
|
||||
endif
|
||||
tmenu ToolBar.LoadSesn Hla<EFBFBD>a Setu
|
||||
tmenu ToolBar.SaveSesn Vista Setu
|
||||
tmenu ToolBar.RunScript Keyra Skriptu
|
||||
tmenu ToolBar.Make Sm<EFBFBD><EFBFBD>a
|
||||
tmenu ToolBar.Shell Opna Skel
|
||||
tmenu ToolBar.RunCtags Sm<EFBFBD><EFBFBD>a Merki
|
||||
tmenu ToolBar.TagJump Hoppa <20> Merki
|
||||
tmenu ToolBar.Help Hj<EFBFBD>lp
|
||||
tmenu ToolBar.FindHelp Finna Hj<EFBFBD>lp...
|
||||
endfun
|
||||
endif
|
||||
" }}} TOOLBAR
|
||||
|
||||
" {{{ DIALOG TEXTS
|
||||
let g:menutrans_no_file = "[Engin Skr<6B>]"
|
||||
let g:menutrans_help_dialog = "Sl<53>i<EFBFBD> inn skipun e<>a or<6F>a til a<> leita uppl<70>singa um:\n\nForskeyti<74> i_ fyrir <20>lagshamsskipanir (t.d. i_CTRL-X)\nForskeyti<74> c_ fyrir skipanal<61>nuskipanir (t.d. c_<Del>)\nForskeyti<74> ' fyrir nafn <20> valm<6C>guleika (t.d. 'shiftbreidd')"
|
||||
let g:menutrans_path_dialog = "Sl<53>i<EFBFBD> inn leitarsl<73><6C> fyrir skr<6B>r.\nA<6E>skilji<6A> m<>ppur me<6D> kommu"
|
||||
let g:menutrans_tags_dialog = "Sl<53>i<EFBFBD> inn nafn Merkjaskr<6B>a.\nA<6E>skilji<6A> n<>fnin me<6D> kommu"
|
||||
let g:menutrans_textwidth_dialog = "Sl<53>i<EFBFBD> inn n<>ja textabreidd (0 til a<> <20>virkja sni<6E>m<EFBFBD>tun): "
|
||||
let g:menutrans_fileformat_dialog = "Velji<6A> Skr<6B>arsni<6E>"
|
||||
" }}}
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
3
runtime/lang/menu_is_is.utf-8.vim
Normal file
3
runtime/lang/menu_is_is.utf-8.vim
Normal file
@@ -0,0 +1,3 @@
|
||||
" Menu Translations: Icelandic for UTF-8 encoding
|
||||
|
||||
source <sfile>:p:h/menu_is_is.latin1.vim
|
||||
@@ -1,10 +1,23 @@
|
||||
" Vim syntax file
|
||||
" Language: COBOL
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
|
||||
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
|
||||
" (formerly Davyd Ondrejko <vondraco@columbus.rr.com>)
|
||||
" (formerly Sitaram Chamarty <sitaram@diac.com> and
|
||||
" James Mitchell <james_mitchell@acm.org>)
|
||||
" Last Change: 2015 Feb 13
|
||||
" Last Change: 2019 Mar 22
|
||||
" Ankit Jain 22.03.2019 Changes & fixes:
|
||||
" 1. Include inline comments
|
||||
" 2. Use comment highlight for bad lines
|
||||
" 3. Change certain 'keywords' to 'matches'
|
||||
" for additional highlighting
|
||||
" 4. Different highlighting for COPY, GO TO &
|
||||
" CALL lines
|
||||
" 5. Fix for COMP keyword
|
||||
" 6. Fix for PROCEDURE DIVISION highlighting
|
||||
" 7. Highlight EXIT PROGRAM like STOP RUN
|
||||
" 8. Highlight X & A in PIC clause
|
||||
" Tag: #C22032019
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -12,7 +25,11 @@ if exists("b:current_syntax")
|
||||
endif
|
||||
|
||||
" MOST important - else most of the keywords wont work!
|
||||
setlocal isk=@,48-57,-
|
||||
setlocal isk=@,48-57,-,_
|
||||
|
||||
if !exists('g:cobol_inline_comment')
|
||||
let g:cobol_inline_comment=0
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
@@ -29,7 +46,10 @@ syn match cobolComment "[/*C].*$" contained
|
||||
syn match cobolCompiler "$.*$" contained
|
||||
syn match cobolLine ".*$" contained contains=cobolReserved,@cobolLine
|
||||
|
||||
syn match cobolDivision "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName
|
||||
"#C22032019: Fix for PROCEDURE DIVISION USING highlighting, removed . from the
|
||||
"end of the regex
|
||||
"syn match cobolDivision \"[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName
|
||||
syn match cobolDivision "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION" contained contains=cobolDivisionName
|
||||
syn keyword cobolDivisionName contained IDENTIFICATION ENVIRONMENT DATA PROCEDURE
|
||||
syn match cobolSection "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+SECTION\."he=e-1 contained contains=cobolSectionName
|
||||
syn keyword cobolSectionName contained CONFIGURATION INPUT-OUTPUT FILE WORKING-STORAGE LOCAL-STORAGE LINKAGE
|
||||
@@ -38,10 +58,12 @@ syn keyword cobolParagraphName contained PROGRAM-ID SOURCE-COMPUTER OBJECT-COMP
|
||||
|
||||
|
||||
"syn match cobolKeys "^\a\{1,6\}" contains=cobolReserved
|
||||
"#C22032019: Remove BY, REPLACING, PROGRAM, TO, IN from 'keyword' group and add
|
||||
"to 'match' group or other 'keyword' group
|
||||
syn keyword cobolReserved contained ACCEPT ACCESS ADD ADDRESS ADVANCING AFTER ALPHABET ALPHABETIC
|
||||
syn keyword cobolReserved contained ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALS
|
||||
syn keyword cobolReserved contained ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR BEFORE BINARY
|
||||
syn keyword cobolReserved contained BLANK BLOCK BOTTOM BY CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
|
||||
syn keyword cobolReserved contained BLANK BLOCK BOTTOM CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
|
||||
syn keyword cobolReserved contained CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON
|
||||
syn keyword cobolReserved contained COMMUNICATIONS COMPUTATIONAL COMPUTE CONTENT CONTINUE
|
||||
syn keyword cobolReserved contained CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATE DATE-COMPILED
|
||||
@@ -55,52 +77,79 @@ syn keyword cobolReserved contained END-REWRITE END-SEARCH END-START END-STRING
|
||||
syn keyword cobolReserved contained END-WRITE EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT
|
||||
syn keyword cobolReserved contained EXTEND EXTERNAL FALSE FD FILLER FINAL FIRST FOOTING FOR FROM
|
||||
syn keyword cobolReserved contained GENERATE GIVING GLOBAL GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES I-O
|
||||
syn keyword cobolReserved contained IN INDEX INDEXED INDICATE INITIAL INITIALIZE
|
||||
syn keyword cobolReserved contained INDEX INDEXED INDICATE INITIAL INITIALIZE
|
||||
syn keyword cobolReserved contained INITIATE INPUT INSPECT INSTALLATION INTO IS JUST
|
||||
syn keyword cobolReserved contained JUSTIFIED KEY LABEL LAST LEADING LEFT LENGTH LOCK MEMORY
|
||||
syn keyword cobolReserved contained MERGE MESSAGE MODE MODULES MOVE MULTIPLE MULTIPLY NATIVE NEGATIVE NEXT NO NOT
|
||||
syn keyword cobolReserved contained NUMBER NUMERIC NUMERIC-EDITED OCCURS OF OFF OMITTED ON OPEN
|
||||
syn keyword cobolReserved contained OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW PACKED-DECIMAL PADDING
|
||||
syn keyword cobolReserved contained PAGE PAGE-COUNTER PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE
|
||||
syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PROGRAM PURGE QUEUE QUOTES
|
||||
syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PURGE QUEUE QUOTES
|
||||
syn keyword cobolReserved contained RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES
|
||||
syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPLACING REPORT REPORTING
|
||||
syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPORT REPORTING
|
||||
syn keyword cobolReserved contained REPORTS RERUN RESERVE RESET RETURN RETURNING REVERSED REWIND REWRITE RF RH
|
||||
syn keyword cobolReserved contained RIGHT ROUNDED RUN SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMITED
|
||||
syn keyword cobolReserved contained SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT
|
||||
syn keyword cobolReserved contained SORT-MERGE SOURCE STANDARD
|
||||
syn keyword cobolReserved contained STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2
|
||||
syn keyword cobolReserved contained SUB-QUEUE-3 SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED TABLE TALLYING
|
||||
syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TO TOP
|
||||
syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TOP
|
||||
syn keyword cobolReserved contained TRAILING TRUE TYPE UNIT UNSTRING UNTIL UP UPON USAGE USE USING VALUE VALUES
|
||||
syn keyword cobolReserved contained VARYING WHEN WITH WORDS WRITE
|
||||
syn match cobolReserved contained "\<CONTAINS\>"
|
||||
syn match cobolReserved contained "\<\(IF\|INVALID\|END\|EOP\)\>"
|
||||
syn match cobolReserved contained "\<ALL\>"
|
||||
" #C22032019: Add BY as match instead of keyword: BY not followed by ==
|
||||
syn match cobolReserved contained "\<BY\>\s\+\(==\)\@!"
|
||||
syn match cobolReserved contained "\<TO\>"
|
||||
|
||||
syn cluster cobolLine add=cobolConstant,cobolNumber,cobolPic
|
||||
syn keyword cobolConstant SPACE SPACES NULL ZERO ZEROES ZEROS LOW-VALUE LOW-VALUES
|
||||
|
||||
" #C22032019: Fix for many pic clauses
|
||||
syn match cobolNumber "\<-\=\d*\.\=\d\+\>" contained
|
||||
syn match cobolPic "\<S*9\+\>" contained
|
||||
" syn match cobolPic \"\<S*9\+\>" contained
|
||||
syn match cobolPic "\<S*9\+V*9*\>" contained
|
||||
syn match cobolPic "\<$*\.\=9\+\>" contained
|
||||
syn match cobolPic "\<Z*\.\=9\+\>" contained
|
||||
syn match cobolPic "\<V9\+\>" contained
|
||||
syn match cobolPic "\<9\+V\>" contained
|
||||
syn match cobolPic "\<-\+[Z9]\+\>" contained
|
||||
syn match cobolTodo "todo" contained containedin=cobolComment
|
||||
" syn match cobolPic \"\<-\+[Z9]\+\>" contained
|
||||
syn match cobolPic "\<-*[Z9]\+-*\>" contained
|
||||
" #C22032019: Add Z,X and A to cobolPic
|
||||
syn match cobolPic "\<[ZXA]\+\>" contained
|
||||
syn match cobolTodo "todo" contained containedin=cobolInlineComment,cobolComment
|
||||
|
||||
" For MicroFocus or other inline comments, include this line.
|
||||
" syn region cobolComment start="*>" end="$" contains=cobolTodo,cobolMarker
|
||||
if g:cobol_inline_comment == 1
|
||||
syn region cobolInlineComment start="*>" end="$" contains=cobolTodo,cobolMarker
|
||||
syn cluster cobolLine add=cobolInlineComment
|
||||
endif
|
||||
|
||||
syn match cobolBadLine "[^ D\*$/-].*" contained
|
||||
|
||||
" If comment mark somehow gets into column past Column 7.
|
||||
syn match cobolBadLine "\s\+\*.*" contained
|
||||
if g:cobol_inline_comment == 1
|
||||
" #C22032019: It is a bad line only if * is not followed by > when inline
|
||||
" comments enabled
|
||||
syn match cobolBadLine "\s\+\*\(>\)\@!.*" contained
|
||||
else
|
||||
syn match cobolBadLine "\s\+\*.*" contained
|
||||
endif
|
||||
syn cluster cobolStart add=cobolBadLine
|
||||
|
||||
|
||||
syn keyword cobolGoTo GO GOTO
|
||||
syn keyword cobolCopy COPY
|
||||
" #C22032019: Different highlighting for GO TO statements
|
||||
" syn keyword cobolGoTo GO GOTO
|
||||
syn keyword cobolGoTo GOTO
|
||||
syn match cobolGoTo /\<GO\>\s\+\<TO\>/
|
||||
syn match cobolGoToPara /\<GO\>\s\+\<TO\>\s\+[A-Z0-9-]\+/ contains=cobolGoTo
|
||||
" #C22032019: Highlight copybook name and location in using different group
|
||||
" syn keyword cobolCopy COPY
|
||||
syn match cobolCopy "\<COPY\>\|\<IN\>"
|
||||
syn match cobolCopy "\<REPLACING\>\s\+\(==\)\@="
|
||||
syn match cobolCopy "\<BY\>\s\+\(==\)\@="
|
||||
syn match cobolCopyName "\<COPY\>\s\+[A-Z0-9]\+\(\s\+\<IN\>\s\+[A-Z0-9]\+\)\?" contains=cobolCopy
|
||||
syn cluster cobolLine add=cobolGoToPara,cobolCopyName
|
||||
|
||||
" cobolBAD: things that are BAD NEWS!
|
||||
syn keyword cobolBAD ALTER ENTER RENAMES
|
||||
@@ -109,8 +158,14 @@ syn cluster cobolLine add=cobolGoTo,cobolCopy,cobolBAD,cobolWatch,cobolEXE
|
||||
|
||||
" cobolWatch: things that are important when trying to understand a program
|
||||
syn keyword cobolWatch OCCURS DEPENDING VARYING BINARY COMP REDEFINES
|
||||
syn keyword cobolWatch REPLACING RUN
|
||||
syn match cobolWatch "COMP-[123456XN]"
|
||||
" #C22032019: Remove REPLACING from cobolWatch 'keyword' group and add to cobolCopy &
|
||||
" cobolWatch 'match' group
|
||||
" syn keyword cobolWatch REPLACING RUN
|
||||
syn keyword cobolWatch RUN PROGRAM
|
||||
syn match cobolWatch contained "\<REPLACING\>\s\+\(==\)\@!"
|
||||
" #C22032019: Look for word starting with COMP
|
||||
" syn match cobolWatch \"COMP-[123456XN]"
|
||||
syn match cobolWatch "\<COMP-[123456XN]"
|
||||
|
||||
syn keyword cobolEXECs EXEC END-EXEC
|
||||
|
||||
@@ -127,9 +182,15 @@ syn match cobolWatch "88 " contained nextgroup=cobolLine
|
||||
"syn match cobolBadID "\k\+-\($\|[^-A-Z0-9]\)" contained
|
||||
|
||||
syn cluster cobolLine add=cobolCALLs,cobolString,cobolCondFlow
|
||||
syn keyword cobolCALLs CALL END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE
|
||||
syn match cobolCALLs "EXIT \+PROGRAM"
|
||||
" #C22032019: Changes for cobolCALLs group to include thru
|
||||
" syn keyword cobolCALLs CALL END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE
|
||||
syn keyword cobolCALLs END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE THRU
|
||||
" #C22032019: Highlight called program
|
||||
" syn match cobolCALLs \"EXIT \+PROGRAM"
|
||||
syn match cobolCALLs "\<CALL\>"
|
||||
syn match cobolCALLProg /\<CALL\>\s\+"\{0,1\}[A-Z0-9]\+"\{0,1\}/ contains=cobolCALLs
|
||||
syn match cobolExtras /\<VALUE \+\d\+\./hs=s+6,he=e-1
|
||||
syn cluster cobolLine add=cobolCALLProg
|
||||
|
||||
syn match cobolString /"[^"]*\("\|$\)/
|
||||
syn match cobolString /'[^']*\('\|$\)/
|
||||
@@ -138,7 +199,7 @@ syn match cobolString /'[^']*\('\|$\)/
|
||||
syn match cobolIndicator "\%7c[D-]" contained
|
||||
|
||||
if exists("cobol_legacy_code")
|
||||
syn region cobolCondFlow contains=ALLBUT,cobolLine,cobolBadLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
|
||||
syn region cobolCondFlow contains=ALLBUT,cobolLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
|
||||
endif
|
||||
|
||||
" many legacy sources have junk in columns 1-6: must be before others
|
||||
@@ -146,7 +207,9 @@ endif
|
||||
if exists("cobol_legacy_code")
|
||||
syn match cobolBadLine "\%73c.*" containedin=ALLBUT,cobolComment
|
||||
else
|
||||
syn match cobolBadLine "\%73c.*" containedin=ALL
|
||||
" #C22032019: Use comment highlighting for bad lines
|
||||
" syn match cobolBadLine \"\%73c.*" containedin=ALL
|
||||
syn match cobolBadLine "\%73c.*" containedin=ALL,cobolInlineComment,cobolComment
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
@@ -160,31 +223,36 @@ if exists("g:cobol_legacy_code")
|
||||
else
|
||||
hi def link cobolMarker Error
|
||||
endif
|
||||
hi def link cobolCALLs Function
|
||||
hi def link cobolComment Comment
|
||||
hi def link cobolKeys Comment
|
||||
hi def link cobolAreaB Special
|
||||
hi def link cobolCompiler PreProc
|
||||
hi def link cobolCondFlow Special
|
||||
hi def link cobolCopy PreProc
|
||||
hi def link cobolDeclA cobolDecl
|
||||
hi def link cobolDecl Type
|
||||
hi def link cobolExtras Special
|
||||
hi def link cobolGoTo Special
|
||||
hi def link cobolConstant Constant
|
||||
hi def link cobolNumber Constant
|
||||
hi def link cobolPic Constant
|
||||
hi def link cobolReserved Statement
|
||||
hi def link cobolDivision Label
|
||||
hi def link cobolSection Label
|
||||
hi def link cobolParagraph Label
|
||||
hi def link cobolDivisionName Keyword
|
||||
hi def link cobolSectionName Keyword
|
||||
hi def link cobolParagraphName Keyword
|
||||
hi def link cobolString Constant
|
||||
hi def link cobolTodo Todo
|
||||
hi def link cobolWatch Special
|
||||
hi def link cobolIndicator Special
|
||||
hi def link cobolCALLs Function
|
||||
hi def link cobolCALLProg Special
|
||||
hi def link cobolComment Comment
|
||||
hi def link cobolInlineComment Comment
|
||||
hi def link cobolKeys Comment
|
||||
hi def link cobolAreaB Special
|
||||
hi def link cobolCompiler PreProc
|
||||
hi def link cobolCondFlow Special
|
||||
hi def link cobolCopy PreProc
|
||||
hi def link cobolCopyName Special
|
||||
hi def link cobolDeclA cobolDecl
|
||||
hi def link cobolDecl Type
|
||||
hi def link cobolExtras Special
|
||||
hi def link cobolGoTo Special
|
||||
hi def link cobolGoToPara Function
|
||||
hi def link cobolConstant Constant
|
||||
hi def link cobolNumber Constant
|
||||
hi def link cobolPic Constant
|
||||
hi def link cobolReserved Statement
|
||||
hi def link cobolDivision Label
|
||||
hi def link cobolSection Label
|
||||
hi def link cobolParagraph Label
|
||||
hi def link cobolDivisionName Keyword
|
||||
hi def link cobolSectionName Keyword
|
||||
hi def link cobolParagraphName Keyword
|
||||
hi def link cobolString Constant
|
||||
hi def link cobolTodo Todo
|
||||
hi def link cobolWatch Special
|
||||
hi def link cobolIndicator Special
|
||||
hi def link cobolStart Comment
|
||||
|
||||
|
||||
let b:current_syntax = "cobol"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: DCL (Digital Command Language - vms)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 11
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 12
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
@@ -10,10 +10,10 @@ if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !has("patch-7.4.1142")
|
||||
setlocal iskeyword=$,@,48-57,_
|
||||
else
|
||||
if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
|
||||
syn iskeyword $,@,48-57,_
|
||||
else
|
||||
setlocal iskeyword=$,@,48-57,_
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
|
||||
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
|
||||
" Last Change: 2018 May 31
|
||||
" Included patch from Jay Sitter to add WAI-ARIA htmlArg keywords
|
||||
" Last Change: 2018 Apr 7
|
||||
" Included patch from Jorge Maldonado Ventura to fix rendering
|
||||
"
|
||||
|
||||
" Please check :help html.vim for some comments and a description of the options
|
||||
@@ -159,47 +159,47 @@ if !exists("html_no_rendering")
|
||||
" rendering
|
||||
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
|
||||
|
||||
syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
|
||||
syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop
|
||||
syn region htmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@htmlTop
|
||||
|
||||
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline
|
||||
syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline
|
||||
syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
|
||||
syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
|
||||
syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
syn region htmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
syn region htmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
|
||||
syn region htmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
|
||||
syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
|
||||
syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
|
||||
syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic
|
||||
syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic
|
||||
syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold
|
||||
syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold
|
||||
syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
|
||||
syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
|
||||
syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
|
||||
syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
|
||||
syn region htmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
|
||||
syn region htmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
|
||||
syn region htmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
|
||||
syn region htmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
|
||||
syn region htmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
|
||||
syn region htmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
|
||||
|
||||
syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
|
||||
syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop
|
||||
syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline
|
||||
syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline
|
||||
syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop
|
||||
syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold
|
||||
syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
|
||||
syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
|
||||
syn region htmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
|
||||
syn region htmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
|
||||
syn region htmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
|
||||
syn region htmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlItalicUnderlineBold
|
||||
syn region htmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
|
||||
|
||||
syn match htmlLeadingSpace "^\s\+" contained
|
||||
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
|
||||
syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop
|
||||
syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
|
||||
syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
|
||||
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
|
||||
syn region htmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@htmlTop
|
||||
syn region htmlHead start="<head\>" end="</head\_s*>"me=s-1 end="<body\>"me=s-1 end="<h[1-6]\>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
|
||||
syn region htmlTitle start="<title\>" end="</title\_s*>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
|
||||
endif
|
||||
|
||||
syn keyword htmlTagName contained noscript
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Lisp
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Feb 15, 2018
|
||||
" Version: 27
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 28
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
|
||||
"
|
||||
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
|
||||
@@ -16,10 +16,10 @@ endif
|
||||
|
||||
if exists("g:lisp_isk")
|
||||
exe "setl isk=".g:lisp_isk
|
||||
elseif !has("patch-7.4.1142")
|
||||
setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
|
||||
else
|
||||
elseif (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
|
||||
syn iskeyword 38,42,43,45,47-58,60-62,64-90,97-122,_
|
||||
else
|
||||
setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
|
||||
endif
|
||||
|
||||
if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name>
|
||||
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" URL: https://github.com/vim/vim/syntax/make.vim
|
||||
" Last Change: 2019 Feb 08
|
||||
" Last Change: 2019 Apr 02
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -19,7 +19,7 @@ syn match makeSpecial "^\s*[@+-]\+"
|
||||
syn match makeNextLine "\\\n\s*"
|
||||
|
||||
" some directives
|
||||
syn match makePreCondit "^ *\(ifeq\>\|else\>\|endif\>\|ifneq\>\|ifdef\>\|ifndef\>\)"
|
||||
syn match makePreCondit "^ *\(ifn\=\(eq\|def\)\>\|else\(\s\+ifn\=\(eq\|def\)\)\=\>\|endif\>\)"
|
||||
syn match makeInclude "^ *[-s]\=include"
|
||||
syn match makeStatement "^ *vpath"
|
||||
syn match makeExport "^ *\(export\|unexport\)\>"
|
||||
@@ -32,8 +32,8 @@ syn region makeDefine start="^\s*define\s" end="^\s*endef\s*\(#.*\)\?$" contains
|
||||
|
||||
" Microsoft Makefile specials
|
||||
syn case ignore
|
||||
syn match makeInclude "^! *include"
|
||||
syn match makePreCondit "! *\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|elseif\|else if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
|
||||
syn match makeInclude "^!\s*include"
|
||||
syn match makePreCondit "^!\s*\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|else\s*if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
|
||||
syn case match
|
||||
|
||||
" identifiers
|
||||
@@ -101,17 +101,17 @@ syn sync match makeCommandSync groupthere makeCommands "^[A-Za-z0-9_./$()%-][A-Z
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link makeNextLine makeSpecial
|
||||
hi def link makeNextLine makeSpecial
|
||||
hi def link makeCmdNextLine makeSpecial
|
||||
hi def link makeSpecTarget Statement
|
||||
hi def link makeSpecTarget Statement
|
||||
if !exists("make_no_commands")
|
||||
hi def link makeCommands Number
|
||||
hi def link makeCommands Number
|
||||
endif
|
||||
hi def link makeImplicit Function
|
||||
hi def link makeImplicit Function
|
||||
hi def link makeTarget Function
|
||||
hi def link makeInclude Include
|
||||
hi def link makePreCondit PreCondit
|
||||
hi def link makeStatement Statement
|
||||
hi def link makePreCondit PreCondit
|
||||
hi def link makeStatement Statement
|
||||
hi def link makeIdent Identifier
|
||||
hi def link makeSpecial Special
|
||||
hi def link makeComment Comment
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Maple V (based on release 4)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 15
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 16
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
|
||||
"
|
||||
" Package Function Selection: {{{1
|
||||
@@ -27,10 +27,10 @@ if exists("b:current_syntax")
|
||||
endif
|
||||
|
||||
" Iskeyword Effects: {{{1
|
||||
if !has("patch-7.4.1142")
|
||||
setl isk=$,48-57,_,a-z,@-Z
|
||||
else
|
||||
if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
|
||||
syn iskeyword $,48-57,_,a-z,@-Z
|
||||
else
|
||||
setl isk=$,48-57,_,a-z,@-Z
|
||||
endif
|
||||
|
||||
" Package Selection: {{{1
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||
" Last Change: Nov 23, 2018
|
||||
" Version: 185
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 186
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||
" For options and settings, please use: :help ft-sh-syntax
|
||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
||||
@@ -89,7 +89,7 @@ if g:sh_fold_enabled && &fdm == "manual"
|
||||
endif
|
||||
|
||||
" set up the syntax-highlighting iskeyword
|
||||
if has("patch-7.4.1142")
|
||||
if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
|
||||
if exists("b:is_bash")
|
||||
exe "syn iskeyword ".&iskeyword.",-,:"
|
||||
else
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: TeX
|
||||
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
|
||||
" Last Change: Nov 02, 2018
|
||||
" Version: 111
|
||||
" Last Change: Apr 01, 2019
|
||||
" Version: 113
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
||||
"
|
||||
" Notes: {{{1
|
||||
@@ -127,7 +127,7 @@ elseif b:tex_stylish
|
||||
else
|
||||
let b:tex_isk="48-57,a-z,A-Z,192-255"
|
||||
endif
|
||||
if v:version > 704 || (v:version == 704 && has("patch-7.4.1142"))
|
||||
if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
|
||||
exe "syn iskeyword ".b:tex_isk
|
||||
else
|
||||
exe "setl isk=".b:tex_isk
|
||||
@@ -155,9 +155,9 @@ if !s:tex_no_error
|
||||
syn cluster texCmdGroup add=texMathError
|
||||
endif
|
||||
syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
|
||||
syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texNoSpell
|
||||
syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texEmphStyle,texNoSpell
|
||||
syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell
|
||||
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texItalBoldStyle,texNoSpell
|
||||
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texEmphStyle,texItalBoldStyle,texNoSpell
|
||||
if !s:tex_nospell
|
||||
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
||||
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
||||
@@ -301,6 +301,7 @@ syn match texTypeStyle "\\tt\>"
|
||||
if s:tex_conceal !~# 'b'
|
||||
syn match texTypeStyle "\\textbf\>"
|
||||
syn match texTypeStyle "\\textit\>"
|
||||
syn match texTypeStyle "\\emph\>"
|
||||
endif
|
||||
syn match texTypeStyle "\\textmd\>"
|
||||
syn match texTypeStyle "\\textrm\>"
|
||||
@@ -309,7 +310,6 @@ syn match texTypeStyle "\\textsf\>"
|
||||
syn match texTypeStyle "\\textsl\>"
|
||||
syn match texTypeStyle "\\texttt\>"
|
||||
syn match texTypeStyle "\\textup\>"
|
||||
syn match texTypeStyle "\\emph\>"
|
||||
|
||||
syn match texTypeStyle "\\mathbb\>"
|
||||
syn match texTypeStyle "\\mathbf\>"
|
||||
@@ -385,11 +385,13 @@ if s:tex_fast =~# 'b'
|
||||
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
||||
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
||||
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\emph\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
||||
else
|
||||
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup
|
||||
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
||||
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
||||
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\emph\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -790,6 +792,8 @@ if has("conceal") && &enc == 'utf-8'
|
||||
\ ['propto' , '∝'],
|
||||
\ ['rceil' , '⌉'],
|
||||
\ ['Re' , 'ℜ'],
|
||||
\ ['quad' , ' '],
|
||||
\ ['qquad' , ' '],
|
||||
\ ['rfloor' , '⌋'],
|
||||
\ ['right)' , ')'],
|
||||
\ ['right]' , ']'],
|
||||
@@ -1228,6 +1232,7 @@ if !exists("skip_tex_syntax_inits")
|
||||
hi texItalStyle gui=italic cterm=italic
|
||||
hi texBoldItalStyle gui=bold,italic cterm=bold,italic
|
||||
hi texItalBoldStyle gui=bold,italic cterm=bold,italic
|
||||
hi def link texEmphStyle texItalStyle
|
||||
hi def link texCite texRefZone
|
||||
hi def link texDefCmd texDef
|
||||
hi def link texDefName texDef
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.0 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Sep 26, 2018
|
||||
" Version: 8.0-20
|
||||
" Last Change: Mar 08, 2019
|
||||
" Version: 8.0-21
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@@ -217,7 +217,7 @@ syn keyword vimAugroupKey contained aug[roup]
|
||||
" =========
|
||||
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
|
||||
syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\>\|\<isnot\>\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
|
||||
syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Yacc
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 15
|
||||
" Last Change: Mar 25, 2019
|
||||
" Version: 16
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_YACC
|
||||
"
|
||||
" Options: {{{1
|
||||
@@ -43,12 +43,12 @@ syn cluster yaccRulesCluster contains=yaccNonterminal,yaccString,yaccComment
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Yacc Sections: {{{1
|
||||
SynFold syn region yaccInit start='.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty contained
|
||||
SynFold syn region yaccInit2 start='\%^.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty
|
||||
SynFold syn region yaccHeader2 matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty contained
|
||||
SynFold syn region yaccHeader matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty
|
||||
SynFold syn region yaccRules matchgroup=yaccSectionSep start='^%%$' end='^%%$'me=e-2,re=e-2 contains=@yaccRulesCluster nextgroup=yaccEndCode skipwhite skipempty contained
|
||||
SynFold syn region yaccEndCode matchgroup=yaccSectionSep start='^%%$' end='\%$' contains=@yaccCode contained
|
||||
SynFold syn region yaccInit start='.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%\ze\(\s*/[*/].*\)\=$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty contained
|
||||
SynFold syn region yaccInit2 start='\%^.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%\ze\(\s*/[*/].*\)\=$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty
|
||||
SynFold syn region yaccHeader2 matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty contained
|
||||
SynFold syn region yaccHeader matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty
|
||||
SynFold syn region yaccRules matchgroup=yaccSectionSep start='^%%\ze\(\s*/[*/].*\)\=$' end='^%%\ze\(\s*/[*/].*\)\=$'me=e-2,re=e-2 contains=@yaccRulesCluster nextgroup=yaccEndCode skipwhite skipempty contained
|
||||
SynFold syn region yaccEndCode matchgroup=yaccSectionSep start='^%%\ze\(\s*/[*/].*\)\=$' end='\%$' contains=@yaccCode contained
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Yacc Commands: {{{1
|
||||
@@ -72,6 +72,7 @@ syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt contained
|
||||
|
||||
SynFold syn region yaccNonterminal start="^\s*\a\w*\ze\_s*\(/\*\_.\{-}\*/\)\=\_s*:" matchgroup=yaccDelim end=";" matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=yaccAction,yaccDelim,yaccString,yaccComment contained
|
||||
syn region yaccComment start="/\*" end="\*/"
|
||||
syn region yaccComment start="//" end="$"
|
||||
syn match yaccString "'[^']*'" contained
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim tutor support file
|
||||
" Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
|
||||
" Maintainer: Bram Moolenaar
|
||||
" Last Change: 2018 Apr 11
|
||||
" Last Change: 2019 Mar 30
|
||||
|
||||
" This Vim script is used for detecting if a translation of the
|
||||
" tutor file exist, i.e., a tutor.xx file, where xx is the language.
|
||||
@@ -22,6 +22,12 @@ else
|
||||
let s:lang = v:lang
|
||||
elseif $LC_ALL =~ '\a\a'
|
||||
let s:lang = $LC_ALL
|
||||
elseif $LC_MESSAGES =~ '\a\a' || $LC_MESSAGES ==# "C"
|
||||
" LC_MESSAGES=C can be used to explicitly ask for English messages while
|
||||
" keeping LANG non-English; don't set s:lang then.
|
||||
if $LC_MESSAGES =~ '\a\a'
|
||||
let s:lang = $LC_MESSAGES
|
||||
endif
|
||||
elseif $LANG =~ '\a\a'
|
||||
let s:lang = $LANG
|
||||
endif
|
||||
|
||||
@@ -1,10 +1,21 @@
|
||||
# The vim.desktop file is generated by src/po/Makefile, do NOT edit.
|
||||
# Edit the src/po/vim.desktop.in file instead.
|
||||
[Desktop Entry]
|
||||
# Translators: This is the Application Name used in the Vim desktop file
|
||||
Name[de]=Vim
|
||||
Name=Vim
|
||||
# Translators: This is the Generic Application Name used in the Vim desktop file
|
||||
GenericName[de]=Texteditor
|
||||
GenericName=Text Editor
|
||||
# Translators: This is the comment used in the Vim desktop file
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment=Edit text files
|
||||
# The translations should come from the po file. Leave them here for now, they will
|
||||
# be overwritten by the po file when generating the desktop.file.
|
||||
GenericName[da]=Teksteditor
|
||||
GenericName[de]=Texteditor
|
||||
GenericName[pl]=Edytor tekstu
|
||||
Comment=Edit text files
|
||||
GenericName[is]=Ritvinnsluforrit
|
||||
Comment[af]=Redigeer tekslêers
|
||||
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
|
||||
Comment[ar]=حرّر ملفات نصية
|
||||
@@ -34,6 +45,7 @@ Comment[hi]=पाठ फ़ाइलें संपादित करें
|
||||
Comment[hr]=Uređivanje tekstualne datoteke
|
||||
Comment[hu]=Szövegfájlok szerkesztése
|
||||
Comment[id]=Edit file teks
|
||||
Comment[is]=Vinna með textaskrár
|
||||
Comment[it]=Modifica file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
|
||||
@@ -76,7 +88,11 @@ TryExec=vim
|
||||
Exec=vim %F
|
||||
Terminal=true
|
||||
Type=Application
|
||||
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
|
||||
Keywords[de]=Text;Editor;
|
||||
Keywords=Text;editor;
|
||||
# Translators: This is the Icon file name. Do NOT translate
|
||||
Icon[de]=gvim
|
||||
Icon=gvim
|
||||
Categories=Utility;TextEditor;
|
||||
StartupNotify=false
|
||||
|
||||
@@ -25,6 +25,8 @@ PLATFORM = $(TARGET_CPU)
|
||||
! ifdef PLATFORM
|
||||
! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
|
||||
CPU = AMD64
|
||||
! elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
|
||||
CPU = ARM64
|
||||
! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
|
||||
! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
|
||||
! endif
|
||||
@@ -56,11 +58,17 @@ SUBSYSTEM = console
|
||||
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
|
||||
!endif
|
||||
|
||||
!if "$(CPU)" == "AMD64" || "$(CPU)" == "ARM64"
|
||||
OFFSET = 0x11C000000
|
||||
!else
|
||||
OFFSET = 0x1C000000
|
||||
!endif
|
||||
|
||||
all: gvimext.dll
|
||||
|
||||
gvimext.dll: gvimext.obj \
|
||||
gvimext.res
|
||||
$(link) $(lflags) -dll -def:gvimext.def -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
|
||||
$(link) $(lflags) -dll -def:gvimext.def -base:$(OFFSET) -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
|
||||
if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2
|
||||
|
||||
gvimext.obj: gvimext.h
|
||||
|
||||
@@ -174,6 +174,15 @@ The following Visual C++ team blog can serve as a reference page:
|
||||
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
|
||||
|
||||
|
||||
Cross compile support for Windows on ARM64
|
||||
------------------------------------------
|
||||
|
||||
This depends on VS2017 with the optional ARM64 compiler and SDK
|
||||
installed. Use "vcvarsall.bat x64_arm64" as the build environment.
|
||||
|
||||
The ARM64 support was provided by Leendert van Doorn.
|
||||
|
||||
|
||||
OLDER VERSIONS
|
||||
|
||||
The minimal supported version is Windows XP. Building with older compilers
|
||||
|
||||
@@ -72,7 +72,6 @@
|
||||
# 3 for 386, 4 for 486, 5 for pentium, 6 for pentium pro.
|
||||
# USEDLL no or yes: set to yes to use the Runtime library DLL (no)
|
||||
# For USEDLL=yes the cc3250.dll is required to run Vim.
|
||||
# VIMDLL no or yes: create vim32.dll, and stub (g)vim.exe (no)
|
||||
# ALIGN 1, 2 or 4: Alignment to use (4 for Win32)
|
||||
# FASTCALL no or yes: set to yes to use register-based function protocol (yes)
|
||||
# OPTIMIZE SPACE, SPEED, or MAXSPEED: type of optimization (MAXSPEED)
|
||||
@@ -187,9 +186,6 @@ HEADERS = -H -H=vim.csm -Hc
|
||||
USEDLL = no
|
||||
!endif
|
||||
|
||||
### VIMDLL: yes for a DLL version of VIM (NOT RECOMMENDED), no otherwise
|
||||
#VIMDLL = yes
|
||||
|
||||
### ALIGN: alignment you desire: (1,2 or 4: s/b 4 for Win32)
|
||||
!if ("$(ALIGN)"=="")
|
||||
ALIGN = 4
|
||||
@@ -411,12 +407,7 @@ TARGET = gvimd.exe
|
||||
!else
|
||||
TARGET = gvim.exe
|
||||
!endif
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
EXETYPE=-WD
|
||||
DEFINES = $(DEFINES) -DVIMDLL
|
||||
!else
|
||||
EXETYPE=-W
|
||||
!endif
|
||||
STARTUPOBJ = c0w32.obj
|
||||
LINK2 = -aa
|
||||
RESFILE = vim.res
|
||||
@@ -424,7 +415,6 @@ RESFILE = vim.res
|
||||
!undef NETBEANS
|
||||
!undef CHANNEL
|
||||
!undef XPM
|
||||
!undef VIMDLL
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
TARGET = vimd.exe
|
||||
!else
|
||||
@@ -515,13 +505,8 @@ CCARG = +$(OBJDIR)\bcc.cfg
|
||||
|
||||
vimmain = \
|
||||
$(OBJDIR)\os_w32exe.obj
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
vimwinmain = \
|
||||
$(OBJDIR)\os_w32dll.obj
|
||||
!else
|
||||
vimwinmain = \
|
||||
$(OBJDIR)\os_w32exe.obj
|
||||
!endif
|
||||
|
||||
vimobj = \
|
||||
$(OBJDIR)\arabic.obj \
|
||||
@@ -531,6 +516,7 @@ vimobj = \
|
||||
$(OBJDIR)\charset.obj \
|
||||
$(OBJDIR)\crypt.obj \
|
||||
$(OBJDIR)\crypt_zip.obj \
|
||||
$(OBJDIR)\debugger.obj \
|
||||
$(OBJDIR)\dict.obj \
|
||||
$(OBJDIR)\diff.obj \
|
||||
$(OBJDIR)\digraph.obj \
|
||||
@@ -549,6 +535,7 @@ vimobj = \
|
||||
$(OBJDIR)\hardcopy.obj \
|
||||
$(OBJDIR)\hashtab.obj \
|
||||
$(OBJDIR)\indent.obj \
|
||||
$(OBJDIR)\insexpand.obj \
|
||||
$(OBJDIR)\json.obj \
|
||||
$(OBJDIR)\list.obj \
|
||||
$(OBJDIR)\main.obj \
|
||||
@@ -638,17 +625,6 @@ vimobj = $(vimobj) \
|
||||
$(OBJDIR)\xpm_w32.obj
|
||||
!endif
|
||||
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
vimdllobj = $(vimobj)
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
DLLTARGET = vim32d.dll
|
||||
!else
|
||||
DLLTARGET = vim32.dll
|
||||
!endif
|
||||
!else
|
||||
DLLTARGET = joebob
|
||||
!endif
|
||||
|
||||
!if ("$(GUI)"=="yes")
|
||||
vimobj = $(vimobj) \
|
||||
$(vimwinmain) \
|
||||
@@ -670,9 +646,6 @@ MSG = $(MSG) OLE
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
MSG = $(MSG) USEDLL
|
||||
!endif
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
MSG = $(MSG) VIMDLL
|
||||
!endif
|
||||
!if ("$(FASTCALL)"=="yes")
|
||||
MSG = $(MSG) FASTCALL
|
||||
!endif
|
||||
@@ -747,9 +720,6 @@ MSG = $(MSG) Align=$(ALIGNARG)
|
||||
|
||||
!message $(MSG)
|
||||
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
TARGETS = $(DLLTARGET)
|
||||
!endif
|
||||
TARGETS = $(TARGETS) $(TARGET)
|
||||
|
||||
# Targets:
|
||||
@@ -832,60 +802,12 @@ clean:
|
||||
$(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
|
||||
cd ..
|
||||
|
||||
$(DLLTARGET): $(OBJDIR) $(vimdllobj)
|
||||
$(LINK) @&&|
|
||||
$(LFLAGSDLL) +
|
||||
c0d32.obj +
|
||||
$(vimdllobj)
|
||||
$<,$*
|
||||
!if ("$(CODEGUARD)"=="yes")
|
||||
cg32.lib+
|
||||
!endif
|
||||
# $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE
|
||||
ole2w32.lib +
|
||||
import32.lib+
|
||||
!ifdef LUA
|
||||
$(LUA_LIB_FLAG)lua.lib+
|
||||
!endif
|
||||
!ifdef PERL
|
||||
$(PERL_LIB_FLAG)perl.lib+
|
||||
!endif
|
||||
!ifdef PYTHON
|
||||
$(PYTHON_LIB_FLAG)python.lib+
|
||||
!endif
|
||||
!ifdef PYTHON3
|
||||
$(PYTHON3_LIB_FLAG)python3.lib+
|
||||
!endif
|
||||
!ifdef RUBY
|
||||
$(RUBY_LIB_FLAG)ruby.lib+
|
||||
!endif
|
||||
!ifdef TCL
|
||||
$(TCL_LIB_FLAG)tcl.lib+
|
||||
!endif
|
||||
!ifdef XPM
|
||||
xpm.lib+
|
||||
!endif
|
||||
!if ("$(USEDLL)"=="yes")
|
||||
cw32i.lib
|
||||
!else
|
||||
cw32.lib
|
||||
!endif
|
||||
vim.def
|
||||
|
|
||||
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
$(TARGET): $(OBJDIR) $(DLLTARGET) $(vimmain) $(OBJDIR)\$(RESFILE)
|
||||
!else
|
||||
$(TARGET): $(OBJDIR) $(vimobj) $(OBJDIR)\$(RESFILE)
|
||||
!endif
|
||||
$(LINK) @&&|
|
||||
$(LFLAGS) +
|
||||
$(STARTUPOBJ) +
|
||||
!if ("$(VIMDLL)"=="yes")
|
||||
$(vimmain)
|
||||
!else
|
||||
$(vimobj)
|
||||
!endif
|
||||
$<,$*
|
||||
!if ("$(CODEGUARD)"=="yes")
|
||||
cg32.lib+
|
||||
|
||||
@@ -37,13 +37,12 @@
|
||||
#RUBY=/cygdribe/c/ruby
|
||||
|
||||
|
||||
# Use MinGW(-w64) cross compiler.
|
||||
# There are three MinGW packages in Cygwin:
|
||||
# 32-bit: mingw-gcc-g++ and mingw64-i686-gcc-g++
|
||||
# Use MinGW-w64 cross compiler.
|
||||
# There are two MinGW-w64 packages in Cygwin:
|
||||
# 32-bit: mingw64-i686-gcc-g++
|
||||
# 64-bit: mingw64-x86_64-gcc-g++
|
||||
# You may also need to set 'ARCH' in Make_cyg_ming.mak.
|
||||
CROSS_COMPILE = i686-pc-mingw32-
|
||||
#CROSS_COMPILE = i686-w64-mingw32-
|
||||
CROSS_COMPILE = i686-w64-mingw32-
|
||||
#CROSS_COMPILE = x86_64-w64-mingw32-
|
||||
|
||||
|
||||
|
||||
@@ -691,7 +691,7 @@ CFLAGS += -s
|
||||
endif
|
||||
|
||||
LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lnetapi32 -lversion
|
||||
GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
|
||||
GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o
|
||||
CUIOBJ = $(OUTDIR)/iscygpty.o
|
||||
OBJ = \
|
||||
$(OUTDIR)/arabic.o \
|
||||
@@ -703,6 +703,7 @@ OBJ = \
|
||||
$(OUTDIR)/charset.o \
|
||||
$(OUTDIR)/crypt.o \
|
||||
$(OUTDIR)/crypt_zip.o \
|
||||
$(OUTDIR)/debugger.o \
|
||||
$(OUTDIR)/dict.o \
|
||||
$(OUTDIR)/diff.o \
|
||||
$(OUTDIR)/digraph.o \
|
||||
@@ -721,6 +722,7 @@ OBJ = \
|
||||
$(OUTDIR)/hardcopy.o \
|
||||
$(OUTDIR)/hashtab.o \
|
||||
$(OUTDIR)/indent.o \
|
||||
$(OUTDIR)/insexpand.o \
|
||||
$(OUTDIR)/json.o \
|
||||
$(OUTDIR)/list.o \
|
||||
$(OUTDIR)/main.o \
|
||||
@@ -736,9 +738,9 @@ OBJ = \
|
||||
$(OUTDIR)/normal.o \
|
||||
$(OUTDIR)/ops.o \
|
||||
$(OUTDIR)/option.o \
|
||||
$(OUTDIR)/os_win32.o \
|
||||
$(OUTDIR)/os_mswin.o \
|
||||
$(OUTDIR)/winclip.o \
|
||||
$(OUTDIR)/os_w32exe.o \
|
||||
$(OUTDIR)/os_win32.o \
|
||||
$(OUTDIR)/pathdef.o \
|
||||
$(OUTDIR)/popupmnu.o \
|
||||
$(OUTDIR)/quickfix.o \
|
||||
@@ -758,6 +760,7 @@ OBJ = \
|
||||
$(OUTDIR)/userfunc.o \
|
||||
$(OUTDIR)/version.o \
|
||||
$(OUTDIR)/vimrc.o \
|
||||
$(OUTDIR)/winclip.o \
|
||||
$(OUTDIR)/window.o
|
||||
|
||||
ifdef PERL
|
||||
@@ -864,6 +867,8 @@ ifdef MZSCHEME
|
||||
MZSCHEME_SUFFIX = Z
|
||||
endif
|
||||
|
||||
LFLAGS += -municode
|
||||
|
||||
ifeq ($(GUI),yes)
|
||||
TARGET := gvim$(DEBUG_SUFFIX).exe
|
||||
DEFINES += $(DEF_GUI)
|
||||
@@ -1004,7 +1009,7 @@ endif
|
||||
$(MAKE) -C tee clean
|
||||
|
||||
###########################################################################
|
||||
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \
|
||||
INCL = vim.h alloc.h ascii.h ex_cmds.h feature.h globals.h \
|
||||
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
|
||||
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
|
||||
GUI_INCL = gui.h
|
||||
|
||||
@@ -33,6 +33,7 @@ SRC = \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
@@ -51,6 +52,7 @@ SRC = \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
@@ -92,6 +94,7 @@ OBJ = o/arabic.o \
|
||||
o/charset.o \
|
||||
o/crypt.o \
|
||||
o/crypt_zip.o \
|
||||
o/debugger.o \
|
||||
o/dict.o \
|
||||
o/diff.o \
|
||||
o/digraph.o \
|
||||
@@ -110,6 +113,7 @@ OBJ = o/arabic.o \
|
||||
o/hardcopy.o \
|
||||
o/hashtab.o \
|
||||
o/indent.o \
|
||||
o/insexpand.o \
|
||||
o/json.o \
|
||||
o/list.o \
|
||||
o/main.o \
|
||||
@@ -177,6 +181,8 @@ o/crypt.o: crypt.c $(SYMS)
|
||||
|
||||
o/crypt_zip.o: crypt_zip.c $(SYMS)
|
||||
|
||||
o/debugger.o: debugger.c $(SYMS)
|
||||
|
||||
o/dict.o: dict.c $(SYMS)
|
||||
|
||||
o/diff.o: diff.c $(SYMS)
|
||||
@@ -213,6 +219,8 @@ o/hashtab.o: hashtab.c $(SYMS)
|
||||
|
||||
o/indent.o: indent.c $(SYMS)
|
||||
|
||||
o/insexpand.o: insexpand.c $(SYMS)
|
||||
|
||||
o/json.o: json.c $(SYMS)
|
||||
|
||||
o/list.o: list.c $(SYMS)
|
||||
|
||||
@@ -217,6 +217,7 @@ LINK32_OBJS= \
|
||||
"$(INTDIR)/charset.obj" \
|
||||
"$(INTDIR)/crypt.obj" \
|
||||
"$(INTDIR)/crypt_zip.obj" \
|
||||
"$(INTDIR)/debugger.obj" \
|
||||
"$(INTDIR)/dict.obj" \
|
||||
"$(INTDIR)/diff.obj" \
|
||||
"$(INTDIR)/digraph.obj" \
|
||||
@@ -235,6 +236,7 @@ LINK32_OBJS= \
|
||||
"$(INTDIR)/hardcopy.obj" \
|
||||
"$(INTDIR)/hashtab.obj" \
|
||||
"$(INTDIR)/indent.obj" \
|
||||
"$(INTDIR)/insexpand.obj" \
|
||||
"$(INTDIR)/json.obj" \
|
||||
"$(INTDIR)/list.obj" \
|
||||
"$(INTDIR)/main.obj" \
|
||||
@@ -368,6 +370,10 @@ SOURCE=.\crypt_zip.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\debugger.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\dict.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -439,6 +445,10 @@ SOURCE=.\hashtab.c
|
||||
SOURCE=.\indent.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
#
|
||||
SOURCE=.\insexpand.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\gui.c
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ SRC = arabic.c \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
@@ -61,6 +62,7 @@ SRC = arabic.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
@@ -104,6 +106,7 @@ OBJ = obj/arabic.o \
|
||||
obj/charset.o \
|
||||
obj/crypt.o \
|
||||
obj/crypt_zip.o \
|
||||
obj/debugger.o \
|
||||
obj/dict.o \
|
||||
obj/diff.o \
|
||||
obj/digraph.o \
|
||||
@@ -122,6 +125,7 @@ OBJ = obj/arabic.o \
|
||||
obj/hardcopy.o \
|
||||
obj/hashtab.o \
|
||||
obj/indent.o \
|
||||
obj/insexpand.o \
|
||||
obj/json.o \
|
||||
obj/list.o \
|
||||
obj/main.o \
|
||||
@@ -163,6 +167,7 @@ PRO = proto/arabic.pro \
|
||||
proto/charset.pro \
|
||||
proto/crypt.pro \
|
||||
proto/crypt_zip.pro \
|
||||
proto/debugger.pro \
|
||||
proto/dict.pro \
|
||||
proto/diff.pro \
|
||||
proto/digraph.pro \
|
||||
@@ -181,6 +186,7 @@ PRO = proto/arabic.pro \
|
||||
proto/hardcopy.pro \
|
||||
proto/hashtab.pro \
|
||||
proto/indent.pro \
|
||||
proto/insexpand.pro \
|
||||
proto/json.pro \
|
||||
proto/list.pro \
|
||||
proto/main.pro \
|
||||
@@ -280,6 +286,9 @@ obj/crypt.o: crypt.c
|
||||
obj/crypt_zip.o: crypt_zip.c
|
||||
$(CCSYM) $@ crypt_zip.c
|
||||
|
||||
obj/debugger.o: debugger.c
|
||||
$(CCSYM) $@ debugger.c
|
||||
|
||||
obj/dict.o: dict.c
|
||||
$(CCSYM) $@ dict.c
|
||||
|
||||
@@ -335,6 +344,9 @@ obj/hashtab.o: hashtab.c
|
||||
obj/indent.o: indent.c
|
||||
$(CCSYM) $@ indent.c
|
||||
|
||||
obj/insexpand.o: insexpand.c
|
||||
$(CCSYM) $@ insexpand.c
|
||||
|
||||
obj/json.o: json.c
|
||||
$(CCSYM) $@ json.c
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ SRC = arabic.c \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
@@ -49,6 +50,7 @@ SRC = arabic.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
|
||||
@@ -240,6 +240,8 @@ PLATFORM = $(TARGET_CPU)
|
||||
! ifdef PLATFORM
|
||||
! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
|
||||
CPU = AMD64
|
||||
! elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
|
||||
CPU = ARM64
|
||||
! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
|
||||
! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
|
||||
! endif
|
||||
@@ -442,6 +444,8 @@ DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
|
||||
# on the architecture.
|
||||
!if "$(CPU)" == "AMD64"
|
||||
XPM = xpm\x64
|
||||
!elseif "$(CPU)" == "ARM64"
|
||||
XPM = xpm\arm64
|
||||
!elseif "$(CPU)" == "i386"
|
||||
XPM = xpm\x86
|
||||
!else
|
||||
@@ -693,7 +697,7 @@ CFLAGS = $(CFLAGS) /Zl /MTd
|
||||
!include Make_all.mak
|
||||
!include testdir\Make_all.mak
|
||||
|
||||
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \
|
||||
INCL = vim.h alloc.h ascii.h ex_cmds.h feature.h globals.h \
|
||||
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
|
||||
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
|
||||
|
||||
@@ -707,6 +711,7 @@ OBJ = \
|
||||
$(OUTDIR)\charset.obj \
|
||||
$(OUTDIR)\crypt.obj \
|
||||
$(OUTDIR)\crypt_zip.obj \
|
||||
$(OUTDIR)\debugger.obj \
|
||||
$(OUTDIR)\dict.obj \
|
||||
$(OUTDIR)\diff.obj \
|
||||
$(OUTDIR)\digraph.obj \
|
||||
@@ -725,6 +730,7 @@ OBJ = \
|
||||
$(OUTDIR)\hardcopy.obj \
|
||||
$(OUTDIR)\hashtab.obj \
|
||||
$(OUTDIR)\indent.obj \
|
||||
$(OUTDIR)\insexpand.obj \
|
||||
$(OUTDIR)\json.obj \
|
||||
$(OUTDIR)\list.obj \
|
||||
$(OUTDIR)\main.obj \
|
||||
@@ -741,7 +747,7 @@ OBJ = \
|
||||
$(OUTDIR)\ops.obj \
|
||||
$(OUTDIR)\option.obj \
|
||||
$(OUTDIR)\os_mswin.obj \
|
||||
$(OUTDIR)\winclip.obj \
|
||||
$(OUTDIR)\os_w32exe.obj \
|
||||
$(OUTDIR)\os_win32.obj \
|
||||
$(OUTDIR)\pathdef.obj \
|
||||
$(OUTDIR)\popupmnu.obj \
|
||||
@@ -760,6 +766,7 @@ OBJ = \
|
||||
$(OUTDIR)\ui.obj \
|
||||
$(OUTDIR)\undo.obj \
|
||||
$(OUTDIR)\userfunc.obj \
|
||||
$(OUTDIR)\winclip.obj \
|
||||
$(OUTDIR)\window.obj \
|
||||
$(OUTDIR)\vim.res
|
||||
|
||||
@@ -798,8 +805,7 @@ GUI_INCL = \
|
||||
GUI_OBJ = \
|
||||
$(OUTDIR)\gui.obj \
|
||||
$(OUTDIR)\gui_beval.obj \
|
||||
$(OUTDIR)\gui_w32.obj \
|
||||
$(OUTDIR)\os_w32exe.obj
|
||||
$(OUTDIR)\gui_w32.obj
|
||||
GUI_LIB = \
|
||||
gdi32.lib version.lib $(IME_LIB) \
|
||||
winspool.lib comctl32.lib advapi32.lib shell32.lib netapi32.lib \
|
||||
@@ -1362,6 +1368,8 @@ $(OUTDIR)/crypt.obj: $(OUTDIR) crypt.c $(INCL)
|
||||
|
||||
$(OUTDIR)/crypt_zip.obj: $(OUTDIR) crypt_zip.c $(INCL)
|
||||
|
||||
$(OUTDIR)/debugger.obj: $(OUTDIR) debugger.c $(INCL)
|
||||
|
||||
$(OUTDIR)/dict.obj: $(OUTDIR) dict.c $(INCL)
|
||||
|
||||
$(OUTDIR)/diff.obj: $(OUTDIR) diff.c $(INCL)
|
||||
@@ -1416,6 +1424,8 @@ $(OUTDIR)/hashtab.obj: $(OUTDIR) hashtab.c $(INCL)
|
||||
|
||||
$(OUTDIR)/indent.obj: $(OUTDIR) indent.c $(INCL)
|
||||
|
||||
$(OUTDIR)/insexpand.obj: $(OUTDIR) insexpand.c $(INCL)
|
||||
|
||||
$(OUTDIR)/gui.obj: $(OUTDIR) gui.c $(INCL) $(GUI_INCL)
|
||||
|
||||
$(OUTDIR)/gui_beval.obj: $(OUTDIR) gui_beval.c $(INCL) $(GUI_INCL)
|
||||
@@ -1631,6 +1641,7 @@ proto.h: \
|
||||
proto/charset.pro \
|
||||
proto/crypt.pro \
|
||||
proto/crypt_zip.pro \
|
||||
proto/debugger.pro \
|
||||
proto/dict.pro \
|
||||
proto/diff.pro \
|
||||
proto/digraph.pro \
|
||||
@@ -1648,6 +1659,7 @@ proto.h: \
|
||||
proto/hardcopy.pro \
|
||||
proto/hashtab.pro \
|
||||
proto/indent.pro \
|
||||
proto/insexpand.pro \
|
||||
proto/json.pro \
|
||||
proto/list.pro \
|
||||
proto/main.pro \
|
||||
|
||||
@@ -96,6 +96,7 @@ SRC = \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
@@ -114,6 +115,7 @@ SRC = \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
@@ -156,6 +158,7 @@ OBJ = \
|
||||
charset.o \
|
||||
crypt.o \
|
||||
crypt_zip.o \
|
||||
debugger.o \
|
||||
dict.o \
|
||||
diff.o \
|
||||
digraph.o \
|
||||
@@ -174,6 +177,7 @@ OBJ = \
|
||||
hardcopy.o \
|
||||
hashtab.o \
|
||||
indent.o \
|
||||
insexpand.o \
|
||||
json.o \
|
||||
list.o \
|
||||
main.o \
|
||||
@@ -216,6 +220,7 @@ PRO = \
|
||||
proto/charset.pro \
|
||||
proto/crypt.pro \
|
||||
proto/crypt_zip.pro \
|
||||
proto/debugger.pro \
|
||||
proto/dict.pro \
|
||||
proto/diff.pro \
|
||||
proto/digraph.pro \
|
||||
@@ -234,6 +239,7 @@ PRO = \
|
||||
proto/hardcopy.pro \
|
||||
proto/hashtab.pro \
|
||||
proto/indent.pro \
|
||||
proto/insexpand.pro \
|
||||
proto/json.pro \
|
||||
proto/list.pro \
|
||||
proto/main.pro \
|
||||
@@ -337,6 +343,8 @@ crypt.o: crypt.c
|
||||
proto/crypt.pro: crypt.c
|
||||
crypt_zip.o: crypt_zip.c
|
||||
proto/crypt_zip.pro: crypt_zip.c
|
||||
debugger.o: debugger.c
|
||||
proto/debugger.pro: debugger.c
|
||||
dict.o: dict.c
|
||||
proto/dict.pro: dict.c
|
||||
diff.o: diff.c
|
||||
@@ -373,6 +381,8 @@ hashtab.o: hashtab.c
|
||||
proto/hashtab.pro: hashtab.c
|
||||
indent.o: indent.c
|
||||
proto/indent.pro: indent.c
|
||||
insexpand.o: insexpand.c
|
||||
proto/insexpand.pro: insexpand.c
|
||||
json.o: json.c
|
||||
proto/json.pro: json.c
|
||||
list.o: list.c
|
||||
|
||||
214
src/Make_vms.mms
214
src/Make_vms.mms
@@ -2,7 +2,7 @@
|
||||
# Makefile for Vim on OpenVMS
|
||||
#
|
||||
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
|
||||
# Last change: 2019 Feb 16
|
||||
# Last change: 2019 Mar 22
|
||||
#
|
||||
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
|
||||
# with MMS and MMK
|
||||
@@ -256,11 +256,6 @@ HANGULIN_OBJ = hangulin.obj
|
||||
.ENDIF
|
||||
.ENDIF
|
||||
|
||||
.IFDEF VIM_TAG_ANYWHITE
|
||||
# TAG_ANYWHITE related setup.
|
||||
TAG_DEF = ,"FEAT_TAG_ANYWHITE"
|
||||
.ENDIF
|
||||
|
||||
.IFDEF VIM_MZSCHEME
|
||||
# MZSCHEME related setup
|
||||
MZSCH_DEF = ,"FEAT_MZSCHEME"
|
||||
@@ -313,30 +308,30 @@ ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \
|
||||
$(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(RUBY_LIB)
|
||||
|
||||
SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \
|
||||
crypt.c crypt_zip.c dict.c diff.c digraph.c edit.c eval.c evalfunc.c \
|
||||
ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c if_cscope.c \
|
||||
if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c hardcopy.c \
|
||||
hashtab.c indent.c json.c list.c main.c mark.c menu.c mbyte.c \
|
||||
memfile.c memline.c message.c misc1.c misc2.c move.c normal.c ops.c \
|
||||
option.c popupmnu.c quickfix.c regexp.c search.c sha256.c sign.c \
|
||||
spell.c spellfile.c syntax.c tag.c term.c termlib.c textprop.c ui.c \
|
||||
undo.c userfunc.c version.c screen.c window.c os_unix.c os_vms.c \
|
||||
pathdef.c
|
||||
crypt.c crypt_zip.c debugger.c dict.c diff.c digraph.c edit.c eval.c \
|
||||
evalfunc.c ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c \
|
||||
if_cscope.c if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c \
|
||||
hardcopy.c hashtab.c indent.c insexpand.c json.c list.c main.c mark.c \
|
||||
menu.c mbyte.c memfile.c memline.c message.c misc1.c misc2.c move.c \
|
||||
normal.c ops.c option.c popupmnu.c quickfix.c regexp.c search.c \
|
||||
sha256.c sign.c spell.c spellfile.c syntax.c tag.c term.c termlib.c \
|
||||
textprop.c ui.c undo.c userfunc.c version.c screen.c window.c \
|
||||
os_unix.c os_vms.c pathdef.c \
|
||||
$(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) \
|
||||
$(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) $(XDIFF_SRC)
|
||||
|
||||
OBJ = arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj \
|
||||
charset.obj crypt.obj crypt_zip.obj dict.obj diff.obj digraph.obj \
|
||||
edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj ex_docmd.obj \
|
||||
ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
|
||||
charset.obj crypt.obj crypt_zip.obj debugger.obj dict.obj diff.obj \
|
||||
digraph.obj edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj \
|
||||
ex_docmd.obj ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
|
||||
fileio.obj findfile.obj fold.obj getchar.obj hardcopy.obj hashtab.obj \
|
||||
indent.obj json.obj list.obj main.obj mark.obj menu.obj memfile.obj \
|
||||
memline.obj message.obj misc1.obj misc2.obj move.obj mbyte.obj \
|
||||
normal.obj ops.obj option.obj popupmnu.obj quickfix.obj regexp.obj \
|
||||
search.obj sha256.obj sign.obj spell.obj spellfile.obj syntax.obj \
|
||||
tag.obj term.obj termlib.obj textprop.obj ui.obj undo.obj \
|
||||
userfunc.obj screen.obj version.obj window.obj os_unix.obj os_vms.obj \
|
||||
pathdef.obj if_mzsch.obj \
|
||||
indent.obj insexpand.obj json.obj list.obj main.obj mark.obj \
|
||||
menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \
|
||||
move.obj mbyte.obj normal.obj ops.obj option.obj popupmnu.obj \
|
||||
quickfix.obj regexp.obj search.obj sha256.obj sign.obj spell.obj \
|
||||
spellfile.obj syntax.obj tag.obj term.obj termlib.obj textprop.obj \
|
||||
ui.obj undo.obj userfunc.obj screen.obj version.obj \
|
||||
window.obj os_unix.obj os_vms.obj pathdef.obj if_mzsch.obj \
|
||||
$(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) \
|
||||
$(RUBY_OBJ) $(HANGULIN_OBJ) $(MZSCH_OBJ) $(XDIFF_OBJ)
|
||||
|
||||
@@ -514,278 +509,283 @@ blob.obj : blob.c vim.h [.auto]config.h feature.h os_unix.h
|
||||
buffer.obj : buffer.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
charset.obj : charset.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
crypt.obj : crypt.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
crypt_zip.obj : crypt_zip.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
debugger.obj : debugger.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h
|
||||
dict.obj : dict.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
diff.obj : diff.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
digraph.obj : digraph.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
edit.obj : edit.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
eval.obj : eval.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h version.h
|
||||
version.h
|
||||
evalfunc.obj : evalfunc.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
ex_cmds.obj : ex_cmds.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
ex_cmds2.obj : ex_cmds2.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
ex_docmd.obj : ex_docmd.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
ex_eval.obj : ex_eval.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
ex_getln.obj : ex_getln.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
fileio.obj : fileio.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
findfile.obj : findfile.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
fold.obj : fold.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
getchar.obj : getchar.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
hardcopy.obj : hardcopy.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
hashtab.obj : hashtab.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h if_cscope.h
|
||||
globals.h if_cscope.h
|
||||
if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
if_mzsch.obj : if_mzsch.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro ex_cmds.h proto.h \
|
||||
globals.h arabic.h if_mzsch.h
|
||||
globals.h if_mzsch.h
|
||||
indent.obj : indent.c vim.h [.auto]config.h feature.h os_unix.h
|
||||
insexpand.obj : insexpand.c vim.h [.auto]config.h feature.h os_unix.h
|
||||
json.obj : json.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h version.h
|
||||
version.h
|
||||
list.obj : list.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
main.obj : main.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h arabic.c
|
||||
arabic.c
|
||||
mark.obj : mark.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
memfile.obj : memfile.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
memline.obj : memline.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
menu.obj : menu.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
message.obj : message.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
misc1.obj : misc1.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h version.h
|
||||
version.h
|
||||
misc2.obj : misc2.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
move.obj : move.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
mbyte.obj : mbyte.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
normal.obj : normal.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
option.obj : option.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
os_unix.obj : os_unix.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h os_unixx.h
|
||||
globals.h os_unixx.h
|
||||
os_vms.obj : os_vms.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h os_unixx.h
|
||||
globals.h os_unixx.h
|
||||
pathdef.obj : pathdef.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
popupmnu.obj : popupmnu.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
quickfix.obj : quickfix.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
regexp.obj : regexp.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
screen.obj : screen.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
search.obj : search.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
sha256.obj : sha256.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
sign.obj : sign.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
spell.obj : spell.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
spellfile.obj : spellfile.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
syntax.obj : syntax.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
tag.obj : tag.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
term.obj : term.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
termlib.obj : termlib.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
ui.obj : ui.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
undo.obj : undo.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
userfunc.obj : userfunc.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
version.obj : version.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
window.obj : window.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
gui.obj : gui.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
gui_gtk.obj : gui_gtk.c gui_gtk_f.h vim.h [.auto]config.h feature.h \
|
||||
os_unix.h ascii.h keymap.h term.h macros.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
|
||||
proto.h globals.h arabic.h [-.pixmaps]stock_icons.h
|
||||
proto.h globals.h [-.pixmaps]stock_icons.h
|
||||
gui_gtk_f.obj : gui_gtk_f.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h gui_gtk_f.h
|
||||
globals.h gui_gtk_f.h
|
||||
gui_motif.obj : gui_motif.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
|
||||
globals.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
|
||||
[-.pixmaps]generic.xpm [-.pixmaps]info.xpm [-.pixmaps]quest.xpm
|
||||
gui_athena.obj : gui_athena.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h gui_at_sb.h
|
||||
globals.h gui_at_sb.h
|
||||
gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
|
||||
globals.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
|
||||
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm
|
||||
gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h [-.runtime]vim32x32.xpm \
|
||||
globals.h [-.runtime]vim32x32.xpm \
|
||||
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm [-.pixmaps]tb_new.xpm \
|
||||
[-.pixmaps]tb_open.xpm [-.pixmaps]tb_close.xpm [-.pixmaps]tb_save.xpm \
|
||||
[-.pixmaps]tb_print.xpm [-.pixmaps]tb_cut.xpm [-.pixmaps]tb_copy.xpm \
|
||||
@@ -805,60 +805,60 @@ gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
gui_at_sb.obj : gui_at_sb.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h gui_at_sb.h
|
||||
globals.h gui_at_sb.h
|
||||
gui_at_fs.obj : gui_at_fs.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h gui_at_sb.h
|
||||
globals.h gui_at_sb.h
|
||||
pty.obj : pty.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
arabic.h
|
||||
|
||||
hangulin.obj : hangulin.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
if_perl.obj : [.auto]if_perl.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
if_perlsfio.obj : if_perlsfio.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
if_python.obj : if_python.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
if_tcl.obj : if_tcl.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
if_ruby.obj : if_ruby.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
gui_beval.obj : gui_beval.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h
|
||||
globals.h
|
||||
workshop.obj : workshop.c [.auto]config.h integration.h vim.h feature.h \
|
||||
os_unix.h ascii.h keymap.h term.h macros.h structs.h \
|
||||
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
|
||||
proto.h globals.h arabic.h version.h workshop.h
|
||||
proto.h globals.h version.h workshop.h
|
||||
wsdebug.obj : wsdebug.c
|
||||
integration.obj : integration.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h integration.h
|
||||
globals.h integration.h
|
||||
netbeans.obj : netbeans.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h arabic.h version.h
|
||||
globals.h version.h
|
||||
gui_xmdlg.obj : gui_xmdlg.c [.auto]config.h vim.h feature.h os_unix.h
|
||||
gui_xmebw.obj : gui_xmebw.c [.auto]config.h vim.h feature.h os_unix.h
|
||||
xdiffi.obj : [.xdiff]xdiffi.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
|
||||
|
||||
221
src/Makefile
221
src/Makefile
@@ -1579,6 +1579,7 @@ BASIC_SRC = \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
@@ -1599,6 +1600,7 @@ BASIC_SRC = \
|
||||
if_cscope.c \
|
||||
if_xcmdsrv.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
@@ -1692,6 +1694,7 @@ OBJ_COMMON = \
|
||||
objects/blowfish.o \
|
||||
objects/crypt.o \
|
||||
objects/crypt_zip.o \
|
||||
objects/debugger.o \
|
||||
objects/dict.o \
|
||||
objects/diff.o \
|
||||
objects/digraph.o \
|
||||
@@ -1713,6 +1716,7 @@ OBJ_COMMON = \
|
||||
objects/if_cscope.o \
|
||||
objects/if_xcmdsrv.o \
|
||||
objects/indent.o \
|
||||
objects/insexpand.o \
|
||||
objects/list.o \
|
||||
objects/mark.o \
|
||||
objects/memline.o \
|
||||
@@ -1818,6 +1822,7 @@ PRO_AUTO = \
|
||||
charset.pro \
|
||||
crypt.pro \
|
||||
crypt_zip.pro \
|
||||
debugger.pro \
|
||||
dict.pro \
|
||||
diff.pro \
|
||||
digraph.pro \
|
||||
@@ -1844,6 +1849,7 @@ PRO_AUTO = \
|
||||
if_ruby.pro \
|
||||
if_xcmdsrv.pro \
|
||||
indent.pro \
|
||||
insexpand.pro \
|
||||
json.pro \
|
||||
list.pro \
|
||||
main.pro \
|
||||
@@ -2173,7 +2179,7 @@ test1 \
|
||||
test64 test69 \
|
||||
test70 test72 \
|
||||
test86 test87 test88 \
|
||||
test94 test95 test99 test108:
|
||||
test94 test95 test99:
|
||||
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
|
||||
|
||||
# Run individual NEW style test.
|
||||
@@ -2775,7 +2781,7 @@ shadow: runtime pixmaps
|
||||
mkdir $(SHADOWDIR)/auto
|
||||
cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
|
||||
$(MKDIR_P) $(SHADOWDIR)/po
|
||||
cd $(SHADOWDIR)/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
|
||||
cd $(SHADOWDIR)/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/*.in ../../po/Makefile .
|
||||
cd $(SHADOWDIR); rm -f auto/link.sed
|
||||
cp Makefile configure $(SHADOWDIR)
|
||||
rm -f $(SHADOWDIR)/auto/config.mk $(SHADOWDIR)/config.mk.dist
|
||||
@@ -2960,6 +2966,9 @@ objects/crypt.o: crypt.c
|
||||
objects/crypt_zip.o: crypt_zip.c
|
||||
$(CCC) -o $@ crypt_zip.c
|
||||
|
||||
objects/debugger.o: debugger.c
|
||||
$(CCC) -o $@ debugger.c
|
||||
|
||||
objects/dict.o: dict.c
|
||||
$(CCC) -o $@ dict.c
|
||||
|
||||
@@ -3098,6 +3107,9 @@ objects/if_tcl.o: if_tcl.c
|
||||
objects/indent.o: indent.c
|
||||
$(CCC) -o $@ indent.c
|
||||
|
||||
objects/insexpand.o: insexpand.c
|
||||
$(CCC) -o $@ insexpand.c
|
||||
|
||||
objects/json.o: json.c
|
||||
$(CCC) -o $@ json.c
|
||||
|
||||
@@ -3386,286 +3398,293 @@ $(APPDIR)/Contents:
|
||||
objects/arabic.o: arabic.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/autocmd.o: autocmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/beval.o: beval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/blob.o: blob.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/blowfish.o: blowfish.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/buffer.o: buffer.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/charset.o: charset.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/crypt.o: crypt.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/crypt_zip.o: crypt_zip.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/debugger.o: debugger.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
os_mac.h ascii.h keymap.h term.h macros.h option.h beval.h structs.h \
|
||||
regexp.h gui.h alloc.h ex_cmds.h spell.h proto.h globals.h
|
||||
objects/dict.o: dict.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/diff.o: diff.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h xdiff/xdiff.h vim.h
|
||||
proto.h globals.h xdiff/xdiff.h vim.h
|
||||
objects/digraph.o: digraph.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/edit.o: edit.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/eval.o: eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/evalfunc.o: evalfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/ex_cmds.o: ex_cmds.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/ex_cmds2.o: ex_cmds2.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/ex_docmd.o: ex_docmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h ex_cmdidxs.h
|
||||
proto.h globals.h ex_cmdidxs.h
|
||||
objects/ex_eval.o: ex_eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/ex_getln.o: ex_getln.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/fileio.o: fileio.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/findfile.o: findfile.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h libvterm/include/vterm.h \
|
||||
proto.h globals.h libvterm/include/vterm.h \
|
||||
libvterm/include/vterm_keycodes.h
|
||||
objects/fold.o: fold.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/getchar.o: getchar.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/hardcopy.o: hardcopy.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/hashtab.o: hashtab.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/if_cscope.o: if_cscope.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h if_cscope.h
|
||||
proto.h globals.h if_cscope.h
|
||||
objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/indent.o: indent.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/insexpand.o: insexpand.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/json.o: json.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/list.o: list.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/main.o: main.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/mark.o: mark.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/memfile.o: memfile.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/memline.o: memline.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/menu.o: menu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/message.o: message.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/misc1.o: misc1.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/misc2.o: misc2.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/mbyte.o: mbyte.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/ops.o: ops.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/option.o: option.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/os_unix.o: os_unix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h os_unixx.h
|
||||
proto.h globals.h os_unixx.h
|
||||
objects/pathdef.o: auto/pathdef.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/popupmnu.o: popupmnu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/pty.o: pty.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/quickfix.o: quickfix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/regexp.o: regexp.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h regexp_nfa.c
|
||||
proto.h globals.h regexp_nfa.c
|
||||
objects/screen.o: screen.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/search.o: search.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/sha256.o: sha256.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/sign.o: sign.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/spell.o: spell.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/spellfile.o: spellfile.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/syntax.o: syntax.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/tag.o: tag.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/term.o: term.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h libvterm/include/vterm.h \
|
||||
proto.h globals.h libvterm/include/vterm.h \
|
||||
libvterm/include/vterm_keycodes.h
|
||||
objects/terminal.o: terminal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h libvterm/include/vterm.h \
|
||||
proto.h globals.h libvterm/include/vterm.h \
|
||||
libvterm/include/vterm_keycodes.h
|
||||
objects/textprop.o: textprop.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/ui.o: ui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/undo.o: undo.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/userfunc.o: userfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/version.o: version.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/window.o: window.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/gui.o: gui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/gui_gtk.o: gui_gtk.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_gtk_f.h
|
||||
proto.h globals.h gui_gtk_f.h
|
||||
objects/gui_gtk_f.o: gui_gtk_f.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_gtk_f.h
|
||||
proto.h globals.h gui_gtk_f.h
|
||||
objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \
|
||||
proto.h globals.h gui_xmebw.h ../pixmaps/alert.xpm \
|
||||
../pixmaps/error.xpm ../pixmaps/generic.xpm ../pixmaps/info.xpm \
|
||||
../pixmaps/quest.xpm gui_x11_pm.h ../pixmaps/tb_new.xpm \
|
||||
../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm ../pixmaps/tb_save.xpm \
|
||||
@@ -3686,15 +3705,15 @@ objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \
|
||||
objects/gui_xmdlg.o: gui_xmdlg.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/gui_xmebw.o: gui_xmebw.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_xmebwp.h gui_xmebw.h
|
||||
proto.h globals.h gui_xmebwp.h gui_xmebw.h
|
||||
objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_at_sb.h gui_x11_pm.h \
|
||||
proto.h globals.h gui_at_sb.h gui_x11_pm.h \
|
||||
../pixmaps/tb_new.xpm ../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm \
|
||||
../pixmaps/tb_save.xpm ../pixmaps/tb_print.xpm ../pixmaps/tb_cut.xpm \
|
||||
../pixmaps/tb_copy.xpm ../pixmaps/tb_paste.xpm ../pixmaps/tb_find.xpm \
|
||||
@@ -3713,85 +3732,85 @@ objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \
|
||||
objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
|
||||
proto.h globals.h auto/gui_gtk_gresources.h gui_gtk_f.h \
|
||||
../runtime/vim32x32.xpm ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
|
||||
objects/gui_x11.o: gui_x11.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h ../runtime/vim32x32.xpm \
|
||||
proto.h globals.h ../runtime/vim32x32.xpm \
|
||||
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
|
||||
objects/gui_at_sb.o: gui_at_sb.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_at_sb.h
|
||||
proto.h globals.h gui_at_sb.h
|
||||
objects/gui_at_fs.o: gui_at_fs.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h gui_at_sb.h
|
||||
proto.h globals.h gui_at_sb.h
|
||||
objects/json_test.o: json_test.c main.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h json.c
|
||||
proto.h globals.h json.c
|
||||
objects/kword_test.o: kword_test.c main.c vim.h protodef.h auto/config.h \
|
||||
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
|
||||
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h arabic.h charset.c
|
||||
ex_cmds.h spell.h proto.h globals.h charset.c
|
||||
objects/memfile_test.o: memfile_test.c main.c vim.h protodef.h auto/config.h \
|
||||
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
|
||||
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h arabic.h memfile.c
|
||||
ex_cmds.h spell.h proto.h globals.h memfile.c
|
||||
objects/message_test.o: message_test.c main.c vim.h protodef.h auto/config.h \
|
||||
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
|
||||
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h arabic.h message.c
|
||||
ex_cmds.h spell.h proto.h globals.h message.c
|
||||
objects/hangulin.o: hangulin.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/if_lua.o: if_lua.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/if_mzsch.o: if_mzsch.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h if_mzsch.h
|
||||
proto.h globals.h if_mzsch.h
|
||||
objects/if_perl.o: auto/if_perl.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/if_perlsfio.o: if_perlsfio.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/if_python.o: if_python.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h if_py_both.h
|
||||
proto.h globals.h if_py_both.h
|
||||
objects/if_python3.o: if_python3.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h if_py_both.h
|
||||
proto.h globals.h if_py_both.h
|
||||
objects/if_tcl.o: if_tcl.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/if_ruby.o: if_ruby.c protodef.h auto/config.h vim.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/gui_beval.o: gui_beval.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/netbeans.o: netbeans.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h version.h
|
||||
proto.h globals.h version.h
|
||||
objects/channel.o: channel.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h arabic.h
|
||||
proto.h globals.h
|
||||
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
|
||||
objects/encoding.o: libvterm/src/encoding.c libvterm/src/vterm_internal.h \
|
||||
libvterm/include/vterm.h libvterm/include/vterm_keycodes.h \
|
||||
@@ -3823,7 +3842,7 @@ objects/xdiffi.o: xdiff/xdiffi.c xdiff/xinclude.h auto/config.h \
|
||||
macros.h option.h beval.h proto/gui_beval.pro \
|
||||
structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h \
|
||||
arabic.h xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
|
||||
objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \
|
||||
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
|
||||
@@ -3832,7 +3851,7 @@ objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \
|
||||
macros.h option.h beval.h proto/gui_beval.pro \
|
||||
structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h \
|
||||
arabic.h xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
|
||||
objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \
|
||||
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
|
||||
@@ -3841,7 +3860,7 @@ objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \
|
||||
macros.h option.h beval.h proto/gui_beval.pro \
|
||||
structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h \
|
||||
arabic.h xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
|
||||
objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \
|
||||
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
|
||||
@@ -3850,7 +3869,7 @@ objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \
|
||||
macros.h option.h beval.h proto/gui_beval.pro \
|
||||
structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h \
|
||||
arabic.h xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
|
||||
objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \
|
||||
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
|
||||
@@ -3859,7 +3878,7 @@ objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \
|
||||
macros.h option.h beval.h proto/gui_beval.pro \
|
||||
structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h \
|
||||
arabic.h xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
|
||||
objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \
|
||||
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
|
||||
@@ -3868,5 +3887,5 @@ objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \
|
||||
macros.h option.h beval.h proto/gui_beval.pro \
|
||||
structs.h regexp.h gui.h alloc.h \
|
||||
ex_cmds.h spell.h proto.h globals.h \
|
||||
arabic.h xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xtypes.h xdiff/xutils.h \
|
||||
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
|
||||
|
||||
191
src/README.md
Normal file
191
src/README.md
Normal file
@@ -0,0 +1,191 @@
|
||||

|
||||
|
||||
# Vim source code #
|
||||
|
||||
Here are a few hints for finding your way around the source code. This
|
||||
doesn't make it less complex than it is, but it gets you started.
|
||||
|
||||
You might also want to read
|
||||
[`:help development`](http://vimdoc.sourceforge.net/htmldoc/develop.html#development).
|
||||
|
||||
|
||||
## Jumping around ##
|
||||
|
||||
First of all, use `:make tags` to generate a tags file, so that you can jump
|
||||
around in the source code.
|
||||
|
||||
To jump to a function or variable definition, move the cursor on the name and
|
||||
use the `CTRL-]` command. Use `CTRL-T` or `CTRL-O` to jump back.
|
||||
|
||||
To jump to a file, move the cursor on its name and use the `gf` command.
|
||||
|
||||
Most code can be found in a file with an obvious name (incomplete list):
|
||||
|
||||
File name | Description
|
||||
--------- | -----------
|
||||
autocmd.c | autocommands
|
||||
buffer.c | manipulating buffers (loaded files)
|
||||
diff.c | diff mode (vimdiff)
|
||||
eval.c | expression evaluation
|
||||
fileio.c | reading and writing files
|
||||
findfile.c | search for files in 'path'
|
||||
fold.c | folding
|
||||
getchar.c | getting characters and key mapping
|
||||
indent.c | C and Lisp indentation
|
||||
insexpand.c | Insert mode completion
|
||||
mark.c | marks
|
||||
mbyte.c | multi-byte character handling
|
||||
memfile.c | storing lines for buffers in a swapfile
|
||||
memline.c | storing lines for buffers in memory
|
||||
menu.c | menus
|
||||
message.c | (error) messages
|
||||
ops.c | handling operators ("d", "y", "p")
|
||||
option.c | options
|
||||
quickfix.c | quickfix commands (":make", ":cn")
|
||||
regexp.c | pattern matching
|
||||
screen.c | updating the windows
|
||||
search.c | pattern searching
|
||||
sign.c | signs
|
||||
spell.c | spell checking
|
||||
syntax.c | syntax and other highlighting
|
||||
tag.c | tags
|
||||
term.c | terminal handling, termcap codes
|
||||
undo.c | undo and redo
|
||||
window.c | handling split windows
|
||||
|
||||
|
||||
## Debugging ##
|
||||
|
||||
If you have a reasonable recent version of gdb, you can use the `:Termdebug`
|
||||
command to debug Vim. See `:help :Termdebug`.
|
||||
|
||||
When something is time critical or stepping through code is a hassle, use the
|
||||
channel logging to create a time-stamped log file. Add lines to the code like
|
||||
this:
|
||||
|
||||
ch_log(NULL, "Value is now %02x", value);
|
||||
|
||||
After compiling and starting Vim, do:
|
||||
|
||||
:call ch_logfile('debuglog', 'w')
|
||||
|
||||
And edit `debuglog` to see what happens. The channel functions already have
|
||||
`ch_log()` calls, thus you always see that in the log.
|
||||
|
||||
|
||||
## Important Variables ##
|
||||
|
||||
The current mode is stored in `State`. The values it can have are `NORMAL`,
|
||||
`INSERT`, `CMDLINE`, and a few others.
|
||||
|
||||
The current window is `curwin`. The current buffer is `curbuf`. These point
|
||||
to structures with the cursor position in the window, option values, the file
|
||||
name, etc. These are defined in
|
||||
[`structs.h`](https://github.com/vim/vim/blob/master/src/globals.h).
|
||||
|
||||
All the global variables are declared in
|
||||
[`globals.h`](https://github.com/vim/vim/blob/master/src/structs.h).
|
||||
|
||||
|
||||
## The main loop ##
|
||||
|
||||
This is conveniently called `main_loop()`. It updates a few things and then
|
||||
calls `normal_cmd()` to process a command. This returns when the command is
|
||||
finished.
|
||||
|
||||
The basic idea is that Vim waits for the user to type a character and
|
||||
processes it until another character is needed. Thus there are several places
|
||||
where Vim waits for a character to be typed. The `vgetc()` function is used
|
||||
for this. It also handles mapping.
|
||||
|
||||
Updating the screen is mostly postponed until a command or a sequence of
|
||||
commands has finished. The work is done by `update_screen()`, which calls
|
||||
`win_update()` for every window, which calls `win_line()` for every line.
|
||||
See the start of
|
||||
[`screen.c`](https://github.com/vim/vim/blob/master/src/screen.c)
|
||||
for more explanations.
|
||||
|
||||
|
||||
## Command-line mode ##
|
||||
|
||||
When typing a `:`, `normal_cmd()` will call `getcmdline()` to obtain a line
|
||||
with an Ex command. `getcmdline()` contains a loop that will handle each typed
|
||||
character. It returns when hitting `CR` or `Esc` or some other character that
|
||||
ends the command line mode.
|
||||
|
||||
|
||||
## Ex commands ##
|
||||
|
||||
Ex commands are handled by the function `do_cmdline()`. It does the generic
|
||||
parsing of the `:` command line and calls `do_one_cmd()` for each separate
|
||||
command. It also takes care of while loops.
|
||||
|
||||
`do_one_cmd()` parses the range and generic arguments and puts them in the
|
||||
`exarg_t` and passes it to the function that handles the command.
|
||||
|
||||
The `:` commands are listed in `ex_cmds.h`. The third entry of each item is
|
||||
the name of the function that handles the command. The last entry are the
|
||||
flags that are used for the command.
|
||||
|
||||
|
||||
## Normal mode commands ##
|
||||
|
||||
The Normal mode commands are handled by the `normal_cmd()` function. It also
|
||||
handles the optional count and an extra character for some commands. These
|
||||
are passed in a `cmdarg_t` to the function that handles the command.
|
||||
|
||||
There is a table `nv_cmds` in
|
||||
[`normal.c`](https://github.com/vim/vim/blob/master/src/normal.c)
|
||||
which lists the first character of every command. The second entry of each
|
||||
item is the name of the function that handles the command.
|
||||
|
||||
|
||||
## Insert mode commands ##
|
||||
|
||||
When doing an `i` or `a` command, `normal_cmd()` will call the `edit()`
|
||||
function. It contains a loop that waits for the next character and handles it.
|
||||
It returns when leaving Insert mode.
|
||||
|
||||
|
||||
## Options ##
|
||||
|
||||
There is a list with all option names in
|
||||
[`option.c`](https://github.com/vim/vim/blob/master/src/option.c),
|
||||
called `options[]`.
|
||||
|
||||
|
||||
## The GUI ##
|
||||
|
||||
Most of the GUI code is implemented like it was a clever terminal. Typing a
|
||||
character, moving a scrollbar, clicking the mouse, etc. are all translated
|
||||
into events which are written in the input buffer. These are read by the
|
||||
main code, just like reading from a terminal. The code for this is scattered
|
||||
through [`gui.c`](https://github.com/vim/vim/blob/master/src/gui.c).
|
||||
For example, `gui_send_mouse_event()` for a mouse click and `gui_menu_cb()` for
|
||||
a menu action. Key hits are handled by the system-specific GUI code, which
|
||||
calls `add_to_input_buf()` to send the key code.
|
||||
|
||||
Updating the GUI window is done by writing codes in the output buffer, just
|
||||
like writing to a terminal. When the buffer gets full or is flushed,
|
||||
`gui_write()` will parse the codes and draw the appropriate items. Finally the
|
||||
system-specific GUI code will be called to do the work.
|
||||
|
||||
|
||||
## Debugging the GUI ##
|
||||
|
||||
Remember to prevent that gvim forks and the debugger thinks Vim has exited,
|
||||
add the `-f` argument. In gdb: `run -f -g`.
|
||||
|
||||
When stepping through display updating code, the focus event is triggered
|
||||
when going from the debugger to Vim and back. To avoid this, recompile with
|
||||
some code in `gui_focus_change()` disabled.
|
||||
|
||||
|
||||
## Contributing ##
|
||||
|
||||
If you would like to help making Vim better, see the
|
||||
[`CONTRIBUTING.md`](https://github.com/vim/vim/blob/master/CONTRIBUTING.md)
|
||||
file.
|
||||
|
||||
|
||||
This is `README.md` for version 8.1 of the Vim source code.
|
||||
162
src/README.txt
162
src/README.txt
@@ -1,162 +0,0 @@
|
||||
README for the Vim source code
|
||||
|
||||
Here are a few hints for finding your way around the source code. This
|
||||
doesn't make it less complex than it is, but it gets you started.
|
||||
|
||||
You might also want to read ":help development".
|
||||
|
||||
|
||||
JUMPING AROUND
|
||||
|
||||
First of all, use ":make tags" to generate a tags file, so that you can jump
|
||||
around in the source code.
|
||||
|
||||
To jump to a function or variable definition, move the cursor on the name and
|
||||
use the CTRL-] command. Use CTRL-T or CTRL-O to jump back.
|
||||
|
||||
To jump to a file, move the cursor on its name and use the "gf" command.
|
||||
|
||||
Most code can be found in a file with an obvious name (incomplete list):
|
||||
autocmd.c autocommands
|
||||
buffer.c manipulating buffers (loaded files)
|
||||
diff.c diff mode (vimdiff)
|
||||
eval.c expression evaluation
|
||||
fileio.c reading and writing files
|
||||
findfile.c search for files in 'path'
|
||||
fold.c folding
|
||||
getchar.c getting characters and key mapping
|
||||
indent.c C and Lisp indentation
|
||||
mark.c marks
|
||||
mbyte.c multi-byte character handling
|
||||
memfile.c storing lines for buffers in a swapfile
|
||||
memline.c storing lines for buffers in memory
|
||||
menu.c menus
|
||||
message.c (error) messages
|
||||
ops.c handling operators ("d", "y", "p")
|
||||
option.c options
|
||||
quickfix.c quickfix commands (":make", ":cn")
|
||||
regexp.c pattern matching
|
||||
screen.c updating the windows
|
||||
search.c pattern searching
|
||||
sign.c signs
|
||||
spell.c spell checking
|
||||
syntax.c syntax and other highlighting
|
||||
tag.c tags
|
||||
term.c terminal handling, termcap codes
|
||||
undo.c undo and redo
|
||||
window.c handling split windows
|
||||
|
||||
|
||||
DEBUGGING
|
||||
|
||||
If you have a reasonable recent version of gdb, you can use the :Termdebug
|
||||
command to debug Vim. See ":help :Termdebug".
|
||||
|
||||
When something is time critical or stepping through code is a hassle, use the
|
||||
channel logging to create a time-stamped log file. Add lines to the code like
|
||||
this:
|
||||
ch_log(NULL, "Value is now %02x", value);
|
||||
After compiling and starting Vim, do:
|
||||
:call ch_logfile('debuglog', 'w')
|
||||
And edit "debuglog" to see what happens. The channel functions already have
|
||||
ch_log() calls, thus you always see that in the log.
|
||||
|
||||
|
||||
IMPORTANT VARIABLES
|
||||
|
||||
The current mode is stored in "State". The values it can have are NORMAL,
|
||||
INSERT, CMDLINE, and a few others.
|
||||
|
||||
The current window is "curwin". The current buffer is "curbuf". These point
|
||||
to structures with the cursor position in the window, option values, the file
|
||||
name, etc. These are defined in structs.h.
|
||||
|
||||
All the global variables are declared in globals.h.
|
||||
|
||||
|
||||
THE MAIN LOOP
|
||||
|
||||
This is conveniently called main_loop(). It updates a few things and then
|
||||
calls normal_cmd() to process a command. This returns when the command is
|
||||
finished.
|
||||
|
||||
The basic idea is that Vim waits for the user to type a character and
|
||||
processes it until another character is needed. Thus there are several places
|
||||
where Vim waits for a character to be typed. The vgetc() function is used for
|
||||
this. It also handles mapping.
|
||||
|
||||
Updating the screen is mostly postponed until a command or a sequence of
|
||||
commands has finished. The work is done by update_screen(), which calls
|
||||
win_update() for every window, which calls win_line() for every line.
|
||||
See the start of screen.c for more explanations.
|
||||
|
||||
|
||||
COMMAND-LINE MODE
|
||||
|
||||
When typing a ":", normal_cmd() will call getcmdline() to obtain a line with
|
||||
an Ex command. getcmdline() contains a loop that will handle each typed
|
||||
character. It returns when hitting <CR> or <Esc> or some other character that
|
||||
ends the command line mode.
|
||||
|
||||
|
||||
EX COMMANDS
|
||||
|
||||
Ex commands are handled by the function do_cmdline(). It does the generic
|
||||
parsing of the ":" command line and calls do_one_cmd() for each separate
|
||||
command. It also takes care of while loops.
|
||||
|
||||
do_one_cmd() parses the range and generic arguments and puts them in the
|
||||
exarg_t and passes it to the function that handles the command.
|
||||
|
||||
The ":" commands are listed in ex_cmds.h. The third entry of each item is the
|
||||
name of the function that handles the command. The last entry are the flags
|
||||
that are used for the command.
|
||||
|
||||
|
||||
NORMAL MODE COMMANDS
|
||||
|
||||
The Normal mode commands are handled by the normal_cmd() function. It also
|
||||
handles the optional count and an extra character for some commands. These
|
||||
are passed in a cmdarg_t to the function that handles the command.
|
||||
|
||||
There is a table nv_cmds in normal.c which lists the first character of every
|
||||
command. The second entry of each item is the name of the function that
|
||||
handles the command.
|
||||
|
||||
|
||||
INSERT MODE COMMANDS
|
||||
|
||||
When doing an "i" or "a" command, normal_cmd() will call the edit() function.
|
||||
It contains a loop that waits for the next character and handles it. It
|
||||
returns when leaving Insert mode.
|
||||
|
||||
|
||||
OPTIONS
|
||||
|
||||
There is a list with all option names in option.c, called options[].
|
||||
|
||||
|
||||
THE GUI
|
||||
|
||||
Most of the GUI code is implemented like it was a clever terminal. Typing a
|
||||
character, moving a scrollbar, clicking the mouse, etc. are all translated
|
||||
into events which are written in the input buffer. These are read by the
|
||||
main code, just like reading from a terminal. The code for this is scattered
|
||||
through gui.c. For example: gui_send_mouse_event() for a mouse click and
|
||||
gui_menu_cb() for a menu action. Key hits are handled by the system-specific
|
||||
GUI code, which calls add_to_input_buf() to send the key code.
|
||||
|
||||
Updating the GUI window is done by writing codes in the output buffer, just
|
||||
like writing to a terminal. When the buffer gets full or is flushed,
|
||||
gui_write() will parse the codes and draw the appropriate items. Finally the
|
||||
system-specific GUI code will be called to do the work.
|
||||
|
||||
|
||||
DEBUGGING THE GUI
|
||||
|
||||
Remember to prevent that gvim forks and the debugger thinks Vim has exited,
|
||||
add the "-f" argument. In gdb: "run -f -g".
|
||||
|
||||
When stepping through display updating code, the focus event is triggered
|
||||
when going from the debugger to Vim and back. To avoid this, recompile with
|
||||
some code in gui_focus_change() disabled.
|
||||
@@ -55,7 +55,7 @@ CCommands::~CCommands()
|
||||
void CCommands::SetApplicationObject(IApplication * pApplication)
|
||||
{
|
||||
// This function assumes pApplication has already been AddRef'd
|
||||
// for us, which CDSAddIn did in it's QueryInterface call
|
||||
// for us, which CDSAddIn did in its QueryInterface call
|
||||
// just before it called us.
|
||||
m_pApplication = pApplication;
|
||||
if (! m_pApplication)
|
||||
@@ -504,7 +504,7 @@ static BOOL VimOpenFile(BSTR& FileName, long LineNr)
|
||||
{
|
||||
|
||||
// OLE automation object for com. with Vim
|
||||
// When the object goes out of scope, it's destructor destroys the OLE
|
||||
// When the object goes out of scope, its destructor destroys the OLE
|
||||
// connection;
|
||||
// This is important to avoid blocking the object
|
||||
// (in this memory corruption would be likely when terminating Vim
|
||||
@@ -653,7 +653,7 @@ static void VimErrDiag(COleAutomationControl& VimOle)
|
||||
VimOle.ErrDiag();
|
||||
}
|
||||
|
||||
// Change directory to the directory the file 'FileName' is in or it's parent
|
||||
// Change directory to the directory the file 'FileName' is in or its parent
|
||||
// directory according to the setting of the global 'g_ChangeDir':
|
||||
// 'FileName' is expected to contain an absolute DOS path including the drive
|
||||
// letter.
|
||||
|
||||
@@ -71,7 +71,7 @@ void COleAutomationControl::DeleteObject ()
|
||||
}
|
||||
|
||||
// Creates an instance of the Automation object and
|
||||
// obtains it's IDispatch interface.
|
||||
// obtains its IDispatch interface.
|
||||
//
|
||||
// Parameters:
|
||||
// ProgId ProgID of Automation object
|
||||
|
||||
@@ -238,7 +238,7 @@ Change history
|
||||
- Added an option to do a :cd before opening the file (having a file opened
|
||||
by clicking it but finding out to be still in C:\Windows\system when trying to
|
||||
open another file by ":e" can be annoying). Change directory can be
|
||||
done to the source file's directory or it's parent directory.
|
||||
done to the source file's directory or its parent directory.
|
||||
- Added some explanations to the error message for the CO_E_CLASSSTRING error
|
||||
("Use OLE Vim and make sure to register...").
|
||||
|
||||
|
||||
904
src/arabic.c
904
src/arabic.c
@@ -11,513 +11,213 @@
|
||||
* arabic.c: functions for Arabic language
|
||||
*
|
||||
* Author: Nadim Shaikli & Isam Bayazidi
|
||||
* Farsi support and restructuring to make adding new letters easier by Ali
|
||||
* Gholami Rudi. Further work by Ameretat Reith.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Sorted list of unicode Arabic characters. Each entry holds the
|
||||
* presentation forms of a letter.
|
||||
*
|
||||
* Arabic characters are categorized into following types:
|
||||
*
|
||||
* Isolated - iso-8859-6 form
|
||||
* Initial - unicode form-B start
|
||||
* Medial - unicode form-B middle
|
||||
* Final - unicode form-B final
|
||||
* Stand-Alone - unicode form-B isolated
|
||||
*/
|
||||
|
||||
#include "vim.h"
|
||||
|
||||
#if defined(FEAT_ARABIC) || defined(PROTO)
|
||||
|
||||
static int A_firstc_laa(int c1, int c);
|
||||
static int A_is_harakat(int c);
|
||||
static int A_is_iso(int c);
|
||||
static int A_is_formb(int c);
|
||||
static int A_is_ok(int c);
|
||||
static int A_is_valid(int c);
|
||||
static int A_is_special(int c);
|
||||
// Unicode values for Arabic characters.
|
||||
#define a_HAMZA 0x0621
|
||||
#define a_ALEF_MADDA 0x0622
|
||||
#define a_ALEF_HAMZA_ABOVE 0x0623
|
||||
#define a_WAW_HAMZA 0x0624
|
||||
#define a_ALEF_HAMZA_BELOW 0x0625
|
||||
#define a_YEH_HAMZA 0x0626
|
||||
#define a_ALEF 0x0627
|
||||
#define a_BEH 0x0628
|
||||
#define a_TEH_MARBUTA 0x0629
|
||||
#define a_TEH 0x062a
|
||||
#define a_THEH 0x062b
|
||||
#define a_JEEM 0x062c
|
||||
#define a_HAH 0x062d
|
||||
#define a_KHAH 0x062e
|
||||
#define a_DAL 0x062f
|
||||
#define a_THAL 0x0630
|
||||
#define a_REH 0x0631
|
||||
#define a_ZAIN 0x0632
|
||||
#define a_SEEN 0x0633
|
||||
#define a_SHEEN 0x0634
|
||||
#define a_SAD 0x0635
|
||||
#define a_DAD 0x0636
|
||||
#define a_TAH 0x0637
|
||||
#define a_ZAH 0x0638
|
||||
#define a_AIN 0x0639
|
||||
#define a_GHAIN 0x063a
|
||||
#define a_TATWEEL 0x0640
|
||||
#define a_FEH 0x0641
|
||||
#define a_QAF 0x0642
|
||||
#define a_KAF 0x0643
|
||||
#define a_LAM 0x0644
|
||||
#define a_MEEM 0x0645
|
||||
#define a_NOON 0x0646
|
||||
#define a_HEH 0x0647
|
||||
#define a_WAW 0x0648
|
||||
#define a_ALEF_MAKSURA 0x0649
|
||||
#define a_YEH 0x064a
|
||||
#define a_FATHATAN 0x064b
|
||||
#define a_DAMMATAN 0x064c
|
||||
#define a_KASRATAN 0x064d
|
||||
#define a_FATHA 0x064e
|
||||
#define a_DAMMA 0x064f
|
||||
#define a_KASRA 0x0650
|
||||
#define a_SHADDA 0x0651
|
||||
#define a_SUKUN 0x0652
|
||||
#define a_MADDA_ABOVE 0x0653
|
||||
#define a_HAMZA_ABOVE 0x0654
|
||||
#define a_HAMZA_BELOW 0x0655
|
||||
|
||||
#define a_PEH 0x067e
|
||||
#define a_TCHEH 0x0686
|
||||
#define a_JEH 0x0698
|
||||
#define a_FKAF 0x06a9
|
||||
#define a_GAF 0x06af
|
||||
#define a_FYEH 0x06cc
|
||||
|
||||
#define a_s_LAM_ALEF_MADDA_ABOVE 0xfef5
|
||||
#define a_f_LAM_ALEF_MADDA_ABOVE 0xfef6
|
||||
#define a_s_LAM_ALEF_HAMZA_ABOVE 0xfef7
|
||||
#define a_f_LAM_ALEF_HAMZA_ABOVE 0xfef8
|
||||
#define a_s_LAM_ALEF_HAMZA_BELOW 0xfef9
|
||||
#define a_f_LAM_ALEF_HAMZA_BELOW 0xfefa
|
||||
#define a_s_LAM_ALEF 0xfefb
|
||||
#define a_f_LAM_ALEF 0xfefc
|
||||
|
||||
static struct achar {
|
||||
unsigned c;
|
||||
unsigned isolated;
|
||||
unsigned initial;
|
||||
unsigned medial;
|
||||
unsigned final;
|
||||
} achars[] = {
|
||||
{a_HAMZA, 0xfe80, 0, 0, 0},
|
||||
{a_ALEF_MADDA, 0xfe81, 0, 0, 0xfe82},
|
||||
{a_ALEF_HAMZA_ABOVE, 0xfe83, 0, 0, 0xfe84},
|
||||
{a_WAW_HAMZA, 0xfe85, 0, 0, 0xfe86},
|
||||
{a_ALEF_HAMZA_BELOW, 0xfe87, 0, 0, 0xfe88},
|
||||
{a_YEH_HAMZA, 0xfe89, 0xfe8b, 0xfe8c, 0xfe8a},
|
||||
{a_ALEF, 0xfe8d, 0, 0, 0xfe8e},
|
||||
{a_BEH, 0xfe8f, 0xfe91, 0xfe92, 0xfe90},
|
||||
{a_TEH_MARBUTA, 0xfe93, 0, 0, 0xfe94},
|
||||
{a_TEH, 0xfe95, 0xfe97, 0xfe98, 0xfe96},
|
||||
{a_THEH, 0xfe99, 0xfe9b, 0xfe9c, 0xfe9a},
|
||||
{a_JEEM, 0xfe9d, 0xfe9f, 0xfea0, 0xfe9e},
|
||||
{a_HAH, 0xfea1, 0xfea3, 0xfea4, 0xfea2},
|
||||
{a_KHAH, 0xfea5, 0xfea7, 0xfea8, 0xfea6},
|
||||
{a_DAL, 0xfea9, 0, 0, 0xfeaa},
|
||||
{a_THAL, 0xfeab, 0, 0, 0xfeac},
|
||||
{a_REH, 0xfead, 0, 0, 0xfeae},
|
||||
{a_ZAIN, 0xfeaf, 0, 0, 0xfeb0},
|
||||
{a_SEEN, 0xfeb1, 0xfeb3, 0xfeb4, 0xfeb2},
|
||||
{a_SHEEN, 0xfeb5, 0xfeb7, 0xfeb8, 0xfeb6},
|
||||
{a_SAD, 0xfeb9, 0xfebb, 0xfebc, 0xfeba},
|
||||
{a_DAD, 0xfebd, 0xfebf, 0xfec0, 0xfebe},
|
||||
{a_TAH, 0xfec1, 0xfec3, 0xfec4, 0xfec2},
|
||||
{a_ZAH, 0xfec5, 0xfec7, 0xfec8, 0xfec6},
|
||||
{a_AIN, 0xfec9, 0xfecb, 0xfecc, 0xfeca},
|
||||
{a_GHAIN, 0xfecd, 0xfecf, 0xfed0, 0xfece},
|
||||
{a_TATWEEL, 0, 0x0640, 0x0640, 0x0640},
|
||||
{a_FEH, 0xfed1, 0xfed3, 0xfed4, 0xfed2},
|
||||
{a_QAF, 0xfed5, 0xfed7, 0xfed8, 0xfed6},
|
||||
{a_KAF, 0xfed9, 0xfedb, 0xfedc, 0xfeda},
|
||||
{a_LAM, 0xfedd, 0xfedf, 0xfee0, 0xfede},
|
||||
{a_MEEM, 0xfee1, 0xfee3, 0xfee4, 0xfee2},
|
||||
{a_NOON, 0xfee5, 0xfee7, 0xfee8, 0xfee6},
|
||||
{a_HEH, 0xfee9, 0xfeeb, 0xfeec, 0xfeea},
|
||||
{a_WAW, 0xfeed, 0, 0, 0xfeee},
|
||||
{a_ALEF_MAKSURA, 0xfeef, 0, 0, 0xfef0},
|
||||
{a_YEH, 0xfef1, 0xfef3, 0xfef4, 0xfef2},
|
||||
{a_FATHATAN, 0xfe70, 0, 0, 0},
|
||||
{a_DAMMATAN, 0xfe72, 0, 0, 0},
|
||||
{a_KASRATAN, 0xfe74, 0, 0, 0},
|
||||
{a_FATHA, 0xfe76, 0, 0xfe77, 0},
|
||||
{a_DAMMA, 0xfe78, 0, 0xfe79, 0},
|
||||
{a_KASRA, 0xfe7a, 0, 0xfe7b, 0},
|
||||
{a_SHADDA, 0xfe7c, 0, 0xfe7c, 0},
|
||||
{a_SUKUN, 0xfe7e, 0, 0xfe7f, 0},
|
||||
{a_MADDA_ABOVE, 0, 0, 0, 0},
|
||||
{a_HAMZA_ABOVE, 0, 0, 0, 0},
|
||||
{a_HAMZA_BELOW, 0, 0, 0, 0},
|
||||
{a_PEH, 0xfb56, 0xfb58, 0xfb59, 0xfb57},
|
||||
{a_TCHEH, 0xfb7a, 0xfb7c, 0xfb7d, 0xfb7b},
|
||||
{a_JEH, 0xfb8a, 0, 0, 0xfb8b},
|
||||
{a_FKAF, 0xfb8e, 0xfb90, 0xfb91, 0xfb8f},
|
||||
{a_GAF, 0xfb92, 0xfb94, 0xfb95, 0xfb93},
|
||||
{a_FYEH, 0xfbfc, 0xfbfe, 0xfbff, 0xfbfd},
|
||||
};
|
||||
|
||||
#define a_BYTE_ORDER_MARK 0xfeff
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
|
||||
/*
|
||||
* Returns True if c is an ISO-8859-6 shaped ARABIC letter (user entered)
|
||||
* Find the struct achar pointer to the given Arabic char.
|
||||
* Returns NULL if not found.
|
||||
*/
|
||||
static int
|
||||
A_is_a(int cur_c)
|
||||
static struct achar *
|
||||
find_achar(int c)
|
||||
{
|
||||
switch (cur_c)
|
||||
int h, m, l;
|
||||
|
||||
// using binary search to find c
|
||||
h = ARRAY_SIZE(achars);
|
||||
l = 0;
|
||||
while (l < h)
|
||||
{
|
||||
case a_HAMZA:
|
||||
case a_ALEF_MADDA:
|
||||
case a_ALEF_HAMZA_ABOVE:
|
||||
case a_WAW_HAMZA:
|
||||
case a_ALEF_HAMZA_BELOW:
|
||||
case a_YEH_HAMZA:
|
||||
case a_ALEF:
|
||||
case a_BEH:
|
||||
case a_TEH_MARBUTA:
|
||||
case a_TEH:
|
||||
case a_THEH:
|
||||
case a_JEEM:
|
||||
case a_HAH:
|
||||
case a_KHAH:
|
||||
case a_DAL:
|
||||
case a_THAL:
|
||||
case a_REH:
|
||||
case a_ZAIN:
|
||||
case a_SEEN:
|
||||
case a_SHEEN:
|
||||
case a_SAD:
|
||||
case a_DAD:
|
||||
case a_TAH:
|
||||
case a_ZAH:
|
||||
case a_AIN:
|
||||
case a_GHAIN:
|
||||
case a_TATWEEL:
|
||||
case a_FEH:
|
||||
case a_QAF:
|
||||
case a_KAF:
|
||||
case a_LAM:
|
||||
case a_MEEM:
|
||||
case a_NOON:
|
||||
case a_HEH:
|
||||
case a_WAW:
|
||||
case a_ALEF_MAKSURA:
|
||||
case a_YEH:
|
||||
return TRUE;
|
||||
m = (h + l) / 2;
|
||||
if (achars[m].c == (unsigned)c)
|
||||
return &achars[m];
|
||||
if ((unsigned)c < achars[m].c)
|
||||
h = m;
|
||||
else
|
||||
l = m + 1;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Returns True if c is an Isolated Form-B ARABIC letter
|
||||
*/
|
||||
static int
|
||||
A_is_s(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_s_HAMZA:
|
||||
case a_s_ALEF_MADDA:
|
||||
case a_s_ALEF_HAMZA_ABOVE:
|
||||
case a_s_WAW_HAMZA:
|
||||
case a_s_ALEF_HAMZA_BELOW:
|
||||
case a_s_YEH_HAMZA:
|
||||
case a_s_ALEF:
|
||||
case a_s_BEH:
|
||||
case a_s_TEH_MARBUTA:
|
||||
case a_s_TEH:
|
||||
case a_s_THEH:
|
||||
case a_s_JEEM:
|
||||
case a_s_HAH:
|
||||
case a_s_KHAH:
|
||||
case a_s_DAL:
|
||||
case a_s_THAL:
|
||||
case a_s_REH:
|
||||
case a_s_ZAIN:
|
||||
case a_s_SEEN:
|
||||
case a_s_SHEEN:
|
||||
case a_s_SAD:
|
||||
case a_s_DAD:
|
||||
case a_s_TAH:
|
||||
case a_s_ZAH:
|
||||
case a_s_AIN:
|
||||
case a_s_GHAIN:
|
||||
case a_s_FEH:
|
||||
case a_s_QAF:
|
||||
case a_s_KAF:
|
||||
case a_s_LAM:
|
||||
case a_s_MEEM:
|
||||
case a_s_NOON:
|
||||
case a_s_HEH:
|
||||
case a_s_WAW:
|
||||
case a_s_ALEF_MAKSURA:
|
||||
case a_s_YEH:
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Returns True if c is a Final shape of an ARABIC letter
|
||||
*/
|
||||
static int
|
||||
A_is_f(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_f_ALEF_MADDA:
|
||||
case a_f_ALEF_HAMZA_ABOVE:
|
||||
case a_f_WAW_HAMZA:
|
||||
case a_f_ALEF_HAMZA_BELOW:
|
||||
case a_f_YEH_HAMZA:
|
||||
case a_f_ALEF:
|
||||
case a_f_BEH:
|
||||
case a_f_TEH_MARBUTA:
|
||||
case a_f_TEH:
|
||||
case a_f_THEH:
|
||||
case a_f_JEEM:
|
||||
case a_f_HAH:
|
||||
case a_f_KHAH:
|
||||
case a_f_DAL:
|
||||
case a_f_THAL:
|
||||
case a_f_REH:
|
||||
case a_f_ZAIN:
|
||||
case a_f_SEEN:
|
||||
case a_f_SHEEN:
|
||||
case a_f_SAD:
|
||||
case a_f_DAD:
|
||||
case a_f_TAH:
|
||||
case a_f_ZAH:
|
||||
case a_f_AIN:
|
||||
case a_f_GHAIN:
|
||||
case a_f_FEH:
|
||||
case a_f_QAF:
|
||||
case a_f_KAF:
|
||||
case a_f_LAM:
|
||||
case a_f_MEEM:
|
||||
case a_f_NOON:
|
||||
case a_f_HEH:
|
||||
case a_f_WAW:
|
||||
case a_f_ALEF_MAKSURA:
|
||||
case a_f_YEH:
|
||||
case a_f_LAM_ALEF_MADDA_ABOVE:
|
||||
case a_f_LAM_ALEF_HAMZA_ABOVE:
|
||||
case a_f_LAM_ALEF_HAMZA_BELOW:
|
||||
case a_f_LAM_ALEF:
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from ISO-8859-6/Isolated to Form-B Isolated
|
||||
*/
|
||||
static int
|
||||
chg_c_a2s(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_HAMZA: return a_s_HAMZA;
|
||||
case a_ALEF_MADDA: return a_s_ALEF_MADDA;
|
||||
case a_ALEF_HAMZA_ABOVE: return a_s_ALEF_HAMZA_ABOVE;
|
||||
case a_WAW_HAMZA: return a_s_WAW_HAMZA;
|
||||
case a_ALEF_HAMZA_BELOW: return a_s_ALEF_HAMZA_BELOW;
|
||||
case a_YEH_HAMZA: return a_s_YEH_HAMZA;
|
||||
case a_ALEF: return a_s_ALEF;
|
||||
case a_TEH_MARBUTA: return a_s_TEH_MARBUTA;
|
||||
case a_DAL: return a_s_DAL;
|
||||
case a_THAL: return a_s_THAL;
|
||||
case a_REH: return a_s_REH;
|
||||
case a_ZAIN: return a_s_ZAIN;
|
||||
case a_TATWEEL: return cur_c; /* exceptions */
|
||||
case a_WAW: return a_s_WAW;
|
||||
case a_ALEF_MAKSURA: return a_s_ALEF_MAKSURA;
|
||||
case a_BEH: return a_s_BEH;
|
||||
case a_TEH: return a_s_TEH;
|
||||
case a_THEH: return a_s_THEH;
|
||||
case a_JEEM: return a_s_JEEM;
|
||||
case a_HAH: return a_s_HAH;
|
||||
case a_KHAH: return a_s_KHAH;
|
||||
case a_SEEN: return a_s_SEEN;
|
||||
case a_SHEEN: return a_s_SHEEN;
|
||||
case a_SAD: return a_s_SAD;
|
||||
case a_DAD: return a_s_DAD;
|
||||
case a_TAH: return a_s_TAH;
|
||||
case a_ZAH: return a_s_ZAH;
|
||||
case a_AIN: return a_s_AIN;
|
||||
case a_GHAIN: return a_s_GHAIN;
|
||||
case a_FEH: return a_s_FEH;
|
||||
case a_QAF: return a_s_QAF;
|
||||
case a_KAF: return a_s_KAF;
|
||||
case a_LAM: return a_s_LAM;
|
||||
case a_MEEM: return a_s_MEEM;
|
||||
case a_NOON: return a_s_NOON;
|
||||
case a_HEH: return a_s_HEH;
|
||||
case a_YEH: return a_s_YEH;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from ISO-8859-6/Isolated to Initial
|
||||
*/
|
||||
static int
|
||||
chg_c_a2i(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_YEH_HAMZA: return a_i_YEH_HAMZA;
|
||||
case a_HAMZA: /* exceptions */
|
||||
return a_s_HAMZA;
|
||||
case a_ALEF_MADDA: /* exceptions */
|
||||
return a_s_ALEF_MADDA;
|
||||
case a_ALEF_HAMZA_ABOVE: /* exceptions */
|
||||
return a_s_ALEF_HAMZA_ABOVE;
|
||||
case a_WAW_HAMZA: /* exceptions */
|
||||
return a_s_WAW_HAMZA;
|
||||
case a_ALEF_HAMZA_BELOW: /* exceptions */
|
||||
return a_s_ALEF_HAMZA_BELOW;
|
||||
case a_ALEF: /* exceptions */
|
||||
return a_s_ALEF;
|
||||
case a_TEH_MARBUTA: /* exceptions */
|
||||
return a_s_TEH_MARBUTA;
|
||||
case a_DAL: /* exceptions */
|
||||
return a_s_DAL;
|
||||
case a_THAL: /* exceptions */
|
||||
return a_s_THAL;
|
||||
case a_REH: /* exceptions */
|
||||
return a_s_REH;
|
||||
case a_ZAIN: /* exceptions */
|
||||
return a_s_ZAIN;
|
||||
case a_TATWEEL: /* exceptions */
|
||||
return cur_c;
|
||||
case a_WAW: /* exceptions */
|
||||
return a_s_WAW;
|
||||
case a_ALEF_MAKSURA: /* exceptions */
|
||||
return a_s_ALEF_MAKSURA;
|
||||
case a_BEH: return a_i_BEH;
|
||||
case a_TEH: return a_i_TEH;
|
||||
case a_THEH: return a_i_THEH;
|
||||
case a_JEEM: return a_i_JEEM;
|
||||
case a_HAH: return a_i_HAH;
|
||||
case a_KHAH: return a_i_KHAH;
|
||||
case a_SEEN: return a_i_SEEN;
|
||||
case a_SHEEN: return a_i_SHEEN;
|
||||
case a_SAD: return a_i_SAD;
|
||||
case a_DAD: return a_i_DAD;
|
||||
case a_TAH: return a_i_TAH;
|
||||
case a_ZAH: return a_i_ZAH;
|
||||
case a_AIN: return a_i_AIN;
|
||||
case a_GHAIN: return a_i_GHAIN;
|
||||
case a_FEH: return a_i_FEH;
|
||||
case a_QAF: return a_i_QAF;
|
||||
case a_KAF: return a_i_KAF;
|
||||
case a_LAM: return a_i_LAM;
|
||||
case a_MEEM: return a_i_MEEM;
|
||||
case a_NOON: return a_i_NOON;
|
||||
case a_HEH: return a_i_HEH;
|
||||
case a_YEH: return a_i_YEH;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from ISO-8859-6/Isolated to Medial
|
||||
*/
|
||||
static int
|
||||
chg_c_a2m(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_HAMZA: return a_s_HAMZA; /* exception */
|
||||
case a_ALEF_MADDA: return a_f_ALEF_MADDA; /* exception */
|
||||
case a_ALEF_HAMZA_ABOVE: return a_f_ALEF_HAMZA_ABOVE; /* exception */
|
||||
case a_WAW_HAMZA: return a_f_WAW_HAMZA; /* exception */
|
||||
case a_ALEF_HAMZA_BELOW: return a_f_ALEF_HAMZA_BELOW; /* exception */
|
||||
case a_YEH_HAMZA: return a_m_YEH_HAMZA;
|
||||
case a_ALEF: return a_f_ALEF; /* exception */
|
||||
case a_BEH: return a_m_BEH;
|
||||
case a_TEH_MARBUTA: return a_f_TEH_MARBUTA; /* exception */
|
||||
case a_TEH: return a_m_TEH;
|
||||
case a_THEH: return a_m_THEH;
|
||||
case a_JEEM: return a_m_JEEM;
|
||||
case a_HAH: return a_m_HAH;
|
||||
case a_KHAH: return a_m_KHAH;
|
||||
case a_DAL: return a_f_DAL; /* exception */
|
||||
case a_THAL: return a_f_THAL; /* exception */
|
||||
case a_REH: return a_f_REH; /* exception */
|
||||
case a_ZAIN: return a_f_ZAIN; /* exception */
|
||||
case a_SEEN: return a_m_SEEN;
|
||||
case a_SHEEN: return a_m_SHEEN;
|
||||
case a_SAD: return a_m_SAD;
|
||||
case a_DAD: return a_m_DAD;
|
||||
case a_TAH: return a_m_TAH;
|
||||
case a_ZAH: return a_m_ZAH;
|
||||
case a_AIN: return a_m_AIN;
|
||||
case a_GHAIN: return a_m_GHAIN;
|
||||
case a_TATWEEL: return cur_c; /* exception */
|
||||
case a_FEH: return a_m_FEH;
|
||||
case a_QAF: return a_m_QAF;
|
||||
case a_KAF: return a_m_KAF;
|
||||
case a_LAM: return a_m_LAM;
|
||||
case a_MEEM: return a_m_MEEM;
|
||||
case a_NOON: return a_m_NOON;
|
||||
case a_HEH: return a_m_HEH;
|
||||
case a_WAW: return a_f_WAW; /* exception */
|
||||
case a_ALEF_MAKSURA: return a_f_ALEF_MAKSURA; /* exception */
|
||||
case a_YEH: return a_m_YEH;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from ISO-8859-6/Isolated to final
|
||||
*/
|
||||
static int
|
||||
chg_c_a2f(int cur_c)
|
||||
{
|
||||
/* NOTE: these encodings need to be accounted for
|
||||
* a_f_ALEF_MADDA;
|
||||
* a_f_ALEF_HAMZA_ABOVE;
|
||||
* a_f_ALEF_HAMZA_BELOW;
|
||||
* a_f_LAM_ALEF_MADDA_ABOVE;
|
||||
* a_f_LAM_ALEF_HAMZA_ABOVE;
|
||||
* a_f_LAM_ALEF_HAMZA_BELOW;
|
||||
*/
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_HAMZA: return a_s_HAMZA; /* exception */
|
||||
case a_ALEF_MADDA: return a_f_ALEF_MADDA;
|
||||
case a_ALEF_HAMZA_ABOVE: return a_f_ALEF_HAMZA_ABOVE;
|
||||
case a_WAW_HAMZA: return a_f_WAW_HAMZA;
|
||||
case a_ALEF_HAMZA_BELOW: return a_f_ALEF_HAMZA_BELOW;
|
||||
case a_YEH_HAMZA: return a_f_YEH_HAMZA;
|
||||
case a_ALEF: return a_f_ALEF;
|
||||
case a_BEH: return a_f_BEH;
|
||||
case a_TEH_MARBUTA: return a_f_TEH_MARBUTA;
|
||||
case a_TEH: return a_f_TEH;
|
||||
case a_THEH: return a_f_THEH;
|
||||
case a_JEEM: return a_f_JEEM;
|
||||
case a_HAH: return a_f_HAH;
|
||||
case a_KHAH: return a_f_KHAH;
|
||||
case a_DAL: return a_f_DAL;
|
||||
case a_THAL: return a_f_THAL;
|
||||
case a_REH: return a_f_REH;
|
||||
case a_ZAIN: return a_f_ZAIN;
|
||||
case a_SEEN: return a_f_SEEN;
|
||||
case a_SHEEN: return a_f_SHEEN;
|
||||
case a_SAD: return a_f_SAD;
|
||||
case a_DAD: return a_f_DAD;
|
||||
case a_TAH: return a_f_TAH;
|
||||
case a_ZAH: return a_f_ZAH;
|
||||
case a_AIN: return a_f_AIN;
|
||||
case a_GHAIN: return a_f_GHAIN;
|
||||
case a_TATWEEL: return cur_c; /* exception */
|
||||
case a_FEH: return a_f_FEH;
|
||||
case a_QAF: return a_f_QAF;
|
||||
case a_KAF: return a_f_KAF;
|
||||
case a_LAM: return a_f_LAM;
|
||||
case a_MEEM: return a_f_MEEM;
|
||||
case a_NOON: return a_f_NOON;
|
||||
case a_HEH: return a_f_HEH;
|
||||
case a_WAW: return a_f_WAW;
|
||||
case a_ALEF_MAKSURA: return a_f_ALEF_MAKSURA;
|
||||
case a_YEH: return a_f_YEH;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from Initial to Medial
|
||||
* This code is unreachable, because for the relevant characters ARABIC_CHAR()
|
||||
* is FALSE;
|
||||
*/
|
||||
#if 0
|
||||
static int
|
||||
chg_c_i2m(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
case a_i_YEH_HAMZA: return a_m_YEH_HAMZA;
|
||||
case a_i_BEH: return a_m_BEH;
|
||||
case a_i_TEH: return a_m_TEH;
|
||||
case a_i_THEH: return a_m_THEH;
|
||||
case a_i_JEEM: return a_m_JEEM;
|
||||
case a_i_HAH: return a_m_HAH;
|
||||
case a_i_KHAH: return a_m_KHAH;
|
||||
case a_i_SEEN: return a_m_SEEN;
|
||||
case a_i_SHEEN: return a_m_SHEEN;
|
||||
case a_i_SAD: return a_m_SAD;
|
||||
case a_i_DAD: return a_m_DAD;
|
||||
case a_i_TAH: return a_m_TAH;
|
||||
case a_i_ZAH: return a_m_ZAH;
|
||||
case a_i_AIN: return a_m_AIN;
|
||||
case a_i_GHAIN: return a_m_GHAIN;
|
||||
case a_i_FEH: return a_m_FEH;
|
||||
case a_i_QAF: return a_m_QAF;
|
||||
case a_i_KAF: return a_m_KAF;
|
||||
case a_i_LAM: return a_m_LAM;
|
||||
case a_i_MEEM: return a_m_MEEM;
|
||||
case a_i_NOON: return a_m_NOON;
|
||||
case a_i_HEH: return a_m_HEH;
|
||||
case a_i_YEH: return a_m_YEH;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from Final to Medial
|
||||
*/
|
||||
static int
|
||||
chg_c_f2m(int cur_c)
|
||||
{
|
||||
switch (cur_c)
|
||||
{
|
||||
/* NOTE: these encodings are multi-positional, no ?
|
||||
* case a_f_ALEF_MADDA:
|
||||
* case a_f_ALEF_HAMZA_ABOVE:
|
||||
* case a_f_ALEF_HAMZA_BELOW:
|
||||
*/
|
||||
case a_f_YEH_HAMZA: return a_m_YEH_HAMZA;
|
||||
case a_f_WAW_HAMZA: /* exceptions */
|
||||
case a_f_ALEF:
|
||||
case a_f_TEH_MARBUTA:
|
||||
case a_f_DAL:
|
||||
case a_f_THAL:
|
||||
case a_f_REH:
|
||||
case a_f_ZAIN:
|
||||
case a_f_WAW:
|
||||
case a_f_ALEF_MAKSURA:
|
||||
return cur_c;
|
||||
case a_f_BEH: return a_m_BEH;
|
||||
case a_f_TEH: return a_m_TEH;
|
||||
case a_f_THEH: return a_m_THEH;
|
||||
case a_f_JEEM: return a_m_JEEM;
|
||||
case a_f_HAH: return a_m_HAH;
|
||||
case a_f_KHAH: return a_m_KHAH;
|
||||
case a_f_SEEN: return a_m_SEEN;
|
||||
case a_f_SHEEN: return a_m_SHEEN;
|
||||
case a_f_SAD: return a_m_SAD;
|
||||
case a_f_DAD: return a_m_DAD;
|
||||
case a_f_TAH: return a_m_TAH;
|
||||
case a_f_ZAH: return a_m_ZAH;
|
||||
case a_f_AIN: return a_m_AIN;
|
||||
case a_f_GHAIN: return a_m_GHAIN;
|
||||
case a_f_FEH: return a_m_FEH;
|
||||
case a_f_QAF: return a_m_QAF;
|
||||
case a_f_KAF: return a_m_KAF;
|
||||
case a_f_LAM: return a_m_LAM;
|
||||
case a_f_MEEM: return a_m_MEEM;
|
||||
case a_f_NOON: return a_m_NOON;
|
||||
case a_f_HEH: return a_m_HEH;
|
||||
case a_f_YEH: return a_m_YEH;
|
||||
|
||||
/* NOTE: these encodings are multi-positional, no ?
|
||||
* case a_f_LAM_ALEF_MADDA_ABOVE:
|
||||
* case a_f_LAM_ALEF_HAMZA_ABOVE:
|
||||
* case a_f_LAM_ALEF_HAMZA_BELOW:
|
||||
* case a_f_LAM_ALEF:
|
||||
*/
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Change shape - from Combination (2 char) to an Isolated
|
||||
*/
|
||||
static int
|
||||
chg_c_laa2i(int hid_c)
|
||||
{
|
||||
int tempc;
|
||||
|
||||
switch (hid_c)
|
||||
{
|
||||
case a_ALEF_MADDA: return a_s_LAM_ALEF_MADDA_ABOVE;
|
||||
case a_ALEF_HAMZA_ABOVE: return a_s_LAM_ALEF_HAMZA_ABOVE;
|
||||
case a_ALEF_HAMZA_BELOW: return a_s_LAM_ALEF_HAMZA_BELOW;
|
||||
case a_ALEF: return a_s_LAM_ALEF;
|
||||
case a_ALEF_MADDA:
|
||||
tempc = a_s_LAM_ALEF_MADDA_ABOVE;
|
||||
break;
|
||||
case a_ALEF_HAMZA_ABOVE:
|
||||
tempc = a_s_LAM_ALEF_HAMZA_ABOVE;
|
||||
break;
|
||||
case a_ALEF_HAMZA_BELOW:
|
||||
tempc = a_s_LAM_ALEF_HAMZA_BELOW;
|
||||
break;
|
||||
case a_ALEF:
|
||||
tempc = a_s_LAM_ALEF;
|
||||
break;
|
||||
default:
|
||||
tempc = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return tempc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Change shape - from Combination-Isolated to Final
|
||||
@@ -525,27 +225,97 @@ chg_c_laa2i(int hid_c)
|
||||
static int
|
||||
chg_c_laa2f(int hid_c)
|
||||
{
|
||||
int tempc;
|
||||
|
||||
switch (hid_c)
|
||||
{
|
||||
case a_ALEF_MADDA: return a_f_LAM_ALEF_MADDA_ABOVE;
|
||||
case a_ALEF_HAMZA_ABOVE: return a_f_LAM_ALEF_HAMZA_ABOVE;
|
||||
case a_ALEF_HAMZA_BELOW: return a_f_LAM_ALEF_HAMZA_BELOW;
|
||||
case a_ALEF: return a_f_LAM_ALEF;
|
||||
case a_ALEF_MADDA:
|
||||
tempc = a_f_LAM_ALEF_MADDA_ABOVE;
|
||||
break;
|
||||
case a_ALEF_HAMZA_ABOVE:
|
||||
tempc = a_f_LAM_ALEF_HAMZA_ABOVE;
|
||||
break;
|
||||
case a_ALEF_HAMZA_BELOW:
|
||||
tempc = a_f_LAM_ALEF_HAMZA_BELOW;
|
||||
break;
|
||||
case a_ALEF:
|
||||
tempc = a_f_LAM_ALEF;
|
||||
break;
|
||||
default:
|
||||
tempc = 0;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return tempc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Do "half-shaping" on character "c". Return zero if no shaping.
|
||||
* Returns whether it is possible to join the given letters
|
||||
*/
|
||||
static int
|
||||
half_shape(int c)
|
||||
can_join(int c1, int c2)
|
||||
{
|
||||
if (A_is_a(c))
|
||||
return chg_c_a2i(c);
|
||||
if (A_is_valid(c) && A_is_f(c))
|
||||
return chg_c_f2m(c);
|
||||
return 0;
|
||||
struct achar *a1 = find_achar(c1);
|
||||
struct achar *a2 = find_achar(c2);
|
||||
|
||||
return a1 && a2 && (a1->initial || a1->medial) && (a2->final || a2->medial);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check whether we are dealing with a character that could be regarded as an
|
||||
* Arabic combining character, need to check the character before this.
|
||||
*/
|
||||
int
|
||||
arabic_maycombine(int two)
|
||||
{
|
||||
if (p_arshape && !p_tbidi)
|
||||
return (two == a_ALEF_MADDA
|
||||
|| two == a_ALEF_HAMZA_ABOVE
|
||||
|| two == a_ALEF_HAMZA_BELOW
|
||||
|| two == a_ALEF);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check whether we are dealing with Arabic combining characters.
|
||||
* Note: these are NOT really composing characters!
|
||||
*/
|
||||
int
|
||||
arabic_combine(
|
||||
int one, // first character
|
||||
int two) // character just after "one"
|
||||
{
|
||||
if (one == a_LAM)
|
||||
return arabic_maycombine(two);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* A_is_iso returns true if 'c' is an Arabic ISO-8859-6 character
|
||||
* (alphabet/number/punctuation)
|
||||
*/
|
||||
static int
|
||||
A_is_iso(int c)
|
||||
{
|
||||
return find_achar(c) != NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* A_is_ok returns true if 'c' is an Arabic 10646 (8859-6 or Form-B)
|
||||
*/
|
||||
static int
|
||||
A_is_ok(int c)
|
||||
{
|
||||
return (A_is_iso(c) || c == a_BYTE_ORDER_MARK);
|
||||
}
|
||||
|
||||
/*
|
||||
* A_is_valid returns true if 'c' is an Arabic 10646 (8859-6 or Form-B)
|
||||
* with some exceptions/exclusions
|
||||
*/
|
||||
static int
|
||||
A_is_valid(int c)
|
||||
{
|
||||
return (A_is_ok(c) && c != a_HAMZA);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -567,48 +337,49 @@ arabic_shape(
|
||||
int next_c)
|
||||
{
|
||||
int curr_c;
|
||||
int shape_c;
|
||||
int curr_laa;
|
||||
int prev_laa;
|
||||
|
||||
/* Deal only with Arabic character, pass back all others */
|
||||
// Deal only with Arabic characters, pass back all others
|
||||
if (!A_is_ok(c))
|
||||
return c;
|
||||
|
||||
/* half-shape current and previous character */
|
||||
shape_c = half_shape(prev_c);
|
||||
|
||||
curr_laa = A_firstc_laa(c, *c1p);
|
||||
prev_laa = A_firstc_laa(prev_c, prev_c1);
|
||||
curr_laa = arabic_combine(c, *c1p);
|
||||
prev_laa = arabic_combine(prev_c, prev_c1);
|
||||
|
||||
if (curr_laa)
|
||||
{
|
||||
if (A_is_valid(prev_c) && !A_is_f(shape_c)
|
||||
&& !A_is_s(shape_c) && !prev_laa)
|
||||
curr_c = chg_c_laa2f(curr_laa);
|
||||
if (A_is_valid(prev_c) && can_join(prev_c, a_LAM) && !prev_laa)
|
||||
curr_c = chg_c_laa2f(*c1p);
|
||||
else
|
||||
curr_c = chg_c_laa2i(curr_laa);
|
||||
curr_c = chg_c_laa2i(*c1p);
|
||||
|
||||
/* Remove the composing character */
|
||||
// Remove the composing character
|
||||
*c1p = 0;
|
||||
}
|
||||
else if (!A_is_valid(prev_c) && A_is_valid(next_c))
|
||||
curr_c = chg_c_a2i(c);
|
||||
else if (!shape_c || A_is_f(shape_c) || A_is_s(shape_c) || prev_laa)
|
||||
curr_c = A_is_valid(next_c) ? chg_c_a2i(c) : chg_c_a2s(c);
|
||||
else if (A_is_valid(next_c))
|
||||
#if 0
|
||||
curr_c = A_is_iso(c) ? chg_c_a2m(c) : chg_c_i2m(c);
|
||||
#else
|
||||
curr_c = A_is_iso(c) ? chg_c_a2m(c) : 0;
|
||||
#endif
|
||||
else if (A_is_valid(prev_c))
|
||||
curr_c = chg_c_a2f(c);
|
||||
else
|
||||
curr_c = chg_c_a2s(c);
|
||||
{
|
||||
struct achar *curr_a = find_achar(c);
|
||||
int backward_combine = !prev_laa && can_join(prev_c, c);
|
||||
int forward_combine = can_join(c, next_c);
|
||||
|
||||
/* Sanity check -- curr_c should, in the future, never be 0.
|
||||
* We should, in the future, insert a fatal error here. */
|
||||
if (backward_combine)
|
||||
{
|
||||
if (forward_combine)
|
||||
curr_c = curr_a->medial;
|
||||
else
|
||||
curr_c = curr_a->final;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (forward_combine)
|
||||
curr_c = curr_a->initial;
|
||||
else
|
||||
curr_c = curr_a->isolated;
|
||||
}
|
||||
}
|
||||
|
||||
// Character missing from the table means using original character.
|
||||
if (curr_c == NUL)
|
||||
curr_c = c;
|
||||
|
||||
@@ -616,97 +387,12 @@ arabic_shape(
|
||||
{
|
||||
char_u buf[MB_MAXBYTES + 1];
|
||||
|
||||
/* Update the first byte of the character. */
|
||||
// Update the first byte of the character.
|
||||
(*mb_char2bytes)(curr_c, buf);
|
||||
*ccp = buf[0];
|
||||
}
|
||||
|
||||
/* Return the shaped character */
|
||||
// Return the shaped character
|
||||
return curr_c;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_firstc_laa returns first character of LAA combination if it exists
|
||||
*/
|
||||
static int
|
||||
A_firstc_laa(
|
||||
int c, /* base character */
|
||||
int c1) /* first composing character */
|
||||
{
|
||||
if (c1 != NUL && c == a_LAM && !A_is_harakat(c1))
|
||||
return c1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_is_harakat returns TRUE if 'c' is an Arabic Harakat character
|
||||
* (harakat/tanween)
|
||||
*/
|
||||
static int
|
||||
A_is_harakat(int c)
|
||||
{
|
||||
return (c >= a_FATHATAN && c <= a_SUKUN);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_is_iso returns TRUE if 'c' is an Arabic ISO-8859-6 character
|
||||
* (alphabet/number/punctuation)
|
||||
*/
|
||||
static int
|
||||
A_is_iso(int c)
|
||||
{
|
||||
return ((c >= a_HAMZA && c <= a_GHAIN)
|
||||
|| (c >= a_TATWEEL && c <= a_HAMZA_BELOW)
|
||||
|| c == a_MINI_ALEF);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_is_formb returns TRUE if 'c' is an Arabic 10646-1 FormB character
|
||||
* (alphabet/number/punctuation)
|
||||
*/
|
||||
static int
|
||||
A_is_formb(int c)
|
||||
{
|
||||
return ((c >= a_s_FATHATAN && c <= a_s_DAMMATAN)
|
||||
|| c == a_s_KASRATAN
|
||||
|| (c >= a_s_FATHA && c <= a_f_LAM_ALEF)
|
||||
|| c == a_BYTE_ORDER_MARK);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_is_ok returns TRUE if 'c' is an Arabic 10646 (8859-6 or Form-B)
|
||||
*/
|
||||
static int
|
||||
A_is_ok(int c)
|
||||
{
|
||||
return (A_is_iso(c) || A_is_formb(c));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_is_valid returns TRUE if 'c' is an Arabic 10646 (8859-6 or Form-B)
|
||||
* with some exceptions/exclusions
|
||||
*/
|
||||
static int
|
||||
A_is_valid(int c)
|
||||
{
|
||||
return (A_is_ok(c) && !A_is_special(c));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* A_is_special returns TRUE if 'c' is not a special Arabic character.
|
||||
* Specials don't adhere to most of the rules.
|
||||
*/
|
||||
static int
|
||||
A_is_special(int c)
|
||||
{
|
||||
return (c == a_HAMZA || c == a_s_HAMZA);
|
||||
}
|
||||
|
||||
#endif /* FEAT_ARABIC */
|
||||
#endif // FEAT_ARABIC
|
||||
|
||||
258
src/arabic.h
258
src/arabic.h
@@ -1,258 +0,0 @@
|
||||
/* vi:set ts=8 sts=4 sw=4 noet:
|
||||
*
|
||||
* VIM - Vi IMproved by Bram Moolenaar
|
||||
*
|
||||
* Do ":help uganda" in Vim to read copying and usage conditions.
|
||||
* Do ":help credits" in Vim to see a list of people who contributed.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Arabic characters are categorized into following types:
|
||||
*
|
||||
* Isolated - iso-8859-6 form char denoted with a_*
|
||||
* Initial - unicode form-B start char denoted with a_i_*
|
||||
* Medial - unicode form-B middle char denoted with a_m_*
|
||||
* Final - unicode form-B final char denoted with a_f_*
|
||||
* Stand-Alone - unicode form-B isolated char denoted with a_s_* (NOT USED)
|
||||
*
|
||||
* --
|
||||
*
|
||||
* Author: Nadim Shaikli & Isam Bayazidi
|
||||
* - (based on Unicode)
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Arabic ISO-10646-1 character set definition
|
||||
*/
|
||||
|
||||
/*
|
||||
* Arabic ISO-8859-6 (subset of 10646; 0600 - 06FF)
|
||||
*/
|
||||
#define a_COMMA 0x060C
|
||||
#define a_SEMICOLON 0x061B
|
||||
#define a_QUESTION 0x061F
|
||||
#define a_HAMZA 0x0621
|
||||
#define a_ALEF_MADDA 0x0622
|
||||
#define a_ALEF_HAMZA_ABOVE 0x0623
|
||||
#define a_WAW_HAMZA 0x0624
|
||||
#define a_ALEF_HAMZA_BELOW 0x0625
|
||||
#define a_YEH_HAMZA 0x0626
|
||||
#define a_ALEF 0x0627
|
||||
#define a_BEH 0x0628
|
||||
#define a_TEH_MARBUTA 0x0629
|
||||
#define a_TEH 0x062a
|
||||
#define a_THEH 0x062b
|
||||
#define a_JEEM 0x062c
|
||||
#define a_HAH 0x062d
|
||||
#define a_KHAH 0x062e
|
||||
#define a_DAL 0x062f
|
||||
#define a_THAL 0x0630
|
||||
#define a_REH 0x0631
|
||||
#define a_ZAIN 0x0632
|
||||
#define a_SEEN 0x0633
|
||||
#define a_SHEEN 0x0634
|
||||
#define a_SAD 0x0635
|
||||
#define a_DAD 0x0636
|
||||
#define a_TAH 0x0637
|
||||
#define a_ZAH 0x0638
|
||||
#define a_AIN 0x0639
|
||||
#define a_GHAIN 0x063a
|
||||
#define a_TATWEEL 0x0640
|
||||
#define a_FEH 0x0641
|
||||
#define a_QAF 0x0642
|
||||
#define a_KAF 0x0643
|
||||
#define a_LAM 0x0644
|
||||
#define a_MEEM 0x0645
|
||||
#define a_NOON 0x0646
|
||||
#define a_HEH 0x0647
|
||||
#define a_WAW 0x0648
|
||||
#define a_ALEF_MAKSURA 0x0649
|
||||
#define a_YEH 0x064a
|
||||
|
||||
#define a_FATHATAN 0x064b
|
||||
#define a_DAMMATAN 0x064c
|
||||
#define a_KASRATAN 0x064d
|
||||
#define a_FATHA 0x064e
|
||||
#define a_DAMMA 0x064f
|
||||
#define a_KASRA 0x0650
|
||||
#define a_SHADDA 0x0651
|
||||
#define a_SUKUN 0x0652
|
||||
|
||||
#define a_MADDA_ABOVE 0x0653
|
||||
#define a_HAMZA_ABOVE 0x0654
|
||||
#define a_HAMZA_BELOW 0x0655
|
||||
|
||||
#define a_ZERO 0x0660
|
||||
#define a_ONE 0x0661
|
||||
#define a_TWO 0x0662
|
||||
#define a_THREE 0x0663
|
||||
#define a_FOUR 0x0664
|
||||
#define a_FIVE 0x0665
|
||||
#define a_SIX 0x0666
|
||||
#define a_SEVEN 0x0667
|
||||
#define a_EIGHT 0x0668
|
||||
#define a_NINE 0x0669
|
||||
#define a_PERCENT 0x066a
|
||||
#define a_DECIMAL 0x066b
|
||||
#define a_THOUSANDS 0x066c
|
||||
#define a_STAR 0x066d
|
||||
#define a_MINI_ALEF 0x0670
|
||||
/* Rest of 8859-6 does not relate to Arabic */
|
||||
|
||||
/*
|
||||
* Arabic Presentation Form-B (subset of 10646; FE70 - FEFF)
|
||||
*
|
||||
* s -> isolated
|
||||
* i -> initial
|
||||
* m -> medial
|
||||
* f -> final
|
||||
*
|
||||
*/
|
||||
#define a_s_FATHATAN 0xfe70
|
||||
#define a_m_TATWEEL_FATHATAN 0xfe71
|
||||
#define a_s_DAMMATAN 0xfe72
|
||||
|
||||
#define a_s_KASRATAN 0xfe74
|
||||
|
||||
#define a_s_FATHA 0xfe76
|
||||
#define a_m_FATHA 0xfe77
|
||||
#define a_s_DAMMA 0xfe78
|
||||
#define a_m_DAMMA 0xfe79
|
||||
#define a_s_KASRA 0xfe7a
|
||||
#define a_m_KASRA 0xfe7b
|
||||
#define a_s_SHADDA 0xfe7c
|
||||
#define a_m_SHADDA 0xfe7d
|
||||
#define a_s_SUKUN 0xfe7e
|
||||
#define a_m_SUKUN 0xfe7f
|
||||
|
||||
#define a_s_HAMZA 0xfe80
|
||||
#define a_s_ALEF_MADDA 0xfe81
|
||||
#define a_f_ALEF_MADDA 0xfe82
|
||||
#define a_s_ALEF_HAMZA_ABOVE 0xfe83
|
||||
#define a_f_ALEF_HAMZA_ABOVE 0xfe84
|
||||
#define a_s_WAW_HAMZA 0xfe85
|
||||
#define a_f_WAW_HAMZA 0xfe86
|
||||
#define a_s_ALEF_HAMZA_BELOW 0xfe87
|
||||
#define a_f_ALEF_HAMZA_BELOW 0xfe88
|
||||
#define a_s_YEH_HAMZA 0xfe89
|
||||
#define a_f_YEH_HAMZA 0xfe8a
|
||||
#define a_i_YEH_HAMZA 0xfe8b
|
||||
#define a_m_YEH_HAMZA 0xfe8c
|
||||
#define a_s_ALEF 0xfe8d
|
||||
#define a_f_ALEF 0xfe8e
|
||||
#define a_s_BEH 0xfe8f
|
||||
#define a_f_BEH 0xfe90
|
||||
#define a_i_BEH 0xfe91
|
||||
#define a_m_BEH 0xfe92
|
||||
#define a_s_TEH_MARBUTA 0xfe93
|
||||
#define a_f_TEH_MARBUTA 0xfe94
|
||||
#define a_s_TEH 0xfe95
|
||||
#define a_f_TEH 0xfe96
|
||||
#define a_i_TEH 0xfe97
|
||||
#define a_m_TEH 0xfe98
|
||||
#define a_s_THEH 0xfe99
|
||||
#define a_f_THEH 0xfe9a
|
||||
#define a_i_THEH 0xfe9b
|
||||
#define a_m_THEH 0xfe9c
|
||||
#define a_s_JEEM 0xfe9d
|
||||
#define a_f_JEEM 0xfe9e
|
||||
#define a_i_JEEM 0xfe9f
|
||||
#define a_m_JEEM 0xfea0
|
||||
#define a_s_HAH 0xfea1
|
||||
#define a_f_HAH 0xfea2
|
||||
#define a_i_HAH 0xfea3
|
||||
#define a_m_HAH 0xfea4
|
||||
#define a_s_KHAH 0xfea5
|
||||
#define a_f_KHAH 0xfea6
|
||||
#define a_i_KHAH 0xfea7
|
||||
#define a_m_KHAH 0xfea8
|
||||
#define a_s_DAL 0xfea9
|
||||
#define a_f_DAL 0xfeaa
|
||||
#define a_s_THAL 0xfeab
|
||||
#define a_f_THAL 0xfeac
|
||||
#define a_s_REH 0xfead
|
||||
#define a_f_REH 0xfeae
|
||||
#define a_s_ZAIN 0xfeaf
|
||||
#define a_f_ZAIN 0xfeb0
|
||||
#define a_s_SEEN 0xfeb1
|
||||
#define a_f_SEEN 0xfeb2
|
||||
#define a_i_SEEN 0xfeb3
|
||||
#define a_m_SEEN 0xfeb4
|
||||
#define a_s_SHEEN 0xfeb5
|
||||
#define a_f_SHEEN 0xfeb6
|
||||
#define a_i_SHEEN 0xfeb7
|
||||
#define a_m_SHEEN 0xfeb8
|
||||
#define a_s_SAD 0xfeb9
|
||||
#define a_f_SAD 0xfeba
|
||||
#define a_i_SAD 0xfebb
|
||||
#define a_m_SAD 0xfebc
|
||||
#define a_s_DAD 0xfebd
|
||||
#define a_f_DAD 0xfebe
|
||||
#define a_i_DAD 0xfebf
|
||||
#define a_m_DAD 0xfec0
|
||||
#define a_s_TAH 0xfec1
|
||||
#define a_f_TAH 0xfec2
|
||||
#define a_i_TAH 0xfec3
|
||||
#define a_m_TAH 0xfec4
|
||||
#define a_s_ZAH 0xfec5
|
||||
#define a_f_ZAH 0xfec6
|
||||
#define a_i_ZAH 0xfec7
|
||||
#define a_m_ZAH 0xfec8
|
||||
#define a_s_AIN 0xfec9
|
||||
#define a_f_AIN 0xfeca
|
||||
#define a_i_AIN 0xfecb
|
||||
#define a_m_AIN 0xfecc
|
||||
#define a_s_GHAIN 0xfecd
|
||||
#define a_f_GHAIN 0xfece
|
||||
#define a_i_GHAIN 0xfecf
|
||||
#define a_m_GHAIN 0xfed0
|
||||
#define a_s_FEH 0xfed1
|
||||
#define a_f_FEH 0xfed2
|
||||
#define a_i_FEH 0xfed3
|
||||
#define a_m_FEH 0xfed4
|
||||
#define a_s_QAF 0xfed5
|
||||
#define a_f_QAF 0xfed6
|
||||
#define a_i_QAF 0xfed7
|
||||
#define a_m_QAF 0xfed8
|
||||
#define a_s_KAF 0xfed9
|
||||
#define a_f_KAF 0xfeda
|
||||
#define a_i_KAF 0xfedb
|
||||
#define a_m_KAF 0xfedc
|
||||
#define a_s_LAM 0xfedd
|
||||
#define a_f_LAM 0xfede
|
||||
#define a_i_LAM 0xfedf
|
||||
#define a_m_LAM 0xfee0
|
||||
#define a_s_MEEM 0xfee1
|
||||
#define a_f_MEEM 0xfee2
|
||||
#define a_i_MEEM 0xfee3
|
||||
#define a_m_MEEM 0xfee4
|
||||
#define a_s_NOON 0xfee5
|
||||
#define a_f_NOON 0xfee6
|
||||
#define a_i_NOON 0xfee7
|
||||
#define a_m_NOON 0xfee8
|
||||
#define a_s_HEH 0xfee9
|
||||
#define a_f_HEH 0xfeea
|
||||
#define a_i_HEH 0xfeeb
|
||||
#define a_m_HEH 0xfeec
|
||||
#define a_s_WAW 0xfeed
|
||||
#define a_f_WAW 0xfeee
|
||||
#define a_s_ALEF_MAKSURA 0xfeef
|
||||
#define a_f_ALEF_MAKSURA 0xfef0
|
||||
#define a_s_YEH 0xfef1
|
||||
#define a_f_YEH 0xfef2
|
||||
#define a_i_YEH 0xfef3
|
||||
#define a_m_YEH 0xfef4
|
||||
#define a_s_LAM_ALEF_MADDA_ABOVE 0xfef5
|
||||
#define a_f_LAM_ALEF_MADDA_ABOVE 0xfef6
|
||||
#define a_s_LAM_ALEF_HAMZA_ABOVE 0xfef7
|
||||
#define a_f_LAM_ALEF_HAMZA_ABOVE 0xfef8
|
||||
#define a_s_LAM_ALEF_HAMZA_BELOW 0xfef9
|
||||
#define a_f_LAM_ALEF_HAMZA_BELOW 0xfefa
|
||||
#define a_s_LAM_ALEF 0xfefb
|
||||
#define a_f_LAM_ALEF 0xfefc
|
||||
|
||||
#define a_BYTE_ORDER_MARK 0xfeff
|
||||
|
||||
/* Range of Arabic characters that might be shaped. */
|
||||
#define ARABIC_CHAR(c) ((c) >= a_HAMZA && (c) <= a_MINI_ALEF)
|
||||
13
src/auto/configure
vendored
13
src/auto/configure
vendored
@@ -623,6 +623,7 @@ ac_subst_vars='LTLIBOBJS
|
||||
LIBOBJS
|
||||
LINK_AS_NEEDED
|
||||
DEPEND_CFLAGS_FILTER
|
||||
MSGFMT_DESKTOP
|
||||
MAKEMO
|
||||
MSGFMT
|
||||
INSTALL_TOOL_LANGS
|
||||
@@ -14533,6 +14534,18 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt supports --desktop" >&5
|
||||
$as_echo_n "checking if msgfmt supports --desktop... " >&6; }
|
||||
MSGFMT_DESKTOP=
|
||||
if "$MSGFMT" --help | grep -e '--desktop' >/dev/null; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
MSGFMT_DESKTOP="gvim.desktop vim.desktop"
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
fi
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no \"po/Makefile\" - disabled" >&5
|
||||
|
||||
@@ -52,6 +52,7 @@ typedef struct AutoCmd
|
||||
{
|
||||
char_u *cmd; // The command to be executed (NULL
|
||||
// when command has been removed).
|
||||
char once; // "One shot": removed after execution
|
||||
char nested; // If autocommands nest here.
|
||||
char last; // last command in list
|
||||
#ifdef FEAT_EVAL
|
||||
@@ -111,6 +112,7 @@ static struct event_name
|
||||
{"CmdUndefined", EVENT_CMDUNDEFINED},
|
||||
{"ColorScheme", EVENT_COLORSCHEME},
|
||||
{"ColorSchemePre", EVENT_COLORSCHEMEPRE},
|
||||
{"CompleteChanged", EVENT_COMPLETECHANGED},
|
||||
{"CompleteDone", EVENT_COMPLETEDONE},
|
||||
{"CursorHold", EVENT_CURSORHOLD},
|
||||
{"CursorHoldI", EVENT_CURSORHOLDI},
|
||||
@@ -256,7 +258,7 @@ static int au_need_clean = FALSE; /* need to delete marked patterns */
|
||||
|
||||
static char_u *event_nr2name(event_T event);
|
||||
static int au_get_grouparg(char_u **argp);
|
||||
static int do_autocmd_event(event_T event, char_u *pat, int nested, char_u *cmd, int forceit, int group);
|
||||
static int do_autocmd_event(event_T event, char_u *pat, int once, int nested, char_u *cmd, int forceit, int group);
|
||||
static int apply_autocmds_group(event_T event, char_u *fname, char_u *fname_io, int force, int group, buf_T *buf, exarg_T *eap);
|
||||
static void auto_next_pat(AutoPatCmd *apc, int stop_at_last);
|
||||
static int au_find_group(char_u *name);
|
||||
@@ -361,6 +363,13 @@ au_remove_cmds(AutoPat *ap)
|
||||
au_need_clean = TRUE;
|
||||
}
|
||||
|
||||
// Delete one command from an autocmd pattern.
|
||||
static void au_del_cmd(AutoCmd *ac)
|
||||
{
|
||||
VIM_CLEAR(ac->cmd);
|
||||
au_need_clean = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Cleanup autocommands and patterns that have been deleted.
|
||||
* This is only done when not executing autocommands.
|
||||
@@ -383,6 +392,8 @@ au_cleanup(void)
|
||||
prev_ap = &(first_autopat[(int)event]);
|
||||
for (ap = *prev_ap; ap != NULL; ap = *prev_ap)
|
||||
{
|
||||
int has_cmd = FALSE;
|
||||
|
||||
// loop over all commands for this pattern
|
||||
prev_ac = &(ap->cmds);
|
||||
for (ac = *prev_ac; ac != NULL; ac = *prev_ac)
|
||||
@@ -396,9 +407,17 @@ au_cleanup(void)
|
||||
vim_free(ac);
|
||||
}
|
||||
else
|
||||
{
|
||||
has_cmd = TRUE;
|
||||
prev_ac = &(ac->next);
|
||||
}
|
||||
}
|
||||
|
||||
if (ap->pat != NULL && !has_cmd)
|
||||
// Pattern was not marked for deletion, but all of its
|
||||
// commands were. So mark the pattern for deletion.
|
||||
au_remove_pat(ap);
|
||||
|
||||
// remove the pattern if it has been marked for deletion
|
||||
if (ap->pat == NULL)
|
||||
{
|
||||
@@ -517,9 +536,7 @@ au_del_group(char_u *name)
|
||||
}
|
||||
vim_free(AUGROUP_NAME(i));
|
||||
if (in_use)
|
||||
{
|
||||
AUGROUP_NAME(i) = get_deleted_augroup();
|
||||
}
|
||||
else
|
||||
AUGROUP_NAME(i) = NULL;
|
||||
}
|
||||
@@ -817,7 +834,9 @@ do_autocmd(char_u *arg_in, int forceit)
|
||||
event_T event;
|
||||
int need_free = FALSE;
|
||||
int nested = FALSE;
|
||||
int once = FALSE;
|
||||
int group;
|
||||
int i;
|
||||
|
||||
if (*arg == '|')
|
||||
{
|
||||
@@ -876,15 +895,38 @@ do_autocmd(char_u *arg_in, int forceit)
|
||||
pat = envpat;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for "nested" flag.
|
||||
*/
|
||||
cmd = skipwhite(cmd);
|
||||
if (*cmd != NUL && STRNCMP(cmd, "nested", 6) == 0
|
||||
&& VIM_ISWHITE(cmd[6]))
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 6);
|
||||
if (*cmd != NUL)
|
||||
{
|
||||
// Check for "++once" flag.
|
||||
if (STRNCMP(cmd, "++once", 6) == 0 && VIM_ISWHITE(cmd[6]))
|
||||
{
|
||||
if (once)
|
||||
semsg(_(e_duparg2), "++once");
|
||||
once = TRUE;
|
||||
cmd = skipwhite(cmd + 6);
|
||||
}
|
||||
|
||||
// Check for "++nested" flag.
|
||||
if ((STRNCMP(cmd, "++nested", 8) == 0 && VIM_ISWHITE(cmd[8])))
|
||||
{
|
||||
if (nested)
|
||||
semsg(_(e_duparg2), "++nested");
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 8);
|
||||
}
|
||||
|
||||
// Check for the old "nested" flag.
|
||||
if (STRNCMP(cmd, "nested", 6) == 0 && VIM_ISWHITE(cmd[6]))
|
||||
{
|
||||
if (nested)
|
||||
semsg(_(e_duparg2), "nested");
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -917,14 +959,14 @@ do_autocmd(char_u *arg_in, int forceit)
|
||||
for (event = (event_T)0; (int)event < (int)NUM_EVENTS;
|
||||
event = (event_T)((int)event + 1))
|
||||
if (do_autocmd_event(event, pat,
|
||||
nested, cmd, forceit, group) == FAIL)
|
||||
once, nested, cmd, forceit, group) == FAIL)
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
while (*arg && *arg != '|' && !VIM_ISWHITE(*arg))
|
||||
if (do_autocmd_event(event_name2nr(arg, &arg), pat,
|
||||
nested, cmd, forceit, group) == FAIL)
|
||||
once, nested, cmd, forceit, group) == FAIL)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -975,6 +1017,7 @@ au_get_grouparg(char_u **argp)
|
||||
do_autocmd_event(
|
||||
event_T event,
|
||||
char_u *pat,
|
||||
int once,
|
||||
int nested,
|
||||
char_u *cmd,
|
||||
int forceit,
|
||||
@@ -1214,6 +1257,7 @@ do_autocmd_event(
|
||||
}
|
||||
ac->next = NULL;
|
||||
*prev_ac = ac;
|
||||
ac->once = once;
|
||||
ac->nested = nested;
|
||||
}
|
||||
}
|
||||
@@ -1751,6 +1795,17 @@ has_textyankpost(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* Return TRUE when there is a CompleteChanged autocommand defined.
|
||||
*/
|
||||
int
|
||||
has_completechanged(void)
|
||||
{
|
||||
return (first_autopat[(int)EVENT_COMPLETECHANGED] != NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Execute autocommands for "event" and file name "fname".
|
||||
* Return TRUE if some commands were executed.
|
||||
@@ -2321,6 +2376,9 @@ getnextac(int c UNUSED, void *cookie, int indent UNUSED)
|
||||
verbose_leave_scroll();
|
||||
}
|
||||
retval = vim_strsave(ac->cmd);
|
||||
// Remove one-shot ("once") autocmd in anticipation of its execution.
|
||||
if (ac->once)
|
||||
au_del_cmd(ac);
|
||||
autocmd_nested = ac->nested;
|
||||
#ifdef FEAT_EVAL
|
||||
current_sctx = ac->script_ctx;
|
||||
|
||||
11
src/buffer.c
11
src/buffer.c
@@ -1595,9 +1595,7 @@ do_buffer(
|
||||
set_curbuf(buf, action);
|
||||
|
||||
if (action == DOBUF_SPLIT)
|
||||
{
|
||||
RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
|
||||
}
|
||||
|
||||
#if defined(FEAT_EVAL)
|
||||
if (aborting()) /* autocmds may abort script processing */
|
||||
@@ -1855,6 +1853,9 @@ curbuf_reusable(void)
|
||||
&& curbuf->b_ffname == NULL
|
||||
&& curbuf->b_nwindows <= 1
|
||||
&& (curbuf->b_ml.ml_mfp == NULL || BUFEMPTY())
|
||||
#if defined(FEAT_QUICKFIX)
|
||||
&& !bt_quickfix(curbuf)
|
||||
#endif
|
||||
&& !curbufIsChanged());
|
||||
}
|
||||
|
||||
@@ -3054,9 +3055,8 @@ buflist_list(exarg_T *eap)
|
||||
/* put "line 999" in column 40 or after the file name */
|
||||
i = 40 - vim_strsize(IObuff);
|
||||
do
|
||||
{
|
||||
IObuff[len++] = ' ';
|
||||
} while (--i > 0 && len < IOSIZE - 18);
|
||||
while (--i > 0 && len < IOSIZE - 18);
|
||||
vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len),
|
||||
_("line %ld"), buf == curbuf ? curwin->w_cursor.lnum
|
||||
: (long)buflist_findlnum(buf));
|
||||
@@ -5496,9 +5496,10 @@ chk_modeline(
|
||||
current_sctx.sc_sid = SID_MODELINE;
|
||||
current_sctx.sc_seq = 0;
|
||||
current_sctx.sc_lnum = 0;
|
||||
current_sctx.sc_version = 1;
|
||||
#endif
|
||||
// Make sure no risky things are executed as a side effect.
|
||||
++secure;
|
||||
secure = 1;
|
||||
|
||||
retval = do_set(s, OPT_MODELINE | OPT_LOCAL | flags);
|
||||
|
||||
|
||||
@@ -1906,7 +1906,7 @@ channel_save(channel_T *channel, ch_part_T part, char_u *buf, int len,
|
||||
|
||||
if (prepend)
|
||||
{
|
||||
/* preend node to the head of the queue */
|
||||
// prepend node to the head of the queue
|
||||
node->rq_next = head->rq_next;
|
||||
node->rq_prev = NULL;
|
||||
if (head->rq_next == NULL)
|
||||
@@ -1917,7 +1917,7 @@ channel_save(channel_T *channel, ch_part_T part, char_u *buf, int len,
|
||||
}
|
||||
else
|
||||
{
|
||||
/* append node to the tail of the queue */
|
||||
// append node to the tail of the queue
|
||||
node->rq_next = NULL;
|
||||
node->rq_prev = head->rq_prev;
|
||||
if (head->rq_prev == NULL)
|
||||
@@ -5877,6 +5877,7 @@ job_start(
|
||||
ga_concat(&ga, (char_u *)" ");
|
||||
ga_concat(&ga, (char_u *)argv[i]);
|
||||
}
|
||||
ga_append(&ga, NUL);
|
||||
ch_log(NULL, "Starting job: %s", (char *)ga.ga_data);
|
||||
ga_clear(&ga);
|
||||
}
|
||||
|
||||
@@ -169,6 +169,7 @@ OS_EXTRA_OBJ = @OS_EXTRA_OBJ@
|
||||
MAKEMO = @MAKEMO@
|
||||
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_DESKTOP = @MSGFMT_DESKTOP@
|
||||
|
||||
# Make sure that "make first" will run "make all" once configure has done its
|
||||
# work. This is needed when using the Makefile in the top directory.
|
||||
|
||||
@@ -4298,6 +4298,15 @@ if test "$enable_nls" = "yes"; then
|
||||
[++_nl_msg_cat_cntr;],
|
||||
AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
|
||||
AC_MSG_RESULT([no]))
|
||||
AC_MSG_CHECKING([if msgfmt supports --desktop])
|
||||
MSGFMT_DESKTOP=
|
||||
if "$MSGFMT" --help | grep -e '--desktop' >/dev/null; then
|
||||
AC_MSG_RESULT([yes])
|
||||
MSGFMT_DESKTOP="gvim.desktop vim.desktop"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_SUBST(MSGFMT_DESKTOP)
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no "po/Makefile" - disabled]);
|
||||
|
||||
@@ -42,7 +42,7 @@ typedef struct {
|
||||
/* Optional function pointer for a self-test. */
|
||||
int (* self_test_fn)();
|
||||
|
||||
// Function pointer for initializing encryption/description.
|
||||
// Function pointer for initializing encryption/decryption.
|
||||
void (* init_fn)(cryptstate_T *state, char_u *key,
|
||||
char_u *salt, int salt_len, char_u *seed, int seed_len);
|
||||
|
||||
|
||||
@@ -68,12 +68,12 @@ make_crc_tab(void)
|
||||
/*
|
||||
* Update the encryption keys with the next byte of plain text.
|
||||
*/
|
||||
#define UPDATE_KEYS_ZIP(keys, c) { \
|
||||
#define UPDATE_KEYS_ZIP(keys, c) do { \
|
||||
keys[0] = CRC32(keys[0], (c)); \
|
||||
keys[1] += keys[0] & 0xff; \
|
||||
keys[1] = keys[1] * 134775813L + 1; \
|
||||
keys[2] = CRC32(keys[2], (int)(keys[1] >> 24)); \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Initialize for encryption/decryption.
|
||||
@@ -98,9 +98,7 @@ crypt_zip_init(
|
||||
zs->keys[1] = 591751049L;
|
||||
zs->keys[2] = 878082192L;
|
||||
for (p = key; *p != NUL; ++p)
|
||||
{
|
||||
UPDATE_KEYS_ZIP(zs->keys, (int)*p);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
990
src/debugger.c
Normal file
990
src/debugger.c
Normal file
@@ -0,0 +1,990 @@
|
||||
/* vi:set ts=8 sts=4 sw=4 noet:
|
||||
*
|
||||
* VIM - Vi IMproved by Bram Moolenaar
|
||||
*
|
||||
* Do ":help uganda" in Vim to read copying and usage conditions.
|
||||
* Do ":help credits" in Vim to see a list of people who contributed.
|
||||
* See README.txt for an overview of the Vim source code.
|
||||
*/
|
||||
|
||||
/*
|
||||
* debugger.c: Vim script debugger functions
|
||||
*/
|
||||
|
||||
#include "vim.h"
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
static int debug_greedy = FALSE; /* batch mode debugging: don't save
|
||||
and restore typeahead. */
|
||||
static void do_setdebugtracelevel(char_u *arg);
|
||||
static void do_checkbacktracelevel(void);
|
||||
static void do_showbacktrace(char_u *cmd);
|
||||
|
||||
static char_u *debug_oldval = NULL; /* old and newval for debug expressions */
|
||||
static char_u *debug_newval = NULL;
|
||||
static int debug_expr = 0; /* use debug_expr */
|
||||
|
||||
int
|
||||
has_watchexpr(void)
|
||||
{
|
||||
return debug_expr;
|
||||
}
|
||||
|
||||
/*
|
||||
* do_debug(): Debug mode.
|
||||
* Repeatedly get Ex commands, until told to continue normal execution.
|
||||
*/
|
||||
void
|
||||
do_debug(char_u *cmd)
|
||||
{
|
||||
int save_msg_scroll = msg_scroll;
|
||||
int save_State = State;
|
||||
int save_did_emsg = did_emsg;
|
||||
int save_cmd_silent = cmd_silent;
|
||||
int save_msg_silent = msg_silent;
|
||||
int save_emsg_silent = emsg_silent;
|
||||
int save_redir_off = redir_off;
|
||||
tasave_T typeaheadbuf;
|
||||
int typeahead_saved = FALSE;
|
||||
int save_ignore_script = 0;
|
||||
int save_ex_normal_busy;
|
||||
int n;
|
||||
char_u *cmdline = NULL;
|
||||
char_u *p;
|
||||
char *tail = NULL;
|
||||
static int last_cmd = 0;
|
||||
#define CMD_CONT 1
|
||||
#define CMD_NEXT 2
|
||||
#define CMD_STEP 3
|
||||
#define CMD_FINISH 4
|
||||
#define CMD_QUIT 5
|
||||
#define CMD_INTERRUPT 6
|
||||
#define CMD_BACKTRACE 7
|
||||
#define CMD_FRAME 8
|
||||
#define CMD_UP 9
|
||||
#define CMD_DOWN 10
|
||||
|
||||
#ifdef ALWAYS_USE_GUI
|
||||
/* Can't do this when there is no terminal for input/output. */
|
||||
if (!gui.in_use)
|
||||
{
|
||||
/* Break as soon as possible. */
|
||||
debug_break_level = 9999;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure we are in raw mode and start termcap mode. Might have side
|
||||
* effects... */
|
||||
settmode(TMODE_RAW);
|
||||
starttermcap();
|
||||
|
||||
++RedrawingDisabled; /* don't redisplay the window */
|
||||
++no_wait_return; /* don't wait for return */
|
||||
did_emsg = FALSE; /* don't use error from debugged stuff */
|
||||
cmd_silent = FALSE; /* display commands */
|
||||
msg_silent = FALSE; /* display messages */
|
||||
emsg_silent = FALSE; /* display error messages */
|
||||
redir_off = TRUE; /* don't redirect debug commands */
|
||||
|
||||
State = NORMAL;
|
||||
debug_mode = TRUE;
|
||||
|
||||
if (!debug_did_msg)
|
||||
msg(_("Entering Debug mode. Type \"cont\" to continue."));
|
||||
if (debug_oldval != NULL)
|
||||
{
|
||||
smsg(_("Oldval = \"%s\""), debug_oldval);
|
||||
vim_free(debug_oldval);
|
||||
debug_oldval = NULL;
|
||||
}
|
||||
if (debug_newval != NULL)
|
||||
{
|
||||
smsg(_("Newval = \"%s\""), debug_newval);
|
||||
vim_free(debug_newval);
|
||||
debug_newval = NULL;
|
||||
}
|
||||
if (sourcing_name != NULL)
|
||||
msg((char *)sourcing_name);
|
||||
if (sourcing_lnum != 0)
|
||||
smsg(_("line %ld: %s"), (long)sourcing_lnum, cmd);
|
||||
else
|
||||
smsg(_("cmd: %s"), cmd);
|
||||
/*
|
||||
* Repeat getting a command and executing it.
|
||||
*/
|
||||
for (;;)
|
||||
{
|
||||
msg_scroll = TRUE;
|
||||
need_wait_return = FALSE;
|
||||
|
||||
/* Save the current typeahead buffer and replace it with an empty one.
|
||||
* This makes sure we get input from the user here and don't interfere
|
||||
* with the commands being executed. Reset "ex_normal_busy" to avoid
|
||||
* the side effects of using ":normal". Save the stuff buffer and make
|
||||
* it empty. Set ignore_script to avoid reading from script input. */
|
||||
save_ex_normal_busy = ex_normal_busy;
|
||||
ex_normal_busy = 0;
|
||||
if (!debug_greedy)
|
||||
{
|
||||
save_typeahead(&typeaheadbuf);
|
||||
typeahead_saved = TRUE;
|
||||
save_ignore_script = ignore_script;
|
||||
ignore_script = TRUE;
|
||||
}
|
||||
|
||||
vim_free(cmdline);
|
||||
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
|
||||
|
||||
if (typeahead_saved)
|
||||
{
|
||||
restore_typeahead(&typeaheadbuf);
|
||||
ignore_script = save_ignore_script;
|
||||
}
|
||||
ex_normal_busy = save_ex_normal_busy;
|
||||
|
||||
cmdline_row = msg_row;
|
||||
msg_starthere();
|
||||
if (cmdline != NULL)
|
||||
{
|
||||
/* If this is a debug command, set "last_cmd".
|
||||
* If not, reset "last_cmd".
|
||||
* For a blank line use previous command. */
|
||||
p = skipwhite(cmdline);
|
||||
if (*p != NUL)
|
||||
{
|
||||
switch (*p)
|
||||
{
|
||||
case 'c': last_cmd = CMD_CONT;
|
||||
tail = "ont";
|
||||
break;
|
||||
case 'n': last_cmd = CMD_NEXT;
|
||||
tail = "ext";
|
||||
break;
|
||||
case 's': last_cmd = CMD_STEP;
|
||||
tail = "tep";
|
||||
break;
|
||||
case 'f':
|
||||
last_cmd = 0;
|
||||
if (p[1] == 'r')
|
||||
{
|
||||
last_cmd = CMD_FRAME;
|
||||
tail = "rame";
|
||||
}
|
||||
else
|
||||
{
|
||||
last_cmd = CMD_FINISH;
|
||||
tail = "inish";
|
||||
}
|
||||
break;
|
||||
case 'q': last_cmd = CMD_QUIT;
|
||||
tail = "uit";
|
||||
break;
|
||||
case 'i': last_cmd = CMD_INTERRUPT;
|
||||
tail = "nterrupt";
|
||||
break;
|
||||
case 'b': last_cmd = CMD_BACKTRACE;
|
||||
if (p[1] == 't')
|
||||
tail = "t";
|
||||
else
|
||||
tail = "acktrace";
|
||||
break;
|
||||
case 'w': last_cmd = CMD_BACKTRACE;
|
||||
tail = "here";
|
||||
break;
|
||||
case 'u': last_cmd = CMD_UP;
|
||||
tail = "p";
|
||||
break;
|
||||
case 'd': last_cmd = CMD_DOWN;
|
||||
tail = "own";
|
||||
break;
|
||||
default: last_cmd = 0;
|
||||
}
|
||||
if (last_cmd != 0)
|
||||
{
|
||||
/* Check that the tail matches. */
|
||||
++p;
|
||||
while (*p != NUL && *p == *tail)
|
||||
{
|
||||
++p;
|
||||
++tail;
|
||||
}
|
||||
if (ASCII_ISALPHA(*p) && last_cmd != CMD_FRAME)
|
||||
last_cmd = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (last_cmd != 0)
|
||||
{
|
||||
/* Execute debug command: decided where to break next and
|
||||
* return. */
|
||||
switch (last_cmd)
|
||||
{
|
||||
case CMD_CONT:
|
||||
debug_break_level = -1;
|
||||
break;
|
||||
case CMD_NEXT:
|
||||
debug_break_level = ex_nesting_level;
|
||||
break;
|
||||
case CMD_STEP:
|
||||
debug_break_level = 9999;
|
||||
break;
|
||||
case CMD_FINISH:
|
||||
debug_break_level = ex_nesting_level - 1;
|
||||
break;
|
||||
case CMD_QUIT:
|
||||
got_int = TRUE;
|
||||
debug_break_level = -1;
|
||||
break;
|
||||
case CMD_INTERRUPT:
|
||||
got_int = TRUE;
|
||||
debug_break_level = 9999;
|
||||
/* Do not repeat ">interrupt" cmd, continue stepping. */
|
||||
last_cmd = CMD_STEP;
|
||||
break;
|
||||
case CMD_BACKTRACE:
|
||||
do_showbacktrace(cmd);
|
||||
continue;
|
||||
case CMD_FRAME:
|
||||
if (*p == NUL)
|
||||
{
|
||||
do_showbacktrace(cmd);
|
||||
}
|
||||
else
|
||||
{
|
||||
p = skipwhite(p);
|
||||
do_setdebugtracelevel(p);
|
||||
}
|
||||
continue;
|
||||
case CMD_UP:
|
||||
debug_backtrace_level++;
|
||||
do_checkbacktracelevel();
|
||||
continue;
|
||||
case CMD_DOWN:
|
||||
debug_backtrace_level--;
|
||||
do_checkbacktracelevel();
|
||||
continue;
|
||||
}
|
||||
/* Going out reset backtrace_level */
|
||||
debug_backtrace_level = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
/* don't debug this command */
|
||||
n = debug_break_level;
|
||||
debug_break_level = -1;
|
||||
(void)do_cmdline(cmdline, getexline, NULL,
|
||||
DOCMD_VERBOSE|DOCMD_EXCRESET);
|
||||
debug_break_level = n;
|
||||
}
|
||||
lines_left = Rows - 1;
|
||||
}
|
||||
vim_free(cmdline);
|
||||
|
||||
--RedrawingDisabled;
|
||||
--no_wait_return;
|
||||
redraw_all_later(NOT_VALID);
|
||||
need_wait_return = FALSE;
|
||||
msg_scroll = save_msg_scroll;
|
||||
lines_left = Rows - 1;
|
||||
State = save_State;
|
||||
debug_mode = FALSE;
|
||||
did_emsg = save_did_emsg;
|
||||
cmd_silent = save_cmd_silent;
|
||||
msg_silent = save_msg_silent;
|
||||
emsg_silent = save_emsg_silent;
|
||||
redir_off = save_redir_off;
|
||||
|
||||
/* Only print the message again when typing a command before coming back
|
||||
* here. */
|
||||
debug_did_msg = TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
get_maxbacktrace_level(void)
|
||||
{
|
||||
char *p, *q;
|
||||
int maxbacktrace = 0;
|
||||
|
||||
if (sourcing_name != NULL)
|
||||
{
|
||||
p = (char *)sourcing_name;
|
||||
while ((q = strstr(p, "..")) != NULL)
|
||||
{
|
||||
p = q + 2;
|
||||
maxbacktrace++;
|
||||
}
|
||||
}
|
||||
return maxbacktrace;
|
||||
}
|
||||
|
||||
static void
|
||||
do_setdebugtracelevel(char_u *arg)
|
||||
{
|
||||
int level;
|
||||
|
||||
level = atoi((char *)arg);
|
||||
if (*arg == '+' || level < 0)
|
||||
debug_backtrace_level += level;
|
||||
else
|
||||
debug_backtrace_level = level;
|
||||
|
||||
do_checkbacktracelevel();
|
||||
}
|
||||
|
||||
static void
|
||||
do_checkbacktracelevel(void)
|
||||
{
|
||||
if (debug_backtrace_level < 0)
|
||||
{
|
||||
debug_backtrace_level = 0;
|
||||
msg(_("frame is zero"));
|
||||
}
|
||||
else
|
||||
{
|
||||
int max = get_maxbacktrace_level();
|
||||
|
||||
if (debug_backtrace_level > max)
|
||||
{
|
||||
debug_backtrace_level = max;
|
||||
smsg(_("frame at highest level: %d"), max);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
do_showbacktrace(char_u *cmd)
|
||||
{
|
||||
char *cur;
|
||||
char *next;
|
||||
int i = 0;
|
||||
int max = get_maxbacktrace_level();
|
||||
|
||||
if (sourcing_name != NULL)
|
||||
{
|
||||
cur = (char *)sourcing_name;
|
||||
while (!got_int)
|
||||
{
|
||||
next = strstr(cur, "..");
|
||||
if (next != NULL)
|
||||
*next = NUL;
|
||||
if (i == max - debug_backtrace_level)
|
||||
smsg("->%d %s", max - i, cur);
|
||||
else
|
||||
smsg(" %d %s", max - i, cur);
|
||||
++i;
|
||||
if (next == NULL)
|
||||
break;
|
||||
*next = '.';
|
||||
cur = next + 2;
|
||||
}
|
||||
}
|
||||
if (sourcing_lnum != 0)
|
||||
smsg(_("line %ld: %s"), (long)sourcing_lnum, cmd);
|
||||
else
|
||||
smsg(_("cmd: %s"), cmd);
|
||||
}
|
||||
|
||||
/*
|
||||
* ":debug".
|
||||
*/
|
||||
void
|
||||
ex_debug(exarg_T *eap)
|
||||
{
|
||||
int debug_break_level_save = debug_break_level;
|
||||
|
||||
debug_break_level = 9999;
|
||||
do_cmdline_cmd(eap->arg);
|
||||
debug_break_level = debug_break_level_save;
|
||||
}
|
||||
|
||||
static char_u *debug_breakpoint_name = NULL;
|
||||
static linenr_T debug_breakpoint_lnum;
|
||||
|
||||
/*
|
||||
* When debugging or a breakpoint is set on a skipped command, no debug prompt
|
||||
* is shown by do_one_cmd(). This situation is indicated by debug_skipped, and
|
||||
* debug_skipped_name is then set to the source name in the breakpoint case. If
|
||||
* a skipped command decides itself that a debug prompt should be displayed, it
|
||||
* can do so by calling dbg_check_skipped().
|
||||
*/
|
||||
static int debug_skipped;
|
||||
static char_u *debug_skipped_name;
|
||||
|
||||
/*
|
||||
* Go to debug mode when a breakpoint was encountered or "ex_nesting_level" is
|
||||
* at or below the break level. But only when the line is actually
|
||||
* executed. Return TRUE and set breakpoint_name for skipped commands that
|
||||
* decide to execute something themselves.
|
||||
* Called from do_one_cmd() before executing a command.
|
||||
*/
|
||||
void
|
||||
dbg_check_breakpoint(exarg_T *eap)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
debug_skipped = FALSE;
|
||||
if (debug_breakpoint_name != NULL)
|
||||
{
|
||||
if (!eap->skip)
|
||||
{
|
||||
/* replace K_SNR with "<SNR>" */
|
||||
if (debug_breakpoint_name[0] == K_SPECIAL
|
||||
&& debug_breakpoint_name[1] == KS_EXTRA
|
||||
&& debug_breakpoint_name[2] == (int)KE_SNR)
|
||||
p = (char_u *)"<SNR>";
|
||||
else
|
||||
p = (char_u *)"";
|
||||
smsg(_("Breakpoint in \"%s%s\" line %ld"),
|
||||
p,
|
||||
debug_breakpoint_name + (*p == NUL ? 0 : 3),
|
||||
(long)debug_breakpoint_lnum);
|
||||
debug_breakpoint_name = NULL;
|
||||
do_debug(eap->cmd);
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_skipped = TRUE;
|
||||
debug_skipped_name = debug_breakpoint_name;
|
||||
debug_breakpoint_name = NULL;
|
||||
}
|
||||
}
|
||||
else if (ex_nesting_level <= debug_break_level)
|
||||
{
|
||||
if (!eap->skip)
|
||||
do_debug(eap->cmd);
|
||||
else
|
||||
{
|
||||
debug_skipped = TRUE;
|
||||
debug_skipped_name = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Go to debug mode if skipped by dbg_check_breakpoint() because eap->skip was
|
||||
* set. Return TRUE when the debug mode is entered this time.
|
||||
*/
|
||||
int
|
||||
dbg_check_skipped(exarg_T *eap)
|
||||
{
|
||||
int prev_got_int;
|
||||
|
||||
if (debug_skipped)
|
||||
{
|
||||
/*
|
||||
* Save the value of got_int and reset it. We don't want a previous
|
||||
* interruption cause flushing the input buffer.
|
||||
*/
|
||||
prev_got_int = got_int;
|
||||
got_int = FALSE;
|
||||
debug_breakpoint_name = debug_skipped_name;
|
||||
/* eap->skip is TRUE */
|
||||
eap->skip = FALSE;
|
||||
(void)dbg_check_breakpoint(eap);
|
||||
eap->skip = TRUE;
|
||||
got_int |= prev_got_int;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* The list of breakpoints: dbg_breakp.
|
||||
* This is a grow-array of structs.
|
||||
*/
|
||||
struct debuggy
|
||||
{
|
||||
int dbg_nr; /* breakpoint number */
|
||||
int dbg_type; /* DBG_FUNC, DBG_FILE or DBG_EXPR */
|
||||
char_u *dbg_name; /* function, expression or file name */
|
||||
regprog_T *dbg_prog; /* regexp program */
|
||||
linenr_T dbg_lnum; /* line number in function or file */
|
||||
int dbg_forceit; /* ! used */
|
||||
#ifdef FEAT_EVAL
|
||||
typval_T *dbg_val; /* last result of watchexpression */
|
||||
#endif
|
||||
int dbg_level; /* stored nested level for expr */
|
||||
};
|
||||
|
||||
static garray_T dbg_breakp = {0, 0, sizeof(struct debuggy), 4, NULL};
|
||||
#define BREAKP(idx) (((struct debuggy *)dbg_breakp.ga_data)[idx])
|
||||
#define DEBUGGY(gap, idx) (((struct debuggy *)gap->ga_data)[idx])
|
||||
static int last_breakp = 0; /* nr of last defined breakpoint */
|
||||
|
||||
#ifdef FEAT_PROFILE
|
||||
/* Profiling uses file and func names similar to breakpoints. */
|
||||
static garray_T prof_ga = {0, 0, sizeof(struct debuggy), 4, NULL};
|
||||
#endif
|
||||
#define DBG_FUNC 1
|
||||
#define DBG_FILE 2
|
||||
#define DBG_EXPR 3
|
||||
|
||||
static linenr_T debuggy_find(int file,char_u *fname, linenr_T after, garray_T *gap, int *fp);
|
||||
|
||||
/*
|
||||
* Parse the arguments of ":profile", ":breakadd" or ":breakdel" and put them
|
||||
* in the entry just after the last one in dbg_breakp. Note that "dbg_name"
|
||||
* is allocated.
|
||||
* Returns FAIL for failure.
|
||||
*/
|
||||
static int
|
||||
dbg_parsearg(
|
||||
char_u *arg,
|
||||
garray_T *gap) /* either &dbg_breakp or &prof_ga */
|
||||
{
|
||||
char_u *p = arg;
|
||||
char_u *q;
|
||||
struct debuggy *bp;
|
||||
int here = FALSE;
|
||||
|
||||
if (ga_grow(gap, 1) == FAIL)
|
||||
return FAIL;
|
||||
bp = &DEBUGGY(gap, gap->ga_len);
|
||||
|
||||
/* Find "func" or "file". */
|
||||
if (STRNCMP(p, "func", 4) == 0)
|
||||
bp->dbg_type = DBG_FUNC;
|
||||
else if (STRNCMP(p, "file", 4) == 0)
|
||||
bp->dbg_type = DBG_FILE;
|
||||
else if (
|
||||
#ifdef FEAT_PROFILE
|
||||
gap != &prof_ga &&
|
||||
#endif
|
||||
STRNCMP(p, "here", 4) == 0)
|
||||
{
|
||||
if (curbuf->b_ffname == NULL)
|
||||
{
|
||||
emsg(_(e_noname));
|
||||
return FAIL;
|
||||
}
|
||||
bp->dbg_type = DBG_FILE;
|
||||
here = TRUE;
|
||||
}
|
||||
else if (
|
||||
#ifdef FEAT_PROFILE
|
||||
gap != &prof_ga &&
|
||||
#endif
|
||||
STRNCMP(p, "expr", 4) == 0)
|
||||
bp->dbg_type = DBG_EXPR;
|
||||
else
|
||||
{
|
||||
semsg(_(e_invarg2), p);
|
||||
return FAIL;
|
||||
}
|
||||
p = skipwhite(p + 4);
|
||||
|
||||
/* Find optional line number. */
|
||||
if (here)
|
||||
bp->dbg_lnum = curwin->w_cursor.lnum;
|
||||
else if (
|
||||
#ifdef FEAT_PROFILE
|
||||
gap != &prof_ga &&
|
||||
#endif
|
||||
VIM_ISDIGIT(*p))
|
||||
{
|
||||
bp->dbg_lnum = getdigits(&p);
|
||||
p = skipwhite(p);
|
||||
}
|
||||
else
|
||||
bp->dbg_lnum = 0;
|
||||
|
||||
/* Find the function or file name. Don't accept a function name with (). */
|
||||
if ((!here && *p == NUL)
|
||||
|| (here && *p != NUL)
|
||||
|| (bp->dbg_type == DBG_FUNC && strstr((char *)p, "()") != NULL))
|
||||
{
|
||||
semsg(_(e_invarg2), arg);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
if (bp->dbg_type == DBG_FUNC)
|
||||
bp->dbg_name = vim_strsave(p);
|
||||
else if (here)
|
||||
bp->dbg_name = vim_strsave(curbuf->b_ffname);
|
||||
else if (bp->dbg_type == DBG_EXPR)
|
||||
{
|
||||
bp->dbg_name = vim_strsave(p);
|
||||
if (bp->dbg_name != NULL)
|
||||
bp->dbg_val = eval_expr(bp->dbg_name, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Expand the file name in the same way as do_source(). This means
|
||||
* doing it twice, so that $DIR/file gets expanded when $DIR is
|
||||
* "~/dir". */
|
||||
q = expand_env_save(p);
|
||||
if (q == NULL)
|
||||
return FAIL;
|
||||
p = expand_env_save(q);
|
||||
vim_free(q);
|
||||
if (p == NULL)
|
||||
return FAIL;
|
||||
if (*p != '*')
|
||||
{
|
||||
bp->dbg_name = fix_fname(p);
|
||||
vim_free(p);
|
||||
}
|
||||
else
|
||||
bp->dbg_name = p;
|
||||
}
|
||||
|
||||
if (bp->dbg_name == NULL)
|
||||
return FAIL;
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* ":breakadd". Also used for ":profile".
|
||||
*/
|
||||
void
|
||||
ex_breakadd(exarg_T *eap)
|
||||
{
|
||||
struct debuggy *bp;
|
||||
char_u *pat;
|
||||
garray_T *gap;
|
||||
|
||||
gap = &dbg_breakp;
|
||||
#ifdef FEAT_PROFILE
|
||||
if (eap->cmdidx == CMD_profile)
|
||||
gap = &prof_ga;
|
||||
#endif
|
||||
|
||||
if (dbg_parsearg(eap->arg, gap) == OK)
|
||||
{
|
||||
bp = &DEBUGGY(gap, gap->ga_len);
|
||||
bp->dbg_forceit = eap->forceit;
|
||||
|
||||
if (bp->dbg_type != DBG_EXPR)
|
||||
{
|
||||
pat = file_pat_to_reg_pat(bp->dbg_name, NULL, NULL, FALSE);
|
||||
if (pat != NULL)
|
||||
{
|
||||
bp->dbg_prog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
|
||||
vim_free(pat);
|
||||
}
|
||||
if (pat == NULL || bp->dbg_prog == NULL)
|
||||
vim_free(bp->dbg_name);
|
||||
else
|
||||
{
|
||||
if (bp->dbg_lnum == 0) /* default line number is 1 */
|
||||
bp->dbg_lnum = 1;
|
||||
#ifdef FEAT_PROFILE
|
||||
if (eap->cmdidx != CMD_profile)
|
||||
#endif
|
||||
{
|
||||
DEBUGGY(gap, gap->ga_len).dbg_nr = ++last_breakp;
|
||||
++debug_tick;
|
||||
}
|
||||
++gap->ga_len;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* DBG_EXPR */
|
||||
DEBUGGY(gap, gap->ga_len++).dbg_nr = ++last_breakp;
|
||||
++debug_tick;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ":debuggreedy".
|
||||
*/
|
||||
void
|
||||
ex_debuggreedy(exarg_T *eap)
|
||||
{
|
||||
if (eap->addr_count == 0 || eap->line2 != 0)
|
||||
debug_greedy = TRUE;
|
||||
else
|
||||
debug_greedy = FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* ":breakdel" and ":profdel".
|
||||
*/
|
||||
void
|
||||
ex_breakdel(exarg_T *eap)
|
||||
{
|
||||
struct debuggy *bp, *bpi;
|
||||
int nr;
|
||||
int todel = -1;
|
||||
int del_all = FALSE;
|
||||
int i;
|
||||
linenr_T best_lnum = 0;
|
||||
garray_T *gap;
|
||||
|
||||
gap = &dbg_breakp;
|
||||
if (eap->cmdidx == CMD_profdel)
|
||||
{
|
||||
#ifdef FEAT_PROFILE
|
||||
gap = &prof_ga;
|
||||
#else
|
||||
ex_ni(eap);
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (vim_isdigit(*eap->arg))
|
||||
{
|
||||
/* ":breakdel {nr}" */
|
||||
nr = atol((char *)eap->arg);
|
||||
for (i = 0; i < gap->ga_len; ++i)
|
||||
if (DEBUGGY(gap, i).dbg_nr == nr)
|
||||
{
|
||||
todel = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (*eap->arg == '*')
|
||||
{
|
||||
todel = 0;
|
||||
del_all = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* ":breakdel {func|file|expr} [lnum] {name}" */
|
||||
if (dbg_parsearg(eap->arg, gap) == FAIL)
|
||||
return;
|
||||
bp = &DEBUGGY(gap, gap->ga_len);
|
||||
for (i = 0; i < gap->ga_len; ++i)
|
||||
{
|
||||
bpi = &DEBUGGY(gap, i);
|
||||
if (bp->dbg_type == bpi->dbg_type
|
||||
&& STRCMP(bp->dbg_name, bpi->dbg_name) == 0
|
||||
&& (bp->dbg_lnum == bpi->dbg_lnum
|
||||
|| (bp->dbg_lnum == 0
|
||||
&& (best_lnum == 0
|
||||
|| bpi->dbg_lnum < best_lnum))))
|
||||
{
|
||||
todel = i;
|
||||
best_lnum = bpi->dbg_lnum;
|
||||
}
|
||||
}
|
||||
vim_free(bp->dbg_name);
|
||||
}
|
||||
|
||||
if (todel < 0)
|
||||
semsg(_("E161: Breakpoint not found: %s"), eap->arg);
|
||||
else
|
||||
{
|
||||
while (gap->ga_len > 0)
|
||||
{
|
||||
vim_free(DEBUGGY(gap, todel).dbg_name);
|
||||
#ifdef FEAT_EVAL
|
||||
if (DEBUGGY(gap, todel).dbg_type == DBG_EXPR
|
||||
&& DEBUGGY(gap, todel).dbg_val != NULL)
|
||||
free_tv(DEBUGGY(gap, todel).dbg_val);
|
||||
#endif
|
||||
vim_regfree(DEBUGGY(gap, todel).dbg_prog);
|
||||
--gap->ga_len;
|
||||
if (todel < gap->ga_len)
|
||||
mch_memmove(&DEBUGGY(gap, todel), &DEBUGGY(gap, todel + 1),
|
||||
(gap->ga_len - todel) * sizeof(struct debuggy));
|
||||
#ifdef FEAT_PROFILE
|
||||
if (eap->cmdidx == CMD_breakdel)
|
||||
#endif
|
||||
++debug_tick;
|
||||
if (!del_all)
|
||||
break;
|
||||
}
|
||||
|
||||
/* If all breakpoints were removed clear the array. */
|
||||
if (gap->ga_len == 0)
|
||||
ga_clear(gap);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ":breaklist".
|
||||
*/
|
||||
void
|
||||
ex_breaklist(exarg_T *eap UNUSED)
|
||||
{
|
||||
struct debuggy *bp;
|
||||
int i;
|
||||
|
||||
if (dbg_breakp.ga_len == 0)
|
||||
msg(_("No breakpoints defined"));
|
||||
else
|
||||
for (i = 0; i < dbg_breakp.ga_len; ++i)
|
||||
{
|
||||
bp = &BREAKP(i);
|
||||
if (bp->dbg_type == DBG_FILE)
|
||||
home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
|
||||
if (bp->dbg_type != DBG_EXPR)
|
||||
smsg(_("%3d %s %s line %ld"),
|
||||
bp->dbg_nr,
|
||||
bp->dbg_type == DBG_FUNC ? "func" : "file",
|
||||
bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
|
||||
(long)bp->dbg_lnum);
|
||||
else
|
||||
smsg(_("%3d expr %s"),
|
||||
bp->dbg_nr, bp->dbg_name);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Find a breakpoint for a function or sourced file.
|
||||
* Returns line number at which to break; zero when no matching breakpoint.
|
||||
*/
|
||||
linenr_T
|
||||
dbg_find_breakpoint(
|
||||
int file, /* TRUE for a file, FALSE for a function */
|
||||
char_u *fname, /* file or function name */
|
||||
linenr_T after) /* after this line number */
|
||||
{
|
||||
return debuggy_find(file, fname, after, &dbg_breakp, NULL);
|
||||
}
|
||||
|
||||
#if defined(FEAT_PROFILE) || defined(PROTO)
|
||||
/*
|
||||
* Return TRUE if profiling is on for a function or sourced file.
|
||||
*/
|
||||
int
|
||||
has_profiling(
|
||||
int file, /* TRUE for a file, FALSE for a function */
|
||||
char_u *fname, /* file or function name */
|
||||
int *fp) /* return: forceit */
|
||||
{
|
||||
return (debuggy_find(file, fname, (linenr_T)0, &prof_ga, fp)
|
||||
!= (linenr_T)0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Common code for dbg_find_breakpoint() and has_profiling().
|
||||
*/
|
||||
static linenr_T
|
||||
debuggy_find(
|
||||
int file, /* TRUE for a file, FALSE for a function */
|
||||
char_u *fname, /* file or function name */
|
||||
linenr_T after, /* after this line number */
|
||||
garray_T *gap, /* either &dbg_breakp or &prof_ga */
|
||||
int *fp) /* if not NULL: return forceit */
|
||||
{
|
||||
struct debuggy *bp;
|
||||
int i;
|
||||
linenr_T lnum = 0;
|
||||
char_u *name = fname;
|
||||
int prev_got_int;
|
||||
|
||||
/* Return quickly when there are no breakpoints. */
|
||||
if (gap->ga_len == 0)
|
||||
return (linenr_T)0;
|
||||
|
||||
/* Replace K_SNR in function name with "<SNR>". */
|
||||
if (!file && fname[0] == K_SPECIAL)
|
||||
{
|
||||
name = alloc((unsigned)STRLEN(fname) + 3);
|
||||
if (name == NULL)
|
||||
name = fname;
|
||||
else
|
||||
{
|
||||
STRCPY(name, "<SNR>");
|
||||
STRCPY(name + 5, fname + 3);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < gap->ga_len; ++i)
|
||||
{
|
||||
/* Skip entries that are not useful or are for a line that is beyond
|
||||
* an already found breakpoint. */
|
||||
bp = &DEBUGGY(gap, i);
|
||||
if (((bp->dbg_type == DBG_FILE) == file &&
|
||||
bp->dbg_type != DBG_EXPR && (
|
||||
#ifdef FEAT_PROFILE
|
||||
gap == &prof_ga ||
|
||||
#endif
|
||||
(bp->dbg_lnum > after && (lnum == 0 || bp->dbg_lnum < lnum)))))
|
||||
{
|
||||
/*
|
||||
* Save the value of got_int and reset it. We don't want a
|
||||
* previous interruption cancel matching, only hitting CTRL-C
|
||||
* while matching should abort it.
|
||||
*/
|
||||
prev_got_int = got_int;
|
||||
got_int = FALSE;
|
||||
if (vim_regexec_prog(&bp->dbg_prog, FALSE, name, (colnr_T)0))
|
||||
{
|
||||
lnum = bp->dbg_lnum;
|
||||
if (fp != NULL)
|
||||
*fp = bp->dbg_forceit;
|
||||
}
|
||||
got_int |= prev_got_int;
|
||||
}
|
||||
#ifdef FEAT_EVAL
|
||||
else if (bp->dbg_type == DBG_EXPR)
|
||||
{
|
||||
typval_T *tv;
|
||||
int line = FALSE;
|
||||
|
||||
prev_got_int = got_int;
|
||||
got_int = FALSE;
|
||||
|
||||
tv = eval_expr(bp->dbg_name, NULL);
|
||||
if (tv != NULL)
|
||||
{
|
||||
if (bp->dbg_val == NULL)
|
||||
{
|
||||
debug_oldval = typval_tostring(NULL);
|
||||
bp->dbg_val = tv;
|
||||
debug_newval = typval_tostring(bp->dbg_val);
|
||||
line = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (typval_compare(tv, bp->dbg_val, TYPE_EQUAL,
|
||||
TRUE, FALSE) == OK
|
||||
&& tv->vval.v_number == FALSE)
|
||||
{
|
||||
typval_T *v;
|
||||
|
||||
line = TRUE;
|
||||
debug_oldval = typval_tostring(bp->dbg_val);
|
||||
/* Need to evaluate again, typval_compare() overwrites
|
||||
* "tv". */
|
||||
v = eval_expr(bp->dbg_name, NULL);
|
||||
debug_newval = typval_tostring(v);
|
||||
free_tv(bp->dbg_val);
|
||||
bp->dbg_val = v;
|
||||
}
|
||||
free_tv(tv);
|
||||
}
|
||||
}
|
||||
else if (bp->dbg_val != NULL)
|
||||
{
|
||||
debug_oldval = typval_tostring(bp->dbg_val);
|
||||
debug_newval = typval_tostring(NULL);
|
||||
free_tv(bp->dbg_val);
|
||||
bp->dbg_val = NULL;
|
||||
line = TRUE;
|
||||
}
|
||||
|
||||
if (line)
|
||||
{
|
||||
lnum = after > 0 ? after : 1;
|
||||
break;
|
||||
}
|
||||
|
||||
got_int |= prev_got_int;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (name != fname)
|
||||
vim_free(name);
|
||||
|
||||
return lnum;
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when a breakpoint was encountered.
|
||||
*/
|
||||
void
|
||||
dbg_breakpoint(char_u *name, linenr_T lnum)
|
||||
{
|
||||
/* We need to check if this line is actually executed in do_one_cmd() */
|
||||
debug_breakpoint_name = name;
|
||||
debug_breakpoint_lnum = lnum;
|
||||
}
|
||||
#endif
|
||||
28
src/dict.c
28
src/dict.c
@@ -342,18 +342,18 @@ dict_add(dict_T *d, dictitem_T *item)
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a number entry to dictionary "d".
|
||||
* Add a number or special entry to dictionary "d".
|
||||
* Returns FAIL when out of memory and when key already exists.
|
||||
*/
|
||||
int
|
||||
dict_add_number(dict_T *d, char *key, varnumber_T nr)
|
||||
static int
|
||||
dict_add_number_special(dict_T *d, char *key, varnumber_T nr, int special)
|
||||
{
|
||||
dictitem_T *item;
|
||||
|
||||
item = dictitem_alloc((char_u *)key);
|
||||
if (item == NULL)
|
||||
return FAIL;
|
||||
item->di_tv.v_type = VAR_NUMBER;
|
||||
item->di_tv.v_type = special ? VAR_SPECIAL : VAR_NUMBER;
|
||||
item->di_tv.vval.v_number = nr;
|
||||
if (dict_add(d, item) == FAIL)
|
||||
{
|
||||
@@ -363,6 +363,26 @@ dict_add_number(dict_T *d, char *key, varnumber_T nr)
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a number entry to dictionary "d".
|
||||
* Returns FAIL when out of memory and when key already exists.
|
||||
*/
|
||||
int
|
||||
dict_add_number(dict_T *d, char *key, varnumber_T nr)
|
||||
{
|
||||
return dict_add_number_special(d, key, nr, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a special entry to dictionary "d".
|
||||
* Returns FAIL when out of memory and when key already exists.
|
||||
*/
|
||||
int
|
||||
dict_add_special(dict_T *d, char *key, varnumber_T nr)
|
||||
{
|
||||
return dict_add_number_special(d, key, nr, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a string entry to dictionary "d".
|
||||
* Returns FAIL when out of memory and when key already exists.
|
||||
|
||||
@@ -849,7 +849,7 @@ install_bat_choice(int idx)
|
||||
* for MSDOS and NT.
|
||||
* The order of preference is:
|
||||
* 1. $VIMRUNTIME/vim.exe (user preference)
|
||||
* 2. $VIM/vim70/vim.exe (hard coded version)
|
||||
* 2. $VIM/vim81/vim.exe (hard coded version)
|
||||
* 3. installdir/vim.exe (hard coded install directory)
|
||||
*/
|
||||
fprintf(fd, "set VIM_EXE_DIR=%s\n", installdir);
|
||||
@@ -1568,9 +1568,7 @@ register_openwith(
|
||||
|
||||
for (i = 0; ERROR_SUCCESS == lRet
|
||||
&& i < sizeof(openwith) / sizeof(openwith[0]); i++)
|
||||
{
|
||||
lRet = reg_create_key_and_value(hRootKey, openwith[i], NULL, "", flag);
|
||||
}
|
||||
}
|
||||
|
||||
return lRet;
|
||||
@@ -1679,7 +1677,9 @@ install_registry(void)
|
||||
|
||||
printf("Creating an uninstall entry\n");
|
||||
sprintf(display_name, "Vim " VIM_VERSION_SHORT
|
||||
#ifdef _WIN64
|
||||
#ifdef _M_ARM64
|
||||
" (arm64)"
|
||||
#elif _M_X64
|
||||
" (x64)"
|
||||
#endif
|
||||
);
|
||||
|
||||
3946
src/edit.c
3946
src/edit.c
File diff suppressed because it is too large
Load Diff
90
src/eval.c
90
src/eval.c
@@ -753,7 +753,7 @@ eval1_emsg(char_u **arg, typval_T *rettv, int evaluate)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
eval_expr_typval(typval_T *expr, typval_T *argv, int argc, typval_T *rettv)
|
||||
{
|
||||
char_u *s;
|
||||
@@ -966,7 +966,7 @@ eval_to_number(char_u *expr)
|
||||
* Save the current typeval in "save_tv".
|
||||
* When not used yet add the variable to the v: hashtable.
|
||||
*/
|
||||
static void
|
||||
void
|
||||
prepare_vimvar(int idx, typval_T *save_tv)
|
||||
{
|
||||
*save_tv = vimvars[idx].vv_tv;
|
||||
@@ -978,7 +978,7 @@ prepare_vimvar(int idx, typval_T *save_tv)
|
||||
* Restore v: variable "idx" to typeval "save_tv".
|
||||
* When no longer defined, remove the variable from the v: hashtable.
|
||||
*/
|
||||
static void
|
||||
void
|
||||
restore_vimvar(int idx, typval_T *save_tv)
|
||||
{
|
||||
hashitem_T *hi;
|
||||
@@ -1234,6 +1234,7 @@ eval_foldexpr(char_u *arg, int *cp)
|
||||
* ":let var /= expr" assignment command.
|
||||
* ":let var %= expr" assignment command.
|
||||
* ":let var .= expr" assignment command.
|
||||
* ":let var ..= expr" assignment command.
|
||||
* ":let [var1, var2] = expr" unpack list.
|
||||
*/
|
||||
void
|
||||
@@ -1248,6 +1249,7 @@ ex_let(exarg_T *eap)
|
||||
char_u op[2];
|
||||
char_u *argend;
|
||||
int first = TRUE;
|
||||
int concat;
|
||||
|
||||
argend = skip_var_list(arg, &var_count, &semicolon);
|
||||
if (argend == NULL)
|
||||
@@ -1255,14 +1257,19 @@ ex_let(exarg_T *eap)
|
||||
if (argend > arg && argend[-1] == '.') // for var.='str'
|
||||
--argend;
|
||||
expr = skipwhite(argend);
|
||||
if (*expr != '=' && !(vim_strchr((char_u *)"+-*/%.", *expr) != NULL
|
||||
&& expr[1] == '='))
|
||||
concat = expr[0] == '.'
|
||||
&& ((expr[1] == '=' && current_sctx.sc_version < 2)
|
||||
|| (expr[1] == '.' && expr[2] == '='));
|
||||
if (*expr != '=' && !((vim_strchr((char_u *)"+-*/%", *expr) != NULL
|
||||
&& expr[1] == '=') || concat))
|
||||
{
|
||||
/*
|
||||
* ":let" without "=": list variables
|
||||
*/
|
||||
if (*arg == '[')
|
||||
emsg(_(e_invarg));
|
||||
else if (expr[0] == '.')
|
||||
emsg(_("E985: .= is not supported with script version 2"));
|
||||
else if (!ends_excmd(*arg))
|
||||
/* ":let var1 var2" */
|
||||
arg = list_arg_vars(eap, arg, &first);
|
||||
@@ -1286,7 +1293,11 @@ ex_let(exarg_T *eap)
|
||||
if (*expr != '=')
|
||||
{
|
||||
if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL)
|
||||
{
|
||||
op[0] = *expr; // +=, -=, *=, /=, %= or .=
|
||||
if (expr[0] == '.' && expr[1] == '.') // ..=
|
||||
++expr;
|
||||
}
|
||||
expr = skipwhite(expr + 2);
|
||||
}
|
||||
else
|
||||
@@ -3812,7 +3823,8 @@ eval4(char_u **arg, typval_T *rettv, int evaluate)
|
||||
* Handle fourth level expression:
|
||||
* + number addition
|
||||
* - number subtraction
|
||||
* . string concatenation
|
||||
* . string concatenation (if script version is 1)
|
||||
* .. string concatenation
|
||||
*
|
||||
* "arg" must point to the first non-white of the expression.
|
||||
* "arg" is advanced to the next non-white after the recognized expression.
|
||||
@@ -3832,6 +3844,7 @@ eval5(char_u **arg, typval_T *rettv, int evaluate)
|
||||
char_u *s1, *s2;
|
||||
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
|
||||
char_u *p;
|
||||
int concat;
|
||||
|
||||
/*
|
||||
* Get the first variable.
|
||||
@@ -3844,8 +3857,11 @@ eval5(char_u **arg, typval_T *rettv, int evaluate)
|
||||
*/
|
||||
for (;;)
|
||||
{
|
||||
// "." is only string concatenation when scriptversion is 1
|
||||
op = **arg;
|
||||
if (op != '+' && op != '-' && op != '.')
|
||||
concat = op == '.'
|
||||
&& (*(*arg + 1) == '.' || current_sctx.sc_version < 2);
|
||||
if (op != '+' && op != '-' && !concat)
|
||||
break;
|
||||
|
||||
if ((op != '+' || (rettv->v_type != VAR_LIST
|
||||
@@ -3872,6 +3888,8 @@ eval5(char_u **arg, typval_T *rettv, int evaluate)
|
||||
/*
|
||||
* Get the second variable.
|
||||
*/
|
||||
if (op == '.' && *(*arg + 1) == '.') // .. string concatenation
|
||||
++*arg;
|
||||
*arg = skipwhite(*arg + 1);
|
||||
if (eval6(arg, &var2, evaluate, op == '.') == FAIL)
|
||||
{
|
||||
@@ -4216,6 +4234,17 @@ eval7(
|
||||
*arg = skipwhite(*arg + 1);
|
||||
end_leader = *arg;
|
||||
|
||||
if (**arg == '.' && (!isdigit(*(*arg + 1))
|
||||
#ifdef FEAT_FLOAT
|
||||
|| current_sctx.sc_version < 2
|
||||
#endif
|
||||
))
|
||||
{
|
||||
semsg(_(e_invexpr2), *arg);
|
||||
++*arg;
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
switch (**arg)
|
||||
{
|
||||
/*
|
||||
@@ -4231,16 +4260,23 @@ eval7(
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
case '.':
|
||||
{
|
||||
#ifdef FEAT_FLOAT
|
||||
char_u *p = skipdigits(*arg + 1);
|
||||
char_u *p;
|
||||
int get_float = FALSE;
|
||||
|
||||
/* We accept a float when the format matches
|
||||
* "[0-9]\+\.[0-9]\+\([eE][+-]\?[0-9]\+\)\?". This is very
|
||||
* strict to avoid backwards compatibility problems.
|
||||
* With script version 2 and later the leading digit can be
|
||||
* omitted.
|
||||
* Don't look for a float after the "." operator, so that
|
||||
* ":let vers = 1.2.3" doesn't fail. */
|
||||
if (**arg == '.')
|
||||
p = *arg;
|
||||
else
|
||||
p = skipdigits(*arg + 1);
|
||||
if (!want_string && p[0] == '.' && vim_isdigit(p[1]))
|
||||
{
|
||||
get_float = TRUE;
|
||||
@@ -7636,10 +7672,14 @@ find_var_ht(char_u *name, char_u **varname)
|
||||
return NULL;
|
||||
*varname = name;
|
||||
|
||||
/* "version" is "v:version" in all scopes */
|
||||
hi = hash_find(&compat_hashtab, name);
|
||||
if (!HASHITEM_EMPTY(hi))
|
||||
return &compat_hashtab;
|
||||
// "version" is "v:version" in all scopes if scriptversion < 3.
|
||||
// Same for a few other variables marked with VV_COMPAT.
|
||||
if (current_sctx.sc_version < 3)
|
||||
{
|
||||
hi = hash_find(&compat_hashtab, name);
|
||||
if (!HASHITEM_EMPTY(hi))
|
||||
return &compat_hashtab;
|
||||
}
|
||||
|
||||
ht = get_funccal_local_ht();
|
||||
if (ht == NULL)
|
||||
@@ -10321,19 +10361,25 @@ repeat:
|
||||
# if _WIN32_WINNT >= 0x0500
|
||||
if (vim_strchr(*fnamep, '~') != NULL)
|
||||
{
|
||||
/* Expand 8.3 filename to full path. Needed to make sure the same
|
||||
* file does not have two different names.
|
||||
* Note: problem does not occur if _WIN32_WINNT < 0x0500. */
|
||||
p = alloc(_MAX_PATH + 1);
|
||||
if (p != NULL)
|
||||
// Expand 8.3 filename to full path. Needed to make sure the same
|
||||
// file does not have two different names.
|
||||
// Note: problem does not occur if _WIN32_WINNT < 0x0500.
|
||||
WCHAR *wfname = enc_to_utf16(*fnamep, NULL);
|
||||
WCHAR buf[_MAX_PATH];
|
||||
|
||||
if (wfname != NULL)
|
||||
{
|
||||
if (GetLongPathName((LPSTR)*fnamep, (LPSTR)p, _MAX_PATH))
|
||||
if (GetLongPathNameW(wfname, buf, _MAX_PATH))
|
||||
{
|
||||
vim_free(*bufp);
|
||||
*bufp = *fnamep = p;
|
||||
char_u *p = utf16_to_enc(buf, NULL);
|
||||
|
||||
if (p != NULL)
|
||||
{
|
||||
vim_free(*bufp); // free any allocated file name
|
||||
*bufp = *fnamep = p;
|
||||
}
|
||||
}
|
||||
else
|
||||
vim_free(p);
|
||||
vim_free(wfname);
|
||||
}
|
||||
}
|
||||
# endif
|
||||
|
||||
724
src/evalfunc.c
724
src/evalfunc.c
File diff suppressed because it is too large
Load Diff
@@ -24,13 +24,13 @@ static const unsigned short cmdidxs1[26] =
|
||||
/* q */ 348,
|
||||
/* r */ 351,
|
||||
/* s */ 371,
|
||||
/* t */ 438,
|
||||
/* u */ 481,
|
||||
/* v */ 492,
|
||||
/* w */ 510,
|
||||
/* x */ 524,
|
||||
/* y */ 533,
|
||||
/* z */ 534
|
||||
/* t */ 439,
|
||||
/* u */ 482,
|
||||
/* v */ 493,
|
||||
/* w */ 511,
|
||||
/* x */ 525,
|
||||
/* y */ 534,
|
||||
/* z */ 535
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -59,7 +59,7 @@ static const unsigned char cmdidxs2[26][26] =
|
||||
/* p */ { 1, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 16, 17, 26, 0, 27, 0, 28, 0 },
|
||||
/* q */ { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
/* r */ { 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 19, 0, 0, 0, 0 },
|
||||
/* s */ { 2, 6, 15, 0, 18, 22, 0, 24, 25, 0, 0, 28, 30, 34, 38, 40, 0, 48, 0, 49, 0, 61, 62, 0, 63, 0 },
|
||||
/* s */ { 2, 6, 15, 0, 19, 23, 0, 25, 26, 0, 0, 29, 31, 35, 39, 41, 0, 49, 0, 50, 0, 62, 63, 0, 64, 0 },
|
||||
/* t */ { 2, 0, 19, 0, 22, 24, 0, 25, 0, 26, 0, 27, 31, 34, 36, 37, 0, 38, 40, 0, 41, 0, 0, 0, 0, 0 },
|
||||
/* u */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
/* v */ { 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 12, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0 },
|
||||
@@ -69,4 +69,4 @@ static const unsigned char cmdidxs2[26][26] =
|
||||
/* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
static const int command_count = 547;
|
||||
static const int command_count = 548;
|
||||
|
||||
@@ -3361,9 +3361,7 @@ do_write(exarg_T *eap)
|
||||
/* Change directories when the 'acd' option is set and the file name
|
||||
* got changed or set. */
|
||||
if (eap->cmdidx == CMD_saveas || name_was_missing)
|
||||
{
|
||||
DO_AUTOCHDIR;
|
||||
}
|
||||
}
|
||||
|
||||
theend:
|
||||
@@ -5574,7 +5572,12 @@ do_sub(exarg_T *eap)
|
||||
sub_firstlnum - regmatch.startpos[0].lnum,
|
||||
sub, sub_firstline, FALSE, p_magic, TRUE);
|
||||
#ifdef FEAT_EVAL
|
||||
/* Don't keep flags set by a recursive call. */
|
||||
// If getting the substitute string caused an error, don't do
|
||||
// the replacement.
|
||||
if (aborting())
|
||||
goto skip;
|
||||
|
||||
// Don't keep flags set by a recursive call.
|
||||
subflags = subflags_save;
|
||||
if (subflags.do_count)
|
||||
{
|
||||
|
||||
@@ -1269,6 +1269,9 @@ EX(CMD_scriptnames, "scriptnames", ex_scriptnames,
|
||||
EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
|
||||
WORD1|TRLBAR|CMDWIN,
|
||||
ADDR_LINES),
|
||||
EX(CMD_scriptversion, "scriptversion", ex_scriptversion,
|
||||
WORD1|TRLBAR|CMDWIN,
|
||||
ADDR_LINES),
|
||||
EX(CMD_scscope, "scscope", ex_scscope,
|
||||
EXTRA|NOTRLCOM,
|
||||
ADDR_LINES),
|
||||
|
||||
1011
src/ex_cmds2.c
1011
src/ex_cmds2.c
File diff suppressed because it is too large
Load Diff
@@ -1699,6 +1699,7 @@ do_one_cmd(
|
||||
exarg_T ea; /* Ex command arguments */
|
||||
int save_msg_scroll = msg_scroll;
|
||||
cmdmod_T save_cmdmod;
|
||||
int save_reg_executing = reg_executing;
|
||||
int ni; /* set when Not Implemented */
|
||||
char_u *cmd;
|
||||
|
||||
@@ -2579,6 +2580,7 @@ doend:
|
||||
|
||||
free_cmdmod();
|
||||
cmdmod = save_cmdmod;
|
||||
reg_executing = save_reg_executing;
|
||||
|
||||
if (ea.save_msg_silent != -1)
|
||||
{
|
||||
@@ -8405,9 +8407,7 @@ ex_splitview(exarg_T *eap)
|
||||
|| cmdmod.browse
|
||||
# endif
|
||||
)
|
||||
{
|
||||
RESET_BINDING(curwin);
|
||||
}
|
||||
else
|
||||
do_check_scrollbind(FALSE);
|
||||
do_exedit(eap, old_curwin);
|
||||
@@ -10487,12 +10487,15 @@ exec_normal_cmd(char_u *cmd, int remap, int silent)
|
||||
exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop UNUSED)
|
||||
{
|
||||
oparg_T oa;
|
||||
int c;
|
||||
|
||||
// When calling vpeekc() from feedkeys() it will return Ctrl_C when there
|
||||
// is nothing to get, so also check for Ctrl_C.
|
||||
clear_oparg(&oa);
|
||||
finish_op = FALSE;
|
||||
while ((!stuff_empty()
|
||||
|| ((was_typed || !typebuf_typed()) && typebuf.tb_len > 0)
|
||||
|| (use_vpeekc && vpeekc() != NUL))
|
||||
|| (use_vpeekc && (c = vpeekc()) != NUL && c != Ctrl_C))
|
||||
&& !got_int)
|
||||
{
|
||||
update_topline_cursor();
|
||||
|
||||
@@ -745,39 +745,35 @@ may_add_char_to_search(int firstc, int *c, incsearch_state_T *is_state)
|
||||
if (is_state->did_incsearch)
|
||||
{
|
||||
curwin->w_cursor = is_state->match_end;
|
||||
if (!EQUAL_POS(curwin->w_cursor, is_state->search_start))
|
||||
*c = gchar_cursor();
|
||||
if (*c != NUL)
|
||||
{
|
||||
*c = gchar_cursor();
|
||||
|
||||
// If 'ignorecase' and 'smartcase' are set and the
|
||||
// command line has no uppercase characters, convert
|
||||
// the character to lowercase.
|
||||
if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff + skiplen))
|
||||
*c = MB_TOLOWER(*c);
|
||||
if (*c != NUL)
|
||||
if (*c == firstc || vim_strchr((char_u *)(
|
||||
p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL)
|
||||
{
|
||||
if (*c == firstc || vim_strchr((char_u *)(
|
||||
p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL)
|
||||
{
|
||||
// put a backslash before special characters
|
||||
stuffcharReadbuff(*c);
|
||||
*c = '\\';
|
||||
}
|
||||
// add any composing characters
|
||||
if (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
|
||||
{
|
||||
int save_c = *c;
|
||||
|
||||
while (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
|
||||
{
|
||||
curwin->w_cursor.col += mb_char2len(*c);
|
||||
*c = gchar_cursor();
|
||||
stuffcharReadbuff(*c);
|
||||
}
|
||||
*c = save_c;
|
||||
}
|
||||
return FAIL;
|
||||
// put a backslash before special characters
|
||||
stuffcharReadbuff(*c);
|
||||
*c = '\\';
|
||||
}
|
||||
// add any composing characters
|
||||
if (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
|
||||
{
|
||||
int save_c = *c;
|
||||
|
||||
while (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
|
||||
{
|
||||
curwin->w_cursor.col += mb_char2len(*c);
|
||||
*c = gchar_cursor();
|
||||
stuffcharReadbuff(*c);
|
||||
}
|
||||
*c = save_c;
|
||||
}
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
@@ -1029,9 +1025,8 @@ getcmdline_int(
|
||||
/* Get a character. Ignore K_IGNORE and K_NOP, they should not do
|
||||
* anything, such as stop completion. */
|
||||
do
|
||||
{
|
||||
c = safe_vgetc();
|
||||
} while (c == K_IGNORE || c == K_NOP);
|
||||
while (c == K_IGNORE || c == K_NOP);
|
||||
|
||||
if (KeyTyped)
|
||||
{
|
||||
@@ -2833,9 +2828,8 @@ redraw:
|
||||
if (*p == TAB)
|
||||
{
|
||||
do
|
||||
{
|
||||
msg_putchar(' ');
|
||||
} while (++vcol % 8);
|
||||
while (++vcol % 8);
|
||||
++p;
|
||||
}
|
||||
else
|
||||
@@ -2908,9 +2902,8 @@ redraw:
|
||||
{
|
||||
/* Don't use chartabsize(), 'ts' can be different */
|
||||
do
|
||||
{
|
||||
msg_putchar(' ');
|
||||
} while (++vcol % 8);
|
||||
while (++vcol % 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -305,18 +305,9 @@
|
||||
#endif
|
||||
|
||||
/*
|
||||
* +tag_old_static Old style static tags: "file:tag file ..". Slows
|
||||
* down tag searching a bit.
|
||||
* +tag_old_static Old style static tags: "file:tag file ..".
|
||||
* Support was removed in 8.1.1093.
|
||||
*/
|
||||
#ifdef FEAT_NORMAL
|
||||
# define FEAT_TAG_OLDSTATIC
|
||||
#endif
|
||||
|
||||
/*
|
||||
* +tag_any_white Allow any white space to separate the fields in a tags
|
||||
* file. When not defined, only a TAB is allowed.
|
||||
*/
|
||||
/* #define FEAT_TAG_ANYWHITE */
|
||||
|
||||
/*
|
||||
* +cscope Unix only: Cscope support.
|
||||
|
||||
212
src/findfile.c
212
src/findfile.c
@@ -2605,3 +2605,215 @@ expand_in_path(
|
||||
}
|
||||
|
||||
#endif // FEAT_SEARCHPATH
|
||||
|
||||
/*
|
||||
* Converts a file name into a canonical form. It simplifies a file name into
|
||||
* its simplest form by stripping out unneeded components, if any. The
|
||||
* resulting file name is simplified in place and will either be the same
|
||||
* length as that supplied, or shorter.
|
||||
*/
|
||||
void
|
||||
simplify_filename(char_u *filename)
|
||||
{
|
||||
#ifndef AMIGA // Amiga doesn't have "..", it uses "/"
|
||||
int components = 0;
|
||||
char_u *p, *tail, *start;
|
||||
int stripping_disabled = FALSE;
|
||||
int relative = TRUE;
|
||||
|
||||
p = filename;
|
||||
# ifdef BACKSLASH_IN_FILENAME
|
||||
if (p[1] == ':') // skip "x:"
|
||||
p += 2;
|
||||
# endif
|
||||
|
||||
if (vim_ispathsep(*p))
|
||||
{
|
||||
relative = FALSE;
|
||||
do
|
||||
++p;
|
||||
while (vim_ispathsep(*p));
|
||||
}
|
||||
start = p; // remember start after "c:/" or "/" or "///"
|
||||
|
||||
do
|
||||
{
|
||||
// At this point "p" is pointing to the char following a single "/"
|
||||
// or "p" is at the "start" of the (absolute or relative) path name.
|
||||
# ifdef VMS
|
||||
// VMS allows device:[path] - don't strip the [ in directory
|
||||
if ((*p == '[' || *p == '<') && p > filename && p[-1] == ':')
|
||||
{
|
||||
// :[ or :< composition: vms directory component
|
||||
++components;
|
||||
p = getnextcomp(p + 1);
|
||||
}
|
||||
// allow remote calls as host"user passwd"::device:[path]
|
||||
else if (p[0] == ':' && p[1] == ':' && p > filename && p[-1] == '"' )
|
||||
{
|
||||
// ":: composition: vms host/passwd component
|
||||
++components;
|
||||
p = getnextcomp(p + 2);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
if (vim_ispathsep(*p))
|
||||
STRMOVE(p, p + 1); // remove duplicate "/"
|
||||
else if (p[0] == '.' && (vim_ispathsep(p[1]) || p[1] == NUL))
|
||||
{
|
||||
if (p == start && relative)
|
||||
p += 1 + (p[1] != NUL); // keep single "." or leading "./"
|
||||
else
|
||||
{
|
||||
// Strip "./" or ".///". If we are at the end of the file name
|
||||
// and there is no trailing path separator, either strip "/." if
|
||||
// we are after "start", or strip "." if we are at the beginning
|
||||
// of an absolute path name .
|
||||
tail = p + 1;
|
||||
if (p[1] != NUL)
|
||||
while (vim_ispathsep(*tail))
|
||||
MB_PTR_ADV(tail);
|
||||
else if (p > start)
|
||||
--p; // strip preceding path separator
|
||||
STRMOVE(p, tail);
|
||||
}
|
||||
}
|
||||
else if (p[0] == '.' && p[1] == '.' &&
|
||||
(vim_ispathsep(p[2]) || p[2] == NUL))
|
||||
{
|
||||
// Skip to after ".." or "../" or "..///".
|
||||
tail = p + 2;
|
||||
while (vim_ispathsep(*tail))
|
||||
MB_PTR_ADV(tail);
|
||||
|
||||
if (components > 0) // strip one preceding component
|
||||
{
|
||||
int do_strip = FALSE;
|
||||
char_u saved_char;
|
||||
stat_T st;
|
||||
|
||||
/* Don't strip for an erroneous file name. */
|
||||
if (!stripping_disabled)
|
||||
{
|
||||
// If the preceding component does not exist in the file
|
||||
// system, we strip it. On Unix, we don't accept a symbolic
|
||||
// link that refers to a non-existent file.
|
||||
saved_char = p[-1];
|
||||
p[-1] = NUL;
|
||||
# ifdef UNIX
|
||||
if (mch_lstat((char *)filename, &st) < 0)
|
||||
# else
|
||||
if (mch_stat((char *)filename, &st) < 0)
|
||||
# endif
|
||||
do_strip = TRUE;
|
||||
p[-1] = saved_char;
|
||||
|
||||
--p;
|
||||
// Skip back to after previous '/'.
|
||||
while (p > start && !after_pathsep(start, p))
|
||||
MB_PTR_BACK(start, p);
|
||||
|
||||
if (!do_strip)
|
||||
{
|
||||
// If the component exists in the file system, check
|
||||
// that stripping it won't change the meaning of the
|
||||
// file name. First get information about the
|
||||
// unstripped file name. This may fail if the component
|
||||
// to strip is not a searchable directory (but a regular
|
||||
// file, for instance), since the trailing "/.." cannot
|
||||
// be applied then. We don't strip it then since we
|
||||
// don't want to replace an erroneous file name by
|
||||
// a valid one, and we disable stripping of later
|
||||
// components.
|
||||
saved_char = *tail;
|
||||
*tail = NUL;
|
||||
if (mch_stat((char *)filename, &st) >= 0)
|
||||
do_strip = TRUE;
|
||||
else
|
||||
stripping_disabled = TRUE;
|
||||
*tail = saved_char;
|
||||
# ifdef UNIX
|
||||
if (do_strip)
|
||||
{
|
||||
stat_T new_st;
|
||||
|
||||
// On Unix, the check for the unstripped file name
|
||||
// above works also for a symbolic link pointing to
|
||||
// a searchable directory. But then the parent of
|
||||
// the directory pointed to by the link must be the
|
||||
// same as the stripped file name. (The latter
|
||||
// exists in the file system since it is the
|
||||
// component's parent directory.)
|
||||
if (p == start && relative)
|
||||
(void)mch_stat(".", &new_st);
|
||||
else
|
||||
{
|
||||
saved_char = *p;
|
||||
*p = NUL;
|
||||
(void)mch_stat((char *)filename, &new_st);
|
||||
*p = saved_char;
|
||||
}
|
||||
|
||||
if (new_st.st_ino != st.st_ino ||
|
||||
new_st.st_dev != st.st_dev)
|
||||
{
|
||||
do_strip = FALSE;
|
||||
// We don't disable stripping of later
|
||||
// components since the unstripped path name is
|
||||
// still valid.
|
||||
}
|
||||
}
|
||||
# endif
|
||||
}
|
||||
}
|
||||
|
||||
if (!do_strip)
|
||||
{
|
||||
// Skip the ".." or "../" and reset the counter for the
|
||||
// components that might be stripped later on.
|
||||
p = tail;
|
||||
components = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Strip previous component. If the result would get empty
|
||||
// and there is no trailing path separator, leave a single
|
||||
// "." instead. If we are at the end of the file name and
|
||||
// there is no trailing path separator and a preceding
|
||||
// component is left after stripping, strip its trailing
|
||||
// path separator as well.
|
||||
if (p == start && relative && tail[-1] == '.')
|
||||
{
|
||||
*p++ = '.';
|
||||
*p = NUL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (p > start && tail[-1] == '.')
|
||||
--p;
|
||||
STRMOVE(p, tail); // strip previous component
|
||||
}
|
||||
|
||||
--components;
|
||||
}
|
||||
}
|
||||
else if (p == start && !relative) // leading "/.." or "/../"
|
||||
STRMOVE(p, tail); // strip ".." or "../"
|
||||
else
|
||||
{
|
||||
if (p == start + 2 && p[-2] == '.') // leading "./../"
|
||||
{
|
||||
STRMOVE(p - 2, p); // strip leading "./"
|
||||
tail -= 2;
|
||||
}
|
||||
p = tail; // skip to char after ".." or "../"
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++components; // simple path component
|
||||
p = getnextcomp(p);
|
||||
}
|
||||
} while (*p != NUL);
|
||||
#endif // !AMIGA
|
||||
}
|
||||
|
||||
@@ -1813,9 +1813,8 @@ plain_vgetc(void)
|
||||
int c;
|
||||
|
||||
do
|
||||
{
|
||||
c = safe_vgetc();
|
||||
} while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
|
||||
while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
|
||||
|
||||
if (c == K_PS)
|
||||
/* Only handle the first pasted character. Drop the rest, since we
|
||||
@@ -2031,6 +2030,8 @@ vgetorpeek(int advance)
|
||||
*/
|
||||
for (;;)
|
||||
{
|
||||
long wait_time;
|
||||
|
||||
/*
|
||||
* ui_breakcheck() is slow, don't use it too often when
|
||||
* inside a mapping. But call it each time for typed
|
||||
@@ -2829,18 +2830,25 @@ vgetorpeek(int advance)
|
||||
// that has a <Nop> RHS.
|
||||
timedout = FALSE;
|
||||
|
||||
if (advance)
|
||||
{
|
||||
if (typebuf.tb_len == 0
|
||||
|| !(p_timeout
|
||||
|| (p_ttimeout && keylen == KEYLEN_PART_KEY)))
|
||||
// blocking wait
|
||||
wait_time = -1L;
|
||||
else if (keylen == KEYLEN_PART_KEY && p_ttm >= 0)
|
||||
wait_time = p_ttm;
|
||||
else
|
||||
wait_time = p_tm;
|
||||
}
|
||||
else
|
||||
wait_time = 0;
|
||||
|
||||
wait_tb_len = typebuf.tb_len;
|
||||
c = inchar(typebuf.tb_buf + typebuf.tb_off + typebuf.tb_len,
|
||||
typebuf.tb_buflen - typebuf.tb_off - typebuf.tb_len - 1,
|
||||
!advance
|
||||
? 0
|
||||
: ((typebuf.tb_len == 0
|
||||
|| !(p_timeout || (p_ttimeout
|
||||
&& keylen == KEYLEN_PART_KEY)))
|
||||
? -1L
|
||||
: ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
|
||||
? p_ttm
|
||||
: p_tm)));
|
||||
wait_time);
|
||||
|
||||
#ifdef FEAT_CMDL_INFO
|
||||
if (i != 0)
|
||||
@@ -5261,7 +5269,7 @@ static struct initmap
|
||||
{(char_u *)"\316\325 \"*y", VIS_SEL}, /* CTRL-Insert is "*y */
|
||||
{(char_u *)"\316\327 \"*d", VIS_SEL}, /* SHIFT-Del is "*d */
|
||||
{(char_u *)"\316\330 \"*d", VIS_SEL}, /* CTRL-Del is "*d */
|
||||
{(char_u *)"\030 \"-d", VIS_SEL}, /* CTRL-X is "-d */
|
||||
{(char_u *)"\030 \"*d", VIS_SEL}, /* CTRL-X is "*d */
|
||||
# else
|
||||
{(char_u *)"\316\324 P", NORMAL}, /* SHIFT-Insert is P */
|
||||
{(char_u *)"\316\324 \"-dP", VIS_SEL}, /* SHIFT-Insert is "-dP */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user