1
0
forked from aniani/vim

Updated runtime files.

This commit is contained in:
Bram Moolenaar
2012-11-15 21:28:22 +01:00
parent 41b884b273
commit 97d62497f5
25 changed files with 1594 additions and 745 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -106,7 +106,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_browsex_viewer = (not defined)' put = 'let g:netrw_browsex_viewer = (not defined)'
endif endif
put = 'let g:netrw_compress = '.g:netrw_compress put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline put = 'let g:netrw_cursor = '.g:netrw_cursor
let decompressline= line("$") let decompressline= line("$")
put ='let g:netrw_decompress...' put ='let g:netrw_decompress...'
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
@@ -125,9 +125,9 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_list_hide = '.g:netrw_list_hide put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd

View File

@@ -1,12 +1,28 @@
" Vim completion script " Vim completion script
" Language: All languages, uses existing syntax highlighting rules " Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com> " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 8.0 " Version: 10.0
" Last Change: 2011 Nov 02 " Last Change: 2012 Oct 20
" Usage: For detailed help, ":help ft-syntax-omni" " Usage: For detailed help, ":help ft-syntax-omni"
" History " History
" "
" Version 10.0
" Cycle through all the character ranges specified in the
" iskeyword option and build a list of valid word separators.
" Prior to this change, only actual characters were used,
" where for example ASCII "45" == "-". If "45" were used
" in iskeyword the hyphen would not be picked up.
" This introduces a new option, since the character ranges
" specified could be multibyte:
" let g:omni_syntax_use_single_byte = 1
" This by default will only allow single byte ASCII
" characters to be added and an additional check to ensure
" the charater is printable (see documentation for isprint).
"
" Version 9.0
" Add the check for cpo.
"
" Version 8.0 " Version 8.0
" Updated SyntaxCSyntaxGroupItems() " Updated SyntaxCSyntaxGroupItems()
" - Some additional syntax items were also allowed " - Some additional syntax items were also allowed
@@ -50,7 +66,11 @@ endif
if exists('g:loaded_syntax_completion') if exists('g:loaded_syntax_completion')
finish finish
endif endif
let g:loaded_syntax_completion = 80 let g:loaded_syntax_completion = 100
" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
set cpo&vim
" Set ignorecase to the ftplugin standard " Set ignorecase to the ftplugin standard
" This is the default setting, but if you define a buffer local " This is the default setting, but if you define a buffer local
@@ -67,6 +87,18 @@ if !exists('g:omni_syntax_use_iskeyword')
let g:omni_syntax_use_iskeyword = 1 let g:omni_syntax_use_iskeyword = 1
endif endif
" When using iskeyword, this setting controls whether the characters
" should be limited to single byte characters.
if !exists('g:omni_syntax_use_single_byte')
let g:omni_syntax_use_single_byte = 1
endif
" When using iskeyword, this setting controls whether the characters
" should be limited to single byte characters.
if !exists('g:omni_syntax_use_iskeyword_numeric')
let g:omni_syntax_use_iskeyword_numeric = 1
endif
" Only display items in the completion window that are at least " Only display items in the completion window that are at least
" this many characters in length. " this many characters in length.
" This is the default setting, but if you define a buffer local " This is the default setting, but if you define a buffer local
@@ -446,19 +478,66 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" This will replace non-word characters with spaces. " This will replace non-word characters with spaces.
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' ) let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
else else
let accept_chars = ','.&iskeyword.',' if g:omni_syntax_use_iskeyword_numeric == 1
" Remove all character ranges " iskeyword can contain value like this
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g') " 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g') " Numeric values convert to their ASCII equivalent using the
" Remove all numeric specifications " nr2char() function.
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g') " & 38
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g') " * 42
" Remove all commas " + 43
let accept_chars = substitute(accept_chars, ',', '', 'g') " - 45
" Escape special regex characters " ^ 94
let accept_chars = escape(accept_chars, '\\/.*$^~[]' ) " Iterate through all numeric specifications and convert those
" Remove all characters that are not acceptable " to their ascii equivalent ensuring the character is printable.
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ '.accept_chars.']', ' ', 'g' ) " If so, add it to the list.
let accepted_chars = ''
for item in split(&iskeyword, ',')
if item =~ '-'
" This is a character range (ie 47-58),
" cycle through each character within the range
let [b:start, b:end] = split(item, '-')
for range_item in range( b:start, b:end )
if range_item <= 127 || g:omni_syntax_use_single_byte == 0
if nr2char(range_item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(range_item)
endif
endif
endfor
elseif item =~ '^\d\+$'
" Only numeric, translate to a character
if item < 127 || g:omni_syntax_use_single_byte == 0
if nr2char(item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(item)
endif
endif
else
if char2nr(item) < 127 || g:omni_syntax_use_single_byte == 0
if item =~ '\p'
let accepted_chars = accepted_chars . item
endif
endif
endif
endfor
" Escape special regex characters
let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^A-Za-z'.accepted_chars.']', ' ', 'g' )
else
let accept_chars = ','.&iskeyword.','
" Remove all character ranges
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
" Remove all numeric specifications
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
" Remove all commas
let accept_chars = substitute(accept_chars, ',', '', 'g')
" Escape special regex characters
let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^0-9A-Za-z_'.accept_chars.']', ' ', 'g' )
endif
endif endif
if b:omni_syntax_minimum_length > 0 if b:omni_syntax_minimum_length > 0
@@ -471,3 +550,27 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
return syn_list return syn_list
endfunction endfunction
function! OmniSyntaxShowChars(spec)
let result = []
for item in split(a:spec, ',')
if len(item) > 1
if item == '@-@'
call add(result, char2nr(item))
else
call extend(result, call('range', split(item, '-')))
endif
else
if item == '@' " assume this is [A-Za-z]
for [c1, c2] in [['A', 'Z'], ['a', 'z']]
call extend(result, range(char2nr(c1), char2nr(c2)))
endfor
else
call add(result, char2nr(item))
endif
endif
endfor
return join(map(result, 'nr2char(v:val)'), ', ')
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.3. Last change: 2012 Aug 08 *change.txt* For Vim version 7.3. Last change: 2012 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -598,8 +598,11 @@ For other systems the tmpnam() library function is used.
the flags. the flags.
*g&* *g&*
g& Synonym for `:%s//~/&` (repeat last substitute on all g& Synonym for `:%s//~/&` (repeat last substitute with
lines with the same flags). last search pattern on all lines with the same flags).
For exaple, when you first do a substitution with
`:s/pattern/repl/flags` and then `/search` for
something else, `g&` will do `:%s/search/repl/flags`.
Mnemonic: global substitute. {not in Vi} Mnemonic: global substitute. {not in Vi}
*:snomagic* *:sno* *:snomagic* *:sno*

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2012 Oct 21 *eval.txt* For Vim version 7.3. Last change: 2012 Nov 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5483,7 +5483,8 @@ split({expr} [, {pattern} [, {keepempty}]]) *split()*
empty each white-separated sequence of characters becomes an empty each white-separated sequence of characters becomes an
item. item.
Otherwise the string is split where {pattern} matches, Otherwise the string is split where {pattern} matches,
removing the matched characters. removing the matched characters. 'ignorecase' is not used
here, add \c to ignore case. |/\c|
When the first or last item is empty it is omitted, unless the When the first or last item is empty it is omitted, unless the
{keepempty} argument is given and it's non-zero. {keepempty} argument is given and it's non-zero.
Other empty items are kept when {pattern} matches at least one Other empty items are kept when {pattern} matches at least one

View File

@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.3. Last change: 2012 Aug 02 *if_perl.txt* For Vim version 7.3. Last change: 2012 Oct 25
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -175,7 +175,8 @@ VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
VIM::DoCommand({cmd}) Executes Ex command {cmd}. VIM::DoCommand({cmd}) Executes Ex command {cmd}.
*perl-Eval* *perl-Eval*
VIM::Eval({expr}) Evaluates {expr} and returns (success, val). VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list
context or just value in scalar context.
success=1 indicates that val contains the value of success=1 indicates that val contains the value of
{expr}; success=0 indicates a failure to evaluate {expr}; success=0 indicates a failure to evaluate
the expression. '@x' returns the contents of register the expression. '@x' returns the contents of register

View File

