0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.0g02

This commit is contained in:
Bram Moolenaar 2006-05-03 21:26:49 +00:00
parent c05f93ffba
commit 9c102387af
21 changed files with 328 additions and 228 deletions

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0g. Last change: 2006 May 01
*eval.txt* For Vim version 7.0g. Last change: 2006 May 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -2345,9 +2345,14 @@ exists({expr}) The result is a Number, which is non-zero if {expr} is
< There must be no space between the symbol (&/$/*/#) and the
name.
Trailing characters that can't be part of the name are often
ignored, but don't depend on it.
Note that the argument must be a string, not the name of the
variable itself! For example: >
ignored, but don't depend on it, it may change in the future!
Example: >
exists("*strftime()")
< This currently works, but it should really be: >
exists("*strftime")
< Note that the argument must be a string, not the name of the
variable itself. For example: >
exists(bufcount)
< This doesn't check for existence of the "bufcount" variable,
but gets the value of "bufcount", and checks if that exists.

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.0g. Last change: 2006 Apr 02
*gui.txt* For Vim version 7.0g. Last change: 2006 May 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -588,12 +588,21 @@ The ":set ic" will not be echoed when using this menu. Messages from the
executed command are still given though. To shut them up too, add a ":silent"
in the executed command: >
:menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
<
"<silent>" may also appear just after "<special>" or "<script>".
*:menu-<special>* *:menu-special*
Define a menu with <> notation for special keys, even though the "<" flag
may appear in 'cpoptions'. This is useful if the side effect of setting
'cpoptions' is not desired. Example: >
:menu <special> Search.Header /Header<CR>
"<special>" must appear as the very first argument to the ":menu" command or
just after "<silent>" or "<script>".
*:menu-<script>* *:menu-script*
The "to" part of the menu will be inspected for mappings. If you don't want
this, use the ":noremenu" command (or the similar one for a specific mode).
If you do want to use script-local mappings, add "<script>" as the very first
argument to the ":menu" command or after "<silent>".
argument to the ":menu" command or just after "<silent>" or "<special>".
*menu-priority*
You can give a priority to a menu. Menus with a higher priority go more to

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.0g. Last change: 2006 May 01
*insert.txt* For Vim version 7.0g. Last change: 2006 May 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -919,6 +919,8 @@ Completion is done by a function that can be defined by the user with the
See below for how the function is called and an example |complete-functions|.
For remarks about specific filetypes see |compl-omni-filetypes|.
More completion scripts will appear, check www.vim.org. Currently there is a
first version for C++.
*i_CTRL-X_CTRL-O*
CTRL-X CTRL-O Guess what kind of item is in front of the cursor and
@ -1272,32 +1274,21 @@ run |:make| command to detect formatting problems.
HTML flavor *html-flavor*
Default HTML completion depends on filetype. For HTML files it is HTML
4.01 Transitional (&ft=='html'), for XHTML it is XHTML 1.0 Strict
(&ft=='xhtml').
The default HTML completion depends on the filetype. For HTML files it is
HTML 4.01 Transitional ('filetype' is "html"), for XHTML it is XHTML 1.0
Strict ('filetype' is "xhtml").
These are not the only HTML versions. To use another data file and still
have benefits of custom completion for class, style, etc. attributes set
b:html_omni_flavor variable. Example (in .vimrc or filetype plugin
file): >
When doing completion outside of any other tag you will have possibility to
choose DOCTYPE and the appropriate data file will be loaded and used for all
next completions.
let g:html_omni_flavor = 'xhtml10s'
More about format of data file in |xml-omni-datafile|. Some of the data files
may be found on the Vim website (|www|).
(Completion data file for HTML 4.01 Strict is also provided by Vim
distribution.)
Data for HTML completion will be read from 'autoload/xml/html10s.vim' file
located somewhere in 'runtimepath'.
Note: HTML completion files are also located in 'autoload/xml'
directory.
More about format of data file in |xml-omni-datafile|. Some of data
files may in future be found on vim-online site (|www|).
Note that b:html_omni_flavor may point to file with any XML data. This
makes possible to mix PHP (|ft-php-omni|) completion with whatever XML
dialect (assuming you have data file for it).
Note that b:html_omni_flavor may point to a file with any XML data. This
makes possible to mix PHP (|ft-php-omni|) completion with any XML dialect
(assuming you have data file for it). Without setting that variable XHTML 1.0
Strict will be used.
JAVASCRIPT *ft-javascript-omni*
@ -1486,86 +1477,100 @@ PHP code and SQL code at the same time.
XML *ft-xml-omni*
Vim 7 provides mechanism to context aware completion of XML files. It depends
on special |xml-omni-datafile| and two commands: |:XMLns| and |:XMLent|.
Features are:
Vim 7 provides a mechanism for context aware completion of XML files. It
depends on a special |xml-omni-datafile| and two commands: |:XMLns| and
|:XMLent|. Features are:
- after "<" complete tag name depending on context (no div suggest
inside of an a tag)
- inside of tag complete proper attributes (no width attribute for an
a tag)
- when attribute has limited number of possible values help to complete
- after "<" complete the tag name, depending on context
- inside of a tag complete proper attributes
- when an attribute has a limited number of possible values help to complete
them
- complete names of entities (defined in |xml-omni-datafile| and in current
file with "<!ENTITY" declarations
- complete names of entities (defined in |xml-omni-datafile| and in the
current file with "<!ENTITY" declarations)
- when used after "</" CTRL-X CTRL-O will close the last opened tag
Format of XML data file *xml-omni-datafile*
Vim distribution provides two data files as examples (xhtml10s.vim, xsl.vim)
XML data files are stored in the "autoload/xml" directory in 'runtimepath'.
Vim distribution provides examples of data files in the
"$VIMRUNTIME/autoload/xml" directory. They have a meaningful name which will
be used in commands. It should be a unique name which will not create
conflicts. For example, the name xhtml10s.vim means it is the data file for
XHTML 1.0 Strict.
XML data files are stored in "autoload/xml" directory in 'runtimepath'. They
have meaningful name which will be used in commands. It should be unique name
which will not create conflicts in future. For example name xhtml10s.vim means
it is data file for XHTML 1.0 Strict.
Each file contains a variable with a name like g:xmldata_xhtml10s . It is
a compound from two parts:
File contains one variable with fixed name: g:xmldata_xhtml10s . It is
compound from two parts:
1. "g:xmldata_" general prefix
2. "xhtml10s" name of file and name of described XML dialect
1. "g:xmldata_" general prefix, constant for all data files
2. "xhtml10s" the name of the file and the name of the described XML
dialect; it will be used as an argument for the |:XMLns|
command
Part two must be exactly the same as name of file.
Variable is data structure in form of |Dictionary|. Keys are tag names and
values are two element |List|. First element of List is also List with names
of possible children, second element is |Dictionary| with names of attributes
as keys and possible values of attributes as values. Example: >
The variable is a |Dictionary|. Keys are tag names and each value is a two
element |List|. The first element of the List is also a List with the names
of possible children. The second element is a |Dictionary| with the names of
attributes as keys and the possible values of attributes as values. Example: >
let g:xmldata_crippledhtml = {
\ "html":
\ [ ["body", "head"], {"id": [], "xmlns": ["http://www.w3.org/1999/xhtml"],
\ "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}],
\ "script":
\ [ [], {"id": [], "charset": [], "type": ["text/javascript"], "src": [],
\ "defer": ["BOOL"], "xml:space": ["preserve"]}],
\ "meta":
\ [ [], {"id": [], "http-equiv": [], "name": [], "content": [], "scheme":
\ [], "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}]
\ "vimxmlentities": ["amp", "lt", "gt", "apos", "quot"]},
let g:xmldata_crippled = {
\ "vimxmlentities": ["amp", "lt", "gt", "apos", "quot"],
\ 'vimxmlroot': ['tag1'],
\ 'tag1':
\ [ ['childoftag1a', 'childoftag1b'], {'attroftag1a': [],
\ 'attroftag1b': ['valueofattr1', 'valueofattr2']}],
\ 'childoftag1a':
\ [ [], {'attrofchild': ['attrofchild']}],
\ 'childoftag1b':
\ [ ['childoftag1a'], {'attrofchild': []}],
\ "vimxmltaginfo": {
\ 'meta': ['/>', '']},
\ "vimxmlattrinfo": {
\ 'http-equiv': ['ContentType', '']}
\ 'tag1': ['Menu info', 'Long information visible in preview window']},
\ 'vimxmlattrinfo': {
\ 'attrofchild': ['Menu info', 'Long information visible in preview window']}}
This example should be put in "autoload/xml/crippledhtml.vim" file.
This example would be put in the "autoload/xml/crippled.vim" file and could
help to write this file: >
In example are visible four special elements:
<tag1 attroftag1b="valueofattr1">
<childoftag1a attrofchild>
&amp; &lt;
</childoftag1a>
<childoftag1b attrofchild="5">
<childoftag1a>
&gt; &apos; &quot;
</childoftag1a>
</childoftag1b>
</tag1>
1. "vimxmlentities" - special key with List containing entities of this XML
In the example four special elements are visible:
1. "vimxmlentities" - a special key with List containing entities of this XML
dialect.
2. "BOOL" - value of attribute key showing if attribute should be inserted
bare ("defer" vs. 'defer="'). It can be the only element of List of
attribute values.
3. "vimxmltaginfo" - special key with dictionary containing as key tag names,
as value two element List for additional menu info and long description.
4. "vimxmlattrinfo" - special key with dictionary containing as key attribute
names, as value two element List for additional menu info and long
2. If the list containing possible values of attributes has one element and
this element is equal to the name of the attribute this attribute will be
treated as boolean and inserted as 'attrname' and not as 'attrname="'
3. "vimxmltaginfo" - a special key with a Dictionary containing tag
names as keys and two element List as values, for additional menu info and
the long description.
4. "vimxmlattrinfo" - special key with Dictionary containing attribute names
as keys and two element List as values, for additional menu info and long
description.
Note: Tag names in data file MUST not contain namespace description. Check
xsl.vim for example.
Note: Tag names in the data file MUST not contain a namespace description.
Check xsl.vim for an example.
Note: All data and functions are publicly available as global
variables/functions and can be used for personal editing functions.
DTD -> Vim *dtd2vim*
On |www| is script |dtd2vim| which parses DTD and creates XML data file
On |www| is the script |dtd2vim| which parses DTD and creates an XML data file
for Vim XML omni completion.
dtd2vim: http://www.vim.org/scripts/script.php?script_id=1462
Check there and beginning of file for details of usage.
Script requires perl and:
Check the beginning of that file for usage details.
The script requires perl and:
perlSGML: http://savannah.nongnu.org/projects/perlsgml
@ -1574,12 +1579,12 @@ Commands
:XMLns {name} [{namespace}] *:XMLns*
Vim has to know which data file should be used and with which namespace. For
loading of data file and connecting data with prope namespace use |:XMLns|
command. First (obligatory) argument is name of data (xhtml10s, xsl). Second
argument is code of namespace (h, xsl). When used without second argument
dialect will be used as default - without namespace declaration. For example
to use XML completion in .xsl files: >
Vim has to know which data file should be used and with which namespace. For
loading of the data file and connecting data with the proper namespace use
|:XMLns| command. The first (obligatory) argument is the name of the data
(xhtml10s, xsl). The second argument is the code of namespace (h, xsl). When
used without a second argument the dialect will be used as default - without
namespace declaration. For example to use XML completion in .xsl files: >
:XMLns xhtml10s
:XMLns xsl xsl
@ -1587,35 +1592,34 @@ to use XML completion in .xsl files: >
:XMLent {name} *:XMLent*
By default entities will be completed from data file of default
namespace. XMLent command should be used in case when there is no
default namespace: >
By default entities will be completed from the data file of the default
namespace. The XMLent command should be used in case when there is no default
namespace: >
:XMLent xhtml10s
Usage
While used in situation (after declarations from previous part, | is
While used in this situation (after declarations from previous part, | is
cursor position): >
<|
Will complete to appropriate XHTML tag, and in this situation: >
Will complete to an appropriate XHTML tag, and in this situation: >
<xsl:|
Will complete to appropriate XSL tag.
Will complete to an appropriate XSL tag.
File xmlcomplete.vim provides through |autoload| mechanism
GetLastOpenTag function which can be used in XML files to get name of
last open tag with (b:unaryTagsStack has to be defined): >
The script xmlcomplete.vim, provided through the |autoload| mechanism,
has the xmlcomplete#GetLastOpenTag() function which can be used in XML files
to get the name of the last open tag (b:unaryTagsStack has to be defined): >
:echo xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
==============================================================================
8. Insert mode commands *inserting*

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 7.0g. Last change: 2006 Apr 30
*map.txt* For Vim version 7.0g. Last change: 2006 May 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -157,8 +157,9 @@ type "a", then "bar" will get inserted.
1.2 SPECIAL ARGUMENTS *:map-arguments*
"<buffer>", "<silent>", "<script>", "<expr>" and "<unique>" can be used in any
order. They must appear right after the command, before any other arguments.
"<buffer>", "<silent>", "<special>", "<script>", "<expr>" and "<unique>" can
be used in any order. They must appear right after the command, before any
other arguments.
*:map-local* *:map-<buffer>* *E224* *E225*
If the first argument to one of these commands is "<buffer>" it will apply to
@ -185,6 +186,12 @@ Prompts will still be given, e.g., for inputdialog().
Using "<silent>" for an abbreviation is possible, but will cause redrawing of
the command line to fail.
*:map-<special>* *:map-special*
Define a mapping with <> notation for special keys, even though the "<" flag
may appear in 'cpoptions'. This is useful if the side effect of setting
'cpoptions' is not desired. Example: >
:map <special> <F12> /Header<CR>
<
*:map-<script>* *:map-script*
If the first argument to one of these commands is "<script>" and it is used to
define a new mapping or abbreviation, the mapping will only remap characters

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.0g. Last change: 2006 May 02
*options.txt* For Vim version 7.0g. Last change: 2006 May 03
VIM REFERENCE MANUAL by Bram Moolenaar
@ -4792,6 +4792,8 @@ A jump table for the options with a short description can be found at |Q_op|.
completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O|
See |complete-functions| for an explanation of how the function is
invoked and what it should return.
This option is usually set by a filetype plugin.
|:filetype-plugin-on|
*'operatorfunc'* *'opfunc'*

View File

@ -2273,6 +2273,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:map-<expr> map.txt /*:map-<expr>*
:map-<script> map.txt /*:map-<script>*
:map-<silent> map.txt /*:map-<silent>*
:map-<special> map.txt /*:map-<special>*
:map-<unique> map.txt /*:map-<unique>*
:map-alt-keys map.txt /*:map-alt-keys*
:map-arguments map.txt /*:map-arguments*
@ -2283,6 +2284,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:map-operator map.txt /*:map-operator*
:map-script map.txt /*:map-script*
:map-silent map.txt /*:map-silent*
:map-special map.txt /*:map-special*
:map-special-chars map.txt /*:map-special-chars*
:map-special-keys map.txt /*:map-special-keys*
:map-undo map.txt /*:map-undo*
@ -2301,10 +2303,12 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:menu gui.txt /*:menu*
:menu-<script> gui.txt /*:menu-<script>*
:menu-<silent> gui.txt /*:menu-<silent>*
:menu-<special> gui.txt /*:menu-<special>*
:menu-disable gui.txt /*:menu-disable*
:menu-enable gui.txt /*:menu-enable*
:menu-script gui.txt /*:menu-script*
:menu-silent gui.txt /*:menu-silent*
:menu-special gui.txt /*:menu-special*
:menut mlang.txt /*:menut*
:menutrans mlang.txt /*:menutrans*
:menutranslate mlang.txt /*:menutranslate*

View File

@ -4,80 +4,72 @@
"
" Define Mac-standard keyboard shortcuts.
" Save and restore compatible mode.
let s:save_cpo = &cpo
set cpo&vim
" We don't change 'cpoptions' here, because it would not be set properly when
" a .vimrc file is found later. Thus don't use line continuation and use
" <special> in mappings.
nnoremap <D-n> :confirm enew<CR>
vmap <D-n> <Esc><D-n>gv
imap <D-n> <C-O><D-n>
cmap <D-n> <C-C><D-n>
omap <D-n> <Esc><D-n>
nnoremap <special> <D-n> :confirm enew<CR>
vmap <special> <D-n> <Esc><D-n>gv
imap <special> <D-n> <C-O><D-n>
cmap <special> <D-n> <C-C><D-n>
omap <special> <D-n> <Esc><D-n>
nnoremap <D-o> :browse confirm e<CR>
vmap <D-o> <Esc><D-o>gv
imap <D-o> <C-O><D-o>
cmap <D-o> <C-C><D-o>
omap <D-o> <Esc><D-o>
nnoremap <special> <D-o> :browse confirm e<CR>
vmap <special> <D-o> <Esc><D-o>gv
imap <special> <D-o> <C-O><D-o>
cmap <special> <D-o> <C-C><D-o>
omap <special> <D-o> <Esc><D-o>
nnoremap <silent> <D-w> :if winheight(2) < 0 <Bar>
\ confirm enew <Bar>
\ else <Bar>
\ confirm close <Bar>
\ endif<CR>
vmap <D-w> <Esc><D-w>gv
imap <D-w> <C-O><D-w>
cmap <D-w> <C-C><D-w>
omap <D-w> <Esc><D-w>
nnoremap <silent> <special> <D-w> :if winheight(2) < 0 <Bar> confirm enew <Bar> else <Bar> confirm close <Bar> endif<CR>
vmap <special> <D-w> <Esc><D-w>gv
imap <special> <D-w> <C-O><D-w>
cmap <special> <D-w> <C-C><D-w>
omap <special> <D-w> <Esc><D-w>
nnoremap <silent> <D-s> :if expand("%") == ""<Bar>browse confirm w<Bar>
\ else<Bar>confirm w<Bar>endif<CR>
vmap <D-s> <Esc><D-s>gv
imap <D-s> <C-O><D-s>
cmap <D-s> <C-C><D-s>
omap <D-s> <Esc><D-s>
nnoremap <silent> <special> <D-s> :if expand("%") == ""<Bar>browse confirm w<Bar> else<Bar>confirm w<Bar>endif<CR>
vmap <special> <D-s> <Esc><D-s>gv
imap <special> <D-s> <C-O><D-s>
cmap <special> <D-s> <C-C><D-s>
omap <special> <D-s> <Esc><D-s>
nnoremap <D-S-s> :browse confirm saveas<CR>
vmap <D-S-s> <Esc><D-s>gv
imap <D-S-s> <C-O><D-s>
cmap <D-S-s> <C-C><D-s>
omap <D-S-s> <Esc><D-s>
nnoremap <special> <D-S-s> :browse confirm saveas<CR>
vmap <special> <D-S-s> <Esc><D-s>gv
imap <special> <D-S-s> <C-O><D-s>
cmap <special> <D-S-s> <C-C><D-s>
omap <special> <D-S-s> <Esc><D-s>
" From the Edit menu of SimpleText:
nnoremap <D-z> u
vmap <D-z> <Esc><D-z>gv
imap <D-z> <C-O><D-z>
cmap <D-z> <C-C><D-z>
omap <D-z> <Esc><D-z>
nnoremap <special> <D-z> u
vmap <special> <D-z> <Esc><D-z>gv
imap <special> <D-z> <C-O><D-z>
cmap <special> <D-z> <C-C><D-z>
omap <special> <D-z> <Esc><D-z>
vnoremap <D-x> "+x
vnoremap <special> <D-x> "+x
vnoremap <D-c> "+y
vnoremap <special> <D-c> "+y
cnoremap <D-c> <C-Y>
cnoremap <special> <D-c> <C-Y>
nnoremap <D-v> "+gP
cnoremap <D-v> <C-R>+
execute 'vnoremap <script> <D-v>' paste#paste_cmd['v']
execute 'inoremap <script> <D-v>' paste#paste_cmd['i']
nnoremap <special> <D-v> "+gP
cnoremap <special> <D-v> <C-R>+
execute 'vnoremap <script> <special> <D-v>' paste#paste_cmd['v']
execute 'inoremap <script> <special> <D-v>' paste#paste_cmd['i']
nnoremap <silent> <D-a> :if &slm != ""<Bar>exe ":norm gggH<C-O>G"<Bar>
\ else<Bar>exe ":norm ggVG"<Bar>endif<CR>
vmap <D-a> <Esc><D-a>
imap <D-a> <Esc><D-a>
cmap <D-a> <C-C><D-a>
omap <D-a> <Esc><D-a>
nnoremap <silent> <special> <D-a> :if &slm != ""<Bar>exe ":norm gggH<C-O>G"<Bar> else<Bar>exe ":norm ggVG"<Bar>endif<CR>
vmap <special> <D-a> <Esc><D-a>
imap <special> <D-a> <Esc><D-a>
cmap <special> <D-a> <C-C><D-a>
omap <special> <D-a> <Esc><D-a>
nnoremap <D-f> /
vmap <D-f> <Esc><D-f>
imap <D-f> <Esc><D-f>
cmap <D-f> <C-C><D-f>
omap <D-f> <Esc><D-f>
nnoremap <special> <D-f> /
vmap <special> <D-f> <Esc><D-f>
imap <special> <D-f> <Esc><D-f>
cmap <special> <D-f> <C-C><D-f>
omap <special> <D-f> <Esc><D-f>
nnoremap <D-g> n
vmap <D-g> <Esc><D-g>
imap <D-g> <C-O><D-g>
cmap <D-g> <C-C><D-g>
omap <D-g> <Esc><D-g>
let &cpo = s:save_cpo
nnoremap <special> <D-g> n
vmap <special> <D-g> <Esc><D-g>
imap <special> <D-g> <C-O><D-g>
cmap <special> <D-g> <C-C><D-g>
omap <special> <D-g> <Esc><D-g>

View File

@ -1,7 +1,8 @@
" Vim syntax file
" Language: C#
" Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Mo, 24 Apr 2006 10:11:07 CEST
" Maintainer: Anduin Withers <awithers@anduin.com>
" Former Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Sun Apr 30 19:26:18 PDT 2006
" Filenames: *.cs
" $Id$
"
@ -38,11 +39,16 @@ syn keyword csException try catch finally throw
" TODO:
syn keyword csUnspecifiedStatement as base checked event fixed in is lock new operator out params ref sizeof stackalloc this typeof unchecked unsafe using
" TODO:
syn keyword csUnsupportedStatement get set add remove value
syn keyword csUnsupportedStatement add remove value
" TODO:
syn keyword csUnspecifiedKeyword explicit implicit
" Contextual Keywords
syn match csContextualStatement /\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
syn match csContextualStatement /\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
syn match csContextualStatement /\<\(get\|set\)[[:space:]\n]*{/me=s+3
syn match csContextualStatement /\<where\>[^:]\+:/me=s+5
" Comments
"
@ -79,8 +85,10 @@ hi def link xmlRegion Comment
" [1] 9.5 Pre-processing directives
syn region csPreCondit
\ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\|region\|endregion\)"
\ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)"
\ skip="\\$" end="$" contains=csComment keepend
syn region csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$"
\ end="^\s*#\s*endregion" transparent fold contains=TOP
@ -115,6 +123,7 @@ hi def link csException Exception
hi def link csUnspecifiedStatement Statement
hi def link csUnsupportedStatement Statement
hi def link csUnspecifiedKeyword Keyword
hi def link csContextualStatement Statement
hi def link csOperatorError Error
hi def link csTodo Todo

View File

@ -52,6 +52,9 @@ syn keyword pythonPreCondit import from as
syn match pythonComment "#.*$" contains=pythonTodo
syn keyword pythonTodo TODO FIXME XXX contained
" Decorators (new in Python 2.4)
syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite
" strings
syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape
syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape
@ -85,6 +88,8 @@ endif
if exists("python_highlight_builtins")
" builtin functions, types and objects, not really part of the syntax
syn keyword pythonBuiltin True False bool enumerate set frozenset help
syn keyword pythonBuiltin reversed sorted sum
syn keyword pythonBuiltin Ellipsis None NotImplemented __import__ abs
syn keyword pythonBuiltin apply buffer callable chr classmethod cmp
syn keyword pythonBuiltin coerce compile complex delattr dict dir divmod
@ -110,6 +115,8 @@ if exists("python_highlight_exceptions")
syn keyword pythonException StandardError StopIteration SyntaxError
syn keyword pythonException SyntaxWarning SystemError SystemExit TabError
syn keyword pythonException TypeError UnboundLocalError UnicodeError
syn keyword pythonException UnicodeEncodeError UnicodeDecodeError
syn keyword pythonException UnicodeTranslateError
syn keyword pythonException UserWarning ValueError Warning WindowsError
syn keyword pythonException ZeroDivisionError
endif
@ -151,6 +158,7 @@ if version >= 508 || !exists("did_python_syn_inits")
HiLink pythonPreCondit PreCondit
HiLink pythonComment Comment
HiLink pythonTodo Todo
HiLink pythonDecorator Define
if exists("python_highlight_numbers")
HiLink pythonNumber Number
endif

View File

@ -1,9 +1,9 @@
" Vim syntax file
" Language: VRML97
" Modified from: VRML 1.0C by David Brown <dbrown@cgs.c4.gmeds.com>
" Maintainer: Gregory Seidman <gseidman@acm.org>
" URL: http://www.cs.brown.edu/~gss/vim/syntax/vrml.vim
" Last change: 2003 May 11
" Maintainer: vacancy!
" Former Maintainer: Gregory Seidman <gsslist+vim@anthropohedron.net>
" Last change: 2006 May 03
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@ -195,7 +195,7 @@ syn sync minlines=1
if version >= 600
"FOLDS!
syn sync fromstart
setlocal foldmethod=syntax
"setlocal foldmethod=syntax
syn region braceFold start="{" end="}" transparent fold contains=TOP
syn region bracketFold start="\[" end="]" transparent fold contains=TOP
syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString

View File

@ -4999,7 +4999,7 @@ uc_add_command(name, name_len, rep, argt, def, flags, compl, compl_arg, force)
char_u *rep_buf = NULL;
garray_T *gap;
replace_termcodes(rep, &rep_buf, FALSE, FALSE);
replace_termcodes(rep, &rep_buf, FALSE, FALSE, FALSE);
if (rep_buf == NULL)
{
/* Can't replace termcodes - try using the string as is */
@ -9854,18 +9854,6 @@ makeopens(fd, dirnow)
|| put_eol(fd) == FAIL))
return FAIL;
/*
* Wipe out an empty unnamed buffer we started in.
*/
if (put_line(fd, "if exists('s:wipebuf')") == FAIL)
return FAIL;
if (put_line(fd, " exe 'bwipe ' . s:wipebuf") == FAIL)
return FAIL;
if (put_line(fd, "endif") == FAIL)
return FAIL;
if (put_line(fd, "unlet! s:wipebuf") == FAIL)
return FAIL;
/*
* Restore window sizes again after jumping around in windows, because
* the current window has a minimum size while others may not.
@ -9873,11 +9861,6 @@ makeopens(fd, dirnow)
if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL)
return FAIL;
/* Re-apply 'winheight', 'winwidth' and 'shortmess'. */
if (fprintf(fd, "set winheight=%ld winwidth=%ld shortmess=%s",
p_wh, p_wiw, p_shm) < 0 || put_eol(fd) == FAIL)
return FAIL;
/* Don't continue in another tab page when doing only the current one
* or when at the last tab page. */
if (!(ssop_flags & SSOP_TABPAGES) || curtab->tp_next == NULL)
@ -9893,6 +9876,22 @@ makeopens(fd, dirnow)
return FAIL;
}
/*
* Wipe out an empty unnamed buffer we started in.
*/
if (put_line(fd, "if exists('s:wipebuf')") == FAIL)
return FAIL;
if (put_line(fd, " exe 'bwipe ' . s:wipebuf") == FAIL)
return FAIL;
if (put_line(fd, "endif") == FAIL)
return FAIL;
if (put_line(fd, "unlet! s:wipebuf") == FAIL)
return FAIL;
/* Re-apply 'winheight', 'winwidth' and 'shortmess'. */
if (fprintf(fd, "set winheight=%ld winwidth=%ld shortmess=%s",
p_wh, p_wiw, p_shm) < 0 || put_eol(fd) == FAIL)
return FAIL;
/*
* Lastly, execute the x.vim file if it exists.

View File

@ -3034,6 +3034,7 @@ do_map(maptype, arg, mode, abbrev)
mapblock_T **map_table;
int unique = FALSE;
int silent = FALSE;
int special = FALSE;
#ifdef FEAT_EVAL
int expr = FALSE;
#endif
@ -3075,6 +3076,16 @@ do_map(maptype, arg, mode, abbrev)
continue;
}
/*
* Check for "<special>": accept special keys in <>
*/
if (STRNCMP(keys, "<special>", 9) == 0)
{
keys = skipwhite(keys + 9);
special = TRUE;
continue;
}
#ifdef FEAT_EVAL
/*
* Check for "<script>": remap script-local mappings only
@ -3147,13 +3158,13 @@ do_map(maptype, arg, mode, abbrev)
* replace_termcodes() also removes CTRL-Vs and sometimes backslashes.
*/
if (haskey)
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE);
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
if (hasarg)
{
if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
rhs = (char_u *)"";
else
rhs = replace_termcodes(rhs, &arg_buf, FALSE, TRUE);
rhs = replace_termcodes(rhs, &arg_buf, FALSE, TRUE, special);
}
#ifdef FEAT_FKMAP
@ -3819,7 +3830,7 @@ map_to_exists(str, modechars, abbr)
char_u *buf;
int retval;
rhs = replace_termcodes(str, &buf, FALSE, TRUE);
rhs = replace_termcodes(str, &buf, FALSE, TRUE, FALSE);
if (vim_strchr(modechars, 'n') != NULL)
mode |= NORMAL;