@@ -7496,7 +7496,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For more information about this feature see |undo-persistence|. For more information about this feature see |undo-persistence|.
The undo file is not read when 'undoreload' causes the buffer from The undo file is not read when 'undoreload' causes the buffer from
before a reload to be saved for undo. before a reload to be saved for undo.
WARNING: this is a very new feature. Use at your own risk! When 'undofile' is turned off the undo file is NOT deleted.
*'undolevels'* *'ul'* *'undolevels'* *'ul'*
'undolevels' 'ul' number (default 100, 1000 for Unix, VMS, 'undolevels' 'ul' number (default 100, 1000 for Unix, VMS,

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 7.3. Last change: 2012 Apr 05 *pi_netrw.txt* For Vim version 7.3. Last change: 2012 Oct 25
----------------------------------------------------- -----------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr. NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -143,7 +143,7 @@ and has lines resembling >
Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: > Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE' let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
< <
Netrw will substitute the host's machine name for MACHINE from the url it is Netrw will substitute the host's machine name for MACHINE from the url it is
attempting to open, and so one may specify > attempting to open, and so one may specify >
userid userid
@@ -209,7 +209,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
default, the option arguments for the http-handling commands are: > default, the option arguments for the http-handling commands are: >
elinks : "-source >" elinks : "-source >"
links : "-source >" links : "-dump >"
curl : "-o" curl : "-o"
wget : "-q -O" wget : "-q -O"
fetch : "-o" fetch : "-o"
@@ -1072,6 +1072,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
v Enter the file/directory under the cursor in a new |netrw-v| v Enter the file/directory under the cursor in a new |netrw-v|
browser window. A vertical split is used. browser window. A vertical split is used.
x View file with an associated program |netrw-x| x View file with an associated program |netrw-x|
X Execute filename under cursor via |system()| |netrw-X|
% Open a new file in netrw's current directory |netrw-%| % Open a new file in netrw's current directory |netrw-%|
@@ -1589,6 +1590,15 @@ Related topics: |netrw-s| |netrw-S|
Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options| Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X*
Pressing X while the cursor is atop an executable file will yield a prompt
using the filename asking for any arguments. Upon pressing a [return], netrw
will then call |system()| with that command and arguments. The result will
be displayed by |:echomsg|, and so |:messages| will repeat display of the
result. Ansi escape sequences will be stripped out.
FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2 FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
Remote symbolic links (ie. those listed via ssh or ftp) are problematic Remote symbolic links (ie. those listed via ssh or ftp) are problematic
@@ -1596,10 +1606,10 @@ in that it is difficult to tell whether they link to a file or to a
directory. directory.
To force treatment as a file: use > To force treatment as a file: use >
gd gf
< <
To force treatment as a directory: use > To force treatment as a directory: use >
gf gd
< <
GOING UP *netrw--* {{{2 GOING UP *netrw--* {{{2
@@ -1957,7 +1967,7 @@ The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
this to work on remote systems. For your local system, see |ctags| on how to this to work on remote systems. For your local system, see |ctags| on how to
get a version. I myself use hdrtags, currently available at get a version. I myself use hdrtags, currently available at
http://mysite.verizon.net/astronaut/src/index.html , and have > http://www.drchip.org/astronaut/src/index.html , and have >
let g:netrw_ctags= "hdrtag" let g:netrw_ctags= "hdrtag"
< <
@@ -2093,6 +2103,9 @@ your browsing preferences. (see also: |netrw-settings|)
history. history.
(related: |netrw-qb| |netrw-u| |netrw-U|) (related: |netrw-qb| |netrw-u| |netrw-U|)
*g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
|g:netrw_maxfilenamelen|, which affects
local file long listing.
*g:netrw_errorlvl* =0: error levels greater than or equal to *g:netrw_errorlvl* =0: error levels greater than or equal to
this are permitted to be displayed this are permitted to be displayed
0: notes 0: notes
@@ -2843,13 +2856,13 @@ which is loaded automatically at startup (assuming :set nocp).
1. Get the <Decho.vim> script, available as: 1. Get the <Decho.vim> script, available as:
http://mysite.verizon.net/astronaut/vim/index.html#DECHO http://www.drchip.org/astronaut/vim/index.html#DECHO
or or
http://vim.sourceforge.net/scripts/script.php?script_id=120 http://vim.sourceforge.net/scripts/script.php?script_id=120
It now comes as a "vimball"; if you're using vim 7.0 or earlier, It now comes as a "vimball"; if you're using vim 7.0 or earlier,
you'll need to update vimball, too. See you'll need to update vimball, too. See
http://mysite.verizon.net/astronaut/vim/index.html#VIMBALL http://www.drchip.org/astronaut/vim/index.html#VIMBALL
2. Edit the <netrw.vim> file by typing: > 2. Edit the <netrw.vim> file by typing: >
@@ -2882,57 +2895,77 @@ which is loaded automatically at startup (assuming :set nocp).
============================================================================== ==============================================================================
12. History *netrw-history* {{{1 12. History *netrw-history* {{{1
v145: Apr 05, 2012 * moved some command from a g:netrw_local_... v146: Oct 20, 2012 * (David Kotchan) reported that under Windows,
format to g:netwr_local... format directories named with unusual characters
* included some NOTE level messages about such as "#" or "$" were not being listed
commands that aren't executable properly.
* |g:netrw_errorlvl| (default: NOTE=0) * (Kenny Lee) reported that the buffer list
option introduced was being populated by netrw buffers.
v144: Mar 12, 2012 * when |CTRL-W_s| or |CTRL-W_v| are used, Netrw will now |:bwipe| netrw buffers
or their wincmd equivalents, on a netrw upon editing a file if g:netrw_fastbrowse
buffer, the netrw's w: variables were is zero and its not in tree listing style.
not copied over. Fixed. v145: Apr 05, 2012 * moved some command from a g:netrw_local_...
Mar 13, 2012 * nbcd_curpos_{bufnr('%')} was commented format to g:netwr_local... format
out, and was mistakenly used during * included some NOTE level messages about
RestorePosn. Unfortunately, I'm not commands that aren't executable
sure why it was commented out, so this * |g:netrw_errorlvl| (default: NOTE=0)
"fix" may re-introduce an earlier problem. option introduced
Mar 21, 2012 * included s:rexposn internally to make May 18, 2012 * (Ilya Dogolazky) a scenario where a
:Rex return the cursor to the same pos'n |g:netrw_fastbrowse| of zero did not
upon restoration of netrw buffer have a local directory refreshed fixed.
Mar 27, 2012 * (sjbesse) s:NetrwGetFile() needs to remove Jul 10, 2012 * (Donatas) |netrw-gb| wasn't working due
"/" from the netrw buffer's usual |'isk'| to an incorrectly used variable.
in order to allow "filetype detect" to work Aug 09, 2012 * (Bart Baker) netrw was doubling
properly for scripts. of entries after a split.
v143: Jun 01, 2011 * |g:netrw_winsize| will accept a negative * (code by Takahiro Yoshihara) implemented
number; the absolute value of it will then |g:netrw_dynamic_maxfilenamelen|
be used to specify lines/columns instead of Aug 31, 2012 * (Andrew Wong) netrw refresh overwriting
a percentage. the yank buffer.
Jul 05, 2011 * the "d" map now supports mkdir via ftp v144: Mar 12, 2012 * when |CTRL-W_s| or |CTRL-W_v| are used,
See |netrw-d| and |g:netrw_remote_mkdir| or their wincmd equivalents, on a netrw
Jul 11, 2011 * Changed Explore!, Sexplore!, and Vexplore buffer, the netrw's w: variables were
to use a percentage of |winwidth()| instead not copied over. Fixed.
of a percentage of |winheight()|. Mar 13, 2012 * nbcd_curpos_{bufnr('%')} was commented
Jul 11, 2011 * included support for https://... I'm just out, and was mistakenly used during
beginning to test this, however. RestorePosn. Unfortunately, I'm not
Aug 01, 2011 * changed RestoreOptions to also restore sure why it was commented out, so this
cursor position in netrw buffers. "fix" may re-introduce an earlier problem.
Aug 12, 2011 * added a note about "%" to the balloon Mar 21, 2012 * included s:rexposn internally to make
Aug 30, 2011 * if |g:netrw_nobeval| exists, then balloon :Rex return the cursor to the same pos'n
evaluation is suppressed. upon restoration of netrw buffer
Aug 31, 2011 * (Benjamin R Haskell) provided a patch that Mar 27, 2012 * (sjbesse) s:NetrwGetFile() needs to remove
implements non-standard port handling for "/" from the netrw buffer's usual |'isk'|
files opened via the remote browser. in order to allow "filetype detect" to work
Aug 31, 2011 * Fixed a **//pattern Explorer bug properly for scripts.
Sep 15, 2011 * (reported by Francesco Campana) netrw v143: Jun 01, 2011 * |g:netrw_winsize| will accept a negative
now permits the "@" to be part of the number; the absolute value of it will then
user id (if there's an @ that appears be used to specify lines/columns instead of
to the right). a percentage.
Nov 21, 2011 * New option: |g:netrw_ftp_options| Jul 05, 2011 * the "d" map now supports mkdir via ftp
Dec 07, 2011 * (James Sinclair) provided a fix handling See |netrw-d| and |g:netrw_remote_mkdir|
attempts to use a uid and password when Jul 11, 2011 * Changed Explore!, Sexplore!, and Vexplore
they weren't defined. This affected to use a percentage of |winwidth()| instead
NetWrite (NetRead already had that fix). of a percentage of |winheight()|.
Jul 11, 2011 * included support for https://... I'm just
beginning to test this, however.
Aug 01, 2011 * changed RestoreOptions to also restore
cursor position in netrw buffers.
Aug 12, 2011 * added a note about "%" to the balloon
Aug 30, 2011 * if |g:netrw_nobeval| exists, then balloon
evaluation is suppressed.
Aug 31, 2011 * (Benjamin R Haskell) provided a patch that
implements non-standard port handling for
files opened via the remote browser.
Aug 31, 2011 * Fixed a **//pattern Explorer bug
Sep 15, 2011 * (reported by Francesco Campana) netrw
now permits the "@" to be part of the
user id (if there's an @ that appears
to the right).
Nov 21, 2011 * New option: |g:netrw_ftp_options|
Dec 07, 2011 * (James Sinclair) provided a fix handling
attempts to use a uid and password when
they weren't defined. This affected
NetWrite (NetRead already had that fix).
============================================================================== ==============================================================================

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2012 Jul 16 *syntax.txt* For Vim version 7.3. Last change: 2012 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2489,6 +2489,12 @@ This will add highlighting for the commands that BASH (version 2.05a and
later, and part earlier) adds. later, and part earlier) adds.
RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax*
You may set what syntax definitions should be used for code blocks via
let rst_syntax_code_list = ['vim', 'lisp', ...]
REXX *rexx.vim* *ft-rexx-syntax* REXX *rexx.vim* *ft-rexx-syntax*
If you notice highlighting errors while scrolling backwards, which are fixed If you notice highlighting errors while scrolling backwards, which are fixed

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2012 Oct 21 *todo.txt* For Vim version 7.3. Last change: 2012 Nov 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -43,20 +43,9 @@ Checking runtime scripts: Thilo Six, 2012 Jun 6.
GTK: problem with 'L' in 'guioptions' changing the window width. GTK: problem with 'L' in 'guioptions' changing the window width.
(Aaron Cornelius, 2012 Feb 6) (Aaron Cornelius, 2012 Feb 6)
Patch to fix undofile hash computed when not necessary. (Christian Brabandt,
2012 Oct 16, update Oct 18)
Patch to fix repeating "cgn". (Christian Brabandt, 2012 Oct 16)
Update Oct 17.
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3. Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
Updated French and Esperanto files. (Dominique Pelle, 2012 Aug 19) Patches for two problems, with explanations. (Christian Brabandt, 2012 Oct 22)
When showing diffs filler lines may be hidden at first.
Patch by Christian Brabandt, 2012 Sep 6. Update Oct 11.
Patch for memory leaks on exception. (ZyX, 2012 Sep 9)
The CompleteDone autocommand needs some info passed to it: The CompleteDone autocommand needs some info passed to it:
- The word that was selected (empty if abandoned complete) - The word that was selected (empty if abandoned complete)
@@ -67,6 +56,19 @@ And use file name completion on a file with spaces. (Frederic Hardy, 2009 Mar
23) 23)
Patch by Christian Brabandt, 2012 Oct 18. Update Oct 19. Patch by Christian Brabandt, 2012 Oct 18. Update Oct 19.
Patch to reset did_endif. (Christian Brabandt,, 2012 Oct 23)
How about a test?
Patch for Tab behavior with 'conceal'. (Dominique Pelle, 2012 Mar 18)
Patch to test functionality of 'conceal' with tabs. (Simon Ruderich, 2012 Sep
5) Update with screencol() and screenrow() functions: Sep 7.
Patch for integer overflow in move.c. (Dominique Pelle, 2012 Nov 6)
Patch for undefined integer behavior. (Dominique Pelle, 2012 Nov 4, second one)
Patch to have Python interface not depend on multi-byte.
mouse_sgr is not ordered alphabetically in :version output. mouse_sgr is not ordered alphabetically in :version output.
Docs list mouse_urxvt as normal feature, should be big. (Hayaki Saito, 2012 Docs list mouse_urxvt as normal feature, should be big. (Hayaki Saito, 2012
Aug 16) Aug 16)
@@ -76,12 +78,16 @@ the order they were made. Also ":gredo". Both with a count. Useful when
tests fail after making changes and you forgot in which files. tests fail after making changes and you forgot in which files.
Patch to make updating tabline faster. (Arseny Kapoulkine, 2012 Oct 3) Patch to make updating tabline faster. (Arseny Kapoulkine, 2012 Oct 3)
Also remove the "rc" variable.
Crash with vimdiff. (Don Cruickshank, 2012 Sep 23) Crash with vimdiff. (Don Cruickshank, 2012 Sep 23)
Win32: use 'guifontwide' for IME composition. (Taro Muraoka, 2012 Sep 30) Win32: use 'guifontwide' for IME composition. (Taro Muraoka, 2012 Sep 30)
Update Oct 2. Update Oct 2.
Patch to fix :s command with confirm and typing "a". (Christian Brabandt, 2012
Oct 28)
Patch to make multibyte input work on Win32 console when codepage differs from Patch to make multibyte input work on Win32 console when codepage differs from
'encoding'. (Ken Takata, 2012 Sep 29) 'encoding'. (Ken Takata, 2012 Sep 29)
@@ -92,6 +98,11 @@ Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5) Stocker, 2012 Jan 5)
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91.
Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
28) With tests: Oct 9. 28) With tests: Oct 9.
@@ -103,14 +114,13 @@ Issue 54: document behavior of -complete, also expands arg.
New syntax files for apt. (quidame, 2012 Sep 21) New syntax files for apt. (quidame, 2012 Sep 21)
'ff' is wrong for one-line file without EOL. (Issue 77)
Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30, Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30,
then Sep 1, reminder Oct 14) then Sep 1, reminder Oct 14)
Issue 72: 'autochdir' causes problems for :vimgrep. Issue 72: 'autochdir' causes problems for :vimgrep.
:setlocal does not work in the sandbox, but :set does. Both should work in a
similar way (not setting some options). (Michael Henry, 2012 Oct 20)
In the ATTENTION message about an existing swap file, mention the name of the In the ATTENTION message about an existing swap file, mention the name of the
process that is running. It might actually be some other program, e.g. after process that is running. It might actually be some other program, e.g. after
a reboot. a reboot.
@@ -118,9 +128,6 @@ a reboot.
MS-Windows: Crash opening very long file name starting with "\\". MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29) (Christian Brock, 2012 Jun 29)
Win32: patch for current directory, "loading iof conv". (Ken Takata, 2012 Sep
15)
It's probably a good idea to make a negative value for 'sts' use the value of It's probably a good idea to make a negative value for 'sts' use the value of
'sw'. Patch by So8res, Oct 3 2012 'sw'. Patch by So8res, Oct 3 2012
@@ -136,9 +143,12 @@ Or use expand('<sid>')?
Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers, Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
2012 Aug 4) 2012 Aug 4)
Patch for Tab behavior with 'conceal'. (Dominique Pelle, 2012 Mar 18) Patch with suggestions for starting.txt. (Tony Mechelynck, 2012 Oct 24)
Patch to test functionality of 'conceal' with tabs. (Simon Ruderich, 2012 Sep But use Gnome instead of GTK?
5) Update with screencol() and screenrow() functions: Sep 7.
Should be possible to enable/disable matchparen per window or buffer.
Add a check for b:no_match_paren in Highlight_matching_Pair() (Marcin
Szamotulski, 2012 Nov 8)
Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott, Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott,
2012 Aug 11) Disallow :new when BufUnload is being handled? 2012 Aug 11) Disallow :new when BufUnload is being handled?
@@ -158,6 +168,9 @@ MS-Windows resizing problems:
Help for b:undo_indent'. (Thilo Six, 2012 May 28) Help for b:undo_indent'. (Thilo Six, 2012 May 28)
Also question if examples are correct. Also question if examples are correct.
It should be possible to make globpath() return a list instead of a string,
like with glob(). (Greg Novack, 2012 Nov 2)
The input map for CTRL-O in mswin.vim causes problems after CTRL-X CTRL-O. The input map for CTRL-O in mswin.vim causes problems after CTRL-X CTRL-O.
Suggestion for another map. (Philip Mat, 2012 Jun 18) Suggestion for another map. (Philip Mat, 2012 Jun 18)
But use "gi" instead of "a". Or use CTRL-\ CTRL-O. But use "gi" instead of "a". Or use CTRL-\ CTRL-O.
@@ -169,11 +182,16 @@ Have an option for spell checking to not mark any Chinese, Japanese or other
double-width characters as error. Or perhaps all characters above 256. double-width characters as error. Or perhaps all characters above 256.
(Bill Sun) Helps a lot for mixed Asian and latin text. (Bill Sun) Helps a lot for mixed Asian and latin text.
When there are no command line arguments ":next" and ":argu" give E163, which
is confusing. Should say "the argument list is empty".
URXVT: URXVT:
- will get stuck if byte sequence does not containe expected semicolon. - will get stuck if byte sequence does not containe expected semicolon.
- Use urxvt mouse support also in xterm. Explanations: - Use urxvt mouse support also in xterm. Explanations:
http://www.midnight-commander.org/ticket/2662 http://www.midnight-commander.org/ticket/2662
MS-Windows: test 17 fails. Analysis by Michael Soyka, 2012 Nov 5.
Patch to add tests for if_xcmdsrv.c., Jul 8, need some more work. (Brian Burns) Patch to add tests for if_xcmdsrv.c., Jul 8, need some more work. (Brian Burns)
New tests Jul 13. Update Jul 17. Discussion Jul 18. New tests Jul 13. Update Jul 17. Discussion Jul 18.
@@ -817,7 +835,7 @@ very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)
Directory wrong in session file, caused by ":lcd" in BufEnter autocommand. Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
(Felix Kater, 2009 Mar 3) (Felix Kater, 2009 Mar 3)
Session file generates error upon loading, cause bu --remote-silent-tab. Session file generates error upon loading, cause by --remote-silent-tab.
(7tommm (ytommm) 2010 Nov 24) (7tommm (ytommm) 2010 Nov 24)
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
@@ -938,8 +956,6 @@ error message? Or is this easy to implement? (Nathan Stratton Treadway, 2008
Aug 20) This is in ucs2bytes(), search for 0xBF. Using the ++bad argument is Aug 20) This is in ucs2bytes(), search for 0xBF. Using the ++bad argument is
at the other match for 0xBF. at the other match for 0xBF.
Fix for matchparen HL doesn't work. beep.
When adding "-complete=file" to a user command this also changes how the When adding "-complete=file" to a user command this also changes how the
argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19) argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19)
@@ -1589,6 +1605,9 @@ Win32, NTFS: When editing a specific infostream directly and 'backupcopy' is
name is something like "c:\path\foo.txt:bar", includes a colon. (Alex name is something like "c:\path\foo.txt:bar", includes a colon. (Alex
Jakushev, 2008 Feb 1) Jakushev, 2008 Feb 1)
printf() uses the field width in bytes. Can it be made character width,
perhaps with a modifier? What does Posix say?
Small problem displaying diff filler line when opening windows with a script. Small problem displaying diff filler line when opening windows with a script.
(David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 ) (David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 )

View File

@@ -1,4 +1,4 @@
*usr_21.txt* For Vim version 7.3. Last change: 2008 Nov 09 *usr_21.txt* For Vim version 7.3. Last change: 2012 Nov 02
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -282,7 +282,7 @@ example, use: >
SESSION HERE, SESSION THERE SESSION HERE, SESSION THERE
The obvious way to use sessions is when working on different projects. The obvious way to use sessions is when working on different projects.
Suppose you store you session files in the directory "~/.vim". You are Suppose you store your session files in the directory "~/.vim". You are
currently working on the "secret" project and have to switch to the "boring" currently working on the "secret" project and have to switch to the "boring"
project: > project: >
@@ -295,7 +295,7 @@ is saved, using ":mksession!". This overwrites the previous session. The
next time you load the secret session you can continue where you were at this next time you load the secret session you can continue where you were at this
point. And finally you load the new "boring" session. point. And finally you load the new "boring" session.
If you open help windows, split and close various window, and generally mess If you open help windows, split and close various windows, and generally mess
up the window layout, you can go back to the last saved session: > up the window layout, you can go back to the last saved session: >
:source ~/.vim/boring.vim :source ~/.vim/boring.vim
@@ -423,10 +423,10 @@ and nine numbered 1 to 9.
A VIEW WITH A NAME A VIEW WITH A NAME
The second basic way to use views is by storing the view in a file with a name The second basic way to use views is by storing the view in a file with a name
you chose. This view can be loaded while editing another file. Vim will then you choose. This view can be loaded while editing another file. Vim will
switch to editing the file specified in the view. Thus you can use this to then switch to editing the file specified in the view. Thus you can use this
quickly switch to editing another file, with all its options set as you saved to quickly switch to editing another file, with all its options set as you
them. saved them.
For example, to save the view of the current file: > For example, to save the view of the current file: >
:mkview ~/.vim/main.vim :mkview ~/.vim/main.vim

View File

@@ -1,4 +1,4 @@
*usr_22.txt* For Vim version 7.3. Last change: 2010 Feb 21 *usr_22.txt* For Vim version 7.3. Last change: 2012 Nov 15
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -326,9 +326,9 @@ shorter to type: >
The output could look like this: The output could look like this:
1 #h "help.txt" line 62 ~ 1 #h "help.txt" line 62 ~
2 %a+ "usr_21.txt" line 1 ~ 2 %a + "usr_21.txt" line 1 ~
3 "usr_toc.txt" line 1 ~ 3 "usr_toc.txt" line 1 ~
The first column contains the buffer number. You can use this to edit the The first column contains the buffer number. You can use this to edit the
buffer without having to type the name, see below. buffer without having to type the name, see below.

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.3. Last change: 2012 Apr 13 *windows.txt* For Vim version 7.3. Last change: 2012 Nov 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -939,9 +939,9 @@ list of buffers. |unlisted-buffer|
:buffers[!] *:buffers* *:ls* :buffers[!] *:buffers* *:ls*
:ls[!] Show all buffers. Example: :ls[!] Show all buffers. Example:
1 #h "/test/text" line 1 ~ 1 #h "/test/text" line 1 ~
2u "asdf" line 0 ~ 2u "asdf" line 0 ~
3 %a+ "version.c" line 1 ~ 3 %a + "version.c" line 1 ~
When the [!] is included the list will show unlisted buffers When the [!] is included the list will show unlisted buffers
(the term "unlisted" is a bit confusing then...). (the term "unlisted" is a bit confusing then...).

View File

@@ -20,7 +20,7 @@
if &cp || exists("g:loaded_netrwPlugin") if &cp || exists("g:loaded_netrwPlugin")
finish finish
endif endif
let g:loaded_netrwPlugin = "v145" let g:loaded_netrwPlugin = "v146"
if v:version < 702 if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
finish finish

View File

@@ -1,8 +1,8 @@
" Vim ABAP syntax file " Vim ABAP syntax file
" Language: SAP - ABAP/R4 " Language: SAP - ABAP/R4
" Revision: 2.0 " Revision: 2.1
" Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com> " Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com>
" Last Change: 2012 Oct 12 " Last Change: 2012 Oct 23
" Comment: Thanks to EPI-USE Labs for all your assistance. :) " Comment: Thanks to EPI-USE Labs for all your assistance. :)
" For version < 6.0: Clear all syntax items " For version < 6.0: Clear all syntax items
@@ -16,7 +16,7 @@ endif
" Always ignore case " Always ignore case
syn case ignore syn case ignore
" Symbol Operators " Symbol Operators (space delimited)
syn match abapSymbolOperator "\W+\W" syn match abapSymbolOperator "\W+\W"
syn match abapSymbolOperator "\W-\W" syn match abapSymbolOperator "\W-\W"
syn match abapSymbolOperator "\W/\W" syn match abapSymbolOperator "\W/\W"
@@ -49,99 +49,105 @@ else
set iskeyword=48-57,_,A-Z,a-z,/ set iskeyword=48-57,_,A-Z,a-z,/
endif endif
syn match abapNamespace "/\w\+/" syn match abapNamespace "\</\w\+/"
" multi-word statements " multi-word statements
syn match abapComplexStatement "\(WITH\W\+\(HEADER\W\+LINE\|FRAME\|KEY\)\|WITH\)" syn match abapComplexStatement "\<\(WITH\W\+\(HEADER\W\+LINE\|FRAME\|KEY\)\|WITH\)\>"
syn match abapComplexStatement "NO\W\+STANDARD\W\+PAGE\W\+HEADING" syn match abapComplexStatement "\<NO\W\+STANDARD\W\+PAGE\W\+HEADING\>"
syn match abapComplexStatement "\(EXIT\W\+FROM\W\+STEP\W\+LOOP\|EXIT\)" syn match abapComplexStatement "\<\(EXIT\W\+FROM\W\+STEP\W\+LOOP\|EXIT\)\>"
syn match abapComplexStatement "\(BEGIN\W\+OF\W\+\(BLOCK\|LINE\)\|BEGIN\W\+OF\)" syn match abapComplexStatement "\<\(BEGIN\W\+OF\W\+\(BLOCK\|LINE\)\|BEGIN\W\+OF\)\>"
syn match abapComplexStatement "\(END\W\+OF\W\+\(BLOCK\|LINE\)\|END\W\+OF\)" syn match abapComplexStatement "\<\(END\W\+OF\W\+\(BLOCK\|LINE\)\|END\W\+OF\)\>"
syn match abapComplexStatement "NO\W\+INTERVALS" syn match abapComplexStatement "\<NO\W\+INTERVALS\>"
syn match abapComplexStatement "RESPECTING\W\+BLANKS" syn match abapComplexStatement "\<RESPECTING\W\+BLANKS\>"
syn match abapComplexStatement "SEPARATED\W\+BY" syn match abapComplexStatement "\<SEPARATED\W\+BY\>"
syn match abapComplexStatement "\(USING\W\+\(EDIT\W\+MASK\)\|USING\)" syn match abapComplexStatement "\<USING\(\W\+EDIT\W\+MASK\)\?\>"
syn match abapComplexStatement "\(WHERE\W\+\(LINE\)\)" syn match abapComplexStatement "\<WHERE\(\W\+LINE\)\?\>"
syn match abapComplexStatement "RADIOBUTTON\W\+GROUP" syn match abapComplexStatement "\<RADIOBUTTON\W\+GROUP\>"
syn match abapComplexStatement "REF\W\+TO" syn match abapComplexStatement "\<REF\W\+TO\>"
syn match abapComplexStatement "\(PUBLIC\|PRIVATE\|PROTECTED\)\(\W\+SECTION\)\?" syn match abapComplexStatement "\<\(PUBLIC\|PRIVATE\|PROTECTED\)\(\W\+SECTION\)\?\>"
syn match abapComplexStatement "DELETING\W\+\(TRAILING\|LEADING\)" syn match abapComplexStatement "\<DELETING\W\+\(TRAILING\|LEADING\)\>"
syn match abapComplexStatement "\(ALL\W\+OCCURRENCES\)\|\(\(FIRST\|LAST\)\W\+OCCURRENCE\)" syn match abapComplexStatement "\<\(ALL\W\+OCCURRENCES\)\|\(\(FIRST\|LAST\)\W\+OCCURRENCE\)\>"
syn match abapComplexStatement "INHERITING\W\+FROM" syn match abapComplexStatement "\<INHERITING\W\+FROM\>"
syn match abapComplexStatement "\<\(UP\W\+\)\?TO\>"
" hyphenated-word statements " hyphenated-word statements
syn match abapComplexStatement "LINE-COUNT" syn match abapComplexStatement "\<LINE-COUNT\>"
syn match abapComplexStatement "ADD-CORRESPONDING" syn match abapComplexStatement "\<ADD-CORRESPONDING\>"
syn match abapComplexStatement "AUTHORITY-CHECK" syn match abapComplexStatement "\<AUTHORITY-CHECK\>"
syn match abapComplexStatement "BREAK-POINT" syn match abapComplexStatement "\<BREAK-POINT\>"
syn match abapComplexStatement "CLASS-DATA" syn match abapComplexStatement "\<CLASS-DATA\>"
syn match abapComplexStatement "CLASS-METHODS" syn match abapComplexStatement "\<CLASS-METHODS\>"
syn match abapComplexStatement "CLASS-METHOD" syn match abapComplexStatement "\<CLASS-METHOD\>"
syn match abapComplexStatement "DIVIDE-CORRESPONDING" syn match abapComplexStatement "\<DIVIDE-CORRESPONDING\>"
syn match abapComplexStatement "EDITOR-CALL" syn match abapComplexStatement "\<EDITOR-CALL\>"
syn match abapComplexStatement "END-OF-DEFINITION" syn match abapComplexStatement "\<END-OF-DEFINITION\>"
syn match abapComplexStatement "END-OF-PAGE" syn match abapComplexStatement "\<END-OF-PAGE\>"
syn match abapComplexStatement "END-OF-SELECTION" syn match abapComplexStatement "\<END-OF-SELECTION\>"
syn match abapComplexStatement "FIELD-GROUPS" syn match abapComplexStatement "\<FIELD-GROUPS\>"
syn match abapComplexStatement "FIELD-SYMBOLS" syn match abapComplexStatement "\<FIELD-SYMBOLS\>"
syn match abapComplexStatement "FUNCTION-POOL" syn match abapComplexStatement "\<FUNCTION-POOL\>"
syn match abapComplexStatement "MOVE-CORRESPONDING" syn match abapComplexStatement "\<IS\W\+\(NOT\W\+\)\?\(ASSIGNED\|BOUND\|INITIAL\|SUPPLIED\)\>"
syn match abapComplexStatement "MULTIPLY-CORRESPONDING" syn match abapComplexStatement "\<MOVE-CORRESPONDING\>"
syn match abapComplexStatement "NEW-LINE" syn match abapComplexStatement "\<MULTIPLY-CORRESPONDING\>"
syn match abapComplexStatement "NEW-PAGE" syn match abapComplexStatement "\<NEW-LINE\>"
syn match abapComplexStatement "NEW-SECTION" syn match abapComplexStatement "\<NEW-PAGE\>"
syn match abapComplexStatement "PRINT-CONTROL" syn match abapComplexStatement "\<NEW-SECTION\>"
syn match abapComplexStatement "RP-PROVIDE-FROM-LAST" syn match abapComplexStatement "\<PRINT-CONTROL\>"
syn match abapComplexStatement "SELECT-OPTIONS" syn match abapComplexStatement "\<RP-PROVIDE-FROM-LAST\>"
syn match abapComplexStatement "SELECTION-SCREEN" syn match abapComplexStatement "\<SELECT-OPTIONS\>"
syn match abapComplexStatement "START-OF-SELECTION" syn match abapComplexStatement "\<SELECTION-SCREEN\>"
syn match abapComplexStatement "SUBTRACT-CORRESPONDING" syn match abapComplexStatement "\<START-OF-SELECTION\>"
syn match abapComplexStatement "SYNTAX-CHECK" syn match abapComplexStatement "\<SUBTRACT-CORRESPONDING\>"
syn match abapComplexStatement "SYNTAX-TRACE" syn match abapComplexStatement "\<SYNTAX-CHECK\>"
syn match abapComplexStatement "TOP-OF-PAGE" syn match abapComplexStatement "\<SYNTAX-TRACE\>"
syn match abapComplexStatement "TYPE-POOL" syn match abapComplexStatement "\<TOP-OF-PAGE\>"
syn match abapComplexStatement "TYPE-POOLS" syn match abapComplexStatement "\<TYPE-POOL\>"
syn match abapComplexStatement "LINE-SIZE" syn match abapComplexStatement "\<TYPE-POOLS\>"
syn match abapComplexStatement "LINE-COUNT" syn match abapComplexStatement "\<LINE-SIZE\>"
syn match abapComplexStatement "MESSAGE-ID" syn match abapComplexStatement "\<LINE-COUNT\>"
syn match abapComplexStatement "DISPLAY-MODE" syn match abapComplexStatement "\<MESSAGE-ID\>"
syn match abapComplexStatement "READ\(-ONLY\)\?" syn match abapComplexStatement "\<DISPLAY-MODE\>"
syn match abapComplexStatement "\<READ\(-ONLY\)\?\>"
" ABAP statements " ABAP statements
syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT
syn keyword abapStatement BACK BOUND syn keyword abapStatement BACK
syn keyword abapStatement CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY syn keyword abapStatement CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY
syn keyword abapStatement DATA DEFINE DEFINITION DEFERRED DELETE DESCRIBE DETAIL DIVIDE DO syn keyword abapStatement DATA DEFINE DEFINITION DEFERRED DELETE DESCRIBE DETAIL DIVIDE DO
syn keyword abapStatement ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT syn keyword abapStatement ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT
syn keyword abapStatement FETCH FIELDS FORM FORMAT FREE FROM FUNCTION syn keyword abapStatement FETCH FIELDS FORM FORMAT FREE FROM FUNCTION
syn keyword abapStatement GENERATE GET syn keyword abapStatement GENERATE GET
syn keyword abapStatement HIDE syn keyword abapStatement HIDE
syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIAL INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION IS syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION
syn keyword abapStatement LEAVE LIKE LINE LOAD LOCAL LOOP syn keyword abapStatement LEAVE LIKE LINE LOAD LOCAL LOOP
syn keyword abapStatement MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY syn keyword abapStatement MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY
syn keyword abapStatement ON OVERLAY OPTIONAL OTHERS syn keyword abapStatement ON OVERLAY OPTIONAL OTHERS
syn keyword abapStatement PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT syn keyword abapStatement PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT
syn keyword abapStatement RAISE RANGES RECEIVE REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK syn keyword abapStatement RAISE RANGES RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK
syn keyword abapStatement SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS syn keyword abapStatement SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS
syn keyword abapStatement TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES syn keyword abapStatement TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES
syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE
syn keyword abapStatement WHEN WHILE WINDOW WRITE syn keyword abapStatement WHEN WHILE WINDOW WRITE
" More statemets " More statemets
syn keyword abapStatement LINES
syn keyword abapStatement INTO GROUP BY HAVING ORDER BY SINGLE
syn keyword abapStatement APPENDING CORRESPONDING FIELDS OF TABLE
syn keyword abapStatement LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER ROWS CONNECTING
syn keyword abapStatement OCCURS STRUCTURE OBJECT PROPERTY syn keyword abapStatement OCCURS STRUCTURE OBJECT PROPERTY
syn keyword abapStatement CASTING APPEND RAISING VALUE COLOR syn keyword abapStatement CASTING APPEND RAISING VALUE COLOR
syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT
syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT
" Special ABAP specific tables: " Special ABAP specific tables:
syn match abapSpecial "\(\W\|^\)\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)\(\W\|$\)"ms=s+1,me=e-1 syn match abapSpecialTables "\<\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained
syn match abapSpecialTables "\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained syn match abapStructure "\<\w\+-[^\>]"me=e-2 contains=abapSpecialTables,abapStatement,abapComplexStatement
syn match abapSpecial "\(\W\|^\)\w\+-\(\w\+-\w\+\|\w\+\)"ms=s+1 contains=abapSpecialTables,abapStatement,abapComplexStatement syn match abapField "-\w\+"ms=s+1
" Pointer " Pointer
syn match abapSpecial "<\w\+>" syn match abapSpecial "<\w\+>"
" Abap constants: " Abap common constants:
syn keyword abapSpecial TRUE FALSE NULL SPACE syn keyword abapSpecial TRUE FALSE NULL SPACE
" Includes " Includes
@@ -155,15 +161,8 @@ syn keyword abapOperator abs sign ceil floor trunc frac acos asin atan cos sin t
syn keyword abapOperator cosh sinh tanh exp log log10 sqrt syn keyword abapOperator cosh sinh tanh exp log log10 sqrt
" String operators " String operators
syn keyword abapOperator strlen xstrlen charlen numofchar dbmaxlen syn keyword abapStatement strlen xstrlen charlen numofchar dbmaxlen
" Table operators
syn keyword abapOperator lines
" Table operators (SELECT operators)
syn keyword abapOperator INTO WHERE GROUP BY HAVING ORDER BY SINGLE
syn keyword abapOperator APPENDING CORRESPONDING FIELDS OF TABLE
syn keyword abapOperator LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING
syn keyword abapOperator EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN syn keyword abapOperator EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN
" An error? Not strictly... but cannot think of reason this is intended. " An error? Not strictly... but cannot think of reason this is intended.
@@ -193,7 +192,7 @@ if version >= 508 || !exists("did_abap_syntax_inits")
HiLink abapComplexStatement Statement HiLink abapComplexStatement Statement
HiLink abapSpecial Special HiLink abapSpecial Special
HiLink abapNamespace Special HiLink abapNamespace Special
HiLink abapSpecialTables PreProc HiLink abapSpecialTables Special
HiLink abapSymbolOperator abapOperator HiLink abapSymbolOperator abapOperator
HiLink abapOperator Operator HiLink abapOperator Operator
HiLink abapCharString String HiLink abapCharString String
@@ -201,6 +200,8 @@ if version >= 508 || !exists("did_abap_syntax_inits")
HiLink abapFloat Float HiLink abapFloat Float
HiLink abapTypes Type HiLink abapTypes Type
HiLink abapSymbol Structure HiLink abapSymbol Structure
HiLink abapStructure Structure
HiLink abapField Variable
HiLink abapNumber Number HiLink abapNumber Number
HiLink abapHex Number HiLink abapHex Number

View File