View File

@ -4544,6 +4544,12 @@ gui_mouse_moved(x, y)
if (wp == curwin || wp == NULL)
return; /* still in the same old window, or none at all */
#ifdef FEAT_WINDOWS
/* Ignore position in the tab pages line. */
if (Y_2_ROW(y) < tabline_height())
return;
#endif
/*
* format a mouse click on status line input
* ala gui_send_mouse_event(0, x, y, 0, 0);
@ -4597,7 +4603,11 @@ gui_mouse_correct()
/* Don't move the mouse when it's left or right of the Vim window */
if (x < 0 || x > Columns * gui.char_width)
return;
# ifdef FEAT_WINDOWS
if (Y_2_ROW(y) >= tabline_height())
# else
if (y >= 0)
# endif
wp = xy2win(x, y);
if (wp != curwin && wp != NULL) /* If in other than current window */
{

View File

@ -314,7 +314,7 @@ CVim::SendKeys(BSTR keys)
}
/* Translate key codes like <Esc> */
str = replace_termcodes((char_u *)buffer, &ptr, FALSE, TRUE);
str = replace_termcodes((char_u *)buffer, &ptr, FALSE, TRUE, FALSE);
/* If ptr was set, then a new buffer was allocated,
* so we can free the old one.

View File

@ -6420,7 +6420,7 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
{
if (*p_pt)
{
(void)replace_termcodes(p_pt, &p, TRUE, TRUE);
(void)replace_termcodes(p_pt, &p, TRUE, TRUE, FALSE);
if (p != NULL)
{
if (new_value_alloced)

View File

@ -51,7 +51,7 @@ extern char_u *get_termcode __ARGS((int i));
extern void del_termcode __ARGS((char_u *name));
extern void set_mouse_topline __ARGS((win_T *wp));
extern int check_termcode __ARGS((int max_offset, char_u *buf, int buflen));
extern char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt));
extern char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
extern int find_term_bykeys __ARGS((char_u *src));
extern void show_termcodes __ARGS((void));
extern int show_one_termcode __ARGS((char_u *name, char_u *code, int printit));

View File

@ -118,6 +118,7 @@ static void qf_fmt_text __ARGS((char_u *text, char_u *buf, int bufsize));
static void qf_clean_dir_stack __ARGS((struct dir_stack_T **));
#ifdef FEAT_WINDOWS
static int qf_win_pos_update __ARGS((qf_info_T *qi, int old_qf_index));
static int is_qf_win __ARGS((win_T *win, qf_info_T *qi));
static win_T *qf_find_win __ARGS((qf_info_T *qi));
static buf_T *qf_find_buf __ARGS((qf_info_T *qi));
static void qf_update_buffer __ARGS((qf_info_T *qi));
@ -2199,6 +2200,7 @@ ex_copen(eap)
int height;
win_T *win;
tabpage_T *prevtab = curtab;
buf_T *qf_buf;
if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
{
@ -2231,6 +2233,8 @@ ex_copen(eap)
win_goto(win);
else
{
qf_buf = qf_find_buf(qi);
/* The current window becomes the previous window afterwards. */
win = curwin;
@ -2256,13 +2260,21 @@ ex_copen(eap)
win->w_llist->qf_refcount++;
}
(void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE);
/* switch off 'swapfile' */
set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
if (qf_buf != NULL)
/* Use the existing quickfix buffer */
(void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE,
ECMD_HIDE + ECMD_OLDBUF);
else
{
/* Create a new quickfix buffer */
(void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE);
/* switch off 'swapfile' */
set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
OPT_LOCAL);
set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
set_option_value((char_u *)"diff", 0L, (char_u *)"", OPT_LOCAL);
set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
set_option_value((char_u *)"diff", 0L, (char_u *)"", OPT_LOCAL);
}
/* Only set the height when still in the same tab page and there is no
* window to the side. */
@ -2351,8 +2363,32 @@ qf_win_pos_update(qi, old_qf_index)
return win != NULL;
}
/*
* Check whether the given window is displaying the specified quickfix/location
* list buffer
*/
static int
is_qf_win(win, qi)
win_T *win;
qf_info_T *qi;
{
/*
* A window displaying the quickfix buffer will have the w_llist_ref field
* set to NULL.
* A window displaying a location list buffer will have the w_llist_ref
* pointing to the location list.
*/
if (bt_quickfix(win->w_buffer))
if ((qi == &ql_info && win->w_llist_ref == NULL)
|| (qi != &ql_info && win->w_llist_ref == qi))
return TRUE;
return FALSE;
}
/*
* Find a window displaying the quickfix/location list 'qi'
* Searches in only the windows opened in the current tab.
*/
static win_T *
qf_find_win(qi)
@ -2360,33 +2396,29 @@ qf_find_win(qi)
{
win_T *win;
/*
* When searching for the quickfix buffer, find a window
* with w_llist_ref set to NULL.
* When searching for the location list buffer, find a window
* with w_llist_ref pointing to the supplied location list.
*/
FOR_ALL_WINDOWS(win)
if (bt_quickfix(win->w_buffer))
if ((qi == &ql_info && win->w_llist_ref == NULL)
|| (qi != &ql_info && win->w_llist_ref == qi))
break;
if (is_qf_win(win, qi))
break;
return win;
}
/*
* Find quickfix buffer.
* Find a quickfix buffer.
* Searches in windows opened in all the tabs.
*/
static buf_T *
qf_find_buf(qi)
qf_info_T *qi;
{
tabpage_T *tp;
win_T *win;
win = qf_find_win(qi);
FOR_ALL_TAB_WINDOWS(tp, win)
if (is_qf_win(win, qi))
return win->w_buffer;
return (win != NULL) ? win->w_buffer: NULL;
return NULL;
}
/*

View File

@ -7031,7 +7031,7 @@ spell_read_wordfile(spin, fname)
continue; /* empty or blank line */
rline[l] = NUL;
/* Convert from "=encoding={encoding}" to 'encoding' when needed. */
/* Convert from "/encoding={encoding}" to 'encoding' when needed. */
vim_free(pc);
#ifdef FEAT_MBYTE
if (spin->si_conv.vc_type != CONV_NONE)
@ -7069,7 +7069,7 @@ spell_read_wordfile(spin, fname)
char_u *enc;
/* Setup for conversion to 'encoding'. */
line += 10;
line += 9;
enc = enc_canonize(line);
if (enc != NULL && !spin->si_ascii
&& convert_setup(&spin->si_conv, enc,

View File

@ -4945,12 +4945,13 @@ check_termcode(max_offset, buf, buflen)
* nothing). When 'cpoptions' does not contain 'B', a backslash can be used
* instead of a CTRL-V.
*/
char_u *
replace_termcodes(from, bufp, from_part, do_lt)
char_u *
replace_termcodes(from, bufp, from_part, do_lt, special)
char_u *from;
char_u **bufp;
int from_part;
int do_lt; /* also translate <lt> */
int special; /* always accept <key> notation */
{
int i;
int slen;
@ -4963,7 +4964,7 @@ replace_termcodes(from, bufp, from_part, do_lt)
char_u *result; /* buffer for resulting string */
do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
do_special = (vim_strchr(p_cpo, CPO_SPECI) == NULL);
do_special = (vim_strchr(p_cpo, CPO_SPECI) == NULL) || special;
do_key_code = (vim_strchr(p_cpo, CPO_KEYCODE) == NULL);
/*

View File

@ -35,6 +35,6 @@
*/
#define VIM_VERSION_NODOT "vim70g"
#define VIM_VERSION_SHORT "7.0g"
#define VIM_VERSION_MEDIUM "7.0g-01 BETA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0g01 BETA (2006 May 2)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0g01 BETA (2006 May 2, compiled "
#define VIM_VERSION_MEDIUM "7.0g02 BETA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0g02 BETA (2006 May 3)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0g02 BETA (2006 May 3, compiled "

View File

@ -5195,6 +5195,7 @@ win_new_height(wp, height)
int sline, line_size;
int space;
int did_below = FALSE;
int old_height = wp->w_height;
#define FRACTION_MULT 16384L
/* Don't want a negative height. Happens when splitting a tiny window.
@ -5238,9 +5239,15 @@ win_new_height(wp, height)
}
else
{
space = height;
space = height - 1;
while (lnum > 1)
{
/* When using "~" lines stop when at the old topline, don't
* scroll down. */
if (did_below && height < old_height && lnum <= wp->w_topline)
sline = 0;
space -= line_size;
if (space > 0 && sline <= 0 && !did_below)
{