@@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Lex " Language: Lex
" Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Nov 01, 2010 " Last Change: Nov 14, 2012
" Version: 12 " Version: 14
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" "
" Option: " Option:
@@ -17,20 +17,16 @@ elseif exists("b:current_syntax")
endif endif
" Read the C/C++ syntax to start with " Read the C/C++ syntax to start with
if version >= 600 let s:Cpath= fnameescape(expand("<sfile>:p:h").(exists("g:lex_uses_cpp")? "/cpp.vim" : "/c.vim"))
if exists("lex_uses_cpp") if !filereadable(s:Cpath)
runtime! syntax/cpp.vim for s:Cpath in split(globpath(&rtp,(exists("g:lex_uses_cpp")? "syntax/cpp.vim" : "syntax/c.vim")),"\n")
else if filereadable(fnameescape(s:Cpath))
runtime! syntax/c.vim let s:Cpath= fnameescape(s:Cpath)
endif break
unlet b:current_syntax
else
if exists("lex_uses_cpp")
so <sfile>:p:h/cpp.vim
else
so <sfile>:p:h/c.vim
endif endif
endfor
endif endif
exe "syn include @lexCcode ".s:Cpath
" --- ========= --- " --- ========= ---
" --- Lex stuff --- " --- Lex stuff ---
@@ -39,10 +35,6 @@ endif
" Options Section " Options Section
syn match lexOptions '^%\s*option\>.*$' contains=lexPatString syn match lexOptions '^%\s*option\>.*$' contains=lexPatString
"I'd prefer to use lex.* , but vim doesn't handle forward definitions yet
syn cluster lexListGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatString,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,lexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
syn cluster lexListPatCodeGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatTagZoneStart,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
" Abbreviations Section " Abbreviations Section
if has("folding") if has("folding")
syn region lexAbbrvBlock fold start="^\(\h\+\s\|%{\)" end="^\ze%%$" skipnl nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState syn region lexAbbrvBlock fold start="^\(\h\+\s\|%{\)" end="^\ze%%$" skipnl nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
@@ -53,52 +45,69 @@ syn match lexAbbrv "^\I\i*\s"me=e-1 skipwhite contained nextgroup=lexAbbrvRe
syn match lexAbbrv "^%[sx]" contained syn match lexAbbrv "^%[sx]" contained
syn match lexAbbrvRegExp "\s\S.*$"lc=1 contained nextgroup=lexAbbrv,lexInclude syn match lexAbbrvRegExp "\s\S.*$"lc=1 contained nextgroup=lexAbbrv,lexInclude
if has("folding") if has("folding")
syn region lexInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=ALLBUT,@lexListGroup syn region lexInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=@lexCcode
syn region lexAbbrvComment fold start="^\s\+/\*" end="\*/" contains=@Spell syn region lexAbbrvComment fold start="^\s\+/\*" end="\*/" contains=@Spell
syn region lexAbbrvComment fold start="\%^/\*" end="\*/" contains=@Spell
syn region lexStartState fold matchgroup=lexAbbrv start="^%\a\+" end="$" contained syn region lexStartState fold matchgroup=lexAbbrv start="^%\a\+" end="$" contained
else else
syn region lexInclude matchgroup=lexSep start="^%{" end="%}" contained contains=ALLBUT,@lexListGroup syn region lexInclude matchgroup=lexSep start="^%{" end="%}" contained contains=@lexCcode
syn region lexAbbrvComment start="^\s\+/\*" end="\*/" contains=@Spell syn region lexAbbrvComment start="^\s\+/\*" end="\*/" contains=@Spell
syn region lexAbbrvComment start="\%^/\*" end="\*/" contains=@Spell
syn region lexStartState matchgroup=lexAbbrv start="^%\a\+" end="$" contained syn region lexStartState matchgroup=lexAbbrv start="^%\a\+" end="$" contained
endif endif
"%% : Patterns {Actions} "%% : Patterns {Actions}
if has("folding") if has("folding")
syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%\ze%$" skipnl skipwhite nextgroup=lexFinalCodeBlock contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude
syn region lexPat fold start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace syn region lexPat fold start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 skipwhite contained nextgroup=lexMorePat,lexPatSep,lexPattern contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
syn region lexPatInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode syn region lexPatInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode
syn region lexBrace fold start="\[" skip=+\\\\\|\\+ end="]" contained syn region lexBrace fold start="\[" skip=+\\\\\|\\+ end="]" contained
syn region lexPatString fold matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained syn region lexPatString fold matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
else else
syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite nextgroup=lexFinalCodeBlock contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude
syn region lexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace syn region lexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 skipwhite contained nextgroup=lexMorePat,lexPatSep,lexPattern contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
syn region lexPatInclude matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode syn region lexPatInclude matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode
syn region lexBrace start="\[" skip=+\\\\\|\\+ end="]" contained syn region lexBrace start="\[" skip=+\\\\\|\\+ end="]" contained
syn region lexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained syn region lexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
endif endif
syn match lexPatTag "^<\I\i*\(,\I\i*\)*>" contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep syn match lexPatTag "^<\I\i*\(,\I\i*\)*>" contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
syn match lexPatTagZone "^<\I\i*\(,\I\i*\)*>\s*\ze{" contained nextgroup=lexPatTagZoneStart syn match lexPatTagZone "^<\I\i*\(,\I\i*\)*>\s\+\ze{" contained nextgroup=lexPatTagZoneStart
syn match lexPatTag +^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+ contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep syn match lexPatTag +^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+ contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
" Lex Patterns
syn region lexPattern start='[^ \t{}]' end="$" contained contains=lexPatRange
syn region lexPatRange matchgroup=Delimiter start='\[' skip='\\\\\|\\.' end='\]' contains=lexEscape
syn match lexEscape '\%(\\\\\)*\\.' contained
if has("folding") if has("folding")
syn region lexPatTagZoneStart matchgroup=lexPatTag fold start='{' end='}' contained contains=lexPat,lexPatComment syn region lexPatTagZoneStart matchgroup=lexPatTag fold start='{' end='}' contained contains=lexPat,lexPatComment
syn region lexPatComment start="\s\+/\*" end="\*/" fold skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell syn region lexPatComment start="\s\+/\*" end="\*/" fold skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
else else
syn region lexPatTagZoneStart matchgroup=lexPatTag start='{' end='}' contained contains=lexPat,lexPatComment syn region lexPatTagZoneStart matchgroup=lexPatTag start='{' end='}' contained contains=lexPat,lexPatComment
syn region lexPatComment start="\s\+/\*" end="\*/" skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell syn region lexPatComment start="\s\+/\*" end="\*/" skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
endif endif
syn match lexPatCodeLine ".*$" contained contains=ALLBUT,@lexListGroup syn match lexPatCodeLine "[^{\[].*" contained contains=@lexCcode
syn match lexMorePat "\s*|\s*$" skipnl contained nextgroup=lexPat,lexPatTag,lexPatComment syn match lexMorePat "\s*|\s*$" skipnl contained nextgroup=lexPat,lexPatTag,lexPatComment
syn match lexPatSep "\s\+" contained nextgroup=lexMorePat,lexPatCode,lexPatCodeLine syn match lexPatSep "\s\+" contained nextgroup=lexMorePat,lexPatCode,lexPatCodeLine
syn match lexSlashQuote +\(\\\\\)*\\"+ contained syn match lexSlashQuote +\(\\\\\)*\\"+ contained
if has("folding") if has("folding")
syn region lexPatCode matchgroup=Delimiter start="{" end="}" fold skipnl contained contains=ALLBUT,@lexListPatCodeGroup syn region lexPatCode matchgroup=Delimiter start="{" end="}" fold skipnl contained contains=@lexCcode,lexCFunctions
else else
syn region lexPatCode matchgroup=Delimiter start="{" end="}" skipnl contained contains=ALLBUT,@lexListPatCodeGroup syn region lexPatCode matchgroup=Delimiter start="{" end="}" skipnl contained contains=@lexCcode,lexCFunctions
endif endif
" Lex "functions" which may appear in C/C++ code blocks
syn keyword lexCFunctions BEGIN input unput woutput yyleng yylook yytext syn keyword lexCFunctions BEGIN input unput woutput yyleng yylook yytext
syn keyword lexCFunctions ECHO output winput wunput yyless yymore yywrap syn keyword lexCFunctions ECHO output winput wunput yyless yymore yywrap
" %%
" lexAbbrevBlock
" %%
" lexPatBlock
" %%
" lexFinalCodeBlock
syn region lexFinalCodeBlock matchgroup=Todo start="%$"me=e-1 end="\%$" contained contains=@lexCcode
" <c.vim> includes several ALLBUTs; these have to be treated so as to exclude lex* groups " <c.vim> includes several ALLBUTs; these have to be treated so as to exclude lex* groups
syn cluster cParenGroup add=lex.* syn cluster cParenGroup add=lex.*
syn cluster cDefineGroup add=lex.* syn cluster cDefineGroup add=lex.*
@@ -107,27 +116,27 @@ syn cluster cMultiGroup add=lex.*
" Synchronization " Synchronization
syn sync clear syn sync clear
syn sync minlines=300 syn sync minlines=500
syn sync match lexSyncPat grouphere lexPatBlock "^%[a-zA-Z]" syn sync match lexSyncPat grouphere lexPatBlock "^%[a-zA-Z]"
syn sync match lexSyncPat groupthere lexPatBlock "^<$" syn sync match lexSyncPat groupthere lexPatBlock "^<$"
syn sync match lexSyncPat groupthere lexPatBlock "^%%$" syn sync match lexSyncPat groupthere lexPatBlock "^%%$"
" The default highlighting. " The default highlighting.
hi def link lexAbbrvComment lexPatComment hi def link lexAbbrvComment lexPatComment
hi def link lexBrace lexPat
hi def link lexPatTagZone lexPatTag
hi def link lexSlashQuote lexPat
hi def link lexAbbrvRegExp Macro hi def link lexAbbrvRegExp Macro
hi def link lexAbbrv SpecialChar hi def link lexAbbrv SpecialChar
hi def link lexBrace lexPat
hi def link lexCFunctions Function hi def link lexCFunctions Function
hi def link lexCstruct cStructure
hi def link lexMorePat SpecialChar hi def link lexMorePat SpecialChar
hi def link lexOptions PreProc hi def link lexOptions PreProc
hi def link lexPatComment Comment hi def link lexPatComment Comment
hi def link lexPat Function hi def link lexPat Function
hi def link lexPatString Function hi def link lexPatString Function
hi def link lexPatTag Special hi def link lexPatTag Special
hi def link lexPatTagZone lexPatTag
hi def link lexSep Delimiter hi def link lexSep Delimiter
hi def link lexSlashQuote lexPat
hi def link lexStartState Statement hi def link lexStartState Statement
let b:current_syntax = "lex" let b:current_syntax = "lex"

View File

@@ -3,13 +3,13 @@
" Filename extensions: *.p (collides with Pascal), " Filename extensions: *.p (collides with Pascal),
" *.i (collides with assembler) " *.i (collides with assembler)
" *.w (collides with cweb) " *.w (collides with cweb)
" Maintainer: Philip Uren <philuSPAX@ieee.org> Remove SPAX spam block " Maintainer: Philip Uren <philuSPAXY@ieee.org> Remove SPAXY spam block
" Contributors: Chris Ruprecht <chris@ruprecht.org> " Contributors: Matthew Stickney <mtstickneySPAXY@gmail.com>
" Philip Uren <philu@computer.org> " Chris Ruprecht <chrisSPAXY@ruprecht.org>
" Mikhail Kuperblum <mikhail@whasup.com> " Mikhail Kuperblum <mikhailSPAXY@whasup.com>
" John Florian <jflorian@voyager.net> " John Florian <jflorianSPAXY@voyager.net>
" Version: 12 " Version: 13
" Last Change: Aug 16 2012 " Last Change: Nov 11 2012
" For version 5.x: Clear all syntax item " For version 5.x: Clear all syntax item
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@@ -99,8 +99,8 @@ syn keyword ProgressReserved window-maxim[ized] window-minim[ized] window-normal
" Strings. Handles embedded quotes. " Strings. Handles embedded quotes.
" Note that, for some reason, Progress doesn't use the backslash, "\" " Note that, for some reason, Progress doesn't use the backslash, "\"
" as the escape character; it uses tilde, "~". " as the escape character; it uses tilde, "~".
syn region ProgressString matchgroup=ProgressQuote start=+"+ end=+"+ skip=+\~'\|\~\~+ contains=@Spell syn region ProgressString matchgroup=ProgressQuote start=+"+ end=+"+ skip=+\~'\|\~\~\|\~"+ contains=@Spell
syn region ProgressString matchgroup=ProgressQuote start=+'+ end=+'+ skip=+\~'\|\~\~+ contains=@Spell syn region ProgressString matchgroup=ProgressQuote start=+'+ end=+'+ skip=+\~'\|\~\~\|\~"+ contains=@Spell
syn match ProgressIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>()" syn match ProgressIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>()"

View File

@@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: reStructuredText documentation format " Language: reStructuredText documentation format
" Maintainer: Nikolai Weibull <now@bitwi.se> " Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2012-08-05 " Latest Revision: 2012-11-01
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@@ -139,6 +139,27 @@ syn match rstStandaloneHyperlink contains=@NoSpell
" though. " though.
syn sync minlines=50 linebreaks=1 syn sync minlines=50 linebreaks=1
syn region rstCodeBlock contained matchgroup=rstDirective
\ start=+\%(sourcecode\|code\%(-block\)\=\)::\s+
\ skip=+^$+
\ end=+^\s\@!+
\ contains=@NoSpell
syn cluster rstDirectives add=rstCodeBlock
if !exists('g:rst_syntax_code_list')
let g:rst_syntax_code_list = ['vim', 'java', 'cpp', 'lisp', 'php', 'python', 'perl']
endif
for code in g:rst_syntax_code_list
unlet! b:current_syntax
exe 'syn include @rst'.code.' syntax/'.code.'.vim'
exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold '
\.'start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\s*$# '
\.'skip=#^$# '
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code
exe 'syn cluster rstDirectives add=rstDirective'.code
endfor
hi def link rstTodo Todo hi def link rstTodo Todo
hi def link rstComment Comment hi def link rstComment Comment
hi def link rstSections Title hi def link rstSections Title
@@ -168,6 +189,7 @@ hi def link rstFootnoteReference Identifier
hi def link rstCitationReference Identifier hi def link rstCitationReference Identifier
hi def link rstHyperLinkReference Identifier hi def link rstHyperLinkReference Identifier
hi def link rstStandaloneHyperlink Identifier hi def link rstStandaloneHyperlink Identifier
hi def link rstCodeBlock String
let b:current_syntax = "rst" let b:current_syntax = "rst"

View File

@@ -1,9 +1,9 @@
" Vim syntax file " Vim syntax file
" Language: shell (sh) Korn shell (ksh) bash (sh) " Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Mar 19, 2012 " Last Change: Nov 14, 2012
" Version: 122 " Version: 128
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" For options and settings, please use: :help ft-sh-syntax " For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr) " This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr)
@@ -17,15 +17,18 @@ elseif exists("b:current_syntax")
endif endif
" AFAICT "." should be considered part of the iskeyword. Using iskeywords in " AFAICT "." should be considered part of the iskeyword. Using iskeywords in
" syntax is dicey, so the following code permits the user to prevent/override " syntax is dicey, so the following code permits the user to
" its setting. " g:sh_isk set to a string : specify iskeyword.
if exists("g:sh_isk") " override support " g:sh_noisk exists : don't change iskeyword
exe "setlocal isk=".g:sh_isk " g:sh_noisk does not exist : (default) append "." to iskeyword
elseif !exists("g:sh_noisk") " prevent modification support if exists("g:sh_isk") && type(g:sh_isk) == 1 " user specifying iskeyword
setlocal isk+=. exe "setl isk=".g:sh_isk
elseif !exists("g:sh_noisk") " optionally prevent appending '.' to iskeyword
setl isk+=.
endif endif
" trying to answer the question: which shell is /bin/sh, really? " trying to answer the question: which shell is /bin/sh, really?
" If the user has not specified any of g:is_kornshell, g:is_bash, g:is_posix, g:is_sh, then guess.
if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh") if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
if executable("/bin/sh") if executable("/bin/sh")
if resolve("/bin/sh") =~ 'bash$' if resolve("/bin/sh") =~ 'bash$'
@@ -76,16 +79,19 @@ elseif g:sh_fold_enabled != 0 && !has("folding")
echomsg "Ignoring g:sh_fold_enabled=".g:sh_fold_enabled."; need to re-compile vim for +fold support" echomsg "Ignoring g:sh_fold_enabled=".g:sh_fold_enabled."; need to re-compile vim for +fold support"
endif endif
if !exists("s:sh_fold_functions") if !exists("s:sh_fold_functions")
let s:sh_fold_functions = 1 let s:sh_fold_functions= and(g:sh_fold_enabled,1)
endif endif
if !exists("s:sh_fold_heredoc") if !exists("s:sh_fold_heredoc")
let s:sh_fold_heredoc = 2 let s:sh_fold_heredoc = and(g:sh_fold_enabled,2)
endif endif
if !exists("s:sh_fold_ifdofor") if !exists("s:sh_fold_ifdofor")
let s:sh_fold_ifdofor = 4 let s:sh_fold_ifdofor = and(g:sh_fold_enabled,4)
endif endif
if g:sh_fold_enabled && &fdm == "manual" if g:sh_fold_enabled && &fdm == "manual"
setlocal fdm=syntax " Given that the user provided g:sh_fold_enabled
" AND g:sh_fold_enabled is manual (usual default)
" implies a desire for syntax-based folding
setl fdm=syntax
endif endif
" sh syntax is case sensitive {{{1 " sh syntax is case sensitive {{{1
@@ -102,12 +108,12 @@ syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
"syn cluster shColonList contains=@shCaseList "syn cluster shColonList contains=@shCaseList
syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial,shCmdParenRegion
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPPS syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPPS
syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError
syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shEscape,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
@@ -160,7 +166,7 @@ endif
" Options: {{{1 " Options: {{{1
" ==================== " ====================
syn match shOption "\s\zs[-+][-_a-zA-Z0-9]\+\>" syn match shOption "\s\zs[-+][-_a-zA-Z0-9#]\+"
syn match shOption "\s\zs--[^ \t$`'"|]\+" syn match shOption "\s\zs--[^ \t$`'"|]\+"
" File Redirection Highlighted As Operators: {{{1 " File Redirection Highlighted As Operators: {{{1
@@ -204,14 +210,15 @@ syn match shCharClass contained "\[:\(backspace\|escape\|return\|xdigit\|alnum
" Loops: do, if, while, until {{{1 " Loops: do, if, while, until {{{1
" ====== " ======
if (g:sh_fold_enabled % (s:sh_fold_ifdofor * 2))/s:sh_fold_ifdofor if s:sh_fold_ifdofor
syn region shDo fold transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList syn region shDo fold transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor fold matchgroup=shLoop start="\<for\_s" end="\<in\_s" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn syn region shFor fold matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\_s" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
else else
syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor matchgroup=shLoop start="\<for\_s" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn syn region shFor matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn match shForPP '\<for\>\ze\_s*(('
endif endif
if exists("b:is_kornshell") || exists("b:is_bash") if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster shCaseList add=shRepeat syn cluster shCaseList add=shRepeat
@@ -230,7 +237,7 @@ syn match shComma contained ","
" ==== " ====
syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
if (g:sh_fold_enabled % (s:sh_fold_ifdofor * 2))/s:sh_fold_ifdofor if s:sh_fold_ifdofor
syn region shCase fold contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment syn region shCase fold contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
syn region shCaseEsac fold matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList syn region shCaseEsac fold matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
else else
@@ -246,13 +253,17 @@ endif
syn region shCaseSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained syn region shCaseSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
syn region shCaseDoubleQuote matchgroup=shQuote start=+"+ skip=+\\\\\|\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained syn region shCaseDoubleQuote matchgroup=shQuote start=+"+ skip=+\\\\\|\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
syn region shCaseCommandSub start=+`+ skip=+\\\\\|\\.+ end=+`+ contains=@shCommandSubList skipwhite skipnl nextgroup=shCaseBar contained syn region shCaseCommandSub start=+`+ skip=+\\\\\|\\.+ end=+`+ contains=@shCommandSubList skipwhite skipnl nextgroup=shCaseBar contained
syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+]+ contained if exists("b:is_bash")
syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+\]+ contained contains=shCharClass
syn match shCharClass '\[:\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|or\|xdigit\):\]' contained
else
syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+\]+ contained
endif
" Misc: {{{1 " Misc: {{{1
"====== "======
syn match shWrapLineOperator "\\$" syn match shWrapLineOperator "\\$"
syn region shCommandSub start="`" skip="\\\\\|\\." end="`" contains=@shCommandSubList syn region shCommandSub start="`" skip="\\\\\|\\." end="`" contains=@shCommandSubList
syn match shEscape contained '\\.' contains=@shCommandSubList syn match shEscape contained '\%(\\\\\)*\\.'
" $() and $(()): {{{1 " $() and $(()): {{{1
" $(..) is not supported by sh (Bourne shell). However, apparently " $(..) is not supported by sh (Bourne shell). However, apparently
@@ -268,20 +279,23 @@ if exists("b:is_kornshell") || exists("b:is_bash")
elseif !exists("g:sh_no_error") elseif !exists("g:sh_no_error")
syn region shCommandSub matchgroup=Error start="\$(" end=")" contains=@shCommandSubList syn region shCommandSub matchgroup=Error start="\$(" end=")" contains=@shCommandSubList
endif endif
syn region shCmdParenRegion matchgroup=shCmdSubRegion start="(" skip='\\\\\|\\.' end=")" contains=@shCommandSubList
if exists("b:is_bash") if exists("b:is_bash")
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
syn cluster shCaseList add=bashAdminStatement,bashStatement syn cluster shCaseList add=bashAdminStatement,bashStatement
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep install less ls mkdir mv rm rmdir rpm sed sleep sort strip tail touch syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail touch
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
syn keyword bashStatement command compgen
endif endif
if exists("b:is_kornshell") if exists("b:is_kornshell")
syn cluster shCommandSubList add=kshSpecialVariables,kshStatement syn cluster shCommandSubList add=kshSpecialVariables,kshStatement
syn cluster shCaseList add=kshStatement syn cluster shCaseList add=kshStatement
syn keyword kshSpecialVariables contained CDPATH COLUMNS EDITOR ENV ERRNO FCEDIT FPATH HISTFILE HISTSIZE HOME IFS LINENO LINES MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTIND PATH PPID PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL TMOUT VISUAL syn keyword kshSpecialVariables contained CDPATH COLUMNS EDITOR ENV ERRNO FCEDIT FPATH HISTFILE HISTSIZE HOME IFS LINENO LINES MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTIND PATH PPID PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL TMOUT VISUAL
syn keyword kshStatement cat chmod clear cp du egrep expr fgrep find grep install killall less ls mkdir mv nice printenv rm rmdir sed sort strip stty tail touch tput syn keyword kshStatement cat chmod clear cp du egrep expr fgrep find grep killall less ls mkdir mv nice printenv rm rmdir sed sort strip stty tail touch tput
syn keyword kshStatement command setgroups setsenv
endif endif
syn match shSource "^\.\s" syn match shSource "^\.\s"
@@ -309,8 +323,8 @@ syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip
"syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell "syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn match shStringSpecial "[^[:print:] \t]" contained syn match shStringSpecial "[^[:print:] \t]" contained
syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]" syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial,shComment
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]" syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
" Comments: {{{1 " Comments: {{{1
@@ -319,6 +333,7 @@ syn cluster shCommentGroup contains=shTodo,@Spell
syn keyword shTodo contained COMBAK FIXME TODO XXX syn keyword shTodo contained COMBAK FIXME TODO XXX
syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup
syn match shComment "\s\zs#.*$" contains=@shCommentGroup syn match shComment "\s\zs#.*$" contains=@shCommentGroup
syn match shComment contained "#.*$" contains=@shCommentGroup
syn match shQuickComment contained "#.*$" syn match shQuickComment contained "#.*$"
" Here Documents: {{{1 " Here Documents: {{{1
@@ -331,52 +346,52 @@ if version < 600
syn region shHereDoc matchgroup=shRedir start="<<\s*\**\.\**" matchgroup=shRedir end="^\.$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir start="<<\s*\**\.\**" matchgroup=shRedir end="^\.$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir start="<<-\s*\**\.\**" matchgroup=shRedir end="^\s*\.$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir start="<<-\s*\**\.\**" matchgroup=shRedir end="^\s*\.$" contains=@shDblQuoteList
elseif (g:sh_fold_enabled % (s:sh_fold_heredoc * 2))/s:sh_fold_heredoc elseif s:sh_fold_heredoc
syn region shHereDoc matchgroup=shRedir fold start="<<\s*\z(\S*\)" matchgroup=shRedir end="^\z1\s*$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir fold start="<<\s*\z([^ \t|]*\)" matchgroup=shRedir end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir fold start="<<\s*\"\z(\S*\)\"" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<\s*'\z(\S*\)'" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<\s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\z(\S*\)" matchgroup=shRedir end="^\s*\z1\s*$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\z([^ \t|]*\)" matchgroup=shRedir end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\"\z(\S*\)\"" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<-\s*'\z(\S*\)'" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<\s*\\\_$\_s*\z(\S*\)" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<\s*\\\_$\_s*\"\z(\S*\)\"" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\\\_$\_s*'\z(\S*\)'" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\\\_$\_s*\z(\S*\)" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\\\_$\_s*\"\z(\S*\)\"" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<\s*\\\_$\_s*'\z(\S*\)'" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir fold start="<<\\\z(\S*\)" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir fold start="<<\\\z([^ \t|]*\)" matchgroup=shRedir end="^\z1\s*$"
else else
syn region shHereDoc matchgroup=shRedir start="<<\s*\\\=\z(\S*\)" matchgroup=shRedir end="^\z1\s*$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir start="<<\s*\\\=\z([^ \t|]*\)" matchgroup=shRedir end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir start="<<\s*\"\z(\S*\)\"" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<-\s*\z(\S*\)" matchgroup=shRedir end="^\s*\z1\s*$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir start="<<-\s*\z([^ \t|]*\)" matchgroup=shRedir end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir start="<<-\s*'\z(\S*\)'" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<\s*'\z(\S*\)'" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<\s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<-\s*\"\z(\S*\)\"" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*\z(\S*\)" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*\z(\S*\)" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*'\z(\S*\)'" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*'\z(\S*\)'" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*\"\z(\S*\)\"" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*\"\z(\S*\)\"" matchgroup=shRedir end="^\s*\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir start="<<\\\z(\S*\)" matchgroup=shRedir end="^\z1\s*$" syn region shHereDoc matchgroup=shRedir start="<<\\\z([^ \t|]*\)" matchgroup=shRedir end="^\z1\s*$"
endif endif
" Here Strings: {{{1 " Here Strings: {{{1
" ============= " =============
" available for: bash; ksh (really should be ksh93 only) but not if its a posix " available for: bash; ksh (really should be ksh93 only) but not if its a posix
if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("g:is_posix")) if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("g:is_posix"))
syn match shRedir "<<<" syn match shRedir "<<<" skipwhite nextgroup=shCmdParenRegion
endif endif
" Identifiers: {{{1 " Identifiers: {{{1
"============= "=============
syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained
syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shSetIdentifier syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shSetIdentifier
syn match shSetIdentifier "=" contained nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote syn match shSetIdentifier "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote
if exists("b:is_bash") if exists("b:is_bash")
syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList
elseif exists("b:is_kornshell") elseif exists("b:is_kornshell")
syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
@@ -390,15 +405,15 @@ if !exists("g:is_posix")
endif endif
if exists("b:is_bash") if exists("b:is_bash")
if (g:sh_fold_enabled % (s:sh_fold_functions * 2))/s:sh_fold_functions if s:sh_fold_functions
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment syn region shFunctionTwo fold matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else else
syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained syn region shFunctionTwo matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
endif endif
else else
if (g:sh_fold_enabled % (s:sh_fold_functions * 2))/s:sh_fold_functions if s:sh_fold_functions
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment syn region shFunctionTwo fold matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else else
@@ -409,7 +424,7 @@ endif
" Parameter Dereferencing: {{{1 " Parameter Dereferencing: {{{1
" ======================== " ========================
syn match shDerefSimple "\$\%(\h\w*\|\d\)" syn match shDerefSimple "\$\%(\k\+\|\d\)"
syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
if !exists("g:sh_no_error") if !exists("g:sh_no_error")
syn match shDerefWordError "[^}$[]" contained syn match shDerefWordError "[^}$[]" contained
@@ -425,12 +440,12 @@ endif
" ==================================== " ====================================
if exists("b:is_bash") if exists("b:is_bash")
syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOp syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOp
syn match shDerefVar contained "{\@<=!\w\+" nextgroup=@shDerefVarList syn match shDerefVar contained "{\@<=!\k\+" nextgroup=@shDerefVarList
endif endif
syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError
syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp
syn match shDerefVar contained "{\@<=\w\+" nextgroup=@shDerefVarList syn match shDerefVar contained "{\@<=\k\+" nextgroup=@shDerefVarList
" sh ksh bash : ${var[... ]...} array reference: {{{1 " sh ksh bash : ${var[... ]...} array reference: {{{1
syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError
@@ -477,12 +492,12 @@ if exists("b:is_bash")
" bash : ${parameter//pattern/string} " bash : ${parameter//pattern/string}
" bash : ${parameter//pattern} " bash : ${parameter//pattern}
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
syn region shDerefPPSleft contained start='.' skip=@\%(\\\)\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shCommandSubList syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shCommandSubList
syn region shDerefPPSright contained start='.' end='\ze}' contains=@shCommandSubList syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shCommandSubList
endif endif
" Arithmetic Parenthesized Expressions: {{{1 " Arithmetic Parenthesized Expressions: {{{1
syn region shParen matchgroup=shArithRegion start='(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList syn region shParen matchgroup=shArithRegion start='[^$]\zs(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList
" Useful sh Keywords: {{{1 " Useful sh Keywords: {{{1
" =================== " ===================
@@ -557,6 +572,7 @@ hi def link shDoubleQuote shString
hi def link shEcho shString hi def link shEcho shString
hi def link shEchoDelim shOperator hi def link shEchoDelim shOperator
hi def link shEchoQuote shString hi def link shEchoQuote shString
hi def link shForPP shLoop
hi def link shEmbeddedEcho shString hi def link shEmbeddedEcho shString
hi def link shEscape shCommandSub hi def link shEscape shCommandSub
hi def link shExDoubleQuote shDoubleQuote hi def link shExDoubleQuote shDoubleQuote
@@ -592,6 +608,7 @@ if exists("b:is_bash")
hi def link bashStatement shStatement hi def link bashStatement shStatement
hi def link shFunctionParen Delimiter hi def link shFunctionParen Delimiter
hi def link shFunctionDelim Delimiter hi def link shFunctionDelim Delimiter
hi def link shCharClass shSpecial
endif endif
if exists("b:is_kornshell") if exists("b:is_kornshell")
hi def link kshSpecialVariables shShellVariables hi def link kshSpecialVariables shShellVariables

293
runtime/syntax/sqlhana.vim Normal file
View File

@@ -0,0 +1,293 @@
" Vim syntax file
" Language: SQL, SAP HANA In Memory Database
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2012 Oct 23
" Version: SP4 b (Q2 2012)
" Homepage: http://www.vim.org/scripts/script.php?script_id=4275
" Description: Updated to SAP HANA SP4
"
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case ignore
" The SQL reserved words, defined as keywords.
" These were pulled from the following SQL reference:
" http://help.sap.com/hana/hana_sql_en.pdf
" An easy approach is to copy all text from the PDF
" into a Vim buffer. The keywords are in UPPER case,
" so you can run the following commands to be left with
" mainly the UPPER case words:
" 1. Delete all words that do not begin with a Capital
" %s/\(\<[^A-Z]\w*\>\)//g
" 2. Remove all words where the 2nd letter is not a Capital
" %s/\(\<[A-Z][^A-Z]\w*\>\)//g
" 3. Remove all non-word (or space) characters
" %s/[^0-9A-Za-z_ ]*//g
" 4. Remove some known words
" %s/\<\(SAP\|HANA\|OK\|AG\|IBM\|DB2\|AIX\|POWER\d\+\|UNIX\)\>//g
" 5. Remove blank lines and trailing spaces
" %s/\s\+$//g
" %s/^\s\+//g
" %s/^$\n//g
" 6. Convert spaces to newlines remove single character
" %s/[ ]\+/\r/g
" %g/^\w$/d
" 7. Sort and remove duplicates
" :sort
" :Uniq
" 8. Use the WhatsMissing plugin against the sqlhana.vim file.
" 9. Generated a file of all UPPER cased words which should not
" be in the syntax file. These items should be removed
" from the list in step 7. You can use WhatsNotMissing
" between step 7 and this new file to weed out the words
" we know are not syntax related.
" 10. Use the WhatsMissingRemoveMatches to remove the words
" from step 9.
syn keyword sqlSpecial false null true
" Supported Functions for Date/Time types
syn keyword sqlFunction ADD_DAYS ADD_MONTHS ADD_SECONDS ADD_YEARS COALESCE
syn keyword sqlFunction CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_UTCDATE
syn keyword sqlFunction CURRENT_UTCTIME CURRENT_UTCTIMESTAMP
syn keyword sqlFunction DAYNAME DAYOFMONTH DAYOFYEAR DAYS_BETWEEN EXTRACT
syn keyword sqlFunction GREATEST HOUR IFNULL ISOWEEK LAST_DAY LEAST LOCALTOUTC
syn keyword sqlFunction MINUTE MONTH MONTHNAME NEXT_DAY NOW QUARTER SECOND
syn keyword sqlFunction SECONDS_BETWEEN UTCTOLOCAL WEEK WEEKDAY YEAR
syn keyword sqlFunction TO_CHAR TO_DATE TO_DATS TO_NCHAR TO_TIME TO_TIMESTAMP UTCTOLOCAL
" Aggregate
syn keyword sqlFunction COUNT MIN MAX SUM AVG STDDEV VAR
" Datatype conversion
syn keyword sqlFunction CAST TO_ALPHANUM TO_BIGINT TO_BINARY TO_BLOB TO_CHAR TO_CLOB
syn keyword sqlFunction TO_DATE TO_DATS TO_DECIMAL TO_DOUBLE TO_INT TO_INTEGER TO_NCHAR
syn keyword sqlFunction TO_NCLOB TO_NVARCHAR TO_REAL TO_SECONDDATE TO_SMALLDECIMAL
syn keyword sqlFunction TO_SMALLINT TO_TIME TO_TIMESTAMP TO_TINYINT TO_VARCHAR TO_VARBINARY
" Number functions
syn keyword sqlFunction ABS ACOS ASIN ATAN ATAN2 BINTOHEX BITAND CEIL COS COSH COT
syn keyword sqlFunction EXP FLOOR GREATEST HEXTOBIN LEAST LN LOG MOD POWER ROUND
syn keyword sqlFunction SIGN SIN SINH SQRT TAN TANH UMINUS
" String functions
syn keyword sqlFunction ASCII CHAR CONCAT LCASE LENGTH LOCATE LOWER LPAD LTRIM
syn keyword sqlFunction NCHAR REPLACE RPAD RTRIM SUBSTR_AFTER SUBSTR_BEFORE
syn keyword sqlFunction SUBSTRING TRIM UCASE UNICODE UPPER
" Miscellaneous functions
syn keyword sqlFunction COALESCE CURRENT_CONNECTION CURRENT_SCHEMA CURRENT_USER
syn keyword sqlFunction GROUPING_ID IFNULL MAP NULLIF SESSION_CONTEXT SESSION_USER SYSUUIDSQL
syn keyword sqlFunction GET_NUM_SERVERS
" sp_ procedures
" syn keyword sqlFunction sp_addalias
" Reserved keywords
syn keyword sqlkeyword ALL AS AT BEFORE
syn keyword sqlkeyword BEGIN BOTH BY
syn keyword sqlkeyword CONDITION
syn keyword sqlkeyword CURRVAL CURSOR DECLARE
syn keyword sqlkeyword DISTINCT DO ELSE ELSEIF ELSIF
syn keyword sqlkeyword END EXCEPTION EXEC
syn keyword sqlkeyword FOR FROM GROUP
syn keyword sqlkeyword HAVING IN
syn keyword sqlkeyword INOUT INTO IS
syn keyword sqlkeyword LEADING
syn keyword sqlkeyword LOOP MINUS NATURAL NEXTVAL
syn keyword sqlkeyword OF ON ORDER OUT
syn keyword sqlkeyword PRIOR RETURN RETURNS REVERSE
syn keyword sqlkeyword ROWID SELECT
syn keyword sqlkeyword SQL START STOP SYSDATE
syn keyword sqlkeyword SYSTIME SYSTIMESTAMP SYSUUID
syn keyword sqlkeyword TRAILING USING UTCDATE
syn keyword sqlkeyword UTCTIME UTCTIMESTAMP VALUES
syn keyword sqlkeyword WHILE
syn keyword sqlkeyword ANY SOME EXISTS ESCAPE
" IF keywords
syn keyword sqlkeyword IF
" CASE keywords
syn keyword sqlKeyword WHEN THEN
" Syntax rules common to TEXT and SHORTTEXT keywords
syn keyword sqlKeyword LANGUAGE DETECTION LINGUISTIC
syn keyword sqlkeyword MIME TYPE
syn keyword sqlkeyword EXACT WEIGHT FUZZY FUZZINESSTHRESHOLD SEARCH
syn keyword sqlkeyword PHRASE INDEX RATIO REBUILD
syn keyword sqlkeyword CONFIGURATION
syn keyword sqlkeyword SEARCH ONLY
syn keyword sqlkeyword FAST PREPROCESS
syn keyword sqlkeyword SYNC SYNCHRONOUS ASYNC ASYNCHRONOUS FLUSH QUEUE
syn keyword sqlkeyword EVERY AFTER MINUTES DOCUMENTS SUSPEND
" Statement keywords (i.e. after ALTER or CREATE)
syn keyword sqlkeyword AUDIT POLICY
syn keyword sqlkeyword FULLTEXT
syn keyword sqlkeyword SEQUENCE RESTART
syn keyword sqlkeyword TABLE
syn keyword sqlkeyword PROCEDURE STATISTICS
syn keyword sqlkeyword SCHEMA
syn keyword sqlkeyword SYNONYM
syn keyword sqlkeyword VIEW
syn keyword sqlkeyword COLUMN
syn keyword sqlkeyword SYSTEM LICENSE
syn keyword sqlkeyword SESSION
syn keyword sqlkeyword CANCEL WORK
syn keyword sqlkeyword PLAN CACHE
syn keyword sqlkeyword LOGGING NOLOGGING RETENTION
syn keyword sqlkeyword RECONFIGURE SERVICE
syn keyword sqlkeyword RESET MONITORING
syn keyword sqlkeyword SAVE DURATION PERFTRACE FUNCTION_PROFILER
syn keyword sqlkeyword SAVEPOINT
syn keyword sqlkeyword USER
syn keyword sqlkeyword ROLE
syn keyword sqlkeyword ASC DESC
syn keyword sqlkeyword OWNED
syn keyword sqlkeyword DEPENDENCIES SCRAMBLE
" Create sequence
syn keyword sqlkeyword INCREMENT MAXVALUE MINVALUE CYCLE
" Create table
syn keyword sqlkeyword HISTORY GLOBAL LOCAL TEMPORARY
" Create trigger
syn keyword sqlkeyword TRIGGER REFERENCING EACH DEFAULT
syn keyword sqlkeyword SIGNAL RESIGNAL MESSAGE_TEXT OLD NEW
syn keyword sqlkeyword EXIT HANDLER SQL_ERROR_CODE
syn keyword sqlkeyword TARGET CONDITION SIGNAL
" Alter table
syn keyword sqlkeyword ADD DROP MODIFY GENERATED ALWAYS
syn keyword sqlkeyword UNIQUE BTREE CPBTREE PRIMARY KEY
syn keyword sqlkeyword CONSTRAINT PRELOAD NONE
syn keyword sqlkeyword ROW THREADS BATCH
syn keyword sqlkeyword MOVE PARTITION TO LOCATION PHYSICAL OTHERS
syn keyword sqlkeyword ROUNDROBIN PARTITIONS HASH RANGE VALUE
syn keyword sqlkeyword PERSISTENT DELTA AUTO AUTOMERGE
" Create audit policy
syn keyword sqlkeyword AUDITING SUCCESSFUL UNSUCCESSFUL
syn keyword sqlkeyword PRIVILEGE STRUCTURED CHANGE LEVEL
syn keyword sqlkeyword EMERGENCY ALERT CRITICAL WARNING INFO
" Privileges
syn keyword sqlkeyword DEBUG EXECUTE
" Schema
syn keyword sqlkeyword CASCADE RESTRICT PARAMETERS SCAN
" Traces
syn keyword sqlkeyword CLIENT CRASHDUMP EMERGENCYDUMP
syn keyword sqlkeyword INDEXSERVER NAMESERVER DAEMON
syn keyword sqlkeyword CLEAR REMOVE TRACES
" Reclaim
syn keyword sqlkeyword RECLAIM DATA VOLUME VERSION SPACE DEFRAGMENT SPARSIFY
" Join
syn keyword sqlkeyword INNER OUTER LEFT RIGHT FULL CROSS JOIN
syn keyword sqlkeyword GROUPING SETS ROLLUP CUBE
syn keyword sqlkeyword BEST LIMIT OFFSET
syn keyword sqlkeyword WITH SUBTOTAL BALANCE TOTAL
syn keyword sqlkeyword TEXT_FILTER FILL UP SORT MATCHES TOP
syn keyword sqlkeyword RESULT OVERVIEW PREFIX MULTIPLE RESULTSETS
" Lock
syn keyword sqlkeyword EXCLUSIVE MODE NOWAIT
" Transaction
syn keyword sqlkeyword TRANSACTION ISOLATION READ COMMITTED
syn keyword sqlkeyword REPEATABLE SERIALIZABLE WRITE
" Saml
syn keyword sqlkeyword SAML ASSERTION PROVIDER SUBJECT ISSUER
" User
syn keyword sqlkeyword PASSWORD IDENTIFIED EXTERNALLY ATTEMPTS ATTEMPTS
syn keyword sqlkeyword ENABLE DISABLE OFF LIFETIME FORCE DEACTIVATE
syn keyword sqlkeyword ACTIVATE IDENTITY KERBEROS
" Grant
syn keyword sqlkeyword ADMIN BACKUP CATALOG SCENARIO INIFILE MONITOR
syn keyword sqlkeyword OPTIMIZER OPTION
syn keyword sqlkeyword RESOURCE STRUCTUREDPRIVILEGE TRACE
" Import
syn keyword sqlkeyword CSV FILE CONTROL NO CHECK SKIP FIRST LIST
syn keyword sqlkeyword RECORD DELIMITED FIELD OPTIONALLY ENCLOSED FORMAT
" Roles
syn keyword sqlkeyword PUBLIC CONTENT_ADMIN MODELING MONITORING
" Miscellaneous
syn keyword sqlkeyword APPLICATION BINARY IMMEDIATE COREFILE SECURITY DEFINER
syn keyword sqlkeyword DUMMY INVOKER MATERIALIZED MESSEGE_TEXT PARAMETER PARAMETERS
syn keyword sqlkeyword PART
syn keyword sqlkeyword CONSTANT SQLEXCEPTION SQLWARNING
syn keyword sqlOperator WHERE BETWEEN LIKE NULL CONTAINS
syn keyword sqlOperator AND OR NOT CASE
syn keyword sqlOperator UNION INTERSECT EXCEPT
syn keyword sqlStatement ALTER CALL CALLS CREATE DROP RENAME TRUNCATE
syn keyword sqlStatement DELETE INSERT UPDATE EXPLAIN
syn keyword sqlStatement MERGE REPLACE UPSERT SELECT
syn keyword sqlStatement SET UNSET LOAD UNLOAD
syn keyword sqlStatement CONNECT DISCONNECT COMMIT LOCK ROLLBACK
syn keyword sqlStatement GRANT REVOKE
syn keyword sqlStatement EXPORT IMPORT
syn keyword sqlType DATE TIME SECONDDATE TIMESTAMP TINYINT SMALLINT
syn keyword sqlType INT INTEGER BIGINT SMALLDECIMAL DECIMAL
syn keyword sqlType REAL DOUBLE FLOAT
syn keyword sqlType VARCHAR NVARCHAR ALPHANUM SHORTTEXT VARBINARY
syn keyword sqlType BLOB CLOB NCLOB TEXT DAYDATE
syn keyword sqlOption Webservice_namespace_host
" Strings and characters:
syn region sqlString start=+"+ end=+"+ contains=@Spell
syn region sqlString start=+'+ end=+'+ contains=@Spell
" Numbers:
syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
" Comments:
syn region sqlDashComment start=/--/ end=/$/ contains=@Spell
syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell
syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell
syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell
syn sync ccomment sqlComment
syn sync ccomment sqlDashComment
syn sync ccomment sqlSlashComment
hi def link sqlDashComment Comment
hi def link sqlSlashComment Comment
hi def link sqlMultiComment Comment
hi def link sqlNumber Number
hi def link sqlOperator Operator
hi def link sqlSpecial Special
hi def link sqlKeyword Keyword
hi def link sqlStatement Statement
hi def link sqlString String
hi def link sqlType Type
hi def link sqlFunction Function
hi def link sqlOption PreProc
let b:current_syntax = "sqlhana"
" vim:sw=4:

View File

@@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: TeX " Language: TeX
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM> " Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Apr 24, 2012 " Last Change: Nov 14, 2012
" Version: 73 " Version: 75
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" "
" Notes: {{{1 " Notes: {{{1
@@ -155,7 +155,7 @@ endif
" Try to flag {} and () mismatches: {{{1 " Try to flag {} and () mismatches: {{{1
if !exists("g:tex_no_error") if !exists("g:tex_no_error")
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell
else else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup
@@ -723,7 +723,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['leftarrowtail' , '↢'], \ ['leftarrowtail' , '↢'],
\ ['leftharpoondown', '↽'], \ ['leftharpoondown', '↽'],
\ ['leftharpoonup' , '↼'], \ ['leftharpoonup' , '↼'],
\ ['leftrightarrow' , ''], \ ['leftrightarrow' , ''],
\ ['Leftrightarrow' , '⇔'], \ ['Leftrightarrow' , '⇔'],
\ ['leftrightsquigarrow', '↭'], \ ['leftrightsquigarrow', '↭'],
\ ['leftthreetimes' , '⋋'], \ ['leftthreetimes' , '⋋'],

View File

@@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Vim 7.3 script " Language: Vim 7.3 script
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jan 11, 2012 " Last Change: Nov 14, 2012
" Version: 7.3-13 " Version: 7.3-20
" Automatically generated keyword lists: {{{1 " Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2 " Quit when a syntax file was already loaded {{{2
@@ -76,7 +76,7 @@ syn case match
" Function Names {{{2 " Function Names {{{2
syn keyword vimFuncName contained abs append argv atan2 bufexists bufname byte2line ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdtype getfperm getftype getmatches getqflist gettabvar getwinposy globpath haslocaldir histdel hlexists iconv input inputrestore insert items len line localtime map match matchdelete matchstr min mode nextnonblank pathshorten prevnonblank pumvisible readfile reltimestr remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth syn keyword vimFuncName contained abs append argv atan2 bufexists bufname byte2line ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdtype getfperm getftype getmatches getqflist gettabvar getwinposy globpath haslocaldir histdel hlexists iconv input inputrestore insert items len line localtime map match matchdelete matchstr min mode nextnonblank pathshorten prevnonblank pumvisible readfile reltimestr remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth
syn keyword vimFuncName contained acos argc asin browse buflisted bufnr byteidx changenr clearmatches complete_add copy count deepcopy diff_filler escape executable expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcmdline getcwd getfsize getline getpid getreg gettabwinvar getwinvar has hasmapto histget hlID indent inputdialog inputsave isdirectory join libcall line2byte log maparg matchadd matchend max mkdir mzeval nr2char pow printf range reltime remote_expr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile syn keyword vimFuncName contained acos argc asin browse buflisted bufnr byteidx changenr clearmatches complete_add copy count deepcopy diff_filler escape executable expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcmdline getcwd getfsize getline getpid getreg gettabwinvar getwinvar has hasmapto histget hlID indent inputdialog inputsave isdirectory join libcall line2byte log maparg matchadd matchend max mkdir mzeval nr2char pow printf range reltime remote_expr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile
syn keyword vimFuncName contained add argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret islocked keys libcallnr lispindent log10 mapcheck matcharg matchlist pyeval py3eval luaeval syn keyword vimFuncName contained add argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret islocked keys libcallnr lispindent log10 mapcheck matcharg matchlist
"--- syntax above generated by mkvimvim --- "--- syntax above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1 " Special Vim Highlighting (not automatic) {{{1
@@ -149,11 +149,12 @@ syn keyword vimAugroupKey contained aug[roup]
" Operators: {{{2 " Operators: {{{2
" ========= " =========
" COMBAK: vimOperParen used to have "oneline"
syn cluster vimOperGroup contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue syn cluster vimOperGroup contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
syn region vimOperParen oneline matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
syn region vimOperParen oneline matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
syn match vimOperError ")" syn match vimOperError ")"
endif endif
@@ -203,7 +204,7 @@ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
endif endif
syn case ignore syn case ignore
syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister]
syn keyword vimUserAttrbCmplt contained augroup buffer command dir environment event expression file function help highlight mapping menu option shellcmd something tag tag_listfiles var syn keyword vimUserAttrbCmplt contained augroup buffer color command compiler cscope dir environment event expression file file_in_path filetype function help highlight locale mapping menu option shellcmd sign syntax tag tag_listfiles var
syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
@@ -328,7 +329,7 @@ syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhit
syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimNotation,vimCtrlChar,vimContinue skipnl nextgroup=vimMapRhsExtend
syn case ignore syn case ignore
syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique
syn case match syn case match
@@ -360,8 +361,8 @@ syn case match
" User Function Highlighting {{{2 " User Function Highlighting {{{2
" (following Gautam Iyer's suggestion) " (following Gautam Iyer's suggestion)
" ========================== " ==========================
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute
syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation
syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
" Errors And Warnings: {{{2 " Errors And Warnings: {{{2
@@ -429,7 +430,7 @@ syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion
syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
if has("conceal") if has("conceal")
syn match vimSynMtchOpt contained "\<cchar=" nextgroup=VimSynMtchCchar syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar
syn match vimSynMtchCchar contained "\S" syn match vimSynMtchCchar contained "\S"
endif endif
syn cluster vimFuncBodyList add=vimSynMtchGroup syn cluster vimFuncBodyList add=vimSynMtchGroup
@@ -510,17 +511,18 @@ endif
syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList
syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption
syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList
syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimHiNmbr,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList
syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname
syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
syn match vimHiTermcap contained "\S\+" contains=vimNotation syn match vimHiTermcap contained "\S\+" contains=vimNotation
syn match vimHiNmbr contained '\d\+'
" Highlight: clear {{{2 " Highlight: clear {{{2
syn keyword vimHiClear contained clear nextgroup=vimHiGroup syn keyword vimHiClear contained clear nextgroup=vimHiGroup
" Highlight: link {{{2 " Highlight: link {{{2
syn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\%[ault]\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
syn cluster vimFuncBodyList add=vimHiLink syn cluster vimFuncBodyList add=vimHiLink
" Control Characters {{{2 " Control Characters {{{2
@@ -562,7 +564,12 @@ endif
" [-- lua --] {{{3 " [-- lua --] {{{3
let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim") let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim")
if !filereadable(s:luapath) if !filereadable(s:luapath)
let s:luapath= fnameescape(globpath(&rtp,"syntax/lua.vim")) for s:luapath in split(globpath(&rtp,"syntax/lua.vim"),"\n")
if filereadable(fnameescape(s:luapath))
let s:luapath= fnameescape(s:luapath)
break
endif
endfor
endif endif
if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath) if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath)
unlet! b:current_syntax unlet! b:current_syntax
@@ -584,7 +591,12 @@ unlet s:luapath
" [-- perl --] {{{3 " [-- perl --] {{{3
let s:perlpath= fnameescape(expand("<sfile>:p:h")."/perl.vim") let s:perlpath= fnameescape(expand("<sfile>:p:h")."/perl.vim")
if !filereadable(s:perlpath) if !filereadable(s:perlpath)
let s:perlpath= fnameescape(globpath(&rtp,"syntax/perl.vim")) for s:perlpath in split(globpath(&rtp,"syntax/perl.vim"),"\n")
if filereadable(fnameescape(s:perlpath))
let s:perlpath= fnameescape(s:perlpath)
break
endif
endfor
endif endif
if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
unlet! b:current_syntax unlet! b:current_syntax
@@ -606,7 +618,12 @@ unlet s:perlpath
" [-- ruby --] {{{3 " [-- ruby --] {{{3
let s:rubypath= fnameescape(expand("<sfile>:p:h")."/ruby.vim") let s:rubypath= fnameescape(expand("<sfile>:p:h")."/ruby.vim")
if !filereadable(s:rubypath) if !filereadable(s:rubypath)
let s:rubypath= fnameescape(globpath(&rtp,"syntax/ruby.vim")) for s:rubypath in split(globpath(&rtp,"syntax/ruby.vim"),"\n")
if filereadable(fnameescape(s:rubypath))
let s:rubypath= fnameescape(s:rubypath)
break
endif
endfor
endif endif
if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
unlet! b:current_syntax unlet! b:current_syntax
@@ -627,9 +644,14 @@ unlet s:rubypath
" [-- python --] {{{3 " [-- python --] {{{3
let s:pythonpath= fnameescape(expand("<sfile>:p:h")."/python.vim") let s:pythonpath= fnameescape(expand("<sfile>:p:h")."/python.vim")
if !filereadable(s:pythonpath) if !filereadable(s:pythonpath)
let s:pythonpath= fnameescape(globpath(&rtp,"syntax/python.vim")) for s:pythonpath in split(globpath(&rtp,"syntax/python.vim"),"\n")
if filereadable(fnameescape(s:pythonpath))
let s:pythonpath= fnameescape(s:pythonpath)
break
endif
endfor
endif endif
if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(s:pythonpath) if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath)
unlet! b:current_syntax unlet! b:current_syntax
exe "syn include @vimPythonScript ".s:pythonpath exe "syn include @vimPythonScript ".s:pythonpath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P' if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
@@ -656,7 +678,12 @@ endif
if s:trytcl if s:trytcl
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim") let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
if !filereadable(s:tclpath) if !filereadable(s:tclpath)
let s:tclpath= fnameescape(globpath(&rtp,"syntax/tcl.vim")) for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
if filereadable(fnameescape(s:tclpath))
let s:tclpath= fnameescape(s:tclpath)
break
endif
endfor
endif endif
if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
unlet! b:current_syntax unlet! b:current_syntax
@@ -683,7 +710,12 @@ unlet s:trytcl
" [-- mzscheme --] {{{3 " [-- mzscheme --] {{{3
let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim") let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim")
if !filereadable(s:mzschemepath) if !filereadable(s:mzschemepath)
let s:mzschemepath= fnameescape(globpath(&rtp,"syntax/scheme.vim")) for s:mzschemepath in split(globpath(&rtp,"syntax/mzscheme.vim"),"\n")
if filereadable(fnameescape(s:mzschemepath))
let s:mzschemepath= fnameescape(s:mzschemepath)
break
endif
endfor
endif endif
if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
unlet! b:current_syntax unlet! b:current_syntax
@@ -879,6 +911,7 @@ hi def link vimUserCmdError Error
hi def link vimUserFunc Normal hi def link vimUserFunc Normal
hi def link vimVar Identifier hi def link vimVar Identifier
hi def link vimWarn WarningMsg hi def link vimWarn WarningMsg
hi def link vimHiNmbr Number
" Current Syntax Variable: {{{2 " Current Syntax Variable: {{{2
let b:current_syntax = "vim" let b:current_syntax = "vim"

View File

@@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Yacc " Language: Yacc
" Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Aug 12, 2010 " Last Change: Nov 14, 2012
" Version: 9 " Version: 10
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" "
" Options: {{{1 " Options: {{{1
@@ -20,18 +20,24 @@ endif
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Folding Support {{{1 " Folding Support {{{1
if has("folding") if has("folding")
com! -nargs=+ HiFold <args> fold com! -nargs=+ SynFold <args> fold
else else
com! -nargs=+ HiFold <args> com! -nargs=+ SynFold <args>
endif endif
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Read the C syntax to start with {{{1 " Read the C syntax to start with {{{1
if exists("g:yacc_uses_cpp") " Read the C/C++ syntax to start with
syn include @yaccCode <sfile>:p:h/cpp.vim let s:Cpath= fnameescape(expand("<sfile>:p:h").(exists("g:yacc_uses_cpp")? "/cpp.vim" : "/c.vim"))
else if !filereadable(s:Cpath)
syn include @yaccCode <sfile>:p:h/c.vim for s:Cpath in split(globpath(&rtp,(exists("g:yacc_uses_cpp")? "syntax/cpp.vim" : "syntax/c.vim")),"\n")
if filereadable(fnameescape(s:Cpath))
let s:Cpath= fnameescape(s:Cpath)
break
endif
endfor
endif endif
exe "syn include @yaccCode ".s:Cpath
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Yacc Clusters: {{{1 " Yacc Clusters: {{{1
@@ -40,12 +46,12 @@ syn cluster yaccRulesCluster contains=yaccNonterminal,yaccString
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Yacc Sections: {{{1 " Yacc Sections: {{{1
HiFold 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 yaccInit start='.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty contained
HiFold 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 yaccInit2 start='\%^.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty
HiFold syn region yaccHeader2 matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty contained SynFold syn region yaccHeader2 matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty contained
HiFold syn region yaccHeader matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty SynFold syn region yaccHeader matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty
HiFold syn region yaccRules matchgroup=yaccSectionSep start='^%%$' end='^%%$'me=e-2,re=e-2 contains=@yaccRulesCluster nextgroup=yaccEndCode skipwhite skipempty contained SynFold syn region yaccRules matchgroup=yaccSectionSep start='^%%$' end='^%%$'me=e-2,re=e-2 contains=@yaccRulesCluster nextgroup=yaccEndCode skipwhite skipempty contained
HiFold syn region yaccEndCode matchgroup=yaccSectionSep start='^%%$' end='\%$' contains=@yaccCode contained SynFold syn region yaccEndCode matchgroup=yaccSectionSep start='^%%$' end='\%$' contains=@yaccCode contained
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Yacc Commands: {{{1 " Yacc Commands: {{{1
@@ -63,11 +69,11 @@ syn match yaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+" contained
syn keyword yaccKeyActn yyerrok yyclearin contained syn keyword yaccKeyActn yyerrok yyclearin contained
syn match yaccUnionStart "^%union" skipwhite skipnl nextgroup=yaccUnion contained syn match yaccUnionStart "^%union" skipwhite skipnl nextgroup=yaccUnion contained
HiFold syn region yaccUnion matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccCode contained SynFold syn region yaccUnion matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccCode contained
syn match yaccBrkt "[<>]" contained syn match yaccBrkt "[<>]" contained
syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt contained syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt contained
HiFold 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 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 syn match yaccString "'[^']*'" contained
@@ -75,7 +81,8 @@ syn match yaccString "'[^']*'" contained
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" I'd really like to highlight just the outer {}. Any suggestions??? {{{1 " I'd really like to highlight just the outer {}. Any suggestions??? {{{1
syn match yaccCurlyError "[{}]" syn match yaccCurlyError "[{}]"
HiFold syn region yaccAction matchgroup=yaccCurly start="{" end="}" contains=@yaccCode contained SynFold syn region yaccAction matchgroup=yaccCurly start="{" end="}" contains=@yaccCode,yaccVar contained
syn match yaccVar '\$\d\+\|\$\$\|\$<\I\i*>\$\|\$<\I\i*>\d\+' containedin=cParen,cPreProc,cMulti contained
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Yacc synchronization: {{{1 " Yacc synchronization: {{{1
@@ -84,39 +91,30 @@ syn sync fromstart
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Define the default highlighting. {{{1 " Define the default highlighting. {{{1
if !exists("did_yacc_syn_inits") if !exists("did_yacc_syn_inits")
command -nargs=+ HiLink hi def link <args> hi def link yaccBrkt yaccStmt
hi def link yaccComment Comment
" Internal yacc highlighting links {{{2 hi def link yaccCurly Delimiter
HiLink yaccBrkt yaccStmt hi def link yaccCurlyError Error
HiLink yaccKey yaccStmt hi def link yaccDefines cDefine
HiLink yaccOper yaccStmt hi def link yaccDelim Delimiter
HiLink yaccUnionStart yaccKey hi def link yaccKeyActn Special
hi def link yaccKey yaccStmt
" External yacc highlighting links {{{2 hi def link yaccNonterminal Function
HiLink yaccComment Comment hi def link yaccOper yaccStmt
HiLink yaccCurly Delimiter hi def link yaccParseOption cDefine
HiLink yaccCurlyError Error hi def link yaccParseParam yaccParseOption
HiLink yaccDefines cDefine hi def link yaccSectionSep Todo
HiLink yaccParseParam yaccParseOption hi def link yaccSep Delimiter
HiLink yaccParseOption cDefine hi def link yaccStmt Statement
HiLink yaccNonterminal Function hi def link yaccString String
HiLink yaccDelim Delimiter hi def link yaccType Type
HiLink yaccKeyActn Special hi def link yaccUnionStart yaccKey
HiLink yaccSectionSep Todo hi def link yaccVar Special
HiLink yaccSep Delimiter
HiLink yaccString String
HiLink yaccStmt Statement
HiLink yaccType Type
" since Bram doesn't like my Delimiter :| {{{2
HiLink Delimiter Type
delcommand HiLink
endif endif
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Cleanup: {{{1 " Cleanup: {{{1
delcommand HiFold delcommand SynFold
let b:current_syntax = "yacc" let b:current_syntax = "yacc"
" --------------------------------------------------------------------- " ---------------------------------------------------------------------

View File

@@ -23,8 +23,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Vim(Esperanto)\n" "Project-Id-Version: Vim(Esperanto)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-22 15:37+0100\n" "POT-Creation-Date: 2012-08-19 06:35+0200\n"
"PO-Revision-Date: 2012-01-22 15:38+0100\n" "PO-Revision-Date: 2012-08-19 06:41+0200\n"
"Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n" "Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: eo\n" "Language: eo\n"
@@ -54,6 +54,9 @@ msgstr "[Listo de lokoj]"
msgid "[Quickfix List]" msgid "[Quickfix List]"
msgstr "[Listo de rapidriparoj]" msgstr "[Listo de rapidriparoj]"
msgid "E855: Autocommands caused command to abort"
msgstr "E855: Aŭtokomandoj haltigis komandon"
msgid "E82: Cannot allocate any buffer, exiting..." msgid "E82: Cannot allocate any buffer, exiting..."
msgstr "E82: Ne eblas disponigi iun ajn bufron, nun eliras..." msgstr "E82: Ne eblas disponigi iun ajn bufron, nun eliras..."
@@ -2635,6 +2638,10 @@ msgstr "nepermesita en sabloludejo de Vim"
msgid "E836: This Vim cannot execute :python after using :py3" msgid "E836: This Vim cannot execute :python after using :py3"
msgstr "E836: Vim ne povas plenumi :python post uzo de :py3" msgstr "E836: Vim ne povas plenumi :python post uzo de :py3"
#. Add conversion from PyInt?
msgid "only string keys are allowed"
msgstr "nur ĉenaj ŝlosiloj estas permisataj"
msgid "" msgid ""
"E263: Sorry, this command is disabled, the Python library could not be " "E263: Sorry, this command is disabled, the Python library could not be "
"loaded." "loaded."
@@ -2645,6 +2652,12 @@ msgstr ""
msgid "E659: Cannot invoke Python recursively" msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Ne eblas alvoki Pitonon rekursie" msgstr "E659: Ne eblas alvoki Pitonon rekursie"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval ne revenis kun valida python-objekto"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Konverto de revena python-objekto al vim-valoro fiaskis"
msgid "can't delete OutputObject attributes" msgid "can't delete OutputObject attributes"
msgstr "ne eblas forviŝi atributojn de OutputObject" msgstr "ne eblas forviŝi atributojn de OutputObject"
@@ -2661,6 +2674,12 @@ msgstr "<bufra objekto (forviŝita) ĉe %p>"
msgid "E837: This Vim cannot execute :py3 after using :python" msgid "E837: This Vim cannot execute :py3 after using :python"
msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python" msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python"
msgid "E860: Eval did not return a valid python 3 object"
msgstr "E860: Eval ne revenis kun valida python3-objekto"
msgid "E861: Failed to convert returned python 3 object to vim value"
msgstr "E861: Konverto de revena python3-objekto al vim-valoro fiaskis"
msgid "E265: $_ must be an instance of String" msgid "E265: $_ must be an instance of String"
msgstr "E265: $_ devas esti apero de Ĉeno" msgstr "E265: $_ devas esti apero de Ĉeno"
@@ -2849,12 +2868,6 @@ msgstr ""
"E571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne " "E571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne "
"ŝargeblis." "ŝargeblis."
msgid ""
"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
msgstr ""
"E281: TCL-ERARO: elira kodo ne estas entjera!? Bv. retpoŝti al vim-dev@vim."
"org"
#, c-format #, c-format
msgid "E572: exit code %d" msgid "E572: exit code %d"
msgstr "E572: elira kodo %d" msgstr "E572: elira kodo %d"
@@ -3012,6 +3025,9 @@ msgstr "-v\t\t\tReĝimo Vi (kiel \"vi\")"
msgid "-e\t\t\tEx mode (like \"ex\")" msgid "-e\t\t\tEx mode (like \"ex\")"
msgstr "-e\t\t\tReĝimo Ex (kiel \"ex\")" msgstr "-e\t\t\tReĝimo Ex (kiel \"ex\")"
msgid "-E\t\t\tImproved Ex mode"
msgstr "-E\t\t\tPlibonigita Ex-reĝimo"
msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
msgstr "-s\t\t\tSilenta (stapla) reĝimo (nur por \"ex\")" msgstr "-s\t\t\tSilenta (stapla) reĝimo (nur por \"ex\")"
@@ -3269,6 +3285,9 @@ msgstr "--role <rolo>\tDoni unikan rolon por identigi la ĉefan fenestron"
msgid "--socketid <xid>\tOpen Vim inside another GTK widget" msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
msgstr "--socketid <xid>\tMalfermi Vim en alia GTK fenestraĵo" msgstr "--socketid <xid>\tMalfermi Vim en alia GTK fenestraĵo"
msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
msgstr "--echo-wid\t\tIgas gvim afiŝi la identigilon de vindozo sur stdout"
msgid "-P <parent title>\tOpen Vim inside parent application" msgid "-P <parent title>\tOpen Vim inside parent application"
msgstr "-P <gepatra titolo>\tMalfermi Vim en gepatra aplikaĵo" msgstr "-P <gepatra titolo>\tMalfermi Vim en gepatra aplikaĵo"
@@ -6556,6 +6575,42 @@ msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj"
msgid "no such buffer" msgid "no such buffer"
msgstr "ne estas tia bufro" msgstr "ne estas tia bufro"
msgid "failed to add key to dictionary"
msgstr "aldono de ŝlosilo al vortaro fiaskis"
msgid "dict is locked"
msgstr "vortaro estas ŝlosita"
msgid "no such key in dictionary"
msgstr "tiu ŝlosilo ne ekzistas en vortaro"
msgid "internal error: failed to get vim list item"
msgstr "interna eraro: obteno de vim-a listero fiaskis"
msgid "list is locked"
msgstr "listo estas ŝlosita"
msgid "Failed to add item to list"
msgstr "Aldono de listero fiaskis"
msgid "internal error: no vim list item"
msgstr "interna eraro: neniu vim-a listero"
msgid "can only assign lists to slice"
msgstr "nur eblas pravalorizi listojn al segmento"
msgid "internal error: failed to add item to list"
msgstr "interna eraro: aldono de listero fiaskis"
msgid "can only concatenate with lists"
msgstr "eblas nur kunmeti kun listoj"
msgid "'self' argument must be a dictionary"
msgstr "argumento 'self' devas esti vortaro"
msgid "failed to run function"
msgstr "fiaskis ruli funkcion"
msgid "attempt to refer to deleted window" msgid "attempt to refer to deleted window"
msgstr "provo de referenco al forviŝita fenestro" msgstr "provo de referenco al forviŝita fenestro"
@@ -6583,22 +6638,11 @@ msgstr "ne estas tia fenestro"
msgid "attempt to refer to deleted buffer" msgid "attempt to refer to deleted buffer"
msgstr "provo de referenco al forviŝita bufro" msgstr "provo de referenco al forviŝita bufro"
#~ msgid "" msgid "unable to convert to vim structure"
#~ "\n" msgstr "ne povis konverti al vim-strukturo"
#~ "Arguments recognised by gvim (RISC OS version):\n"
#~ msgstr ""
#~ "\n"
#~ "Argumentoj agnoskitaj de gvim (versio RISC OS):\n"
#~ msgid "--columns <number>\tInitial width of window in columns" msgid "NULL reference passed"
#~ msgstr "--columns <nombro>\tKomenca larĝo de fenestro en kolumnoj" msgstr "NULL-referenco argumento"
#~ msgid "--rows <number>\tInitial height of window in rows" msgid "internal error: invalid value type"
#~ msgstr "--rows <nombro>\tKomenca alto de fenestro en vicoj" msgstr "interna eraro: nevalida typo de valoro"
#~ msgid ""
#~ "\n"
#~ "RISC OS version"
#~ msgstr ""
#~ "\n"
#~ "Versio RISC operaciumo"

View File

@@ -6,7 +6,7 @@
# FIRST AUTHOR DindinX <David.Odin@bigfoot.com> 2000. # FIRST AUTHOR DindinX <David.Odin@bigfoot.com> 2000.
# SECOND AUTHOR Adrien Beau <version.francaise@free.fr> 2002, 2003. # SECOND AUTHOR Adrien Beau <version.francaise@free.fr> 2002, 2003.
# THIRD AUTHOR David Blanchet <david.blanchet@free.fr> 2006, 2008. # THIRD AUTHOR David Blanchet <david.blanchet@free.fr> 2006, 2008.
# FOURTH AUTHOR Dominique Pell<6C> <dominique.pelle@gmail.com> 2008, 2011. # FOURTH AUTHOR Dominique Pell<6C> <dominique.pelle@gmail.com> 2008, 2012.
# #
# Latest translation available at: # Latest translation available at:
# http://dominique.pelle.free.fr/vim-fr.php # http://dominique.pelle.free.fr/vim-fr.php
@@ -15,8 +15,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Vim(Fran<61>ais)\n" "Project-Id-Version: Vim(Fran<61>ais)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-22 15:37+0100\n" "POT-Creation-Date: 2012-08-19 06:35+0200\n"
"PO-Revision-Date: 2012-01-22 15:40+0100\n" "PO-Revision-Date: 2012-08-19 06:48+0200\n"
"Last-Translator: Dominique Pell<6C> <dominique.pelle@gmail.com>\n" "Last-Translator: Dominique Pell<6C> <dominique.pelle@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@@ -46,6 +46,9 @@ msgstr "[Liste des emplacements]"
msgid "[Quickfix List]" msgid "[Quickfix List]"
msgstr "[Liste Quickfix]" msgstr "[Liste Quickfix]"
msgid "E855: Autocommands caused command to abort"
msgstr "E855: Des autocommandes ont caus<75> la termination de la commande"
# AB - Il faut respecter l'esprit plus que la lettre. # AB - Il faut respecter l'esprit plus que la lettre.
msgid "E82: Cannot allocate any buffer, exiting..." msgid "E82: Cannot allocate any buffer, exiting..."
msgstr "E82: Aucun tampon ne peut <20>tre allou<6F>, Vim doit s'arr<72>ter" msgstr "E82: Aucun tampon ne peut <20>tre allou<6F>, Vim doit s'arr<72>ter"
@@ -2866,6 +2869,10 @@ msgstr "non autoris
msgid "E836: This Vim cannot execute :python after using :py3" msgid "E836: This Vim cannot execute :python after using :py3"
msgstr "E836: Vim ne peut pas ex<65>cuter :python apr<70>s avoir utilis<69> :py3" msgstr "E836: Vim ne peut pas ex<65>cuter :python apr<70>s avoir utilis<69> :py3"
#. Add conversion from PyInt?
msgid "only string keys are allowed"
msgstr "seule une chaine est autoris<69>e comme cl<63>"
msgid "" msgid ""
"E263: Sorry, this command is disabled, the Python library could not be " "E263: Sorry, this command is disabled, the Python library could not be "
"loaded." "loaded."
@@ -2876,6 +2883,12 @@ msgstr ""
msgid "E659: Cannot invoke Python recursively" msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Impossible d'invoquer Python r<>cursivement" msgstr "E659: Impossible d'invoquer Python r<>cursivement"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval n'a pas retourn<72> un objet python valide"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Conversion d'objet python <20> une valeur de vim a <20>chou<6F>"
msgid "can't delete OutputObject attributes" msgid "can't delete OutputObject attributes"
msgstr "impossible d'effacer les attributs d'OutputObject" msgstr "impossible d'effacer les attributs d'OutputObject"
@@ -2892,6 +2905,12 @@ msgstr "<objet tampon (effac
msgid "E837: This Vim cannot execute :py3 after using :python" msgid "E837: This Vim cannot execute :py3 after using :python"
msgstr "E837: Vim ne peut pas ex<65>cuter :py3 apr<70>s avoir utilis<69> :python" msgstr "E837: Vim ne peut pas ex<65>cuter :py3 apr<70>s avoir utilis<69> :python"
msgid "E860: Eval did not return a valid python 3 object"
msgstr "E860: Eval n'a pas retourn<72> un object python 3 valid"
msgid "E861: Failed to convert returned python 3 object to vim value"
msgstr "E861: Conversion d'objet python 3 <20> une valeur de vim a <20>chou<6F>"
msgid "E265: $_ must be an instance of String" msgid "E265: $_ must be an instance of String"
msgstr "E265: $_ doit <20>tre une instance de cha<68>ne (String)" msgstr "E265: $_ doit <20>tre une instance de cha<68>ne (String)"
@@ -3080,11 +3099,6 @@ msgstr ""
"E571: D<>sol<6F>, commande d<>sactiv<69>e: la biblioth<74>que Tcl n'a pas pu <20>tre " "E571: D<>sol<6F>, commande d<>sactiv<69>e: la biblioth<74>que Tcl n'a pas pu <20>tre "
"charg<72>e." "charg<72>e."
msgid ""
"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
msgstr ""
"E281: ERREUR TCL: code de sortie non entier ?! Contactez vim-dev@vim.org, SVP"
#, c-format #, c-format
msgid "E572: exit code %d" msgid "E572: exit code %d"
msgstr "E572: code de sortie %d" msgstr "E572: code de sortie %d"
@@ -3167,7 +3181,7 @@ msgid ""
"More info with: \"vim -h\"\n" "More info with: \"vim -h\"\n"
msgstr "" msgstr ""
"\n" "\n"
"Plus d'info avec: \"vim -h\"\n" "Plus d'info avec : \"vim -h\"\n"
msgid "[file ..] edit specified file(s)" msgid "[file ..] edit specified file(s)"
msgstr "[fichier ...] ouvrir le ou les fichiers sp<73>cifi<66>s" msgstr "[fichier ...] ouvrir le ou les fichiers sp<73>cifi<66>s"
@@ -3244,6 +3258,9 @@ msgstr "-v\t\tMode Vi (comme \"vi\")"
msgid "-e\t\t\tEx mode (like \"ex\")" msgid "-e\t\t\tEx mode (like \"ex\")"
msgstr "-e\t\tMode Ex (comme \"ex\")" msgstr "-e\t\tMode Ex (comme \"ex\")"
msgid "-E\t\t\tImproved Ex mode"
msgstr "-E\t\t\tMode Ex am<61>lior<6F>"
msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
msgstr "-s\t\tMode silencieux (batch) (seulement pour \"ex\")" msgstr "-s\t\tMode silencieux (batch) (seulement pour \"ex\")"
@@ -3501,6 +3518,9 @@ msgstr "--role <r
msgid "--socketid <xid>\tOpen Vim inside another GTK widget" msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
msgstr "--socketid <xid>\tOuvrir Vim dans un autre widget GTK" msgstr "--socketid <xid>\tOuvrir Vim dans un autre widget GTK"
msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
msgstr "--echo-wid\t\tGvim affiche l'ID de la fen<65>tre sur stdout"
msgid "-P <parent title>\tOpen Vim inside parent application" msgid "-P <parent title>\tOpen Vim inside parent application"
msgstr "-P <titre parent>\tOuvrir Vim dans une application parente" msgstr "-P <titre parent>\tOuvrir Vim dans une application parente"
@@ -6820,7 +6840,43 @@ msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Python : Erreur d'initialisation des objets d'E/S" msgstr "E264: Python : Erreur d'initialisation des objets d'E/S"
msgid "no such buffer" msgid "no such buffer"
msgstr "Ce tampon n'existe pas" msgstr "ce tampon n'existe pas"
msgid "failed to add key to dictionary"
msgstr "l'ajout de cl<63> au dictionnaire a <20>chou<6F>"
msgid "dict is locked"
msgstr "dictionnaire est verrouill<6C>"
msgid "no such key in dictionary"
msgstr "cette cl<63> est inexistante dans le dictionnaire"
msgid "internal error: failed to get vim list item"
msgstr "erreur interne : acc<63>s <20> un <20>l<EFBFBD>ment de liste a <20>chou<6F>"
msgid "list is locked"
msgstr "liste verrouill<6C>e"
msgid "Failed to add item to list"
msgstr "Ajout <20> la liste a <20>chou<6F>"
msgid "internal error: no vim list item"
msgstr "erreur interne : pas d'<27>l<EFBFBD>ment de liste vim"
msgid "can only assign lists to slice"
msgstr "seules des tranches peuvent <20>tre assign<67>es aux listes"
msgid "internal error: failed to add item to list"
msgstr "erreur interne : ajout d'<27>l<EFBFBD>ment <20> la liste a <20>chou<6F>"
msgid "can only concatenate with lists"
msgstr "on ne peut que concat<61>ner avec des listes"
msgid "'self' argument must be a dictionary"
msgstr "l'argument 'self' doit <20>tre un dictionnaire"
msgid "failed to run function"
msgstr "ex<65>cution de la fonction a <20>chou<6F>"
msgid "attempt to refer to deleted window" msgid "attempt to refer to deleted window"
msgstr "tentative de r<>f<EFBFBD>rencer une fen<65>tre effac<61>e" msgstr "tentative de r<>f<EFBFBD>rencer une fen<65>tre effac<61>e"
@@ -6849,25 +6905,11 @@ msgstr "Cette fen
msgid "attempt to refer to deleted buffer" msgid "attempt to refer to deleted buffer"
msgstr "tentative de r<>f<EFBFBD>rencer un tampon effac<61>" msgstr "tentative de r<>f<EFBFBD>rencer un tampon effac<61>"
#~ msgid "" msgid "unable to convert to vim structure"
#~ "\n" msgstr "conversion <20> une structure vim impossible"
#~ "Arguments recognised by gvim (RISC OS version):\n"
#~ msgstr ""
#~ "\n"
#~ "Arguments reconnus par gvim (version RISC OS) :\n"
#~ msgid "--columns <number>\tInitial width of window in columns" msgid "NULL reference passed"
#~ msgstr "--columns <nombre>\tNombre de colonnes initial de la fen<65>tre" msgstr "r<EFBFBD>f<EFBFBD>rence NULL pass<73>e"
#~ msgid "--rows <number>\tInitial height of window in rows" msgid "internal error: invalid value type"
#~ msgstr "--rows <nombre>\tNombre de lignes initial de la fen<65>tre" msgstr "erreur interne : type de valeur invalide"
#~ msgid ""
#~ "\n"
#~ "RISC OS version"
#~ msgstr ""
#~ "\n"
#~ "Version RISC OS"
#~ msgid "E505: "
#~ msgstr "E505: "